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

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

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

基于深度學(xué)習(xí)算法和哪吒開(kāi)發(fā)板構(gòu)建黃斑病變檢測(cè)模型

英特爾物聯(lián)網(wǎng) ? 來(lái)源:英特爾物聯(lián)網(wǎng) ? 2024-12-09 16:16 ? 次閱讀

作者:陳佳聰

1背景介紹

黃斑病,作為一組影響視網(wǎng)膜黃斑區(qū)的病理性改變,是眼科常見(jiàn)的可致盲疾病之一。黃斑區(qū)是人眼視力最敏感的區(qū)域,主要負(fù)責(zé)精細(xì)視覺(jué)及色覺(jué)等視功能。正常情況下,外界物體光線進(jìn)入眼內(nèi),投影在黃斑區(qū)中心凹處,形成清晰精確的像。一旦黃斑區(qū)發(fā)生病變,患者可表現(xiàn)為中心視力下降、視物扭曲變形、視野中心暗點(diǎn)等癥狀。部分黃斑病變可致盲,極大影響患者的生活質(zhì)量。

黃斑病變包括多種類型,其中老年性黃斑變性(AMD)是最常見(jiàn)的一種,隨著年齡的增長(zhǎng),其發(fā)病率逐漸增高。據(jù)國(guó)內(nèi)患病率調(diào)查結(jié)果顯示,50歲以上人群年齡相關(guān)性黃斑變性患病率為15.5%,80歲以上人群患病率高達(dá)23.5%。據(jù)此估計(jì),我國(guó)目前年齡相關(guān)性黃斑變性患者約有數(shù)百萬(wàn)之多。此外,一些全身慢性疾病如糖尿病、高血壓、動(dòng)脈粥樣硬化等也可能導(dǎo)致黃斑病變。黃斑病變不僅影響視力,還嚴(yán)重影響患者的日常生活和社會(huì)參與,給患者及其家庭帶來(lái)沉重的負(fù)擔(dān)。

為此本項(xiàng)目利用黃斑區(qū)眼底彩照及OCT掃描圖像,構(gòu)建基于深度學(xué)習(xí)算法的黃斑病變檢測(cè)模型用于常見(jiàn)9類黃斑區(qū)病變的檢測(cè),為此深度學(xué)習(xí)模型在分類眼底彩照和OCT圖像時(shí)都展現(xiàn)出了高準(zhǔn)確度、敏感度及特異度,基于OCT圖像的檢測(cè)效果略優(yōu)于眼底彩照。

2系統(tǒng)設(shè)計(jì)

2.1硬件設(shè)計(jì)

哪吒開(kāi)發(fā)板搭載英特爾 N97處理器,配備8GB LPDDR5內(nèi)存和64GB eMMC存儲(chǔ)空間,支持Windows、Linux兩個(gè)操作系統(tǒng),支持高分辨率顯示,提供HDMI接口使檢測(cè)結(jié)果能更好的展示。

首先本項(xiàng)目使用ubuntu 20.04 LTS系統(tǒng)進(jìn)行項(xiàng)目部署:

2.2環(huán)境搭建

首先部署本系統(tǒng),因?yàn)槟倪搁_(kāi)發(fā)板出廠并不帶系統(tǒng),需要我們進(jìn)行燒錄。

進(jìn)入官網(wǎng):

75fe0c28-b3b7-11ef-93f3-92fbcf53809c.png

ubuntu下載

接著進(jìn)行openvino 配置:

首先進(jìn)行基礎(chǔ)依賴安裝:

sudo apt-get install libprotobuf-dev protobuf-compiler

輸出回顯中碰到Do you want to continue? [Y/n] y

接著進(jìn)行OpenVino下載,官網(wǎng)中給出了許多安裝方式,大家可自行安裝。

760816fa-b3b7-11ef-93f3-92fbcf53809c.png

官網(wǎng)openvino下載

接下來(lái)進(jìn)行數(shù)據(jù)獲取,本項(xiàng)目利用messidor 數(shù)據(jù)庫(kù)

下載地址:https://www.adcis.net/en/third-party/messidor/

接下來(lái)進(jìn)行模型準(zhǔn)備:Tensorflow轉(zhuǎn)ONNX模型。

