流程图:
图参考自:https://blog.youkuaiyun.com/h__ang/article/details/90316220
训练流程总结如下: (这是通过object detection api训练过程总结而来)
(1)首先从tfrecords格式的数据中读取训练图片信息.
(2)对图像进行随机水平翻转、大小调整等操作
(3)利用搭建的卷积神经网络得到不同尺度的特征图(6个stage(特征图))
(4)利用默认框生成规则,为每个特征图生成默认框
(5)计算默认框与groundtruth boxs(标注框)的相似度矩阵
(6)生成默认框与 groundtruth boxes的匹配结果(match_results[i]>=0 默认框i有与之匹配的groundtruth box,该默认框为正样本;match_results[i]=-1 默认框i与所有的groundtruth box 都不匹配,该默认框为负样本;match_results[i]=-2 该默认框被忽略)
(7)根据匹配结果为每个默认框分配目标类别;同时为匹配到groundtruth box的默认框计算真实的位置调整量(tx_,ty_,tw_,th_)
(8)利用特征图进行预测,预测每个边框的目标类别与位置调整量(tx,ty,tw,th)
(9) 通过随机采样或困难采样方法,取样用于损失函数计算的默认框
(10)计算损失函数:分类损失和位置损失
(11)计算损失函数的梯度、根据梯度值对参数进行更新
(12)迭代训练,直至达到最大迭代次数