当前位置:   article > 正文

【OpenCV】告别人工目检:深度学习技术引领工业品缺陷检测新时代_opencv工业应用很少

opencv工业应用很少

目录

前言

机器视觉

缺陷检测

工业上常见缺陷检测方法

内容简介

作者简介

目录

读者对象

如何阅读本书

获取方式


前言

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站

机器视觉

机器视觉是使用各种工业相机,结合传感器跟电气信号实现替代传统人工,完成对象识别、计数、测量、缺陷检测、引导定位与抓取等任务。其中工业品的缺陷检测极大的依赖人工完成,特别是传统的3C制造环节,产品缺陷检测依赖于人眼睛来发现与检测,不仅费时费力还面临人员成本与工作时间等因素的制约。使用机器视觉来实现产品缺陷检测,可以节约大量时间跟人员成本,实现生产过程的自动化与流水线作业。
 

缺陷检测

常见得工业品缺陷主要包括划痕、脏污、缺失、凹坑、裂纹等,这些依赖人工目检(眼睛检测)的缺陷都可以通过机器视觉的缺陷检测算法来实现替代。当前工业缺陷检测算法目前主要分为两个方向,基于传统视觉的算法和基于深度学习的算法,前者主要依靠对检测目标的特征进行量化,比如颜色,形状,长宽,角度,面积等,好处是可解释性强、对样本数量没有要求、运行速度快,缺点是依赖于固定的光照成像,稍有改动就要改写程序重新部署,而且检测规则和算法跟开发者经验其主导作用。基于深度学习的缺陷检测算法刚好能弥补前者的不足之处,能够很好适应不同的光照,更好地适配同类缺陷要求,缺点是对样本数量有一定要求,对硬件配置相比传统也会有一定要求。

《OpenCV应用开发:入门、进阶与工程化实践》一书第十四 章 通过案例详细介绍基于OpenCV如何实现传统方式的缺陷检测跟基于深度学习的缺陷检测。
 

工业上常见缺陷检测方法

方法一:基于简单二值图像分析实现划痕提取,效果如下:

方法二:复杂背景下的图像缺陷分析,基于频域增强的方法实现缺陷检测,运行截图:

方法三:复杂背景下的图像缺陷分析,基于空域增强实现图像缺陷分析,针对复杂背景的图像,通过空域滤波增强以后实现缺陷查找,运行截图如下:

方法四:基于样品模板比对实现基于空域增强实现图像缺陷分析,通过二之分析与轮廓比对实现缺陷查找,运行截图如下:

方法五:基于深度学习UNet模型网络,实现裂纹与划痕检测,运行截图如下:

方法六:基于深度学习实例分割网络模型网络,实现细微缺陷检测,运行截图如下:

以上内容均来自最近出版的一本新书《OpenCV应用开发:入门、进阶与工程化实践》一书第十四章,分享给大家。

内容简介

本书专注于介绍OpenCV4在工业领域的常用模块,通过合理的章节设置构建了阶梯式的知识点学习路径。化繁就简、案例驱动,注重算法原理、代码演示及在相关场景的实际使用。本书还介绍了必备的深度学习知识与开发技巧,拓展OpenCV开发者技能。全书共16章,分为3篇。

  • 基础篇(第1~4章):主要介绍OpenCV的简单使用、像素操作、色彩空间、图像直方图。特色:从如何配置OpenCV开发环境开始到完成第一个OpenCV代码演示,从图像的表示到基本的像素操作,方便读者全面扎实地掌握基本图像处理知识与函数使用技巧,为深入学习打下坚实基础。
  • 进阶篇(第5~12章):主要介绍卷积操作、二值图像分析、形态学分析、特征提取、视频分析、机器学习、DNN。特色:结合代码演示学习OpenCV框架中主要图像处理模块的算法原理与相关函数使用,通过多个案例打通知识节点,学会使用OpenCV传统算法解决实际问题。
  • 高级与实战篇(第13~16章):主要介绍YOLO 5自定义对象检测、缺陷检测、OpenVINO加速与CUDA加速。特色:面向工程应用,帮助OpenCV开发者提升技能,通过实战案例增强OpenCV应用能力,掌握视觉开发必备的深度学习知识,以及从模型训练到部署加速的技巧。

