专栏首页唐国梁Tommy小白入门,手把手教你用YOLO-v3进行目标检测与识别

小白入门,手把手教你用YOLO-v3进行目标检测与识别

老铁们,今天我们将继续配置YOLO-v3目标检测与识别深度学习框架,基于COCO数据集进行训练,并测试模型的效果,最后,我们将通过YOLO-v3进行摄像头实时目标物体检测与识别应用。

首先,我们先了解一下COCO数据集。

一. COCO数据集简介

1. 官网数据集下载地址:

https://cocodataset.org/#download

COCO的 全称是Common Objects in COntext,是微软团队提供的一个可以用来进行图像识别的数据集。MS COCO数据集中的图像分为训练、验证和测试集。COCO通过在Flickr上搜索80个对象类别和各种场景类型来收集图像。

2. COCO2014数据集下载:

在darkent框架内,执行一个script脚本可以下载所有数据集。

① 首先,进入到darknet文件夹下;

② 进入script文件夹下;

③ 查看get_coco_dataset.sh脚本,命令:vim get_coco_dataset.sh

显示内容如下:

执行这个get_coco_dataset.sh 脚本后,自动下载数据集,并解压。此过程非常漫长,建议各位朋友直接拷贝其中的数据集下载链接到迅雷加速下载,能节省大量时间。

④ 执行下载命令如下,注意保存数据集路径,如果这里设置不对,后面会报错。【同志们,一定要注意路径,不然就会陷入无穷无尽的报错之中。。。

请注意我的路径,如果输入命令后,出现如下信息,恭喜你,操作正确,已经远离苦海。【建议用迅雷下载,再自行解压,注意解压路径即可。我就是这么干,速度快的飞起。。。

二. 安装COCO API

具体步骤如下:

1. 由于在第一步骤中,你已经执行了脚本get_coco_dataset.sh,在你的darknet/data文件夹下已经有了coco文件夹,那么可以接着执行后续操作,安装COCO API;

2. cd coco/PythonAPI

3. 修改Makefile,命令如下:vim Makefile,需要将其中的python全部改为python3,保存退出;保存和退出命令:① 先按键盘上的ESC;②再输入命令 :wq 【注意,有冒号】

将python全部替换为python3

4. 编译一下,命令如下:make -j8

如果输出以下一坨信息,那么编译成功啦,奥利给 :)))

三. 案例实操环节

1. 进入darknet项目下:

2. 进入cfg下查看配置文件,命令如下:

注意文件 yolov3.cfg ,我们在训练前需要修改里面的一些内容。

3. 修改yolov3.cfg,命令如下:vim yolov3.cfg

进入到如下界面:

这些参数啥意思呢?这里稍作解释:

① batch : 批处理的大小,如果你的GPU显存够大,这里可以设置为64;

② subdivisions : 将batch分组,假设batch=64, 那么可以设置subdivision=8,即分成8组,8 x 8 = 64,减少显存的压力,再分批处理;

③ width : 图片的宽度;

④ height : 图片的高度;

⑤ channels : 图片通道;

⑥ momentum : 动量,加速梯度下降;

⑦ decay : 权重衰减的正则项,防止过拟合;

【以下四个参数用于数据增强】

⑧ angle : 角度;

⑨ saturation : 饱和度;

⑩ exposure : 曝光度;

(11) hue : 色调;

(12) learning_rate : 学习率;

(13) burn_in : 门槛,如果大于burn_in,采用下面的steps参数值;

(14) max_batches : 训练次数的上限,达到则停止学习;

(15) policy ,steps,scales : 如果训练超过400000次,学习率下调10倍,超过450000次,再下调10倍;

【重点讲解:yolo参数设置部分,见下图】

① mask : 0, 1, 2 代表选取anchors的前三个,分别是:10,13 , 16,30 , 33,23

② classes : 类别的数量;

③ num : 指定每一个anchor需要预测的BoundingBox的数量;

