零件三维缺陷检测相关基础知识

看了几篇文献,总结下来三维缺陷检测的过程,总的来说分为:

  • 零件表面的三维数据获取
  • 根据零件的三维数据信息进行三维重建
  • 目标点云与标准点云的配准
  • 配准后的点云做差得到缺陷信息

当然这里面还要涉及到很多的知识,下面就从前3个方面入手,分别记录一些基础知识。

三维图像测量可分为接触式和非接触式,接触式测量是利用专业仪器直接检 测物体或环境,但接触时可能会对被测物体产生不可逆的损坏或污染,非接触式测量不直接接触被测物体,利用不同方式获取物体二维信息(如距离、投影、点坐标等),再通过计算机技术识别并重构三维物体。非接触式测量,根据光是否主动投射又可分为主动式和被动式,被动式测量不设置专门的光,而是利用外部光源的反射获取投影信息;主动式测量则主动像待测环境中投射光源(如结构光、激光),获取点云信息后再进行三维重建

三维数据获取


图1.三维数据获取方法

现在针对面临的任务,激光扫描的方法可以首先排除掉。
光栅投影检测实际上也属于结构光扫描,严格来说是多线结构光扫描。与线结构光扫描不同的是,物体无需沿垂直于结构光投射面相对平移。

SFX 是从单幅或多幅图像获得物体表面三维信息。这里的 X 可以代表 Stereo(光度),Texture(纹理),Shading(阴影),Motion(运动),Contour(轮廓)等。
SFS(Shape from Stereo,光度立体恢复法),是从在不同光照环境下,分别拍摄物体二维图像,然后从序列图像中求取物体表面的梯度信息。这种方法属于多幅图像求取表面三维信息,要求在测量环境中能提供变化的不同光照效果,对硬件环境要求较高。
SFT(Shape from Texture,纹理立体恢复法)将物体表面的纹理当作是一个个纹理单元组成,这些纹理单元周期重复出现,但是不同的位置,其纹理单元的朝向不同,所以,分析纹理单元的朝向,可以获得物体表面的朝向,即梯度信息。这种方法测量精度较低。
SFS(Shape from Shading, 阴影立体恢复法)。这种方法由物体表面在理想光照下亮度的变化求取物体表面的朝向变化,然后由朝向求取深度信息。求取过程中假设光照为均匀平行光,且物体表面的为理想散射表面。所以这种方法对环境光源设计比较严格。
SFM(Shape from Motion,运动立体恢复)。相机拍摄运动的被测物,通过不同时刻拍摄的物体图像的变化,分析出物体与相机之间的位置关系。这种方法由于拍摄的图像较多,图像处理较复杂。 综上所述,SFX 方法都是根据物体表面在一定光照下的亮度变化,来求取表面的朝向(梯度)信息。SFX 方法对光源和物体表面要求较严格,不同形状的产品,光源要求可能不同,且检测精度不高。

多目立体视觉是模拟人的左右双眼观察同一物体时的视差来求取物体表面信息。多目立体视觉检测在物体表面缺陷检测中使用较少,往往与结构光扫描结合在一起,以消除单相机扫描的盲区,或者实现多传感器的数据融合。

三维重建

主要了解光栅投影法和SFS(Shape from Stereo光度立体恢复法 ,Shape from Shading阴影恢复法)。(其中SFX涉及了比较多光学方面的知识)。

进行三维重建时往往要考虑硬件的选择,包括CCD,投影仪,光源等。
工业相机通常有线阵相机和面阵相机,线阵型工业相机是一种成像单元呈线状排列的相机,其拍摄出的图像宽度通常只有几个像素,长度能达到几千像素,因此比较适合视场狭长的区域。面阵型工业相机成像单元呈矩阵排列可以直接获取二维图像信息,所以适用范围比线阵相机广。要想获得高精度的图像,光学镜头的选择也至关重要。目前工业用镜头种类很多,以能否变焦可分为定焦镜头与变焦镜头。以视角大小可分为标准镜头、窄角镜头、广角镜头和鱼眼镜头。

