【深度学习】YOLO

1、简述下YOLO算法原理?

答:Yolo算法采用一个单独的CNN模型实现end-to-end的目标检测,模型参考自GoogleNet,YOLO的CNN网络将输入的图片分割成SxS的网络,然后每个单元格负责去检测那些中心点落在该格子内的目标。每个单元格会预测B个边界框(bounding box)以及边界框的置信度(confidence score)。所谓置信度其实包含两个方面,一是这个边界框含有目标的可能性大小,二是这个边界框的准确度,边界框的准确度可以用预测框与实际框(ground truth)的IOU(intersection over union,交并比)来表征。边界框的大小与位置可以用4个值来表征:(x,y,w,h),其中(x,y)是边界框的中心坐标,而(w,h)是边界框的宽与高。还有一点要注意,中心坐标的预测值(x,y)是相对于每个单元格左上角坐标点的偏移值,并且单位是相对于单元格大小的,而(w,h)预测值是相对于整个图片的宽与高的比例。这样,每个边界框的预测值实际上包含5个元素:(x,y,w,h,c),其中前4个表征边界框的大小与位置,而最后一个值是置信度。每个单元格需要预测 (B5+C) 个值。如果将输入图片划分为 SS 网格,那么最终预测值为 SS(B5+C) 大小的张量。对于PASCAL VOC数据,其共有20个类别,如果使用 S=7,B=2 ,那么最终的预测结果就是 77*30大小的张量。

解析:不用慌,只要自己思路清晰,说的连贯,不间断卡壳就行,其实如果面试官不了解这些,他也是听不懂的,但是最好不要瞎说,因为他也会查的,并且可能会抓住其中一点,深入细问,如果问的正好是你瞎编的内容,你就无法自圆其说了。

2、相对于YOLO,YOLO v2有哪些改进?

首先,将dropout层去掉,在每个卷积层添加了Batch Normalization,mAP提高了2%;
其次,使用高分辨率分类器,将输入分辨率数据有224224变为448448,mAP提高了4%;
第三,引入anchor boxes来预测bounding boxes,去掉网络中的全连接层。准确率只有小幅度的下降,而召回率则提升了7%,说明可以通过进一步的工作来加强准确率,的确有改进空间;
第四,使用维度聚类,本文使用K-means聚类方法训练bounding boxes,可以自行找到更好的boxes宽高维度;同时使用直接位置预测(Direct lacation prediction),将定位预测值归一化,使参数更容易得到学习,模型更加稳定。作者使用Dimension Clusters和Direct location prediction这两项anchor boxes改进方法,mAP获得了5%的提升。
第五,增加细粒度特征(Fine-Grained Feature),是模型获得多尺度的适应性,简单添加了一个转移层( passthrough layer),这一层要把浅层特征图(分辨率为26 * 26,是底层分辨率4倍)连接到深层特征图。这样做相当于做了一次特征融合,有利于检测小目标。
最后,多尺度训练(Multi-Scale Training),方法就是几次迭代之后就会微调网络,每过10次训练(10 epoch),就会随机选择新的图片尺寸。YOLO网络使用的降采样参数为32,那么就使用32的倍数进行尺度池化{320,352,…,608}。最终最小的尺寸为320 * 320,最大的尺寸为608 * 608。接着按照输入尺寸调整网络进行训练。这种机制使得网络可以更好地预测不同尺寸的图片,意味着同一个网络可以进行不同分辨率的检测任务,在小尺寸图片上YOLOv2运行更快,在速度和精度上达到了平衡。
3、深度学习方法与传统机器学习方法的区别是什么?

答:机器学习包括深度学习,深度学习是使用卷积层学习特征,而非像机器学习那样需要人为提取特征,深度学习可以自行学习到更深层次的特征。机器学习方法的各个公式有数学理论推导支持,深度学习方法就像一个黑匣子,缺少数学理论支持。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值