nnDetection網絡結構分析

基于 RetinaNet 框架擴展,核心用于處理 3D 體積數據(如醫學影像 CT/MRI),通過 “Encoder-Decoder-Head” 架構實現多任務學習。以下從整體框架、核心模塊細節、技術特點、應用場景四個維度展開分析。

一、整體框架概覽

首先通過表格關鍵信息,提煉模型的核心指標與模塊劃分:

核心指標數值 / 信息
基礎架構BaseRetinaNet(RetinaNet 變體,適配 3D 任務)
總參數量18.9 M(輕量級,適合資源受限場景)
輸入數據格式[B, C, D, H, W] = [1, 1, 112, 160, 160](3D 灰度體積數據,單通道)
核心任務1. 3D 目標檢測(多類別);2. 前景背景二分類分割
模塊劃分Encoder(特征提取)→ Decoder(特征金字塔融合)→ Head(檢測)→ Segmenter(分割)

二、核心模塊詳細分析

1. 編碼器(model.encoder):3D 特征提取核心

模塊定位

負責將原始 3D 輸入([1,1,112,160,160])逐步轉換為多尺度、高維特征圖,是參數量占比最高的模塊(14.0 M,占總參數量 74%)。

結構細節
  • 基礎單元StackedConvBlock2(堆疊卷積塊),每個塊包含 2 個ConvInstanceRelu子模塊,子模塊結構為:Conv3d → InstanceNorm3d → ReLU(3D 卷積 + 實例歸一化 + ReLU 激活)。
  • Stage 層級設計:共 6 個 Stage(stages.0 ~ stages.5),逐步實現通道數提升空間尺寸下采樣,具體變化如下表:

Stage 序號輸入規格輸出規格通道變化空間下采樣方式參數量核心作用
0[1,1,112,160,160][1,32,112,160,160]1→32無(僅通道提升)28.6 K初始特征映射,低維編碼
1[1,32,112,160,160][1,64,56,80,80]32→643D 卷積步長 2(D/H/W 均減半)166 K第一次下采樣,提升感受野
2[1,64,56,80,80][1,128,28,40,40]64→128步長 2(D/H/W 減半)664 K中維特征提取
3[1,128,28,40,40][1,256,14,20,20]128→256步長 2(D/H/W 減半)2.7 M高維特征提取
4[1,256,14,20,20][1,320,7,10,10]256→320步長 2(D/H/W 減半)5.0 M深層語義特征捕捉
5[1,320,7,10,10][1,320,7,5,5]320→320步長 2(僅 W 減半)5.5 M最終高維特征輸出
關鍵設計
  • 歸一化選擇:使用InstanceNorm3d而非BatchNorm3d,適配 3D 醫學影像 “小批量訓練” 場景(避免 BatchNorm 在小 batch 下統計量不準確的問題)。
  • 通道增長策略:從 1→32→64→128→256→320,逐步提升特征維度,平衡語義信息與計算量。

2. 解碼器(model.decoder):3D 特征金字塔融合(UFPNModular)

模塊定位

基于改進型 FPN(特征金字塔網絡) ,將 Encoder 輸出的 6 個多尺度特征(記為 P0~P5)融合為統一通道的特征金字塔,為后續檢測頭、分割器提供適配特征,參數量 2.5 M。

核心子模塊

解碼器包含 3 個關鍵組件:lateral(側向連接)、up(上采樣)、out(特征調整),三者協同實現跨尺度特征融合:

子模塊結構細節核心作用
lateralModuleDict(P0~P5),每個鍵對應ConvInstanceRelu(1×1×1 Conv3d+InstanceNorm3d+ReLU)統一特征通道:將 P3~P5 的高通道(256/320)壓縮至 128,P0~P2 保持原通道(32/64/128),消除通道差異
upModuleDict(P1~P5),每個鍵對應ConvTranspose3d(3D 轉置卷積)上采樣對齊尺寸:將 P1→P0 尺寸(56→112)、P2→P1 尺寸(28→56)等,使各層級特征尺寸匹配,便于融合
outModuleDict(P0~P5),每個鍵對應ConvInstanceRelu(3×3×3 Conv3d)特征細化:對融合后的特征進行卷積調整,增強特征表達能力,最終輸出 6 個層級特征(通道 32/64/128/128/128/128)
輸出特征金字塔

最終 Decoder 輸出 6 個尺度的特征圖,覆蓋 “高分辨率低語義”(P0:[1,32,112,160,160])到 “低分辨率高語義”(P5:[1,128,7,5,5]),滿足檢測(需多尺度錨框)與分割(需高分辨率)的雙重需求。

