darknet使用心得

注意,darknet是C++的,首先要make一下
然后.so和.a文件编译产生
python 文件夹下的darknet.py主要用这个就行了
(训练的yolov3.weights是利用coco训练的,因此.cfg和.data都采用coco的模式)
实践过程中主要修改的文件:
1)Makefile
2)./cfg 目录下的参数配置文件
3)./data 目录下的数据

使用“-thresh”参数控制显示的 bounding-box 个数

实际上很简单,网络配置加载进去,然后进行检测就行了
训练到测试都是采用的命令行train/test这样来
对于darknet最重要的三个东西.cfg .names 训练集路径
PS:对于.data中的数据地址,最重要的就是train的地址,其他例如valid、test都可以不要

1.darknet.py需要依赖 libdarknet.so文件,.so就在darknet目录下,打开darknet.py可以看到:
lib = CDLL("/home/xxx/文档/darknet-master/libdarknet.so", RTLD_GLOBAL)这句话,第一个参数变成.so的绝对路径就行了
2.看load_net,load_meta
net就是需要运行的网络,这里写出来网络结构的绝对路径
meta是数据信息,依照那个库进行识别 输入就是.data文件

注:
1.数据路径配置主要就是cfg/目录下的.data文件,里面有类别数目和train test的路径,标签名字文件.names和模型备份路径(就是backup目录里面保存的训练模型参数)
在实际中对coco.data进行了改变,重写了names的绝对路径
PS,实际训练的时候要建立train文件夹和test文件夹,对应之前路径
2…names说明了需要检测分类每种类别的名称(例如coco有80中类别,分别对应xxxx名字)
3. .cfg文件是网络配置文件,在cfg/目录下,其中参数的具体意义见:
https://www.jianshu.com/p/98aa75b0532f

训练模式:
1.首先开始训练,在backup目录里面每到一定迭代次数,会有模型参数文件保存下来(比如yolov3_pikaqiu_1000.weights)保存下来不影响继续训练
2.backup保留的模型可以继续训练 backup\yolov3_pikaqiu_2500.weights

测试模型:
可以实现一张图片输入也可以针对多张图片输入,也可以利用CUDA和OPENCV来进行实时检测,也可以对视频进行读取处理

对 cfg 配置文件,重点调整(当然是全部参数都很重要,可能都要调整),训练时调整重点的全局参数: decay momentum learning_rate 这三个是与收敛速度有关的。policy 是weights 策略的, inputs batch(及相关的subdivisions) ouputs 是与数据吞吐维度相关的,最新版本好像ouputs这里有改正。

标记完后会生成每张图片对应的xml文件,也就是每张图片的label文件,我们需要提取其中的一些boundingbox的信息。
在darknet的scripts文件夹下有一个voc_label.py的文件,这个是针对voc图片集的xml生成对应图片TXT文件的脚本,根据自己的情况进行修改,生成自己的图像数据的TXT文件数据。TXT文件的内容每行都是 这种形式,且坐标和长宽都应该是归一化后的数值。
在运行voc_label.py 脚本时还会生成一个train.txt文件,改文件里存放的是每张图片的绝对路径。Train.txt是训练时需要的文件。
生成txt文件后,记得将原图像和txt文件放到同一个文件夹下。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值