国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

采用rknn-toolkit導(dǎo)出rknn模型并部署在rock3a-rk3568芯片 上全流程

這篇具有很好參考價(jià)值的文章主要介紹了采用rknn-toolkit導(dǎo)出rknn模型并部署在rock3a-rk3568芯片 上全流程。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

因工作需要,需要將目標(biāo)檢測(cè)模型 部署在開發(fā)板上。在走了很多彎路后 找到一個(gè)成功的案例并記載下來

這里說一下我現(xiàn)有的硬件設(shè)備 。

我是購買的RADXA的rock3a開發(fā)板 搭載的soc是rk3568

采用rknn-toolkit導(dǎo)出rknn模型并部署在rock3a-rk3568芯片 上全流程

這是開發(fā)板的正面圖,因?yàn)槿鹦疚⑨槍?duì)計(jì)算機(jī)視覺中的目標(biāo)檢測(cè)模型有一套自己的前向推理框架,所以我就著眼于搭載rockchip的開發(fā)板rock3a

目標(biāo)檢測(cè)模型 這里采用的是yolo模型? 由于原生yolov5模型里面有一些?算子 可能在模型轉(zhuǎn)換時(shí)不支持,這里采用瑞芯微官方推薦的yolov5,鏈接在下面:

GitHub - airockchip/yolov5: YOLOv5 in PyTorch > ONNX > CoreML > TFLite

下載好源代碼后,需要修改一個(gè)地方:

采用rknn-toolkit導(dǎo)出rknn模型并部署在rock3a-rk3568芯片 上全流程

修改的代碼我這里貼出來

def forward(self, x):
        z = []  # inference output
        for i in range(self.nl):
            if os.getenv('RKNN_model_hack', '0') != '0':
                z.append(torch.sigmoid(self.m[i](x[i])))
                continue

            x[i] = self.m[i](x[i])  # conv
            '''
            bs, _, ny, nx = x[i].shape  # x(bs,255,20,20) to x(bs,3,20,20,85)
            x[i] = x[i].view(bs, self.na, self.no, ny, nx).permute(0, 1, 3, 4, 2).contiguous()

            if not self.training:  # inference
                if self.onnx_dynamic or self.grid[i].shape[2:4] != x[i].shape[2:4]:
                    self.grid[i], self.anchor_grid[i] = self._make_grid(nx, ny, i)

                y = x[i].sigmoid()
                if self.inplace:
                    y[..., 0:2] = (y[..., 0:2] * 2 + self.grid[i]) * self.stride[i]  # xy
                    y[..., 2:4] = (y[..., 2:4] * 2) ** 2 * self.anchor_grid[i]  # wh
                else:  # for YOLOv5 on AWS Inferentia https://github.com/ultralytics/yolov5/pull/2953
                    xy, wh, conf = y.split((2, 2, self.nc + 1), 4)  # y.tensor_split((2, 4, 5), 4)  # torch 1.8.0
                    xy = (xy * 2 + self.grid[i]) * self.stride[i]  # xy
                    wh = (wh * 2) ** 2 * self.anchor_grid[i]  # wh
                    y = torch.cat((xy, wh, conf), 4)
                z.append(y.view(bs, -1, self.no))

        if os.getenv('RKNN_model_hack', '0') != '0':
            return z

        return x if self.training else (torch.cat(z, 1),) if self.export else (torch.cat(z, 1), x)
        '''
        return x[0],x[1],x[2]

?然后 根據(jù)自己的數(shù)據(jù)集 訓(xùn)練一版模型 ,訓(xùn)練過程這里不贅述。

這里將訓(xùn)練好的模型yolov5s.pt 轉(zhuǎn)化為onnx模型

轉(zhuǎn)化命令為 :

python3 ? export.py --weights yolov5s.pt --img 640 --batch 1 --opset 12 --include onnx

轉(zhuǎn)化完后 需要用Netron軟件打開模型的可視化界面

采用rknn-toolkit導(dǎo)出rknn模型并部署在rock3a-rk3568芯片 上全流程

記下 圖中 的三個(gè)框里面的節(jié)點(diǎn)名稱,這三個(gè)節(jié)點(diǎn)是網(wǎng)絡(luò)的輸出節(jié)點(diǎn)

?新建一個(gè) python文件?onnx2rknn.py? 該文件是仿制test.py文件編寫的

文件內(nèi)容為

from rknn.api import RKNN

ONNX_MODEL = 'yolov5s.onnx'
platform = "rk3568"
RKNN_MODEL = 'yolov5s_{}_out_opt.rknn'.format(platform)