3. 檢測頭(model.head):3D 目標檢測核心

模塊定位

基于 Decoder 輸出的P2~P5 高語義特征(4 個層級),實現 “多類別 3D 目標檢測”,包含分類器(classifier)與回歸器(regressor),總參數量 2.4 M。

3.1 分類器(BCEClassifier):目標類別預測
  • 輸入:Decoder 的 P2 特征([1,128,28,40,40],高語義 + 中等分辨率)
  • 結構conv_internal(2 個ConvGroupRelu)→ conv_out(1×1×1 Conv3d)→ Sigmoid激活
    • ConvGroupRelu:Conv3d + GroupNorm + ReLU(GroupNorm 適配小批量,避免 InstanceNorm 的過擬合風險)
    • conv_out輸出通道:27(對應 27 個目標類別,如醫學影像中的 “肺結節”“血管” 等)
  • 輸出:[1,1209600,1](1209600 為錨框總數,每個錨框對應 1 個類別概率,用 BCEWithLogitsLoss 訓練)
3.2 回歸器(GIoURegressor):3D 邊界框回歸
  • 輸入:與分類器一致(P2 特征)
  • 結構conv_internal(同分類器)→ conv_out(1×1×1 Conv3d)→ Scale(可學習縮放因子)
    • conv_out輸出通道:162(27 類 ×6 個回歸參數,對應 3D 邊界框的 “中心 (x,y,z)+ 尺寸 (w,h,d)” 偏移量)
    • Scale:4 個可學習縮放層(對應 P2~P5),平衡不同尺度錨框的回歸損失(RetinaNet 經典設計)
  • 損失函數:GIoULoss(比 IoULoss 更魯棒,解決邊界框重疊度低時的梯度消失問題)
3.3 錨框生成器(AnchorGenerator3DS)
  • 功能:為 P2~P5 特征圖生成 3D 錨框,覆蓋不同尺度 / 長寬比的目標
  • 輸出:[1384425, 6](1384425 個 3D 錨框,每個錨框含 6 個參數:初始中心與尺寸)
  • 設計邏輯:每個特征點生成多個錨框(如 3 個尺度 ×3 個長寬比),確保小目標(P2 高分辨率)與大目標(P5 低分辨率)均被覆蓋。

4. 分割器(model.segmenter):前景背景分割

模塊定位

基于 Decoder 的P0 高分辨率特征([1,32,112,160,160]),實現 “前景背景二分類分割”,參數量僅 66(輕量級輔助任務)。

結構與訓練
  • 輸入:P0 特征(高分辨率,匹配原始輸入尺寸,確保分割精度)
  • 核心層ConvInstanceRelu(1×1×1 Conv3d,輸入 32 通道→輸出 2 通道)
  • 損失函數SoftDiceLoss(解決類別不平衡,如醫學影像中前景占比低)+ CrossEntropyLoss(提升分類準確性)
  • 輸出:[1,2,112,160,160](2 通道對應前景 / 背景,Softmax激活后得到每個體素的類別概率)

5. 預處理模塊(pre_trafo):數據標注轉換

  • 結構Compose([FindInstances, Instances2Boxes, Instances2Segmentation])
  • 功能:將原始數據的 “實例標注” 轉換為模型可訓練的格式:
    • FindInstances:從輸入中識別目標實例(如醫學影像中的結節區域)
    • Instances2Boxes:將實例轉換為 3D 邊界框坐標(給檢測頭用)
    • Instances2Segmentation:將實例轉換為二值分割圖(給分割器用)

三、模型技術特點

  1. 3D 任務適配:全流程使用 3D 操作(Conv3d/ConvTranspose3d/InstanceNorm3d),專為體積數據設計,避免 2D 模型丟失深度信息的問題。
  2. 多任務協同:同時實現 “3D 檢測 + 分割”,分割任務為檢測提供前景掩碼,減少背景錨框干擾,提升檢測精度。
  3. 輕量級設計:總參數量僅 18.9 M,Encoder 占比 74%(聚焦特征提取),Decoder/Head/Segmenter 按需分配參數量,適合邊緣設備部署(如醫學影像工作站)。
  4. 歸一化策略優化:Encoder 用 InstanceNorm、Head 用 GroupNorm,適配 3D 數據 “小批量、高維度” 的特點,避免 BatchNorm 缺陷。
  5. 特征融合高效:UFPN 模塊實現跨尺度特征無縫融合,平衡高分辨率(分割)與高語義(檢測)需求。

