作者:陳佳聰
1背景介紹
黃斑病,作為一組影響視網(wǎng)膜黃斑區(qū)的病理性改變,是眼科常見的可致盲疾病之一。黃斑區(qū)是人眼視力最敏感的區(qū)域,主要負責精細視覺及色覺等視功能。正常情況下,外界物體光線進入眼內(nèi),投影在黃斑區(qū)中心凹處,形成清晰精確的像。一旦黃斑區(qū)發(fā)生病變,患者可表現(xiàn)為中心視力下降、視物扭曲變形、視野中心暗點等癥狀。部分黃斑病變可致盲,極大影響患者的生活質(zhì)量。
黃斑病變包括多種類型,其中老年性黃斑變性(AMD)是最常見的一種,隨著年齡的增長,其發(fā)病率逐漸增高。據(jù)國內(nèi)患病率調(diào)查結(jié)果顯示,50歲以上人群年齡相關(guān)性黃斑變性患病率為15.5%,80歲以上人群患病率高達23.5%。據(jù)此估計,我國目前年齡相關(guān)性黃斑變性患者約有數(shù)百萬之多。此外,一些全身慢性疾病如糖尿病、高血壓、動脈粥樣硬化等也可能導致黃斑病變。黃斑病變不僅影響視力,還嚴重影響患者的日常生活和社會參與,給患者及其家庭帶來沉重的負擔。
為此本項目利用黃斑區(qū)眼底彩照及OCT掃描圖像,構(gòu)建基于深度學習算法的黃斑病變檢測模型用于常見9類黃斑區(qū)病變的檢測,為此深度學習模型在分類眼底彩照和OCT圖像時都展現(xiàn)出了高準確度、敏感度及特異度,基于OCT圖像的檢測效果略優(yōu)于眼底彩照。
2系統(tǒng)設(shè)計
2.1硬件設(shè)計
哪吒開發(fā)板搭載英特爾 N97處理器,配備8GB LPDDR5內(nèi)存和64GB eMMC存儲空間,支持Windows、Linux兩個操作系統(tǒng),支持高分辨率顯示,提供HDMI接口使檢測結(jié)果能更好的展示。
首先本項目使用ubuntu 20.04 LTS系統(tǒng)進行項目部署:
2.2環(huán)境搭建
首先部署本系統(tǒng),因為哪吒開發(fā)板出廠并不帶系統(tǒng),需要我們進行燒錄。
進入官網(wǎng):
ubuntu下載
接著進行openvino 配置:
首先進行基礎(chǔ)依賴安裝:
sudo apt-get install libprotobuf-dev protobuf-compiler
輸出回顯中碰到Do you want to continue? [Y/n] y
接著進行OpenVino下載,官網(wǎng)中給出了許多安裝方式,大家可自行安裝。
官網(wǎng)openvino下載
接下來進行數(shù)據(jù)獲取,本項目利用messidor 數(shù)據(jù)庫
下載地址:https://www.adcis.net/en/third-party/messidor/
接下來進行模型準備:Tensorflow轉(zhuǎn)ONNX模型。
首先我們進行tf2onnx的安裝pip install tf2onnx onnx,然后我們使用以下代碼將tensorflow轉(zhuǎn)為ONNX:
import tensorflow as tf from tf2onnx import convert, utils from tf2onnx.tfonnx import process_tf_graph from onnx import shape_inference def convert_tf_to_onnx(tf_model_path, onnx_model_path): # 導入 TensorFlow 模型 with tf.io.gfile.GFile(tf_model_path, "rb") as f: graph_def = tf.compat.v1.GraphDef() graph_def.ParseFromString(f.read()) # 創(chuàng)建一個 TensorFlow 圖 with tf.Graph().as_default() as tf_graph: tf.import_graph_def(graph_def, name="") # 使用 tf2onnx 轉(zhuǎn)換模型 with tf2onnx.utils.make_tf_graph(tf_graph) as tfg: # 獲取輸入和輸出節(jié)點 input_names = ["input_0"] # 根據(jù)你的模型修改輸入節(jié)點名稱 output_names = ["output_0"] # 根據(jù)你的模型修改輸出節(jié)點名稱 # 轉(zhuǎn)換模型 model_proto, _ = convert.from_graph_def( tf_graph.as_graph_def(), input_names, output_names, opset=12 ) # 應用 ONNX 形狀推斷 inferred_model = shape_inference.infer_shapes(model_proto) # 保存 ONNX 模型 with open(onnx_model_path, "wb") as f: f.write(inferred_model.SerializeToString()) print(f"ONNX model saved to {onnx_model_path}") # TensorFlow 模型路徑 tf_model_path = "path/to/your/tf_model.pb" # ONNX 模型保存路徑 onnx_model_path = "path/to/your/onnx_model.onnx" # 轉(zhuǎn)換模型 convert_tf_to_onnx(tf_model_path, onnx_model_path) 接著我們進行onnxruntime的安裝 pip install onnx onnxruntime 接著進行模型驗證,我們可以使用以下腳本(腳本上面是使用圖片作為輸入,大家可以自行轉(zhuǎn)換) import onnx import onnxruntime as ort import numpy as np from PIL import Image import io def preprocess_image(image_path, target_size=(224, 224)): """預處理圖像以匹配模型輸入""" image = Image.open(image_path).convert('RGB') image = image.resize(target_size) image_array = np.array(image).astype(np.float32) / 255.0 image_array = np.transpose(image_array, (2, 0, 1)) # 轉(zhuǎn)換為 CHW 格式 image_array = np.expand_dims(image_array, axis=0) # 添加批次維度 return image_array def load_onnx_model(model_path): """加載 ONNX 模型""" onnx_model = onnx.load(model_path) onnx.checker.check_model(onnx_model) return onnx_model def run_onnx_model(onnx_model_path, image_path): """運行 ONNX 模型并打印輸出""" # 加載 ONNX 模型 onnx_model = load_onnx_model(onnx_model_path) session = ort.InferenceSession(onnx_model_path) # 預處理圖像 input_data = preprocess_image(image_path) # 獲取輸入和輸出名稱 input_name = session.get_inputs()[0].name output_name = session.get_outputs()[0].name # 運行模型 outputs = session.run([output_name], {input_name: input_data}) # 打印輸出 print("Model Output:", outputs[0]) # ONNX 模型路徑 onnx_model_path = "path/to/your/onnx_model.onnx" # 輸入圖像路徑 image_path = "path/to/your/input_image.jpg" # 運行驗證 run_onnx_model(onnx_model_path, image_path)
接著使用openvino中的mo_onnx.py將onnx轉(zhuǎn)為IR中間模型
python mo_onnx.py --input_model 【.onnx模型路徑】 --output_dir 【目標路徑】
接著就可以進行部署
部署頁面
-
處理器
+關(guān)注
關(guān)注
68文章
20069瀏覽量
242764 -
英特爾
+關(guān)注
關(guān)注
61文章
10244瀏覽量
178130 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5999瀏覽量
110055 -
深度學習
+關(guān)注
關(guān)注
73文章
5586瀏覽量
123638
原文標題:開發(fā)者實戰(zhàn)|深度學習+哪吒開發(fā)板,讓黃斑病變遠離我們的眼睛
文章出處:【微信號:英特爾物聯(lián)網(wǎng),微信公眾號:英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
Nanopi深度學習之路(1)深度學習框架分析
【HarmonyOS HiSpark AI Camera】基于深度學習的目標檢測系統(tǒng)設(shè)計
labview深度學習PCB插件光學檢測
深度學習在醫(yī)學圖像分割與病變識別中的應用實戰(zhàn)
基于深度學習的疲勞駕駛檢測算法及模型

深度學習模型訓練過程詳解
OpenVINO? C++ 在哪吒開發(fā)板上推理 Transformer 模型|開發(fā)者實戰(zhàn)

基于哪吒開發(fā)板部署YOLOv8模型

評論