IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 分辨率、精度和公差都不知道,还敢说你能选好视觉相机? -> 正文阅读

[人工智能]分辨率、精度和公差都不知道,还敢说你能选好视觉相机?

  • 📢博客主页:https://blog.csdn.net/weixin_43197380
  • 📢欢迎点赞 👍 收藏 ?留言 📝 如有错误敬请指正!
  • 📢本文由 Loewen丶原创,首发于 CSDN,转载注明出处🙉
  • 📢现在的付出,都会是一种沉淀,只为让你成为更好的人?


视觉行业的初学者,甚至是做了1~2年的销售也许还会困惑这样的事情——在拿到检测要求后,不知道根据图纸上的公差,应该选用多少万像素的相机。同时还不明确为什么要三个类似的专有名词来描述同一个事情。

这一期内容就是为了讲明白这一件事情: 分辨率,精度,公差的关系 。从而指导相机的选型。

一. 分辨率(Resolution)

「分辨率」,又称解析度、解像度,可以细分为屏幕分辨率、图像分辨率、打印分辨率和扫描分辨率等。它决定了图像的精细程度,通常表示成每英寸像素(Pixel per inch, ppi)和每英寸点(Dot per inch, dpi),从技术角度说,“像素”(p)只存在于计算机显示领域,而“点”(d)只出现于打印或印刷领域。 摘抄:知乎:分辨率和像素是什么关系?

1、工业相机的分辨率是如何定义的?

区别与上面介绍的分辨率,我们这里所介绍的是「工业相机的分辨率」,它由工业相机所采用的芯片分辨率决定,是芯片靶面排列的像元数量,即表示相机每次采集图像的像素点数(Pixels),下面以Basler acA2440-75um型号的相机为例:

在这里插入图片描述
图中相机芯片的水平/垂直分辨率指的是相机采集到的图像水平方向有2448个像素垂直方向有2048个像素,那么相机的分辨率为2448(px)×2048(px),得到相机的分辨率为500w像素(5MP)。

知识拓展:相机的总像素和有效像素

现在市场上的工业相机像素标识大部分是相机的「总像素」而不是「有效像素」「总像素」就指的是相机的CCD或CMOS感光芯片出厂时靶面排列的像元总数(是相机理论上所能达到的最大像素)。「有效像素」是指相机拍摄过程中那些用来感光成像的像素。很多情况下,相机CCD或CMOS感光芯片中有一部分像素是并不参与感光成像的(有用来降噪的、用来做全黑的这部分像素),所以有效像素要低于总像素(最大像素)上图中的分辨率5MP指的是相机的总像素而不是有效像素。

2、工业相机的分辨率是如何选择的?

拿到一个项目,我们首先需要确定的两个指标就是:

  1. 相机视野: 通过实际检测物体的大小确定相机的视野大小
  2. 像素精度: 客户有明确要求;

上面两项指标确定之后,通过公式可求出该选用多大分辨率的相机:

分 辨 率 ( P i x e l ) = 相 机 视 野 ( m m ) ÷ 像 素 精 度 ( m m / P i x e l ) 分辨率(Pixel) = { 相机视野(mm)}÷ { 像素精度(mm /Pixel)} Pixel=mm÷mm/Pixel

比如,产品规格是20mm×20mm大小,要求像素精度0.014mm/pix,那么我选择的相机视野可以是28mm×28mm,通过28mm÷14μm/pix = 2000pix。可以选用500w分辨率的相机(2448×2048)。


二. 精度(Accuracy)

1、像素精度(Pixel Accuracy)

通过上面选择多大分辨率的相机时,我们使用到了「像素精度」,它表示一个像素在真实世界代表的距离,即一个像素的实际物理尺寸,和分辨率的关系如下:

像 素 精 度 ( m m / p i x ) = 相 机 视 野 ( m m ) ÷ 分 辨 率 ( p i x e l ) 像素精度(mm/pix) = { 相机视野(mm)}÷ { 分辨率(pixel) } mm/pix=mm÷pixel

ps:这里计算的像素精度使用的分辨率是相机上标识的分辨率计算的,也就是上面相机参数图中的水平/垂直分辨率:2448×2048。如果用上面要求的像素精度值0.014mm/pix当做测量精度值,肯定不准确,因为一个像素在大多数情况下无法代表被测物特征。

