地平线X3开发板开发环境搭建

地平线X3开发板开发环境搭建

文章目录

  • 地平线X3开发板开发环境搭建
    • 开发环境搭建
      • 安装CMAKE
      • 交叉编译工具
      • 下载编译AIEXPRESS
    • demo演示
      • 视频盒子使用HDMI显示
      • 使用摄像头演示
        • mipi摄像头
      • 使用rstp数据流
        • 无ipc摄像头情况

最近弄了一个地平线X3的开发板回来,看了一下它的测试环境和demo,搭建了一个简单的测试环境,测试了一下自带的face body等例程。以下是详细过程。

开发环境搭建

安装CMAKE

安装CMake 3.15+以上版本。安装方式如下:

wget https://github.com/Kitware/CMake/releases/download/v3.17.2/cmake-3.17.2.tar.gz \
    && tar -zxvf cmake-3.17.2.tar.gz \
    && cd cmake-3.17.2 \
    && ./bootstrap \
    && make \
    && sudo make install \
    && cd .. \
    && rm -rf cmake-3.17* 

安装完成之后,可以通过下面的方式来确定是否安装成功。

xxx@xxx:~/xxx-disk/horizon_x3$ cmake -version
cmake version 3.17.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).

交叉编译工具

下载并安装芯片交叉编译工具gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu

如果交叉编译工具链有更新,需同步修改工具链配置。具体文件:AIEXPRESS代码工程根目录下的CMakeLists.txt,

source/common/xstream/framework/CMakeLists.txt
source/common/xproto/framework/CMakeLists.txt。 

具体修改内容:

set(CMAKE_C_COMPILER /opt/${工具链目录名}/bin/aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER /opt/${工具链目录名}/bin/aarch64-linux-gnu-g++)

如果不想修改交叉编译的工具,可以直接使用如下的命令解压即可。

sudo tar -xvf gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu.tar.xz -C /opt/

下载编译AIEXPRESS

下载AIEXPRESS的源码

git clone https://github.com/HorizonRobotics-Platform/AI-EXPRESS.git

代码仓库提供了编译一键脚本build.sh,git clone代码后可直接编译。 编译时需要指定平台信息即可,具体编译如下:

本地环境可以直接编译:

cd AI-EXPRESS
bash build.sh x3

代码仓库提供了一键部署脚本deploy.sh,可将模型、可执行程序、库文件、配置文件以及测试图片整理到deploy部署目录中。ssh登录到开发板,通过scp命令,将deploy目录拷贝到x3sdb开发板上就可以运行人体结构化参考方案。

使用系统自带的工具设置IP地址,其中ip地址设置成你自己的ip地址。

hrut_ipfull s 192.168.1.100 255.255.255.0 192.168.1.1

通过网络拷贝东西到开发板中:

scp -r deploy [email protected]:/userdata

拷贝之后的结果如下图所示。

地平线X3开发板开发环境搭建_第1张图片

demo演示

视频盒子使用HDMI显示

运行视频盒子示例,需要使用HDMI显示。系统默认未开启HDMI显示功能,系统烧录成功后,可以参考如下方法,开启HDMI显示。

使用串口连接开发板,然后重启X3设备,重启后根据提示随意按任意键进入uboot模式。在uboot模式中敲入如下两个命令:

setenv bootargs earlycon console=ttyS0,921600 clk_ignore_unused video=hobot:x3sdb-hdmi kgdboc=ttyS0
saveenv

系统重启后,HDMI显示器上显示地平线LOGO,则说明HDMI显示设置成功。

使用摄像头演示

mipi摄像头

买了一个mipi摄像头,回来说是usb摄像头,害我搞了半天。下面这个图是mipi摄像头,并且dsi的位置也不要接错了。

其中face的演示效果如下图所示:

地平线X3开发板开发环境搭建_第2张图片

使用rstp数据流

rstp的demo名字叫video_box,其源码路径如下所示:

AI-EXPRESS/source/solution_zoo/video_box/src

关于配置信息说明:

video_box/configs/rtsp.json
video_box/configs/visualplugin_video_box.json

其中video_box/configs/rtsp.json实例如下:

