计算机视觉领域中,目标检测一直是工业应用上比较热门且成熟的应用领域,比如人脸识别、行人检测等,国内的旷视科技、商汤科技等公司在该领域占据行业领先地位。相对于图像分类任务而言,目标检测会更加复杂一些,不仅需要知道这是哪一类图像,而且要知道图像中所包含的内容有什么及其在图像中的位置,因此,其工业应用比较广泛。那么,今天将向读者介绍该领域中表现优异的一种算算法——“你只需要看一次”(you only look once,yolo),提出该算法的作者风趣幽默可爱,其个人主页及论文风格显示了其性情,目前该算法已是第三个版本,简称YoLo V3。
在本教程中,将学习如何使用YOLO、OpenCV和Python检测图像和视频流中的对象。主要内容有:
简要讨论YOLO算法;
使用YOLO、OpenCV、Python进行图像检测;
使用YOLO、OpenCV、Python进行视频流检测;
讨论YOLO算法的优点和缺点;
当涉及基于深度学习的对象检测时,常用的三类算法有:
R-CNN家族系列算法:R-CNN、fast R-CNN以及faster R-CNN;
单发检测器(SSD);
YOLO算法;
R-CNN算法是最早的基于深度学习的目标检测器之一,其结构是两级网络;
首先需要诸如选择性搜索之类的算法来提出可能包含对象的候选边界框;然后将这些区域传递到CNN算法进行分类;R-CNN算法存在的问题在于其仿真很慢,并且不是完整的端到端的目标检测器。Fast R-CNN算法对原始R-CNN进行了相当大的改进,