作者pjreddie的主页有YOLO v2的详细说明,包括模型和配置文件、使用方法、训练方法等。但是介绍中没有提及9000模型,本文对该模型的相关内容做一个汇总。
YOLO 9000是论文'YOLO9000: Better, Faster, Stronger'中提出的,该模型的训练方法是文章的一个创新点,其使用效果是Stronger论点的由来。下文将对上述两点内容进行详细介绍。
论文中提出了一种对分类和检测数据进行联合训练的机制,即使用检测数据学习边框坐标、Objectness(通用对象检测)、如何对普通对象分类(eg:cat, car, dog)等检测特定的信息,使用仅有类别标签的分类图像扩展可检测的类别数目。大体实现流程是将两类数据混合,当网络遇到检测的数据时,利用YOLO v2的损失函数进行反向传播,若训练的是分类数据,则使用损失函数中的分类损失部分进行BP。
实际操作中遇到的问题。首先是检测和分类数据的标签整合,检测数据的类别标签是普通对象和较为一般的标签,如'dog','boat'。而分类数据的类别标签意义更广,更深,如ImageNet中狗的种类就包含100多种。故需要一种继承的方法将两类数据的标签进行融合。其次是Softmax层的设计,大部分的分类方法是对所有待分类类别使用Softmax layer计算最终的概率分布,而使用Softmax的前提是假设类别间相互排斥,检测和分类数据混合后原始类别标签不满足该条件(如ImageNet中的"Norf