0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【地平线旭日X3派试用体验】X3派开箱及开发环境搭建

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-10-21 10:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文来源电子发烧友社区,作者:yjp, 帖子地址:https://bbs.elecfans.com/jishu_2303179_1_1.html


地平线旭日X3派开发板是我见过,AI计算算力最强,开源程度最深,AI算法集成度最高的开发板,再此表示感谢。

环境安装在进行AI算法开发之前请参考X3派用户手册完成系统安装及配置,此时X3派上已默认安装好了地平线Python版本AI推理引擎(hobot_dnn)及其配套依赖环境。hobot_dnn提供了ModelpyDNNTensor、TensorProperties三个类和load接口。您可通过如下方式获取hobot_dnn的基本信息:
-------------------------------------------------------------------------------------------------------------------------------
python3
>>> from hobot_dnn import pyeasy_dnn as dnn
>>> dir(dnn)
['Model', 'TensorProperties', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'load', 'pyDNNTensor']
-------------------------------------------------------------------------------------------------------------------------------
AI推理引擎的更新可参考如下方式(出于系统安全、稳定性的考虑,建议统一通过APT命令更新X3派板级开发包):
-------------------------------------------------------------------------------------------------------------------------------
#更新package列表
sudo apt update
#升级所有已安装的软件包到最新版本
sudo apt full-upgrade
#清除缓存文件(非必须)
sudo apt clean
#重启设备
sudo reboot
-------------------------------------------------------------------------------------------------------------------------------
1 推理接口介绍1.1 ModelAI算法模型类,描述模型的名称,输入、输出数据属性信息,forward 方法用来完成算法的推理。
-------------------------------------------------------------------------------------------------------------------------------
class hobot_dnn.pyeasy_dnn.Model
'''
Parameters
1、name (string):模型名称
2、inputs (tuple(hobot_dnn.pyeasy_dnn.pyDNNTensor)):模型的输入tensor
3、outputs (tuple(hobot_dnn.pyeasy_dnn.pyDNNTensor)):模型的输出tensor
4、forward (args &args, kwargs &kwargs):模型推理函数接口,输入模型推理所必要的参数,返回模型推理结果
parameters:
input_tensor:输入数据
core_id (int):模型推理的core id,可为0,1,2,默认为0表示任意核推理
priority (int):当前模型推理任务的优先级,范围[0~255],越大优先级越高
'''
-------------------------------------------------------------------------------------------------------------------------------
其中,forward方法的input_tensor支持三种格式输入:


forward方法的返回值为模型推理结果,有如下两种情况:


resizer模型指在模型转换时input_source设置为“resizer”编译生成的模型,相关配置方式可参考社区X3 用户手册。resizer模型推理时,hobot_dnn会先使用ROI从输入数据中抠图后resize到模型输入大小再送入模型进行推理。
*目前resizer模式暂只支持单输入的nv12/nv12_bt601模型。

