2401_83230794 2024-06-02 23:18 采纳率: 0%
浏览 18

yolov5中的detect.py文件如何进行随机选取图片?输出选取的图片测试结果

img


我感觉这个地方有问题,但不知道怎么改?因为前面弄了随机选取的代码,但一直输出的都是文件夹里的全部图片。所以该怎么修改啊

  • 写回答

3条回答 默认 最新

  • 关注

    晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    要让YOLOv5的detect.py文件随机选取图片并输出测试结果,你需要修改parse_opt函数中的--source参数。这里我将提供一个修改后的示例,并解释如何实现随机选取图片。

    首先,你需要创建一个包含所有图片路径的列表,然后在运行检测之前从中随机选择一个图片。以下是修改后的parse_opt函数:

    import os
    import random
    
    def parse_opt():
        parser = argparse.ArgumentParser()
        parser.add_argument("--weights", nargs="+", type=str, default=ROOT + "runs/train/exp/", help="model.pt path(s)")
        parser.add_argument("--source", type=str, default=choose_random_image(ROOT + "mydate/images/val1"), help="file/folder, video, or webcam (default: none)")
        parser.add_argument("--data", type=str, default=ROOT + "data/mydate1.yaml", help="data.yaml path (optional)")
        # ... 其他参数 ...
    
    def choose_random_image(folder_path):
        image_list = [os.path.join(folder_path, img) for img in os.listdir(folder_path) if img.endswith(('.jpg', '.jpeg', '.png', '.gif'))]  # 添加你所需的图片后缀
        if not image_list:
            raise ValueError("No images found in the specified folder.")
        random_image = random.choice(image_list)
        return random_image
    
    # 在主程序中调用
    opt = parser.parse_args()
    

    这个修改后的parse_opt函数会在--source选项中使用choose_random_image函数来随机选择一个图片路径。注意,image_list列表只包含以.jpg, .jpeg, .png, 或 .gif结尾的文件。你可以根据你的图片格式进行调整。

    这样,每次运行detect.py时,它都会随机选取一个图片进行测试。如果你的mydate/images/val1目录下有多个图片,random.choice会确保每次选择不同的图片。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月2日

悬赏问题

  • ¥15 vue2+codemirror 运行后页面光标太大了
  • ¥15 pdfjs库如何在前端实现打印、旋转等功能
  • ¥15 combobox数据绑定问题
  • ¥15 maven打包时,为什么有的依赖打不进去包
  • ¥15 求复现机器学习文章一篇
  • ¥15 爬虫抓取数据|解析视频文本内容(相关搜索:自动化)
  • ¥15 combobox绑定值改变的问题
  • ¥15 from seleniumwire import webdriver 在抓取http://链接的时候会自动转https://这个怎么解决
  • ¥15 hive直连数据库模式插入mysql表数据失败(相关搜索:数据库)
  • ¥30 不会,学习,有偿解答