当前位置: 首页 > news >正文

3D,从无知到无畏

欢迎来到 PaQiuQiu 的空间

本文为【3D,从无知到无畏专栏目录】,方便大家更好的阅读!


🚀~写在前面~

近年来,3D视觉技术在众多领域飞速发展,除了智能机器人、自动驾驶、无人机等无人系统,在我们身边的AR、VR、智能家居,以及智能手机中通过扫描人脸三维结构实现手机解锁、手机支付等应用。除此之外在工业领域中,3D视觉技术可以进行纳米级的工业扫描、工业检测等,实现大场景三维重建,助力工业智能化发展。

3D视觉是一个多学科相融合的技术,可以总结为:计算图形学+计算机视觉+人工智能=3D视觉。3D视觉技术是通过3D摄像头采集视野空间内每个点位的三维坐标信息,通过算法复原获取三维立体成像,不会轻易受到外界环境、复杂光线的影响,与2D成像技术相比更稳定,体验感更强,安全性更高。


本文是3D,从无知到无畏专栏目录专栏的导航贴(点击链接,跳转到专栏主页,欢迎订阅,持续更新…)。

专栏介绍:根据自己学习3D一路走来的心路历程,以及在工作和学习过程中对3D的不断思考和总结,详细阐述了3D的学习路线图,并以图文并茂的方式来普及3D的算法原理、实际使用过程中的经验总结,并教会大家如何根据需求查找并阅读相关论文,以及拿到源码之后如何精准解析,适合基础进阶和想不断勇攀高峰的3D开发人员!

专栏适用人群:对点云有兴趣的小伙伴。

📢 在做技术分享与内部交流时,从刚毕业的3D新手到工作七八年及以上的老手,反应都比较强烈,都表示很有价值!

📢 开发某个特性或刁钻需求时,发现3D相关的理论介绍都很少,或停留在PCL上!

📢 通过沟通交流及对身边同事的观察发现,很多3D开发人员在借鉴或引用开源代码时无从下手,甚至有时会直接影响工作效率和项目进度!

📢 所以决定推出这方面成体系的技术专栏,希望能有效地解决大家的痛点问题!


专栏文章还在持续更新 ing…

如果文章有用,可以点赞收藏关注,也可以订阅专栏


通过对项目实战问题中的技术点及相关细节进行思考、总结及整理,可以加深对关联知识点的认知和理解,可以做更进一步的归纳与提炼,将相关的技术点高效串联起来,最后形成一套属于自己的系统完整的知识体系,这样也可以更好地服务于工作实践!多多关注细节,会有更深刻的理解和认识!


🎁~文章列表~

专栏文章分以下几个部分来展开:

📢 算法原理:勿在浮沙筑高台,该部分重点介绍了3D的一些基本概念和相关原理。

📢 实战为王:PCL和CC是3D开发过程中绕不开的2个开源库,一个偏算法实现,一个偏软件工程,在我们实际开发过程中,有效并合理的利用好这2个库,可以大大提高开发效率。

📢 经典论文:论文复现是一个算法开发人员必备的能力之一,所以对于经典的论文不光要读懂,还要能嵌入到自己的项目中去。

📢 源码解析:看一个程序员水平高低,不光是编码能力,还有源码解读能力;该部分介绍了在阅读源码过程中需要注意的细节以及如何有效提炼自己需要的那部分代码。


📖 Part1 算法原理

📜 1、3D,小白需要理解的点云概念

摘要:什么是点云、点云从哪儿来,点云在实际生活中用在哪以及点云有哪些优缺点。

📜 2、3D,2大点云库

摘要:PCL和Open3D,是我们这个时代最好用的2个点云库,它给了我们一个系统学习点云的路径,我们定不辜负。

📜 3、3D,硬件有哪些—1?

摘要:目前,3D系统主要靠立体视觉,结构光和激光三角方案,这些系统主要用在固定工作距离,同时在特定检测领域中需要较高水准的校准。。

📜 4、3D,硬件有哪些—2?

摘要:毫米级、微米级、纳米级,分别对应不同成像原理的3D视觉系统。

📜 5、3D,激光三角法

摘要:激光三角法如何实现距离测量。

📜 6、3D,点云中的2棵树

摘要:建立空间索引在点云数据处理中已被广泛应用,常见空间索引一般是自顶向下逐级划分空间的各种空间索引结构,比较有代表性的包括 BSP树、 KD树、 KDB树、 R树、 R+树、 CELL树、四叉树和八叉树等索引结构,而在这些结构中KD树和八叉树在3D点云数据组织中应用较为广泛

📜 7、3D,kd-tree理论及应用

摘要:作为三维领域中一个重要的数据来源,点云主要是表征目标表面的海量点的集合,并不具备传统网格数据的几何拓扑信息,所以点云数据处理中最为核心的问题就是建立离散点间的拓扑关系,实现基于邻域关系的快速查找。。

📜 8、3D,点云滤波到底滤了什么

