Darknet批量测试图片

本文介绍如何修改Darknet源码以实现批量测试图片并保存带有检测框的可视化结果。针对不同长度的文件名,作者修改了detector.c中的test_detector()函数,使保存的图片文件名与原始文件名一致,并保存到特定目录。此外,创建了一个shell脚本来循环执行测试,其中.txt文件包含待测试图片的路径。这种方法虽然效率不高,但解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Darknet批量测试图片

在做批量测试的时候在网上找了一圈方法,发现都是大同小异,主要是他们都会在文件读取时设置固定长度,无法满足我的需求,而且ab版darknet的测试代码中只能测试单张图片,批量测试得不到相应的框出来的图片可视化效果。
需求:
1.考虑不同长度文件名的批量测试;
2.将框出来的图片保存到对应的文件夹下,按照原文件的方式命名。

方法:
1.仅在darknet源码的detector.c文件中改一下保存的文件名;
2.批量测试通过指令循环来进行,虽然可能效率不高,但是能解决问题。

具体如下:
detector.c中的test_detector()函数修改:

只需要在save_image(im, “predictions”);前加上:
char *input_file = strrchr(file name,/)+1;
char *last_dot = strrchr(input_file,.);
if(last_dot != NULL && strrchr(input_file,/) < last_dot)
    *last_dot = ‘\0;
char str1[100] = {“test_result/};
strcat(str1, input_file);
然后将save_image(im,”predictions”);修改为:
save_image(im,str1);
下面的show_image也可以改一下。test_result/是保存的位置

保存之后记得make一下就好。

然后创建脚本test.sh,写入以下代码:

for line in $(cat /home…/var.txt); do echo $line; darknet detector test a.data yolov4-custom.cfg yolov4-custom_best.weights $line -ext_output;done

这样就完成啦,其中.txt文件中记录的是需要测试的样本的绝对地址。
bash test.sh 就好。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值