我与机器相互学习

如果生命会像《死神来了》那样戛然而止,且避无可避。如果死神仍会让我说出生命中最幸福的时刻,那我一定会提起大三的那个春天,那时拥有了学校服务器的使用权限,像是拥有了权力的鸢飞戾天者。

抛开得奖获得的虚荣之外,这一次对于深度学习算法的了解也确实让我接触到了目前世界发展的方向,ML的魅力从此也就在我的内心扎根。

题目中,我们的目标是使用给出的带有28种农业害虫的图片,训练出一个可以帮助识别农业害虫的模型,在和多位老师的讨论之后,我定下了使用Faster-RCNN算法(基于pytorch)作为目标检测模型的主体。这样的模型对于小目标物体检测有着较为良好的应用,缺点是训练时间较长,幸运的是老师为了方便竞赛,给我们提供了学校的服务器。

一些对于已完成项目的介绍

从整体上看,Faster-RCNN是一个两阶段的算法,在第一个阶段中将所给的训练图片中的特征提取出来,这一部分我们称之为RPN(region proposal network);在第二阶段中,将前部分提取的特征进行分类,我们称之为RCNN( regions with CNN features)。由于在这两个阶段都需要计算损失,前部分会将较好的拟合区域传递给后一层,所以总体上对于小物体的检测有着较为良好的性能。

在一个完整构成的RPN步骤中,第一步是将训练集的图片输入backbone提取出特征图。沿用至今的backbone网络有六到七种,如: VGGNet、Inception、ResNet、DenseNet、FPN和DetNet。在我的实际使用中,是将传统Faster-RCNN构成中的VGG网络改成了在检测小物体目标性能较为优秀的FPN网络。FPN的结构是由卷积层和池化层共同构成

(没写完)