GluonCV-物体检测教程-09.在网络摄像头上运行对象检测模型
本文将展示如何通过直接在您的网络摄像头视频流上运行预先训练的对象检测模型。
NOTE:
- 本教程仅在MacOS环境中测试过
- 需要的Python包:cv2,matplotlib
- 你需要一个摄像头:)
- 与matplotlib渲染兼容的Python,作为框架安装在MacOS中,请参阅此处的指南
加载模型和网络摄像头
准备好了吗?我们开始吧!首先,将必要的库导入python。
import timeimport gluoncv as gcv
from gluoncv.utils import try_import_cv2
cv2 = try_import_cv2()
import mxnet as mx
在本教程中,我们使用ssd_512_mobilenet1.0_voc,这是一个快速的网络,具有良好的精度,在大多数笔记本电脑上应该远远高于每秒1帧。欢迎尝试一个不同的模式,从 Gluon Model Zoo!
# Load the model
net = gcv.model_zoo.get_model('ssd_512_mobilenet1.0_voc', pretrained=True)
# Compile the model for faster speed
net.hybridize()
我们在opencv中创建网络摄像头处理程序,以便能够获取帧:
# Load the webcam handler
cap = cv2.VideoCapture(0)
time.sleep(1) ### letting the camera autofocus
检测回路
检测回路由四个阶段组成:
- 加载网络摄像头帧
- 图像预处理
- 通过网络运行映像
- 用预测结果更新输出
axes = None
NUM_FRAMES = 200 # you can change this
for i in range(NUM_FRAMES):# Load frame from the cameraret, frame = cap.read()# Image pre-processingframe = mx.nd.array(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)).astype('uint8')rgb_nd, frame = gcv.data.transforms.presets.ssd.transform_test(frame, short=512, max_size=700)# Run frame through networkclass_IDs, scores, bounding_boxes = net(rgb_nd)# Display the resultimg = gcv.utils.viz.cv_plot_bbox(frame, bounding_boxes[0], scores[0], class_IDs[0], class_names=net.classes)gcv.utils.viz.cv_plot_image(img)cv2.waitKey(1)
我们在退出脚本之前释放网络摄像头
cap.release()
cv2.destroyAllWindows()
结果
下载脚本以运行演示:
Download demo_webcam_run.py
在MacOS上使用pythonw运行脚本:
pythonw demo_webcam_run.py --num-frames 200
NOTE:在MacOS上,要启用matplotlib渲染,需要将python作为框架安装,请参见此处的指南
如果一切顺利,您应该能够从VOC数据集的可用类中检测对象。包括人、椅子和电视屏幕!
脚本的总运行时间:(0分0.000秒)
下载Python源码: demo_webcam.py
下载Jupyter notebook: demo_webcam.ipynb
原文链接:https://gluon-cv.mxnet.io/build/examples_detection/demo_webcam.html
GluonCV-物体检测教程-09.在网络摄像头上运行对象检测模型相关推荐
- OpenCV运行对象检测深度学习网络的实例(附完整代码)
OpenCV运行对象检测深度学习网络的实例 OpenCV运行对象检测深度学习网络的实例 OpenCV运行对象检测深度学习网络的实例 #include <fstream> #include ...
- 欧几里得距离网络_使用Tensorflow对象检测模型和OpenCV的社交距离和遮罩检测器...
将深度学习和计算机视觉相结合的隔离项目社会距离化 这个术语已席卷全球,正在改变着我们的生活方式.社交距离也称为"物理距离",是指在您自己与其他并非来自家庭的人之间保持安全的空间.随 ...
- AI队列长度检测:使用YOLO进行图像中的对象检测
目录 YOLO简介 创建和加载模型 预处理输入 获取边界框 下一步是什么? 下载源219 MB 在本系列的前几篇文章中,我们从头开始实现了对象检测.我们观察到从头训练模型需要大量的计算资源和时间.这些 ...
- AI队列长度检测:R-CNN用于使用Keras进行自定义对象检测
目录 神经网络 准备用于对象检测的数据集 使用Keras实现R-CNN 添加Keras回调 测试我们的模型 R-CNN的局限性 下一步是什么? 下载源4.2 KB 使用对象检测算法时,基本方法是尝试通 ...
- yolo人脸检测数据集_自定义数据集上的Yolo-V5对象检测
yolo人脸检测数据集 计算机视觉 (Computer Vision) Step by step instructions to train Yolo-v5 & do Inference(fr ...
- AI队列长度检测:使用YOLO进行视频中的对象检测
下载源219 MB 到目前为止,在本系列中,我们一直在处理静止图像数据.在本文中,我们将使用YOLO的基本实现来检测和计数视频序列中的人物. 让我们再次从导入所需的库开始. import cv2 im ...
- python 网络摄像头 检测行为_python,opencv:在网络摄像头上检测到对象的持续时间...
我能够跟踪我的网络摄像头返回的每个帧中的一个对象.我想记下物体第一次被检测到的时间,以及此后持续检测到的持续时间.网络摄像头将无限期打开,即直到用户输入关闭.在 由于用于检测对象的代码集位于while ...
- 一、针对工业领域线圈小目标检测,基于Yolov5s网络改进检测头实验及其检测效果对比
背景: 基于7分类实验(异物.点胶不良.剥锡不良.打点不良.线圈外变形,线圈表面交错.氧化 修改后的网络结构图 保留原Yolov5s的检测头结构,扩增一层160×160size的feature map ...
- anchor-free对象检测网络CornerNet详解
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转载自:OpenCV学堂 以前的对象检测网络 主要是两类对象检 ...
最新文章
- 新华三发布H3C Workspace数字工作空间:只需一张屏,程序员也能随时随地在云上写代码
- 机械硬盘旋转时间_详解硬盘转速5400转和7200转的区别
- 容器网络规范CNM vs. CNI
- 'cross-env' 不是内部或外部命令,也不是可运行的程序
- Linux 创建桌面应用程序图标 (Ubuntu 18.04 16.04、Linux Mint、Deepin、等均适用 )
- Django(part24)--查询数据
- HTML5前端开发学习路线建议,学习前端的必备知识点
- linux shell脚本EOF妙用
- 外设单独编址与统一编址
- i3、i5、i7有什么区别?
- 如何在golang http服务端程序中读取2次Request Body?(转)
- 60-60-020-API-Kafka Java consumer动态修改topic订阅
- oracle安装很慢,oracle11g安装后电脑启动很慢怎么解决
- liunx下用xshell实现 密钥 + 密码 登录
- 【逆向】修改软件标题(基于PE Explorer)
- 最小二乘法求拟合曲线(中线)的斜率和截距
- ios微信小程序下拉刷新怎么配_微信小程序之上拉加载与下拉刷新
- Encoded Strings I 模拟(2021.11.沈阳)
- 值得珍藏!生生世世受用的译文 《心经》
- 计算机风扇介绍,如何选择计算机风扇?