当前位置:首页 > 资讯 > 正文

Windows10+Python+Yolov8+ONNX图片缺陷识别,并在原图中标记缺陷,有onnx模型则无需配置,无需训练。

目录

一、训练自己数据集的YOLOv8模型 

1.博主电脑配置

2.深度学习GPU环境配置

 3.yolov8深度学习环境准备

4.准备数据集

二、Python+Onnx模型进行图像缺陷检测,并在原图中标注

1、模型转换

2、查看模型结构

3、修改输入图片的尺寸

4、 图像数据归一化

5、模型推理

6、推理结果筛选

7、像素还原

8、筛选重叠面积

9、标记缺陷


如果已经有了自己数据集的onnx模型或pt模型,则可以直接跳到二。

NVIDIA GeForce RTX 3060 12G

Intel(R) Xeon(R) E5-2670 v2 2.50GHz

DDR3 16G

python3.9.16+cuda11.1+pytorch1.9.0+torchvision0.10.0+Anaconda3

 打开Anaconda Prompt

 
 
 

到这个网站下载,并解压,尽量放在不含中文路径的文件夹内,解压后是ultralytics-main文件夹。然后我们再Anaconda内cd进这个文件夹

 

 在主目录ultralytics-main下创建my_data文件夹,在my_data文件夹内创建AnnotationsimagesImageSetslabels这几个文件夹。这几个文件夹名字不能更改!!!

Annotations放xml标注文件,如果没有也不用管images放数据集文件ImageSets放txt文件,暂时不用管labels放txt标注文件,暂时不用管

通过python下载labelimg,并开始标注数据集

Windows10+Python+Yolov8+ONNX图片缺陷识别,并在原图中标记缺陷,有onnx模型则无需配置,无需训练。

 然后参考博客来划分数据集,并进行训练。(2条消息) YOLOv8教程系列:一、使用自定义数据集训练YOLOv8模型(详细版教程,你只看一篇->调参攻略),包含环境搭建/数据准备/模型训练/预测/验证/导出等_Zhijun.li@Studio的博客-CSDN博客

通过训练得到的模型是pt文件,我们需要转换为onnx文件

 

通过以下网站来查看onnx模型结构

best.onnx (netron.app)

 Windows10+Python+Yolov8+ONNX图片缺陷识别,并在原图中标记缺陷,有onnx模型则无需配置,无需训练。

 可以得到,输入图片的尺寸要求为3*640*640,输出结果为float32的n*8400二维数组,n为数据集缺陷种类的数量

为防止图片畸变,所以需要将图片修改为如下形状

Windows10+Python+Yolov8+ONNX图片缺陷识别,并在原图中标记缺陷,有onnx模型则无需配置,无需训练。

 

为了方便深度学习模型对图片数据进行推理,需要对读入图片进行归一化处理

 

将修改好的图像数据,用onnx模型推理工具进行推理,得到n*8400二维数组的推理结果,n为数据集缺陷种类的数量

 

9*8400二维数组转成8400*9方便处理,9列数据分别表示了检测框的中心x坐标、y坐标、宽度、高度、每个缺陷的置信系数

Windows10+Python+Yolov8+ONNX图片缺陷识别,并在原图中标记缺陷,有onnx模型则无需配置,无需训练。

 需要筛选出缺陷置信系数大于阈值的检测框

 

将筛选结果还原成原图像素点坐标

 

根据阈值去除同一缺陷种类的重复检测框

 

根据处理完的缺陷位置信息,使用方框将缺陷标记出来

Windows10+Python+Yolov8+ONNX图片缺陷识别,并在原图中标记缺陷,有onnx模型则无需配置,无需训练。

 

关注私信发源码。