OpenCV | Diga adiós a la inspección visual manual: la tecnología de aprendizaje profundo lidera una nueva era en la detección de defectos de productos industriales


visión de máquina

La visión artificial utiliza varias cámaras industriales, combinadas con sensores y señales eléctricas, para reemplazar el trabajo manual tradicional para completar tareas como el reconocimiento de objetos, el conteo, la medición, la detección de defectos, la guía, el posicionamiento y el agarre. Entre ellos, la detección de defectos de productos industriales depende en gran medida del trabajo manual, especialmente en el proceso de fabricación tradicional 3C. La detección de defectos de productos depende de los ojos humanos para detectar y detectar, lo que no solo requiere mucho tiempo y mano de obra, sino que también enfrenta limitaciones como costos de personal y horas de trabajo. El uso de la visión artificial para detectar defectos del producto puede ahorrar mucho tiempo y costos de personal, y realizar las operaciones de automatización y línea de ensamblaje del proceso de producción.

Detección de defectos

Los defectos comunes de los productos industriales incluyen principalmente rayones, suciedad, piezas faltantes, picaduras, grietas, etc. Estos defectos que dependen de la inspección visual manual (inspección ocular) pueden reemplazarse mediante algoritmos de detección de defectos por visión artificial. Los algoritmos de detección de defectos industriales actuales se dividen principalmente en dos direcciones, algoritmos tradicionales basados ​​​​en visión y algoritmos basados ​​​​en aprendizaje profundo. El primero se basa principalmente en cuantificar las características del objetivo de detección, como color, forma, largo y ancho, ángulo, área. , etc. Beneficios Es altamente interpretable, no tiene requisitos en cuanto al número de muestras y se ejecuta rápido. La desventaja es que se basa en imágenes de iluminación fija. Si hay un ligero cambio, el programa debe reescribirse y volver a implementarse, y el Las reglas y algoritmos de detección juegan un papel protagonista en la experiencia del desarrollador. El algoritmo de detección de defectos basado en el aprendizaje profundo puede compensar las deficiencias del primero. Puede adaptarse bien a diferentes iluminaciones y adaptarse mejor a los requisitos de defectos similares. La desventaja es que tiene ciertos requisitos en cuanto al número de muestras y la configuración del hardware también es inferior a la de los tradicionales, existen ciertos requisitos.

El capítulo 14 del libro "Desarrollo de aplicaciones OpenCV: introducción, avanzada y práctica de ingeniería" presenta en detalle a través de casos cómo implementar la detección de defectos tradicional y la detección de defectos basada en aprendizaje profundo basada en OpenCV.

Métodos comunes de detección de defectos en la industria.

Método 1: implementar la extracción de scratch basada en un análisis de imagen binaria simple, el efecto es el siguiente:
imagen

Método 2: análisis de defectos de imagen en un fondo complejo, detección de defectos basada en el método de mejora del dominio de frecuencia, ejecución de captura de pantalla:

imagen

Método 3: Análisis de defectos de imagen en fondos complejos. El análisis de defectos de imagen se realiza en función de la mejora espacial. Para imágenes con fondos complejos, la búsqueda de defectos se logra después de la mejora del filtrado espacial. La captura de pantalla en ejecución es la siguiente:

imagen
Método 4: implementar un análisis de defectos de imagen basado en la mejora espacial basado en la comparación de plantillas de muestra e implementar la búsqueda de defectos mediante análisis bidimensional y comparación de contornos. La captura de pantalla en ejecución es la siguiente:
imagen
Método 5: basado en la red de modelos UNet de aprendizaje profundo, crack y Se realiza la detección de arañazos. La captura de pantalla en ejecución es la siguiente:
imagen
Método 6: Segmentar la red del modelo de red en función de instancias de aprendizaje profundo para lograr una detección de defectos sutiles. La captura de pantalla en ejecución es la siguiente: El
imagen
contenido anterior es de un libro publicado recientemente "Aplicación OpenCV Desarrollo: Introducción, Avanzado y Práctica de Ingeniería” Capítulo 14 del libro, compartido con todos.

Insertar descripción de la imagen aquí

breve introducción

