这个编程指南暗示这是可能的,所以我想到了什么.
但是现在,它不起作用.
主机操作系统是Vista 64位,VMWare Workstation 6.5.3运行Windows 7企业版32位.
VM上安装的软件:
我插入Kinect,设备被VM识别,然后我运行Sample Shape Game,它无法识别设备.它说"插入Kinect然后重试",结果证明是错误0x80080014,这导致 http://social.msdn.microsoft.com/Forums/en-US/kinectsdknuiapi/thread/4da8c75e-9aad-4dc3- bd83-d77ab4cd2f82 / 这给了我两件事要看:
在设备管理器中,我看到一个包含Microsoft Kinect Audio Control,Microsoft Kinect Camera和Microsoft Kinect Device的"Microsoft Kinect"组,但除了VMware VMaudio之外,"声音,视频和游戏控制器"下没有任何内容.应该有"Kinect USB Audio".
我猜我还有一些与VMWare USB /硬件选项有关的问题(无论是带有USB/CD/HD /软盘等图标的托盘)还是一些巧妙的重启和(联合)插件组合,但我几乎没有热情.
有任何想法吗?TIA
编辑:我意识到我在OpenKinect的主机(Vista)系统上有一些挥之不去的驱动程序.删除后,我再也看不到VM中的Kinect了.嗯.
如果从不同角度收集各种图像和深度数据,是否可以构建静止物体的三维模型,我想的是有一种圆形传送带,其中放置了一个kinect和传送带,而在3d空间中重建的真实物体位于中间.然后传送带围绕图像以圆形旋转并且捕获大量图像(可能每秒10个图像),这将允许kinect从包括深度数据的每个角度捕获图像,理论上这是可能的.还必须使用纹理重新创建模型.
我想知道的是,是否有任何类似的项目/软件已经可用,任何链接将被赞赏是否可能在6个月内这样做我将如何继续这样做?比如任何类似的算法,你可以指点我这样的
谢谢,MilindaD
algorithm image-processing computer-vision 3d-reconstruction kinect
我正在与Kinect和OpenCV合作.我已经在这个论坛上搜索,但我找不到类似我的问题.我保留了Kinect(16位)的原始深度数据,我将它存储在CvMat*中,然后将其传递给cvGetImage以从中创建IplImage*:
CvMat* depthMetersMat = cvCreateMat( 480, 640, CV_16UC1 );
[...]
cvGetImage(depthMetersMat,temp);
Run Code Online (Sandbox Code Playgroud)
但是现在我需要处理这个图像才能做cvThreshdold并找到轮廓.这两个函数在输入中需要8位深度图像.如何在8位深度的CvMat*中转换CvMat*depthMetersMat?
我必须使用Kinect获得真实世界坐标(x,y,z).实际上,我想要Kinect的x,y,z距离(以米为单位).我必须从场景中的一个独特的对象(例如一个小黄色框)中获取这些坐标,以不同的颜色着色.
在这里,您可以看到该场景的示例

