| |
| |
| |
1.TopDown先进行行人检测,得到边界框,然后在每一个边界框中检测人体关键点,连接成每个人的姿态,缺点就是受检测框的影响太大,漏检,误检,IOU大小等都会对结果有影响。
2.BottomUp先对整个图片进行每个人体关键点部件的检测,再将检测到的人体部位拼接成每个人的姿态,缺点就是没办法利用全局上下文的信息,代表方法就是openpose。
| |
| |
热点图可以看成分类置信度
| |
沙漏模块首先通过一系列卷积和最大池化层对输入特征进行下采样。然后通过一系列向上采样和卷积层将特征向上采样到原始分辨率。由于在最大池化层中丢失了详细信息,因此添加了跳层连接,以便将详细信息恢复到上采样特性。沙漏模块在一个统一的结构中捕捉全局和局部特征。当网络中存在多个沙漏模块时,沙漏模块可以对特征进行再处理,获取更高层次的信息。 图中的每一个框对应一个剩余模块。DSSD[10]和RON[19]采用了类似沙漏的网络[28],使它们能够通过跳跃连接将低级和高级特性结合起来,从而更准确地预测边界框。
| |
corner pooling
| |
| |
pcij表示类别为c,坐标是(i,j)的预测热点图,ycij表示相应位置的ground-truth,论文提出变体Focal loss表示检测目标的损失函数。使简单的例子权重降低,从而将训练集中在困难负样本方面。 N表示目标的数量,ycij等于其他值时表示(i,j)点不是类别c的目标顶点,照理说此时ycij应该是0(大部分算法都是这样处理的),但是这里ycij不是0,而是用基于ground truth角点的高斯分布计算得到,因此距离ground truth比较近的(i,j)点的ycij值接近1,这部分通过β参数控制权重,此时损失函数的权重也是比较大的。对不同的负样本点用不同权重的损失函数。(we set α to 2 and β to 4 in all experiments),IoU>0.7的都画出来
| |
offset是表示在取整计算时丢失的精度信息,取整会带来精度丢失,这尤其影响小尺寸目标的回归,Faster RCNN中的 ROI Pooling也是有类似的精度丢失问题。Only at ground-truth corner location.所有类通过角池化共享的一组偏移量。Smooth L1 Loss相比于L2 Loss对于离群点(outliers)更不敏感,当预测值与目标值相差很大时,L2 Loss的梯度为(x-t),容易产生梯度爆炸,L1 Loss的梯度为常数
| |
Lpull损失函数使同一目标的顶点进行分组, Lpush损失函数用于分离不同目标的顶点,即用来扩大不属于同一个目标的两个角点的embedding vector距离。etk表示属于第k个目标的左上角角点的embedding vector,ebk表示属于第k个目标的右下角角点的embedding vector,ek表示etk和ebk的均值。 ∆ to be 1,只用在groudtruth 顶点定位上。We set both α and β to 0.1 and γ to 1. We find that 1 or larger values of α and β lead to poor performance. | |
| |
corner pooling之所以有效,是因为(1)目标定位框的中心难以确定,和边界框的4条边相关,但是每个顶点只与边界框的两条边相关,所以corner 更容易提取。 (2)顶点更有效提供离散的边界空间。
| |
| |
模型测试时候的几个细节:1、在得到预测角点后,会对这些角点做NMS操作,选择前100个左上角角点和100个右下角角点。2、计算左上角和右下角角点的embedding vector的距离时采用L1范数,距离大于0.5或者两个点来自不同类别的目标的都不能构成一对。3、测试图像采用0值填充方式得到指定大小作为网络的输入,而不是采用resize,另外同时测试图像的水平翻转图并融合二者的结果。4、最后通过soft-nms操作去除冗余框,只保留前100个预测框。
| |
|
CornerNet图文解析ppt
最新推荐文章于 2020-08-21 23:00:03 发布