Este libro se centra en presentar los módulos de OpenCV4 comúnmente utilizados en el campo industrial y construye una ruta de aprendizaje escalonada de puntos de conocimiento a través de configuraciones de capítulos razonables. Simplifique lo complejo y esté basado en casos, centrándose en principios de algoritmos, demostraciones de código y uso real en escenarios relevantes. Este libro también presenta los conocimientos de aprendizaje profundo y las habilidades de desarrollo necesarios para ampliar las habilidades de los desarrolladores de OpenCV. El libro tiene 16 capítulos en total, divididos en 3 partes.
● Conceptos básicos (Capítulos 1 a 4): presenta principalmente el uso simple de OpenCV, operaciones de píxeles, espacio de color e histograma de imagen.
Características: desde cómo configurar el entorno de desarrollo OpenCV hasta completar la primera demostración del código OpenCV, desde la representación de imágenes hasta las operaciones básicas de píxeles, es conveniente que los lectores dominen de manera integral y sólida los conocimientos básicos de procesamiento de imágenes y las habilidades de uso de funciones, sentando una base sólida para aprendizaje en profundidad.
● Capítulo avanzado (Capítulo 5 ~ 12): presenta principalmente la operación de convolución, análisis de imágenes binarias, análisis morfológico, extracción de características, análisis de video, aprendizaje automático y DNN.
Características: combinado con demostraciones de código para aprender los principios del algoritmo y las funciones relacionadas de los principales módulos de procesamiento de imágenes en el marco OpenCV, abrir nodos de conocimiento a través de múltiples casos y aprender a usar los algoritmos tradicionales de OpenCV para resolver problemas prácticos.
● Capítulos avanzados y prácticos (Capítulos 13 ~ 16): Presenta principalmente la detección de objetos personalizados, la detección de defectos, la aceleración OpenVINO y la aceleración CUDA de YOLO 5.
Características: Para aplicaciones de ingeniería, ayuda a los desarrolladores de OpenCV a mejorar sus habilidades, mejorar las capacidades de las aplicaciones OpenCV a través de casos prácticos, dominar el conocimiento de aprendizaje profundo necesario para el desarrollo visual y técnicas desde el entrenamiento de modelos hasta la aceleración de la implementación.

Sobre el Autor

Jia Zhigang
es miembro fundador de la comunidad china OpenVINO, embajador de innovación de Internet de las cosas de Intel, Huawei Shengteng HAE y profesor con medalla de oro de la Academia 51CTO. Ha realizado investigaciones en profundidad sobre detección de defectos de visión artificial, clasificación, detección e identificación de células biomédicas, análisis y extracción de contenido de videos de vigilancia de seguridad, desarrollo de software de inteligencia artificial, desarrollo integrado de marcos de aprendizaje profundo, etc. Ha desarrollado múltiples módulos de algoritmos de procesamiento de imágenes. y los aplicó con éxito en los campos de pruebas médicas y pruebas industriales. Ha abierto la cuenta pública "OpenCV Academy" y es autor de libros como "Java Digital Image Processing: Programming Skills and Application Practice" y "OpenCV Android Development Practice".

Zhang Zhen
es presidente del Instituto de Investigación Hurley Suzhou de Shanghai (Tecnología Hexin) y tiene una amplia experiencia en investigación y desarrollo de primera línea, gestión y operación de inspección por visión artificial. Ha estado profundamente involucrado en el campo de la detección de defectos de semiconductores/SMT durante más de 10 años y tiene docenas de software y patentes relacionadas con derechos de propiedad intelectual independientes. Con muchos años de experiencia empresarial exitosa, ha acumulado una rica experiencia en innovación de I+D y gestión de equipos, y ha participado en la gestión y práctica de procesos completos de análisis de demanda de mercado y de clientes, análisis y evaluación técnicos, formulación de programas, iteración de algoritmos e índice de aceptación. formulación y producción en masa de modelos estándar.

Tabla de contenido

前言

基础篇

第1章 OpenCV简介与安装 / 2

1.1 OpenCV简介 / 2

1.1.1 OpenCV历史 / 2

1.1.2 OpenCV的模块与功能 / 3

1.1.3 OpenCV4里程碑 / 4

1.1.4 OpenCV发展现状与

应用趋势 / 4

1.2 OpenCV源码项目 / 4

1.3 OpenCV4开发环境搭建 / 5

1.4 第一个OpenCV开发程序 / 6

1.5 图像加载与保存 / 7

1.5.1 加载图像 / 7

1.5.2 保存图像 / 8

1.6 加载视频 / 9

1.7 小结 / 12

第2章 Mat与像素操作 / 13

2.1 Mat对象 / 13

2.1.1 什么是Mat对象 / 13

