我正在使用电脑的网络摄像头开发一个类似iPhone FaceID的程序。我参考了这个笔记本,它使用Kinect来创建RGB-D图像。那么,我可以使用我的网络摄像头捕捉几张图像来达到同样的目的吗?
以下是如何预测Kinect图像中的人。它使用一个.dat文件。
inp1 = create_input_rgbd(file1)file1 = ('faceid_train/(2012-05-16)(154211)/011_1_d.dat')inp2 = create_input_rgbd(file1)model_final.predict([inp1, inp2])
回答:
他们使用Kinect来创建RGB-D图像,而你只想使用RGB摄像头来做类似的事情?从硬件上来说,它们是不同的。因此,没有直接的方法可以实现这一点。
你必须首先使用单目图像来估计深度图。
你可以尝试使用“重新审视单图像深度估计:朝向更高分辨率的地图和准确的物体边界”,如下所示。得到的深度非常接近真实的基准数据。对于非生命威胁的情况(例如控制无人机或汽车),你可以随时使用它。
代码和模型可以在以下位置找到:
https://github.com/JunjH/Revisiting_Single_Depth_Estimation
编辑demo py文件以进行单图像检测。
image = you deep_learned_fake_depth = model(image) #在后面添加你的额外分类路由。
请注意,这种方法无法实时工作。因此,你只能在关键帧上进行操作。通常人们使用特征跟踪技术来模拟连续检测(这是常见的做法)。
另外请注意,一些手机设备确实配备了小型深度估计传感器,你可以利用这些传感器。具体细节我不是很清楚,因为我对Android和iOS的了解非常有限。