如何解决有没有办法从python / opencv中的单个摄像机视频生成实时深度图?
我正在尝试将单个图像转换为深度图,但是找不到任何有用的教程或文档。
我想使用opencv,但是如果您知道一种使用tensorflow来获取深度图的方法,我将很高兴听到它。
关于立体视觉的教程很多,但我想使其更便宜,因为这是一个帮助盲人的项目。
我目前正在使用esp32 cam逐帧传输流,并使用opencv在python上接收图像。
解决方法
通常,我们需要从世界上的不同位置进行光度测量,以形成对世界的 geometric 理解(也就是深度图)。对于单个图像,不可能测量几何形状,但是可以根据事先的理解来推断深度。
一种工作方式是使用基于深度学习的方法来指导推断深度。通常,基于深度学习的方法都是基于python的,因此,如果您只熟悉 python ,那么这是您应该采用的方法。如果图像足够小,我认为可以实现实时性能。有许多使用CAFFE,TF,TORCH等的此类工作。您可以在git hub上搜索更多选项。我在这里发布的是我最近使用的
参考: 戈达德,克莱门特等人。 “研究自我监督的单眼深度估计。” IEEE计算机视觉国际会议论文集。 2019。
源代码:https://github.com/nianticlabs/monodepth2
另一种方法是将大型FOV视频用于单个基于相机的SLAM。这其中有多种限制,例如需要良好的功能,较大的FOV,慢动作等。您可以找到许多这样的工作,例如DTAM,LSDSLAM,DSO等。HKUST或ETH还有其他一些软件包可以给定位置的地图(例如,如果您有GPS /罗盘),其中一些著名的名称是REMODE + SVO open_quadtree_mapping等。
基于单个相机的SLAM的一个典型示例是LSDSLAM。这是实时 SLAM。
这是基于ROS-C ++实现的,我记得他们确实发布了深度图。而且,您可以编写一个 python 节点以直接订阅深度或全局优化的点云,并将其投影到任何视角的深度图中。
参考:恩格尔,雅各布,托马斯·斯科普斯和丹尼尔·克雷默斯。 “ LSD-SLAM:大规模直接单目SLAM。”欧洲计算机视觉会议。占卜·斯普林格,2014年。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。