日常-记一次折腾海康威视联动Python、YOLOv8


一.前言

笔者为了开发新的PyQt5界面买了外接的网络摄像头,目的是实测拉流效果以及后面开发图像识别、机器学习程序做准备。
本篇将演示如何配置海康威视摄像头、联动Python环境下的YOLOv8实现实时图像识别。
本篇文章适合购买了摄像头做实验爱折腾的读者~

二.准备

  1. 电脑、需要做一些代码程序开发,我的电脑是AMD的处理器,无法使用GPU,建议大家用英特尔处理器的电脑。 Python
  2. 本次拿Python作为编程语言进行开发,主要是开发快 摄像头
  3. 这是本次实验的第二个硬件,笔者选择的是海康威视品牌摄像头,型号选择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实现实时图像识别,本篇博客很适合爱折腾的发烧友,如果觉得本篇能帮到您的话,给我点个赞吧!

在这里插入图片描述

内容概要:本文详细介绍了使用海康威视工业相机和YOLOv5进行目标检测的完整解决方案。首先,文章阐述了系统的整体架构,包括海康相机SDK用于图像采集,YOLOv5模型通过LibTorch在C++中进行推理,并将整个流程封装成DLL供上位机调用。接着,文中深入探讨了图像采集过程中需要注意的细节,如回调函数处理、触发模式配置以及BGR到RGB的格式转换。对于推理部分,则强调了DLL接口的设计、内存管理和性能优化措施,如双缓冲队列、GPU加速预处理和共享内存的使用。此外,还讨论了不同平台上(如MFC、Qt、LabVIEW)的具体调用方式及其注意事项。最后,针对常见的部署问题提供了具体的解决方案,如电磁干扰导致的相机断连、模型误检和内存泄漏等问题。 适合人群:从事工业视觉系统开发的技术人员,尤其是有一定C++编程基础并熟悉深度学习框架的研究者。 使用场景及目标:适用于需要在工业环境中实施高效、稳定的目标检测任务的企业和个人开发者。通过本方案,可以在保持高精度的同时提高处理速度,降低延迟,确保系统的可靠性和鲁棒性。 其他说明:文中不仅提供了详细的代码示例和技术细节,还分享了许多实践经验,帮助读者更好地理解和应用这套方案。同时,作者也指出了一些潜在的风险点和应对策略,使读者能够更加从容地面对实际项目中的挑战。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懷淰メ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值