美文网首页Python学习大数据 爬虫Python AI Sql
简单30行Python代码让你玩转YOLO目标识别检测!

简单30行Python代码让你玩转YOLO目标识别检测!

作者: 1a076099f916 | 来源:发表于2019-03-20 21:46 被阅读5次
    简单30行Python代码让你玩转YOLO目标识别检测!

    YOLO是一种实时目标检测算法,与faster R-CNN不同的是,YOLO不是过多的注重物体定位的精度,而是着重于速度和物体种类的识别。在实际应用中,实时性是目标检测中非常重要的,例如对于一辆自动驾驶汽车来说,必须达到实时的检测红绿灯、行人和车辆等物体,这样才能安全的在街道上行驶。

    学习中遇到问题有不明白的地方,推荐加小编python学习群:700341555内有视频教程 ,直播课程 ,等学习资料,期待你的加入

    简单30行Python代码让你玩转YOLO目标识别检测! 简单30行Python代码让你玩转YOLO目标识别检测!

    YOLO算法在CNN的基础上定义网络结构,在使用时,我们可以直接加载其与训练的权重。其网络结构如下:

    简单30行Python代码让你玩转YOLO目标识别检测! 简单30行Python代码让你玩转YOLO目标识别检测!

    这里再介绍两个YOLO的重要的概念,一个是anchor boxes,另一个是NMS和IOU。

    当在目标检测时,一个网格单元中可能会包含多个不同物体的中心点,即物体处于重叠状态,这是anchor boxes允许一个网格检测多个对象。效果如下图所示:

    简单30行Python代码让你玩转YOLO目标识别检测!

    YOLO使用非最大抑制(NMS)来保留最佳边界框。NMS的第一步是删除检测概率小于给定NMS阈值的所有预测边界框。一般我们可以自己设置NMS值。在删除具有低检测概率的所有预测边界框之后,NMS中的第二步是选择具有最高检测概率的边界框,并消除其交叉联合(IOU)值高于给定值的所有边界框。

    下面我们将通过一个小例子来实现YOLOv3算法,整个过程除去可视化代码外,整个识别部分代码不超过30行。具体步骤如下:

    1、导入函数库,这里我们需要opencv读取图像、matplotlib绘图、utils以及darknet等。

    2、读取YOLO网络权重,这样可以避免我们再次定义和训练模型。

    3、读取图像并将待标记图像放缩到合适的尺寸

    4、设置NMS值和IOU值

    5、进行目标检测

    结果如下:

    简单30行Python代码让你玩转YOLO目标识别检测!

    完整代码:

    简单30行Python代码让你玩转YOLO目标识别检测! 简单30行Python代码让你玩转YOLO目标识别检测!

    相关文章

      网友评论

        本文标题:简单30行Python代码让你玩转YOLO目标识别检测!

        本文链接:https://www.haomeiwen.com/subject/yqsxvqtx.html