地平线旭日X3开发板基于MIPI Camera的目标检测 web 端展示调试记录

终于将MIPI Camera在web端显示出来了,

其实很简单的事情,但是因为一个网络的问题,自己研究了好几天,

查遍了论坛所有帖子,最后还是在地平线专家们的指导下,发现问题所在。

言归正传,将自己的过程记录下来。

在系统正常启动,串口登录之后,

想要在web端显示,需要以下准备工作

1.  确认摄像头F37正确接到开发板上

MIPI摄像头

开发板提供1路MIPI CSI接口(接口2),可实现MIPI摄像头的接入。

目前开发板配件提供了2种规格的摄像头模组,以满足不同用户的功能需求。

模组型号、规格如下:

序号Sensor分辨率FOVI2C 设备地址1GC4663400WH:104 V:70 D:1130x292JXF37200WH:62 V:37 D:680x40

摄像头模组通过24pin异面FPC排线跟开发板连接,注意排线两端蓝面向上插入连接器

重要提示:严禁在开发板未断电的情况下插拔摄像头,否则非常容易烧坏摄像头模组。

以JXF37摄像头模组为例,安装完成后如下图:

安装完成后,用户可以通过i2cdetect命令确认模组I2C地址能否正常检测到。

如检测不到,用户需要检查FPC排线连接是否正常。

成功探测到I2C地址时,log打印如下所示:

# 首先使能sensor的24MHz主时钟
sunrise@ubuntu:~# sudo bash -c "echo 1 > /sys/class/vps/mipi_host0/param/snrclk_en"
sunrise@ubuntu:~# sudo bash -c "echo 24000000 > /sys/class/vps/mipi_host0/param/snrclk_freq"
# 执行 i2cdetect 命令探测, 其中显示的 40 即F37这颗sensor的i2c设备地址
sunrise@ubuntu:~# sudo i2cdetect -y -r 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

2.  确认PC可以通过网络访问开发板(以WIFI为例)

2.1 连接WFI

扫描wifi:

sudo nmcli device wifi rescan

列出WIFI列表:

nmcli device wifi list

连接WiFi:

sudo wifi_connect "wifi名" "密码"

2.2  SSH远程登录

用户在PC机上,可以通过SSH连接实现开发板命令行的远程登录。S

SH连接的创建方式,主要有终端软件、PC机命令行两种方式。

下面介绍两种连接方法的创建步骤。

终端软件
目前常用终端工具有PuttySecureCRTMobaXterm等,用户可根据自身使用习惯来选择。不同工具的端口配置流程基本类似,下面以MobaXterm为例,介绍新建SSH连接过程:

  • 打开MobaXterm工具,点击Session,然后选择SSH
  • 输入开发板IP地址,例如192.168.1.10
  • 选中specify username,输入sunrise
  • 点击OK后,输入用户名、密码即可完成登录

3.  TogetherROS及ROS2 package安装

3.1 TogetherROS通过DEB包安装

前提:

  • 已完成2.1章节环境准备工作
  • 旭日X3派能够正常访问互联网
  • 旭日X3派能够远程ssh

注意:这里使用的旭日X3派IP为10.64.61.241,安装时需要根据自己的旭日X3派IP进行替换

登录旭日X3派

ssh root@10.64.61.241

安装HHP.deb包,sudo apt install hhp

root@ubuntu:~# sudo apt install hhp
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  hhp
0 upgraded, 1 newly installed, 0 to remove and 52 not upgraded.
Need to get 384 MB of archives.
After this operation, 512 MB of additional disk space will be used.
Get:1 http://42.62.85.28/ubuntu-ports focal/main arm64 hhp arm64 1.0.1 [384 MB]
Fetched 384 MB in 6min 43s (954 kB/s)                                          
Selecting previously unselected package hhp.
(Reading database ... 110406 files and directories currently installed.)
Preparing to unpack .../archives/hhp_1.0.1_arm64.deb ...
Unpacking hhp (1.0.1) ...
Setting up hhp (1.0.1) ...
Generating locales (this might take a while)...
  en_US.ISO-8859-1... done
  en_US.UTF-8... done
Generation complete.

查看/opt目录下文件

root@ubuntu:/userdata# ls /opt/
tros

可以看到HorizonHobotPlatform(HHP)已安装在/opt目录下

注意:安装软件时,执行命令sudo apt install hhp,出现如下错误:

E: Unable to locate package hhp

解决方法:

sudo apt-get update 就好了

3.2 ROS2 package 安装

前提:已成功安装TogetherROS

TogetherROS与ROS foxy版本接口完全兼容,能够复用ROS丰富工具包,

这里以安装和使用ROS foxy版本ros-foxy-image-transport为例介绍如何在TogetherROS中使用ROS package。

3.2.1  添加ROS apt源

添加ROS apt源

sudo apt update && sudo apt install curl gnupg2 lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key  -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

更新apt仓库

sudo apt update
3.2.2 安装packages
sudo apt install ros-foxy-image-transport
sudo apt install ros-foxy-image-transport-plugins
3.2.3 建立软连接
cd /opt/tros
## 使用/opt/tros目录下的create_soft_link.py创建ROS package至TogetherROS的软连接
sudo python3 create_soft_link.py --foxy /opt/ros/foxy/ --tros /opt/tros/

3.3 使用ROS2 package

与ROS使用一样

source /opt/tros/local_setup.bash
ros2 run image_transport list_transports

运行结果如下,展示了image_transport package支持的图像格式