1.2 pyDNNTensorAI 算法输入、输出 tensor 类
-------------------------------------------------------------------------------------------------------------------------------
class hobot_dnn.pyeasy_dnn.pyDNNTensor
'''
Parameters:
1、properties (TensorProperties):tensor的属性,详细参见本文1.3节
2、buffer (numpy):tensor中的数据,数据访问方式同numpy
3、name (string):tensor的名称
'''
-------------------------------------------------------------------------------------------------------------------------------
1.3 TensorPropertiesAI 算法输入/输出 tensor 的属性类
-------------------------------------------------------------------------------------------------------------------------------
class hobot_dnn.pyeasy_dnn.TensorProperties
'''
Parameters:
1、tensor_type (string):tensor的数据类型,如:NV12、BGR、float32等
2、dtype (string):数据的存储类型,同numpy数据类型,如:int8、uint8、float32等
3、layout (string):数据排布格式,NHWC或者NCHW
4、shape (tuple):数据的shape信息,例如:(1,3,224,224)
'''
-------------------------------------------------------------------------------------------------------------------------------
1.4 loadload接口用于加载模型
-------------------------------------------------------------------------------------------------------------------------------
hobot_dnn.pyeasy_dnn.load(model_file)
'''
接口支持两种模型加载方式:
1、输入模型的文件路径,加载单个模型,或者单个pack模型
model_file = "/userdata/single_model.bin"
models = hobot_dnn.pyeasy_dnn.load(model_file)
2、输入模型的文件列表,加载多个模型
model_file = ["model1.bin", "model2.bin"]
models = hobot_dnn.pyeasy_dnn.load(model_file)
接口返回hobot_dnn.pyeasy_dnn.Model类型的tuple列表
'''
-------------------------------------------------------------------------------------------------------------------------------
2 快速上手示例X3派配套AI推理示例默认安装在/app/ai_inference目录下,包含如下示例:
-------------------------------------------------------------------------------------------------------------------------------
|-- 01_basic_sample # 从本地读取图片并完成mobilenetv1分类模型推理
|-- 02_usb_camera_sample # 从USB camera获取视频数据并完成FCOS检测模型推理
|-- 03_mipi_camera_sample # 从MIPI camera获取视频数据并完成FCOS检测模型推理
|-- 05_web_display_camera_sample # 基于MIPI Camera的FCOS目标检测及web端展示
|-- 06_yolov3_sample # 从本地读取图片并完成Yolov3检测模型推理
|-- 07_yolov5_sample # 从本地读取图片并完成Yolov5检测模型推理
`-- models
-------------------------------------------------------------------------------------------------------------------------------
本节将以01_basic_sample为例,为大家展示如何使用hobot_dnn完成模型推理。运行以下示例您需要准备编译好的混合异构模型mobilenetv1_224x224_nv12.bin(存放于/app/ai_inference/models路径下),以及一张图片zebra_cls.jpg(存放于01_basic_sample文件夹下)。
-------------------------------------------------------------------------------------------------------------------------------
from hobot_dnn import pyeasy_dnn as dnn
import numpy as np
import cv2

# 查看模型输入输出节点的信息
def print_properties(pro):
print("tensor type:", pro.tensor_type)
print("data type:", pro.dtype)
print("layout:", pro.layout)
print("shape:", pro.shape)

# 依据模型input_type_rt决定是否需要进行数据格式转换(本实例所用模型为nv12输入)
def bgr2nv12_opencv(image):
height, width = image.shape[0], image.shape[1]
area = height * width
yuv420p = cv2.cvtColor(image, cv2.COLOR_BGR2YUV_I420).reshape((area * 3 // 2,))
y = yuv420p[:area]
uv_planar = yuv420p[area:].reshape((2, area // 4))
uv_packed = uv_planar.transpose((1, 0)).reshape((area // 2,))

nv12 = np.zeros_like(yuv420p)
nv12[:height * width] = y
nv12[height * width:] = uv_packed
return nv12

# 1.加载模型
models = dnn.load('../models/mobilenetv1_224x224_nv12.bin')

# 2.查看模型输入输出节点的信息
for input in models[0].inputs:
print_properties(input.properties)
for output in models[0].outputs:
print_properties(output.properties)

# 3.准备输入数据
# 打开图片
img_file = cv2.imread('./zebra_cls.jpg')
# 把图片缩放到模型的输入尺寸
h, w = models[0].inputs[0].properties.shape[2], models[0].inputs[0].properties.shape[3]
resized_data = cv2.resize(img_file, (w, h), interpolation=cv2.INTER_AREA)
nv12_data = bgr2nv12_opencv(resized_data)

# 4.模型推理
outputs = models[0].forward(nv12_data)

# 5.后处理
np.argmax(outputs[0].buffer)
print("cls id: %d Confidence: %f" % (np.argmax(outputs[0].buffer), outputs[0].buffer[0][np.argmax(outputs[0].buffer)]))
-------------------------------------------------------------------------------------------------------------------------------


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发板试用
    +关注

    关注

    3

    文章

    303

    浏览量

    2643
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    半年参与3万辆宝马X3生产,人形机器人“进厂打工”真成了

    了其人形机器人“进厂打工”的最新成果。   Figure 02:半年参与3万辆宝马X3生产,进入退役阶段   根据Figure AI的说法,在过去的六个月内,其第二代人形机器人Figure 02已经在宝马集团斯帕坦堡工厂参与生产了3
    的头像 发表于 11-24 08:25 7426次阅读
    半年参与<b class='flag-5'>3</b>万辆宝马<b class='flag-5'>X3</b>生产,人形机器人“进厂打工”真成了

    华为路由 X3 Pro火了!业界首发Wi-Fi7+和透明天线,1299元起

    电子发烧友原创 章鹰 11月25日,在华为 Mate 80 系列 / Mate X7 及全场景新品发布会上,华为消费者BG CEO何刚宣布,首款艺术路由——华为路由 X3 Pro日照金山发布。这款
    的头像 发表于 11-30 00:46 6126次阅读
    华为路由 <b class='flag-5'>X3</b> Pro火了!业界首发Wi-Fi7+和透明天线,1299元起

    地平线助力博世中阶智能辅助驾驶方案量产交付

    2025年4月,地平线与博世深化战略合作,双方基于征程6系列加速智能辅助驾驶方案的研发与应用。近日,搭载征程6M的博世中阶智能辅助驾驶方案的全新量产合作车型东风奕eπ007+、北京越野BJ40增程元境智行版先后上市,标志着地平线
    的头像 发表于 11-19 11:47 374次阅读

    安谋发布“周易”X3 NPU,破局AI算力,智绘未来蓝图

    2025年11月13日,国内领先的芯片IP设计与服务提供商安谋科技Arm China,正式揭开了新一代NPU IP“周易”X3的神秘面纱。通过其创新的专为大模型设计的DSP+DSA混合架构与软硬协同
    的头像 发表于 11-17 11:47 131次阅读
    安谋发布“周易”<b class='flag-5'>X3</b> NPU,破局AI算力,智绘未来蓝图

    地平线与Unity中国达成战略合作

    近日,中国智驾科技领军企业地平线与全球领先的实时3D内容创作和运营平台Unity正式签署战略合作协议。双方将深度融合地平线HSD (Horizon SuperDrive) 人机交互系统与Unity
    的头像 发表于 11-03 16:43 1357次阅读

    奇瑞风云X3系列双车上市

    8月16日,奇瑞汽车旗下风云品牌全新方盒子产品序列——风云X3与风云X3 PLUS正式宣告上市。风云X3系列基于iCAR 03系列焕新升级而来,在造型设计、动力性能、智能科技、功能配置及工艺品质等维度实现全方位跃升。
    的头像 发表于 08-19 11:48 834次阅读

    【BPI-CanMV-K230D-Zero开发板体验】香蕉 K230D 视觉开发开箱+CamMV 环境搭建

    开箱】 今天收到了香蕉 Banana Pi BPI-CanMV-K230D-Zero 开发板,先上图一睹为快。 【处理器介绍】 这款开发板搭载嘉楠科技 K230D 处理器,K
    发表于 06-24 22:54

    韵乐Vinal X3/X5卡拉OK音频处理器调音软件简介

    韵乐Vinal X3/X5卡拉OK音频处理器调音软件软件简介韵乐Vinal X3/X5调音软件具有音箱处理器功能的卡拉ok效果器每个功能部分都独立可调且有相应的PC界面可直观调节易于操
    发表于 05-16 15:33 1次下载

    RDK X3 带飞的智能护理系统:让机器人秒变贴心小棉袄

    济往开来团队带着超燃黑科技来了!基于 RDK X3 开发的老年智能监控系统,跌倒秒报警、手势一键呼叫、还能陪唠嗑!最绝的是 开源代码直接甩链接 ,技术党狂喜!
    的头像 发表于 05-09 21:53 576次阅读
    RDK <b class='flag-5'>X3</b> 带飞的智能护理系统:让机器人秒变贴心小棉袄

    地平线与博世达成战略合作

    近日,地平线正式宣布与全球领先的汽车技术与服务供应商博世达成战略合作。根据协议,博世将基于地平线征程6B打造新一代多功能摄像头,并基于征程6E/M打造博世纵横辅助驾驶升级版。目前,基于征程6系列开发的博世新一代多功能摄像头与博世
    的头像 发表于 04-27 13:43 981次阅读

    地平线城区辅助驾驶系统HSD解读

    近日,在2025地平线年度产品发布会上,地平线城区辅助驾驶系统HSD正式发布。作为国内首个软硬结合全栈开发的城区辅助驾驶系统,地平线HSD搭载当前最高性能的国产智驾计算方案征程6P,采
    的头像 发表于 04-22 14:44 1301次阅读

    HMC-XTB110 无源x3倍频器,24-30GHz输入技术手册

    应用。 所有焊盘和芯片背面都经过Ti/Au金属化。 HMC-XTB110无源x3 MMIC可兼容常规的芯片贴装方法,以及热压缩和热超声线焊,非常适合MCM和混合微电路应用。 此处显示的所有数据均是芯片在50 Ohm环境下使用RF探头接触测得。
    的头像 发表于 04-16 16:15 690次阅读
    HMC-XTB110 无源<b class='flag-5'>x3</b>倍频器,24-30GHz输入技术手册

    “你的钱来了”:财神1号,RDK X3驱动,自动捡钱不手软!

    采用 RDK X3 打造无情的捡钱机器,每天8亿纸币掉在路面上,财神1号帮你捡个够!
    的头像 发表于 02-18 11:15 932次阅读
    “你的钱来了”:财神1号,RDK <b class='flag-5'>X3</b>驱动,自动捡钱不手软!

    地平线SuperDrive相关问答

    近日,地平线SuperDrive智驾百人团体验活动圆满落幕,现场130余家媒体对地平线SuperDrive表现出浓厚的兴趣并提出了诸多问题。对此,地平线特意整理了大家提出的典型问题并进行解答,希望能帮助大家更全面地了解这套拟人的
    的头像 发表于 01-21 10:15 858次阅读

    Cadence推出Palladium Z3与Protium X3系统

    楷登电子(Cadence)公司近日宣布,正式推出新一代Cadence® Palladium® Z3 Emulation和Protium™ X3 FPGA原型验证系统。这一组合标志着数字孪生
    的头像 发表于 01-07 13:48 1719次阅读