“完了完了”队算法说明及运行流程
1. 算法说明
框架选择: 深度学习框架使用pytorch,目标检测框架使用mmdetection。
模型选择: 模型选用two-stage的检测模型cascade-rcnn。
训练集生成: 将原训练集通过划窗裁剪的方式裁剪并保留包含瑕疵的划窗块,其划窗大小为1024*1024,步长为512,共可生成四万多张图片。
测试集生成: 由于cascade-rcnn模型可对多种尺度的输入图像进行处理,所以直接采用原测试集图片作为测试集。
Tricks: (1)减小anchor尺寸以适应小尺寸瑕疵;(2)减小RPN和RCNN的IOU阈值,以增加用于训练检测头的正样本数量;(3)使用多尺度训练,以使模型根本更加适应输入图片尺寸的变化,并达到数据增强的效果;(4)使用随机翻转和Random Crop数据增强方法;(5)推断时使用两种尺度进行联合预测;(6)推断时增加RPN预测框保留数量,减少筛除分数阈值,增加检测头预测框的保留数量。
后处理: (1)若整张图的所有预测结果中没有高于0.8的高置信度预测框,则判定此图中不包含任何瑕疵;(2)对预测框进行IOU=0.2的按类别非极大值抑制以减少重叠框;(3)对图像整体做OTSU二值化,分离瓷砖和背景,并将落入背景的预测框筛除;(4)根据训练集中各类别瑕疵的ground truth框面积的最大值,对面积超过此最大值的预测框进行筛除。
2. 运行流程
本算法训练和推断均使用了mmdetection检测框架,运行流程如下:
(1)解压project.zip并进入project文件夹目录下
cd project
(2)训练:运行train.sh
bash code/train.sh
(3)测试:运行test.sh
bash code/test.sh
3. 环境
ubuntu: 20.04
python: 3.8
pytorch: 1.7.1
cuda: 11.0