作者简介

贾志刚

OpenVINO中文社区创始成员、英特尔物联网创新大使、华为晟腾HAE、51CTO学院金牌讲师。在机器视觉缺陷检测、生物医学细胞分类与检测识别、安防监控视频内容分析与提取、人工智能软件开发、深度学习框架集成开发等方面有深入研究,开发过多个图像处理算法模块并成功应用在医学检测与工业检测领域。开设有公众号“OpenCV学堂”,并著有《Java数字图像处理:编程技巧与应用实践》《OpenCV Android开发实战》等书。
张 振

上海赫立苏州研究院(赫芯科技)院长,具备丰富的机器视觉检测一线研发、管理与运营经验。深耕半导体/SMT缺陷检测领域10余年,拥有自主知识产权的软件和相关专利数十项。多年成功创业经历,积累了丰富的研发创新和团队管理经验,并参与市场与客户需求分析、技术分析与评估、方案制订、算法迭代、验收指标制定、标准机型量产的全流程管理与实践。
 

目录

  1. 前言
  2. 基础篇
  3. 1章 OpenCV简介与安装 / 2
  4. 1.1 OpenCV简介 / 2
  5. 1.1.1 OpenCV历史 / 2
  6. 1.1.2 OpenCV的模块与功能 / 3
  7. 1.1.3 OpenCV4里程碑 / 4
  8. 1.1.4 OpenCV发展现状与
  9. 应用趋势 / 4
  10. 1.2 OpenCV源码项目 / 4
  11. 1.3 OpenCV4开发环境搭建 / 5
  12. 1.4 第一个OpenCV开发程序 / 6
  13. 1.5 图像加载与保存 / 7
  14. 1.5.1 加载图像 / 7
  15. 1.5.2 保存图像 / 8
  16. 1.6 加载视频 / 9
  17. 1.7 小结 / 12
  18. 2章 Mat与像素操作 / 13
  19. 2.1 Mat对象 / 13
  20. 2.1.1 什么是Mat对象 / 13
  21. 2.1.2 一切图像皆Mat / 14
  22. 2.1.3 Mat类型与深度 / 15
  23. 2.1.4 创建Mat / 15
  24. 2.2 访问像素 / 18
  25. 2.2.1 遍历Mat中的像素 / 18
  26. 2.2.2 像素算术运算 / 20
  27. 2.2.3 位运算 / 21
  28. 2.2.4 调整图像亮度与对比度 / 22
  29. 2.3 图像类型与通道 / 23
  30. 2.3.1 图像类型 / 23
  31. 2.3.2 图像通道 / 23
  32. 2.3.3 通道操作 / 24
  33. 2.4 小结 / 25
  34. 3章 色彩空间 / 26
  35. 3.1 RGB色彩空间 / 26
  36. 3.2 HSV色彩空间 / 28
  37. 3.3 LAB色彩空间 / 29
  38. 3.4 色彩空间的转换与应用 / 30
  39. 3.5 小结 / 31
  40. 4章 图像直方图 / 32
  41. 4.1 像素统计信息 / 32
  42. 4.2 直方图的计算与绘制 / 34
  43. 4.2.1 直方图计算 / 35
  44. 4.2.2 直方图绘制 / 36
  45. 4.3 直方图均衡化 / 37
  46. 4.4 直方图比较 / 40
  47. 4.5 直方图反向投影 / 41
  48. 4.6 小结 / 43
  49. 进阶篇
  50. 5章 卷积操作 / 46
  51. 5.1 卷积的概念 / 46
  52. 5.2 卷积模糊 / 49
  53. 5.3 自定义滤波 / 53
  54. 5.4 梯度提取 / 56
  55. 5.5 边缘发现 / 59
  56. 5.6 噪声与去噪 / 61
  57. 5.7 边缘保留滤波 / 64
  58. 5.8 锐化增强 / 66
  59. 5.9 小结 / 68
  60. 6章 二值图像 / 70
  61. 6.1 图像阈值化分割 / 70
  62. 6.2 全局阈值计算 / 72
  63. 6.3 自适应阈值计算 / 76
  64. 6.4 去噪与二值化 / 77
  65. 6.4.1 去噪对二值化的影响 / 77
  66. 6.4.2 其他方式的二值化 / 78
  67. 6.5 小结 / 79
  68. 7章 二值分析 / 80
  69. 7.1 二值图像分析概述 / 80
  70. 7.2 连通组件标记 / 82
  71. 7.3 轮廓发现 / 85
  72. 7.3.1 轮廓发现函数 / 85
  73. 7.3.2 轮廓绘制函数 / 87
  74. 7.3.3 轮廓发现与绘制的示例
  75. 代码 / 87
  76. 7.4 轮廓测量 / 88
  77. 7.5 拟合与逼近 / 90
  78. 7.6 轮廓分析 / 95
  79. 7.7 直线检测 / 97
  80. 7.8 霍夫圆检测 / 99
  81. 7.9 最大内接圆与最小外接圆 / 101
  82. 7.10 轮廓匹配 / 102
  83. 7.11 最大轮廓与关键点编码 / 104
  84. 7.12 凸包检测 / 106
  85. 7.13 小结 / 107
  86. 8章 形态学分析 / 108
  87. 8.1 图像形态学概述 / 108
  88. 8.2 膨胀与腐蚀 / 109
  89. 8.3 开/闭操作 / 111
  90. 8.4 形态学梯度 / 113
  91. 8.5 顶帽与黑帽 / 115
  92. 8.6 击中/击不中 / 116
  93. 8.7 结构元素 / 119
  94. 8.8 距离变换 / 120
  95. 8.9 分水岭分割 / 121
  96. 8.10 小结 / 124
  97. 9章 特征提取 / 125
  98. 9.1 图像金字塔 / 125
  99. 9.1.1 高斯金字塔 / 125
  100. 9.1.2 拉普拉斯金字塔 / 128
  101. 9.1.3 图像金字塔融合 / 129
  102. 9.2 Harris角点检测 / 131
  103. 9.3 shi-tomas角点检测 / 133
  104. 9.4 亚像素级别的角点检测 / 135
  105. 9.5 HOG特征与使用 / 137
  106. 9.5.1 HOG特征描述子 / 137
  107. 9.5.2 HOG特征行人检测 / 139
  108. 9.6 ORB特征描述子 / 140
  109. 9.6.1 关键点与描述子提取 / 140
  110. 9.6.2 描述子匹配 / 144
  111. 9.7 基于特征的对象检测 / 148
  112. 9.7.1 单应性矩阵计算方法 / 148
  113. 9.7.2 特征对象的位置发现 / 150
  114. 9.8 小结 / 152
  115. 10章 视频分析 / 153
  116. 10.1 基于颜色的对象跟踪 / 153
  117. 10.2 视频背景分析 / 155
  118. 10.3 帧差法背景分析 / 157
  119. 10.4 稀疏光流分析法 / 158
  120. 10.5 稠密光流分析法 / 161
  121. 10.6 均值迁移分析 / 163
  122. 10.7 小结 / 166
  123. 11章 机器学习 / 167
  124. 11.1 KMeans分类 / 167
  125. 11.1.1 KMeans图像语义
  126. 分割 / 167
  127. 11.1.2 提取主色彩构建色卡 / 170
  128. 11.2 KNN分类 / 172
  129. 11.2.1 KNN函数支持 / 172
  130. 11.2.2 KNN实现手写数字
  131. 识别 / 173
  132. 11.3 SVM分类 / 175
  133. 11.3.1 SVM的原理与分类 / 175
  134. 11.3.2 SVM函数 / 176
  135. 11.3.3 SVM实现手写数字
  136. 识别 / 176
  137. 11.4 SVM与HOG实现对象检测 / 177
  138. 11.4.1 数据样本特征提取 / 178
  139. 11.4.2 SVM特征分类 / 179
  140. 11.4.3 构建SVM对象检测器 / 179
  141. 11.5 小结 / 181
  142. 12章 深度神经网络 / 182
  143. 12.1 DNN概述 / 182
  144. 12.2 图像分类 / 183
  145. 12.3 对象检测 / 186
  146. 12.3.1 SSD对象检测 / 187
  147. 12.3.2 Faster-RCNN对象
  148. 检测 / 188
  149. 12.3.3 YOLO对象检测 / 190
  150. 12.4 ENet图像语义分割 / 193
  151. 12.5 风格迁移 / 195
  152. 12.6 场景文字检测 / 197
  153. 12.7 人脸检测 / 199
  154. 12.8 小结 / 201
  155. 高级与实战篇
  156. 13章 YOLO 5自定义对象
  157. 检测 / 204
  158. 13.1 YOLO 5对象检测框架 / 204
  159. 13.2 YOLO 5对象检测 / 205
  160. 13.3 自定义对象检测 / 208
  161. 13.3.1 数据集制作与生成 / 209
  162. 13.3.2 模型训练与查看损失
  163. 曲线 / 210
  164. 13.3.3 模型导出与部署 / 211
  165. 13.4 小结 / 212
  166. 14章 缺陷检测 / 213
  167. 14.1 简单背景下的缺陷检测 / 213
  168. 14.2 复杂背景下的缺陷检测 / 216
  169. 14.2.1 频域增强的缺陷检测 / 216
  170. 14.2.2 空间域增强的缺陷检测 / 219
  171. 14.3 案例:刀片缺陷检测 / 220
  172. 14.4 基于深度学习的缺陷检测 / 222
  173. 14.4.1 基于分类的缺陷检测 / 223
  174. 14.4.2 基于分割的缺陷检测 / 226
  175. 14.5 小结 / 228
  176. 15章 OpenVINO加速 / 229
  177. 15.1 OpenVINO框架安装与环境
  178. 配置 / 229
  179. 15.1.1 OpenVINO安装 / 230
  180. 15.1.2 配置C++开发支持 / 232
  181. 15.2 OpenVINO2022.x版SDK
  182. 推理演示 / 233
  183. 15.2.1 推理SDK介绍 / 234
  184. 15.2.2 推理SDK演示 / 235
  185. 15.3 OpenVINO支持UNet部署 / 236
  186. 15.4 OpenVINO支持YOLO 5
  187. 部署 / 237
  188. 15.5 小结 / 239
  189. 16章 CUDA加速 / 240
  190. 16.1 编译OpenCV源码支持CUDA
  191. 加速 / 240
  192. 16.2 用CUDA加速传统图像处理 / 245
  193. 16.2.1 Mat与GpuMat / 245
  194. 16.2.2 加速图像处理与视频
  195. 分析 / 246
  196. 16.3 加速DNN / 248
  197. 16.4 小结 / 249

读者对象

本书适合以下读者阅读:

  • 计算机视觉领域的从业者。
  • OpenCV的爱好者。
  • 高等院校相关专业的师生。
  • C++/Python开发者。

如何阅读本书

本书共16章,分为3篇,由浅入深地讲解OpenCV的技术及应用。
基础篇(第1~4章)主要介绍了OpenCV4框架中基础模块相关的图像知识、函数及应用。
进阶篇(第5~12章)深入介绍了OpenCV4核心模块的功能与应用场景,主要包括图像卷积、二值分析、形态学分析、特征提取、视频分析、机器学习模块等,其中穿插大量实践案例。
高级与实战篇(第13~16章)全面介绍了OpenCV4支持的各种性能加速技术与深度学习模型推理技术,从项目实现出发,讲解了对象检测、缺陷检测、深度学习模型加速等高级应用层面的OpenCV开发技术。
 

获取方式

京东图书:《OpenCV4应用开发:入门、进阶与工程化实践》(贾志刚,张振)

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号