Detectron2 快速开始,使用 WebCam 测试

本文将引导快速使用 Detectron2 ,介绍用摄像头测试实时目标检测。

Detectron2:github.com/facebookres…

环境准备

基础环境

Ubuntu 18.04

系统安装,可见制作 USB 启动盘,及系统安装

Nvidia Driver

驱动安装,可见Ubuntu 初始配置 - Nvidia 驱动

Anaconda Python

从这里下载Linux 版本,并安装

Detectron2

安装,

# 创建 Python 虚拟环境conda create -n detectron2 python=3.8 -yconda activate detectron2# 安装 PyTorch with CUDAconda install pytorch==1.7.1 torchvision==0.8.2 cudatoolkit=10.2 -c pytorch -y# 安装 Detectron2gitclonehttps://github.com/facebookresearch/detectron2.gitpython -m pip install -e detectron2# 安装 OpenCV ,捕获相机图像及显示pip install opencv-python复制代码

检查,

$ python - <

import torch, torchvision

print(torch.__version__, torch.cuda.is_available())

import cv2 as cv

print(cv.__version__)

EOF1.7.1 True4.5.1复制代码

安装文档 - 官方

现有模型进行推断

从其model zoo选择一个感兴趣的模型进行推断。这里以COCOR50-FPN3x训练的各类模型进行演示。

下载model进如下路径,

detectron2/models/├── COCO-Detection│   └── faster_rcnn_R_50_FPN_3x│      └── 137849458│          ├── metrics.json│          └── model_final_280758.pkl├── COCO-InstanceSegmentation│   └── mask_rcnn_R_50_FPN_3x│      └── 137849600│          ├── metrics.json│          └── model_final_f10217.pkl├── COCO-Keypoints│   └── keypoint_rcnn_R_50_FPN_3x│      └── 137849621│          ├── metrics.json│          └── model_final_a6e10b.pkl└── COCO-PanopticSegmentation    └── panoptic_fpn_R_50_3x        └── 139514569            ├── metrics.json            └── model_final_c10459.pkl复制代码

目标检测 - Faster R-CNN

执行,

cddetectron2/mkdir -p _outputpython demo/demo.py \--config-file configs/COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml \--input ../data/bicycle.jpg \--output _output/bicycle_COCO-Detection.jpg \--confidence-threshold 0.5 \--opts MODEL.WEIGHTS models/COCO-Detection/faster_rcnn_R_50_FPN_3x/137849458/model_final_280758.pkl复制代码

结果,

实例分割 - Mask R-CNN

执行,

python demo/demo.py \--config-file configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml \--input ../data/bicycle.jpg \--output _output/bicycle_COCO-InstanceSegmentation.jpg \--confidence-threshold 0.5 \--opts MODEL.WEIGHTS models/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl复制代码

结果,

姿态估计 - Keypoint R-CNN

执行,

python demo/demo.py \--config-file configs/COCO-Keypoints/keypoint_rcnn_R_50_FPN_3x.yaml \--input ../data/bicycle.jpg \--output _output/bicycle_COCO-Keypoints.jpg \--confidence-threshold 0.5 \--opts MODEL.WEIGHTS models/COCO-Keypoints/keypoint_rcnn_R_50_FPN_3x/137849621/model_final_a6e10b.pkl复制代码

结果,

全景分割 - Panoptic FPN

执行,

python demo/demo.py \--config-file configs/COCO-PanopticSegmentation/panoptic_fpn_R_50_3x.yaml \--input ../data/bicycle.jpg \--output _output/bicycle_COCO-PanopticSegmentation.jpg \--confidence-threshold 0.5 \--opts MODEL.WEIGHTS models/COCO-PanopticSegmentation/panoptic_fpn_R_50_3x/139514569/model_final_c10459.pkl复制代码

结果,

WebCam 摄像头使用

获取本机的 WebCam 列表,

$ ls /dev/video*/dev/video0  /dev/video1  /dev/video2  /dev/video3# 查看 WebCam 列表#  如下:有 0, 2 两个 videos#  - 第一个是 video ,第二个是 metadata#  - 从 Linux Kernel 4.16 开始,增加的 metadata node$ sudo apt install v4l-utils$ v4l2-ctl --list-devicesHD Webcam: HD Webcam (usb-0000:00:14.0-13):/dev/video0/dev/video1HD Pro Webcam C920 (usb-0000:00:14.0-4):/dev/video2/dev/video3# 查看某 WebCam 支持的格式、分辨率、fps 信息$ v4l2-ctl -d 2 --list-formats-ext复制代码

demo/demo.py可修改期望打开的摄像头及其分辨率等,

elifargs.webcam:  cam = cv2.VideoCapture(2)  cam.set(cv2.CAP_PROP_FRAME_WIDTH,640)  cam.set(cv2.CAP_PROP_FRAME_HEIGHT,480)  cam.set(cv2.CAP_PROP_FPS,30)  print(f"wencam:{cam.get(cv2.CAP_PROP_FRAME_WIDTH)}x{cam.get(cv2.CAP_PROP_FRAME_HEIGHT)}{cam.get(cv2.CAP_PROP_FPS)}")复制代码

运行,

python demo/demo.py \--config-file configs/COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml \--webcam \--confidence-threshold 0.5 \--opts MODEL.WEIGHTS models/COCO-Detection/faster_rcnn_R_50_FPN_3x/137849458/model_final_280758.pkl复制代码

效果,

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容