摘要:获取点云数据时,由于设备精度、操作者经验、环境因素、以及电磁波的衍射特性电磁波遇到障碍物时偏离原来直线传播的物理现象)等带来的影响,点云数据中将不可避免地出现一些坏分子1号——噪点;此外,实际应用时除了这些随机误差产生的噪点外,由于受到外界干扰如视线遮挡、障碍物等因素,点云数据中还会存在一些离主体点较远的坏分子二号——离群点

📜 9、3D,点云下采样

摘要:对于大规模点云处理而言,直接对点云进行特征提取能较好地保留三维结构信息。但由于点云的无序性,直接处理的方式在对邻域进行搜索时需要较高的计算成本,一个常用的解决方式就是对点云进行下采样,将对全部点云的操作转换到下采样所得到的关键点上,从而达到降低计算量的目的。

📜 10、3D,点云平滑法线估计

待更新...

📜 11、3D,点云关键点和特征描述

摘要:3D点云特征描述与提取是点云信息处理中最基础也是最关键的一部分。如果要对一个三维点云进行描述,光有点云的位置是不够的,常常需要计算一些额外的参数,比如法线方向、曲率、纹理特征、颜色、领域中心距、协方差矩阵、熵等等。如同图像的特征(sift、surf、orb)一样,我们需要使用类似的方式来描述三维点云的特征。

📜 12、3D,点云分割

摘要:点云分割的目的是分块,便于后续的单独处理。一般做法是根据空间、几何和纹理等特征信息进行划分,使同一划分内的点云具有相同或相似的特征。

📜 13、3D,点云平面拟合

摘要:点云中拟合平面的方法一般有2种:最小二乘和RANSAC

📜 14、3D,点云拼接1

摘要:作为点云的热门研究方向之一,点云拼接一直以来都是众多科研工作者争相研究的对象。那么,它究竟有何魅力呢?

📜 15、3D,点云拼接2

摘要:毫米级、微米级、纳米级,分别对应不同成像原理的3D视觉系统。

📜 16、3D,点云重建

待更新...

📜 17、3D,点云可视化技术

摘要:点云数据中本身仅仅包含多个点数据,对于较小规模的点云数据,只需要依次使用面或者点等方式将其全部渲染出来。但是面对较大数据量的点云,就需要考虑许多随之而来的问题。

📜 18、3D,手眼标定公式推导

摘要:手眼标定分眼在手上和眼在手外,正确的公式推导是保证标定精度的前提条件。


📖 Part2 实战为王

📜 1、PCL实战为王

PCL common中常见的基础功能函数

PCL 常用小知识

PCL 滤波采样(一)——统计滤波

PCL 滤波采样(二)——直通滤波

PCL 滤波采样(三)——MLS平滑

PCL 滤波采样(四)——体素采样

PCL 点云表面法线计算

PCL 平面拟合——RANSAC

PCL 平面拟合——最小二乘

PCL 最小包围盒

PCL 欧式聚类分割

PCL 边界提取

PCL 点云变换

PCL 点云配准——模型点云和实际点云

PCL KdTree点云密度

PCL KdTree去除重叠点

PCL OcTree点云压缩

PCL OcTree空间变化检测

PCL 大规模点云显示

摘要:点云库(Point Cloud Library, PCL)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等;支持多种操作系统平台,可在Windows、Linux、Android、Mac OS X、部分嵌入式实时系统上运行。如果说OpenCV是2D信息获取与处理的结晶,那么PCL就在3D信息获取与处理上具有同等地位。PCL是BSD授权方式,可以免费进行商业和学术应用。。

📜 2、工业应用

切比雪夫平面拟合

摘要:基准平面需要满足最小包容(包容的意思是,一组平行平面,使得全部点都被平行平面夹住)条件。

深度图运算

摘要:为了能准确地测量物体表面粗糙度信息,需要通过图像运算的方式,增强这些特征,从而进行进一步的测量。

📜 3、学习CGAL

待更新...

📜 4、一窥CC密码

3D点云处理软件CloudCompare

CloudCompare 整体架构

CloudCompare中CCCoreLib模块介绍

CloudCompare—点云分割

摘要:CloudCompare是一个三维点云(网格)编辑和处理软件。最初,它被设计用来对稠密的三维点云进行直接比较。它依赖于一种特定的八叉树结构,在进行点云对比这类任务时具有出色的性能。此外,由于大多数点云都是由地面激光扫描仪(例如LMI)采集的,CloudCompare的目的是在一台标准笔记本电脑上处理大规模的点云——通常超过1000万个点云。例如在一台带有双核处理器的笔记本电脑上,计算出300万个点到14000个三角形网格的距离需要10秒。


📖 Part3 源码解析

📜 1、PCL边界提取——源码解析

摘要:在PCL中集成了一个非常经典的点云边缘检测算法,这个算法也在 PCL点云边界提取这篇博客中讲解了。该文章只介绍了AC算法的原理及接口调用。那么它的内部具体是如何实现的呢?如果知道了它的具体实现,那么在某些情况下,就可以直接在它的源码基础上做一些小的改动,就能够更好地适应不同的需求了。这里只对AC边缘检测算法做个源码解析及修改后调用的过程记录,若以后需要解析其他PCL功能,也可以借鉴一下。


