在图像检测领域,EfficientDet和YOLOv3是两种领先的模型。EfficientDet因其出色的性能和速度而受到青睐,而YOLOv3则因其实时预测能力而广受欢迎。本文将对这两种模型在不同方面的性能进行比较,包括模型构建方法、训练时间、模型大小、推理时间和下游性能。
EfficientDet是最新的图像检测模型,它不仅性能卓越,而且相对于其他图像检测模型来说速度更快。在COCO数据集上,EfficientDet展示了在模型大小方面相对于其他模型的最佳性能。COCO数据集包含80个目标类别,涵盖了广泛的视觉语义,被认为是图像检测任务的黄金标准。
EfficientDet在网络结构上进行了精心设计。首先,它使用了EfficientNet作为卷积神经网络的骨干网络,EfficientNet是谷歌大脑团队构建的最新卷积网络。其次,EfficientDet利用神经架构搜索技术来确定如何有效地组合EfficientNet的特征层。第三,EfficientDet的论文研究了如何通过搜索有效地扩展网络的每个部分(ConvNet的大小、特征融合层的数量、输入分辨率以及类别/框网络)。
YOLO系列模型将目标检测问题定义为一个两步问题:首先将边界框作为回归问题进行空间分离,然后将这些边界框分类为预期的类别标签。这种方法非常有效地实现了接近实时的图像检测预测。在YOLO、YOLOv2和YOLOv3(以及正在编写的YOLOv4)的后续迭代中,训练框架、数据集输入和检测尺度都得到了改进。
EfficientDet保留了边界框回归和类别标签分类的任务框架,但在网络的特定区域进行了精心实现。EfficientDet使用EfficientNet作为其卷积神经网络的骨干网络,并通过神经架构搜索技术来确定如何组合EfficientNet的特征层。此外,EfficientDet的论文还研究了如何通过搜索有效地扩展网络的每个部分。
评估了这两种模型在计算机视觉中识别棋盘棋子和识别红/白血细胞的能力。(这两个数据集都在Roboflow上公开托管。)棋盘数据集包含大约300张图像和3000个注释。血细胞数据集包含大约400张图像和5000个类别注释。
对于每个模型,数据从Roboflow导入两种格式——EfficientDet的COCO JSON和YOLOv3PyTorch实现模型的YOLOv3 Darknet。Roboflow使得获取这两种数据下载链接并输入到模型的训练/验证/测试数据目录变得非常容易。这允许直接进行训练和研究,而不必担心数据操作和清洗。
为了训练每个模型在棋盘上的表现,将数据集通过模型传递100个周期。选择100个周期是因为在这个任务上,验证集的改进开始趋于平稳。发现EfficientDet的训练速度略快于YOLOv3(18.3分钟对比24.5分钟)。这是一个有希望的迹象,因为围绕EfficientDet的软件库将继续改进,这个初始的训练时间领先优势将随着时间的推移而减少。
比较了每个模型的权重文件大小。预计EfficientDet-D0的文件大小会更小,因为它包含的参数远远少于YOLOv3(400万对比6500万)。模型实现输出训练权重的形式为EfficientDet的.pth和.onnx,以及EfficientDet的.pt。以下是生成的模型文件大小:
EfficientDet-D0: 4MB (包括EfficientNet ConvNet骨干网络)
YOLOv3: 200MB
为了测量推理时间,尝试缩小到每个实现的确切部分,这部分接受网络输入并推理到网络输出。这希望消除了围绕图像处理和推理注释保存的一些偏见。话虽如此,再次预计EfficientDet的实现将随着模型的普及和实现的改进而得到改进。将测试集通过推理并测量每个图像的推理时间。然后,平均推理时间以创建一个稳定的估计。结果如下:
推理时间比预期的要接近,但EfficientDet仍然是明显的赢家。预计随着实现的改进,这个差距将扩大。
为了估计模型的可比准确度,计算了两个数据集的测试集上的mAP指标。mAP估计了模型在不同置信度下的性能,允许模型在置信度降低时在精确度和召回率之间进行权衡。在这里,为棋盘和血细胞的两个任务绘制了mAP。
这里的要点是,两种模型在棋盘上都做得非常好,YOLOv3略胜一筹。然而,由于注释中绘制的界限非常宽,这可能是一个偶然的结果。对于血细胞,EfficientDet略胜于YOLOv3——两种模型都很好地掌握了这项任务。