Atlas200DK 部署 yolov11 调用海康威视摄像头实现实时目标检测

Atlas200DK 部署 yolov11 调用海康威视摄像头实现实时目标检测

一、参考资料

  • 海康威视网络摄像机操作手册(官方文档)

  • 海康威视IPC摄像头rtsp接入 - 博客园

  • 华为昇腾Atlas200DK官方开发指南

  • yolov11 官方源码(ultralytics/yolov11 at v6.1)

  • 昇腾CANN工具包开发文档

  • Atlas200DK 网络配置官方教程

二、配置说明

1. 边缘计算设备:Atlas200DK

Atlas200DK 是华为昇腾系列边缘计算板卡,主打低功耗、高性能的AI推理场景。使用前需完成基础配置:

  • 硬件连接:连接电源、网线(用于连接摄像头)、串口线(用于初始配置)、显示器(可选,方便调试)。

  • 系统环境:预装 Ubuntu 18.04 系统,已安装昇腾驱动(Driver)、CANN 工具包(推荐 5.1.RC2 及以上版本)、MindStudio(可选,用于远程开发调试)。

  • 核心依赖:Python 3.7+、PyTorch 1.8+(需适配昇腾环境)、OpenCV 4.5+、昇腾 Python API(ascend-toolkit)。

2. yolov11 算法适配

由于 Atlas200DK 依赖昇腾硬件的推理能力,需对 yolov11 模型进行适配改造:

  • 源码获取:从 GitHub 下载 yolov11 v6.1 版本源码(与原博客版本一致,保证兼容性)。

  • 模型转换:yolov11 原始.pt 模型需转换为 Atlas200DK 支持的 OM 模型(昇腾离线推理模型),需通过 CANN 工具包的 atc 工具完成。

  • 环境配置:在 Atlas200DK 上创建 Conda 环境,安装依赖:

    Bash 复制代码
    conda create -n yolov11_atlas python=3.7
    conda activate yolov11_atlas
    pip install torch==1.8.1 torchvision==0.9.1
    pip install opencv-python numpy pandas matplotlib
    pip install ascend-cann-sdk  # 昇腾Python API

3. 海康威视摄像头

  • 产品型号:iDS-2DY9440lX-A/SP T5(与原博客一致,其他海康网络摄像头通用)。

  • 硬件连接:仅需连接电源和网线,网线另一端接入 Atlas200DK 的网口(eth0)。

三、Atlas200DK 与海康威视摄像头连接

1. 摄像头激活(Windows 本机预处理)

Atlas200DK 直接激活摄像头操作不便,建议先在 Windows 电脑上完成摄像头激活和网络配置,步骤与原博客一致:

  • 方法选择:使用 SADP 软件激活(海康官方工具,支持设备检索和参数配置)。

  • 下载安装 SADP 软件后,用网线连接 Windows 电脑和摄像头,打开软件即可检索到未激活设备。

  • 激活配置:设置管理员密码(8-16位,需包含数字、字母、特殊字符中至少两种),修改摄像头 IP 地址(建议设置为 <192.168.1.110>,便于后续统一网段)。

  • 电脑 IP 配置:打开 Windows 控制面板 → 网络和共享中心 → 以太网属性 → IPv4 设置,手动设置 IP 为 <192.168.1.65>(与摄像头同一网段,后一位不同),子网掩码 <255.255.255.0>。

  • 验证激活:打开浏览器,输入摄像头 IP(<192.168.1.110>),输入用户名(admin)和设置的密码,登录成功则激活完成。

2. Atlas200DK 网络配置(关键步骤)

