昇腾310P算力卡 10路1080p实时YOLOv8目标检测
测试基于Atlas 300I Duo的单310P3核心,实现了10路1080p视频的YOLOv8n实时检测,核心处理流程包含14个关键步骤,覆盖拉流、解码、推理、可视化到推流全链路。开发时需重点关注昇腾Device/Context管理及DVPP V2接口的使用规范,可参考官方Demo快速落地。
演示视频
https://www.bilibili.com/video/BV1rGidBEE8Q/
一、测试环境
| 设备/组件 | 型号/规格 | 备注 |
|---|---|---|
| 服务器 | S800K2 | - |
| 算力卡 | Atlas 300I Duo | 内置2个310P3核心,测试仅使用1个310P3 |
| 检测模型 | YOLOv8n | 基于COCO80数据集训练 |
| 视频规格 | 10路1080p实时流 | 输入为H264编码,输出为RTSP推流 |
二、核心处理流程
-
拉流:通过FFmpeg解封装,拉取1080P RTSP流(使用MP4文件推流模拟实时场景)
-
解码:多路解码手动分配通道号,输入H264流,解码输出NV21格式图像
-
LetterBox:对NV21图像等比放缩+居中处理,减少形变导致的检测精度损失
-
推理:逐帧对LetterBox处理后的NV21图像执行YOLOv8n推理
-
推理后处理:执行NMS(非极大值抑制),保存目标检测结果
-
格式转换(NV21→RGB):将解码后的NV21图像转换为RGB格式
-
数据下载:将RGB图像从算力卡内存下载到主机内存
-
可视化处理:在主机端根据推理结果,在RGB图像上画检测框、标注类别及置信度
-
数据上传:将标注后的RGB图像从主机上传回算力卡
-
图像放缩:对上传的RGB图像进行缩小,为拼接做准备
-
图像拼接:按指定布局拼接多路缩小后的图像,便于查看整体检测效果
-
格式转换(RGB→NV21):将拼接后的RGB图像转回NV21格式
-
编码:将NV21图像编码为H264格式,用于推流输出
-
推流:基于开源项目rtsp_demo封装H264为RTSP流,支持外部拉流
三、播放方式
在PC端使用VLC播放器,输入RTSP地址拉流即可查看10路视频的检测结果。
四、昇腾硬件开发注意事项
1. 上下文管理
-
使用CANN接口实现视频/图像的硬件加速处理
-
需重点管理昇腾Device与Context的关系,多线程/多算力卡场景下需注意上下文切换
2. 接口版本
-
解码使用图像视频处理V2接口,需注意V1与V2版本的功能差异
3. 参考Demo
五、性能指标(单310P3核心)
| 资源类型 | 使用率 | 备注 |
|---|---|---|
| CPU | 425% | 满载4800% |
| AI Core | 28% | - |
| AI CPU | 6% | - |
| Ctrl CPU | 22% | - |
| 解码(DEC) | 3% | - |
| 图像处理(VPC) | 12% | - |
| 编码(ENC) | 3% | - |
总结
-
测试基于Atlas 300I Duo的单310P3核心,实现了10路1080p视频的YOLOv8n实时检测,核心处理流程包含14个关键步骤,覆盖拉流、解码、推理、可视化到推流全链路。
-
开发时需重点关注昇腾Device/Context管理及DVPP V2接口的使用规范,可参考官方Demo快速落地。
更多推荐



所有评论(0)