将视频添加到文件夹时如何自动运行 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])
我已经训练并在文件夹中获得了权重文件。 我想知道。如何自动运行 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])