专栏算法工具链多路视频分析盒子

多路视频分析盒子

carry2020-08-06
2039
4

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模块。

RTSP Client这里以开源live555项目的 testRTSPClient为基础进行开发实现根据配置文件进行多路拉流。这里有一个地方需要注意,如果将获取的裸码流直接保存成H264或者H265文件并不能直接被播放器播放。还缺少SPS、PPS数据头,每帧之间缺少start code(0x00 0x00 0x00 0x01)。获取SPS、PPS有两种方式,一种是调用live555的"MediaSubsession::fmtp_spropparametersets()"生成SPS、PPS信息;另一种是大多数的设备在发送IDR帧之前会先发送SPS、PPS信息。无论哪种方式,start code需要自己添加。

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”即可。

算法工具链
官方教程
+3
评论3
0/1000
  • HY
    Lv.1

    [12922.476135] hdmi: Cable Connected

    [12922.476640] hdmi: pinmux bt1120 output!

    [12922.477141] hdmi: warning: bt pins not config!

    [12922.503399] hdmi: HDMI Sink Detected

    报上面的信息 怎样解决呢

    2020-12-22
    0
    1
    • zhuo回复HY:
      默认显示方式为mipi lcd,hdmi显示需要手动在uboot下修改环境变量切换,切换命令如下:
      setenv bootargs earlycon console=ttyS0,921600 clk_ignore_unused video=hobot:x3sdb-hdmi kgdboc=ttyS0
      saveenv
      2020-12-30
      1
  • yanghangjun
    Lv.1
    部署包中视频源输入配置文件在:video_box/configs/rtsp.json

    根据环境配置,设置每路的rtsp码流。

    若开始4路,则需要设置ion大小为740M及以上。

    若ion大小为512M,则可以尝试运行2路试试

    2020-08-13
    0
    0
  • HY
    Lv.1

    新的镜像里没有sii9022a的驱动模块吗

    运行时报这样的错误:bt1120 to HDMI device:sii9022a is not exist!

    请问怎么解决呢

    2020-12-21
    0
    0