欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

win10下yolov3批量测试图片+保存

程序员文章站 2024-02-14 14:14:10
...

1. 修改detector.c文件

  • 用VS打开darknet的工程文件darknet.sln
    win10下yolov3批量测试图片+保存

  • 找到detector.c
    win10下yolov3批量测试图片+保存

  • 在detector.c开头static int coco_ids[] = 下面加一段代码:

char *GetFilename(char *p)
{ 
    static char name[20]={""};
    char *q = strrchr(p,'/') + 1;
    strncpy(name,q,6);//注意后面的6,如果你的测试集的图片的名字字符(不包括后缀)是其他长度,请改为你需要的长度(官方的默认的长度是6)
    return name;
}

如图所示:
win10下yolov3批量测试图片+保存

  • ctrl+f搜索"save_image(im, “predictions”)",然后定位到这一行,然后将其替换为如下代码:
        char b[2048];
        sprintf(b, "output/%s", GetFilename(input));//保存在output中
        save_image(im, b);

如图所示:
win10下yolov3批量测试图片+保存
在…\darknet-master\build\darknet\x64目录下新建output文件夹用于存放测试后的图片结果

  • 修改完成,重新生成
    win10下yolov3批量测试图片+保存

2. 批量测试+保存图片

  • 打开cmd到…\darknet-master\build\darknet\x64目录下,运行:
darknet.exe detector test data\Insulator.data cfg\yolov3-Insulator.cfg_test backup\yolov3-Insulator_16000.weights <D:\新桌面\darknet-master\build\darknet\x64\data\val.txt> result.txt
  • 这些需要根据自己情况修改:
    darknet.exe detector test data\Insulator.datacfg\yolov3-Insulator.cfg_testbackup\yolov3-Insulator_16000.weights <D:\新桌面\darknet-master\build\darknet\x64\data\val.txt> result.txt
  • ps:
    Insulator.data:检测用的模型的文件地址
    cfg\yolov3-Insulator.cfg_test:检测用的模型的cfg文件的地址
    backup\yolov3-Insulator_16000.weights:检测用的模型weights文件的地址
    <D:\新桌面\darknet-master\build\darknet\x64\data\val.txt>:准备测试的txt文件的地址,(需要用尖括号括出来,不然会出现"Cannot load image"错误
    result.txt:输出文本格式的检测结果的文件名,随意。
  • 运行成功后output文件夹内:
    win10下yolov3批量测试图片+保存

其中有遇到的问题:

我一开始只能存一张图,就是测试图片在刷新但是只有一张图,这是因为名字一直一样所以覆盖了。
最后发现就是测试图片txt文件路径的问题,一定要是绝对路径!!!!
这是复制的其他博主的图:
要这么绝对哦!
win10下yolov3批量测试图片+保存
我失败的原因是我的是这样的:(反面教材
win10下yolov3批量测试图片+保存
这样存储时在最开始添加的GetFilename函数中运行strncpy(name,q,6);时得到的是我的文件夹名称val_images的前六位,所有的图都是这个名所以一直覆盖
这个路径跟生成时有关,我的就不是绝对路径。。。(我一个小白菜当时生成的时候哪注意了这些。。
我因为当时没有反应过来这是因为不是绝对路径造成的问题。。。所以我就块操作把反斜杠改了。。。
win10下yolov3批量测试图片+保存
就成功了噗哈哈哈哈。。。当然这样一时之快不是长久之计,还是得去改改生成.txt的代码
坑死我了划重点 绝对路径!!!!!

参考:

Windows下使用Yolov3批量测试、结果保存、得到AP / MAP / recall
YOLOv3的批量图片检测以及批量输出(windows下)

相关标签: 随手记