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

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

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

8月AI實(shí)戰(zhàn):工業(yè)視覺缺陷檢測(cè) --基于tflite的yolov8模型優(yōu)化和推理

lijuan ? 來源: jf_39743386 ? 作者: jf_39743386 ? 2023-09-13 21:56 ? 次閱讀

8月AI實(shí)戰(zhàn):工業(yè)視覺缺陷檢測(cè)

--基于tflite的yolov8模型優(yōu)化和推理

操作視頻見B站連接:aidlux模型優(yōu)化+工業(yè)缺陷檢測(cè)~~完美用我的華為手機(jī)實(shí)現(xiàn)缺陷檢測(cè)的推理bilibiliaidlux模型優(yōu)化+工業(yè)缺陷檢測(cè)~~完美用我的華為手機(jī)實(shí)現(xiàn)缺陷檢測(cè)的推理

1 模型優(yōu)化

將onnx模型轉(zhuǎn)化為tflite模型

打開網(wǎng)站:http://aimo.aidlux.com/

輸入試用賬號(hào)和密碼:賬號(hào):AIMOTC001 ,密碼:AIMOTC001

通過頁面中的提示AI Model Optimizer,依次執(zhí)行步驟①上傳模型②選擇目標(biāo)平臺(tái)③參數(shù)設(shè)置④轉(zhuǎn)換結(jié)果。

通過上述①-④可將onnx模型轉(zhuǎn)為tflite模型

模型轉(zhuǎn)換過程包含如下日志信息

2023-09-07 19:47:05,969 - INFO : Optimization started.

2023-09-07 19:47:05,970 - INFO : [ONNX-SIM] Clean ONNX Model input node.

2023-09-07 19:47:06,733 - INFO : [ONNX2TFLITE] Start converting to TFLITE.

2023-09-07 19:47:28,511 - INFO : Model optimization done.

2 推理的py文件

模型采用課程中提供的yolov8_slimneck_SIOU.ONNX,轉(zhuǎn)化完模型路徑及名稱,如下

# 模型

model_path = "/home/lesson3/yolov8_slimneck_SIOU_tflite/yolov8_slimneck_SIOU_fp32.tflite"

# 測(cè)試圖片路徑

image_path = "/home/lesson3/test"

模型推理過程包含如下步驟:

初始化aidlite類并創(chuàng)建aidlite對(duì)象

aidlite = aidlite_gpu.aidlite()

print("ok")

加載模型

value = aidlite.ANNModel(model_path, [640 * 640 * 3 * 4], [8400 * 11 * 4], 4, 0)

print("gpu:", value)

包含遍歷每一張圖片

for root, dirs, files in os.walk(image_path):

num = 0

for file in files:

file = os.path.join(root, file)

frame = cv2.imread(file)

x_scale = frame.shape[1] / 640

y_scale = frame.shape[0] / 640

將圖片轉(zhuǎn)換為模型輸入的640*640尺寸

img = cv2.resize(frame, (640, 640))

# img_copy=img.co

img = img / 255.0

img = np.expand_dims(img, axis=0)

img = img.astype(dtype=np.float32)

print(img.shape)

傳入模型輸入數(shù)據(jù)

aidlite.setInput_Float32(img)

執(zhí)行推理

start = time.time()

aidlite.invoke()

end = time.time()

timerValue = 1000 * (end - start)

print("infer time(ms):{0}", timerValue)

獲取輸出

pred = aidlite.getOutput_Float32(0)

# print(pred.shape)

pred = np.array(pred)

print(pred.shape)

pred = np.reshape(pred, (8400, 11))

print(pred.shape) # shape=(8400,11)

后處理,解析輸出

boxes, scores, classes = postProcess(pred, confThresh, NmsThresh)

繪制保存圖像

ret_img = draw(frame, x_scale, y_scale, boxes, scores, classes)

ret_img = ret_img[:, :, ::-1]

num += 1

image_file_name = "/home/result/res" + str(num) + ".jpg"

8. 保存圖片

cv2.imwrite(image_file_name, ret_img)

