新聞中心

EEPW首頁 > 物聯(lián)網(wǎng)與傳感器 > 設(shè)計應(yīng)用 > 基于INTEL 11代芯片Tiger Lake 在OPENVINO AI 套件上所開發(fā)之LUS.AI即時互動智慧醫(yī)療解決方案

基于INTEL 11代芯片Tiger Lake 在OPENVINO AI 套件上所開發(fā)之LUS.AI即時互動智慧醫(yī)療解決方案

作者: 時間:2023-05-18 來源:大大通 收藏


本文引用地址:http://2s4d.com/article/202305/446724.htm

提案動機(jī)

在肺部的檢查上,超音波相較X光或電腦斷層掃描,具有無放射性,操作相對方便的優(yōu)點。但傳統(tǒng)超音波具有不可攜性,病患須至醫(yī)療院所才能做超音波檢查,對于偏遠(yuǎn)或醫(yī)療資源匱乏的地區(qū),難以利用。

且超音波在判讀上,具有難解釋性的缺點,對于超音波影像的判讀,往往訓(xùn)練時間長,判讀時間也較久,醫(yī)生與醫(yī)生間也存在著主觀判讀的歧異性,在醫(yī)病溝通上,對于判讀過后的結(jié)果,醫(yī)師也較難與病患說明。

基于上述的兩項缺點 (不可攜性、難解釋性),本團(tuán)隊希望能訓(xùn)練AI模型,協(xié)助醫(yī)師做肺部超音波影像的判讀,并利用OpenVINO具有最佳化與壓縮模型的優(yōu)點,協(xié)助我們最大化利用現(xiàn)有的硬體資源做模型的推論,讓AI模型在肺部超音波的判讀上更快、更即時,達(dá)到即時輔助判讀的效果。

另我們也配合可攜式的超音波探頭做測試,希望往后也能在院外做超音波檢測,達(dá)到遠(yuǎn)距醫(yī)療的愿景。

解決方案

LUS.團(tuán)隊開發(fā)的移動式智能超音波方案,只要帶著一臺筆電和手持超音波機(jī),不用插電源就可以到處移動為病患做檢查。

本團(tuán)隊開發(fā)用的筆電規(guī)格為 Intel? Core? i7 1165G7 處理器 2.8 GHz,搭配顯卡 Intel? Iris Xe Graphics,16G RAM。簡單來說這就是一臺 Intel 第11代 CPU 的筆電,平??梢宰饕话闶褂玫挠猛?,比如開視訊會議、分享討論案例等等,但如果搭配觸控筆也能方便對超音波影像做標(biāo)注。

除了在筆電上導(dǎo)入AI功能可以輕松達(dá)成外,即使今天到了收訊不良的地區(qū),因為AI在筆電里面跑,所以不需要額外的網(wǎng)路連線,模型推論也非常迅速,能夠即時提供醫(yī)師第一時間的判讀參考。

(目前完成的只有AI肺部異常偵測的模組)


                                   <圖一、 智慧超音波解決方案>

成果說明

