You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Google Colab中通过循环执行Python文件实现YOLOv7多图目标检测

在Google Colab中用YOLOv7实现批量图片目标检测

优先推荐:利用YOLOv7原生批量处理能力

YOLOv7的detect.py本身支持直接批量处理整个文件夹的图片,无需手动写循环,效率更高:

  1. 将所有需要检测的图片放到同一个文件夹(比如/content/images/)
  2. 执行以下命令,将--source参数指定为文件夹路径即可:
!python ../yolov7/detect.py --weights ../yolov7/yolov7.pt --conf 0.5 --img-size 640 --source /content/images/ --save-txt
  • 默认会遍历文件夹下的所有子文件夹,若不需要处理子文件夹,添加--nosubdirs参数
  • 检测结果会自动保存到../yolov7/runs/detect/exp*目录下,包含图片和对应的txt标注文件

自定义循环处理(需额外逻辑时用)

若你需要对单张图片做额外预处理/后处理,可通过Python循环实现,解决之前变量未识别的问题:

方法1:用subprocess模块执行命令(更稳定)

直接在Python中调用shell命令,避免Colab的!语法变量解析问题:

import subprocess
import os

# 替换为你的图片文件夹路径
img_folder = "/content/images/"

for filename in os.listdir(img_folder):
    # 过滤仅处理图片格式文件
    if filename.lower().endswith((".jpg", ".jpeg", ".png", ".bmp")):
        img_path = os.path.join(img_folder, filename)
        # 构造完整命令参数
        cmd = [
            "python", "../yolov7/detect.py",
            "--weights", "../yolov7/yolov7.pt",
            "--conf", "0.5",
            "--img-size", "640",
            "--source", img_path,
            "--save-txt"
        ]
        # 执行命令
        subprocess.run(cmd, check=True)

方法2:Colab中直接用!语法结合Python变量

在!命令中通过{变量名}直接引用Python变量,注意给路径加引号避免空格问题:

import os

img_folder = "/content/images/"

for filename in os.listdir(img_folder):
    if filename.lower().endswith((".jpg", ".jpeg", ".png", ".bmp")):
        img_path = os.path.join(img_folder, filename)
        # 用{}引用Python变量,路径加引号处理空格
        !python ../yolov7/detect.py --weights ../yolov7/yolov7.pt --conf 0.5 --img-size 640 --source "{img_path}" --save-txt

注意:循环方式会每次加载模型,效率远低于直接指定文件夹的方式,仅在必要时使用。

内容的提问来源于stack exchange,提问作者Chopper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 23:05:31