④ jitter : 指定数据增强部分,随机调整图片宽高比的范围;

⑤ ignore_thresh : 针对IOU设置的参数,当模型预测的检测框与物体真实框匹配的时候,如果IOU大于这里设置的阈值(0.5 - 0.7之间),则不参与损失的计算。目的是控制参与损失计算的检测框的规模。

⑥ random : 训练过程中是否采用随机多尺度,1 :是(多尺度),0 :否(固定尺度);

4. 修改COCO数据路径的配置,命令如下:

vim coco.data

默认的参数值界面:

根据在你电脑上COCO数据集的路径,修改里面的路径。【注意:不要用他的或我的路径,而是用你自己的路径。】

以下是我的数据集存放路径,观察一下:

coco文件夹下的内容:

5. 模型开始训练

输入命令:./darknet detector train cfg/coco.data cfg/yolov3.cfg

回车后开始训练:

当出现以下非常多的计算信息时,恭喜你,老铁,一切都顺利啦。。。泡杯咖啡去休息一下吧

6. 老铁,喝完咖啡后再继续死磕,咱们继续用预训练模型继续训练,那怎么引入呢?

① 去YOLO官网下载预训练模型;https://pjreddie.com/media/files/yolov3.weights

福利:所有有关YOLO的配置教材、数据集、代码,我都会在百度云盘分享出来,不用担心下载不到数据集或文件。 鲜花、掌声在哪里???

② 我把预训练模型存放在backup文件夹下,如图所示:

③ 执行以下命令训练:

./darknet detector train cfg/coco.data cfg/yolov3.cfg backup/yolov3.weights

如果继续输出以下信息,恭喜你,又成功啦。。。

7. 测试一张图片的检测与识别效果:

① 输入命令:

./darknet detect cfg/yolov3.cfg backup/yolov3.weights data/dog.jpg

输出信息:

这个预训练模型的参数权重比较差,框基本上没有把狗和自行车框进去。【说来也奇怪:我用的是官网的预训练模型文件,为啥这么差?可是,官网的测试效果很好。】

② 我们现在用预训练模型 yolov3-tiny.weiths 测试,输入命令如下:

./darknet detect cfg/yolov3-tiny.cfg backup/yolov3-tiny.weights data/dog.jpg

输出结果:

输出检测效果:

8. 通过摄像头测试(注意:你的台式机或笔记本必须有摄像头)

① 输入命令如下:

./darknet detector demo cfg/coco.data cfg/yolov3.cfg backup/yolov3.weights

② 摄像头实时检测效果图:

备注:我的整个学习过程,参考的官网网站:https://pjreddie.com/darknet/yolo/ ,不过,我写的更加详细啦

更多AI相关课程,请在网易云课堂和B站关注账号:唐国梁Tommy

网易云课堂:

https://study.163.com/instructor/1028614893.htm?_trace_c_p_k2_=a8d2f7653bf94cd5a821036a432179e4

B站:

https://space.bilibili.com/474347248