root@ubuntu:/opt/tros# ros2 run image_transport list_transports
Declared transports:
image_transport/compressed
image_transport/compressedDepth
image_transport/raw
image_transport/theora

Details:
----------
"image_transport/compressed"
 - Provided by package: compressed_image_transport
 - Publisher:
      This plugin publishes a CompressedImage using either JPEG or PNG compression.

 - Subscriber:
      This plugin decompresses a CompressedImage topic.

----------
"image_transport/compressedDepth"
 - Provided by package: compressed_depth_image_transport
 - Publisher:
      This plugin publishes a compressed depth images using PNG compression.

 - Subscriber:
      This plugin decodes a compressed depth images.

----------
"image_transport/raw"
 - Provided by package: image_transport
 - Publisher:
      This is the default publisher. It publishes the Image as-is on the base topic.

 - Subscriber:
      This is the default pass-through subscriber for topics of type sensor_msgs/Image.

----------
"image_transport/theora"
 - Provided by package: theora_image_transport
 - Publisher:
      This plugin publishes a video packet stream encoded using Theora.

 - Subscriber:
      This plugin decodes a video packet stream encoded using Theora.

4. 准备完成,开启程序

启动 web_service 服务

在使用 web 展示之前,确保板子与个人PC机处于同一网段,并且PC可以访问板子的IP。

执行如下命令启动web service

cd /app/ai_inference/05_web_display_camera_sample/
sudo sh ./start_nginx.sh
sudo python3 ./mipi_camera_web.py 

在这里出现了以下错误:

root@ubuntu:/app/ai_inference/05_web_display_camera_sample# sudo python3 ./mipi_camera_web.py

[C][6444][08-08][20:43:17:400][configuration.cpp:51][EasyDNN]EasyDNN version: 0.3.5

[BPU_PLAT]BPU Platform Version(1.3.1)!

[HBRT] set log level as 0. version = 3.13.27

ioctl read error, ret = -1 error = 121

keros_i2c_read failed

ioctl write error, ret = -1 error = 121

keros_i2c_write failed

ioctl write error, ret = -1 error = 121

keros_i2c_write failed

ioctl read error, ret = -1 error = 121

keros_i2c_read failed

ioctl read error, ret = -1 error = 121

keros_i2c_read failed

ioctl read error, ret = -1 error = 121

keros_i2c_read failed

ioctl read error, ret = -1 error = 121

keros_i2c_read failed

ioctl read error, ret = -1 error = 121

keros_i2c_read failed

[000:000] (keros_util.cpp:99): keros_authentication failed, ret = 0

[000:000] (configuration.cpp:147): Keros key init failed.

[DNN] Runtime version = 1.8.4_(3.13.27 HBRT)

[HorizonRT] The model builder version = 1.5.2

[ERROR][sensor][f37_utility.c:253] not support mode 0

[ERROR]["LOG"][utility/hb_cam_utility.c:909] sensor_init fail

[ERROR]["LOG"][utility/hb_cam_utility.c:1004] hb_sensor_init_process fail

[ERROR]["mipi"][mipi/hb_mipi_api.c:225] hb_cam_utility_ex error!

[ERROR]["LOG"][/home/hobot/1-work/08_bsp/hbre/hb_ubuntu/hb_vio_python/x3_sdk/x3_sdk_swap/src/x3_vio_vin.c:100] hb mipi init sensor error!

[ERROR]["LOG"][/home/hobot/1-work/08_bsp/hbre/hb_ubuntu/hb_vio_python/x3_sdk/x3_sdk_swap/src/x3_vio_vin.c:224] x3_sensor_init error!

2022/08/08 20:43:17.561 ERROR [x3_cam_init][0139]x3_vin_init failed, -1
解决方法:

重新启动程序,显示成功

  • 47
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Transformer是一种常用的深度学习模型,主要应用于自然语言处理领域,例如机器翻译、文本生成等任务。而嵌入式部署是指将深度学习模型部署到嵌入式设备上运行,以实现实时性、低功耗、低延迟等要求。旭日X3开发板是一款基于RISC-V架构的嵌入式系统开发板,可以运行Linux操作系统,支持硬件加速和DSP加速。下面是关于Transformer嵌入式部署和旭日X3开发板的介绍: Transformer嵌入式部署: 在进行Transformer模型的嵌入式部署时,需要考虑模型大小、计算量、内存消耗等因素,以适应嵌入式设备的资源限制。一般来说,可以通过以下几种方式来实现Transformer模型的嵌入式部署: 1. 剪枝(Pruning):利用剪枝技术去掉Transformer模型中冗余的权重和神经元,从而减少模型大小和计算量。 2. 量化(Quantization):将浮点数转换为定点数,以减少内存和计算量。 3. 硬件加速:利用硬件加速器(如FPGA、ASIC等)加速Transformer模型的计算过程。 4. DSP加速:利用数字信号处理器(DSP)加速Transformer模型的计算过程。 旭日X3开发板旭日X3开发板是一款基于RISC-V架构的嵌入式系统开发板,其主要特点如下: 1. 采用RISC-V架构,具有高性能、低功耗、可扩展性等优点。 2. 支持Linux操作系统,提供完整的软件生态和应用支持。 3. 集成AI加速模块,支持TensorFlow Lite、Caffe等深度学习框架,并提供相关的SDK和API。 4. 具有丰富的扩展接口(如PCIe、USB、GPIO等),方便与其他设备进行通信和交互。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bingdund

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值