python+opencv实时视频目标检测
时间:2022-07-26
本文章向大家介绍python+opencv实时视频目标检测,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
python+opencv实时视频目标检测
opencv环境
1、访问Python Extension Packages for Windows,下载python对应版本的opencv。
比如小编下载的是opencv_python-3.3.0+contrib-cp36-cp36m-win_amd64.whl,cp36表示Python是3.6版本,win_amd64是表示安装的python是64bit的,+contrib表示包括contrib包。
2、下载好后,把它放到C盘中,执行安装命令:
pip install C:opencv_python-3.3.0+contrib-cp36-cp36m-win_amd64.whl
运行代码
修改
从本地获取。
# vs = VideoStream(src=0).start()
# vs =cv2.VideoCapture('C:\Users\voidking\Desktop\real-time-object-detection\test_video.flv')
vs =cv2.VideoCapture('./test_video.flv')
# grab the frame from the threaded video stream and resize it
# to have a maximum width of 400 pixels
# frame = vs.read()
# frame = imutils.resize(frame, width=400)
# grab the frame from the threaded video file stream
(grabbed,frame) = vs.read()
# if the frame was not grabbed, then we have reached the end
# of the stream
if not grabbed:
break
frame = imutils.resize(frame, width=800)
运行
推荐使用命令:
python real_time_object_detection.py -p ./MobileNetSSD_deploy.prototxt.txt -m ./MobileNetSSD_deploy.caffemodel
或者,指定绝对路径,假设项目目录为C:UsersvoidkingDesktopreal-time-object-detection
,那么命令如下:
python real_time_object_detection.py -p "C:UsersvoidkingDesktopreal-time-object-detectionMobileNetSSD_deploy.prototxt.txt" -m "C:UsersvoidkingDesktopreal-time-object-detectionMobileNetSSD_deploy.caffemodel"
进阶修改
我们看到,prototxt和model都是指定的,那我们的视频文件也用这种方式指定,就更加友好一点。
# construct the argument parse and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-p", "--prototxt", required=True,
help="path to Caffe 'deploy' prototxt file")
ap.add_argument("-m", "--model", required=True,
help="path to Caffe pre-trained model")
ap.add_argument("-c", "--confidence", type=float, default=0.2,
help="minimum probability to filter weak detections")
args = vars(ap.parse_args())
我们插入一行:
ap.add_argument("-v", "--video", required=True,
help="path to Caffe video file")
然后在初始化视频流时,修改为:
vs =cv2.VideoCapture(args["video"])
运行命令修改为
python real_time_object_detection.py -p ./MobileNetSSD_deploy.prototxt.txt -m ./MobileNetSSD_deploy.caffemodel -v ./test_video.flv
运行效果
源码分享
https://gitee.com/lyc96/real-time_video_target_detection
- ExtJs学习笔记(24)-Drag/Drop拖动功能
- 人工智能尚处探索阶段,为何我们对此异常焦虑
- ExtJs学习笔记(22)-XTemplate + WCF 打造无刷新数据分页
- 同步服务器系统时间操作记录
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(安装Windows虚拟机)-(4)
- ExtJs学习笔记(11)_Absolute布局和Accordion布局
- ExtJs学习笔记(9)_Window的基本用法
- DateTime在ExtJs中无法正确序列化的问题
- ELK实时日志分析平台环境部署--完整记录
- 梳理Linux下OSI七层网络与TCP/IP五层网络架构
- 字符编码-使用c#研究
- iframe高度自适应的IE解决方案
- javascript读写本机文本文件
- 崔立鹏:腾讯云为知识竞技游戏提供解决方案
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法