0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用自己的手机摄像头和图片实现从零开始到点云

LiveVideoStack 来源:LiveVideoStack 作者:LiveVideoStack 2020-11-02 10:08 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

这个教程将带你使用自己的手机摄像头和图片实现从零开始到点云。

这是一个由3部分组成的系列文章。 我注意到,其他大多数关于三维重建的教程都在某种程度上有点欠缺。别误会,我认为它们是十分优秀的成果,但是在某种程度上它们是支离破碎的,或者它们当中有一部分过于深入地研究理论,或者两者兼而有之。 更糟糕的是,他们使用专门的数据集(如Tsukuba),这就会造成对一些数据集之外的任何东西在使用这种算法时,因为参数调微调会产生一些麻烦。 我相信三维重建(广义的计算机视觉)最酷的事情是重建你周围的世界,而不是别人的世界(比如数据集中的世界)。本教程是一个初步的尝试,旨在帮助您使用OpenCV的强大功能重新创建自己的世界。 简单地说,这个教程将带你使用自己的手机摄像头和图片实现从零开始到点云。所以,废话不多说,让我们开始吧。 注意 为了避免写一篇非常长的文章,本教程分为三个部分。 第1部分(理论和需求):概述了一个非常简单的立体三维重建所需要的步骤。 第2部分(相机校正):包括用代码校正你相机的基础设置/知识。 第3部分(视差图和点云):介绍了重建图片基础知识利用前面用代码标定过的相机。 三维重建所需的步骤 有很多方法可以重建周围的世界,但都可以归结为需要得到一张准确的深度图。 深度图中的每一个像素都表示的是深度信息(而不是颜色信息)。它一般都是用灰度图的形式展现出来。

Tsukuba 数据集的深度图。由OpenCV提供 如前所述,获取一张深度图有很多不同的方法,而这些方法都取决于所使用的传感器。一种传感器可以是一个简单的摄像机(从现在起在我们将称为RGB摄像机),但也可以使用其他传感器,如激光雷达或红外线或两者的组合。 传感器的类型将决定深度图的精准程度。根据精确度从大到小排列依次是激光雷达>红外线>相机。深度图也可以着色以更好的显示深度。

我的Kinect相机自拍图 根据所用传感器的类型,实际获取深度图需要的步骤或多或少。例如,Kinect相机使用结合了RGB相机和红外传感器,因此您可以立即获得一张深度图(因为它是由红外传感器处理的信息)。 但是,如果您除了手机摄像头之外什么都没有,该怎么办?在这种情况下,您需要进行立体重建。立体重建和使用您的大脑和眼睛用来实际理解深度的原理是一样的。 其要点在于从两个不同的角度看同一张图片,并在两张图片中寻找相同的事物,并从位置的差异推断出深度。这称为立体匹配。 为了进行立体匹配,重要的是使两张图片具有完全相同的特征。换一种说法,两张照片都不应该有任何失真。这是一个问题,因为大多数相机的镜头会导致不同程度的畸变。这意味着为了精确地进行立体匹配,需要知道相机的光学中心和焦距。 在大多数情况下,这些信息是未知的(尤其是对于您的手机摄像头),这就是为什么立体3D重建需要以下步骤的主要原因: 1. 相机校正:使用一组图像推断相机的焦距和光学中心 2. 图像畸变:去除重建要用到的图像中的镜头畸变 3. 特征匹配:在两张图片之间寻找相似的特征并构建深度图 4. 重投影点:使用深度映射将像素重投影到三维空间中。 5. 构建点云:生成一个包含三维空间中的点的新文件以进行可视化。 6. 构建网格以获得实际的三维模型(不在本教程的范围内,但很快将在其他教程中提供) 步骤1只需执行一次,除非更换摄像机。而每次你获得一对新照片时,都需要重新执行一遍第2-5步……大概就是这样子。 实际的数学理论(为什么)要复杂得多,但是在本教程之后,它将更容易处理和理解,因为你将在阅读完本文之后获取一个实例,你可以进行各种的实验。 在下一部分中,我们将探讨如何实际校准手机摄像头,以及一些校准的最佳实践操作。

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • iPhone
    +关注

    关注

    28

    文章

    13524

    浏览量

    216887
  • 三维
    +关注

    关注

    1

    文章

    529

    浏览量

    29972
  • OpenCV
    +关注

    关注

    33

    文章

    652

    浏览量

    45068

原文标题:使用iPhone相机和OpenCV来完成3D重建(第一部分)

文章出处:【微信号:livevideostack,微信公众号:LiveVideoStack】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    摄像头可靠性EMC设计优化

    一前言摄像头作为现代电子设备的重要组成部分,已广泛应用于智能手机、安防监控、自动驾驶等领域。详细了解摄像头,不仅有助于我们更好地使用相关设备,也为后续探讨其应用场景和技术优化奠定了基础,并且能快速
    的头像 发表于 04-07 11:34 128次阅读
    <b class='flag-5'>摄像头</b>可靠性EMC设计优化

    知派——ESP32‑S3 基于 ESP32-CAM 驱动 OV3660 摄像头模块开发

    ** 摄像头模组构建的无线视频监控方案。设备通过 WiFi 连接局域网,内置 HTTP Web 服务器,用户可通过浏览器或手机实时访问视频流。代码针对 OV3660 传感器进行了特定的图像校正与优化
    发表于 04-02 11:01

    ESP32-S3在初始化摄像头时检测到摄像头模组型号不被支持

    你现在遇到的核心问题是:ESP32-S3在初始化摄像头时检测到摄像头模组型号不被支持(错误码0x106(ESP_ERR_NOT_SUPPORTED)),导致摄像头探测失败并触发设备重启。这个错误
    发表于 02-11 06:38

    Termux手机摄像头采集图像/视频流 部署 YOLO 模型推理

    Termux手机摄像头采集图像/视频流 部署 YOLO 模型推理
    的头像 发表于 12-14 07:26 3275次阅读

    自动驾驶既然有双目摄像头了,为什么还要三目摄像头

    [首发于智驾最前沿微信公众号]在自动驾驶领域,纯视觉方案一直受到不少人的认可。双目摄像头由于模拟了人眼的工作方式,能够通过视差计算还原三维信息,在距离判断和空间感知上具有天然优势,因此被广泛应用于纯
    的头像 发表于 12-09 08:59 1233次阅读
    自动驾驶既然有双目<b class='flag-5'>摄像头</b>了,为什么还要三目<b class='flag-5'>摄像头</b>?

    车载双目摄像头如何“看见”世界?

    [首发于智驾最前沿微信公众号]想要让车辆知道前方有什么、距离多远、是否可以靠近,首先要做的是让其“看”清楚环境。在众多车载感知硬件中,与人类看到世界最类似的一个感知硬件便是车载双目摄像头了。 图片
    的头像 发表于 11-13 09:17 1651次阅读
    车载双目<b class='flag-5'>摄像头</b>如何“看见”世界?

    直播预约 |开源芯片系列讲座第30期:“一生一芯”计划——从零开始设计自己的RISC-V处理器芯片

    鹭岛论坛开源芯片系列讲座第30期「“一生一芯”计划从零开始设计自己的RISC-V处理器芯片」11月17日(周三)20:00精彩开播期待与您相聚,共襄学术盛宴!|直播信息报告题目“一生一芯”计划
    的头像 发表于 11-10 12:03 1106次阅读
    直播预约 |开源芯片系列讲座第30期:“一生一芯”计划——<b class='flag-5'>从零开始</b>设计<b class='flag-5'>自己</b>的RISC-V处理器芯片

    创世SD NAND贴片卡:智能摄像头存储难题的完美解决方案 #人工智能 #智能摄像头 #摄像头

    摄像头
    深圳市雷龙发展有限公司
    发布于 :2025年08月05日 11:17:13

    不懂手机摄像头气密性检测仪?看完这篇就懂了-岳信仪器

    在智能手机日益普及的今天,手机摄像头的防水防尘性能越来越受到消费者的关注。而确保这一性能的关键设备之一,就是手机摄像头气密性检测仪。那么,这
    的头像 发表于 08-04 11:47 1075次阅读
    不懂<b class='flag-5'>手机</b><b class='flag-5'>摄像头</b>气密性检测仪?看完这篇就懂了-岳信仪器

    红外摄像头模组是什么?科技时代的眼睛

    在现代科技迅速发展的背景下,红外摄像头模组逐渐成为各类智能设备中的重要组成部分。无论是在安防监控、智能家居还是汽车领域,红外摄像头模组以其独特的功能和优越的性能,正在改变我们的生活方式。本文将
    的头像 发表于 07-31 10:07 1296次阅读
    红外<b class='flag-5'>摄像头</b>模组是什么?科技时代的眼睛

    K230 RTOS Only SDK使用c语言开发,如何将摄像头存图转为jpeg?

    问题1:参考src/rtsmart/mpp/userapps/sample目录下的案例,实现摄像头存图,但是存图格式没有jpeg,网上搜到的是针对python的。当前自己做的测试程序也是在
    发表于 07-31 06:34

    K230micropython下能实现同时用USB摄像头和板载摄像头YOLO识别并显示在IDE上吗?

    K230micropython下能实现同时用USB摄像头和板载摄像头YOLO识别并显示在IDE上吗?以及如何提高USB进行YOLO识别的帧数?
    发表于 06-20 06:35

    企业必看!手机摄像头气密性检测仪提升生产效益

    在当今竞争激烈的手机市场,产品质量是企业立足的根本。而手机摄像头作为关键部件,其气密性能对成像质量、耐用性等至关重要,因此手机摄像头气密性检
    的头像 发表于 06-04 14:03 705次阅读
    企业必看!<b class='flag-5'>手机</b><b class='flag-5'>摄像头</b>气密性检测仪提升生产效益

    有偿求助!esp32cam摄像头车牌识别代码执行时,上位机闪退

    esp32cam摄像头车牌识别在操作执行识别车牌打开摄像头,上机位直接闪退,摄像头在例程检测是有图片的,有偿找一个能帮我修改整体代码的
    发表于 06-03 16:18

    基于RV1126开发板实现多路网络摄像头取流方案

    在RV1126上实现多路网络摄像头取流方案
    的头像 发表于 04-21 14:39 49次阅读
    基于RV1126开发板<b class='flag-5'>实现</b>多路网络<b class='flag-5'>摄像头</b>取流方案