AI模型的設(shè)計訓(xùn)練是使用 Tensorflow 2.6 完成,OpenVINO 則是銜接后續(xù)模型布署和推論的部分。以下是本文分享的大鋼,分為四個項目,2 3 4 項 是比較少文章提到的部分,將無私與大家分享:

    1. OpenVINO? 基礎(chǔ)開發(fā)流程

    2. 不同精度模型在不同裝置上的推論速度比較

    3. 不得已的 CAM

    4. OpenVINO? Integration with TensorFlow* (new)




                           <圖二、OpenVINO? 的應(yīng)用架構(gòu),資料來源:Intel >

    OpenVINO? 基礎(chǔ)開發(fā)流程

    如 圖二 所示,最左邊是訓(xùn)練好的模型,藍(lán)色的部分是 OpenVINO? 的區(qū)塊,推論引擎與應(yīng)用程式作互動。

    1. 模型開發(fā)的部分,我們選用 Tensorflow 作框架,因為Tensorflow生態(tài)系是比較完整的,許多工具都有支援。最后將模型存檔為 Saved Model 格式。

    2. OpenVINO? 在安裝上,是比較復(fù)雜的部分,網(wǎng)路上有許多文章介紹如何安裝,但可能因為 OpenVINO? 持續(xù)改版的關(guān)系,所以建議還是參考官網(wǎng)的安裝說明,是最沒問題的方式。

    3. 其實如果不想在本機(jī)安裝的話,其實還有兩個選擇,都可以完成 Model Optimizer 的步驟(簡稱 MO)。這個MO步驟,將會把模型轉(zhuǎn)換為 FP32 或 FP16 的 IR 檔案(.xml .bin),也就是OpenVINO?的模型檔案格式:

    [第一個選擇]是申請使用 OpenVINO DevCloud 來進(jìn)行MO,線上的虛擬機(jī)器里面都已經(jīng)安裝好相關(guān)的工具,很方便上傳模型后做轉(zhuǎn)換模型(可以參考 MakerPRO的介紹)。

    [第二個選擇]是使用 Google CoLab 的環(huán)境(Ubuntu 18.04)安裝OpenVINO?使用,有一個優(yōu)點就是:安裝失敗可以重新開一個 notebook重頭開始。最后將轉(zhuǎn)換完成的 IR 檔下載下來即可。參考這篇文章(里面有CoLab連結(jié)),但連結(jié)中的這個范例安裝OpenVINO?的版本比較舊,建議參考官方的安裝說明作點小修改。

    1. 推論引擎 Inference Engine 的部分(簡稱 IE),是正式應(yīng)用程式要跑的部分,借由它來讀取 IR 檔,并選擇在 OpenVINO? 支援的硬體上作快速的模型推論。這部分若想體驗,其實也可以使用 CoLab notebook 先做測試,只需要pip install openvino就可以使用OpenVINO?的 IE推論引擎了,詳細(xì)也可參考這篇文章(內(nèi)有CoLab連結(jié))。

    2. 使用者界面 User Application,我們使用 pyQt5 來建立 windows的簡單程式。其中影像顯示、模型推論、熱圖顯示是使用兩個平行處理完成。由于模型推論速度已經(jīng)很快(幾十個毫秒),所以速度較慢的反而是資料的前處理、后處理和UI的部分,這方面要加速的話,也許可以做更多的平行化的設(shè)計,讓應(yīng)用程式可以更為即時(real-time)。


    不同精度模型在不同裝置上的推論速度比較

    這邊使用 OpenVINO? 的 benchmark 工具,來評估模型推論引擎 (IE) 搭配不同裝置的效能,這臺筆電包含了兩個可用的裝置(CPU、iGPU)。

    以下 圖三 的評估只有考慮到模型推論的部分,資料前處理、后處理、UI等都沒有納入計算。淺藍(lán)色為 MO 轉(zhuǎn)換的 FP16 的模型,深藍(lán)為 FP32 的模型。我們可以看到FP16模型在 GPU 的效能為 CPU 的兩倍,同質(zhì)整合CPU和GPU的模式(MULTI)有更佳的表現(xiàn)。但其實 CPU裝置 沒有支援 FP16 的資料輸入,所以效能比直接使用 FP32 略差。異質(zhì)整合(HETERO)模式,將模型拆分為 CPU執(zhí)行的部分和 GPU執(zhí)行的部分,僅供參考。

    最后,其實在 iGPU 上就已經(jīng)足夠快了,我們的應(yīng)用目標(biāo)是包含前處理、后處理、UI 達(dá)到 30 FPS。所以我們決定使用 高精度(FP32)模型在 iGPU 上做推論,然后將 CPU 留做 前處理、后處理、UI 的運算上使用。


                              <圖三、推論引擎使用不同裝置的效能,每秒推論幾個樣本(FPS) >

    不得已的 CAM

    CAM (Class Activation Mapping) 是作為分類依據(jù)的可視化方法,也是 圖一 相片中的熱區(qū)圖。CAM(沒有Grad) 的實作上,我們參考了這篇范例(pneumonia-classification)。如果有使用 DevCloud 的話,也可以在 Sample Applications 當(dāng)中找到這范例。

    但這個范例方法沒有辦法計算模型的梯度(Gradient),所以沒有辦法算出比較好的熱圖(Grad-CAM等)。分析無法得到模型梯度是因為 OpenVINO? 專注在模型布署和推論上(Forward pass);所以如果要監(jiān)看梯度等進(jìn)階需求,可能還是得回到 Tensorflow 的功能來實現(xiàn)。

     
                         <圖四、Tensorflow 實現(xiàn)的 Grad-CAM 熱區(qū)顯示比較精確>

    OpenVINO? Integration with TensorFlow* (new)

    因為要做到 Grad-CAM,所以需要進(jìn)階地使用到 Tensorflow。但如何讓 Tensorflow 可以使用到Intel的內(nèi)顯(iGPU) 就需要用到:OpenVINO? integration with TensorFlow (GitHub repo) 。它跟上面提到的 OpenVINO? 運作方式上不太一樣,這個工具提供的是一個 整合的后端(backend) 讓 Tensorflow 可以直接使用到 Intel? 的裝置 CPU、iGPU、VPU,如圖五所示。


              <圖五、OpenVINO? Integration with TensorFlow 應(yīng)用架構(gòu),資料來源:Intel >

    在筆者撰寫此篇的時候,它在 Windows 上還是 Beta版 (其他作業(yè)系統(tǒng)已經(jīng)是正式版了)。但我們還是依照 互動安裝指引 來安裝這個工具,如 圖六 所示,Windows版 當(dāng)前只支援 Python3.9。



                                              <圖六、互動安裝指引,資料來源:Intel >

    在使用上,出奇的簡單!如 圖七 的簡單范例,在定義完 后端(backend) 之后,就繼續(xù)正常使用 Tensorflow 。



    結(jié)論

    目前嘗試的 OpenVINO? Integration with TensorFlow 在windows上的beta版,后端可以看出有使用到新一代的 Intel oneAPI 的 oneDNN,在硬體的整合運用上很值得期待。雖然目前 openvino_tensorflow 在我們模型上的推論效能為 25.27 FPS 表現(xiàn)較為普通,但期待日后正式版的發(fā)布,屆時若能與 iGPU 整合得更好,想必會有更佳的體驗。


    #LUS.團(tuán)隊

    ?場景應(yīng)用圖

    ?產(chǎn)品實體圖

    ?展示板照片

    ?方案方塊圖

    ?Intel 11 Gen Spec.

    ?核心技術(shù)優(yōu)勢

    1. 高效能 CPU 與 GPU 結(jié)合 和深度學(xué)習(xí)功能,能夠在各種用途整合工作負(fù)載,例如電腦數(shù)值控制 (CNC) 機(jī)器、即時控制、人機(jī)界面、工具應(yīng)用、醫(yī)療成像與診斷(在超音波這類用途),以及需要具備 AI 功能高分辨率 HDR 輸出的其他用途。 2. 顯示芯片、媒體與顯示器引擎可輸出達(dá) 4x4k60 HDR 或 2x8K60 SDR,搭載兩個 VDBOX,可以用 1080p 和每秒 30 個影格的方式,解碼超過 40 個傳入的視訊串流。引擎支援各種用途,例如數(shù)位招牌與智能零售(包括專為分析強(qiáng)化的 AI),以及具備推斷功能的電腦視覺,適用于網(wǎng)路視訊錄制器或機(jī)器視覺與檢測這類用途。 3. 利用在 CPU 向量神經(jīng)網(wǎng)路指令集 (VNNI) 執(zhí)行的 Intel? DL Boost,或是利用在 GPU (Int8) 執(zhí)行的 8 位元整數(shù)指令集,即可實現(xiàn) AI 與推斷加速。 4. 全新的物聯(lián)網(wǎng)導(dǎo)向軟硬體,實現(xiàn)了需要提供及時效能的各種應(yīng)用。適用于可程式化邏輯控制器與機(jī)器人這類用途的快速周期時間與低延遲。

    ?方案規(guī)格

    * 頻率最高可達(dá) 4.4 GHz *搭載達(dá) 96 個 EU 的 Intel? Iris? Xe 顯示芯片 *最高支援 4x4k60 HDR 或 2x8K60 SDR *Intel? Deep Learning Boost *最高 DDR4-3200 / LPDDR4x-4267 *Thunderbolt? 4/USB4 與 PCIe* 4.0 (CPU) *Intel? Time Coordinated Computing(在精選的 SKU) *頻內(nèi) ECC 與延伸溫度(在精選的 SKU) *Intel? Functional Safety Essential Design Package (Intel? FSEDP)(在精選的 SKU)




關(guān)鍵詞: INTEL Tiger Lake OPENVINO AI LUS.AI

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