# yolo3-keras
yolo3-keras的源码,可以用于训练自己的模型yolov3以及yolov3-tiny
## 一、环境要求
- **Python:** 3.7.4
- **Tensorflow-GPU** 1.14.0
- **Keras:** 2.2.4
## 二、快速使用:
- 1.下载yolov3-keras代码
- 2.下载yolov3-keras权重文件[权重](https://pjreddie.com/media/files/yolov3.weights) 并将其放入根目录下
- 3.执行如下命令将darknet下的yolov3配置文件转换成keras适用的h5文件
`python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5`
`python convert.py yolov3-tiny.cfg yolov3-tiny.weights model_data/yolov3-tiny.h5`
模型文件对应说明如下:
| 模型文件 | 说明 |
|-------------------------------------|---------------------|
| ep034\-loss6.105\-val\_loss6.205.h5 | 经过训练的模型 |
| yolo\.h5 | YOLO 官方预训练模型 |
- 4.运行预测图像程序
`python yolo_video.py --image`
在命令行输入图片地址`img/mask.jpg`,即可预测
![img](img/mask_output.jpg)
## 三、训练自身数据
- 1.使用VOC格式的数据进行训练
训练前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。
训练前将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。
在训练前利用`voc2yolo3.py`文件生成对应的txt。
```sh
VOCdevkit
-VOC2007
├─ImageSets # 存放数据集列表文件,由voc2yolo3.py文件生成
├─Annotations # 存放图片标签,xml 格式
├─JPEGImages # 存放数据集中图片文件
└─voc2yolo3.py # 用来生成数据集列表文件
```
- 2.生成YOLOV3所需数据
每一行对应其图片位置及其真实框的位置
再运行根目录`voc_annotation.py`,运行前需要将`voc_annotation`文件中classes改成你自己的classes。
- 3.在训练前可根据自身需要修改model_data里面的`yolo_anchors.txt`和`tiny_yolo_anchors.txt`,利用`kmeans.py`来生成,k=9,生成yolo_anchors;k=6,生成tiny_yolo
- 3.在训练前需要修改model_data里面的`voc_classes.txt`文件,需要将classes改成你自己的classes。
- 4.修改`train.py`配置,通过修改`anchor_path`,从而选择使用yolov3训练还是yolov3-tiny训练
- 5.运行`train.py` 即可开始训练,训练好的模型存放在logs下。
## 四、测试
修改根目录下`yolo.py`文件,修改`model_path`,`anchors_path`,`classes_path`替换成自己的路径
- 1.单张图片测试
`python yolo_video.py --image`,输入图片名称即可
- 2.电脑摄像头实时检测
`python yolo_video.py --input`
此外对应的yolo.py文件174行改为`vid = cv2.VideoCapture(0)`;
- 3.测试本地视频
`python yolo_video.py --input`
此外对应的yolo.py文件174行改为vid = cv2.VideoCapture("视频路径+视频名+视频后缀名");
- 4.测试本地视频并且保存视频效果
`python yolo_video.py --output`
此外对应的yolo.py文件184行改为out = cv2.VideoWriter("视频路径+视频名+视频后缀名", video_FourCC, video_fps, video_size);
## 五、注意:
一张图片最多只能识别20个对象的问题:
- 1.训练时,要在yolo3文件夹下面的utils.py里,修改get_random_data()函数,有一个默认参数是max_boxes=20,改成很大的数值就行了。
- 2.检测时,要在yolo3文件夹下面的model.py里,修改yolo_eval()函数,有一个默认参数是max_boxes=20,改成很大的数值就行了。
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
赵闪闪168
- 粉丝: 1728
- 资源: 6939
最新资源
- 化工行业:基于强化学习的DeepSeek实验方案生成微调策略.pdf
- 教育个性化学习:知识蒸馏构建学科能力评估模型.pdf
- 建筑工程:DeepSeek+BIM模型自动生成施工方案全流程.pdf
- 教育行业:零代码构建DeepSeek智能题库系统,日均成本仅5美元.pdf
- 金融合规检查:增量训练构建反洗钱模型快速迭代方案.pdf
- 教育行业落地:用提示词工程构建智能题库生成系统.pdf
- 教育行业突破:用DeepSeek-Coder实现编程教学智能批改.pdf
- 金融量化投资:DeepSeek微调实现多因子策略生成.pdf
- 金融领域适配技巧:量化训练实现信贷风控模型成本降低90%.pdf
- 金融行业:基于LoRA的DeepSeek信贷风险评估微调方案,成本直降80%.pdf
- 跨境电商:DeepSeek多语言客服模型训练数据增强技巧.pdf
- 跨境贸易:DeepSeek多语言合同风险扫描系统搭建指南.pdf
- 零代码适配术:用DeepSeek打造医疗问诊知识库,3天上线临床决策系统.pdf
- 零售库存管理:联邦学习实现多门店销量预测系统.pdf
- 零售门店数字化:DeepSeek摄像头数据实时分析+货架陈列优化模型训练指南.pdf
- 零售业实战:知识蒸馏技术赋能DeepSeek库存预测轻量化.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)