2.1.2 一切图像皆Mat / 14

2.1.3 Mat类型与深度 / 15

2.1.4 创建Mat / 15

2.2 访问像素 / 18

2.2.1 遍历Mat中的像素 / 18

2.2.2 像素算术运算 / 20

2.2.3 位运算 / 21

2.2.4 调整图像亮度与对比度 / 22

2.3 图像类型与通道 / 23

2.3.1 图像类型 / 23

2.3.2 图像通道 / 23

2.3.3 通道操作 / 24

2.4 小结 / 25

第3章 色彩空间 / 26

3.1 RGB色彩空间 / 26

3.2 HSV色彩空间 / 28

3.3 LAB色彩空间 / 29

3.4 色彩空间的转换与应用 / 30

3.5 小结 / 31

第4章 图像直方图 / 32

4.1 像素统计信息 / 32

4.2 直方图的计算与绘制 / 34

4.2.1 直方图计算 / 35

4.2.2 直方图绘制 / 36

4.3 直方图均衡化 / 37

4.4 直方图比较 / 40

4.5 直方图反向投影 / 41

4.6 小结 / 43

进阶篇

第5章 卷积操作 / 46

5.1 卷积的概念 / 46

5.2 卷积模糊 / 49

5.3 自定义滤波 / 53

5.4 梯度提取 / 56

5.5 边缘发现 / 59

5.6 噪声与去噪 / 61

5.7 边缘保留滤波 / 64

5.8 锐化增强 / 66

5.9 小结 / 68

第6章 二值图像 / 70

6.1 图像阈值化分割 / 70

6.2 全局阈值计算 / 72

6.3 自适应阈值计算 / 76

6.4 去噪与二值化 / 77

6.4.1 去噪对二值化的影响 / 77

6.4.2 其他方式的二值化 / 78

6.5 小结 / 79

第7章 二值分析 / 80

7.1 二值图像分析概述 / 80

7.2 连通组件标记 / 82

7.3 轮廓发现 / 85

7.3.1 轮廓发现函数 / 85

7.3.2 轮廓绘制函数 / 87

7.3.3 轮廓发现与绘制的示例

代码 / 87

7.4 轮廓测量 / 88

7.5 拟合与逼近 / 90

7.6 轮廓分析 / 95

7.7 直线检测 / 97

7.8 霍夫圆检测 / 99

7.9 最大内接圆与最小外接圆 / 101

7.10 轮廓匹配 / 102

7.11 最大轮廓与关键点编码 / 104

7.12 凸包检测 / 106

7.13 小结 / 107

第8章 形态学分析 / 108

8.1 图像形态学概述 / 108

8.2 膨胀与腐蚀 / 109

8.3 开/闭操作 / 111

8.4 形态学梯度 / 113

8.5 顶帽与黑帽 / 115

8.6 击中/击不中 / 116

8.7 结构元素 / 119

8.8 距离变换 / 120

8.9 分水岭分割 / 121

8.10 小结 / 124

第9章 特征提取 / 125

9.1 图像金字塔 / 125

9.1.1 高斯金字塔 / 125

9.1.2 拉普拉斯金字塔 / 128

9.1.3 图像金字塔融合 / 129

9.2 Harris角点检测 / 131

9.3 shi-tomas角点检测 / 133

9.4 亚像素级别的角点检测 / 135

9.5 HOG特征与使用 / 137

9.5.1 HOG特征描述子 / 137

9.5.2 HOG特征行人检测 / 139

9.6 ORB特征描述子 / 140

9.6.1 关键点与描述子提取 / 140

9.6.2 描述子匹配 / 144

9.7 基于特征的对象检测 / 148

9.7.1 单应性矩阵计算方法 / 148

9.7.2 特征对象的位置发现 / 150

9.8 小结 / 152

第10章 视频分析 / 153

10.1 基于颜色的对象跟踪 / 153

10.2 视频背景分析 / 155

10.3 帧差法背景分析 / 157

10.4 稀疏光流分析法 / 158

10.5 稠密光流分析法 / 161

10.6 均值迁移分析 / 163

10.7 小结 / 166

第11章 机器学习 / 167

11.1 KMeans分类 / 167

11.1.1 KMeans图像语义

分割 / 167

11.1.2 提取主色彩构建色卡 / 170

11.2 KNN分类 / 172

11.2.1 KNN函数支持 / 172

11.2.2 KNN实现手写数字