if __name__ == '__main__':

    add_perm = False # 如果設(shè)置成True,則將模型輸入layout修改成NHWC
    # Create RKNN object
    rknn = RKNN(verbose=True)

    # pre-process config
    print('--> config model')
    rknn.config(mean_values=[[0, 0, 0]], std_values=[[255, 255, 255]],  target_platform=platform,
                )
    print('done')

    # Load tensorflow model
    print('--> Loading model')
    ret = rknn.load_onnx(model=ONNX_MODEL,outputs=['output', '327', '328'])# 這里一定要根據(jù)onnx模型修改
    if ret != 0:
        print('Load onnx model failed!')
        exit(ret)
    print('done')

    # Build model
    print('--> Building model')
    ret = rknn.build(do_quantization=True, dataset='./dataset.txt')
    if ret != 0:
        print('Build rkmodel failed!')
        exit(ret)
    print('done')

    # rknn.export_rknn_precompile_model(RKNN_MODEL)
    rknn.export_rknn(RKNN_MODEL)

    rknn.release()

并將該文件放置于rknn-toolkit工作目錄下

我的目錄是/home/rock/workspace/rknn-toolkit2-1.4.0/examples/onnx/yolov5

也就是example目錄下的onnx專欄的yolov5子目錄?

?注意 需要在onnx2rknn.py文件中 注明 模型運(yùn)行的目標(biāo)平臺(tái) 我的目標(biāo)平臺(tái)是rk3568?

另外需要將上一步 netron 查看的輸出部分的三個(gè)節(jié)點(diǎn) 在onnx2rknn.py文件中注明

也就是如下截圖所示

采用rknn-toolkit導(dǎo)出rknn模型并部署在rock3a-rk3568芯片 上全流程

?python3 onnx2rknn.py 運(yùn)行該文件后 生成的rknn模型?

將該模型 傳輸?shù)介_發(fā)板上

注意,這里有一個(gè)容易忽略的地方 我的rknn-toolkit的版本是1.4.0

如果我的開發(fā)板librknnrt.so 動(dòng)態(tài)庫的版本是1.3.0 就會(huì)報(bào)錯(cuò) 這里版本一定要對(duì)應(yīng)上

在開發(fā)板上運(yùn)行模型 進(jìn)行單張圖片的目標(biāo)檢測(cè) ,運(yùn)行結(jié)果如下圖所示

采用rknn-toolkit導(dǎo)出rknn模型并部署在rock3a-rk3568芯片 上全流程

?文章來源地址http://www.zghlxwxcb.cn/news/detail-510624.html