本文分享自微信公众号 - 唐国梁Tommy(TangGuoLiangAI),作者:唐国梁Tommy

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-04-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 深度学习目标检测与识别 YOLO_v3 自定义数据集训练

    哈喽,大家好,我是唐国梁Tommy,今天我们看一下YOLO v3的自定义数据集训练案例操作。

    唐国梁Tommy
  • 目标检测算法YOLO-V3结构详解

    YOLO-V3模型框架,我们主要从它的基础网络Darknet-53以及YOLO-V3的结构方面学习,首先看下Darknet-53结构。

    智能算法
  • 论文精读|5th|YOLO v3的新特性|目标检测|附下载

    YOLO(You Only Look Once)是当今最有效的快速目标检测算法之一。虽然它现如今已经不是最准确的识别算法了,但依然是进行实时物体检测...

    用户7623498
  • 如何用免费GPU学习AI算法?这篇算法资源大集锦别错过

    上一次写了篇薅GPU百度AI Studio计算资源的文章,收到很多AI算法初学者私信,问我能不能补充一些AI Studio的学习资源。有求必应向来是我的风格,于...

    用户1386409
  • 从0到1 实现YOLO v3 (Part one)

    如果说非要提供一个方法快速掌握目标检测的深度学习算法的话,那就是自己从无到有的实现它,在这期间,可以对整个算法有更清晰的认识,此次系列文章旨在提供一个自己从无到...

    机器学习算法工程师
  • 从零开始PyTorch项目:YOLO v3目标检测实现

    选自Medium 作者:Ayoosh Kathuria 机器之心编译 目标检测是深度学习近期发展过程中受益最多的领域。随着技术的进步,人们已经开发出了很多用于目...

    机器之心
  • 从零开始PyTorch项目:YOLO v3目标检测实现

    在过去几个月中,我一直在实验室中研究提升目标检测的方法。在这之中我获得的最大启发就是意识到:学习目标检测的最佳方法就是自己动手实现这些算法,而这正是本教程引导你...

    朱晓霞
  • YOLO v3 目标检测的 PyTorch 实现,GitHub 完整源码解析!

    目标检测是深度学习近期发展过程中受益最多的领域。随着技术的进步,人们已经开发出了很多用于目标检测的算法,包括 YOLO、SSD、Mask RCNN 和 Reti...

    小小詹同学
  • xYOLO | 最新最快的实时目标检测

    随着物联网(IoT)、边缘计算和自主机器人等领域的车载视觉处理技术的出现,人们对复合高效卷积神经网络模型在资源受限的硬件设备上进行实时目标检测的需求越来越大。...

    计算机视觉研究院
  • 入门分享 | 12篇深度学习目标检测必读论文

    本文梳理了目标检测领域2013年至2019年的12篇必读论文,为希望学习相关知识的新手提供了很好的入门路径。同时,作者还提供了一个附加论文列表。作为拓展阅读的内...

    AI算法修炼营
  • YOLO v3实战之钢筋数量AI识别(一)

    CristianoC
  • 期待已久的—YOLO V3

    好久不见各位研友(研究好友,不是考研的小伙伴,嘿嘿)!最近,因为题主学校事情比较繁忙,没有花更多的时间在我们的平台,希望关注支持我们的您,原谅我们更新的速度,希...

    计算机视觉研究院
  • 新加入同学期待已久的YOLO V3

    刚结束自己的手头事情,就想到给大家更新点东西,然后就想到了YOLO V3的东西,因为之前自己有认真研读,发现确实了不起的框架,但是如果有对V1和V2了解的,一定...

    计算机视觉研究院
  • YOLO v3实战之钢筋智能识别改进方案分享(二)

    代码已上传至:https://github.com/cristianoc20/Rebar_Detection,欢迎各位给个star

    CristianoC
  • TensorFlow + Keras 实战 YOLO v3 目标检测图文并茂教程(文末有惊喜)

    磐创AI
  • 多摄像头实时目标跟踪和计数,使用YOLOv4,Deep SORT和Flask

    git仓库地址:https://github.com/LeonLok/Multi-Camera-Live-Object-Tracking

    OpenCV学堂
  • 腾讯优图:开源YOLO系列代码(含YOLOv3以及各种backbone)

    本文给各位CVers介绍一个由腾讯优图实验室开源的One-Stage目标检测项目。链接如下:

    Amusi
  • YOLO v3的tf+keras实现

    朱晓霞
  • 快到没朋友的YOLO v3有了PaddlePaddle 预训练模型

    YOLO作为目标检测领域的创新技术,一经推出就受到开发者的广泛关注。值得一提的是,基于百度自研的开源深度学习平台PaddlePaddle的YOLO v3实现,参...

    机器之心

扫码关注云+社区

领取腾讯云代金券