识别 / 173

11.3 SVM分类 / 175

11.3.1 SVM的原理与分类 / 175

11.3.2 SVM函数 / 176

11.3.3 SVM实现手写数字

识别 / 176

11.4 SVM与HOG实现对象检测 / 177

11.4.1 数据样本特征提取 / 178

11.4.2 SVM特征分类 / 179

11.4.3 构建SVM对象检测器 / 179

11.5 小结 / 181

第12章 深度神经网络 / 182

12.1 DNN概述 / 182

12.2 图像分类 / 183

12.3 对象检测 / 186

12.3.1 SSD对象检测 / 187

12.3.2 Faster-RCNN对象

检测 / 188

12.3.3 YOLO对象检测 / 190

12.4 ENet图像语义分割 / 193

12.5 风格迁移 / 195

12.6 场景文字检测 / 197

12.7 人脸检测 / 199

12.8 小结 / 201

高级与实战篇

第13章 YOLO 5自定义对象

检测 / 204

13.1 YOLO 5对象检测框架 / 204

13.2 YOLO 5对象检测 / 205

13.3 自定义对象检测 / 208

13.3.1 数据集制作与生成 / 209

13.3.2 模型训练与查看损失

曲线 / 210

13.3.3 模型导出与部署 / 211

13.4 小结 / 212

第14章 缺陷检测 / 213

14.1 简单背景下的缺陷检测 / 213

14.2 复杂背景下的缺陷检测 / 216

14.2.1 频域增强的缺陷检测 / 216

14.2.2 空间域增强的缺陷检测 / 219

14.3 案例:刀片缺陷检测 / 220

14.4 基于深度学习的缺陷检测 / 222

14.4.1 基于分类的缺陷检测 / 223

14.4.2 基于分割的缺陷检测 / 226

14.5 小结 / 228

第15章 OpenVINO加速 / 229

15.1 OpenVINO框架安装与环境

配置 / 229

15.1.1 OpenVINO安装 / 230

15.1.2 配置C++开发支持 / 232

15.2 OpenVINO2022.x版SDK

推理演示 / 233

15.2.1 推理SDK介绍 / 234

15.2.2 推理SDK演示 / 235

15.3 OpenVINO支持UNet部署 / 236

15.4 OpenVINO支持YOLO 5

部署 / 237

15.5 小结 / 239

第16章 CUDA加速 / 240

16.1 编译OpenCV源码支持CUDA

加速 / 240

16.2 用CUDA加速传统图像处理 / 245

16.2.1 Mat与GpuMat / 245

16.2.2 加速图像处理与视频

分析 / 246

16.3 加速DNN / 248

16.4 小结 / 249

Número de lectores

Este libro es adecuado para los siguientes lectores:

  • Profesionales en el campo de la visión por computadora.
  • Entusiasta de OpenCV.
  • Profesores y estudiantes de carreras relevantes en colegios y universidades.
  • Desarrollador C++/Python.

Cómo leer este libro

Este libro tiene un total de 16 capítulos, divididos en 3 artículos, que explican la tecnología y la aplicación de OpenCV de superficial a profunda.
Los conceptos básicos (capítulos 1 a 4) presentan principalmente el conocimiento, las funciones y las aplicaciones de imágenes relacionadas con los módulos básicos en el marco OpenCV4.
El capítulo avanzado (Capítulos 5 a 12) proporciona una introducción detallada a las funciones y escenarios de aplicación del módulo central OpenCV4, que incluye principalmente convolución de imágenes, análisis binario, análisis morfológico, extracción de características, análisis de video, módulos de aprendizaje automático, etc. ., intercalados con un gran número de Casos prácticos.
Los capítulos avanzados y prácticos (capítulos 13 a 16) presentan de manera integral varias tecnologías de aceleración del rendimiento y tecnologías de razonamiento de modelos de aprendizaje profundo compatibles con OpenCV4. A partir de la implementación del proyecto, explican niveles avanzados de aplicación como la detección de objetos, la detección de defectos y la aceleración del modelo de aprendizaje profundo. Tecnología de desarrollo OpenCV.

método de obtención

Libros Jingdong: "Desarrollo de aplicaciones OpenCV4: introducción, prácticas avanzadas y de ingeniería" (Jia Zhigang, Zhang Zhen)

Supongo que te gusta

Origin blog.csdn.net/qq_32682301/article/details/135157954
Recomendado
Clasificación