到了這里,關(guān)于采用rknn-toolkit導(dǎo)出rknn模型并部署在rock3a-rk3568芯片 上全流程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • RKNN模型部署(3)—— 模型轉(zhuǎn)換與測(cè)試

    RKNN模型部署(3)—— 模型轉(zhuǎn)換與測(cè)試

    初始化函數(shù): 初始化RKNN對(duì)象時(shí),可以設(shè)置verbose和verbose_file參數(shù),以打印詳細(xì)的日志信息。 參數(shù) 解析 verbose 指定是否要在屏幕上打印詳細(xì)日志信息 verbose_file 如果verbose參數(shù)為True,日志信息將寫到該參數(shù)指定的文件中,一般將verbose設(shè)置為True,verbose_file不設(shè)置,將日志顯示到

    2023年04月22日
    瀏覽(14)
  • RKNN模型部署(1)—— 相關(guān)介紹

    RKNN模型部署(1)—— 相關(guān)介紹

    ?? Rockchip板載AI芯片,內(nèi)置高能效NPU,擁有強(qiáng)勁算力,支持多種AI框架和AI應(yīng)用開發(fā)SDK,易于開發(fā),擁有面向AI應(yīng)用的豐富接口,便于擴(kuò)展,適用于語音喚醒、語音識(shí)別、人臉識(shí)別等功能應(yīng)用場(chǎng)景。 ?? RKNN 是 Rockchip npu 平臺(tái)使用的模型類型,以.rknn后綴結(jié)尾的模型文件。Ro

    2024年02月09日
    瀏覽(22)
  • rv1109/1126 rknn 模型部署過程

    rv1109/1126 rknn 模型部署過程

    rv1109/1126是瑞芯微出的嵌入式AI芯片,帶有npu, 可以用于嵌入式人工智能應(yīng)用。算法工程師訓(xùn)練出的算法要部署到芯片上,需要經(jīng)過模型轉(zhuǎn)換和量化,下面記錄一下整個(gè)過程。 模型量化需要安裝rk的工具包: rockchip-linux/rknn-toolkit (github.com) 版本要根據(jù)開發(fā)板的固件支持程度來,

    2024年02月14日
    瀏覽(22)
  • rknn_toolkit以及rknpu環(huán)境搭建-rv1126

    rknn_toolkit以及rknpu環(huán)境搭建-rv1126

    rknn_toolkit安裝------------------------------------------------------------------------------- 環(huán)境要求:ubutu18.04 建議使用docker鏡像 安裝docker 參考https://zhuanlan.zhihu.com/p/143156163 鏡像地址 百度企業(yè)網(wǎng)盤-企業(yè)云盤-企業(yè)云存儲(chǔ)解決方案-同步云盤 rknn_toolkit目錄結(jié)構(gòu) docker load --input rknn-toolkit-1.7. 3 -d

    2024年02月10日
    瀏覽(19)
  • yolov8 瑞芯微 RKNN 的 C++部署,部署工程難度小、模型推理速度快

    yolov8 瑞芯微 RKNN 的 C++部署,部署工程難度小、模型推理速度快

    ?? 之前寫過兩次yolov8目標(biāo)檢測(cè)部署,后續(xù)繼續(xù)思考,針對(duì)部署還有優(yōu)化空間,本示例的部署方式優(yōu)化了部署難度,加快了模型推理速度(略微增加了后處理的時(shí)耗)。 特別說明:如有侵權(quán)告知?jiǎng)h除,謝謝。 【完整代碼】代碼和模型 ?? onnx轉(zhuǎn)rknn模型這一步就不再贅述,請(qǐng)

    2024年01月23日
    瀏覽(20)
  • yolov5訓(xùn)練pt模型并轉(zhuǎn)換為rknn模型,部署在RK3588開發(fā)板上——從訓(xùn)練到部署全過程

    yolov5訓(xùn)練pt模型并轉(zhuǎn)換為rknn模型,部署在RK3588開發(fā)板上——從訓(xùn)練到部署全過程

    目錄 一、任務(wù)介紹 二、實(shí)驗(yàn)過程 2.1 使用正確版本的yolov5進(jìn)行訓(xùn)練(平臺(tái):x86機(jī)器windows系統(tǒng)) 2.2 best.pt轉(zhuǎn)換為best.onnx(平臺(tái):x86機(jī)器window系統(tǒng)) 2.3 best.onnx轉(zhuǎn)換為best.rknn(平臺(tái):x86機(jī)器Linux系統(tǒng)) 2.3.1 環(huán)境準(zhǔn)備和工具包安裝 2.3.2 onnx轉(zhuǎn)換為rknn 2.4 RK3588部署rknn實(shí)現(xiàn)NPU加速(平臺(tái):

    2024年02月03日
    瀏覽(23)
  • DAYU200鴻蒙開發(fā)板(RK3568)安裝rknn_toolkit_lite2并運(yùn)行demo

    DAYU200鴻蒙開發(fā)板(RK3568)安裝rknn_toolkit_lite2并運(yùn)行demo

    ??????? 手上只有一塊DAYU200的鴻蒙開發(fā)板,想要運(yùn)行一些簡單的算法。 ?一、將DAYU200燒錄Ubuntu操作系統(tǒng) ??????? 參考:[ROC-RK3568-PC] 手把手教你制作Ubuntu系統(tǒng)TF卡啟動(dòng)盤 ???????????????? ? DAYU200妖怪燒錄大法 ??????? 為了盡量避免一些奇怪的錯(cuò)誤,這里我采用

    2024年02月11日
    瀏覽(61)
  • yolov8n 瑞芯微RKNN、地平線Horizon芯片部署、TensorRT部署,部署工程難度小、模型推理速度快

    yolov8n 瑞芯微RKNN、地平線Horizon芯片部署、TensorRT部署,部署工程難度小、模型推理速度快

    ??特別說明:參考官方開源的yolov8代碼、瑞芯微官方文檔、地平線的官方文檔,如有侵權(quán)告知?jiǎng)h,謝謝。 ??模型和完整仿真測(cè)試代碼,放在github上參考鏈接 模型和代碼。 ??因?yàn)橹皩懥藥灼獃olov8模型部署的博文,存在兩個(gè)問題:部署難度大、模型推理速度慢。該篇解

    2024年01月16日
    瀏覽(27)
  • 香橙派5 RK3588 yolov5模型轉(zhuǎn)換rknn及部署踩坑全記錄 orangepi 5

    香橙派5 RK3588 yolov5模型轉(zhuǎn)換rknn及部署踩坑全記錄 orangepi 5

    由于距離寫這篇文章過去很久,有的部分,官方已更新,請(qǐng)多結(jié)合其他人的看,并多琢磨、討論~ 另外打個(gè)小廣告: 博客 https://blog.vrxiaojie.top/ 歡迎大家前來做客玩耍,提出問題~~ 以后的文章都會(huì)在博客發(fā)布了,CSDN這邊可能這是最后一篇文章。 (1) 使用官方提供的Ubuntu鏡像:

    2024年02月05日
    瀏覽(28)
  • yolov8n 瑞芯微RKNN和地平線Horizon芯片仿真測(cè)試部署,部署工程難度小、模型推理速度快

    yolov8n 瑞芯微RKNN和地平線Horizon芯片仿真測(cè)試部署,部署工程難度小、模型推理速度快

    ??特別說明:參考官方開源的yolov8代碼、瑞芯微官方文檔、地平線的官方文檔,如有侵權(quán)告知?jiǎng)h,謝謝。 ??模型和完整仿真測(cè)試代碼,放在github上參考鏈接 模型和代碼。 ??因?yàn)橹皩懥藥灼獃olov8模型部署的博文,存在兩個(gè)問題:部署難度大、模型推理速度慢。該篇解

    2024年02月01日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包