深度学习笔记1:end-to-end、anchor box解释、人体检测代码


SSD(SSD: Single Shot MultiBox Detector)是采用单个深度神经网络模型实现目标检测和识别的方法。该方法是综合了Faster R-CNN的anchor box和YOLO单个神经网络检测思路(end-to-end).

https://github.com/weiliu89/caffe/tree/ssd   (人体检测代码)


非end-to-end方法:
目前目标检测领域,效果最好,影响力最大的还是RCNN那一套框架,这种方法需要先在图像中提取可能含有目标的 候选框(region proposal), 然后将这些候选框输入到CNN模型,让CNN判断候选框中是否真的有目标,以及目标的类别是什么。在我们看到的结果中,往往是类似与下图这种,在整幅图中用矩形框标记目标的位置和大小,并且告诉我们框中的物体是什么。
这种标记的过程,其实是有两部分组成,一是目标所在位置及大小,二是目标的类别。在整个算法中,目标位置和大小其实是包含在region proposal的过程里,而类别的判定则是在CNN中来判定的。
深度学习笔记1:end-to-end、anchor box解释、人体检测代码_第1张图片

这种标记的过程,其实是有两部分组成,一是目标所在位置及大小,二是目标的类别。在整个算法中,目标位置和大小其实是包含在region proposal的过程里,而类别的判定则是在CNN中来判定的。

end-to-end方法:
end-to-end方法的典型代表就是有名的 yolo。前面的方法中,CNN本质的作用还是用来分类,定位的功能其并没有做到。而yolo这种方法就是只通过CNN网络,就能够实现目标的定位和识别。也就是原始图像输入到CNN网络中,直接输出图像中所有目标的位置和目标的类别。 这种方法就是end-to-end(端对端)的方法,一端输入我的原始图像,一端输出我想得到的结果。只关心输入和输出,中间的步骤全部都不管。

候选区域(anchor)

备注:具体是咋样实现的,目前还没搞清楚,先知道大概是个啥就ok,后续弄明白就好。

特征可以看做一个尺度51*39的256通道图像,对于该图像的每一个位置,考虑9个可能的候选窗口:三种面积{1282,2562,5122}×三种比例{1:1,1:2,2:1}。这些候选窗口称为anchors。下图示出51*39个anchor中心,以及9种anchor示例。

深度学习笔记1:end-to-end、anchor box解释、人体检测代码_第2张图片

参考文献:
https://www.zhihu.com/question/51435499/answer/129543052 (end-to-end)
http://blog.csdn.net/shenxiaolu1984/article/details/51152614 (anthor)
https://zhuanlan.zhihu.com/p/25100992?refer=shanren7(ssd源码解释)

你可能感兴趣的:(机器学习)