EfficientDet是谷歌大脑于去年11月份公布的目标检测算法族,涵盖轻量级到高精度的多个模型,COCO数据集上达到 50.9 mAP,一经推出便获得了大量关注!
EfficientDet原出于论文 EfficientDet: Scalable and Efficient Object Detection,开源页面显示,这篇论文已经被CVPR 2020接收。
在算法设计上有三大特点:
1. 优秀的主干网络。同样出自谷歌家族的EfficientNets 。
2. 双向FPN(BiFPN,特征金字塔网络)。可以方便且更好的进行特征融合。
3. 模型缩放技术。设计好模型的主干网络、特征网络、预测网络后,按照一定的优化规则,在网络的深度、宽度、输入图像的分辨率上进行模型缩放,故EfficientDet其实是一系列网络,可在统一架构下得到适合移动端和追求高精度的多个模型。
作者们结合BiFPN和特征融合策略设计了与YOLOv3精度相仿的EfficientDet-D0,使用模型缩放技术得到一系列检测模型:EfficientDet-D1 到 D6,在精度和模型复杂度上权衡。
其高精度模型 EfficientDet-D6 在COCO数据集上达到 50.9 mAP,而仅需要51.9M 参数 和 229B FLOPs。相比于之前的最好算法(AmoebaNet NAS-FPN AutoAugment )达到了更高的精度,却仅有1/4参数量,1/13的FLOPs,在GPU/CPU上运行结果快3~5倍!
EfficientDet D0-D6所有预训练模型:
同时为了方便使用,谷歌也提供了训练代码。
AI项目体验地址 https://loveai.tech
快速运行
1.安装 tensorflow 1.XX版
2.下载预训练模型 和代码
https://github.com/google/automl/tree/master/efficientdet
将模型解压后 放入 models 目录下
3. 修改相关路径 ,运行代码
注意输入图片大小否则会报错:
效果展示