Azure Kinect ------ Multi Camera (Summary)

文章讨论了一个在使用AzureKinectSDK进行多相机身体追踪时遇到的问题,即由于Device.capture被多个设备共享导致输出的colorimage相同。错误源于在更新tracker时未传入正确的capturedevice。解决方案是在调用update函数时明确指定每个设备的capturedevice,以避免多个capture共用同一内存块。调试显示,尽管device对象不同,但它们的capture内存地址相同,这表明需要修改代码以确保每个Device.capture是独立的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Multi Device Error

Error

在这里插入图片描述

Reason

因为capture是None,所以就新建了个Device,但是默认Device.capture是None,所以error
在这里插入图片描述

Solution

在调用tracker.update的时候,需要传入对应device的capture
device ------>self ,不然多相机的话,device共用一个内存块
在这里插入图片描述

Param: Only segments

调用函数时,默认值

draw_bodies(only_segments=True)

在这里插入图片描述

capture color image & concate

intro

拿capture的color image,然后concat到一起,所以理论上应该是两个相机看到的两个视角
在这里插入图片描述

Error

But 输出是同一个视角
在这里插入图片描述

Debug

在这里插入图片描述
device的内存地址不一样,说明device是两个,是不同设备,但是capture的内存地址是一样的,那么就是说两个capture共用一个device.capture,所以输出的color image是一样的

trace

进到update函数debug
在这里插入图片描述

第一个设备的device0.update()在这里插入图片描述

第二个设备的device1.update()
在这里插入图片描述

device.capture的内存地址,是同一个地址
每次update,他返回的都是同一个device.capture,虽然它的handler(color image的指针)不一样
在这里插入图片描述
capture0和capture1指向的device.capture都是同一个东西第一行,capture0 指向 device.capture,把device.capture赋值capture0的handler
(即capture0的handler给device.capture装到里面去)
第二行,capture1指向device.capture,把device.capture赋值capture1的handler
(即capture1的handler喂给device.capture)

现在capture0和capture1的handler都是capture1的handler了

把device.capture想象成一个盒子,capture0的handler是红球,capture1的handler是黑球。一开始红球放到了盒子里,后来,黑球放到了盒子里把红球给踢掉了

因为在代码里是靠Device.capture新建的,这个变成了全局变量,Device.capture的生存周期是整个主线程的周期
Device.capture在构造的时候就已经确定好内存块了

Source Control

git的source control 查看修改
在这里插入图片描述

Reference

https://learn.microsoft.com/en-us/answers/questions/1306098/azure-kinect-sdk-1-4-1-body-tracking-for-more-than

未完待续……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cmy_CTO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值