深度图(Depth Map)

这篇具有很好参考价值的文章主要介绍了深度图(Depth Map)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

深度图

深度图是什么

深度图(depth map)是一种灰度图像,其中每个像素点距离相机的距离信息。它是计算机视觉中常用的一种图像表示方式,用于描述场景的三维结构。

深度图,技术积累,python,opencv,cnn,计算机视觉,图像处理

用张图简单直白的表示就是,越红的地方,代表距离观察者(即屏幕)的距离越近。看到图片中的锥体,距离我们观察的位置举例会比较近,所以颜色的更红。而图中的面具,由于是倾斜摆放的,其底部距离我们会更近一点,所以其底部的颜色要比顶部的颜色更红一些。

深度图的获取方式

深度图的发展历史可以追溯到20世纪60年代。最初,深度图像是通过手工标注或利用先验知识推测出来的。随着计算机视觉技术的发展,深度图像的获取方法和算法也不断进步和完善。

深度图的获取方式有多种,常见的方法包括:

  1. 通过激光雷达或结构光等传感器获取深度信息,再将其转换为深度图像。

  2. 利用双目或多目相机的视差信息计算深度,再将其转换为深度图像。

  3. 利用先验知识或模型对图像进行分析,推测出每个像素点的深度信息。

激光雷达或结构光等传感器的方法

激光雷达或结构光等传感器获得的深度,可以得到绝对深度,因为他们的数据是测出来的,根据TOF计算得到的真实距离。所以在连续的图片序列中,由于深度是绝对的,他们具有一样的参考价值。

激光雷达

这种方法也被叫做TOF方法(Time Of Fly)即通过激光/雷达波发出和收到的时间差,结合光速,计算信号在这段时间所走过的路程,所以也就能获得不同物体距离激光发射点的距离了。
深度图,技术积累,python,opencv,cnn,计算机视觉,图像处理

RGB-D相机

另外,除了雷达之外激光雷达相机也可以实现类似的效果,也可以利用激光雷达和结构光的配合,获得更加精准的深度数值
深度图,技术积累,python,opencv,cnn,计算机视觉,图像处理
深度图,技术积累,python,opencv,cnn,计算机视觉,图像处理

双目或多目相机的视差信息计算深度

我们可以模拟人眼的工作方式,使用两个摄像机,这种方法被称为立体视觉。

在下图中,p是空间一点,z是其深度,Ol和Or是左右两个相机,对应上述的O和O’。f是相机焦距。
深度图,技术积累,python,opencv,cnn,计算机视觉,图像处理

根据相似三角形的公式:
深度图,技术积累,python,opencv,cnn,计算机视觉,图像处理

相机的焦距,两相机的距离都是已知的,这样我们可以轻松地知道一个点的深度与x和x’的查成反比,从而得到图中所有点的深度图。

OpenCV也提供了相关的计算函数:
深度图,技术积累,python,opencv,cnn,计算机视觉,图像处理
这样我们就能够大致计算出图中的深度了:
深度图,技术积累,python,opencv,cnn,计算机视觉,图像处理

可能你会想问,上面的深度图片都是彩色的,为什么这张变成和黑白的,但实际上
这才是深度图本来的样子
我们通过OpenCV的apploycolor map函数对灰度图进行了颜色的映射,让结果看起来更加的生动和fancy。

下面给一个示例来说明applyColorMap的作用:

def ColorMap_demo():
    img = cv.imread("lena.jpg",cv.IMREAD_GRAYSCALE)
    if img.shape[0]==0:
        print("load image fail!")
        return
    windowname="applyColorMap"
    cv.namedWindow(windowname,cv.WINDOW_AUTOSIZE)
    pos=0
    cv.createTrackbar("Type",windowname,pos,22,callback_trackbar)
    while True:
        pos = cv.getTrackbarPos("Type",windowname)
        imgdst = np.copy(img)
        if pos != 0 :
            imgdst = cv.applyColorMap(img,pos-1)
        cv.imshow(windowname,imgdst)
        if cv.waitKey(10) == 27:
            break
if __name__ == "__main__":
    ColorMap_demo()

深度图,技术积累,python,opencv,cnn,计算机视觉,图像处理
深度图,技术积累,python,opencv,cnn,计算机视觉,图像处理

通过双目或多目相机获得的深度,也是绝对的深度,因为其原理是通过固定位置相机的相似三角形计算距离的。所以在连续的图片序列中,由于深度是绝对的,他们具有一样的参考价值。

采用深度学习模型估计深度