📖 Part4 经典论文

📜 1、叉车机器人托盘定位技术:近期进展回顾

摘要:本文概述了工业叉车机器人和托盘拣选设备上的托盘识别和定位技术。回顾和比较了一些现代计算机视觉技术。 特别的,深度神经网络(DNN)通常用于RGB图像中托盘的检测和定位;点云方法用于标记二维范围数据中的感兴趣区域(ROI),并提取托盘的特征,该方法能够提供托盘的精确定位。此外,还介绍了托盘识别和定位算法(PILA)模型,该方法可以在没有任何人工辅助的情况下提供高精度的托盘方位角和中心位置,利用RGB图像和点云数据,配合低成本的硬件来平衡定位精度和运行时间。

📜 2、【6D位姿估计】Point Pair Feature (PPF)

摘要:整体建模的本质是通过定义点对特征,来构建特征矢量的集合以及每个特征矢量对应的点对集,作为全局模型描述。当定义好全局模型描述(Global Model Description)后,就可以考虑局部匹配了。

📜 3、一种快速高效的点云表面重建算法

摘要:贪婪投影算法(Greedy Projection Algorithm)是M. Gopi等人[1]于2003年提出的点云表面重建算法。该算法从一个数据点 R 开始,找到与 R 相邻的一组数据点 C_R,连接 R 与 C_R,就可得到数据点 R 的所有邻接三角形(顶点中包含 R 的三角形)。然后以广度优先搜索的形式,遍历 C_R 中的数据点,找到这些数据点的邻接三角形,直到遍历完所有数据点。该算法的重点在于如何连接数据点R 和 C_R以生成高质量三角形(避免小角度),并保证三角形不会交叠。算法通过投影的方式,将三维数据点投影至二维,在二维平面内连接数据点,以获取不交叠三角形;通过贪婪的方式,当有多个数据点可连成三角形时,尽可能生成角度大的三角形。


📝~写在后面~

3D视觉就业方向有很多,同时对招聘者有着一定的高标准、严要求。在招聘求职过程中公司不但要求熟练掌握相关技能,扎实的编程基础,更要有着相关从业经验,自然也和招聘岗位给出非常诱人的薪资有关。比如:三维重建算法工程师、3D视觉算法工程师、SLAM算法工程师、传感器标定算法工程师、规划控制算法工程师、视觉感知算法工程师、相关产品经理等等,同时这些岗位也有着非常诱人的薪资,1-3年经验18-25k或更高,3-5年经验25-40k或更高,专家级给出百万年薪甚至更高

3D视觉入门相对于开发岗,传统计算视觉,2D计算机视觉要难很多,同时学生和求职者在选择方向上也会有迷茫或者困惑。本专栏包含算法原理层、论文解读层、源码解析层和实际应用层,绝对可以帮到大家,少走弯路,祝大家早日找到心仪且高薪工作

期待再次来到 PaQiuQiu 的空间

欢迎一起加油进步哦~

愿不负韶华,在点云的海洋里尽情的遨游吧,我们这群追风少年!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 使用ChatGPT4o+colab+gradio+huggingface1小时内,完成快速搭建任何AI应用程序或网站【详细教程步骤】建议收藏
  • 11个行为型模式
  • 【Python问题集锦】如何对不规则的时间序列进行对齐和插值
  • Sqlserver 备份表
  • 扩散模型系列笔记(一)——DDPM
  • 拦截指定http请求头,请求参数,请求方法,保存到本地
  • 左神学习笔记-岛屿数量问题(java版算法)
  • 堆排序以及向上、向下调整算法的时间复杂度推导及实现(超详细)
  • 五种创建springBoot项目的方法(本质上是三种)
  • FFmpeg学习
  • C语言从头学44——I/O 函数(一)
  • 软件测试生命周期、BUG描述与处理策略
  • leetcode面试算法题
  • Java程序员接单分享
  • Redis远程字典服务器(1)—— 初识Redis
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • ComponentOne 2017 V2版本正式发布
  • HashMap剖析之内部结构
  • Linux Process Manage
  • Python学习之路13-记分
  • spring学习第二天
  • Vue 2.3、2.4 知识点小结
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 安卓应用性能调试和优化经验分享
  • 动态魔术使用DBMS_SQL
  • 基于Android乐音识别(2)
  • 前端路由实现-history
  • 小程序开发中的那些坑
  • 用element的upload组件实现多图片上传和压缩
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 进程与线程(三)——进程/线程间通信
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​低代码平台的核心价值与优势
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • ###项目技术发展史
  • (9)STL算法之逆转旋转
  • (vue)页面文件上传获取:action地址
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (第30天)二叉树阶段总结
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)Sublime Text3配置Lua运行环境
  • (转)大型网站架构演变和知识体系
  • (转)四层和七层负载均衡的区别
  • (最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树