需确保 Atlas200DK 与摄像头在同一网段,才能正常访问 RTSP 流:

  • 远程连接 Atlas200DK:通过串口工具(如 SecureCRT)或 MindStudio 远程连接板卡,登录系统。

  • 配置有线网络:修改 eth0 网口的 IPv4 地址,与摄像头 IP 同一网段:

    Bash 复制代码
    # 查看网口名称
    ifconfig
    # 编辑网络配置文件
    sudo vi /etc/network/interfaces
  • 在配置文件中添加以下内容:

    Plain 复制代码
    auto eth0
    iface eth0 inet static
    address 192.168.1.70  # 与摄像头IP前三位一致,后一位不同
    netmask 255.255.255.0
    gateway 192.168.1.1  # 可选,根据路由器配置
  • 重启网络服务生效:

    Bash 复制代码
    sudo /etc/init.d/networking restart
  • 验证连通性:在 Atlas200DK 终端 ping 摄像头 IP,能 ping 通则网络连接正常:

    Bash 复制代码
    ping 192.168.1.110

四、yolov11 模型转换与实时检测配置

1. yolov11 模型转换(Atlas200DK 特有步骤)

Atlas200DK 不直接支持 PyTorch 的.pt 模型,需通过 atc 工具转换为 OM 模型:

  • 第一步:将 yolov11 的.pt 模型导出为 ONNX 模型。在 yolov11 源码根目录执行:

    Bash 复制代码
    python export.py --weights yolov11s.pt --include onnx --imgsz 640 640

    执行成功后,会生成 yolov11s.onnx 文件。

  • 第二步:编写 ATC 转换配置文件(如 yolov11s_atc.cfg),内容如下:

    Plain 复制代码
    [common]
    input_format=NCHW
    input_shape="images:1,3,640,640"
    output=yolov11s_om
    log=debug
    [aipp]
    aipp_mode=static
    mean_chn_0=0
    mean_chn_1=0
    mean_chn_2=0
    min_chn_0=0
    min_chn_1=0
    min_chn_2=0
    var_reci_chn_0=1/255.0
    var_reci_chn_1=1/255.0
    var_reci_chn_2=1/255.0
  • 第三步:执行 ATC 转换命令(需配置 CANN 环境变量):

    Bash 复制代码
    source /usr/local/Ascend/ascend-toolkit/set_env.sh
    atc --model=yolov11s.onnx --config=yolov11s_atc.cfg --framework=5 --output=./model --soc_version=Ascend310

    转换成功后,在 ./model 目录下生成 yolov11s_om.om 模型文件。

2. 配置 RTSP 流地址

海康威视摄像头的 RTSP 地址格式通用,需替换为实际的用户名、密码和摄像头 IP:

  • 格式:rtsp://用户名:密码@摄像头IP/Streaming/Channels/2

  • 示例:rtsp://admin:YourPassword123@192.168.1.110/Streaming/Channels/2

  • 验证 RTSP 流:可在 VLC 播放器中输入该地址,能正常播放监控画面则说明地址有效。

3. 修改 yolov11 检测代码适配 Atlas200DK

需修改 yolov11 源码的 detect.py,适配 OM 模型推理和 Atlas 硬件:

  • 替换模型加载逻辑:将原 PyTorch 模型加载改为昇腾 OM 模型加载,使用昇腾 Python API:

    Python 复制代码
    # 原模型加载代码(注释)
    # model = DetectMultiBackend(weights, device=device, dnn=dnn)
    # 新增 Atlas OM 模型加载代码
    from ascend.cann.python import acl
    acl.init()
    device_id = 0
    context, ret = acl.rt.create_context(device_id)
    # 加载 OM 模型
    model_path = "./model/yolov11s_om.om"
    model_id, ret = acl.mdl.load_from_file(model_path)
    model_desc = acl.mdl.create_desc()
    ret = acl.mdl.get_desc(model_desc, model_id)
  • 修改数据源输入:将 --source 参数默认值改为摄像头 RTSP 地址:

    Python 复制代码
    parser.add_argument('--source', type=str, default='rtsp://admin:YourPassword123@192.168.1.110/Streaming/Channels/2', help='file/dir/URL/glob, 0 for webcam')
  • 适配推理逻辑:将图像预处理后的数据传入 OM 模型进行推理,解析输出结果(需根据 yolov11 输出格式调整后处理代码)。

