外贸网站该怎么做,展示型企业网站有哪些举例,佛山做网站推广的公司,网站建设中轩网怎么样文章目录 1. 安装1.1 模型安装1.2 运行Demo2.训练自己的数据集2.1数据集准备2.2修改配置文件2.2.1修改cfg/voc.data2.2.2修改data/voc.names2.2.3修改cfg/yolo-voc.cfg2.3 训练3. 测试3.1 单张图像测试3.2多张图像测试3.3 测试数据集测试mAP、recall等参数命令参数总结训练模型… 文章目录 1. 安装1.1 模型安装1.2 运行Demo2.训练自己的数据集2.1数据集准备2.2修改配置文件2.2.1修改cfg/voc.data2.2.2修改data/voc.names2.2.3修改cfg/yolo-voc.cfg2.3 训练3. 测试3.1 单张图像测试3.2多张图像测试3.3 测试数据集测试mAP、recall等参数命令参数总结训练模型单GPU训练多GPU训练测试图片Error/bin/sh: 1: nvcc: not found./darknet: error while loading shared libraries: libcurand.so.10.0: cannot open shared object file: No such file or directory参考1. 安装
1.1 模型安装
YOLO v3的安装与YOLO v2的安装方法一样
span stylecolor:#000000code classlanguage-shellspan stylecolor:#8be9fdgit/span clone https://github.com/pjreddie/darknet
/code/span
直接使用上边的命令下载YOLO安装包。下载完以后打开进入到安装包路径内
span stylecolor:#000000code classlanguage-shellspan stylecolor:#8be9fdcd/span darknet
/code/span
如果机器有使用GPU加速的环境以及安装OPENCV了需要做一下修改
span stylecolor:#000000code classlanguage-shellgedit Makefile
/code/span
使用gedit打开编译文件将文件前几行中对应的GPU、CUDNN、OPENCV由0变为1;
span stylecolor:#000000code classlanguage-shellGPUspan stylecolor:#6272a4/span1
CUDNNspan stylecolor:#6272a4/span1
OPENCVspan stylecolor:#6272a4/span1
/code/span
对Makefile修改结束以后就可以进行安装。
span stylecolor:#000000code classlanguage-shellspan stylecolor:#8be9fdmake/span -j
/code/span
下载YOLO v3权重
span stylecolor:#000000code classlanguage-shellspan stylecolor:#8be9fdwget/span https://pjreddie.com/media/files/yolov3.weights
/code/span
1.2 运行Demo
运行Demo查看运行是否成功。
span stylecolor:#000000code classlanguage-shell ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
/code/span
2.训练自己的数据集
2.1数据集准备
首先将自己的数据集生成为VOC数据集的格式,至少生成如下格式的文件夹
span stylecolor:#000000code classlanguage-shellAnnotations
ImageSets--Main--test.txt--train.txt--trainval.txt--val.txt
JPEGImages
/code/span
接着将上边四个文件夹放在/darknet/scripts/VOCdevkit/VOC2007内这个文件夹需要自己来创建一个。接着对/darknet/scripts/voc_label.py进行修改。第一处 修改第7行
span stylecolor:#000000code classlanguage-shell setsspan stylecolor:#6272a4/spanspan stylecolor:#999999[/spanspan stylecolor:#999999(/spanspan stylecolor:#f1fa8c2012/span, span stylecolor:#f1fa8ctrain/spanspan stylecolor:#999999)/span, span stylecolor:#999999(/spanspan stylecolor:#f1fa8c2012/span, span stylecolor:#f1fa8cval/spanspan stylecolor:#999999)/span, span stylecolor:#999999(/spanspan stylecolor:#f1fa8c2007/span, span stylecolor:#f1fa8ctrain/spanspan stylecolor:#999999)/span, span stylecolor:#999999(/spanspan stylecolor:#f1fa8c2007/span, span stylecolor:#f1fa8cval/spanspan stylecolor:#999999)/span, span stylecolor:#999999(/spanspan stylecolor:#f1fa8c2007/span, span stylecolor:#f1fa8ctest/spanspan stylecolor:#999999)/spanspan stylecolor:#999999]/span
span stylecolor:#ee9900span stylecolor:#ee9900/spanshell
将“span stylecolor:#999999(/spanspan stylecolor:#f1fa8c2012/span, span stylecolor:#f1fa8ctrain/spanspan stylecolor:#999999)/span, span stylecolor:#999999(/spanspan stylecolor:#f1fa8c2012/span, span stylecolor:#f1fa8cval/spanspan stylecolor:#999999)/span,”删除掉改为
span stylecolor:#ee9900/span/spanshellsetsspan stylecolor:#6272a4/spanspan stylecolor:#999999[/spanspan stylecolor:#999999(/spanspan stylecolor:#f1fa8c2007/span, span stylecolor:#f1fa8ctrain/spanspan stylecolor:#999999)/span, span stylecolor:#999999(/spanspan stylecolor:#f1fa8c2007/span, span stylecolor:#f1fa8cval/spanspan stylecolor:#999999)/span, span stylecolor:#999999(/spanspan stylecolor:#f1fa8c2007/span, span stylecolor:#f1fa8ctest/spanspan stylecolor:#999999)/spanspan stylecolor:#999999]/span
/code/span
第二处 修改第9行
span stylecolor:#000000code classlanguage-shell classes span stylecolor:#6272a4/span span stylecolor:#999999[/spanspan stylecolor:#f1fa8caeroplane/span, span stylecolor:#f1fa8cbicycle/span, span stylecolor:#f1fa8cbird/span, span stylecolor:#f1fa8cboat/span, span stylecolor:#f1fa8cbottle/span, span stylecolor:#f1fa8cbus/span, span stylecolor:#f1fa8ccar/span, span stylecolor:#f1fa8ccat/span, span stylecolor:#f1fa8cchair/span, span stylecolor:#f1fa8ccow/span, span stylecolor:#f1fa8cdiningtable/span, span stylecolor:#f1fa8cdog/span, span stylecolor:#f1fa8chorse/span, span stylecolor:#f1fa8cmotorbike/span, span stylecolor:#f1fa8cperson/span, span stylecolor:#f1fa8cpottedplant/span, span stylecolor:#f1fa8csheep/span, span stylecolor:#f1fa8csofa/span, span stylecolor:#f1fa8ctrain/span, span stylecolor:#f1fa8ctvmonitor/spanspan stylecolor:#999999]/span
/code/span
修改为自己检测目标类别名称 完成修改以后可运行文件生成YOLO训练时使用的labels
span stylecolor:#000000code classlanguage-shellpython voc_label.py
/code/span
运行结束以后可以在/darknet/scripts/VOCdevkit/VOC2007文件夹内看到labels文件夹并且在/darknet/scripts文件夹内会生成2007_train.txt、2007_test.txt、2007_val.txt三个文件。到此数据准备完成。
2.2修改配置文件
span stylecolor:#000000code classlanguage-shell./darknet detector train cfg/voc.data cfg/yolo-voc.cfg darknet19_448.conv.23
/code/span
上边是进行训练的命令可以按照上边的命令对文件进行修改。
2.2.1修改cfg/voc.data
span stylecolor:#000000code classlanguage-shellclassesspan stylecolor:#6272a4/span 3 //修改为训练分类的个数
train span stylecolor:#6272a4/span /home/ws/darknet/scripts/2007_train.txt //修改为数据阶段生成的2007_train.txt文件路径
valid span stylecolor:#6272a4/span /home/ws/darknet/scripts/2007_val.txt //修改为数据阶段生成的2007_val.txt文件路径
names span stylecolor:#6272a4/span data/voc.names
backup span stylecolor:#6272a4/span backup
/code/span
2.2.2修改data/voc.names
在上边修改的文件内有一个data/voc.names文件里边保存目标分类的名称修改为自己类别的名称即可。
2.2.3修改cfg/yolo-voc.cfg
第一处 文件开头的配置文件可以按照下边的说明进行修改
span stylecolor:#000000code classlanguage-cfg# Testing
#batch1
#subdivisions1
# Training
batch64 //每次迭代要进行训练的图片数量 ,在一定范围内一般来说Batch_Size越大其确定的下降方向越准引起的训练震荡越小。
subdivisions8 //源码中的图片数量int imgs net.batch * net.subdivisions * ngpus按subdivisions大小分批进行训练
height416 //输入图片高度,必须能被32整除
width416 //输入图片宽度必须能被32整除
channels3 //输入图片通道数
momentum0.9 //冲量
decay0.0005 //权值衰减
angle0 //图片角度变化单位为度,假如angle5就是生成新图片的时候随机旋转-5~5度
saturation 1.5 //饱和度变化大小
exposure 1.5 //曝光变化大小
hue.1 //色调变化范围tiny-yolo-voc.cfg中-0.1~0.1
learning_rate0.001 //学习率
burn_in1000
max_batches 120200 //训练次数
policysteps //调整学习率的策略
steps40000,80000 //根据batch_num调整学习率若steps100,25000,35000则在迭代100次25000次35000次时学习率发生变化该参数与policy中的steps对应
scales.1,.1 //相对于当前学习率的变化比率累计相乘与steps中的参数个数保持一致
/code/span
注意如果修改max_batches总的训练次数也需要对应修改steps适当调整学习率。 具体的含义可以查看YOLO网络中参数的解读第二处 修改107行最后一个卷积层中filters按照filter5*(classes5)来进行修改。如果类目为3则为5*(35)40。
span stylecolor:#000000code classlanguage-cfg[convolutional]
size1
stride1
pad1
filters40 //计算公式为:filter3*(classes5)
activationlinear
/code/span
第三处 修改类别数,直接搜索关键词“classes”即可全文就一个。
span stylecolor:#000000code classes3
/code/span
2.3 训练
span stylecolor:#000000code classlanguage-shell./darknet detector train cfg/voc.data cfg/yolo-voc.cfg darknet19_448.conv.23 span stylecolor:#6272a4/span log.txt
/code/span
输入上边的指令就可以进行训练在命令最后的命令 log.txt是将输出的日志保存到log.txt文件内这样便于后期训练结果的查看。
3. 测试
3.1 单张图像测试
span stylecolor:#000000code classlanguage-shell./darknet detect cfg/yolo-voc.cfg backup/yolo-voc_final.weights data/dog.jpg
/code/span
span stylecolor:#000000code classlanguage-shell./darknet detect span stylecolor:#999999[/span训练cfg文件路径span stylecolor:#999999]/span span stylecolor:#999999[/span权重文件路径span stylecolor:#999999]/span span stylecolor:#999999[/span检测图片的路径span stylecolor:#999999]/span
/code/span
按照上边的规整进行填写即可。
3.2多张图像测试
由于博主能力有限修改YOLO内部文件失败只能使用shell写命令来进行重复单张测试的命令
span stylecolor:#000000code classlanguage-shellinput_data_folderspan stylecolor:#6272a4/spanspan stylecolor:#f1fa8c./data/VOCdevkit/VOC2007/JPEGImages//span
output_data_folderspan stylecolor:#6272a4/spanspan stylecolor:#f1fa8c./results/CD8/span file_name_tmpspan stylecolor:#6272a4/spanspan stylecolor:#ee9900span stylecolor:#ee9900/spanspan stylecolor:#8be9fdls/span $input_data_folderspan stylecolor:#ee9900/span/spanfile_namesspan stylecolor:#6272a4/spanspan stylecolor:#999999(/spanspan stylecolor:#ee9900span stylecolor:#ee9900$(/spanspan stylecolor:#ff79c6echo/span $file_name_tmpspan stylecolor:#ee9900)/span/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanspan stylecolor:#ff79c6for/span filename span stylecolor:#ff79c6in/span span stylecolor:#ee9900${file_names[]}/span
span stylecolor:#ff79c6do/spanspan stylecolor:#ff79c6echo/span span stylecolor:#f1fa8ctesting span stylecolor:#ee9900$file/span .../span./darknet detector span stylecolor:#8be9fdtest/span cfg/inst25.data cfg/yolo-voc.cfg backup/yolo-voc_final.weights span stylecolor:#ee9900$input_data_folder/spanspan stylecolor:#ee9900$filename/span -thresh .3 -gpu 0,1 span stylecolor:#6272a4/span result.txtspan stylecolor:#8be9fdmv/span predictions.png ./results/CD8_final_thresh_0.3/span stylecolor:#ee9900$filename/spanspan stylecolor:#f1fa8c.png/spanspan stylecolor:#ff79c6done/span
/code/span
修改相应自己存储图片的路径就可以进行测试 。
3.3 测试数据集测试mAP、recall等参数
span stylecolor:#000000code classlanguage-shell./darknet detector valid cfg/voc.data cfg/voc.cfg backup/voc_final.weights -out result_ -gpu 0 -thresh .5
/code/span
span stylecolor:#000000code./darknet detector valid [data路径] [cfg路径] [权重文件路径] -out [生成txt文件前缀] -gpu [GPU的ID号] -thresh [门限的大小]
/code/span
按照上边的规则对测试数据集进行测试会在result文件夹内生成相应的相应检测结果的文件。 下边借助Faster R-CNN中voc_eval.py文件进行参数测试。
span stylecolor:#000000code classlanguage-shellfrom voc_eval span stylecolor:#8be9fdimport/span voc_eval
rec, prec, ap, fp, tp, nobj span stylecolor:#6272a4/span voc_evalspan stylecolor:#999999(/spanspan stylecolor:#f1fa8c/home/app/darknet/results/result_ {}.txt/span, span stylecolor:#f1fa8c/home/app/darknet/scripts/VOCdevkit/VOC2007/Annotations/{}.xml/span,span stylecolor:#f1fa8c/home/app/darknet/scripts/VOCdevkit/VOC2007/ImageSets/Main/test.txt/span, span stylecolor:#f1fa8cTarget1/span, span stylecolor:#f1fa8c./spanspan stylecolor:#999999)/span
printspan stylecolor:#999999(/spanspan stylecolor:#f1fa8cclass name: /span classnamespan stylecolor:#999999)/span
printspan stylecolor:#999999(/spanspan stylecolor:#f1fa8cAverage Precision: /span strspan stylecolor:#999999(/spanapspan stylecolor:#999999))/span
printspan stylecolor:#999999(/spanspan stylecolor:#f1fa8cTrue Positive: /span strspan stylecolor:#999999(/spantpspan stylecolor:#999999))/span
printspan stylecolor:#999999(/spanspan stylecolor:#f1fa8cFalse Positive: /span strspan stylecolor:#999999(/spanfpspan stylecolor:#999999))/span
/code/span
首先将上边的命令新建一个python文件同时将Faster R-CNN中voc_eval.py文件放在一个文件夹内这个文件可以能在Github中不能找到可以去CSDN下载。
命令参数总结
训练模型
单GPU训练
span stylecolor:#000000code classlanguage-shell./darknet -i span stylecolor:#6272a4/spangpu_idspan stylecolor:#6272a4/span detector train span stylecolor:#6272a4/spandata_cfgspan stylecolor:#6272a4/span span stylecolor:#6272a4/spantrain_cfgspan stylecolor:#6272a4/span span stylecolor:#6272a4/spanweightsspan stylecolor:#6272a4/span
/code/span
举例
span stylecolor:#000000code classlanguage-shell./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74
/code/span
多GPU训练
格式为
span stylecolor:#000000code classlanguage-shell./darknet detector train span stylecolor:#6272a4/spandata_cfgspan stylecolor:#6272a4/span span stylecolor:#6272a4/spanmodel_cfgspan stylecolor:#6272a4/span span stylecolor:#6272a4/spanweightsspan stylecolor:#6272a4/span -gpus span stylecolor:#6272a4/spangpu_listspan stylecolor:#6272a4/span
/code/span
举例
span stylecolor:#000000code classlanguage-shell./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74 -gpus 0,1,2,3
/code/span
测试图片
测试单张图片
span stylecolor:#000000code classlanguage-shell./darknet detector span stylecolor:#8be9fdtest/span span stylecolor:#6272a4/spandata_cfgspan stylecolor:#6272a4/span span stylecolor:#6272a4/spantest_cfgspan stylecolor:#6272a4/span span stylecolor:#6272a4/spanweightsspan stylecolor:#6272a4/span span stylecolor:#6272a4/spanimage_filespan stylecolor:#6272a4/span
/code/span
test_cfg文件中batch和subdivisions两项必须为1。 测试时还可以用-thresh和-hier选项指定对应参数。 生成预测结果
span stylecolor:#000000code./darknet detector valid data_cfg test_cfg weights out_file
/code/span
test_cfg文件中batch和subdivisions两项必须为1。 结果生成在data_cfg的results指定的目录下以out_file开头的若干文件中若data_cfg没有指定results那么默认为darknet_root/results。 计算recall执行这个命令需要修改detector.c文件修改信息请参考“detector.c修改”
span stylecolor:#000000code classlanguage-shell./darknet detector recall span stylecolor:#6272a4/spandata_cfgspan stylecolor:#6272a4/span span stylecolor:#6272a4/spantest_cfgspan stylecolor:#6272a4/span span stylecolor:#6272a4/spanweightsspan stylecolor:#6272a4/span
/code/span test_cfg文件中batch和subdivisions两项必须为1。 输出在stderr里重定向时请注意。 RPs/Img、IOU、Recall都是到当前测试图片的均值。 detector.c中对目录处理有错误可以参照validate_detector对validate_detector_recall最开始几行的处理进行修改。
Error
/bin/sh: 1: nvcc: not found 当安装在CUDA10.1的情况下会报下边的错误这时候需要将Makefile文件中的NVCC
span stylecolor:#000000code classlanguage-txtNVCCnvcc
/code/span 修改为下边的格式
span stylecolor:#000000code classlanguage-txtNVCC/usr/local/cuda-10.1/bin/nvcc
/code/span ./darknet: error while loading shared libraries: libcurand.so.10.0: cannot open shared object file: No such file or directory
使用下边的命令进行修正
span stylecolor:#000000code classlanguage-shellspan stylecolor:#8be9fdsudo/span span stylecolor:#8be9fdcp/span /usr/local/cuda-10.0/lib64/libcudart.so.10.0 /usr/local/lib/libcudart.so.10.0 span stylecolor:#6272a4/span span stylecolor:#8be9fdsudo/span ldconfig
span stylecolor:#8be9fdsudo/span span stylecolor:#8be9fdcp/span /usr/local/cuda-10.0/lib64/libcublas.so.10.0 /usr/local/lib/libcublas.so.10.0 span stylecolor:#6272a4/span span stylecolor:#8be9fdsudo/span ldconfig
span stylecolor:#8be9fdsudo/span span stylecolor:#8be9fdcp/span /usr/local/cuda-10.0/lib64/libcurand.so.10.0 /usr/local/lib/libcurand.so.10.0 span stylecolor:#6272a4/span span stylecolor:#8be9fdsudo/span ldconfig/code/span
参考
YOLOv3: 训练自己的数据 - CSDN博客
任何程序错误以及技术疑问或需要解答的请添加