刚拿到地平线X3开发板时,第一感觉就是这块板子做工相当扎实。板载的BPU(Brain Processing Unit)是地平线自主研发的AI加速核心,专门为边缘计算场景优化过。我手上这块是标准版,接口很丰富:两个MIPI-CSI摄像头接口、HDMI输出、千兆网口、USB3.0,还有40pin的扩展GPIO,做多模态AI应用完全够用。
开发板默认已经烧录了Ubuntu 18.04系统,通电后通过串口终端登录,用户名root,密码为空。建议第一次使用时先运行hrut_somstatus命令查看硬件信息,确认BPU状态正常。这里有个小坑要注意:开发板的串口默认波特率是921600,比常见设备的115200高很多,如果用Putty等工具连接时出现乱码,记得检查波特率设置。
官方推荐使用Ubuntu 18.04作为宿主机系统,我实测Ubuntu 20.04也能用,但需要额外处理一些依赖冲突。首先安装必备工具:
bash复制sudo apt update
sudo apt install -y git make gcc g++ cmake unzip
交叉编译工具链建议用官方提供的gcc-linaro-6.5.0,解压到/opt目录:
bash复制sudo tar -xvf gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu.tar.xz -C /opt/
然后设置环境变量,我习惯在~/.bashrc里添加:
bash复制export PATH=/opt/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin:$PATH
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
官方AI-EXPRESS仓库包含了人体检测、人脸识别等典型AI应用的完整示例:
bash复制git clone https://github.com/HorizonRobotics-Platform/AI-EXPRESS.git
cd AI-EXPRESS
编译前需要修改两处关键配置:
一键编译命令:
bash复制bash build.sh x3
编译过程中可能会遇到内存不足的问题,解决方法有两个:
编译完成后,deploy目录会生成完整的部署包。通过scp传到开发板:
bash复制scp -r deploy root@192.168.1.100:/userdata
登录开发板后运行:
bash复制cd /userdata/deploy
./run.sh face_body_solution
这里有个性能优化技巧:修改configs/face_body.json中的frame_work_num参数可以调整并行处理的帧数,默认是4,在X3上可以尝试调到6-8获得更高吞吐量。
接上MIPI摄像头后,需要先确认设备节点:
bash复制ls /dev/video*
修改configs/mipi_camera.json中的设备路径,例如:
json复制{
"camera_type": "mipi",
"device": "/dev/video0",
"width": 1920,
"height": 1080
}
运行命令:
bash复制./run.sh mipi_camera_solution
如果遇到图像花屏,可能是摄像头时钟频率不匹配,尝试在uboot中调整sensor相关参数:
bash复制setenv sensor0_mclk 24000000
saveenv
reset
对于网络摄像头,修改rtsp.json配置:
json复制{
"channel_num": 1,
"channel0": {
"rtsp_link": "rtsp://admin:password@192.168.1.10:554/stream1",
"tcp": 1,
"frame_max_size": 200
}
}
启动命令:
bash复制./run.sh video_box
实测发现RTSP延迟主要来自网络传输,可以在visualplugin_video_box.json中调小packet_size到51200,能降低约30%的延迟。
开发板内置了性能监控工具:
bash复制hrt_model_exec perf --stat
输出示例:
code复制BPU利用率: 78%
DDR带宽: 1.2GB/s
帧率: 25.3fps
官方提供的模型已经是量化后的int8版本,如果部署自定义模型,建议使用地平线提供的量化工具链:
bash复制hb_mapper makertbin --config quant_config.yaml --model-type onnx
量化配置关键参数:
yaml复制model_parameters:
input_type: rgb
input_layout: NHWC
calibration_parameters:
cal_data_dir: ./calibration_data
preprocess_on: True
开发板内存有限(通常2GB),长时间运行可能出现OOM。安装valgrind进行检测:
bash复制apt install valgrind
valgrind --leak-check=full ./your_program
常见问题多是未释放的X3框架中的hobot_handle对象,需要在程序退出前调用release接口。