针对以上三个问题,我们找到了解决方案,就是使用百度飞桨PaddleSeg进行复合材料检测算法的开发,PaddleSeg可以通过数据增强、算法选择等技术很好地解决以上问题,有效的帮助传统行业的技术人员进行AI算法的开发。根据PaddleSeg的全景图可以看到,PaddleSeg是百度飞桨提供的一款图像分割开发套件,通过它可以实现图像分割任务从训练到部署的全流程。该套件是基于飞桨核心框架开发的,具有数据增强、损失函数选择、分割模型及骨干网络的配置等功能,提供工业级的部署能力。我们选择PaddleSeg最重要的原因是其易用性,通过全局的配置就可以快速实现模型的选择、数据增强,无需过多编写代码,十分贴近我们开发的需求。(图示:飞桨图像分割套件PaddleSeg全景图)分割实际业务场景具有标注成本高,标注数据少,线上应用场景繁杂的问题。解决方案就是通过数据增强策略扩充训练数据,提高模型的可靠性。PaddleSeg支持强大的数据增强技术,可以涵盖开发算法需求。PaddleSeg还支持多种主流分割网络,结合不同特点的骨干网络可以满足不同精度和性能要求。其实最初考虑了三种算法的标注方法,第一种是使用矩形标注框的目标检测算法,第二种是旋转矩形框的目标检测,第三种是多边形标注框的图像分割。这几种标注的成本差别较大,需要根据检测目标特征、数据集大小来确定。我们最终采用了基于PaddleSeg的语义分割再加上后处理的方式,得到了所需的检测结果,并且用PaddleSeg开发起来速度非常快。接下来我们就按照PaddleSeg语义分割的思路来进行航空复合材料检测的实践,针对航空复合材料超声图像数据的特征,我们选择了左右翻转、上下翻转、变换长宽比、旋转、颜色空间扰动几种数据增强策略对训练数据进行扩充。(图示:航空复合材料检测实践——数据增强策略)PaddleSeg配置示例非常简单,十行左右代码就完成了数据增强的配置,对于算法效果的提升也非常好,大概是IoU两三个点的增益。进入到网络训练阶段,我们使用了COCO数据集的预训练模型,在复合材料检测数据集上进行微调,PaddleSeg提供了多种模型结构和丰富的预训练模型,像U-Net提供了COCO数据集上的预训练模型,Deeplabv3提供了Mobilenet、ResNet等骨干网络结构在Imagenet和COCO上的预训练模型。我们测试了U-Net和Deeplabv3,两者效果差别不大,但U-Net训练及推理速度更快,最终我们选择的是U-Net进行部署上线。这里我们使用脚本下载了U-Net预训练模型,对我们构建的复合材料检测数据集进行数据校验。在通过PaddleSeg进行模型训练时,只需要编写全局配置文件,我们设置了训练集、验证集、测试集的路径,配置了翻转、旋转、颜色扰动的数据增强策略,设置了模型结构为U-Net,模型输入为512 x 512,还对优化器、迭代次数等等训练参数进行设置。配置完毕后即可调用训练脚本对模型进行训练,开发过程非常简单,门槛很低。训练完成后,我们对模型进行评估,在验证集下进行测试,IoU超过95%。