目前投影光机按工作原理可分为LCD与DLP两种,且各有技术特点。LCD投影技术主要利用液晶的光电效应,通过电场的变换改变液晶的透光率或反射率。光线首先经过分光镜分成红绿蓝三基色光线,分别照射到三基色液晶板上,再通过透镜放大和反光镜输出。DLP数字光处理技术是基于数字微镜元件(DMD)开发的。DMD上有许多小反射镜,每个小反射镜都有独立的光开关,代表着一个像素。DLP数字控制芯片将视频信号转换成一系列脉冲调制信号,控制小反射镜的开与关;冷光源发出的光经均匀化后通过色轮分成红绿蓝三基色,再经过透镜投射到DMD上,最后经过反射镜在投影幕上投影成像。LCD优势体现于色彩还原上,其色彩生动、层次丰富尤其适合于显示动态视频。DLP的颜色对比度强于LCD,因此显示图像更锐利,而且由于LCD的光开关在液晶板前面,所以像素点之间会存在较大的缝隙。同时根据成像原理可知,LCD与DLP相比很难做到小型化。
投影光机投射单色的余弦光栅,所以色彩对比度越高越好,投影精度越高,采集到的点云质量也越高,所以选择DLP。

  • 基于结构光的方法
    原理(多频外差法)
    三维重建首先要建立传感器测量的数学模型。数学模型中一般包含的参数是相机的内参和外参。所以这类方法离不开相机的标定。

    图2.摄像机针孔模型(理想透镜)

理想透镜模型:

其中,u为物距,v为像距,f为焦距。

相机标定主要是找到空间点在图像坐标系下投影关系。

1.世界坐标系中的点P(Xw,Yw,Zw)转换到相机坐标系中得到点p(Xc,Yc,Zc):

R、T分别是世界坐标系到相机坐标系的旋转矩阵和平移矩阵。

2.相机坐标系到图像坐标系的转换矩阵,:

3.物理坐标系转换到像素坐标系:


4.联立以上方程,得到空间点到图片像素坐标系的投影关系:

以上是没有考虑相机畸变的数学模型。

相机参数包括内参和外参,内部参数有相机的焦距、光心坐标和镜头畸变等信息。外部参数代表呈像模型中的坐标系的变换参数。根据靶标的不同可以分为立体标定算法和平面标定算法;根据是否用到标定物可以分为基于靶标的标定算法和自标定算法;根据镜头类型可以分为小孔模型标定和远心镜头标定。(有一种经典的标定法叫做张正友标定法,可以了解一下)
具体可以看这篇博客相机标定

三维点云数据配准

三维点云数据配准是表面缺陷检测最关键的部分。
为了与标准数据进行比较,需要将采集到的点云数据与离散化后的标准 CAD 模型(标准点云数据)进行配准,以方便对应坐标求差。
配准算法在机器视觉,图像处理中应用非常广泛,其主要流程包括:特征提取、特征表示、匹配计算与评价三个环节。在点云数据中,其特征主要包括不依赖于坐标系的内特征,如曲率、两点间的距离;和与坐标系有关的外部特征,如曲面的切平面等。根据特征的不同,匹配算法可以分为内特征匹配与外特征匹配。
内特征匹配是一种降维匹配方法,包括 Surface signature 法、Spin-Image法、Geometric Histogram 法、Harmonic shape image 法、Splashes 法等。内特征匹配算法是一种间接匹配方法,由于采用了降维处理,计算速度较快,但配准精度不高,一般用于复杂场景中的物体识别,且对点云数据的网格分辨率比较敏感。
外特征匹配最常用的是标签法与最优匹配算法。标签法需要在被测物体上粘贴至少三个标志点或定位球,作为物体的特征点。通过三个点的坐标,就可以计算出所在坐标系之间的位姿关系。为了提高计算的精度,常常需要在被测物体上贴放更多的标签或定位球,显然,这种方法不适合全检或在线测量。
最优化匹配算法基本思想是求取[R t],使得下式达到最优:

