|
|
@@ -123,10 +123,11 @@ def detect(save_img=False): |
|
|
|
if isinstance(vid_writer, cv2.VideoWriter): |
|
|
|
vid_writer.release() # release previous video writer |
|
|
|
|
|
|
|
fourcc = 'mp4v' # output video codec |
|
|
|
fps = vid_cap.get(cv2.CAP_PROP_FPS) |
|
|
|
w = int(vid_cap.get(cv2.CAP_PROP_FRAME_WIDTH)) |
|
|
|
h = int(vid_cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) |
|
|
|
vid_writer = cv2.VideoWriter(save_path, cv2.VideoWriter_fourcc(*opt.fourcc), fps, (w, h)) |
|
|
|
vid_writer = cv2.VideoWriter(save_path, cv2.VideoWriter_fourcc(*fourcc), fps, (w, h)) |
|
|
|
vid_writer.write(im0) |
|
|
|
|
|
|
|
if save_txt or save_img: |
|
|
@@ -145,20 +146,20 @@ if __name__ == '__main__': |
|
|
|
parser.add_argument('--img-size', type=int, default=640, help='inference size (pixels)') |
|
|
|
parser.add_argument('--conf-thres', type=float, default=0.4, help='object confidence threshold') |
|
|
|
parser.add_argument('--iou-thres', type=float, default=0.5, help='IOU threshold for NMS') |
|
|
|
parser.add_argument('--fourcc', type=str, default='mp4v', help='output video codec (verify ffmpeg support)') |
|
|
|
parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu') |
|
|
|
parser.add_argument('--view-img', action='store_true', help='display results') |
|
|
|
parser.add_argument('--save-txt', action='store_true', help='save results to *.txt') |
|
|
|
parser.add_argument('--classes', nargs='+', type=int, help='filter by class') |
|
|
|
parser.add_argument('--agnostic-nms', action='store_true', help='class-agnostic NMS') |
|
|
|
parser.add_argument('--augment', action='store_true', help='augmented inference') |
|
|
|
parser.add_argument('--update', action='store_true', help='update all models') |
|
|
|
opt = parser.parse_args() |
|
|
|
print(opt) |
|
|
|
|
|
|
|
with torch.no_grad(): |
|
|
|
detect() |
|
|
|
|
|
|
|
# # Update all models |
|
|
|
# for opt.weights in ['yolov5s.pt', 'yolov5m.pt', 'yolov5l.pt', 'yolov5x.pt', 'yolov3-spp.pt']: |
|
|
|
# detect() |
|
|
|
# create_pretrained(opt.weights, opt.weights) |
|
|
|
if opt.update: # update all models (to fix SourceChangeWarning) |
|
|
|
for opt.weights in ['yolov5s.pt', 'yolov5m.pt', 'yolov5l.pt', 'yolov5x.pt', 'yolov3-spp.pt']: |
|
|
|
detect() |
|
|
|
create_pretrained(opt.weights, opt.weights) |
|
|
|
else: |
|
|
|
detect() |