前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Detectron2 快速开始,使用 WebCam 测试

Detectron2 快速开始,使用 WebCam 测试

作者头像
GoCoding
发布2021-05-06 14:39:42
1.3K0
发布2021-05-06 14:39:42
举报
文章被收录于专栏:GoCoding

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

  • Detectron2: https://github.com/facebookresearch/detectron2

环境准备

基础环境

Detectron2

安装,

代码语言:javascript
复制
# 创建 Python 虚拟环境
conda create -n detectron2 python=3.8 -y
conda activate detectron2

# 安装 PyTorch with CUDA
conda install pytorch==1.7.1 torchvision==0.8.2 cudatoolkit=10.2 -c pytorch -y

# 安装 Detectron2
git clone https://github.com/facebookresearch/detectron2.git
python -m pip install -e detectron2

# 安装 OpenCV ,捕获相机图像及显示
pip install opencv-python

检查,

代码语言:javascript
复制
$ python - <<EOF
import torch, torchvision
print(torch.__version__, torch.cuda.is_available())
import cv2 as cv
print(cv.__version__)
EOF

1.7.1 True
4.5.1
  • 安装文档 - 官方 https://detectron2.readthedocs.io/tutorials/install.html

现有模型进行推断

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

  • model zoo https://github.com/facebookresearch/detectron2/blob/master/MODEL_ZOO.md

下载 model 进如下路径,

代码语言:javascript
复制
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

执行,

代码语言:javascript
复制
cd detectron2/
mkdir -p _output

python 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

执行,

代码语言:javascript
复制
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

执行,

代码语言:javascript
复制
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

执行,

代码语言:javascript
复制
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 列表,

代码语言:javascript
复制
$ 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-devices
HD Webcam: HD Webcam (usb-0000:00:14.0-13):
    /dev/video0
    /dev/video1

HD 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 可修改期望打开的摄像头及其分辨率等,

代码语言:javascript
复制
elif args.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)}")

运行,

代码语言:javascript
复制
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

效果,

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GoCoding 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境准备
    • 基础环境
      • Detectron2
      • 现有模型进行推断
        • 目标检测 - Faster R-CNN
          • 实例分割 - Mask R-CNN
            • 姿态估计 - Keypoint R-CNN
              • 全景分割 - Panoptic FPN
                • WebCam 摄像头使用
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档