在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用OpenVINO Python API部署FastSAM模型

英特爾物聯網 ? 來源:英特爾物聯網 ? 2023-10-27 11:04 ? 次閱讀

作者:馮浩遼寧科技大學研究生

指導教師:張海剛 英特爾邊緣計算創(chuàng)新大使深圳職業(yè)技術大學 副教授

當今,深度學習技術在計算機視覺領域取得了巨大的突破,使得各種圖像處理任務變得更加智能化。其中,Semantic Segmentation(語義分割)是一項重要的任務,它有助于計算機理解圖像中不同對象的位置和邊界。本文將介紹如何使用 OpenVINO Python API 部署 FastSAM 模型,以實現快速高效的語義分割。

什么是 FastSAM 模型?

FastSAM 模型是一種輕量級語義分割模型,旨在快速而準確地分割圖像中的對象。它經過了精心設計,以在較低的計算成本下提供卓越的性能。這使得 FastSAM 模型成為許多計算機視覺應用的理想選擇,包括自動駕駛、醫(yī)學圖像分析和工業(yè)自動化等領域。

步驟一:安裝 OpenVINO

要開始使用 OpenVINO 進行推理 FastSAM 模型,首先需要安裝 OpenVINO Toolkit。OpenVINO 是英特爾發(fā)布的開源工具,專為深度學習模型部署而設計。

你可以按照以下步驟安裝OpenVINO :

訪問OpenVINO官方網站下載OpenVINO工具包。

按照官方文檔的說明進行安裝和配置。

步驟二:下載 FastSam 官網模型

FastSAM 模型可以在官方 GitHub 中找到。下載模型并將其解壓縮到合適的文件夾。根據自身情況下載合適的預訓練模型。

這里還需要將下載到的模型,由于這個模型是采用的pytorch 類型的格式,所以還需要將這個 pt 模型轉換為 OpenVINO 的 IR 模型才能進行調用推理。

轉換步驟如下所示:

Pytorch →onnx → IR

需要先導出為 onnx 標準格式,然后經過這個壓縮優(yōu)化轉化為 IR 模型。

OpenVINO 官方提供一個模型轉換工具 Model Optimizer,可以利用這個更加便捷的轉換我們的模型。

例如:

 mo --input_model FastSAM-s.onnx

就會在當前目錄下生成對應的 FastSAM-s.bin和 FastSAM-s.xml 文件,這就是所謂的 IR 模型了。

步驟三:使用 OpenVINO Python API

接下來,我們將使用OpenVINO Python API來部署FastSAM 模型。由于官方提供的這個預訓練模型也是基于yolov8進行優(yōu)化的,所以也需要有和yolov8 相似的處理步驟:

加載模型→讀圖 → 預處理 → 推理 → 后處理

1. 加載模型

加載模型需要創(chuàng)建一個 Core,然后對模型進行讀取編譯:

core = ov.Core()


model = core.read_model(model=model_path)
self.compiled_model = core.compile_model(model = model, device_name=self.device)

左滑查看更多

2. 讀圖

我們使用 opencv讀取任意一張彩色圖像:

Image = cv2.imread(“image_path”)

3. 預處理

預處理主要包括 3 部分,其一是將圖像重新排列為模型所需要的類型(一般來說是 batch Size, channels, height, width),其二是歸一化圖像大小為模型輸入需求的大小,其三是將 opencv 的圖像原始數據放置到 numpy 類型的數據中方便處理。

以下是一個簡單的 Python 預處理,展示了如何對輸入的圖像進行預處理:

