我正在开发一个软件来根据我从kinect的深度图像得到的某些坐标来移动鼠标.但我有30帧/秒(图像/秒),这些坐标随每一帧而变化,所以鼠标一直在移动.我的问题是,有没有办法平滑鼠标的移动?
我现在正在与Kinect合作开展工人支持项目.
我想使用Kinect来检测工作过程中指定运动的开始/结束时刻.
例如:
将圆圈绘制成纸张(在桌子上)的工作过程有一些步骤:(测试者)从桌子拿起笔,画圆圈,在桌子上放回笔,换纸,......(重复多次).
我想检测测试仪开始和完成绘制圆的时刻.
我必须提出一种高精度算法,该算法不依赖于测试仪的位置和大小.
你能给我一些想法吗?
谢谢你的帮助(抱歉我的英文)!
我计划通过集成3D深度传感器(如Kinect或Asus Xtion Pro)来提供预制机器人3D视觉.这是我能找到的唯一两个我想象的还有更多正在构建或已经存在的东西.
有没有人对我可以使用的硬件有任何建议,或者哪两个对于集成到ROS(机器人操作系统)的开源项目更好.
我正在使用libfreenect驱动程序上的Kinect(原始的Xbox版本)(顺便说一句,我在Ubuntu 12.04上).我已经从git克隆了最新版本并按照以下说明手动安装:http://openkinect.org/wiki/Getting_Started#Ubuntu_Manual_Install
我想访问注册的深度值.据我所知,Kinect已经过工厂校准,并且有一个查找表匹配正确RGB像素的深度像素.
我可以很好地打开Kinect并检索原始的11位深度数据.对于1到7.5米的距离,这给出了从大约730到1045的非线性值.
运行device->setDepthFormat(FREENECT_DEPTH_MM);使得Kinect输出距离以mm为单位,因此setDepthFormat似乎可以正常工作.
运行device->setDepthFormat(FREENECT_DEPTH_REGISTERED);似乎没有效果,因为只输出原始深度值.我错过了什么?
我正在使用OpenCV处理给定的数据集,而我没有任何Kinect.我想将给定的深度数据映射到RGB对应物(这样我就可以得到实际的颜色和深度)
由于我使用的是OpenCV和C++,并且没有Kinect,遗憾的是我无法使用官方Kinect API中的MapDepthFrameToColorFrame方法.
从给定的相机的内在函数和失真系数,我可以将深度映射到世界坐标,并根据此处提供的算法返回到RGB
Vec3f depthToW( int x, int y, float depth ){
Vec3f result;
result[0] = (float) (x - depthCX) * depth / depthFX;
result[1] = (float) (y - depthCY) * depth / depthFY;
result[2] = (float) depth;
return result;
}
Vec2i wToRGB( const Vec3f & point ) {
Mat p3d( point );
p3d = extRotation * p3d + extTranslation;
float x = p3d.at<float>(0, 0);
float y = p3d.at<float>(1, 0);
float z = p3d.at<float>(2, 0);
Vec2i result; …Run Code Online (Sandbox Code Playgroud) 我正在考虑用Kinect制作一个项目,让我的奶奶控制她的电视而不会被遥控器吓倒.所以,我一直在研究基本的手势识别.目的是当程序检测到右手正在"挥动"时,通过向电视发送正确的红外代码来打开电视的音量.
问题是,无论我在哪里,我似乎都找不到基于Linux的教程,该教程展示了如何通过手势做某事.另外需要注意的是,除了调试窗口之外,我不需要任何GUI,因为这会使我的程序慢下来.
有没有人知道某个地方允许我循环,不断检查一些手势,什么时候,我可以控制一些东西,而不需要任何GUI,在Linux上?:/
我很乐意选择任何语言,但我的经验围绕着Python和C.
我们将非常感谢您的任何帮助.
提前致谢
马特
我正在开发一个Windows应用程序,允许用户使用Kinect传感器与他的计算机完全交互.用户应该能够向应用程序讲授他自己的手势,并为每个人分配一些Windows事件.在学习过程之后,应用程序应该检测用户的移动,并且当它识别出已知的手势时,应该触发分配的事件.
关键部分是自定义手势识别器.由于手势是用户定义的,因此无法通过将所有手势直接硬编码到应用程序中来解决问题.我已经阅读了许多讨论这个问题的文章,但是没有一篇文章给出了我的问题的答案:哪种算法最适合学习和识别用户定义的手势?
我正在寻找的算法是:
请注意,结果不一定是完美的.如果算法不时识别出错误的手势,则比算法运行缓慢更可接受.
我目前正在决定3种方法:
您认为哪种方法最适合我正在尝试的方法?或者这个问题有其他解决方案吗?我很感激能够推动我前进的任何建议.谢谢.
(我正在使用Kinect SDK.)
我在这里有点困惑.
Kinect如何计算深度:我的理解是
问题1:是否考虑了红外投影仪和红外摄像机之间的距离?我猜不是因为它们太接近而不能被考虑.
问题2:现在我们直接从模式中获取深度.我们disparity map什么时候用来计算深度?
我需要通过网络从Kinect摄像机发送视频。我正在从以下两个Kinect来源捕获视频:
这相当于至少约53 MB / s的带宽。这就是为什么我需要在源处对两个视频源进行编码(压缩),然后在目标处进行解码。RGB-D数据将由目标处的对象跟踪算法处理。
到目前为止,我发现有许多论文讨论了实现这一任务的算法,例如: RGB和低带宽3D视频的深度帧内交叉压缩
问题在于,此类论文中描述的算法没有公共访问实现。我知道,我可以自己实现它们,但是它们利用了我还不了解的许多其他复杂图像处理算法(边缘检测,轮廓表征等)。
我实际上还发现了一些基于离散中值过滤器,增量(避免发送冗余数据)和LZ4压缩的C ++库:http : //thebytekitchen.com/2014/03/24/data-compression-for-the -kinect /
我的问题是:有没有更简单和/或更有效的方法来压缩Kinect源中的RGB-D数据?
PS:我正在用C ++编写代码。
compression video run-length-encoding image-compression kinect
我已经设置了一个深度摄像头提要,为了使其更有趣,我想从中计算出一些数据,例如法线,运动/光学流和其他数据集,以将它们用于视觉效果。我对光流以及是否可以从仅深度流中进行计算特别感兴趣。
实施了吗?如果是这样,我想知道什么方法,并了解哪种方法最容易使用。
kinect ×10
c# ×3
depth ×2
openkinect ×2
c++ ×1
calibration ×1
compression ×1
kinect-sdk ×1
linux ×1
mouse ×1
move ×1
opencv ×1
openni ×1
robotics ×1
sensor ×1
video ×1
wpf ×1