1 介绍
多路视频分析盒子方案采用地平线X3处理器,支持多达8路视频流分析。根据模型能力配置,可以实现人头、人体、人脸检测,人体骨骼关键点提取,人脸抓拍,人脸识别等多种功能。对于开发者来说,通过替换深度神经网络模型可以快速实现自己定义的功能。
2 方案设计

图1 多路视频分析盒子整体方案
如图1所示,X3多路视频分析盒子与前端图像采集设备如IPC通过网口进行连接。前端采集设备采集实时视频并压缩编码,X3多路视频分析盒子通过拉取图像采集设备的RTSP码流获得视频输入。

图2 多路视频分析盒子内部数据流
图2是X3多路视频分析盒子内部数据流向示意图。首先通过RTSP Client获取前端视频采集设备发送的码流,然后对码流进行解码获得NV12格式的图像,接着对该NV12进行裁剪以满足模型输入需要,对裁剪后的NV12图像做金字塔下缩放,最后将金字塔图像送给smart plugin进行智能分析得到结构化数据。整个流程涉及X3的几个功能模块,其中Decode会用到VPS模块,Crop+Pym会用到IPU模块,而smart plugin会使用到BPU模块。
Decode可以根据需要配置H264解码或者H265解码,也可以根据需要配置只解码I帧和P帧,或者只解码I帧以减少带宽占用减轻压力。
Crop+Pym这里为什么需要对图像进行剪裁?对于1080P分辨路的码流,Decode解码出来的图像并非1920*1080大小,而是1920*1088,而在涉及模型的时候一般认为输入的大小,是1920*1080或者960*540。为了匹配模型的输入分辨率限制这里对解码出来的图片进行剪裁和金字塔缩放。金字塔缩放比较灵活,基础层宽、高分辨率均是上一层的一半,基础层之间还有三个可配置分辨率的层。
Smart是负责对图片进行处理获得结构化数据,从图2可知目前每一路的视频输入都是对应一个独立的samrt处理,这意味着可以根据实际需要每一路做不同的处理方式,比如有的用来做人头、人脸、人体检测,有的用来做分割,等等。为了直观显示智能数据处理结果,这里将处理后的图像直接通过VOT模块输出至HDMI,将1080P分辨的显示器连接到开发板上即可看见结果。
3 运行方式
在ai-express-release包中运行“bash build.sh x3 && bash deploy.sh”进行编译和打包,命令成功执行后会生成deploy部署包。
配置文件位置为video_box/video_box/configs/rtsp.json

channel num是需要的总路数,下面channel0-3位对应的resp地址。
在板子上运行deploy包内的run.sh脚本,“sh run.sh video_box x3dev/x3svb”即可。