如下图所示,我们用相机拍摄到一条看似“黑白分明”的边缘,那么这条边是否就是最真实的边缘呢?往往把图像放大并仔细观察就可以发现,“边缘”其实是由一些过渡的像素组成,也就是通常我们说的”边缘”很糊。

在这里插入图片描述
如果光源和结构的比较良好,成像质量比较高,成像比较“锐利”,那么“边缘”就更接近真实边缘;反之,如果成像不好,受帧率、曝光、增益以及其它因素影响,找到的“边缘”可能和真实边缘相差很多个像素。

2、重复精度(Repeat Precision)

视觉系统中一般还有需要确定「重复定位精度」,它表达的是系统对产品重复进行定位的一种能力重复定位精度越高表明系统定位产品的稳定性越强,反之稳定性越差。获取重复定位精度需要相机重复多次地完成同一变化过程所对应测量结果的最大偏差值。

以向靶子上射箭为例,中心是10环。在相同条件下,有ABC三个人练习射击,射击结果如下图所示:

在这里插入图片描述

看图可知:

A的射击结果波动很大,但是离10环相差较近;B的射击结果波动很小,但是离10环相差很大。如果我们把这两人分别看作 两种视觉系统,那么A的精度相对较高,但是重复精度差;B的精度差,但是重复精度高。

而最好的结果则是C,就是重复精度高、精度也高,但是大部分时候我们无法得到C那样的结果。那么如果相同的条件下,只能得到A或B这样的结果,我们应该怎么去取舍呢?

对于射手B的结果而言,如果我们把最终的射击区域整体向左上角移动,当区域中心移动到靶心位置时,B的结果就会非常接近C。

在这里插入图片描述
类似的情形是,战争时期优秀的炮手在第一发炮弹射击后,会依据弹着点的实际偏离情况(固定差值)和自身经验(重复精度)对弹道做一个固定值的补偿修正计算,在接下来的射击中能确保大多数炮弹击中预定

那么在视觉检测中,可能因为材质或机构安装导致一些相对固定的数据差异,我们可以通过对含有准确数据的标准品(如:经过三次元测量的产品)进行检测,对检测结果中的固定差异进行补偿,来让“射击区域”转移到靶心的位置。

而对于射手A的结果,无论如何调整靶心位置,都无法从根本上解决因重复精度太差导致的数据误差。

由此可见,对于工业视觉检测而言,重复精度更为重要。


三. 公差(Tolerance)

那么不用像素精度该怎么确定系统的检测精度呢?在机器视觉检测中,一般情况下,相机的「像素精度」「公差」之间关系的两种常规评估策略:

  • 👤 外观检测最小检测尺寸 = 4倍像素精度,即:检测精度可达0.056mm(±0.028mm)—— 最小可检测的瑕疵或者污点大小为0.056mm。
  • 👥 尺寸测量最小测量尺寸 = 10倍像素精度,即:测量精度可达0.14mm(±0.007mm);

对一个项目来讲,我们是先从图纸上读到公差(检测精度)的要求。然后再根据上述关系,反推得出我们需要多少像素的相机。

条件:Field of View × 30mm

Camera Types1 Pixel Resoluiton3 Pixel Resoluiton5 Pixel Resoluiton10 Pixel Resoluiton
21M pixel 5120×40960.006 mm0.018 mm0.029 mm0.059 mm
5M pixel 2432×20500.012 mm0.037 mm0.062 mm0.123 mm
2M pixel 1600×12000.019 mm0.056 mm0.094 mm0.188 mm
0.3M Pixel 640×4800.047 mm0.141 mm0.234 mm0.469 mm

四. 课后作业( Post-Class Exercises)

项目要求: 相机视野20mm*20mm、污点检测误差正负0.015mm。 需要选择多大分辨率的相机?

① 污点检测误差正负0.015mm——》检测精度可达0.03mm

② 由外观检测精度 = 4 × 像素精度,选择的相机像素精度为:0.03mm ÷ 4 = 0.0075mm/pix

③ 通过20mm ÷ 0.0075mm/pix = 267pix,即相机的分辨率应满足 267pix × 267pix = 713万像素。当然,实际测量或检测时需要考虑的还有很多,例如帧率、曝光、增益等


如果觉得这篇文章对你有小小的帮助的话,记得帮忙点赞收藏一波哦,博主在此感谢!
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:31:02  更:2022-03-10 22:31:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 17:31:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码