def Preprocess(self, image: cv2.Mat, targetShape: list):
    th, tw = targetShape
    h, w = image.shape[:2]
    if h>w:
      scale  = min(th / h, tw / w)
      inp   = np.zeros((th, tw, 3), dtype = np.uint8)
      nw   = int(w * scale)
      nh   = int(h * scale)
      a = int((nh-nw)/2) 
      inp[: nh, a:a+nw, :] = cv2.resize(cv2.cvtColor(image, cv2.COLOR_BGR2RGB), (nw, nh))
    else:
      scale  = min(th / h, tw / w)
      inp   = np.zeros((th, tw, 3), dtype = np.uint8)
      nw   = int(w * scale)
      nh   = int(h * scale)
      a = int((nw-nh)/2) 


      inp[a: a+nh, :nw, :] = cv2.resize(cv2.cvtColor(image, cv2.COLOR_BGR2RGB), (nw, nh))
    rgb = np.array([inp], dtype = np.float32) / 255.0
    return np.transpose(rgb, (0, 3, 1, 2)) # 重新排列為batch_size, channels, height, width

左滑查看更多

4. 推理

在模型的推理之前需要先加載預訓練好的模型,推理部分只需要調用compiled_model 將預處理好的數據放入即可得到輸出結果:

result = self.compiled_model([input])

左滑查看更多

但這只是一個同步的推理過程,有感興趣深入研究的的同學可以參考官網的異步推理。

5. 后處理

后處理主要有兩件事,第一是對輸出的結果進行非極大抑制,第二是將抑制后的結果進行遍歷處理掩膜。以下是一個簡短的例子:

def Postprocess(self, preds, img, orig_imgs, retina_masks, conf, iou, agnostic_nms=False):
    p = ops.non_max_suppression(preds[0],
                conf,
                iou,
                agnostic_nms,
                max_det=100,
                nc=1)
    results = []
    proto = preds[1][-1] if len(preds[1]) == 3 else preds[1] # second output is len 3 if pt, but only 1 if exported
    for i, pred in enumerate(p):
      orig_img = orig_imgs[i] if isinstance(orig_imgs, list) else orig_imgs
      # path = self.batch[0]
      img_path = "ok"
      if not len(pred): # save empty boxes
        results.append(Results(orig_img=orig_img, path=img_path, names="segment", boxes=pred[:, :6]))
        continue
      if retina_masks:
        if not isinstance(orig_imgs, torch.Tensor):
          pred[:, :4] = ops.scale_boxes(img.shape[2:], pred[:, :4], orig_img.shape)
        masks = ops.process_mask_native(proto[i], pred[:, 6:], pred[:, :4], orig_img.shape[:2]) # HWC
      else:
        masks = ops.process_mask(proto[i], pred[:, 6:], pred[:, :4], img.shape[2:], upsample=True) # HWC
        if not isinstance(orig_imgs, torch.Tensor):
          pred[:, :4] = ops.scale_boxes(img.shape[2:], pred[:, :4], orig_img.shape)
      results.append(
        Results(orig_img=orig_img, path=img_path, names="1213", boxes=pred[:, :6], masks=masks))
    return results

左滑查看更多

這樣就可以拿到這個掩碼矩陣數據,這樣就可以根據這個矩陣繪制掩碼即可得到最終圖像。

結語

本文介紹了如何使用 OpenVINO Python API 部署 FastSAM 模型,以實現快速高效的語義分割。以在較低的計算成本下提供卓越的性能。這使得 FastSAM 模型成為許多計算機視覺應用的理想選擇,包括自動駕駛、醫(yī)學圖像分析和工業(yè)自動化等領域。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 計算機
    +關注

    關注

    19

    文章

    7603

    瀏覽量

    89744
  • 模型
    +關注

    關注

    1

    文章

    3458

    瀏覽量

    49761
  • python
    +關注

    關注

    56

    文章

    4821

    瀏覽量

    85779
  • OpenVINO
    +關注

    關注

    0

    文章

    111

    瀏覽量

    377

原文標題:用 OpenVINO? Python API 部署 FastSam 模型 | 開發(fā)者實戰(zhàn)

