0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【地平線旭日X3派試用體驗】X3派開箱及開發(fā)環(huán)境搭建

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-10-21 10:32 ? 次閱讀
本文來源電子發(fā)燒友社區(qū),作者:yjp, 帖子地址:https://bbs.elecfans.com/jishu_2303179_1_1.html


地平線旭日X3派開發(fā)板是我見過,AI計算算力最強(qiáng),開源程度最深,AI算法集成度最高的開發(fā)板,再此表示感謝。

環(huán)境安裝在進(jìn)行AI算法開發(fā)之前請參考X3派用戶手冊完成系統(tǒng)安裝及配置,此時X3派上已默認(rèn)安裝好了地平線Python版本AI推理引擎(hobot_dnn)及其配套依賴環(huán)境。hobot_dnn提供了Model、pyDNNTensor、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推理引擎的更新可參考如下方式(出于系統(tǒng)安全、穩(wěn)定性的考慮,建議統(tǒng)一通過APT命令更新X3派板級開發(fā)包):
-------------------------------------------------------------------------------------------------------------------------------
#更新package列表
sudo apt update
#升級所有已安裝的軟件包到最新版
sudo apt full-upgrade
#清除緩存文件(非必須)
sudo apt clean
#重啟設(shè)備
sudo reboot
-------------------------------------------------------------------------------------------------------------------------------
1 推理接口介紹1.1 ModelAI算法模型類,描述模型的名稱,輸入、輸出數(shù)據(jù)屬性信息,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):模型推理函數(shù)接口,輸入模型推理所必要的參數(shù),返回模型推理結(jié)果
parameters:
input_tensor:輸入數(shù)據(jù)
core_id (int):模型推理的core id,可為0,1,2,默認(rèn)為0表示任意核推理
priority (int):當(dāng)前模型推理任務(wù)的優(yōu)先級,范圍[0~255],越大優(yōu)先級越高
'''
-------------------------------------------------------------------------------------------------------------------------------
其中,forward方法的input_tensor支持三種格式輸入:


forward方法的返回值為模型推理結(jié)果,有如下兩種情況:


resizer模型指在模型轉(zhuǎn)換時input_source設(shè)置為“resizer”編譯生成的模型,相關(guān)配置方式可參考社區(qū)X3 用戶手冊。resizer模型推理時,hobot_dnn會先使用ROI從輸入數(shù)據(jù)中摳圖后resize到模型輸入大小再送入模型進(jìn)行推理。
*目前resizer模式暫只支持單輸入的nv12/nv12_bt601模型。

1.2 pyDNNTensorAI 算法輸入、輸出 tensor 類
-------------------------------------------------------------------------------------------------------------------------------
class hobot_dnn.pyeasy_dnn.pyDNNTensor
'''
Parameters:
1、properties (TensorProperties):tensor的屬性,詳細(xì)參見本文1.3節(jié)
2、buffer (numpy):tensor中的數(shù)據(jù),數(shù)據(jù)訪問方式同numpy
3、name (string):tensor的名稱
'''
-------------------------------------------------------------------------------------------------------------------------------
1.3 TensorPropertiesAI 算法輸入/輸出 tensor 的屬性類
-------------------------------------------------------------------------------------------------------------------------------
class hobot_dnn.pyeasy_dnn.TensorProperties
'''
Parameters:
1、tensor_type (string):tensor的數(shù)據(jù)類型,如:NV12、BGR、float32等
2、dtype (string):數(shù)據(jù)的存儲類型,同numpy數(shù)據(jù)類型,如:int8、uint8、float32等
3、layout (string):數(shù)據(jù)排布格式,NHWC或者NCHW
4、shape (tuple):數(shù)據(jù)的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推理示例默認(rèn)安裝在/app/ai_inference目錄下,包含如下示例:
-------------------------------------------------------------------------------------------------------------------------------
|-- 01_basic_sample # 從本地讀取圖片并完成mobilenetv1分類模型推理
|-- 02_usb_camera_sample # 從USB camera獲取視頻數(shù)據(jù)并完成FCOS檢測模型推理
|-- 03_mipi_camera_sample # 從MIPI camera獲取視頻數(shù)據(jù)并完成FCOS檢測模型推理
|-- 05_web_display_camera_sample # 基于MIPI Camera的FCOS目標(biāo)檢測及web端展示
|-- 06_yolov3_sample # 從本地讀取圖片并完成Yolov3檢測模型推理
|-- 07_yolov5_sample # 從本地讀取圖片并完成Yolov5檢測模型推理
`-- models
-------------------------------------------------------------------------------------------------------------------------------
本節(jié)將以01_basic_sample為例,為大家展示如何使用hobot_dnn完成模型推理。運行以下示例您需要準(zhǔn)備編譯好的混合異構(gòu)模型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

# 查看模型輸入輸出節(jié)點的信息
def print_properties(pro):
print("tensor type:", pro.tensor_type)
print("data type:", pro.dtype)
print("layout:", pro.layout)
print("shape:", pro.shape)

# 依據(jù)模型input_type_rt決定是否需要進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換(本實例所用模型為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.查看模型輸入輸出節(jié)點的信息
for input in models[0].inputs:
print_properties(input.properties)
for output in models[0].outputs:
print_properties(output.properties)

# 3.準(zhǔn)備輸入數(shù)據(jù)
# 打開圖片
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)]))
-------------------------------------------------------------------------------------------------------------------------------


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 開發(fā)板試用
    +關(guān)注

    關(guān)注

    3

    文章

    301

    瀏覽量

    2101
收藏 人收藏

    評論

    相關(guān)推薦

    光庭信息獲地平線堅實后盾獎

    后盾獎”,高度肯定了雙方過往在智駕領(lǐng)域的合作成效。 過去兩年內(nèi),光庭信息基于地平線 J3、J5 及 J6 等多個平臺,打造了“泊車與駕駛一體化解決方案”,提供高性能的自動駕駛和泊車功能,可以輕松實現(xiàn)跨平臺遷移和新應(yīng)用開發(fā),有效幫
    的頭像 發(fā)表于 12-28 15:07 ?167次閱讀

    智駕科技企業(yè)地平線登陸港交所

    近日,智駕科技企業(yè)地平線地平線機(jī)器人-W,股票代碼:9660.HK)在香港交易所主板成功掛牌上市,募資總額高達(dá)54.07億港元,成為港股今年最大的科技IPO。
    的頭像 發(fā)表于 10-28 16:37 ?277次閱讀

    ETAS支持地平線征程6 AUTOSAR版本發(fā)布

    地平線于2024年北京車展期間推出了覆蓋自動駕駛?cè)珗鼍暗恼鞒?產(chǎn)品。征程6是地平線新一代家族系列產(chǎn)品,能夠覆蓋從主動安全ADAS到城區(qū)全場景NOA的智能駕駛需求。
    的頭像 發(fā)表于 10-15 17:34 ?721次閱讀

    【星閃物聯(lián)網(wǎng)開發(fā)套件體驗連載】智能交通燈

    開發(fā)套件已收到:星閃物聯(lián)網(wǎng)開發(fā)套件x1,星閃物聯(lián)網(wǎng)開發(fā)
    發(fā)表于 10-05 13:00

    地平線Journey 3的電源設(shè)計

    電子發(fā)燒友網(wǎng)站提供《地平線Journey 3的電源設(shè)計.pdf》資料免費下載
    發(fā)表于 09-04 10:48 ?0次下載
    <b class='flag-5'>地平線</b>Journey <b class='flag-5'>3</b>的電源設(shè)計

    樹莓x86還是arm

    樹莓(Raspberry Pi)是一款由英國樹莓基金會(Raspberry Pi Foundation)開發(fā)的微型計算機(jī)。它基于ARM架構(gòu),而非x86架構(gòu)。 一、樹莓
    的頭像 發(fā)表于 08-30 15:42 ?1078次閱讀

    地平線港股IPO獲證監(jiān)會備案

    自動駕駛領(lǐng)域的明星企業(yè)——地平線機(jī)器人(Horizon Robotics),近期獲得了中國證監(jiān)會的批準(zhǔn),將在香港聯(lián)合交易所進(jìn)行首次公開募股(IPO)。此次IPO的順利推進(jìn),標(biāo)志著地平線向資本市場邁出了重要一步。
    的頭像 發(fā)表于 08-13 15:37 ?701次閱讀

    用悟空全志H3開發(fā)板做一個基于ROS系統(tǒng)的全向輪小車

    算: 5、總結(jié) 悟空H3開發(fā)板在ROS系統(tǒng)下構(gòu)建全向輪小車的試用中表現(xiàn)出色。 其強(qiáng)大的硬件性能、ROS支持和控制操作性能使其成為機(jī)器人開發(fā)
    發(fā)表于 05-06 11:15

    智能駕駛頭部企業(yè)地平線赴港IPO

    地平線向港交所遞交了上市申請,正式啟動港股IPO進(jìn)程,這一行動引起了市場的廣泛關(guān)注。在此次上市過程中,高盛、摩根士丹利以及中信建投共同擔(dān)任聯(lián)席保薦人,為地平線的上市之路提供了強(qiáng)大的支持。
    的頭像 發(fā)表于 03-28 16:45 ?861次閱讀

    地平線提交香港IPO申請

    智能駕駛計算方案提供商“地平線”正式遞交港股上市申請。據(jù)其公開文件,地平線在2023年實現(xiàn)了15.5億元的營收,同比顯著增長71.3%,毛利達(dá)到10.94億元,毛利率高達(dá)70.5%。
    的頭像 發(fā)表于 03-27 16:11 ?731次閱讀

    地平線向港交所遞交招股書

    智能駕駛計算方案領(lǐng)軍者地平線,近日正式向港交所遞交了招股書,高盛、摩根士丹利及中信建投為其聯(lián)席保薦人。這并非地平線首次試水資本市場,早在2021年,地平線就計劃科創(chuàng)板上市,并一度傳出赴美IPO的消息,但受資本市場
    的頭像 發(fā)表于 03-27 16:02 ?565次閱讀

    寶馬(中國)召回部分進(jìn)口X3、2系和X4車型

    此次型號覆蓋的具體數(shù)量包括:2023年8月29日生產(chǎn)的進(jìn)口X3車型1輛,2023年9月21日至9月25日生產(chǎn)的進(jìn)口2系車型2輛,以及同一期間生產(chǎn)的進(jìn)口X4車型48輛。
    的頭像 發(fā)表于 03-01 14:56 ?811次閱讀

    地平線正式開源Sparse4D算法

    地平線將業(yè)內(nèi)領(lǐng)先的純視覺自動駕駛算法——Sparse4D系列算法開源,推動行業(yè)更多開發(fā)者共同參與到端到端自動駕駛、稀疏感知等前沿技術(shù)方向的探索中。目前,Sparse4D算法已在GitHub平臺上線,開發(fā)者可關(guān)注
    的頭像 發(fā)表于 01-23 10:18 ?777次閱讀

    【飛騰4G版免費試用】飛騰4G版開發(fā)板套裝測試及環(huán)境搭建

    。 飛騰4G版開發(fā)板套裝接口介紹: 飛騰4G版開發(fā)板套裝技術(shù)參數(shù): 飛騰4G版開發(fā)
    發(fā)表于 01-22 00:47

    【核桃1B 開發(fā)試用體驗】+ 配件+組裝

    【感謝】感謝電子發(fā)燒友、深圳零一電子科技有限公司為我提供了這次試用核桃開發(fā)板的機(jī)會。 【開箱】 1、這次快遞用的是順豐的快遞,包裝、服務(wù)都非常好,非??斓木退偷健?2、打開快遞包裝,
    發(fā)表于 01-02 10:39