其中,Pi‘是点云数据中的一点,pi是对应的 标准模型上的一点。
最优化匹配方法涉及的主要问题包括匹配点集的选取、对应点对的确定、噪声干扰以及匹配结果的评估等。 匹配点集的选择方法包括均匀重采样点集、随机采样点集和法矢分布采样点集等。对于具有明显几何特征的物体,一般采用基于法矢分布的采样点集。 对应点对的确定方法包括最近点法、法矢投影法、直接投影法、最近点相容法等。对应点对的确定是最优化匹配算法的关键,错误的对应,使得匹配结果出现很大的偏差,或者导致优化算法不收敛。

最常用的优化匹配算法是最邻近点迭代 ICP(Iterative Closet Point)算法
ICP算法本质上是基于最小二乘法的最优配准方法。该算法重复进行选择对应关系点对, 计算最优刚体变换,直到满足正确配准的收敛精度要求。
步骤:

  • 计算两个点云的对应近点(常用方法K-d tree)
  • 求得使上述对应点对平均距离最小的刚体变换,即求得平移参数和旋转参数
  • 对目标点云进行刚体变换得到新的点集
  • 如果新的变换点集与参考点集满足两点集的平均距离小于某一给定阈值,则停止迭代计算,否则新的变换点集作为新的X2继续迭代,直到达到目标函数的要求
    一个有代码的使用例子
    根据对应点对确定策略的不同,演化出了各种不同的优化算法,这些算法的主要瓶颈在于点对的搜索及优化计算,且对点云与 CAD 模型的初始化位置也比较敏感。
    K-d tree原理及代码

缺陷检测定位

配准后的点云做差,根据预先设定的阈值得到缺陷信息。

具体操作是不是像我想的这么简单,还没有查更多资料。所看的论文里还涉及到点云拼接以及二维与三维信息融合的一些内容,之后有需要的话会继续了解。

推荐一个3D学习资源公众号
一些参考文献:
[1]张超,贾国龙,刘富强. 一种钢轨表面缺陷三维检测系统及方法[P]. CN111122598A,2020-05-08.
[2]常轶民,金永,吴靖.基于光栅投影的工件表面缺陷检测方法研究[J].工具技术,2020,54(01):94-97.
[3]王磊. 基于光度立体的金属板带表面缺陷三维检测方法[D].北京科技大学,2019.
[4]李西凯. 基于机器视觉的光器件金线质量在线检测技术及实现[D].华中科技大学,2019.
[5]刘丹丹. 基于机器视觉的二维图像增强与三维实体重建方法的研究[D].山东大学,2019.
[6]黄涛. 基于单目视觉的注塑工件缺陷检测系统研究[D].华南理工大学,2019.
[7]戴亚康,周志勇,耿辰,胡冀苏,钱旭升. 表面缺陷检测和三维建模方法[P]. CN109345523A,2019-02-15.
[8]王静强. 基于二维和三维视觉信息的钢轨表面缺陷检测[D].西南科技大学,2018.
[9]王家豪. 立体零部件装配合格率三维检测与识别方法研究[D].天津工业大学,2018.
[10]王颖,吴峰,付国平.基于散乱三维点云的缺陷检测和三维重构方法[J].应用光学,2016,37(03):402-406.
[11]吴庆华. 基于线结构光扫描的三维表面缺陷在线检测的理论与应用研究[D].华中科技大学,2013.
[12]丘永亮,彭明仔,符浩.基于单幅图像的三维视觉测量与缺陷检测技术研究[J].机电工程技术,2009,38(07):64-65+97+181.

