如何修改yolov5-7.0中detect.py源码,将未识别出来的图片保存到新文件夹
时间: 2024-02-04 22:04:15 浏览: 177
要将未识别出来的图片保存到新文件夹,需要在yolov5-7.0中detect.py源码中添加一些代码。具体步骤如下:
1. 在detect.py源码中找到以下代码段:
```
# Inference
t1 = time_synchronized()
pred = model(imgs, augment=opt.augment)[0]
# Apply NMS
pred = non_max_suppression(pred, opt.conf_thres, opt.iou_thres, classes=opt.classes, agnostic=opt.agnostic_nms)
t2 = time_synchronized()
```
这是模型推理的部分,我们需要在这里添加保存未识别出来的图片的代码。
2. 在这段代码下面添加以下代码段:
```
# Save images that are not detected
for i, det in enumerate(pred):
if len(det):
det[:, :4] = scale_coords(imgs[i].shape[1:], det[:, :4], im0s[i].shape).round()
# Write results
for *xyxy, conf, cls in reversed(det):
c = int(cls)
label = f'{names[c]} {conf:.2f}'
plot_one_box(xyxy, im0s[i], label=label, color=colors(c, True), line_thickness=3)
else:
cv2.imwrite(f"undetected_images/{os.path.basename(img_files[i])}", im0s[i])
```
这段代码会遍历所有的预测结果,如果没有检测到目标,则将对应的图片保存到一个名为“undetected_images”的文件夹中。
3. 在detect.py的开头添加以下代码:
```
import os
import cv2
```
这是为了导入cv2和os模块,以便在代码中使用。
4. 创建一个名为“undetected_images”的文件夹,用来保存未检测出的图片。
完成以上步骤后,重新运行detect.py,未检测出的图片将会被保存到“undetected_images”文件夹中。
阅读全文