## YOLOV3:You Only Look Once目标检测模型在Keras当中的实现
---
### 目录
1. [性能情况 Performance](#性能情况)
2. [所需环境 Environment](#所需环境)
3. [文件下载 Download](#文件下载)
4. [预测步骤 How2predict](#预测步骤)
5. [训练步骤 How2train](#训练步骤)
6. [参考资料 Reference](#Reference)
### 性能情况
| 训练数据集 | 权值文件名称 | 测试数据集 | 输入图片大小 | mAP 0.5:0.95 | mAP 0.5 |
| :-----: | :-----: | :------: | :------: | :------: | :-----: |
| COCO-Train2017 | [yolo_weights.h5](https://github.com/bubbliiiing/yolo3-keras/releases/download/v1.0/yolo_weights.h5) | COCO-Val2017 | 416x416 | 38.1 | 66.8
### 所需环境(PC)
ubuntu 1604LTS or above
tensorflow-gpu==1.14.0
keras==2.3.1
rknn-toolkit >=1.4
有关于如何搭建ubuntu环境和rknn模拟环境,参见
[ubuntu - blog](https://blog.csdn.net/weixin_42237113/article/details/107015030)
[simulator- blog](https://blog.csdn.net/weixin_42237113/article/details/107023216)
### 文件下载
训练所需的yolo_weights.h5可以去百度网盘下载
链接: https://pan.baidu.com/s/1izPebZ6PVU25q1we1UgSGQ 提取码: tbj3
### 预测步骤
#### 1、使用预训练权重
a、下载完库后解压,在百度网盘下载yolo_weights.h5,放入model_data,运行predict.py,输入
```python
img/street.jpg
```
可完成预测。
b、利用video.py可进行摄像头检测。
#### 2、使用自己训练的权重
##### 2.1、模型在GPU服务器上测试
a、按照训练步骤训练。
b、在yolo.py文件里面,在如下部分修改model_path和classes_path使其对应训练好的文件;**model_path对应logs文件夹下面的权值文件,classes_path是model_path对应分的类**。
```python
_defaults = {
"model_path": 'model_data/yolo_weights.h5',
"anchors_path": 'model_data/yolo_anchors.txt',
"classes_path": 'model_data/coco_classes.txt,
"score" : 0.5,
"iou" : 0.3,
# 显存比较小可以使用416x416
# 显存比较大可以使用608x608
"model_image_size" : (416, 416)
}
```
c、运行predict.py,输入
```python
img/street.jpg
```
可完成预测。
d、利用video.py可进行摄像头检测。
##### 2.2、模型在rk3399pro上测试
1.在test.py文件中,需要改动如下
- 修改一下CLASS变成你的类别名称,
- RKNN_MODEL_PATH改成你最终生成的.rknn文件,
- INPUT_SIZE按照你自己训练数据定义(416,320,608),
- im_file是你需要识别图片的路径
2 运行test.py即可
### 训练步骤
1、本文使用VOC格式进行训练。
2、训练前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。
3、训练前将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。
4、在训练前利用voc2yolo3.py文件生成对应的txt。
5、再运行根目录下的voc_annotation.py,运行前需要将classes改成你自己的classes。**注意不要使用中文标签,文件夹中不要有空格!**
```python
classes = ["aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor"]
```
6、此时会生成对应的2007_train.txt,每一行对应其**图片位置**及其**真实框的位置**。
7、**在训练前需要务必在model_data下新建一个txt文档,文档中输入需要分的类,在train.py中将classes_path指向该文件**,示例如下:
```python
classes_path = 'model_data/my_classes.txt'
```
model_data/my_classes.txt文件内容为:
```python
cat
dog
...
```
8、修改cfg/global_config.cfg配置相关训练参数
```python
[train_setting]
pretained_model=model_data/best_weight_711.h5
anchors_path=model_data/yolo_anchors.txt
classes_path=model_data/my_classes.txt
annotation_path=2007_train.txt
model_image_size=416
Freeze_epoch=20
Epoch=100
[transfer_setting]
classes=4
save_rknn_name=final4
manual_qualify_img=False
```
相关词语的表达的含义如下:
pretained_model : 加载预训练的模型,默认应该是yolo_weights.h5,参加上面下载地址
anchors_path : 锚点的位置,不用修改
classes_path : 自己的分类名称,注意要和VOC中标注的名称相对应
annotation_path : 最终生成的训练数据的信息
model_image_size :只有414, 320, 608这3种类型
Freeze_epoch :进行fine-turning,先封住主干训练toplayer,这里是训练次数
Epoch : 解封之后的训练次数
classes :训练的目标的分类数量
save_rknn_name :最后转化成的rknn模型的名称,不用加rknn,只需要名称即可
manual_qualify_img :默认进行量化的图片,选择false则自动选择一张;选择True的话,需要在transfer/dataset.txt中写入量化图片的具体全路径(最好是能resize到和model_image_size大小一致)
9、运行train.py即可开始训练。
如果转化过程中有问题的话,可以在train.py注释掉`train_process(config_dic)`,配置好参数只进行模型转化(h5->darknet->rknn)。
### mAP目标检测精度计算更新
更新了get_gt_txt.py、get_dr_txt.py和get_map.py文件。
get_map文件克隆自https://github.com/Cartucho/mAP
具体mAP计算过程可参考:https://www.bilibili.com/video/BV1zE411u7Vw
### Reference
https://github.com/qqwweee/keras-yolo3/
https://github.com/Cartucho/mAP
没有合适的资源?快使用搜索试试~ 我知道了~
RKNN_Tutorial:教程包括rknn环境的构建,更新,模型传递,端到端YOLO3自定义模型的培训和使用等。
共435个文件
jpg:260个
py:52个
txt:28个
5星 · 超过95%的资源 需积分: 41 81 下载量 36 浏览量
2021-05-25
16:17:37
上传
评论 11
收藏 178.67MB ZIP 举报
温馨提示
前言 本项目是本人结合官方论坛和自身实践总结的、最快入门rknn3399pro及其相关系列的纯干货输出。包括具体的从入手到环境配置,端到端一体化训练样本,各种使用小技巧等。 如果你在探索一款AIOT产品,或者需要短时间内落地一个rknn系列的产品或者算法,那本项目非常适合你。 rk3399pro 简介 rk3399pro福州瑞芯微电子退出的一款 高性能、低功耗、易于片上开发、集成高性能NPU的AIOT设备: 支持8bit和16bit运算,运算性能 3 TOPs, 相比于同类型NPU产品领先150%。 支持 tflite onnx, caffe, tensorflow1,pytorch相关模型进行转换,转化.rknn模型后可直接使用 采用高性能AI处理芯片RK3399Pro,提供一站式AI解决方案。 集成多路USB接口,双PCIe接口,双MIPI CSI接口,HDMI、DP、MIPI和eDP
资源详情
资源评论
资源推荐
收起资源包目录
RKNN_Tutorial:教程包括rknn环境的构建,更新,模型传递,端到端YOLO3自定义模型的培训和使用等。 (435个子文件)
makefile.linux.aarch64 534B
makefile.linux.aarch64 532B
makefile.linux.aarch64 518B
makefile.linux.armhf 530B
makefile.linux.armhf 528B
makefile.linux.armhf 514B
road.bmp 264KB
rknn_kernel_truncatediv.c 11KB
rknn_kernel_exp.c 10KB
rknn_kernel_resizearea.c 9KB
mobilenet_v2.caffemodel 13.53MB
solver_iter_45.caffemodel 303B
yolov3_608x608.cfg 8KB
yolov3_320x320.cfg 8KB
yolov3.cfg 8KB
yolov3_416x416.cfg 8KB
config.cfg 711B
global_config.cfg 295B
.gitignore 176B
pytorch_to_rknn.iml 481B
test_image.jpeg 295KB
street.jpg 437KB
000000017115.jpg 343KB
000000017029.jpg 342KB
000000015272.jpg 336KB
000000009448.jpg 331KB
000000000285.jpg 328KB
000000009769.jpg 320KB
000000001000.jpg 314KB
000000000872.jpg 310KB
000000007278.jpg 285KB
000000011760.jpg 278KB
000000008899.jpg 278KB
000000017899.jpg 278KB
000000018380.jpg 273KB
000000012639.jpg 270KB
000000002685.jpg 266KB
000000008211.jpg 262KB
000000006954.jpg 260KB
000000019109.jpg 260KB
000000007088.jpg 257KB
000000008690.jpg 241KB
000000009772.jpg 240KB
000000012576.jpg 239KB
000000011122.jpg 234KB
000000008629.jpg 226KB
000000011699.jpg 225KB
000000016451.jpg 225KB
000000015335.jpg 222KB
000000012062.jpg 222KB
000000005529.jpg 220KB
000000018837.jpg 219KB
000000010583.jpg 219KB
000000019432.jpg 218KB
000000013659.jpg 210KB
000000015338.jpg 209KB
000000016598.jpg 208KB
000000007386.jpg 207KB
000000005001.jpg 207KB
000000002532.jpg 205KB
000000020059.jpg 205KB
000000014831.jpg 205KB
000000008277.jpg 202KB
000000007977.jpg 202KB
000000018150.jpg 201KB
000000001296.jpg 200KB
000000013177.jpg 200KB
000000001818.jpg 198KB
000000014380.jpg 198KB
000000010764.jpg 198KB
000000002006.jpg 198KB
000000006723.jpg 196KB
000000014888.jpg 195KB
000000019042.jpg 193KB
000000002261.jpg 193KB
000000015746.jpg 191KB
000000014439.jpg 191KB
000000015517.jpg 190KB
000000007991.jpg 190KB
000000012748.jpg 188KB
000000015956.jpg 187KB
000000011511.jpg 184KB
000000012670.jpg 183KB
000000016228.jpg 183KB
000000017627.jpg 183KB
000000017905.jpg 181KB
000000013923.jpg 180KB
000000018519.jpg 180KB
000000005037.jpg 178KB
000000001268.jpg 177KB
000000005992.jpg 176KB
000000008021.jpg 176KB
000000017379.jpg 176KB
000000014038.jpg 174KB
000000011197.jpg 173KB
000000011149.jpg 173KB
000000000776.jpg 172KB
000000001532.jpg 170KB
000000019402.jpg 170KB
000000013774.jpg 169KB
共 435 条
- 1
- 2
- 3
- 4
- 5
羊欲穷
- 粉丝: 88
- 资源: 4591
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于opencv的dnn模块实现Yolo-Fastest的目标检测python源码+模型+说明(高分项目).zip
- 使用Python调用微信本地ocr服务.zip
- 【精品推荐】人工智能在医疗中的应用.pptx
- 【精品推荐】电子医疗仪器人机接口-(1).ppt
- 【精品推荐】电子医疗仪器人机接口.ppt
- ubuntu镜像ubuntu镜像01
- 基于paddle搭建神经网络实现5种水果识别分类python源码+数据集(高分毕设).zip
- 【精品推荐】电子商务网店类型介绍.ppt
- 基于paddle搭建神经网络实现水果识别分类python源码+数据集(高分项目).zip
- 三菱plc编程口通信学习笔记.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1