審核編輯 黃宇

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

    關(guān)注

    87

    文章

    29806

    瀏覽量

    268106
  • 工業(yè)視覺
    +關(guān)注

    關(guān)注

    0

    文章

    67

    瀏覽量

    7111
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    使用Yolov5 - i.MX8MP進(jìn)行NPU錯(cuò)誤檢測(cè)是什么原因?

    tflite --int8我還嘗試過 TFlite 集線器模型,如 SSD 和 mobilenet,它們已經(jīng)轉(zhuǎn)換為 uint8。 在附件
    發(fā)表于 03-31 07:38

    使用YOLOv8做目標(biāo)檢測(cè)和實(shí)例分割的演示

    YOLOv8是來自Ultralytics的最新的基于YOLO的對(duì)象檢測(cè)模型系列,提供最先進(jìn)的性能。
    的頭像 發(fā)表于 02-06 10:11 ?7265次閱讀

    YOLOv8自定義數(shù)據(jù)集訓(xùn)練到模型部署推理簡析

    如果你只是想使用而不是開發(fā),強(qiáng)烈推薦通過pip安裝方式獲取YOLOv8包!YOLOv8安裝命令行
    的頭像 發(fā)表于 03-24 09:27 ?4558次閱讀

    TensorRT 8.6 C++開發(fā)環(huán)境配置與YOLOv8實(shí)例分割推理演示

    對(duì)YOLOv8實(shí)例分割TensorRT 推理代碼已經(jīng)完成C++類封裝,三行代碼即可實(shí)現(xiàn)YOLOv8對(duì)象檢測(cè)與實(shí)例分割模型
    的頭像 發(fā)表于 04-25 10:49 ?5528次閱讀
    TensorRT 8.6 C++開發(fā)環(huán)境配置與<b class='flag-5'>YOLOv8</b>實(shí)例分割<b class='flag-5'>推理</b>演示

    AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8分類模型

    本系列文章將在 AI 愛克斯開發(fā)板上使用 OpenVINO 開發(fā)套件依次部署并測(cè)評(píng) YOLOv8 的分類模型、目標(biāo)檢測(cè)模型、實(shí)例分割
    的頭像 發(fā)表于 05-05 11:47 ?1001次閱讀
    在<b class='flag-5'>AI</b>愛克斯開發(fā)板上用OpenVINO?加速<b class='flag-5'>YOLOv8</b>分類<b class='flag-5'>模型</b>

    AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8目標(biāo)檢測(cè)模型

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 分類模型》介紹了在 AI 愛克斯開發(fā)板上使用 OpenVINO 開發(fā)套件部署并測(cè)評(píng)
    的頭像 發(fā)表于 05-12 09:08 ?1240次閱讀
    在<b class='flag-5'>AI</b>愛克斯開發(fā)板上用OpenVINO?加速<b class='flag-5'>YOLOv8</b>目標(biāo)<b class='flag-5'>檢測(cè)</b><b class='flag-5'>模型</b>

    YOLOv8版本升級(jí)支持小目標(biāo)檢測(cè)與高分辨率圖像輸入

    YOLOv8版本最近版本又更新了,除了支持姿態(tài)評(píng)估以外,通過模型結(jié)構(gòu)的修改還支持了小目標(biāo)檢測(cè)與高分辨率圖像檢測(cè)。原始的YOLOv8
    的頭像 發(fā)表于 05-16 11:14 ?1.2w次閱讀
    <b class='flag-5'>YOLOv8</b>版本升級(jí)支持小目標(biāo)<b class='flag-5'>檢測(cè)</b>與高分辨率圖像輸入

    AI愛克斯開發(fā)板上使用OpenVINO加速YOLOv8目標(biāo)檢測(cè)模型

    《在AI愛克斯開發(fā)板上用OpenVINO加速YOLOv8分類模型》介紹了在AI愛克斯開發(fā)板上使用OpenVINO 開發(fā)套件部署并測(cè)評(píng)YOLOv8
    的頭像 發(fā)表于 05-26 11:03 ?1161次閱讀
    <b class='flag-5'>AI</b>愛克斯開發(fā)板上使用OpenVINO加速<b class='flag-5'>YOLOv8</b>目標(biāo)<b class='flag-5'>檢測(cè)</b><b class='flag-5'>模型</b>

    AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8-seg實(shí)例分割模型

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 目標(biāo)檢測(cè)模型》介紹了在 AI 愛克斯開發(fā)板上使用 OpenVINO 開發(fā)
    的頭像 發(fā)表于 06-05 11:52 ?942次閱讀
    在<b class='flag-5'>AI</b>愛克斯開發(fā)板上用OpenVINO?加速<b class='flag-5'>YOLOv8</b>-seg實(shí)例分割<b class='flag-5'>模型</b>

    教你如何用兩行代碼搞定YOLOv8各種模型推理

    大家好,YOLOv8 框架本身提供的API函數(shù)是可以兩行代碼實(shí)現(xiàn) YOLOv8 模型推理,這次我把這段代碼封裝成了一個(gè)類,只有40行代碼左右,可以同時(shí)支持
    的頭像 發(fā)表于 06-18 11:50 ?2934次閱讀
    教你如何用兩行代碼搞定<b class='flag-5'>YOLOv8</b>各種<b class='flag-5'>模型</b><b class='flag-5'>推理</b>

    AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8-seg實(shí)例分割模型

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 目標(biāo)檢測(cè)模型》介紹了在 AI 愛克斯開發(fā)板上使用 OpenVINO 開發(fā)
    的頭像 發(fā)表于 06-30 10:43 ?849次閱讀
    在<b class='flag-5'>AI</b>愛克斯開發(fā)板上用OpenVINO?加速<b class='flag-5'>YOLOv8</b>-seg實(shí)例分割<b class='flag-5'>模型</b>

    三種主流模型部署框架YOLOv8推理演示

    部署。這里以YOLOv8為例,演示了YOLOv8對(duì)象檢測(cè)模型在OpenVINO、ONNXRUNTIME、TensorRT三個(gè)主流框架上C++推理
    的頭像 發(fā)表于 08-06 11:39 ?2581次閱讀

    OpenCV4.8+YOLOv8對(duì)象檢測(cè)C++推理演示

    自從YOLOv5更新成7.0版本,YOLOv8推出以后,OpenCV4.6以前的版本都無法再加載導(dǎo)出ONNX格式模型了,只有OpenCV4.7以上版本才可以支持最新版本YOLOv5與
    的頭像 發(fā)表于 09-27 11:07 ?1420次閱讀
    OpenCV4.8+<b class='flag-5'>YOLOv8</b>對(duì)象<b class='flag-5'>檢測(cè)</b>C++<b class='flag-5'>推理</b>演示

    基于YOLOv8的自定義醫(yī)學(xué)圖像分割

    YOLOv8是一種令人驚嘆的分割模型;它易于訓(xùn)練、測(cè)試和部署。在本教程中,我們將學(xué)習(xí)如何在自定義數(shù)據(jù)集上使用YOLOv8。但在此之前,我想告訴你為什么在存在其他優(yōu)秀的分割模型時(shí)應(yīng)該使用
    的頭像 發(fā)表于 12-20 10:51 ?708次閱讀
    基于<b class='flag-5'>YOLOv8</b>的自定義醫(yī)學(xué)圖像分割

    基于OpenCV DNN實(shí)現(xiàn)YOLOv8模型部署與推理演示

    基于OpenCV DNN實(shí)現(xiàn)YOLOv8推理的好處就是一套代碼就可以部署在Windows10系統(tǒng)、烏班圖系統(tǒng)、Jetson的Jetpack系統(tǒng)
    的頭像 發(fā)表于 03-01 15:52 ?1334次閱讀
    基于OpenCV DNN實(shí)現(xiàn)<b class='flag-5'>YOLOv8</b>的<b class='flag-5'>模型</b>部署與<b class='flag-5'>推理</b>演示