演示视频
https://www.bilibili.com/video/BV1rGidBEE8Q/

一、测试环境

设备/组件 型号/规格 备注
服务器 S800K2 -
算力卡 Atlas 300I Duo 内置2个310P3核心,测试仅使用1个310P3
检测模型 YOLOv8n 基于COCO80数据集训练
视频规格 10路1080p实时流 输入为H264编码,输出为RTSP推流

二、核心处理流程

  1. 拉流:通过FFmpeg解封装,拉取1080P RTSP流(使用MP4文件推流模拟实时场景)

  2. 解码:多路解码手动分配通道号,输入H264流,解码输出NV21格式图像

  3. LetterBox:对NV21图像等比放缩+居中处理,减少形变导致的检测精度损失

  4. 推理:逐帧对LetterBox处理后的NV21图像执行YOLOv8n推理

  5. 推理后处理:执行NMS(非极大值抑制),保存目标检测结果

  6. 格式转换(NV21→RGB):将解码后的NV21图像转换为RGB格式

  7. 数据下载:将RGB图像从算力卡内存下载到主机内存

  8. 可视化处理:在主机端根据推理结果,在RGB图像上画检测框、标注类别及置信度

  9. 数据上传:将标注后的RGB图像从主机上传回算力卡

  10. 图像放缩:对上传的RGB图像进行缩小,为拼接做准备

  11. 图像拼接:按指定布局拼接多路缩小后的图像,便于查看整体检测效果

  12. 格式转换(RGB→NV21):将拼接后的RGB图像转回NV21格式

  13. 编码:将NV21图像编码为H264格式,用于推流输出

  14. 推流:基于开源项目rtsp_demo封装H264为RTSP流,支持外部拉流

三、播放方式

在PC端使用VLC播放器,输入RTSP地址拉流即可查看10路视频的检测结果。

四、昇腾硬件开发注意事项

1. 上下文管理

2. 接口版本

3. 参考Demo

功能 Demo地址
解码 https://gitee.com/ascend/samples/tree/master/cplusplus/level1_single_api/7_dvpp/vdec_sample
图像处理 https://gitee.com/ascend/samples/tree/master/cplusplus/level1_single_api/7_dvpp/vpc_sample
YOLOv8推理 https://gitee.com/cumt/ascend-yolov8-sample/tree/master

五、性能指标(单310P3核心)

资源类型 使用率 备注
CPU 425% 满载4800%
AI Core 28% -
AI CPU 6% -
Ctrl CPU 22% -
解码(DEC) 3% -
图像处理(VPC) 12% -
编码(ENC) 3% -

总结

  1. 测试基于Atlas 300I Duo的单310P3核心,实现了10路1080p视频的YOLOv8n实时检测,核心处理流程包含14个关键步骤,覆盖拉流、解码、推理、可视化到推流全链路。

  2. 开发时需重点关注昇腾Device/Context管理及DVPP V2接口的使用规范,可参考官方Demo快速落地。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