首先我們進(jìn)行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):
  # 導(dǎo)入 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)建一個(gè) 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é)點(diǎn)
    input_names = ["input_0"] # 根據(jù)你的模型修改輸入節(jié)點(diǎn)名稱
    output_names = ["output_0"] # 根據(jù)你的模型修改輸出節(jié)點(diǎn)名稱
    # 轉(zhuǎn)換模型
    model_proto, _ = convert.from_graph_def(
      tf_graph.as_graph_def(), input_names, output_names, opset=12
    )
  # 應(yīng)用 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)
接著我們進(jìn)行onnxruntime的安裝
pip install onnx onnxruntime
接著進(jìn)行模型驗(yàn)證,我們可以使用以下腳本(腳本上面是使用圖片作為輸入,大家可以自行轉(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)):
  """預(yù)處理圖像以匹配模型輸入"""
  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):
  """運(yùn)行 ONNX 模型并打印輸出"""
  # 加載 ONNX 模型
  onnx_model = load_onnx_model(onnx_model_path)
  session = ort.InferenceSession(onnx_model_path)
  # 預(yù)處理圖像
  input_data = preprocess_image(image_path)
  # 獲取輸入和輸出名稱
  input_name = session.get_inputs()[0].name
  output_name = session.get_outputs()[0].name
  # 運(yùn)行模型
  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"
# 運(yùn)行驗(yàn)證
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 【目標(biāo)路徑】

接著就可以進(jìn)行部署

76161552-b3b7-11ef-93f3-92fbcf53809c.png

部署頁(yè)面

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

    關(guān)注

    68

    文章

    19286

    瀏覽量

    229811
  • 英特爾
    +關(guān)注

    關(guān)注

    61

    文章

    9964

    瀏覽量

    171763
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5050

    瀏覽量

    97456
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5503

    瀏覽量

    121157

原文標(biāo)題:開(kāi)發(fā)者實(shí)戰(zhàn)|深度學(xué)習(xí)+哪吒開(kāi)發(fā)板,讓黃斑病變遠(yuǎn)離我們的眼睛

