文章目录
一.前言
笔者为了开发新的PyQt5界面买了外接的网络摄像头,目的是实测拉流效果以及后面开发图像识别、机器学习程序做准备。
本篇将演示如何配置海康威视摄像头、联动Python环境下的YOLOv8实现实时图像识别。
本篇文章适合购买了摄像头做实验爱折腾的读者~
二.准备
- 电脑、需要做一些代码程序开发,我的电脑是AMD的处理器,无法使用GPU,建议大家用英特尔处理器的电脑。 Python
- 本次拿Python作为编程语言进行开发,主要是开发快 摄像头
- 这是本次实验的第二个硬件,笔者选择的是海康威视品牌摄像头,型号选择DS-2CD3T即可,我买的是二手DC12V电源供电的版本,大家可以根据自己情况选择DC供电或者POE供电版本,这里我贴一下两者区别:
摘自百度
给大家看下我买的摄像头,成色定义85新吧,53元,没质量问题就行,二手的没啥要求。
三.折腾
1.摄像头接入到内网
本款摄像头已经初始化还原,摄像头通电后默认内网地址为192.168.1.64,如果我们路由器网段和摄像头在一个网段,那么不需要单独设置内网地址,如果和我一样不在一个网段,那么需要设置内网地址了。
具体来说是:拿一根网线把摄像头和电脑连接起来,更改电脑的以太网IP地址为192.168.1.xxx,
使用快捷键win+r打开运行
输入ncpa.cpl
打开网络连接界面:
我这里设置的是192.168.1.10
当心!!!这里点击确定后,如果出现了下面的弹窗
可以这样设置以太网IP和子网掩码地址:
首先“以管理员身份打开命令提示符”
然后输入
netsh interface ip set address "以太网" static 192.168.1.10 255.255.255.0
然后按下回车就好了~
通过上面的操作我们的电脑就和摄像头在同一个内网了。
2.配置摄像头
1.观看实时画面
在浏览器打开192.168.1.64
到摄像头的后台页面,首次打开会引导你设置用户名和密码,我这里就略过了,之后打开这个地址都是下图的界面了。
使用设置好的用户名和密码登录后看到下面界面
为什么看不到画面呢?这需要我们更换浏览器,这里使用edge浏览器,除了安装插件之外,还有个关键步骤:切换到兼容模式
然后就看到画面啦,这里我遮挡了,大家按照这个步骤操作就能成!
2.将摄像头并入内网
我的路由器是192.168.99.xxx网段的,这需要我们调整摄像头IP地址到我们路由器的局域网中,具体操作是:摄像头后台-配置-网络-基本配置-TCP/IP,具体见下图
在这里配置好IPv4的地址、子网掩码、网关后点击保存,这时候断掉摄像头与电脑连接的网线,将摄像头接入到路由器即可(PS:一般是摄像头接录像机,录像机接路由器,我这里为了方便实验,主要是为了节省成本就没买录像机,也没必要)
注意设置的IP地址不要和内网其他设备的IP冲突,建议登录到路由器后台查看所有设备的IP
网线接路由器任意一个wan口即可,记得接上dc12v电源,这时候就能通过内网静态地址管理摄像头了。
输入我们设置的http://192.168.99.200/
验证一下,OK没问题,摄像头后台正常打开
3.配置推流参数
海康威视的摄像头在运行时,会推出两个流地址,分别是主码流和子码流
主码流我是这么配置的:
下图为子码流配置:
3.拉流测试
大家可以自行下载VLC软件,这个软件可以帮我们很方便的测试拉流效果。
VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影音光盘及各类流式协议。它也能作为unicast或multicast的流式服务器在IPv4或IPv6的高速网络连接下使用。它融合了FFmpeg计划的解码器与libdvdcss程序库使其有播放多媒体文件及加密DVD影碟的功能。
拉流地址的规则为:
rtsp://username:password@<address>:<port>/streaming/channels/<id>
比如我的拉流地址就是:
rtsp://admin:password@192.168.99.200:554/h265/ch1/main/av
具体操作方法:打开VLC播放器-点击“媒体”-打开网络串流
选择“网络”-输入流地址,点确定
然后就能看到画面了~证明我们拉流成功了
四.对接Python、YOLOv8进行实时图像识别
1.简介
本次实验目的主要是针对摄像头传来的流地址中的画面里的物体进行识别,主要是通过YOLOv8来实现,YOLOv8需要Python环境,大家可以自行搜索安装Python,博主这里使用的是Python3.8,为什么没用Python3.12、Python3.13呢?目的是为了稳定测试。
这里介绍一下YOLOv8
YOLOv8是ultralytics公司在 2023 年 1月 10 号开源的,支持全范围的视觉AI任务,包括分类、检测、分割、姿态估计和跟踪。它只是一个算法框架(在github库的名字是ultralytics),这个框架支持以往所有版本的YOLO,并且能够在CPU到GPUs不同的硬件平台上运行。
Ultralytics官网
2.环境搭建
这里认为大家已经安装改好了Python
大家在cmd控制台中输入下面命令安装ultralytics
pip install ultralytics
这样就安装好了
3.代码测试
新建一个py脚本输入下面三行代码,执行
from ultralytics import YOLO
# 加载模型
model = YOLO("yolov8n.pt")
# 运行推理
results = model("rtsp://admin:xxxx@192.168.99.200:554/h265/ch1/main/av", show=True)
运行效果如图
哈哈 我找来了朋友一起来搭建这个实验环境~
五.总结
本次和大家分享我折腾海康威视摄像头硬件,通过撰写Python脚本配合YOLOv8实现实时图像识别,本篇博客很适合爱折腾的发烧友,如果觉得本篇能帮到您的话,给我点个赞吧!