{
  "channel_num": 1,//设置有几路输入信号
  "channel0": {
    "rtsp_link": "rtsp://192.168.1.108:555/test.264",//输入的网址
    "tcp": 1,//tcp字段表示传输协议,置1。使用rtsp数据流,使用tcp的方式去跑数据流,否则会花屏.
    "frame_max_size": 200,//200K
    "save_stream": 0
  },
  "channel1": {
    "rtsp_link": "rtsp://admin:[email protected]:554/0",
    "tcp": 0,
    "frame_max_size": 200,//200K
    "save_stream": 0
  },
  "channel2": {
    "rtsp_link": "rtsp://admin:[email protected]:554/0",
    "tcp": 1,
    "frame_max_size": 200,//200K
    "save_stream": 0
  },
  "channel3": {
    "rtsp_link": "rtsp://admin:[email protected]:554/0",
    "tcp": 0,
    "frame_max_size": 200,//200K
    "save_stream": 0
  }
}

video_box/configs/visualplugin_video_box.json实例如下:

{
  "auth_mode": 0,
  "display_mode": 0,//0:rtsp模式
  "user": "admin",
  "password": "123456",
  "data_buf_size": 3110400,
  "packet_size": 102400,
  "input_h264_filename": "test.264",//输入文件
  "local_forward": 1//0:远程ipc 1:本地转发
}
无ipc摄像头情况

视频盒子可使用本地264文件,实现文件转发功能。使用本地转发h264文件前,修改display_mode和local_forward配置。

display_mode字段 模式
0 rtsp模式
local_forward字段 模式
1 本地转发
0 远程IPC

目前支持一路和多路的本地转发功能,使用本地转发功能时,需要先修改deploy/video_box/config/rtsp.json中的url为:rtsp://ip:555/inputfilename。

inputfilename为deploy下的h264文件,例如x3 ip地址为10.64.35.193,默认h264文件为test.264,则url为 rtsp://10.64.35.193:555/test.264。

channel_num字段表示几路本地转发,如果只想使用1路本地转发,置1即可,目前最多支持4路。

tcp字段表示传输协议,置1。

使用rtsp数据流,使用tcp的方式去跑数据流,否则会花屏。需要修改两个文件:

video_box/configs/rtsp.json
video_box/configs/visualplugin_video_box.json
  • rtsp.json
vi video_box/configs/rtsp.json 

然后增加如下:

 "rtsp_link": "rtsp://192.168.1.108:555/test.264",

rtsp.json 修改之后的结果如下所示:

{
  "channel_num": 1,
  "channel0": {
    "rtsp_link": "rtsp://192.168.1.108:555/test.264",
    "tcp": 1,
    "frame_max_size": 200, // 200K
    "save_stream": 0
  },
  "channel1": {
    "rtsp_link": "rtsp://admin:[email protected]:554/0",
    "tcp": 0,
    "frame_max_size": 200, // 200K
    "save_stream": 0
  },
  "channel2": {
    "rtsp_link": "rtsp://admin:[email protected]:554/0",
    "tcp": 1,
    "frame_max_size": 200, // 200K
    "save_stream": 0
  },
  "channel3": {
    "rtsp_link": "rtsp://admin:[email protected]:554/0",
    "tcp": 0,
    "frame_max_size": 200, // 200K
    "save_stream": 0
  }
}
  • visualplugin_video_box.json
vi video_box/configs/visualplugin_video_box.json

然后修改video_box/configs/visualplugin_video_box.json配置中的display_mode,input_h264_filename和local_forward字段。

display_mode:0, 表示使用rtsp模式。

input_h264_filename:”test.264”,表示本地264文件名为test.264。

local_forward:1,表示开启视频盒子本地转发功能。

配置成功之后的效果如下:

{
  "auth_mode": 0,
  "display_mode": 0,
  "user": "admin",
  "password": "123456",
  "data_buf_size": 3110400,
  "packet_size": 102400,
  "input_h264_filename": "test.264",
  "local_forward": 1
}

效果图如下图所示:

地平线X3开发板开发环境搭建_第3张图片

你可能感兴趣的:(其他,地平线X3开发板开发环境)