s3fd人脸检测,但是无权重,ssd风格,代码可用
https://github.com/tgisaturday/S3FD_ATSS_SAPD
https://github.com/sfzhang15/ATSS
https://github.com/feiyuhuahuo/atss_minimal
报错代码:
best_truth_overlap_clone[1 - add_idx] = 0
修改方法:
best_truth_overlap_clone[torch.logical_not(add_idx)] = 0
指出anchor-free和anchor-based方法的根本差异主要来源于正负样本的选择
提出ATSS( Adaptive Training Sample Selection)方法来根据对象的统计特征自动选择正负样本
证明每个位置设定多个anchor是无用的操作
详细解读
论文主要阐述了对于正负样本的定义和选取对模型最终效果的影响。
首先是对比了anchor_free和anchor_base在选取样本时的差异,本文以RetinaNet和FCOS作为例子进行了对比,RetinaNet是采用IOU去选取正负样本,FCOS是基于空间分布对正负样本进行score。这两种采样方式会导致最终训练的正负样本是不一致的,作者通过对ReinaNet用两种不同采样方式进行训练模型,并对比起在COCO上的AP,验证anchor_base和anchor_free本质上的区别只是在于采样的不同。
regression Box Point
Intersection over Union 37.0 36.9
Spatial and Scale Constraint 37.8 37.8
然后提出本文的思想,自适应的选取正样本的方法,同时结合了上述两种的选取正样本方法,具体方法如下:
1.对于每个输出的检测层,选计算每个anchor的中心点和目标的中心点的距离,选取K个anchor中心点离目标中心点最近的anchor为候选正样本(candidate positive samples)
2.计算每个候选正样本和groundtruth之间的IOU,计算这组IOU的均值和方差
3.根据方差和均值,设置选取正样本的阈值:t=m+g m为均值,g为方差。
4.根据每一层的t从其候选正样本中选出真正需要加入训练的正样本。
5.训练模型。
本文的方法主要有两大特性:
1.保证了所有的正样本anchor都是在groundtruth的周围。
2.最主要是根据不同层的特性对不同层的正样本的阈值进行了微调。
作者采用本方法与之前的提取正负样本的训练方法进行了对比
感谢原文链接:https://blog.csdn.net/ckqsars/article/details/103632934
This ATSS implementation is based on FCOS and maskrcnn-benchmark and the installation is the same as them. Please check INSTALL.md for installation instructions.
A quick demo
Once the installation is done, you can download ATSS_R_50_FPN_1x.pth from Google or Baidu to run a quick demo.
# assume that you are under the root directory of this project,
# and you have activated your virtual environment if needed.
python demo/atss_demo.py
git clone https://github.com/sfzhang15/ATSS.git
cd ATSS
# the following will install the lib with
# symbolic links, so that you can modify
# the files if you want and won't need to
# re-build it
python setup.py build develop --no-deps
unset INSTALL_DIR
200ms一张图片,也不是很大的图片
这个是跟踪?