CNN图像定位与物体探测_七月算法5月深度学习班第6次课程笔记

 
  desc
图像领域的任务
前两个的默认是只有一个主体,对于 localization 使用的方法就是一个回归问题,回归值是一个四元组
 
对于 多对象的图片,使用slide window的方式来扫描,中间有些技巧
localization 的问题 本质是一个 四元组的 回归问题
听说
VGG 适合做迁移学习 ,GoogleLeNet 在 VGG 初始上参数调整的
 
ResNet 微软 152 层,这么深,能训练成功已经很困难了
在某个深度上,能完整训练出来,在这个问题上不好 ,在别的问题上可能效果好
为什么卷积神经网络强大
卷积神经网络的本质还是在发挥神经网络的功能,是 FC 网络的 简化 
只是:
1. 计算力上去了
2. 而且技巧性的降低了复杂度,使用:局部连接 + 参数共享,使得参数降低
确定矩形
x,y,w,h
这个四元组 可以确定一个矩形,而不是使用 4个二元组的方式
关于 classification + localization 的问题
1. 先找 AlexNet ,分别接上 classification head 和 regression head 进行 fine tune 一下
 
2. 对于然后 使用的损失函数是 L2 norm,而不是cos 角,因为cos 仅仅表示夹角,而这里如果对 ,x, y, w, h 作伸缩,那么是有问题的 ,所以只能欧氏距离
 
3. 输出的时候,可以 前面的共用,输出有两个头,节省预测的时间,如下图:
 
4. 进一步扩展,可以对每一个类进行 localization,不管这个类的概率是大是小
假如分类的head 有 C 个类,那么 regression head 的输出是 C*4 个数值
其中,这个 C*4 的数值就是 result ,只要有监督就可以了
虽然比较个性化,可视化好,但是 预测值增多,提升了难度
 
5. 回归层的位置
最后一个conv层之后 或者 FC 层之后都是可以的
关于精细化的 classification + localization 的问题
关于 精细化的 猫的鼻子耳朵眼睛都探测出来,此时的问题还不是object-detection
因为有几个主体是知道的,而 object-detection 有几个主体是不知道的
所以可以分别单独训练,多跑几个localization,分别针对鼻子眼睛等等独立的训练
 
而对于 deep pose,姿势探测,主要是 确定了人的关节点,有几个关节点也是确定的,可以单独训练,多跑几遍,然后信息组合,得出此时的姿势的结论
object detection 因为不知道有多少个主体,所以要:滑动窗口的方式,然后针对每一个窗口进行 classification + localization 的问题
R-CNN的 过程
1. 从 AlexNet 开始配置一个网络,认为AlexNet 已经帮助做好了 特征抽取的工作
2. 训练过程:将图像找出很多的候选 region,然后resize 之后 分别 投入你的网络当中
    去 get 到这个图片的 feature 
3. 然后使用一个 SVM 判断 这些region 图片的feature,是否是 含有主体的图片
   有几个主体,就要训练几个 SVM
fast R-CNN的 过程
不再是每一个区域都输入网络得到其 feature,而是整个图片输入网络得到一个大的 ALL_feature
然后 各个 region 从原始图到 ALL_feature 上有一个映射,从这个 ALL_feature 中找出自己region 的 feature
 
优点
1. 特征抽取时间加速了,不必有多少个 region 就要过多少次网络
2. 原始 AlexNet 也在 fine-tune,而不是 freeze 住了
3. 不必将特征存盘,而是用一个系统在跑
  # 即不用 pipeline 了
faster R-CNN的 过程
不再使用 selective search 的方法找候选区域了,
而是 使用 一个层 RPN 来找出候选区域
且不是在原始图像上找而是在conv5上面找 ,这是更快的原因
 
以前是 selective search的方法 找候选区域
但是这个慢,且没有用用到GPU上
 怎么找 候选的 region
不能全部遍历式的找region,思路就是先 找出一些 边缘 ,确定一下 候选区域 region
然后再测试:
至于确定这些 region 边缘检测,那么可以基于像素等使用kmeans,
然后将其扩展为一个方框,这些方框之间可以有重叠
对 linear svm 认识
SVM 可以使用linear svm 来分类比较快 ,即不要用Kernel
linear svm 就是线性分类器的速度
选取哪里作为 图像的特征表示
一般使用的方法时FC层之后的作为特征表示,因为认为经过卷积之后,信息损失,这个FC有信息还原
但是如果 FC 之后的feature 太大,所以用 最后一个 pool 层的结果来表示
参数共享
这个的 fastRCNN
就是相当于 卷积大小是1,连接数目没减,主要使用的是 Wi——>W
就是:参数共享,参数已经很少了,但是连接数没变 
 
全连接层是费时间的主要原因
bbox regression bounding box 
R-CNN 
其思想就是 分成很多区域,然后一一处理这些区域,这应该就是 Region 的含义
只不过不是针对每个 原始图片region,而是处理其对应的feature
 
 
RCNN 主要是在训练最后一个分类层,前面的 CNN freeze 了,而 fast-CNN 同时训练前面的CNN
   
原文地址:https://www.cnblogs.com/jianzhitanqiao/p/5550344.html