五、常见报错与解决方案

1. OpenCV 相关报错(与原博客类似)

报错信息:

Plain 复制代码
error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support.

解决方案:

Bash 复制代码
# 卸载冲突的 OpenCV 版本
sudo apt-get install libgtk2.0-dev pkg-config
pip uninstall opencv-python opencv-python-headless
# 安装适配 Atlas 环境的 OpenCV
pip install opencv-python==4.5.5.62

2. cv2 无 setNumThreads 属性报错

报错信息:

Plain 复制代码
AttributeError: module 'cv2' has no attribute 'setNumThreads'

解决方案:

Bash 复制代码
pip install --upgrade opencv-python

或直接注释 detect.pycv2.setNumThreads(0) 该行代码(Atlas 环境中无需该配置)。

3. 模型转换失败报错

报错信息:

Plain 复制代码
ATC error: Input shape does not match model requirement

解决方案:

  • 检查 ONNX 模型的输入维度与 ATC 配置文件中的 input_shape 一致(均为 1,3,640,640)。

  • 确保导出 ONNX 模型时 imgsz 参数与转换时一致。

4. 摄像头连接超时

报错信息:

Plain 复制代码
RTSP stream can not be opened

解决方案:

  • 确认 Atlas200DK 与摄像头在同一网段(IP 前三位相同)。

  • 检查摄像头 IP 未被占用,可通过 SADP 软件重新确认设备在线状态。

  • 关闭 Atlas200DK 防火墙,避免端口拦截:

    Bash 复制代码
    sudo ufw disable

六、其他注意事项

1. 网络冲突问题

与原博客类似,Atlas200DK 同时连接 WiFi 和有线网时,若两者 IP 网段一致(如均为 192.168.1.x),会导致 WiFi 断开。解决方案:

  • 修改有线网(eth0)IP 网段,例如 WiFi 为 192.168.110.x,有线网设置为 <192.168.111.70>,摄像头 IP 改为 <192.168.111.110>,保持三者同一网段。

2. 性能优化建议

  • 降低推理分辨率:将 imgsz 从 640 改为 480,可提升帧率(适合实时检测场景)。

  • 关闭不必要的后处理:如无需保存检测结果,可注释 save_txtsave_conf 等相关代码。

  • 调整置信度阈值:将 conf_thres 从 0.25 提高到 0.3,减少误检测,提升推理速度。

3. 检测结果展示

运行修改后的 detect.py 脚本:

Bash 复制代码
python detect.py --weights ./model/yolov11s_om.om --device 0

成功运行后,终端会输出实时检测结果,示例如下:

Plain 复制代码
C0: 544x640 1 bottle (0.78), 1 potted plant (0.35), 1 vase (0.29), Done. (0.042s)
C0: 544x640 1 bottle (0.79), 1 potted plant (0.34), 1 vase (0.28), Done. (0.038s)

若连接了显示器,可通过 OpenCV 窗口实时查看带检测框的监控画面(需确保 OpenCV 环境配置正常)。

总结

本文详细介绍了 Atlas200DK 边缘计算设备部署 yolov11 算法、调用海康威视网络摄像头实现实时目标检测的完整流程,核心关键点包括:摄像头激活与网络配置、Atlas200DK 环境搭建与模型转换、yolov11 代码适配与报错解决。相比 Jetson 设备,Atlas200DK 需重点关注 OM 模型转换和昇腾 API 适配,只要严格遵循步骤配置,即可实现低延迟、高准确率的实时检测。如果在操作过程中遇到问题,可参考昇腾官方论坛或海康威视技术支持获取进一步帮助。

相关推荐
NAGNIP3 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab5 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab5 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP8 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年8 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼9 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS9 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区10 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈10 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang11 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx