【保姆级教程】YOLOv3图像目标检测:训练自己的数据集

news/2024/7/11 1:48:15 标签: YOLO, 目标检测, 人工智能

YOLOv3_0">一、YOLOv3图像目标检测原理

YOLOv3_1">二、YOLOv3代码及预训练权重下载

2.1 下载yolov3代码

这里使用的是B站大佬Bubbliiiing复现的yolov3代码
仓库地址: https://github.com/bubbliiiing/yolo3-pytorch

2.2 下载模型预训练权重unet_resnet_medical.pth

链接:https://pan.baidu.com/s/1IhWYvEvIwGL6MrcIvYJroA
提取码:d3ob
将下载的权重文件放到model_data文件夹下。

三、labelimg图像标注及格式转换

3.1 安装labelimg标注软件

pip install labelimg

使用Anaconda Prompt启动labeimg标注工具
在这里插入图片描述

3.2 图像标注

在这里插入图片描述

3.3 数据集划分

xml格式标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。
将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。
修改model_data/voc_classes.txt文件,改为自己使用的类别
在这里插入图片描述
修改voc_annotation.py117行,图片格式改为自己实际用到的图片格式。
在这里插入图片描述
运行voc_annotation.py
VOCdevkit\VOC2007\ImageSets\Main路径下会生成划分数据集的txt文件,在项目根目录下会生成2007_train.txt2007_val.txt文件。
注意这里只支持xml格式的标签,不支持json格式的标签。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

YOLOv3_37">四、YOLOv3网络训练和测试

4.1 训练

运行train.py,根据自己的实际情况,修改一下参数。
在这里插入图片描述

4.2 测试

修改yolo.py中代码,“model_path” : ‘logs/best_epoch_weights.pth’,“classes_path” : ‘model_data/voc_classes.txt’,
运行predict.py文件。
读者需要根据自己的情况修改模型权重和测试图片的地址。
读者可以通过修改mode参数,实现下面5种模式:

#   'predict'           表示单张图片预测,如果想对预测过程进行修改,如保存图片,截取对象等,可以先看下方详细的注释
#   'video'             表示视频检测,可调用摄像头或者视频进行检测,详情查看下方注释。
#   'fps'               表示测试fps,使用的图片是img里面的street.jpg,详情查看下方注释。
#   'dir_predict'       表示遍历文件夹进行检测并保存。默认遍历img文件夹,保存img_out文件夹,详情查看下方注释。
#   'export_onnx'       表示将模型导出为onnx,需要pytorch1.7.1以上。

设置mode = “predict”模式,测试一张自己手动输入路径的图像,结果如下


http://www.niftyadmin.cn/n/5462937.html

相关文章

2024年泰迪杯数据挖掘B题详细思路代码文章教程

目前b题已全部更新包含详细的代码模型和文章,本文也给出了结果展示和使用模型说明。 同时文章最下方包含详细的视频教学获取方式,手把手保姆级,模型高精度,结果有保障! 分析: 本题待解决问题 目标&#…

3.Labview字符串与路径精讲(下) — 字符串及路径的用法汇总

本章讲解labview中的字符串和路径具体实践用例,从前面板字符串属性到后面板字符串函数应用做出详细概述,通过本文的学习希望大家了解到字符串及路径在labview编程中的重要地位。 本系列文章为labview 从基础到强化到精通的学习文章,大家可以随…

使用Jenkins打包时执行失败,但手动执行没有问题如ERR_ELECTRON_BUILDER_CANNOT_EXECUTE

具体错误信息如: Error output: Plugin not found, cannot call UAC::_ Error in macro _UAC_MakeLL_Cmp on macroline 2 Error in macro _UAC_IsInnerInstance on macroline 1 Error in macro _If on macroline 9 Error in macro FUNCTION_INSTALL_MODE_PAGE_FUNC…

小平方(c++实现)

题目 小蓝发现,对于一个正整数 n和一个小于 n 的正整数 v,将 v平方后对 取余可能小于 n的一半,也可能大于等于 n的一半。请问,在 1到 n− 中,有多少个数平方后除以 n的余数小于 n的一半。 例如,当 n4 时&am…

2024/3/31学习总结

才不是今天没有学大知识才学这个。等我下周我发个大的。最近在读mysql的innodb底层,到时候给大家总结大的用自己的话,应该是缓慢更新吧 一、上午 1.1 icpc西部赛 酣畅淋漓的环节。主办方没有活硬整,就a,c,d,h可以做。a,h还题目意…

可变参数与Collections类

一、可变参数 在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化. 格式 修饰符 返回值类型 方法名(参数类型... 形参名){ } public int getsum(int...a){}底层: 其实就是一个数组 …

Vue 组件化编程

Vue 组件化编程 非单文件组件 定义组件 使用Vue.extend(options)创建 不要写eldata要写成函数,避免组件被复用时,数据存在引用关系 注册组件 局部注册:new Vue()的时候,options传入components全局注册:V…

机器学习周记(第三十二周:文献阅读-时空双通路框架)2024.3.25~2024.3.31

目录 摘要 ABSTRACT 1 论文信息 1.1 论文标题 1.2 论文摘要 1.3 论文模型 1.3.1 Spatial Encoder(空间编码器) 1.3.2 Temporal Encoder(时间编码器) 2 相关代码 摘要 本周阅读了一篇运用GNN进行时间序列预测的论文。论文…