最近在研究车辆检测相关算法,因yolo算法的速度和精度基本均能满足要求,原版的yolo v3算法是检测多类物体,本人是在原来代码的基础上修改为检测单目标车辆,并基于预训练权重在VOC2007数据集上进行训练。
源代码:https://github.com/qqwweee/keras-yolo3
原作者已经给出了训练和测试方法,在此不再赘述。

要实现只检测“car”这一类别,要修改的地方有一下几个:

1、修改yolo.cfg文件
将yolo.cfg文件的classes修改为1,所有的filters=255的值修改为filters=18(计算方式为(classes+5)*3)。(为了不改变yolo.cfg,我是直接将yolo.cfg另存为car.cfg,再做修改)
注意:filters仅仅是Yolo层前的filters修改为18,一共三处。

2、修改类别文件
将coco_class.txt和voc_class.txt文件中的类别全部修改成‘car’ ,或在该目录下新建object_classes.txt文件,写入car。

3、修改voc_annocation.py, 生成数据集
将voc_annocation.py 中的classes修改成只有“car”一个,

准备数据集VOC2007, 然后运行voc_annocation.py生成2007_train.txt和2007_test.txt,2007_val.txt文件

4、生成预训练权重文件yolo_weights.h5

下载 yolov3.weights ,放到工程根目录下,cmd下切换到工程目录下,使用命令:

python convert.py -w car.cfg yolov3.weights model_data/yolo_weights.h5

注意,此处的car.cfg 为前面新建的,如果直接在原yolo.cfg上改的,则使用yolo.cfg

5、进行训练
运行 train.py 文件,注意更改训练文件目录(annotation_path),类别文件目录(classes_path)。
训练完成后会生成一个logs文件夹,里面的000文件夹下会有训练好的权重文件,trained_weights_stage_1.h5 是第一阶段训练得到的(只训练后三层),trained_weights_final.h5是最终得到的训练权重文件(全训练)。

6、测试

修改yolo.py文件,将其中的model_path换成自己生成的trained_weights_final.h5文件的目录, classes_path 改成 待检测的目标类文件object_classes.txt.

最后就是加载图片或视频进行测试了。

也可根据需要,对应做上面的修改以满足指定类别物体的检测。
初学者,以上如有不正确之处请指出,谢谢!

利用yolov3 进行目标检测(可自定义检测的类别)相关推荐

  1. 智慧交通day02-车流量检测实现12:基于yoloV3的目标检测

    在本章节代码编写中,发现之前的代码所处的环境是python3,因此导致了cv2.dnn.readNetFromDarknet()在代码运行中导致了i[0]的获值失败,故总结如下: cv2.dnn.re ...

  2. CV之YOLOv3:基于Tensorflow框架利用YOLOv3算法对热播新剧《庆余年》实现目标检测

    CV之YOLOv3:基于Tensorflow框架利用YOLOv3算法对热播新剧<庆余年>实现目标检测 目录 搭建 1.下载代码 2.安装依赖库 3.导出COCO权重解压到checkpoin ...

  3. 从YOLOv1到YOLOv3,目标检测的进化之路

    本文来自 CSDN 网站,作者 EasonApp. 作者专栏: http://dwz.cn/7ZGrif YOLOv1 这是继 RCNN,fast-RCNN 和 faster-RCNN之后,Ross ...

  4. yolov3为什么对大目标检测不好_基于改进Yolov3的目标检测的研究

    晏世武 罗金良 严庆 摘要:目标检测在视频监控.无人驾驶系统.机械自动化等领域起着重要作用.在如今大数据的背景下,为进一步提高Yolov3在不同数据集下的性能,本文以KITTI数据集为基础,利用重新調 ...

  5. 【教程】opencv-python+yolov3实现目标检测

    目录 [教程]opencv-python+yolov3实现目标检测 目标检测概况 目标检测是? 目标检测算法? yolov3模型简介 性能介绍 架构介绍 opencv-python实现 why ope ...

  6. yolov3为什么对大目标检测不好_从YOLOv1到YOLOv3,目标检测的进化之路

    引言:如今基于深度学习的目标检测已经逐渐成为自动驾驶,视频监控,机械加工,智能机器人等领域的核心技术,而现存的大多数精度高的目标检测算法,速度较慢,无法适应工业界对于目标检测实时性的需求,这时YOLO ...

  7. OpenCV+yolov3实现目标检测(C++,Python)

    OpenCV+yolov3实现目标检测(C++,Python) 目标检测算法主要分为两类:一类是基于Region Proposal(候选区域)的算法,如R-CNN系算法(R-CNN,Fast R-CN ...

  8. pascal行人voc_利用Pascal VOC目标检测数据深度学习进行目标检测

    利用 Pascal VOC 目标检测数据深度学习进行目标检测 穆玉理 [期刊名称] <通讯世界> [年 ( 卷 ), 期] 2018(000)005 [摘要] 随着信息社会的发展 , 尤其 ...

  9. 【yolov3】如何使用摄像头进行目标检测——yolov3-pytorch摄像头检测教程

    [yolov3]如何使用摄像头进行目标检测--yolov3-pytorch摄像头检测教程 原项目地址:https://github.com/eriklindernoren/PyTorch-YOLOv3 ...

最新文章

  1. Promise基础用法
  2. 计算机网络方面国际三大顶级会议 - MOBICOM - SIGCOMM - INFOCOM
  3. CF-825 G.Tree Queries(DFS)
  4. future java 多线程_Java多线程之Future与FutureTask
  5. HEVC/H265 namespace 介绍
  6. 计算机视觉实战(十六)光流估计 (附完整代码)
  7. python config文件_Python如何配置config文件?
  8. excel中if如何加android,Excel 如何实现函数IF的嵌套超过七层
  9. D.MADMAX 记忆化搜索 DAG
  10. 会matlab的简历怎么写,算法工程师简历项目经验填写样本
  11. 网站为什么要做外链?
  12. JZYZOJ 1382 光棍组织 状压dp
  13. 三、Python复习教程(重点)- 前端框架实战
  14. 计算机考研一志愿不满,【建议收藏】40所不歧视本科 保护一志愿院校 内含大量985/211!...
  15. 2021-06-29 Netkeeper共享网络的思路,适用其他拨号软件
  16. IDEA社区版(Community)和付费版(UItimate)的区别
  17. UGUI sprite editor九宫切图用法
  18. 100000以内的质数表
  19. 拥有一台云服务器如何安装宝塔面板(图文教程)
  20. 小猫爪:PMSM之FOC控制11-基于SMO实现FOC无传感器双闭环

热门文章

  1. Java线程安全(卖票案例) 如何解决线程安全(synchronized ,显示锁Lock)
  2. 网络训练技巧--参数初始化与优化方法
  3. ZoKrates+Remix在线实现zkSNARK零知识证明
  4. Spring集成MyBatis
  5. The Little Book of Semaphores 信号量小书 第六章 不那么经典的问题 6.3 狒狒穿越问题
  6. 《Windows IoT 应用开发指南》
  7. iOS逆向之“修改微信运动步数”
  8. 中兴N880e升级android4.1版本体验
  9. 紫雨老师接触自然法则的经过与故事
  10. Vs code快捷键及常用插件