Sur*_*One 1 python opencv computer-vision tensorflow esp32
我正在尝试将单个图像转换为它的 depthmap,但我找不到任何有用的教程或文档。
我想使用 opencv,但如果您知道一种使用例如 tensorflow 获取深度图的方法,我会很高兴听到它。
立体视觉有很多教程,但我想让它更便宜,因为它是一个帮助盲人的项目。
我目前正在使用 esp32 cam 逐帧流式传输并使用 opencv 在 python 上接收图像。
通常,我们需要从世界的不同位置进行光度测量,以形成对世界的几何理解(又名深度图)。对于单个图像,无法测量几何,但可以从先前的理解中推断出深度。
单个图像工作的一种方法是使用基于深度学习的方法来直接推断深度。通常,基于深度学习的方法都是基于 python 的,所以如果你只熟悉python,那么这就是你应该采用的方法。如果图像足够小,我认为实时性能是可能的。有很多此类工作使用 CAFFE、TF、TORCH 等。您可以在 git hub 上搜索更多选项。我在这里贴的那个是我最近用的
参考:Godard、Clément 等。“深入研究自我监督的单目深度估计。” 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节点直接订阅深度或者全局优化的点云,投影到任意视角的深度图。
参考:Engel、Jakob、Thomas Schöps 和 Daniel Cremers。“LSD-SLAM:大规模直接单目SLAM。” 欧洲计算机视觉会议。斯普林格,湛,2014 年。
源代码:https : //github.com/tum-vision/lsd_slam