RetinaNet是一种用于目标检测的单阶段机器学习神经网络架构,由Tsung-Yi Lin、Priya Goyal、Ross Girshick、Kaiming He和Piotr Dollár在2017年发表的论文《Focal Loss for Dense Object Detection》中提出。该模型在Facebook AI Research(现为Meta AI的一部分)开发,旨在克服单阶段检测器(通常更快但精度较低)与两阶段检测器(如Faster R-CNN,较慢但更精确)之间的精度差距。RetinaNet通过引入焦点损失(focal loss)实现高精度,这是一种新颖的损失函数,在训练过程中降低简单负样本的贡献权重,使模型能够专注于困难样本和稀有目标类别。
RetinaNet是一个全卷积网络,使用特征金字塔网络(FPN)骨干提取多尺度特征,随后是两个任务专用子网络:一个用于目标分类,另一个用于边界框回归。分类子网络应用焦点损失,而回归子网络使用标准平滑L1损失。该架构专为密集检测设计,意味着它在多个尺度的每个空间位置预测目标,无需单独的区域提议步骤。
架构与焦点损失
RetinaNet的核心创新是焦点损失,它修改了分类的标准交叉熵损失。焦点损失在交叉熵项中添加了一个调制因子\((1 - p_t)^\gamma\),其中\(p_t\)是模型对真实类别的估计概率,\(\gamma\)是聚焦参数(通常设为2)。该因子降低了分类良好样本(其中\(p_t\)较高)的损失贡献,防止大量简单背景样本淹没训练信号。论文表明,仅使用焦点损失,无需架构更改,就足以匹配或超越两阶段检测器的性能。
该网络使用ResNet(ResNet-50或ResNet-101)骨干结合特征金字塔网络,生成多尺度特征图,从高分辨率低层特征到低分辨率高层特征。金字塔的每一层都输入到分类和回归子网络,这些子网络在所有尺度上共享。这种设计使得单次前向传播即可检测从大到小的各种尺寸目标。
性能与基准结果
在原始论文中,RetinaNet在COCO测试开发基准上使用ResNet-101-FPN骨干实现了最先进的平均精度(AP)39.1,超越了SSD和YOLOv2等先前单阶段检测器,并匹配或超过了Faster R-CNN等两阶段检测器的性能。使用更大的骨干(ResNeXt-101-FPN)时,其AP达到40.8。该模型还展示了强大的推理速度,在NVIDIA M40 GPU上使用ResNet-50骨干时运行速度高达每秒5.4帧,使其适用于实时应用。
作者指出,焦点损失在处理极端类别不平衡方面特别有效,,在COCO中,每张图像约有100,000个候选位置,但只有少数目标,背景样本数量远超前景样本。通过降低简单负样本的权重,RetinaNet比先前的密集检测器实现了更快的收敛和更好的最终精度。
影响与遗产
RetinaNet成为Computer vision研究的标准基线,并被广泛应用于自动驾驶、监控和医学成像等行业。其设计原则影响了后续的目标检测器,包括EfficientDet和更新的单阶段模型。焦点损失也被改编用于其他任务,如语义分割和自然语言处理,这些领域同样存在类别不平衡问题。
在Deep learning框架中,RetinaNet已在Detectron2、PyTorch的torchvision和TensorFlow Object Detection API等流行库中实现,方便研究人员和从业者使用。它已被用作更大Artificial intelligence系统的组件,包括Tesla中的车辆和行人检测,以及Waymo的自动驾驶技术,尽管这些公司后来已转向自定义架构。
扩展与变体
已提出多种RetinaNet的扩展。一个值得注意的变体是RetinaMask,它通过添加掩码预测分支将RetinaNet扩展到实例分割。另一个是FCOS(全卷积单阶段),它基于类似原理但使用无锚框的中心预测。研究人员还探索了集成注意力机制,例如在DEtection TRansformer(DETR)中,它使用Transformer (architecture)架构但仍解决相同的密集检测问题。
原始RetinaNet论文被广泛引用,截至2024年引用次数超过10,000次,反映了其对目标检测领域的重大影响。其在损失函数设计方面的贡献仍是训练密集预测网络的标准技术。