PCB板缺陷检测
模型训练
在初学的时候,可能不太了解到底模型训练是个什么流程,到底是什么意思。其实也很简单,就是我们用一个框架(如pytorch,tensorflow等)通过一定的算法如yolov5,对一定的数据集进行训练后等形成一个可以直接调用模型(例如用pytorch训练的模型通常是.pt或.pth文件,当然也有一些其他的,这就是看具体的需要了),通过一定的方法调用模型后(通常是简单的.load()语句),直接输入数据就可以按照一定的格式输出训练后的数据。
选择数据集
PCB缺陷检测我查到的有两种数据集,一种是deepPCB,另一种是北京大学智能机器人开放实验室数据,因为北京大学的数据已经处理好了,不用我们再处理了,所以我们在本次实验采用的是北京大学的数据,数据内容如下:
我们可以打开Annotations文件夹,然后再随便打开一个缺陷类型的文件,我们发现都是一些xml的文件,如下图所示:
这就是已经标注好的文件,用xml文件的形式保存,这个文件是在软件上手动标注后导出的文件,我们需要通过一定的处理,将标注信息提取出来。而这一步北京大学的数据集也替我们做了,连处理都不用了,我们可以看一下labels文件夹,内容如下:
这一个一个的txt文件就是我们训练需要的标签文件,我们可以随便打开一个,内容如下:
一共是三行五列数据,开头的0表示缺陷的类型(这里的0~5表示5种缺陷类型),后面的四列表示的是图像的一些其他的信息。三行表示这张图片总共有三个缺陷的地方。
划分训练集
上一步中,我们已经有了初步的数据集,下一步我们要将数据集处理成yolo可以处理的形式,什么意思呢,就是只要我们将yolo模型中的数据集位置改成自己的,就可以直接训练。yolo的数据集如下图所示:
先建立一个主文件夹datasets
然后在里面建立两个文件夹,一个labels,一个images
images里面建立两个文件夹 train和val