将视频添加到文件夹时如何自动运行 detect.py (Yolov5)?

How to autorun detect.py (Yolov5) when add video to folder?

我已经训练并在文件夹中获得了权重文件。 我想知道。如何自动运行 detect.py (python detect.py --weights runs/train/exp/weights/best.pt --img 640 --conf 0.3 --source data/images/AAA.avi --save -txt) 当我将视频放入文件夹时自动执行。

请推荐给我,非常感谢

首先,修改main函数,使detect.py可以在另一个Python文件中执行。

def main(opt):
    check_requirements(exclude=('tensorboard', 'thop'))
    run(**vars(opt))

if __name__ == "__main__":
    opt = parse_opt()
    main(opt)

将上面的替换为下面的。

def main(video):
    global video_path
    video_path = video
    opt = parse_opt()
    check_requirements(exclude=('tensorboard', 'thop'))
    run(**vars(opt))

并且需要修改detect.py

中的第78行
    source = str(source)

编辑来源。

    source = video_path

weights、img、conf这些是除source之外的解析器,可以放在parse_opt函数的default中,也可以直接放在运行函数中。我修改了解析器的默认值以避免冲突。

parser.add_argument('--weights', nargs='+', type=str, default='runs/train/exp/weights/best.pt', help='model path(s)')
parser.add_argument('--conf-thres', type=float, default=0.3, help='confidence threshold')

下面是 python 文件 运行s detect.py

import os

count = 0
while True:
    video_input = os.listdir('./data/images')
    if len(video_input) > count:
        count += 1
        detect.main('./data/images' + video_input[-1])