文章出處:【微信號:英特爾物聯網,微信公眾號:英特爾物聯網】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦

    C#集成OpenVINO?:簡化AI模型部署

    什么是OpenVINO 工具套件? OpenVINO 工具套件是一個用于優(yōu)化和部署人工智能(AI)模型,提升AI推理性能的開源工具集合,不僅支持以卷積神經網
    的頭像 發(fā)表于 02-17 10:03 ?1541次閱讀
    C#集成<b class='flag-5'>OpenVINO</b>?:簡化AI<b class='flag-5'>模型</b><b class='flag-5'>部署</b>

    如何使用OpenVINO C++ API部署FastSAM模型

    象的位置和邊界。本文將介紹如何使用 OpenVINO C++ API 部署 FastSAM 模型,以實現快速高效的語義分割。在前文中我們發(fā)表
    的頭像 發(fā)表于 11-17 09:53 ?1167次閱讀
    如何使用<b class='flag-5'>OpenVINO</b> C++ <b class='flag-5'>API</b><b class='flag-5'>部署</b><b class='flag-5'>FastSAM</b><b class='flag-5'>模型</b>

    是否可以使用OpenVINO?部署管理器在部署機器上運行Python應用程序?

    使用 OpenVINO?部署管理器創(chuàng)建運行時軟件包。 將運行時包轉移到部署機器中。 無法確定是否可以在部署機器上運行 Python 應用程
    發(fā)表于 03-05 08:16

    如何部署OpenVINO?工具套件應用程序?

    編寫代碼并測試 OpenVINO? 工具套件應用程序后,必須將應用程序安裝或部署到生產環(huán)境中的目標設備。 OpenVINO?部署管理器指南包含有關如何輕松使用
    發(fā)表于 03-06 08:23

    無法轉換TF OD API掩碼RPGA模型怎么辦?

    無法轉換重新訓練的 TF OD API 掩碼 RPGA 模型,該模型使用以下命令在 GPU 上工作: mo > --saved_model_dir
    發(fā)表于 03-06 06:44

    使用OpenVINO? 部署PaddleSeg模型庫中的DeepLabV3+模型

    ? ? ? 01 概述 ? ? 本文是OpenVINO 工具套件與百度飛槳PaddlePaddle模型轉換/部署系列的第二部。這篇文章專注于展示如何將百度飛槳PaddelSeg項目
    的頭像 發(fā)表于 11-22 14:58 ?1w次閱讀
    使用<b class='flag-5'>OpenVINO</b>? <b class='flag-5'>部署</b>PaddleSeg<b class='flag-5'>模型</b>庫中的DeepLabV3+<b class='flag-5'>模型</b>

    在C++中使用OpenVINO工具包部署YOLOv5模型

    下載并轉換YOLOv5預訓練模型的詳細步驟,請參考:《基于OpenVINO?2022.2和蝰蛇峽谷優(yōu)化并部署YOLOv5模型》,本文所使用的Open
    的頭像 發(fā)表于 02-15 16:53 ?6661次閱讀

    自訓練Pytorch模型使用OpenVINO?優(yōu)化并部署在AI愛克斯開發(fā)板

    本文章將依次介紹如何將 Pytorch 自訓練模型經過一系列變換變成 OpenVINO IR 模型形式,而后使用 OpenVINO Python
    的頭像 發(fā)表于 05-26 10:23 ?1167次閱讀
    自訓練Pytorch<b class='flag-5'>模型</b>使用<b class='flag-5'>OpenVINO</b>?優(yōu)化并<b class='flag-5'>部署</b>在AI愛克斯開發(fā)板

    如何將Pytorch自訓練模型變成OpenVINO IR模型形式

    本文章將依次介紹如何將Pytorch自訓練模型經過一系列變換變成OpenVINO IR模型形式,而后使用OpenVINO Python
    的頭像 發(fā)表于 06-07 09:31 ?2383次閱讀
    如何將Pytorch自訓練<b class='flag-5'>模型</b>變成<b class='flag-5'>OpenVINO</b> IR<b class='flag-5'>模型</b>形式

    基于OpenVINO Python API部署RT-DETR模型

    平臺實現 OpenVINO 部署 RT-DETR 模型實現深度學習推理加速, 在本文中,我們將首先介紹基于 OpenVINO Python
    的頭像 發(fā)表于 10-20 11:15 ?1271次閱讀
    基于<b class='flag-5'>OpenVINO</b> <b class='flag-5'>Python</b> <b class='flag-5'>API</b><b class='flag-5'>部署</b>RT-DETR<b class='flag-5'>模型</b>

    基于OpenVINO C++ API部署RT-DETR模型

    Python API 部署 RT-DETR 模型 | 開發(fā)者實戰(zhàn)》,在該文章中,我們基于 OpenVINO
    的頭像 發(fā)表于 11-03 14:30 ?1251次閱讀
    基于<b class='flag-5'>OpenVINO</b> C++ <b class='flag-5'>API</b><b class='flag-5'>部署</b>RT-DETR<b class='flag-5'>模型</b>

    基于OpenVINO C# API部署RT-DETR模型

    Python API 部署 RT-DETR 模型 | 開發(fā)者實戰(zhàn)》和《基于 OpenVINO C++
    的頭像 發(fā)表于 11-10 16:59 ?996次閱讀
    基于<b class='flag-5'>OpenVINO</b> C# <b class='flag-5'>API</b><b class='flag-5'>部署</b>RT-DETR<b class='flag-5'>模型</b>

    NNCF壓縮與量化YOLOv8模型OpenVINO部署測試

    OpenVINO2023版本衍生出了一個新支持工具包NNCF(Neural Network Compression Framework – 神經網絡壓縮框架),通過對OpenVINO IR格式模型的壓縮與量化更好的提升
    的頭像 發(fā)表于 11-20 10:46 ?1841次閱讀
    NNCF壓縮與量化YOLOv8<b class='flag-5'>模型</b>與<b class='flag-5'>OpenVINO</b><b class='flag-5'>部署</b>測試

    OpenVINO C# API在intel平臺部署YOLOv10目標檢測模型

    模型設計策略,從效率和精度兩個角度對YOLOs的各個組成部分進行了全面優(yōu)化,大大降低了計算開銷,增強了性能。在本文中,我們將結合OpenVINO C# API使用最新發(fā)布的OpenVINO
    的頭像 發(fā)表于 06-21 09:23 ?1561次閱讀
    用<b class='flag-5'>OpenVINO</b> C# <b class='flag-5'>API</b>在intel平臺<b class='flag-5'>部署</b>YOLOv10目標檢測<b class='flag-5'>模型</b>

    使用OpenVINO Model Server在哪吒開發(fā)板上部署模型

    OpenVINO Model Server(OVMS)是一個高性能的模型部署系統(tǒng),使用C++實現,并在Intel架構上的部署進行了優(yōu)化,使用Open
    的頭像 發(fā)表于 11-01 14:19 ?562次閱讀
    使用<b class='flag-5'>OpenVINO</b> Model Server在哪吒開發(fā)板上<b class='flag-5'>部署</b><b class='flag-5'>模型</b>
    主站蜘蛛池模板: 国产高清精品自在久久 | 啪啪国产视频 | 日本加勒比黑人 | 性欧美性 | 二区中文字幕 | 亚洲一本之道在线观看不卡 | 国产成人精品一区二区仙踪林 | 你懂的在线观看视频 | 欧美一级在线观看视频 | 91美女在线播放 | 国产精品臀控福利在线观看 | 8x8x极品国产在线 | 国产99在线播放 | 午夜免费观看 | 狠狠色噜噜狠狠狠97影音先锋 | 起碰免费视频 | 午夜影吧| 欧美男女交性过程视频 | 日本高清午夜色wwwσ | 国产吧在线视频 | 888米奇在线视频四色 | 高清一级做a爱视频免费 | 日本www.色| 日韩加勒比在线 | 5555kkkk香蕉在线观看 | 久青草国产观看在线视频 | 四虎影院永久免费观看 | 午夜国产理论 | 女性一级全黄生活片免费看 | 伊人久久综合成人亚洲 | 波多野结衣在线一区 | 四虎免费大片aⅴ入口 | 一本久草| 亚色最新网址 | 波多野结衣一级特黄毛片 | 男人资源站 | 国产视频三级 | 黄色永久免费 | 三级理论在线 | 国产精品久久久久久久久免费观看 | h视频在线观看视频观看 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品