2. 具体步骤:
首先要将图片进行网格的划分,在进行划分前可以考虑进行resize,以便用同样的方格大小继续进行接下来的训练和预测。论文采用SS的分割尺寸,即将输入图片resize后均分为SS个完全一样大小的小方格,便于接下来的参数确定,论文中采用S=14。对于每个小方格要预测B个角点和B个中心点,也就是说对于当前选中的一个小方格要预测一些参数(下面详细解释),论文中采用B=2以下我们按照论文中所说的方式进行剖析。现在图片被分割成了14*14=196个大小完全一致的方格,而对于每一个方格要预测一些参数,这些参数构成了最后该方格中是否有物体的概率(这里的有物体指的是物体的中心或者角点是否在该方格内)。这些参数包括以下: 该方格内是否有物体该方格内假设有物体,那么其真正的坐标在该小格内的相对坐标大小。这意味着将一个方格现在看成一个新的相对坐标系,向下为y正向,向右为x正向,而要预测的x和y是在该新的坐标系下的位置,取值自然就是[0,1],用于微小调整预测框。该方格内假设有物体,那么是某个物体的概率为多少。共有C个分类,论文中采用的是C=20该方格内假设有物体,那么该方格与第x行连接的概率有多大该方格内假设有物体,那么该方格与第y列连接的概率有多大。4和5当中的连接可以这样理解:假如现在预测的是角点,那么要完整预测一个物体就还需要知道一个中心点,而那个中心点一定也属于另外一个方格,那那个中心点就一定有一个所属的行和列,于是通过4和5的方式进行预测。当现在预测的是中心点时,道理相同3. 损失函数
损失函数形式如下: 其中 含义比较简单,如果该方格内有物体,那么loss就取前一项,如果没物体就直接取后一项 其中 L ( k ) i j x L(k)_{ij}^{x} L(k)ijx表示第i行第j个点与第k行连接的概率,x代表行,i和j的出现则是将分割的网格分为了14*14,因此i和j的取值都是[0,13],由于各项损失均为 L 2 L_2 L2loss,因此怀疑给ground truth标注的时候得到的结果也是和经过网络后的参数一样维度的变量。4. 训练
网络结构如下: 特征提取网络选择了Inception-V2网络,再经过第一个conv层后选择了走四条完全一致但相互独立的分支,这样可独立训练四份不一样的参数,最后得到四个不一样的inference, 再进行参数解析得到最终结果。
网络最后出现的204可能是451,参数分析如下: 由于B=2, 每个方格要预测B个角点和B个中心点,因此2B=4。51则是1+2+20+14+14, 1 是是否有物体的概率,2是微小调整的x和y位置,20是分类数,14和14则是两类连接的参数。
5. 预测 预测时通过四条分支独立预测物体,最终使用NMS取得概率最大的检测框输出
6. 个人遇到的问题
论文中没有详细说明各层卷积的详细参数,也没有提供源码,在分析时遇到较大的问题。空洞卷积部分的参数不明朗,若是一直做多次空洞卷积,padding需要到达16,怀疑会影响预测准确性。将ground_truth转换为target的时候考虑到训练时target应该与inference的维度一模一样,于是转换时不是很清楚如何去做,是将四个51都当做角点来标注还是2个当做角点2个当做中心点?并没有给清楚。总而言之,思路在当时比较奇特,但是论文比较笼统,在重现时出现较多的问题.
