3—YOLO:训练自己的数据

来源:互联网 发布:网络诈骗案案例 编辑:程序博客网 时间:2024/06/06 15:41

YOLO: Real-Time Object Detection:https://pjreddie.com/darknet/yolo/

YOLO模型训练可视化训练过程中的中间参数:http://blog.csdn.net/yudiemiaomiao/article/details/72469135

——————————————————————

一.制作数据集

1.数据集准备(1)将数据集VOCdevkit2007拷贝到darknet\scripts下 (2)VOCdevkit2007修改名称为VOCdevkit2.修改darknet\scripts\voc_label.pysets=[('2007', 'train'), ('2007', 'val'), ('2007', 'test')]  classes = ["comp"] #os.system("cat 2007_train.txt 2007_val.txt 2012_train.txt 2012_val.txt > train.txt")#os.system("cat 2007_train.txt 2007_val.txt 2007_test.txt 2012_train.txt 2012_val.txt > train.all.txt")3.终端进入darknet\scripts,执行:    python voc_label.py  此后可以看到:VOCdevkit\VOC2007里多了一个labels文件夹(如下)darknet\scripts下多了2007_train.txt、2007_val.txt和2007_test.txt三个文件

二.修改配置文件

1)修改data/voc.names文件:comp(2)修改cfg/voc.data文件。classes= 1 //类别数train  = /home/gjw/darknet/scripts/train.txt  //训练集valid  = /home/gjw/darknet/scripts/2007_test.txt  //测试集names = data/voc.namesbackup = backup  //在darknet新建一个backup目录,存储.weight3) 修改×××.cfg(以yolo-voc.cfg为例),修改2个参数(filters,class),见下:① 【region】层中 classes 改成1。② 【region】层上方第一个【convolution】层,其中的filters值要进行修改,改成(classes+ coords+ 1)* (NUM) ,我的情况中:(1+4+1)* 5=30③ learning_rate:学习率④ max_batches:最大迭代次数

这里写图片描述

三.下载预训练模型

    下载好的预训练模型保存在/darknet/目录下PS:经过以上的修改,记得重新make一下darknet

四.训练

在darknet/目录下新建backup目录用于存放训练生成的模型
官网上下载预训练的模型,训练命令:    ./darknet detector train cfg/voc.data cfg/yolo-voc.cfg darknet19_448.conv.23     ./darknet detector train cfg/voc.data cfg/yolo-voc.cfg  yolo-voc.weights【结果】训练完毕就可以生成weights文件Saving weights to backup/yolo-voc.backupSaving weights to backup/yolo-voc_100.weightsSaving weights to backup/yolo-voc_final.weights

五.评估性能http://blog.csdn.net/hysteric314/article/details/54093734

    经过漫长的训练过程,model终于训练好了,为了评估性能,可以使用以下指令 ./darknet detector recall cfg/voc.data cfg/yolo_voc.cfg backup/yolo_voc_final.weights需要注意的是,在使用这个指令之前,我先修改一下src/detector.c 这一函数(1)位置第375行改成:list *plist = get_paths(“/home/yolo_v2_tinydarknet/darknet/infrared/infrared_val.txt”);//改成infrared_val.txt的完整路径(2)运行上面的指令会调用validate_detector_recall函数,这个函数中有个参数thresh(阈值),默认的值是.001,这个默认值设的很小,会让系统识别出更多的框来,导致proposals值激增,还会让recall值变高,达到98.5%。最终我改成了 .25。(3)上面的函数只会显示出recall值,没有precision值,precision的值计算方法是:识别为正确的个数/画了多少个框,所以我修改了代码。我把第447行显示结果的代码修改为 :fprintf(stderr, "ID:%5d Correct:%5d Total:%5d\tRPs/Img: %.2f\tIOU: %.2f%%\tRecall:%.2f%%\t", i, correct, total, (float)proposals/(i+1), avg_iou*100/total, 100.*correct/total);fprintf(stderr, "proposals:%5d\tPrecision:%.2f%%\n",proposals,100.*correct/(float)proposals); 运行后显示的结果是: Correct :可以理解为正确地画了多少个框,遍历每张图片的Ground Truth,网络会预测出很多的框,对每一Groud Truth框与所有预测出的框计算IoU,在所有IoU中找一个最大值,如果最大值超过一个预设的阈值,则correct加一。Total:一共有多少个Groud Truth框。Rps/img:p 代表proposals, r 代表region。 意思就是平均下来每个图片会有预测出多少个框。预测框的决定条件是,预测某一类的概率大于阈值。在validation_yolo_recall函数中,默认的这一个阈值是0.001,这一阈值设置的比较低,这就会导致会预测出很多个框,但是这样做是可以提升recall的值,一般yolo用于画框的默认值是.25,使用这个阈值会让画出来的框比较准确。而validation_yolo_recall使用的阈值改成。25的时候,Rps/img 值会降低,recall的值会降低,所以validation_yolo_recall默认使用一个较低的阈值,有可能作者的目的就是为了提高recall值,想在某种程度上体现网络的识别精度比较高。IoU、Recall、Precision:解释起来比较麻烦,请看博客有详细说明: http://blog.csdn.net/hysteric314/article/details/54093734

六.测试单张图像

    ./darknet detector test cfg/voc.data cfg/yolo-voc.cfg backup/yolo-voc_final.weights data/000020.jpg[扩展]    可以通过-thresh 0设置所有检测的阈值为0,同理,也可以通过设置不同的阈值进行检测。    ./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg -thresh 0

七.测试摄像头/视频

./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights <video file>

http://blog.csdn.net/burning_keyboard/article/details/71056164

http://blog.csdn.net/xjz18298268521/article/details/61922405

http://blog.csdn.net/sinat_30071459/article/details/53100791

http://blog.csdn.net/sinat_30071459/article/details/53161113

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 貔貅嘴巴磕破了怎么办 开光貔貅牙磕了怎么办 玉貔貅鼻子碎了怎么办 开光的貔貅摔坏了怎么办 貔貅摔坏了耳朵怎么办? 貔貅摔坏了一点点怎么办 天猫删评价扣4分怎么办 暴风影音下载电视剧下载不了怎么办 fm2017引援电脑买了怎么办 退休时医保不够二十年怎么办 和的面迟迟不发怎么办 做面条的面发了怎么办 发不起来的面团怎么办 如果婚后买房离婚后财产怎么办 空腹体检前喝水了怎么办 莆田市风俗婴儿死了怎么办后事 上司给你换不好岗位怎么办 领导要把我调走怎么办 美国上庭遇法官退休案子怎么办 夫妻一套房离婚户囗怎么办 正营生不了副团怎么办 浅色衣服被染色了怎么办 解大便解不出来怎么办 强拆挖掘机被村民扣押怎么办 小孩哭的时候接不上气怎么办 昆明市长信箱发不出去怎么办 中国公民在香港想去澳门怎么办 面包车不给贴膜怎么办 在香港海关被扣怎么办 发现被医院骗了怎么办 白皮子科染上血怎么办 宝宝头发里长湿疹怎么办 婴儿头发里长湿疹怎么办 宝宝解小便地方有湿疹怎么办 婴儿湿疹怎么办长在脸上 广州奥龙堡游泳卡过期了怎么办 大学生在学校当兵户口怎么办 茶叶梗枕头太硬怎么办 茶梗枕头太硬怎么办 照片放久了变红怎么办 乳腺萎缩和韧带松弛怎么办