文章出處:【微信號(hào):英特爾物聯(lián)網(wǎng),微信公眾號(hào):英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Nanopi深度學(xué)習(xí)之路(1)深度學(xué)習(xí)框架分析

    學(xué)習(xí),也就是現(xiàn)在最流行的深度學(xué)習(xí)領(lǐng)域,關(guān)注論壇的朋友應(yīng)該看到了,開(kāi)發(fā)板試用活動(dòng)中有【NanoPi K1 Plus試用】的申請(qǐng),介紹中NanopiK1plus的高大上優(yōu)點(diǎn)之一就是“可運(yùn)行
    發(fā)表于 06-04 22:32

    【HarmonyOS HiSpark AI Camera】基于深度學(xué)習(xí)的目標(biāo)檢測(cè)系統(tǒng)設(shè)計(jì)

    項(xiàng)目名稱:基于深度學(xué)習(xí)的目標(biāo)檢測(cè)系統(tǒng)設(shè)計(jì)試用計(jì)劃:嘗試在硬件平臺(tái)實(shí)現(xiàn)對(duì)Yolo卷積神經(jīng)網(wǎng)絡(luò)的加速運(yùn)算,期望提出的方法能夠使目標(biāo)檢測(cè)技術(shù)更便捷,運(yùn)用領(lǐng)域更廣泛。針對(duì)課題的研究一是研究基于
    發(fā)表于 09-25 10:11

    labview深度學(xué)習(xí)PCB插件光學(xué)檢測(cè)

    `labview在檢測(cè)PCBA插件的錯(cuò)、漏、反等缺陷中的應(yīng)用檢測(cè)原理通過(guò)高精度彩色工業(yè)相機(jī)不停板實(shí)時(shí)抓取板卡圖像,采取卷積神經(jīng)網(wǎng)絡(luò)算法處理圖像,智能判定元器件不良。采用最新的深度
    發(fā)表于 07-13 15:27

    深度學(xué)習(xí)在醫(yī)學(xué)圖像分割與病變識(shí)別中的應(yīng)用實(shí)戰(zhàn)

    幫助解釋模型的決策過(guò)程。 總結(jié)起來(lái),基于深度學(xué)習(xí)的醫(yī)學(xué)圖像分割與病變識(shí)別是醫(yī)療領(lǐng)域中的重要應(yīng)用之一。通過(guò)適當(dāng)?shù)臄?shù)據(jù)準(zhǔn)備、模型設(shè)計(jì)和性能評(píng)估,
    發(fā)表于 09-04 11:11

    基于深度學(xué)習(xí)的疲勞駕駛檢測(cè)算法模型

    為實(shí)現(xiàn)復(fù)雜駕駛環(huán)境下駕駛?cè)藛T疲勞狀態(tài)識(shí)別與預(yù)警,提出基于深度學(xué)習(xí)的疲勞駕駛檢測(cè)算法。利用基于 shuffle- channel思想的 MTCNN模型
    發(fā)表于 03-30 09:17 ?25次下載
    基于<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>的疲勞駕駛<b class='flag-5'>檢測(cè)算法</b>及<b class='flag-5'>模型</b>

    什么是深度學(xué)習(xí)算法深度學(xué)習(xí)算法的應(yīng)用

    什么是深度學(xué)習(xí)算法?深度學(xué)習(xí)算法的應(yīng)用 深度
    的頭像 發(fā)表于 08-17 16:03 ?2157次閱讀

    20210520原理圖全志D1-H哪吒開(kāi)發(fā)板

    20210520原理圖D1-H哪吒開(kāi)發(fā)板
    發(fā)表于 03-21 09:50 ?20次下載

    20210520位號(hào)圖全志D1-H哪吒開(kāi)發(fā)板

    20210520位號(hào)圖D1-H哪吒開(kāi)發(fā)板
    發(fā)表于 03-21 09:51 ?2次下載

    20210520定位圖全志D1哪吒開(kāi)發(fā)板

    20210520定位圖D1哪吒開(kāi)發(fā)板
    發(fā)表于 03-21 09:51 ?2次下載

    全志20210520定位圖D1哪吒開(kāi)發(fā)板

    全志20210520定位圖D1哪吒開(kāi)發(fā)板
    發(fā)表于 10-19 15:11 ?0次下載

    全志20210520位號(hào)圖D1-H哪吒開(kāi)發(fā)板

    全志20210520位號(hào)圖D1-H哪吒開(kāi)發(fā)板
    發(fā)表于 10-19 15:11 ?1次下載

    全志20210520原理圖D1-H哪吒開(kāi)發(fā)板

    全志20210520原理圖D1-H哪吒開(kāi)發(fā)板
    發(fā)表于 10-19 15:11 ?2次下載

    深度學(xué)習(xí)模型訓(xùn)練過(guò)程詳解

    詳細(xì)介紹深度學(xué)習(xí)模型訓(xùn)練的全過(guò)程,包括數(shù)據(jù)預(yù)處理、模型構(gòu)建、損失函數(shù)定義、優(yōu)化算法選擇、訓(xùn)練過(guò)程
    的頭像 發(fā)表于 07-01 16:13 ?1268次閱讀

    OpenVINO? C++ 在哪吒開(kāi)發(fā)板上推理 Transformer 模型開(kāi)發(fā)者實(shí)戰(zhàn)

    信用卡大?。?5x56mm)的開(kāi)發(fā)板-『哪吒』(Nezha)為核心,『哪吒』采用IntelN97處理器(AlderLake-N),最大睿頻3.6GHz,Intel
    的頭像 發(fā)表于 09-28 08:01 ?344次閱讀
    OpenVINO? C++ 在<b class='flag-5'>哪吒</b><b class='flag-5'>開(kāi)發(fā)板</b>上推理 Transformer <b class='flag-5'>模型</b>|<b class='flag-5'>開(kāi)發(fā)</b>者實(shí)戰(zhàn)

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

    2024英特爾 “走近開(kāi)發(fā)者”互動(dòng)活動(dòng)-哪吒開(kāi)發(fā)套件免費(fèi)試 用 AI 創(chuàng)新計(jì)劃:哪吒開(kāi)發(fā)板是專為支持入門(mén)級(jí)邊緣 AI 應(yīng)用程序和設(shè)備而設(shè)計(jì),
    的頭像 發(fā)表于 11-15 14:13 ?248次閱讀
    基于<b class='flag-5'>哪吒</b><b class='flag-5'>開(kāi)發(fā)板</b>部署YOLOv8<b class='flag-5'>模型</b>