典型的采用深度学习的方式来估计RGB图像的深度的方法如下所示:

  1. 从RGBD相机的输出结果中,获取深度分量,得到真实的深度图。
  2. 仅输入RGB图,让模型生成对应的深度估计图
  3. 对模型的深度估计图和实际的深度图求差,获取估计的误差
  4. 深度学习网络的优化目标即为减小估计深度与实际深度的误差
  5. 在经过大量的训练之后,就能获得一个可以根据RGB图估计深度图的网络了
    深度图,技术积累,python,opencv,cnn,计算机视觉,图像处理

这里主要是指用模型估计图片中的物体深度,这样的方式获得的结果,在一张图片中不同的像素点之间的相对深度差,但是在在连续的图片序列中,两帧之间的深度估计结果没有必然的联系。例如,假设上面的面具是一个视频序列,在第一帧面具左眼的深度为100,面具右眼的深度估计为110.第二帧中,面具的左眼的深度可能是1000,而右眼的深度可能为1010。

可以发现,两帧之间同一区域的深度,在采用深度学习模型估计的时候,其绝对值结果是没有参考价值的:例如同样都是左眼,在第一帧中的深度和第二帧的深度估计数值甚至不在一个量级。

但是一帧内的不同位置,其相对深度是具有参考性的:例如不论在哪一帧,左眼和右眼的深度差始终为10.

这也正是由于深度学习模型训练的时候的策略所导致的,单目预测深度基本都是这种的拟合回归,本身数学上就是一个病态问题,不可能从单张2D的图片恢复出三维的信息。因为本身就是缺少信息的。

深度图的应用场景

  1. 三维重建:深度图可用于创建三维模型,例如建筑物、雕塑、人体等。

  2. 虚拟现实:深度图可用于创建虚拟现实环境,例如游戏、培训模拟器等。

  3. 自动驾驶:深度图可用于帮助自动驾驶汽车识别道路、障碍物和其他车辆。

  4. 医学成像:深度图可用于医学成像,例如X射线、CT扫描和MRI。

  5. 图层分隔:判断图片素材中物体的远近关系,实现图层前后信息的获取。

这里可以举一个自动驾驶的例子,即通过激光雷达获取周围的环境信息,用来感知各种物体与车体的距离。
深度图,技术积累,python,opencv,cnn,计算机视觉,图像处理

扩展阅读

显著图(Saliency Map)文章来源地址https://www.toymoban.com/news/detail-778545.html

到了这里,关于深度图(Depth Map)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机毕设 深度学习手势识别 - yolo python opencv cnn 机器视觉

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月14日
    浏览(39)
  • 基于深度学习的人脸专注度检测计算系统 - opencv python cnn 计算机竞赛

    🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的人脸专注度检测计算算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:5分 🧿 更多资料, 项目分享: https://gitee.co

    2024年02月07日
    浏览(77)
  • 计算机竞赛 基于深度学习的人脸专注度检测计算系统 - opencv python cnn

    🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的人脸专注度检测计算算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:5分 🧿 更多资料, 项目分享: https://gitee.co

    2024年02月10日
    浏览(53)
  • 计算机毕设 基于深度学习的人脸专注度检测计算系统 - opencv python cnn

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月11日
    浏览(52)
  • 计算机毕设 基于深度学习的图像超分辨率重建 - opencv python cnn

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月11日
    浏览(36)
  • 深度图(Depth Map)

    深度图(depth map)是一种灰度图像,其中每个像素点距离相机的距离信息。它是计算机视觉中常用的一种图像表示方式,用于描述场景的三维结构。 用张图简单直白的表示就是,越红的地方,代表距离观察者(即屏幕)的距离越近。看到图片中的锥体,距离我们观察的位置举

    2024年02月03日
    浏览(24)
  • 计算机竞赛 基于CNN实现谣言检测 - python 深度学习 机器学习

    🔥 优质竞赛项目系列,今天要分享的是 基于CNN实现谣言检测 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 社交媒体的发展在加速信息传播的同时,也带来了虚假谣言信息的泛滥,往往会引发诸多不

    2024年02月12日
    浏览(37)
  • 深度学习毕设项目 深度学习猫狗分类 - python opencv cnn

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月03日
    浏览(44)
  • 深度学习毕设项目 深度学习疲劳检测 驾驶行为检测 - python opencv cnn

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月03日
    浏览(33)
  • 竞赛 深度学习疫情社交安全距离检测算法 - python opencv cnn

    🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习疫情社交安全距离检测算法 ** 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:5分 🧿 更多资料, 项目分享: https://git

    2024年02月03日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包