四、應用場景推測

結合模型的 3D 輸入格式([1,1,112,160,160],單通道灰度體積)、多任務設計(檢測 + 分割),其核心應用場景為:

  • 醫學影像分析:如 CT/MRI 影像中的 3D 目標檢測與分割(如肺結節檢測 + 分割、腦瘤檢測 + 分割),單通道適配灰度醫學影像,112×160×160 尺寸符合臨床影像的切片堆疊體積。
  • 工業 3D 檢測:如工業 CT 中的零件缺陷檢測 + 分割(如金屬零件內部裂紋檢測),但更可能聚焦醫學場景(因分割任務為前景背景二分類,符合醫學影像 “目標 vs 背景” 的標注習慣)。

五、總結

該模型是一款面向 3D 體積數據的輕量級多任務網絡,以 RetinaNet 為基礎,通過 “Encoder-Decoder” 架構實現特征提取與融合,同時完成 3D 目標檢測(27 類)與前景背景分割。其設計兼顧精度與效率,歸一化策略、特征融合方式均針對 3D 數據特點優化,尤其適合小批量、高維度的醫學影像分析任務。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93927.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93927.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93927.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Torch -- 卷積學習day4 -- 完整項目流程

完整項目流程總結1. 環境準備與依賴導入import time import os import numpy as np import pandas as pd import torch import torch.nn as nn import torch.optim as optim import torchvision import torchvision.transforms as transforms from torch.utils.data import Dat…

MTK Linux DRM分析(七)- KMS drm_plane.c

一、簡介在 Linux DRM(Direct Rendering Manager)子系統中,Plane(平面)代表了一個圖像源,可以在掃描輸出過程中與 CRTC 混合或疊加顯示。每個 Plane 從 drm_framebuffer 中獲取輸入數據,并負責圖…

OpenHarmony之 藍牙子系統全棧剖析:從協議棧到芯片適配的端到端實踐(大合集)

1. 系統架構概述 OpenHarmony藍牙系統采用分層架構設計,基于HDF(Hardware Driver Foundation)驅動框架和系統能力管理(System Ability)機制實現。 1.1 架構層次 ┌─────────────────────────…

探索 Ultralytics YOLOv8標記圖片

1、下載YOLOv8模型文件 下載地址:https://docs.ultralytics.com/zh/models/yolov8/#performance-metrics 2、編寫python腳本 aaa.py import cv2 import numpy as np from ultralytics import YOLO import matplotlib.pyplot as pltdef plot_detection(image, box…

Matplotlib數據可視化實戰:Matplotlib子圖布局與管理入門

Matplotlib多子圖布局實戰 學習目標 通過本課程的學習,學員將掌握如何在Matplotlib中創建和管理多個子圖,了解子圖布局的基本原理和調整方法,能夠有效地展示多個數據集,提升數據可視化的效果。 相關知識點 Matplotlib子圖 學習內容…

【python實用小腳本-194】Python一鍵給PDF加水印:輸入文字秒出防偽文件——再也不用開Photoshop

Python一鍵給PDF加水印:輸入文字秒出防偽文件——再也不用開Photoshop PDF加水印, 本地腳本, 零會員費, 防偽標記, 瑞士軍刀 故事開場:一把瑞士軍刀救了投標的你 周五下午,你把 100 頁標書 PDF 發給客戶,卻擔心被同行盜用。 想加水…

開源 C++ QT Widget 開發(四)文件--二進制文件查看編輯

文章的目的為了記錄使用C 進行QT Widget 開發學習的經歷。臨時學習,完成app的開發。開發流程和要點有些記憶模糊,趕緊記錄,防止忘記。 相關鏈接: 開源 C QT Widget 開發(一)工程文件結構-CSDN博客 開源 C…

【密碼學實戰】X86、ARM、RISC-V 全量指令集與密碼加速技術全景解析

前言 CPU 指令集是硬件與軟件交互的核心橋梁,其設計直接決定計算系統的性能邊界與應用場景。在數字化時代,信息安全依賴密碼算法的高效實現,而指令集擴展則成為密碼加速的 “隱形引擎”—— 從服務器端的高吞吐量加密,到移動端的…

2025-08-21 Python進階2——數據結構

文章目錄1 列表(List)1.1 列表常用方法1.2 列表的特殊用途1.2.1 實現堆棧(后進先出)1.2.2 實現隊列(先進先出)1.3 列表推導式1.4 嵌套列表推導式2 del 語句3 元組(Tuple)4 集合&…

