1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- # Copyright (c) OpenMMLab. All rights reserved.
- import argparse
- import cv2
- import mmcv
- import torch
- from mmdet.apis import inference_detector, init_detector
- from mmdet.registry import VISUALIZERS
- def parse_args():
- parser = argparse.ArgumentParser(description='MMDetection webcam demo')
- parser.add_argument('config', help='test config file path')
- parser.add_argument('checkpoint', help='checkpoint file')
- parser.add_argument(
- '--device', type=str, default='cuda:0', help='CPU/CUDA device option')
- parser.add_argument(
- '--camera-id', type=int, default=0, help='camera device id')
- parser.add_argument(
- '--score-thr', type=float, default=0.5, help='bbox score threshold')
- args = parser.parse_args()
- return args
- def main():
- args = parse_args()
- # build the model from a config file and a checkpoint file
- device = torch.device(args.device)
- model = init_detector(args.config, args.checkpoint, device=device)
- # init visualizer
- visualizer = VISUALIZERS.build(model.cfg.visualizer)
- # the dataset_meta is loaded from the checkpoint and
- # then pass to the model in init_detector
- visualizer.dataset_meta = model.dataset_meta
- camera = cv2.VideoCapture(args.camera_id)
- print('Press "Esc", "q" or "Q" to exit.')
- while True:
- ret_val, img = camera.read()
- result = inference_detector(model, img)
- img = mmcv.imconvert(img, 'bgr', 'rgb')
- visualizer.add_datasample(
- name='result',
- image=img,
- data_sample=result,
- draw_gt=False,
- pred_score_thr=args.score_thr,
- show=False)
- img = visualizer.get_image()
- img = mmcv.imconvert(img, 'bgr', 'rgb')
- cv2.imshow('result', img)
- ch = cv2.waitKey(1)
- if ch == 27 or ch == ord('q') or ch == ord('Q'):
- break
- if __name__ == '__main__':
- main()
|