yolo_v2的训练过程
来源:互联网 发布:数据挖掘应用案例分析 编辑:程序博客网 时间:2024/04/28 15:11
1. 训练所需要准备的数据,和v1版本的一样:
A. 准备好Images,和保存类位置信息的Tags文件
B. 使用脚本准备训练所需的label文件,imageList-all.txt,iamgeList-train.txt,imageList-validation.txt文件,其实我们只用到了iamgeList-train.txt文件
2. 修改cfg文件,cfg文件夹下有许多cfg文件,这里我们用的是cfg/yolo-voc.cfg,【region】层里classes=20,我们这里只训练一个类,所以改为:classes=1,修改最后一层卷 积层核参数个数,计算公式是依旧自己数据的类别数filter=num×(classes + coords + 1)=5×(1+4+1)=30,所以改为:filters=30
3. 接着需要修改cfg文件夹中的voc.data文件。这个按自己文件所放的路径修改,修改之后是:
classes= 20 #修改为classes= 1
train = /home/pjreddie/data/voc/2007_test.txt #改为你iamgeList-train.txt文件所在的绝对路径
valid = coco_testdev #似乎没用到,不用管
names = data/voc.names #这里不用修改,下一步就是修改voc.names里的内容
backup = /home/pjreddie/backup/ #这里是保存生成的权值的路径,你自己设置
4. 接着再修改data文件夹下voc.names文件里的内容,这里面你只需要保存你训练的类名就行,其它的可以全部删掉
5. 修改代码,有些内容需要改动
A.去src里找到data.c文件,在代码里找void fill_truth_swag(),void fill_truth_region(),void fill_truth_detection()函数,分别添加上find_replace(path, "Images", "labels", labelpath);
B.再打开detector.c文件,在void train_detector()函数里修改保存权值文件的迭代次数,默认好像是100次迭代保存一个结果,我改成了1000;
C.打开image.c文件,在代码里找void draw_detections()函数,调节下画的框的大小(int width = im.h * .012;)(当然这里可以不用修改,我修改是因为边框有点粗影响了观看 检测的效果,所以这里根据自己情况选择);
D.全部完成之后,重新进行编译,make -j4。
6. 到这里,我们所有的准备工作就完成了,接下来就可以开始训练了,这里有两种情况:
A.使用yolo官网提供的已经训练好的模型,初始化,进行训练:
./darknet partial cfg/darknet19_448.cfg darknet19_448.weights darknet19_448.conv.23 23
./darknet detector train cfg/voc.data cfg/yolo-voc.cfg darknet19_448.conv.23
B.用自己的数据集直接进行训练:
./darknet detector train cfg/voc.data cfg/yolo-voc.cfg
7.训练结果出来后,我们就可以进行测试了,具体命令如下:
测试图片:./darknet detector test cfg/voc.data cfg/yolo-voc.cfg yolo-voc_final.weights images.png
测试视频:./darknet detector demo cfg/voc.data cfg/yolo-voc.cfg yolo-voc_final.weights test.MP4
- yolo_v2的训练过程
- yolo_v2训练自己的数据出现Obj: 0.000000, No Obj: 0.000000
- 训练样本的过程
- 决策树的训练过程
- boost的训练过程
- DBN的训练过程
- YOLO_V2的region_layer LOSS损失计算源码解读
- YOLO_V2教程
- AdaBoost算法的训练过程
- AdaBoost算法的训练过程
- AdaBoost算法的训练过程
- AdaBoost算法的训练过程
- AdaBoost算法的训练过程
- 测试softcascade的训练过程
- 随机森林的训练过程
- Adaboost训练过程的详解
- TensorFlow神经网络的训练过程
- 理解word2vec的训练过程
- CentOS 7环境下基本的命令安装
- 常用验证注解
- 【Android 基础】图片加载框架之Picasso利器
- Spark 运行出现java.lang.OutOfMemoryError: Java heap space
- iOS 支付宝支付,在将SDK以及所需要的库导完,以及代码写完以后Openssl以及Util文件会出错,解决方案
- yolo_v2的训练过程
- openssl数字证书常见格式与协议介绍
- Stm32知识点总结1
- 超级厉害的JavaScript —— ECMAScript 6 标准(2) —— let 和 const
- github上传文件,删除远端文件(GUI)
- 10-Oracle入门之子查询
- Linux下调整根目录的空间大小
- Android 对图片的缩放,拖地,跟系统图库的效果一样
- springcloud(第三篇)springcloud eureka 服务注册与发现 *****