作者ching0629 (Syameroke)
看板DataScience
标题Re: [问题] 全卷积网路(FCN) 在YOLOV2上训练的问题
时间Tue Apr 17 13:06:37 2018
我觉得可能很多人并不懂卷积网路的基本概念,举例来说,原始yolo可以接受的input size应该是32的倍数,而不是13的倍数...
卷积网路在运算过程中经常会有pooling(或是现在比较喜欢用步辐为2的卷积器)做下采样,原则上yolo所提出的概念是使用任意结构的网路皆可以进行目标检测,而他厉害的地方是它订出了一个output结构让网路可以根据这个output来进行目标检测
在讲yolo2之前我们先讲yolo,原始yolo版本的输出是对最後一层的每个像素(也就是前面一直提到的13*13,但原始yolo的output是7*7)做一次预测,而预测内容包含:
1. 2个最有可能的物件框,参数包含
(1) 0~1的机率描述是否存在非背景物体
(2) 物件框的相对x座标(以该范围的百分比定义)
(3) 物件框的相对y座标(以该范围的百分比定义)
(4) 物件框的相对宽度 (以n倍的原始范围定义,如一个最终终像素在yolo中对应的是32*32个原始像素,所以这个数字为2代表对应到原来64的范围)
(5) 物件框的相对长度
以上共有10个output。
2. 可能的类别数,描述这个框所框到的东西是甚麽,一样输出0~1之间的机率(一般後面这些output会经过softmax)
有了这个概念後,假定有一个32*32的输入图像,这样最终特徵图就是1*1,那yolo就是输出2个可能的方框供人参考,而假设原始输入图像是320*320,那就会输出200个可能的方框
而yolo2和yolo的差别在,yolo是使用像素作为预测,如果有一个物件他大小接近整张图,这样一个32*32的范围会预测的好也是满奇怪的,所以精准度不够,因此yolo2先使用一些clustering的方式先找出训练集的方框大概都在哪,然後制定出ROI,并进行ROI pooling再做预测。除此之外,作者在训练yolo2时,为了让他能适应各种大小的物件,因此每10代会将所有图片及相对应的label调整为一个任意32的倍数,用这种类似data augmentation训练网路。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 210.60.122.10
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DataScience/M.1523941600.A.9DA.html
1F:→ ching0629: 再补充一个点好了,物件检测的loss function是一个同 04/17 13:09
2F:→ ching0629: 时考虑原始方框与预测方框重叠面积,以及分类正确度的 04/17 13:09
3F:→ ching0629: 一个损失函数,详细的自己去找paper看吧,式子有点长 04/17 13:10
4F:推 KyotoAnime: 推 想问 如一个最终终像素在yolo中对应的是32*32个原 04/17 16:41
5F:→ KyotoAnime: 始像素 这句 04/17 16:41
6F:推 KyotoAnime: 事实上他好像没有真的去切grid? 最终的像素会对应到 04/17 16:43
7F:→ KyotoAnime: 原始的像素 但并不会刚好是paper画的整齐的grid吧 也 04/17 16:43
8F:→ KyotoAnime: 就是对应回去可能会有重叠的部分? 04/17 16:43
9F:→ KyotoAnime: 还是他的stride 刚好会让彼此完全不重叠 04/17 16:44
10F:推 OnePiecePR: 好像是 Anchor 会在原定的grid 里头,长出的bounding 04/17 20:02
11F:→ OnePiecePR: 就不确定了。 04/17 20:02
12F:推 NMOSFET: 谢谢c大的解说 04/17 22:16