告別手工編寫測試腳本!Claude+Playwright MCP快速生成自動化測試腳本

在進行自動化測試時,前端頁面因為頻繁迭代UI 結構常有變動,這往往使得自動化測試的腳本往往“寫得快、廢得也快”,維護成本極高。在大模型之前大家往往都會使用錄制類工具,但錄制類工具生成的代碼靈活性較差、定位方式不太合理只能…

一款更適合 SpringBoot 的API文檔新選擇(Spring Boot 應用 API 文檔)

SpringDoc:Spring Boot 應用 API 文檔生成的現代化解決方案 概述 SpringDoc 是一個專為 Spring Boot 應用設計的開源庫,能夠自動生成符合 OpenAPI 3 規范的 API 文檔。它通過掃描項目中的控制器、方法注解及相關配置,動態生成 JSON/YAML/HTML…

文獻閱讀 250821-When and where soil dryness matters to ecosystem photosynthesis

When and where soil dryness matters to ecosystem photosynthesis 來自 <When and where soil dryness matters to ecosystem photosynthesis | Nature Plants> ## Abstract: Background: Projected increases in the intensity and frequency of droughts in the twen…

React學習(九)

目錄&#xff1a;1.react-進階-antd-新增2.react-進階-antd-刪除選中1.react-進階-antd-新增新增代碼&#xff0c;跟需改的代碼類似&#xff0c;直接copy修改組件代碼進行修改userEffect可以先帶著&#xff0c;沒啥用A6組件用到的函數跟修改的也類似&#xff1a;這個useEffect函…

零基礎從頭教學Linux(Day 17)

三層交換機一、三層交換機的配置1.關于如何配置三層交換機&#xff0c;首先我們應該先創建VLANSwitch>en Switch#vlan database % Warning: It is recommended to configure VLAN from config mode,as VLAN database mode is being deprecated. Please consult userdocument…

任務十四 推薦頁面接口開發

一、接口準備 在對接qq音樂接口之前,首先要將之前的項目,一定要記得備份一份; 備份完成之后,首先要在vscode終端安裝axios,這個是請求后端的工具,和之前的ajax一樣,都是請求后端的工具。只不過axios更專業化,跟強大 至于qq音樂接口怎么獲取,一般有兩個途徑,第一個是…

醫療AI與醫院數據倉庫的智能化升級:異構采集、精準評估與高效交互的融合方向(下)

核心功能創新詳解: 統一門戶與角色化工作臺: 統一入口: 用戶通過單一URL登錄,系統根據其角色和權限自動呈現專屬工作臺。 角色化工作臺: 臨床醫生工作臺: 首屏展示常用患者查詢入口、快速統計(如“我的患者檢驗異常趨勢”)、相關臨床文獻推薦、待處理任務(如報告審核)…

數據庫面試常見問題

數據庫 Delete Truncate Drop 區別 答:這三個操作都是針對數據庫的表進行操作,都有刪除表的功能,其中的區別在于: Delete:只將表中的數據進行刪除,不刪除定義不釋放空間,是dml語句,需要提交事務,如果不想刪除可以回滾。delete每次刪除一行,并在事務日志中為所刪除…

用nohup setsid繞過超時斷連,穩定反彈Shell

在We滲透過程中&#xff0c;我們常常會利用目標系統的遠程代碼執行&#xff08;RCE&#xff09;漏洞進行反彈Shell。然而&#xff0c;由于Web服務器&#xff08;如PHP、Python后端&#xff09;的執行環境通常存在超時限制&#xff08;如max_execution_time或進程管理策略&#…

Java設計模式-模板方法模式

Java設計模式-模板方法模式 模式概述 模板方法模式簡介 核心思想&#xff1a;定義一個操作中的算法骨架&#xff08;模板方法&#xff09;&#xff0c;將算法中某些步驟的具體實現延遲到子類中完成。子類可以在不改變算法整體結構的前提下&#xff0c;重定義這些步驟的行為&…

Centos7物理安裝 Redis8.2.0

Centos7物理安裝 Redis8.2.0一、準備依賴環境首先安裝編譯 Redis 所需的依賴&#xff1a;# CentOS/RHEL系統 yum install -y gcc gcc-c make wget 二、下載并編譯 Redis 8.2.0# 1. 下載Redis 8.2.0源碼包 wget https://download.redis.io/releases/redis-8.2.0.tar.gz# 2. 解壓…