零件三维缺陷检测相关基础知识相关推荐

  1. 缺陷检测相关论文阅读总结(记录自己读过的论文主要内容/Ideas)

    缺陷检测相关论文阅读总结(记录自己读过的论文主要内容) Attention!!! 点击论文题目即可访问原文or下载原文PDF文件: 每篇文章的内容包含:内容总结.文章Ideas: 更多关于缺陷检测以及 ...

  2. 一文详解缺陷检测相关算法!

    缺陷检测是什么? 缺陷检测,是各行业产品质量管理体系中的重要一环,也是产品在正式投入市场应用前最后一道屏障.由于产品可能出现的品质问题多种多样,没有统一的衡量标准,所以一直以来,产品质检都是依靠人工来 ...

  3. 【RAC】RAC相关基础知识

    [RAC]RAC相关基础知识 1.CRS简介    从Oracle 10G开始,oracle引进一套完整的集群管理解决方案--Cluster-Ready Services,它包括集群连通性.消息和锁. ...

  4. 6-DoF问题相关基础知识笔记

    6-DoF问题相关基础知识笔记 一.什么是6-DoF,即6个自由度是什么? 二.PnP算法 三.BOP挑战与官方数据集简介 BOP数据集 BOP toolkit BOP挑战的介绍页面 四.相关论文 C ...

  5. 【C++后台开发面经】面试总结第三波:针对后台开发相关基础知识分类总结

    前言 面试总结第三波,关于后台开发面试相关基础知识,数据结构.算法.linux操作系统.计算机网络.C++.数据库进行分类总结. 后端面试总结 目录 后端面试总结 1.数据结构 链表和数组的区别 树的 ...

  6. 【生信】基因组学相关基础知识2

    [生信]基因组学相关基础知识2 本文图片来源网络或学术论文,文字部分来源网络与学术论文,仅供学习使用. 目录 [生信]基因组学相关基础知识2 9.细胞增殖与分化的定义和区别 10.有丝分裂与减数分裂 ...

  7. 黑马程序员_JAVA相关基础知识

    ------- android培训.java培训.期待与您交流! -------- JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便 ...

  8. sd 芯片测试软件,sd卡芯片检测工具基础知识解析

    原标题:sd卡芯片检测工具基础知识解析 sd卡芯片检测工具是芯片行业常用的设备之一,那么用户在使用sd卡芯片检测工具的时候需要注意哪些问题呢? sd卡芯片检测工具主要测试内容有信道内测试用来测试接收器 ...

  9. mysql bdb版本_深入理解mysql之BDB系列(1)---BDB相关基础知识

    深入理解mysql之BDB系列(1) ---BDB相关基础知识 作者:杨万富 一:BDB体系结构 1.1.BDB体系结构 BDB总体的体系结构如图1.1所看到的,包括五个子系统(见图1.1中相关数). ...

最新文章

  1. 基于多源信息的深度卷积神经网络预测CircRNA疾病关联的有效方法
  2. jQuery通过ajax方法获取json数据不执行success的原因及解决方法
  3. 土地一分用计算机怎么算,一分地等于多少平方米怎么算
  4. 我的Android进阶之旅------gt;Android使用AlarmManager全局定时器实现定时更换壁纸
  5. 大公司的前端开发地址
  6. 11.1自定义异常类
  7. java数数字及while和do while 的使用,以及程序的调试与验证
  8. 数组与串,串的实现,KMP,BF算法
  9. 【TensorFlow】TensorFlow从浅入深系列之四 -- 教你深入理解过拟合问题(正则化)
  10. 年会宣布 996 后,那些保持沉默的人
  11. Webframe x-scroll
  12. [Color]彩色转灰度算法彻底学习
  13. matlab中的semilogy,MATLAB 函数Semilogy()
  14. 2D武侠游戏《剑侠世界》网游单机 搭建教程说明
  15. IsoAlgo3d三维管道软件
  16. 计算机主板复位电路的组成,电脑主板复位电路工作原理
  17. 安装包百度云网盘链接
  18. oracle 设行宽,Oracle设置SQLPlus结果显示的宽度,ORACLE sqlplus提示符设置
  19. 如何输出一个某种编码的字符串?
  20. 禁用计算机usb设备,电脑如何设置禁止使用USB设备以及电脑怎样屏蔽U盘使用功能...

热门文章

  1. 【Arduino基础】蜂鸣器发声实验
  2. 推荐一些经典的炒股书籍
  3. 小伙的java之旅(4)
  4. RS推荐系统-关联规则-Apriori
  5. 计算机专业屏幕尺寸,电脑屏幕尺寸怎么看
  6. HTML筑基知识点四
  7. 限定checkbox最多选中数量
  8. android 带刻度的滑动条_Android自定义控件尺子 滚动刻度尺
  9. Python合并两个列表,使两个列表拼接起来
  10. jQuery伪类选择器