修改YOLO使其显示自定义类别

基本参考自这篇文章(http://blog.csdn.net/ma3252788/article/details/74659230),主要用来记录下自己遇到的问题

 

根据@赤战约风 的帖子做如下修改可以使其只显示人这个类别

一.修改源代码

cfg/coco.data

classes= 1     #修改成1
train  = /home/pjreddie/data/coco/trainvalno5k.txt
valid  = coco_testdev
#valid = data/coco_val_5k.list
names = data/coco.names backup = /home/pjreddie/backup/ eval=coco

 

src/detector.c

void run_detector(int argc, char **argv)//该函数中,倒数第三行.line=542
int classes = option_find_int(options, "classes", 1);//最后一个参数修改成1 void test_detector(char *datacfg, char *cfgfile, char *weightfile, char *filename, float thresh)函数中 draw_detections(im, l.w*l.h*l.n, thresh, boxes, probs, names, alphabet, 1); //最后一个参数修改成1。line=481

 

二.重新编译和测试

1.重新编译

make clean
make

2.测试

./darknet detector test cfg/coco.data cfg/yolo.cfg yolo.weights data/dog.jpg
这样的修改其实还是有点麻烦的,参考 yangshun8889大神的回答,其实还可以这样:
 

我假设你使用的是VOC.name, 在VOC中,car对应着6, person对应着14,然后修改代码。在draw_detections()函数中第一个for循环int class = max_index(probs[i], classes);代码后面添加if(class!=6 && class!=14){continue;}

这样就可以检测人和车了。
 
 
参考链接:

http://blog.csdn.net/u012235003/article/details/54576974

https://groups.google.com/d/msg/darknet/9Geu1zebfxo/rt2zLVpVAwAJ
 
 
我进行修改的时候,应该是yolo作者修改了代码以及代码结构,detector.c并不存在src目录下,而是在example目录下。到example目录下修改效果相同, 但很遗憾的是修修改前与修改后虽然识别种类发生了变化,但是运行时间并没有变

转载于:https://www.cnblogs.com/vactor/p/7881299.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用YOLO实现自定义目标识别,你需要按照以下步骤进行操作: 1. 数据准备:收集并整理包含自定义目标的图像数据集。确保数据集中的图像覆盖了各种场景、角度和光照条件下的目标。 2. 标注数据:使用标注工具对图像进行标注,标记出自定义目标的边界框和类别。可以使用一些常见的标注工具,如LabelImg、RectLabel等。 3. 配置YOLO: 下载YOLO的代码和预训练权重。YOLO有不同版本,如YOLOv3、YOLOv4等,你可以根据自己的需求选择适合的版本。 4. 调整配置文件:根据你的自定义目标,调整YOLO的配置文件。主要修改类别数量、训练集和验证集的路径、模型输入尺寸等参数。 5. 数据集划分:将数据集划分为训练集和验证集。通常使用80%的数据作为训练集,20%的数据作为验证集。 6. 训练模型:使用划分好的训练集对YOLO模型进行训练。可以使用预训练权重进行初始化,并在自定义数据集上进行迭代训练。训练过程中,可以调整学习率、迭代次数等超参数。 7. 模型评估:使用验证集对训练好的模型进行评估,计算模型的精度、召回率等指标。 8. 测试目标识别:使用训练好的YOLO模型对新的图像进行目标识别测试。可以将模型应用于实时视频流或静态图像,输出检测到的自定义目标的边界框和类别。 以上是一个基本的步骤,实际操作中可能还需要进行一些调试和参数调整。此外,为了获得更好的性能,你可能需要进行数据增强、模型微调和超参数优化等工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值