【深度学习】深入浅出YYOLOv3目标检测算法(图片和视频)

这把我C 2021-08-09 16:11:19 5445

在这里插入图片描述

文章目录
1 概述
2 一个全卷积神经网络——Darknet-53
3 解释输出
4 代码实现
    4.1 导入项目
    4.2 执行脚本
    4.3 预测图像
    4.4 预测视频
5 yolo3连接网络摄像头实现目标检测命令
6 谈谈深度学习目标检测中的遮挡问题

1 概述

YOLO是“You Only Look Once”的简称,它虽然不是最精确的算法,但在精确度和速度之间选择的折中,效果也是相当不错。YOLOv3借鉴了YOLOv1和YOLOv2,虽然没有太多的创新点,但在保持YOLO家族速度的优势的同时,提升了检测精度,尤其对于小物体的检测能力。YOLOv3算法使用一个单独神经网络作用在图像上,将图像划分多个区域并且预测边界框和每个区域的概率。

2 一个全卷积神经网络——Darknet-53

YOLOv3仅使用卷积层,使其成为一个全卷积网络(FCN)。文章中,作者提出一个新的特征提取网络,Darknet-53。正如其名,它包含53个卷积层,每个后面跟随着batch normalization层和leaky ReLU层。没有池化层,使用步幅为2的卷积层替代池化层进行特征图的降采样过程,这样可以有效阻止由于池化层导致的低层级特征的损失。Darknet-53网络如下图左边所示。
在这里插入图片描述

3 解释输出

在这里插入图片描述

4 代码实现

代码已开源在github。
https://github.com/lixiang007666/yolov3_with_opencv_colab

4.1 导入项目

from google.colab import drive
drive.mount('/content/drive')
import os
os.chdir("/content/drive/My Drive")
!ls

https://github.com/lixiang007666/yolov3_with_opencv_colab.git

os.chdir("/content/drive/My Drive/yolov3_with_opencv")
!ls

4.2 执行脚本

!bash getModels.sh

在这里插入图片描述

4.3 预测图像

!python object_detection_yolo.py --image=/content/drive/MyDrive/yolov3_with_opencv/demo/dog.jpg

在这里插入图片描述

4.4 预测视频

!python3 object_detection_yolo.py --video=/content/drive/MyDrive/yolov3_with_opencv/demo/wall.mp4

时间略长。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5 yolo3连接网络摄像头实现目标检测命令

yolo3连接摄像头实现目标检测
yolo3使用较灵活,可以通过修改源码,来实现自己的一些功能。如果想要连接网络摄像头进行目标检测。针对目前我用的相机是海康或大华的,可以直接采用rtsp协议。测试连接成功。环境:Windows,darknet-yolo3。如果大家还没有实现yolo3的目标检测功能,可以参考我的另一篇博客:https://blog.csdn.net/wszswllnzn_/article/details/100760477
在命令中输入:darknet.exe detector demo cfg/coco.data yolov3.cfg yolov3.weights rtsp://admin:123456@192.168.43.12。使用此命令可以直接获取视频流。
上述指令中的admin和123456分别是摄像头ip camera的用户名和密码,摄像头的IP是192.168.43.12。需要根据知己的设备进行更改。

备注: 如果上述指令行不通,不妨试试相机自带的协议格式。
1、海康或大华摄像头
darknet.exe detector demo cfg/coco.data yolov3.cfg yolov3.weights rtsp://admin:123456@192.168.43.12:554/cam/realmonitor?channel=1&subtype=0
2、雄迈摄像头
darknet.exe detector demo cfg/coco.data yolov3.cfg yolov3.weights rtsp://192.168.43.12:554/user=admin&password=admin&channel=1&stream=0.sdp?real_stream

6 谈谈深度学习目标检测中的遮挡问题

尽管目标检测算法整体上已经相对比较成熟,但是在特殊场景下的表现还有很多优化空间,比如图片中的目标有遮挡、图像运动模糊、目标为可改变形状的非刚性物体等。本文主要是针对遮挡问题,之前在做游戏目标检测时也遇到过这个问题,当时只是考虑增加训练样本的多样性,最近,笔者读了几篇解决目标检测中的遮挡问题的文章,也看了一些网友的解析,觉得若有所悟,不自觉地想把自己的理解记录下来,自认为“一万个人眼中有一万个哈姆雷特”,希望能够从某个侧面对大家有所帮助。

目标检测中存在两类遮挡,(1)待检测的目标之间相互遮挡;(2)待检测的目标被干扰物体遮挡。比如下图,
在这里插入图片描述

具体来说,如果检测任务的目标是汽车和人,那么汽车被人遮挡,而且人被干扰物体(牛)遮挡。因为算法只学习待检测的物体的特征,所以第二种遮挡只能通过增加样本来优化检测效果。

在现实的检测任务中,只有比较特殊的场景需要考虑遮挡问题,比如行人检测、公交车上密集人群检测、牲畜数量计算等,本文将介绍的两篇文章是针对行人检测问题的,也可以复用到其它的应用场景(ps: 大家如果想发paper,也可以借鉴这两篇文章解决问题的方式)。
1 Repulsion Loss: Detecting Pedestrians in a Crowd
2 Occlusion-aware R-CNN: Detecting pedestrians in a Crowd

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 96 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
这把我C
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区