yolo源码解析c语言,YOLO 实践篇(darknet):You Only Look Once

本文介绍了YOLO目标检测模型,特别是其与darknet框架的结合,强调了darknet的C语言实现和无依赖性。通过对比其他目标检测方法如DPM、R-CNN系列,阐述了YOLO的实时性和背景错误少的优点。实践部分详细讲解了YOLO的训练和应用,包括下载预训练模型、图像检测、视频检测和在Pascal VOC数据集上的训练。
摘要由CSDN通过智能技术生成

前言

最近在学习 object detection 领域的相关知识,从传统的目标检测如 DPM 模型,到基于候选区的R-CNN系列模型,再到 single network && end to end 的 yolo 模型,还有针对 yolo 模型的缺陷进一步完善的 SSD 模型等等。一系列的理论和实践需要学习,希望能够记录学习过程中的点点滴滴,不断修改、完善和总结,系统的学习一遍。当然,最后还是要付诸于实践,才能更深入的掌握相关知识。

继 R-CNN 系列的 object detection 之后, YOLO 是一种新的目标检测方法,该方法的特点是实现快速检测的同时还达到较高的准确率。作者将目标检测任务看作目标区域预测和类别预测的回归问题。该方法采用单个神经网络直接预测物品边界和类别概率,实现端到端的物体检测。同时,该方法检测速非常快,基础版可以达到 45fps 的实时检测,Fast YOLO 可以达到 155fps。与当前最好系统相比,虽然 YOLO 网络模型检测得到的目标区域定位误差更大,但是背景预测的假阳性优于当前最好的方法(YOLO 采用全图信息来进行预测。与滑动窗口方法和 region proposal-based 方法不同,YOLO 在训练和预测过程中可以利用全图信息。Fast R-CNN 检测方法会错误的将背景中的斑块检测为目标,原因在于Fast R-CNN在检测中无法看到全局图像。所以相对于Fast R-CNN,YOLO背景预测错误率低一半)。

YOLO-v1 的主要特点:

1)速度快,能够达到实时的要求。在 Titan X 的 GPU 上 能够达到 45 帧每秒。

2)使用全图作为 Context 信息,背景错误(把背景错认为物体)比较少。

3)泛化能力强:在自然图像上训练好的结果在艺术作品中的依然具有很好的效果。

YOLO-v1 在 Pascal VOC-2012 数据集上训练,能识别如下 20 种物体类别:

1)person

2)bird, cat, cow, dog, horse, sheep

3)aeroplane, bicycle, boat, bus, car, motorbike, train

4)bottle, chair, dining table, potted plant, sofa, tv/monitor

darknet 的主要特点:

1)darknet 完全由C语言实现,没有任何依赖项。为了更好的可视化,可以使用 OpenCV 来显示图片;

2)darknet 支持 CPU 和 GPU(CUDA/cuDNN);

3)因为较为轻型,没有像TensorFlow那般强大的API,有另一种味道的灵活性,更为方便的从底层对其进行改进与扩展;4)darknet 的实现与 caffe 的实现存在相似的地方,熟悉了darknet,相信对上手caffe有帮助;

《You only look once: Unified, Real-Time Object Detection》原文 中还提到很多其他 Detection System,如下:

1)Deformable parts models(DPM):在深度神经网络之前,早期的 Object detection 方法是通过提取图像的一些 robust 的特征如( Haar,SIFT,HOG )等特征,使用 DPM 模型,用 silding window 的方式来预测具有较高 score 的 bounding box。DPM 模型把物体看成了多个组成的部件(比如人脸的鼻子、嘴巴等),用部件间的关系来描述物体,这个特性非常符合自然界很多物体的非刚体特征。DPM可以看做是HOG+SVM的扩展,很好的继承了两者的优点,在人脸检测、行人检测等任务上取得了不错的效果,但是DPM相对复杂,检测速度也较慢,从而也出现了很多改进的方法。正当大家热火朝天改进DPM性能的时候,基于深度学习的目标检测横空出世,迅速盖过了DPM的风头,很多之前研究传统目标检测算法的研究者也开始转向深度学习。(更详细的理论知识可以参考这篇 博文)

Felzenszwalb P F, Girshick R B, McAllester D, et al. Object detection with discriminatively trained part-based models[J]. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 2010, 32(9): 1627-1645.

2)R-CNN Series:包括 R-CNN、SPP-net、Fast R-CNN、Faster R-CNN、R-FCN 等经典的网络模型。

[1] R. Girshick, J. Donahue, T. Darrell, J. Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. ImageNet Large-Scale Visual Recognition Challenge workshop, ICCV, 2013.

[2] R. Girshick, J. Donahue, T. Darrell, J. Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2014.

[3] R. Girshick, J. Donahue, T. Darrell, J. Malik. Region-Based Convolutional Networks for Accurate Object Detection and Segmentation. IEEE Transactions on Pattern Analysis and Machine Intelligence, May. 2015.

[4] K. He, X. Zhang, S. Ren, and J. Sun. Spatial pyramid pooling in deep convolutional networks for visual recognition. In ECCV. 2014.

[5] S. Ren, K. He, R. Girshick, J. Sun. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks. Advances in Neural Information Processing Systems 28 (NIPS), 2015.

3)Deep MultiBox:Szegedy et al. train a convolutional neural network to predict regions of interest instead of using Selective Search. (Szegedy 等人训练一个卷积神经网络来预测感兴趣的区域,而不是使用 SelectiveSearch 算法直接获得候选区)YOLO 也是通过训练一个 CNN 预测 bounding-box。相对 MultiBox,YOLO 是一个完整的检测系统。

D. Erhan, C. Szegedy, A. Toshev, and D. Anguelov. Scalable object detection using deep neural networks. In Computer Visio

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值