我的AI之路(48)--用同一自有数据集训练和比较CenterNet、EfficientDet、Cascade-RCNN的实际识别效果

     目标检测模型的发布论文一般给出了基于VOC或COCO等数据集的AP和AR等指标值,这个可以作为比较选择模型的一个参考,实际效果怎么样还是得自己动手实验了才知道真实效果是怎么样,最好采用需要在实际项目中应用的自己制作的同一数据集来训练和比较比较直观和有说服力。

     近两个月来断断续续用一部分时间使用同一自有数据集(内有1个类别)完成了CenterNet、EfficientDet(backbone是adv EfficientNet b7)的训练、为加快进度,让同事同时完成了backbone分别采用ResNet101和HRNet的Cascade-RCNN的训练,最后我测试比较这四种训练出来的模型的效果如下:

1)EfficientDet的理论指标值:

2)CenterNet的理论指标值: 

 3)Cascade-RCNN(HRNet)的理论指标值:

4)Cascade-RCNN(ResNet101)的理论指标值: 

性能上分别测试了在AI训练服务器上的识别性能和在Xavier板子上的识别性能:

1)CenterNet在AI服务器上识别性能,识别一张图需要0.11-0.13秒多:

2)CenterNet在Xavier上的识别性能,识别一张图需要0.9秒多:

3)EfficientDet在AI服务器上的性能,识别一张图只需要0.06-0.09秒多左右:

4)EfficientDet在Xavier上的性能,识别一张图需要0.3秒多:

5) Cascade-RCNN(HRNet)在AI服务器上的性能,识别一张图需0.12-0.16秒多的样子:

 6)Cascade-RCNN(HRNet)在Xavier上的性能,识别一张图需1.5-1.8秒多的样子:

7)Cascade-RCNN(ResNet101)在AI服务器上的性能,识别一张图需不到0.1秒的样子: 

 8)Cascade-RCNN(HRNet)在Xavier上的性能,识别一张图需1.2-1.3秒多的样子:

实际误识别:

     测试样本共有694张图, CenterNet和EfficientDet以及Cascade-RCNN(ResNet101)没有误识别,Cascade-RCNN(HRNet)有一张误识别。

召回率实际效果:

     假如一张图里只要发现一个目标即视为成功召回(这个根据具体项目需求定)的话,测试样本694张图里,CenterNet有8张完全没有召回,EfficientDet有12张完全没有召回,Cascade-RCNN(ResNet101)有20张完全没有召回,而Cascade-RCNN(HRNet)则只有2张完没有召回。

     可见各个模型有各自的优缺点,有的模型在论文中给出的指标非常高,例如efficientdet,实际测试值也差不多,但是Cascade-RCNN(ResNet101)这样的老模型的论文指标不是最好的,但实际测试中理论上指标最优秀,居然远超efficientdet,但是实际召回效果却又不是理论计算出的值那么回事,所以,盲目相信论文中的理论指标值也会害死人,各个模型都有自己的优势和局限性,不同的部署环境里在性能上表现也差异挺大的,比如Cascade-RCNN在服务器上性能很好,在Xavier上就最差了,所以需要根据是需要将模型用于比赛还是实际项目应用,实际项目应用中的部署环境条件和项目对AI模型提出的关键需求等因素综合考虑选择合适的模型。

你可能感兴趣的:(CenterNet,EfficientDet,Cascade-RCNN,efficientdet,CenterNet,Cascade-RCNN,HRNet,ResNet101)