今天是小琳琳的第一篇博客哦!
突然发现作为一名精致的程序媛应该懂得把自己的小进步去分享和记录起来。虽然之间了能遇到或多或少的问题,但是只要有了小进步还是应该为自己鼓鼓掌。以后也会学会时常记录,好记性不如烂笔头。
目标检测学习过程中,yolo算法起到至关重要的作用,尤其yolo3,不知道比其他算法高了多少呢?哈哈哈–一直都认为,在学习过程中实践也是至关重要的。但是,万事开头难,总会遇到奇奇怪怪的问题。
列举问题:(1、2、3是test出现的4是train出现的)
1.改darknet下makefile文件参数,修改不成功。
解决:服务器配置有问题。检查cuda,cudnn,opencv这些版本是否兼容吧。。要是一直修改不成功,就去删darknet,重新做一遍。要出来结果,肯定要付出代价的么。一遍不成功就再来一遍。反正我改了修也做了三遍。
2.backup生成的权重文件不会用。傻里巴叽还用之前自带版本的权重,结果哭唧唧,生成一大堆车、马、人,根本不是自己需要的类别标签。
解决:当然使用自己生成的权重文件啦,backup下每次都有会新的迭代权重。
3好不容易解决了前面两个,终于熬到检测这一步,奇怪的发现还是什么都没有。
解决:检测语句有问题,细心的我特别去看了官网的检测语句。有两条等同的检测语句,我们选择那条指明分类的语句。因为分类结果出不来,肯定是没有找到分类文件呀。我们给他指明,就清楚咯。
选择这种
./darknet detector test cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_10000.weights data/1.jpg
不选择这种
./darknet detect cfg/yolov3-voc.cfg backup/yolov3-voc_600.weights data/1.jpg
4.还有就是开始train的时候cuda out of memory等问题。
例如 0 CUDA Error: out of memory
darknet: ./src/cuda.c:36: check_error: Assertion `0’ failed.
解决:gpu占用有问题,gpu全部占用,就导致这样的问题。等gpu空闲的时候,在进行训练把。
训练正式开始
1.标注自己的数据集。根据自己划分的类别用labelimg进行标注,保存后会生成与所标注图片文件名相同的xml文件。
2.下载官网yolov3工程
git clone https://github.com/pjreddie/darknet cd darknet
cd darknet
3.修改配置文件
vi Makefile
GPU=1 #使用GPU训练,其他参数可根据需要调整
CUDNN=0
OPENCV=0
OPENMP=0
DEBUG=0
make #保存,记住一定要make才能生效
如果服务器配置没有问题,那么会成功,如果不成功的话就检查一下cuda,cudnn,opencv这些版本是否兼容的问题。
4.准备数据集,建立层级结构存储目录便于数据的管理。文件名称的命名也是为了以后方便修改配置文件。
darknet
--voc
--VOCdevkit
--VOC2018 #voc%s 这个%s最好是按照自己的数据集名称命名,为了以后区分自己数据集。
--Annotations
--ImageSets
--Main
--JPEGImages
Annotations中放所有的xml文件;JPEGImages中放所有的图片;Main中放train.txt和test.txt。 <

本文详细记录了作者使用 Yolo v3 进行目标检测的过程,包括搭建环境、训练数据集、修改配置文件及解决常见问题等关键步骤。
最低0.47元/天 解锁文章
4万+





