《You Only Look Once:Unified,Real-Time Object Detection》笔记
来源:互联网 发布:淘宝怎么设置客服认证 编辑:程序博客网 时间:2024/06/05 13:12
简介
- 将输入image分割成S*S个(论文中S=7)grid cell,如果object的center落在某个grid cell中,那么这个cell就负责detect该object,即负责预测该object的bbox(bounding box)。
- 每个cell都预测B个(B=2)bbox(x,y,w,h)以及相应的confidence,若object的center落在某一cell中,该cell的
confidence=P(object)∗IOU P(ojbect)=1 ,否则P(object)=0 。IOU定义为ground truth与bbox的交集面积比上并集面积。x,y是bbox的center相对于当前的grid cell的坐标,w,h是bbox相对于整个image的weight和height。 - 每个cell还预测每个类(论文中有20个类)
P(Classi|Object) ,有条件概率公式这个概率表示某一类的出现在当前cell中的bbox的概率,或者说当前cell的bbox拟合到object的概率。若某一cell的P(Classi|Object)∗P(Object)∗IOU=P(Classi)∗IOU P(Object)=0 ,显然P(Classi)=0 。 - 模型之后输出的是7*7*(2*5+20)的tensor。
网络结构
网络有24个卷积层,后接2个全连接层。借鉴GoogleNet的中Inception的思想,在3*3conv层后接一个1*1conv层,1*1conv降低先前的3*3conv层的特征空间的维度,还可以减少参数。
训练
- 在ImageNet数据集预训练网络,预训练的网络结构为上图的前20个conv层、一个average pooling层和一个全连接层。训练时间大概一周,在ImageNet2012验证集上的准确率到达88%。
- 将剩下的4个conv和2个全连接层加入到预训练网络中来,同时将网络输入像素从224*224提升到448*448.
- 归一化x,y,w,h。最后一层使用线性激活函数,其它层使用leaky rectified linear激活函数。
- 损失函数:
λcoord∑i=0S2∑j=0B1objij[(xi−xi^)2+(yi−yi^)2+(wi−−√−wi^−−√)2+(hi−−√+hi^−−√)2]+∑i=0S2∑j=0B1noobji,j(Ci−Ci^)2+λnoobj∑i=0S2∑j=0B1noobjij(Ci−Ci^)2)+∑i=0S21obji∑c∈classes(pi(c)−pi^(c))2
其中1obji 表示object出现在第i个cell中,1obji,j 表示object出现在第i个cell中,它的第j个bbox负责预测该object。λcoord=5 表示加大了对bbox坐标项的惩罚,λnoobj=0.5 表示减小了对不含object的cell的类预测概率的惩罚。这么做是因为image中大多数cell是不含object的(object的center不在大多数的cell中),故这些cell的confidence得到都是0,在BP时,会overpower(?)那些少数包含object的cell的confidence的梯度。- bbox的width和height是以平方根(
w−−√,h√ )出现在loss function中的,这么做是因为相对了小的bbox(w,h值都很小),大的bbox产生的偏离(和ground truth的差运算)应该更小。w,h都已经归一化0-1之间了,所以用w−−√ 相当于增大w。 - YOLO每个cell预测2个bbox,但每个object只要一个IOU值最高的bbox来负责预测。
- 在PASCAL VOC 2007 和2012数据集上运行了135epoch,batch size=64,momentum=0.9(动量法更新权重),decay=0.0005(学习率衰退率)。第一个epoch,学习率从0.001升到0.01,如果一开始的学习率较高,会使模型发散。保持0.01的学习率训练75个epoch,降低学习率到0.001再训练30个epoch,再降低学习率到0.0001最后训练30个epoch。
- 防止过拟合,在第一个全连接层之后使用rate=0.5的dropout。也做了data augmentation,包括对20%的原始图像进行随机缩放和translation(?),在HSV空间随机调整曝光和饱和度。
预测
- 每张图片预测98(7*7*2)个bbox,每一个cell预测20类。
- object的center落在哪一个cell中通常是很明显的,但如果object非常大或它的center靠近几个cell的连接处,通过Non-maximal suppression来选择某一个cell中的某一个bbox。
缺陷
- 每一个cell预测的2个box中只有IOU值最大的那个box负责预测类别,如果有多个object比较靠近,他们的center都落在一个cell中,这样就有object没有bbox去预测他们。
- 模型对新的或横纵比不寻常的object的泛化能力差,因为模型中使用了很多pool用于下采样,使得用于预测的特征较粗糙。
阅读全文
0 0
- 《You Only Look Once:Unified,Real-Time Object Detection》笔记
- You Only Look Once: Unified, Real-Time Object Detection
- You Only Look Once: Unified, Real-Time Object Detection
- You Only Look Once(YOLO):Unified, Real-Time Object Detection
- You Only Look Once: Unified, Real-Time Object Detection(2)
- You Only Look Once: Unified, Real-Time Object Detection
- You Only Look Once: Unified, Real-Time Object Detection
- You Only Look Once: Unified, Real-Time Object Detection
- You Only Look Once: Unified, Real-Time Object Detection
- [深度学习论文笔记][Object Detection] You Only Look Once: Unified, Real-Time Object Detection
- 论文笔记(3)You Only Look Once:Unified, Real-Time Object Detection
- You Only Look Once:Unified, Real-Time Object Detection论文笔记
- 论文阅读笔记:You Only Look Once: Unified, Real-Time Object Detection
- 论文阅读笔记:You Only Look Once: Unified, Real-Time Object Detection
- RCNN学习笔记(6):You Only Look Once(YOLO):Unified, Real-Time Object Detection
- 文献笔记 You Only Look Once:Unified, Real-Time Object Detection
- 论文笔记|You Only Look Once: Unified, Real-Time Object Detection
- 论文阅读笔记:You Only Look Once: Unified, Real-Time Object Detection
- Android屏幕适配全攻略(最权威的官方适配指导)
- Computer Networking—— physical layer QA
- day17(HashSet,TreeSet)
- 微信小程序开发步骤讲解和实用小技巧
- MapReduce 原理与应用
- 《You Only Look Once:Unified,Real-Time Object Detection》笔记
- hpuoj【1034】交换最值的位置【数组】
- C# 添加、修改和删除PDF书签
- MySQL学习随记---存储过程
- HDU 1520-Anniversary party(树状DP入门)
- 集合框架——Collectios之替换翻转方法
- Android 学习笔记2(Activity生命周期)
- python学习
- javascript计算时间差,获取多少分钟多少秒 exmobi实现双击功能