新手darknet+yolov3-tiny安装+跑一个自己的数据集

最近因为工作需要学习了目标检测,

darknet下载https://github.com/pjreddie/darknet

yolov3.weights下载https://github.com/ultralytics/yolov3

我使用的darknet框架+yolov3-tiny(最开始使用的是yolov3,但是我的电脑是超薄本,显存不够用,.cfg文件中的参数b s设置的不合理,因为一个大佬的帮忙,让我认识到这点,要不然我自己可能永远也想不明白为什么我训练模型时的数据效率那么低)

darknet 框架在github上面下载的,我的整个学习过程在win10的开发平台下,darknet下载完成后就解压 (然后我不知道是不是必须 ,这个框架是c语言开发,所以用vs2015)新手darknet+yolov3-tiny安装+跑一个自己的数据集_第1张图片

 然后点击darknet.sln就会自动进入vs2015的界面,然后参照下面的博客,把darknet的各种个方面都配置好了,注意一定要安装gpu,要不然速度真的是无法想像的慢,我最开始还以为是其他地方的问题,后来发现是不加gpu速度真的是太慢了。

然后把yolovc3.weights文件下载到该页面

新手darknet+yolov3-tiny安装+跑一个自己的数据集_第2张图片

点击这个文件,自动运行,就会看到官网上给出的给和车的图片新手darknet+yolov3-tiny安装+跑一个自己的数据集_第3张图片

如果你想要换张图片试试就右键该文件,编辑, 就会有如下的界面,我的那个代表的是在训练中

新手darknet+yolov3-tiny安装+跑一个自己的数据集_第4张图片

darknet.exe detector  test cfg/obj.data yolov3-tiny.cfg backup/yolov3-tiny_200.weights -i 0 -thresh 0.25 data/img/2.jpg -ext_outputpause

正常的官网测试代码是像上面这么写的,你要测试那张图片,如果其与darknet_yolo_v3.cmd在同一目录中,则直接写文件名,其他的要注意路径问题。

darknet.exe detector  test cfg/obj.data yolov3-tiny.cfg  -map

darknet.exe detector  test cfg/obj.data yolov3-tiny.cfg darknet53.conv.74

训练的代码如上那么写,第一行和第二行都可以,第二行的写法是加上一个权重文件,test后面的那几个文件都要注意路径问题,yolov3-tiny.cfg是因为它的就在x64目录下,所以不前面就不用加目录了,一定要注意这点

新手darknet+yolov3-tiny安装+跑一个自己的数据集_第5张图片

新手darknet+yolov3-tiny安装+跑一个自己的数据集_第6张图片

刚开始训练的时候会有这个弹窗,而且我最开始的数据结果 不好,所以上面根本没有数据显示 ,不知道是怎么一回事,后来一个好心的人(那个人真的是很好很好,要不然我的这篇博客也黄了,我也训练不出来自己的模型)这个是能表示你训练出来的模型好像的参数,那个-map的参数得训练到一定程度才会出现 ,第二张图就是一般好像loss下降到0.0几以下吧,mAP 70+才可以(参数的意义等下次我不懒的时候再补上吧)

我在训练时报的错,网上没有找到是因为什么,也是那个好人告诉我的,是因为电脑配置的问题,我建议电脑显存不好的人,不要用它来做目标检测,如果真的是数据需要的,可能会烧坏你的本子,而且训练的效果也不是特别好

就是报这个错误,我把.cfg文件中的参数改了也没有用,是因为我本子的问题,我真的是自己查的话死也找不到啊。因为yolov3是53层网络,所以电脑显存不行,我就换成了yolov3-tiny这个网络少,我的本子才能跑起来,但是电脑也很热啊

新手darknet+yolov3-tiny安装+跑一个自己的数据集_第7张图片

我最开始的数据就像上面那样子,真的是非常非常的不好,除了数据的问题大家一定要去找找.cfg文件的原因。我最开始也以为是数据图片的问题,后来还是发现.cfg文件配置的问题、

对了最后要説的是数据标注的事情 ,就是我们不是要训练图片么,训练之前要我们自己先把每一张图片进行数据标注,我看了好多,也没有发现什么特别要注意的地方,就是一张图片可以有多个标注也可以只标注一个。我用的是yolo-mark工具,因为那个简单不像网上説的voc还有xml文件,(但是那个还是比我用的这个要好),这个是直接标注,只要最后放到darknet文件夹下有四个文件就可以 分别是 voc.data voc.names img(图片的文件夹第个图片都要对应一个.txt文件,这个就是数据标注的作用),train.txt(这个是数据标注的记录文件)

新手darknet+yolov3-tiny安装+跑一个自己的数据集_第8张图片

这种数据的结果还可以,看网上大部分博客上面都没有v3(mse loss, Normalizer :( iou :0.750000) cls:1.000000)这句话,心里就很忐忑,后来知道了可能是新版本ab优化后的,加了些超参

所以不要害怕哦,我记得我的错误就这些,等以后有机会,再给它补充补充

你可能感兴趣的:(新手darknet+yolov3-tiny安装+跑一个自己的数据集)