我想要货架上黄色物体的距离(x,y,z,以米为单位).
请注意,场景中不需要人(骨架).
首先,我想知道是否可行而且简单易行?所以,如果您发送一些可以帮助我完成此任务的链接/代码,我将不胜感激.
最近,我一直在使用新的Developer Toolkit(v1.5.1)尝试使用Kinect进行面部识别.可以在此处找到FaceTracking工具的API:http://msdn.microsoft.com/en-us/library/jj130970.aspx.基本上我到目前为止所做的就是获得每个人独有的"面部签名".为此,我参考了Kinect跟踪的这些面部点:(
).
然后我跟踪了我的脸(加上几个朋友)并使用基本代数计算了点39和8之间的距离.我也获得了当前头部深度的值.下面是我获得的数据样本:
DISTANCE FROM RIGHT SIDE OF NOSE TO LEFT EYE: 10.1919198899636
CURRENT DEPTH OF HEAD: 1.65177881717682
DISTANCE FROM RIGHT SIDE OF NOSE TO LEFT EYE: 11.0429381713623
CURRENT DEPTH OF HEAD: 1.65189981460571
DISTANCE FROM RIGHT SIDE OF NOSE TO LEFT EYE: 11.0023324541865
CURRENT DEPTH OF HEAD: 1.65261101722717
Run Code Online (Sandbox Code Playgroud)
这些只是我获得的一些价值.所以我的下一步是使用excel绘制它们.我的预期结果是深度和距离之间的非常线性的趋势.因为随着深度的增加,距离应该更小,反之亦然.因此,对于人X的数据,趋势是相当线性的.但是对于我的朋友(Y人)来说,情节到处都是.所以我得出结论,我不能使用这种方法进行面部识别.我无法获得跟踪如此小距离所需的精度.
我的目标是能够识别进入房间的人,保存他们的"个人资料",然后一旦他们退出就将其删除.对不起,如果这有点多,但我只是想解释一下到目前为止我取得的进展.那么,你们怎么看待我如何实现面部识别?任何想法/帮助将不胜感激.
我需要开发一个应用程序,其中用户(物理治疗师)将在Kinect前面执行运动,我将在数据库中写入数据运动,然后患者将尝试模仿此运动.系统将计算记录和执行的运动之间的相似性.
我的第一个想法是,在记录期间(每5秒,例如),存储点的位置(x,y,z),然后在执行时间(按患者)比较它们.
我知道这种方法太简单了,因为我想在不同大小的人中,骨架的识别方式不同,因此比较不可靠.
我的问题是将保存的动作与执行的动作(动态)进行比较的最佳方法.
我目前正在参加计算机视觉课程,对于我的最终项目,我将制作一个与Kinect交互的小游戏.
现在我想用Java制作这个游戏,因为我之前从未真正想过制作游戏,而且我对语言很满意.但我似乎无法找到一种方法来访问深度数据(我只需要将其打包成一些Java数据结构)和RGB数据(相同的想法).
现在,我有办法与Kinect"交谈".我按照本教程操作,可以使用glview终端中的命令检测kinect .
我有一个名为Processing的东西,它承诺是一个允许我使用Kinect的Java库,但是它使用的是自己的语言,它是用Java构建的,所以它不是真正的Java,这意味着我不能使用所有的GUI和正常的Java功能.
我想要做的是以某种方式调用import random.Kinect.code;Java程序的顶部,让我使用最基本的Kinect功能,如getDepth()或getRGB(),并在Java中执行其他所有操作.
有谁知道我可以这样做的方式?(顺便说一句,我正在运行MAC OSX Lion)
我在使用SDK 2.0安装Kinect for Windows(V1版本)时遇到问题.我假设SDK 2.0还包含v1所需的驱动程序,因为下载细节说明引入了对Kinect for Windows v2传感器的支持.
我遇到的问题是在USB 3.0端口插入kinect后(kinect已插入AC),它安装了驱动程序,但设备管理器有黄色三角形,并且它不断发出插入/拔出的声音.
我错过了一个步骤,还是应该使用不同的SDK版本(如果是,哪一个)?
目前我正在开展一个使用Kinect的项目,这个项目要求我知道那个人在那个时候所看到的地方,我发现我需要找到那个人的视线.
现在,我可以找到人的骨骼的头部但不能跟踪眼球运动.
if (body.TrackingState == SkeletonTrackingState.Tracked)
{
Joint joint = body.Joints[JointType.Head];
SkeletonPoint skeletonPoint = joint.Position;
// 2D coordinates in pixels
System.Drawing.Point point = new System.Drawing.Point();
if (_mode == CameraMode.Color)
{
// Skeleton-to-Color mapping
ColorImagePoint colorPoint = _sensor.CoordinateMapper.MapSkeletonPointToColorPoint(skeletonPoint, ColorImageFormat.RgbResolution640x480Fps30);
point.X = colorPoint.X;
point.Y = colorPoint.Y;
//Console.WriteLine(" X == " + point.X + " Y == " + point.Y);
X = (int)Math.Floor(point.X + 0.5);
Y = (int)Math.Floor(point.Y + 0.5);
}
// DRAWING...
Ellipse ellipse = new Ellipse
{
Fill = System.Windows.Media.Brushes.LightBlue,
Width …Run Code Online (Sandbox Code Playgroud) 我试图使用Media Flow Tracker根据区域跟踪我的手,但是一段时间后边界框会不断增加.它在前10秒左右正常工作.
这是一段代码片段:
def main():
display = SimpleCV.Display()
cam = Kinect()
ts = []
bb = None
img = cam.getDepth().flipHorizontal()
while display.isNotDone():
depth = cam.getDepth().flipHorizontal()
filtered = depth.stretch(0, 180).binarize().dilate(1)
if bb is None:
blobs = filtered.findBlobs()
if blobs:
hand = blobs.filter(abs(7000 - blobs.area()) < 500)
print hand
if hand:
bb = hand[0].boundingBox()
print bb
if bb is not None:
ts = filtered.track("mftrack", ts, img, bb)
if ts:
ts.drawBB()
ts.showPixelVelocityRT()
ts.drawPath()
filtered.show()
Run Code Online (Sandbox Code Playgroud)