Subskrypcja JoVE jest wymagana do oglądania tego materiału. Zaloguj się lub rozpocznij bezpłatny okres próbny.

Artykuł metodologiczny

Zautomatyzowana ilościowa analiza naczyń płucnych w przepuklinie przeponowej wrodzonej z wykorzystaniem uczenia głębokiego

112 wyświetleń

DOI:

10.3791/70428

8 maja 2026

W tym artykule

Podsumowanie

Protokół ten opisuje w pełni zautomatyzowany proces głębokiego uczenia do segmentacji i analizy naczyń płucnych podczas tomografii komputerowej noworodków. Metoda ta umożliwia ilościową ocenę morfometryczną rozwoju naczyń u wrodzonej przepukliny przeponowej (CDH) oraz u osób kontrolnych, wspierając nieinwazyjną charakterystykę hipoplazji płuc i niedorozwoju naczyń.

Streszczenie

Wrodzona przepuklina przeponowa (CDH) charakteryzuje się hipoplazją płuc oraz niedorozwojem naczyń, co prowadzi do zaburzonej wymiany gazowej i wysokiej śmiertelności noworodków. Dokładna i ilościowa ocena naczyń płucnych jest kluczowa dla zrozumienia nasilenia choroby, jednak ręczna segmentacja trójwymiarowych sieci naczyń na obrazach medycznych jest czasochłonna i zależy od operatora.

Protokół ten oferuje w pełni zautomatyzowaną metodę segmentacji naczyń płucnych oraz analizy morfometrycznej opartą na głębokim uczeniu z wykorzystaniem tomografii komputerowej (CT) po porodzie. Pipeline obejmuje standaryzowane etapy wstępnego przetwarzania – konwersję do jednostek Hounsfield, okienkowe, izotropowe ponowne próbkowanie oraz adaptacyjne wyrównywanie histogramu o ograniczonym kontrastie (CLAHE) – aby normalizować dane obrazowe i poprawić widoczność naczyń. Następnie trenowana jest architektura sieci neuronowej U-Net (CNN) do segmentacji naczyń płucnych, a następnie zastosowana jest trójwymiarowa algorytm szkieletyzacji do ilościowego określenia parametrów morfometrycznych, takich jak liczba gałęzi, średnia długość gałęzi i głębokość pokoleniowa.

Reprezentatywne wyniki pokazują, że proponowany model osiąga wysoką dokładność segmentacji, a konfiguracja transferowego uczenia zapewnia najlepsze wyniki. Ilościowa analiza morfometryczna wykazuje wyraźnie zmniejszoną złożoność naczyniową w CDH w porównaniu z kontrolnymi płucami, co jest zgodne ze znanymi cechami patologicznymi hipoplazji płuc.

To zautomatyzowane podejście umożliwia powtarzalną, ilościową i nieinwazyjną ocenę morfologii naczyń płucnych w CDH. Metoda ta może być adaptowana do innych metod obrazowania i stosowana w badaniach rozwoju płuc płodu i noworodków, ułatwiając badania translacyjne i przyszłą integrację kliniczną.

Wprowadzenie

Wrodzona przepuklina przeponowa (CDH) to zagrażająca życiu wada wrodzona, charakteryzująca się wadą przeponową, prowadzącą do przepukliny wnętrzności brzusznej w tułów 1,2. To fizyczne ucisk poważnie upośledza rozwój płuc, prowadząc do hipoplazji płuc i utrzymującego się nadciśnienia płucnego (PPHN), które są głównymi czynnikami chorobności i śmiertelności. Oprócz hipoplazji płuc i niedorozwoju naczyń, wykazano, że upośledzony rozwój serca oraz dysfunkcja komor istotnie wpływają na wyniki kliniczne u noworodków z CDH. Podstawowa patofizjologia obejmuje nieprawidłowy rozwój obu dróg oddechowych i łożyska naczyniowego płucnego, co prowadzi do zmniejszenia liczby naczyń, zwiększonej muskularyzacji tętniczek, a w konsekwencji do zwiększonego oporu naczyniowego 3,4. Potrzebne są obiektywne i ilościowe biomarkery, aby dokładnie stratyfikować ryzyko, kierować interwencjami i monitorować reakcję na leczenie u pacjentów z CDH5. Jednym z kluczowych aspektów tej oceny jest szczegółowa analiza naczyń płucnych, która może dostarczyć wglądu w zakres hipoplazji płuc oraz funkcjonalność płuc. Postępy w technikach obrazowania, zwłaszcza tomografii komputerowej (CT), zwiększyły naszą zdolność do szczegółowej wizualizacji i ilościowego określenia naczyń płucnych 6,7.

Podczas gdy tomografia komputerowa (CT) po porodzie dostarcza szczegółów anatomicznych płuc o wysokiej rozdzielczości, analiza skomplikowanego drzewa naczyniowego płuc pozostaje trudna. Istniejące metody segmentacji naczyniowej często opierają się na tradycyjnych technikach przetwarzania obrazów, które wymagają znaczącej interwencji manualnej, są podatne na artefakty obrazowe i mogą nie być odporne na poważne zniekształcenia anatomiczne w CDH 7,8,9,10. Głębokie uczenie, szczególnie konwolucyjne sieci neuronowe (CNN), takie jak architektura U-Net, osiągnęło niezwykłe sukcesy w zautomatyzowanej segmentacji obrazów medycznych. Jednak wiele istniejących modeli jest trenowanych na zdrowych osobach lub innych kontekstach chorób, co ogranicza ich zastosowanie do wad wrodzonych, takich jak CDH 10,11,12,13.

Pomimo tych postępów, w literaturze wciąż istnieją znaczące luki. Wiele badań koncentrowało się na zdrowych osobach lub specyficznych schorzeniach płuc, z ograniczoną uwagą na wadach wrodzonych, takich jak CDH12. Dodatkowo, choć modele głębokiego uczenia wykazały lepszą wydajność, często wymagają dużych, adnotowanych zbiorów danych do treningu, które nie zawsze są dostępne w rzadkich przypadkach, takich jak CDH. Ponadto istniejące modele nie w pełni rozwiązały wyzwania rozróżniania różnych typów naczyń płucnych (np. tętnic i żył) w obecności poważnych zniekształceń anatomicznych spowodowanych przez CDH. To ograniczenie podkreśla potrzebę dalszych badań w celu opracowania bardziej solidnych modeli, które będą mogły precyzyjnie segmentować i analizować naczynia płucne u pacjentów z CDH.

Celem tego badania jest uzupełnienie tych luk poprzez opracowanie i walidację w pełni zautomatyzowanych ram głębokiego uczenia do segmentacji naczyń płucnych oraz wyodrębnienia ilościowych cech morfometrycznych z tomografii komputerowej. Kluczową innowacją naszego podejścia jest trenowanie modelu na połączonym zbiorze danych pacjentów CDH i kontrolnych, co pozwala mu nauczyć się solidnej reprezentacji zarówno prawidłowych, jak i patologicznych wzorców naczyniowych. Chociaż obrazowanie tomografii komputerowej wykorzystuje promieniowanie jonizujące, co czyni je nieodpowiednim do rutynowych badań podłużnych, to badanie stanowi kluczowy dowód koncepcji. Głównym celem tego badania jest wykazanie, że zautomatyzowana radiologiczna ilościowa ilościowa struktura naczyniowa jest wykonalna i może niezawodnie odróżnić pacjentów z CDH od grupy kontrolnej. Sukces w tej dziedzinie zapewnia niezbędną walidację do dostosowania tego ilościowego systemu do metod obrazowania wolnego od promieniowania, takich jak rezonans magnetyczny (MRI), do przyszłych zastosowań klinicznych.

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Protokół

Wszystkie procedury z udziałem uczestników ludzkich były przeprowadzane zgodnie z wytycznymi instytucjonalnego komitetu etyki badań nad ludźmi i zatwierdzone przez Instytucjonalną Radę Przeglądową (IRB #2017-6361). Badanie przeprowadzono zgodnie z obowiązującymi standardami regulacyjnymi. Dane pacjentów zostały zebrane retrospektywnie i zdeidentyfikowane przed analizą. Przegląd opracowanego systemu przedstawiono na Rysunku 1.

1. Wstępne przetwarzanie obrazu

  1. Załaduj surowe tomografie komputerowe noworodków w formacie DICOM do środowiska pracy.
    1. Otwórz oprogramowanie do analizy obrazów medycznych i stwórz nową przestrzeń roboczą projektu.
    2. Kliknij Plik > Import > serii DICOM .
    3. Przejdź do folderu zawierającego tomografię komputerową piersiową noworodków w formacie DICOM i wybierz pełną serię obrazów.
    4. Sprawdź, czy wszystkie fragmenty w serii są poprawnie wykrywane i uporządkowane na podstawie metadanych akwizycji (np. Numer Instancji).
    5. Potwierdź wymiary obrazu, odstępy wokseli i grubość wycinków w panelu metadanych, aby zapewnić spójność między skanami.
    6. Załaduj serię do miejsca roboczego i wizualnie sprawdź widoki osiowe, koronalne i strzałkowe, aby potwierdzić prawidłową orientację i brak błędów obciążeniowych.
  2. Konwertowanie plików DICOM do formatu NIfTI za pomocą oprogramowania open-source, aby ułatwić manipulację i analizę.
    1. Otwórz okno terminala w środowisku obliczeń naukowych.
    2. Przejdź do katalogu zawierającego serię obrazów DICOM za pomocą polecenia cd.
    3. Wykonaj narzędzie konwersji DICOM-na-NIfTI za pomocą następującej struktury poleceń: dcm2niix -z y -f output_filename -o /output_directory /input_directory
    4. Upewnij się, że kompresja jest włączona (-z y), aby wygenerować skompresowany plik .nii.gz.
    5. Sprawdź, czy plik wyjściowy został pomyślnie wygenerowany w określonym katalogu wyjściowym.
    6. Otwórz przekonwertowany plik NIfTI w medycznym podglądaczu obrazów i wizualnie obejrzyj płaszczyzny osiowe, koronalne i strzałkowe, aby potwierdzić prawidłową orientację przestrzenną i integralność obrazu.
    7. Potwierdź odstępy wokseli i wymiary obrazu, aby zapewnić spójność wszystkich osób przed wstępnym przetwarzaniem.
  3. Przekonwertowanie intensywności obrazu na jednostki Hounsfielda (HU) za pomocą metadanych specyficznych dla skanera lub standardowych wzorów.
    1. Wyodrębnij parametry metadanych DICOM, Reskaluj Nachylenie i Przeskaluj Intercept z nagłówka obrazu dla każdego skanu.
    2. Dla każdej wartości intensywności woksela (I_raw) oblicz odpowiadającą jednostkę Hounsfielda (HU) według następującego wzoru: HU = (I_raw × Rescale Slope) + Rescale Intercept.
    3. Stosuj konwersję do całej objętości obrazu 3D, używając operacji macierzy po elementach w środowisku obliczeniowym naukowym.
    4. Potwierdź poprawną konwersję, potwierdzając, że obszary powietrza mają około −1000 HU, a obszary tkanek miękkich mieszczą się w oczekiwanych zakresach fizjologicznych.
    5. Zapisz przekonwertowany woluminus jako nowy plik NIfTI, aby zachować oryginalne dane.
  4. Stosuj windowing, aby podkreślić płuca i tkanki miękkie. Ustaw poziom okna (WL) na -400 HU i szerokość okna (WW) na 1500 HU.
    1. Otwórz przekonwertowany plik NIfTI w oprogramowaniu do wizualizacji obrazów.
    2. Przejdź do wyświetlania obrazu lub panelu ustawień intensywności.
    3. Wybierz opcję zmiany okna/poziomu .
    4. Ręcznie ustaw wartość poziomu okna (WL) na -400 jednostek Hounsfield (HU).
    5. Ustaw wartość Window Width (WW) na 1500 HU.
    6. Potwierdź i zastosuj ustawienia, aby zaktualizować wizualizację obrazu.
    7. Sprawdź, czy mięźmiawica płuc i naczynia płucne są wyraźnie odróżnialne od struktur kości i śródpiersia, zanim przejdziesz do dalszych etapów preprocessingu.
  5. Wykonaj izotropowe ponowne próbkowanie, aby zapewnić jednolite wymiary wokseli (np. 1 mm × 1 mm × 1 mm) za pomocą interpolacji trójliniowej.
    1. Załaduj obraz NIfTI do środowiska Python, korzystając z medycznej biblioteki przetwarzania obrazów.
    2. Wyodrębnij oryginalne odstępy wokselowe z metadanych nagłówka obrazu.
    3. Zdefiniuj docelowe odstępy izotropowe jako (1,0, 1,0, 1,0) mm.
    4. Oblicz nowe wymiary obrazu według wzoru: new_size = original_size × (original_spacing / target_spacing)
    5. Zainicjalizuj obiekt resamplowania.
    6. Ustaw metodę interpolacji na interpolację trójliniową.
    7. Przypisz docelowe odstępy wokseli (1,0 mm × 1,0 mm × 1,0 mm).
    8. Ustaw nowy rozmiar obrazu.
    9. Zachowaj oryginalny kierunek obrazu i metadane pochodzenia.
    10. Wykonaj operację ponownego próbkowania.
    11. Zapisz ponownie próbkowany obraz w formacie NIfTI do kolejnych etapów wstępnego przetwarzania.
    12. Przed kontynuowaniem sprawdź odstępy izotropowe, sprawdzając zaktualizowane wymiary wokseli w nagłówku obrazu.
  6. Zastosuj adaptacyjne wyrównywanie histogramów o ograniczonym kontrastie (CLAHE), aby zwiększyć kontrast i poprawić widoczność struktur naczyniowych.
    1. Zaimportuj wymaganą bibliotekę przetwarzania obrazów do środowiska Python.
    2. W razie potrzeby przekonwertuj ponownie próbkowany 3D volumen CT na 8-bitowy format szarości, używając liniowej normalizacji intensywności, aby odwzorować wybrany zakres HU na 0–255.
    3. Przetworz objętość CT kawałek po przekroju w płaszczyźnie osiowej, aby zastosować CLAHE w 2D.
    4. Zainicjalizuj obiekt CLAHE używając następujących parametrów: clipLimit = 2.0, tileGridSize = (8, 8).
    5. Dla każdego cięcia osiowego zastosuj funkcję CLAHE , aby zwiększyć lokalny kontrast.
    6. Po zastosowaniu CLAHE odtworz przetworzone fragmenty z powrotem na objętość 3D.
    7. Zachowaj objętość z wzmocnionym kontrastem w formacie NIfTI na kolejne segmentacje.
    8. Sprawdź wizualnie, czy naczynia płucne są bardziej odróżnialne od otaczającego miądzia, bez nadmiernego wzmocnienia hałasu, zanim przejdziesz dalej.
  7. Wizualnie przeanalizuj podzbiór preformowanych obrazów, aby zapewnić jakość i spójność w całym zbiorze danych.
    1. Losowo wybierz co najmniej 10% całego zbioru danych do ręcznej oceny jakości.
    2. Otwórz każdy wybrany wstępnie przetworzony tom w przeglądarce obrazów medycznych.
    3. Sprawdź płaszczyzny osiowe, koronalne i strzałkowe, aby zweryfikować następujące kwestie: prawidłową orientację przestrzenną; Brak artefaktów obcinających; Prawidłowe stosowanie parametrów okienkowych; Udane izotropowe ponowne próbkowanie (jednorodne odstępy wokselowe); Odpowiednie wzmocnienie kontrastu po CLAHE.
    4. Potwierdź, że naczynia płucne są wyraźnie odróżnialne od sąsiednich struktur mięczasowych bez nadmiernego wzmocnienia szumów.
    5. Porównaj obrazy wstępnie przetworzone z oryginalnymi objętościami przekonwertowane przez HU, aby upewnić się, że etapy wstępnego przetwarzania nie wprowadzały zniekształceń ani niespójności anatomicznych.
    6. Dokumentuj wszelkie błędy wstępnego przetwarzania i powtarzaj wcześniejsze przetwarzanie dla dotkniętych przypadków, jeśli to konieczne.

2. Ręczna adnotacja

  1. Wybierz reprezentatywny podzbiór tomografii komputerowej zarówno od pacjentów kontrolnych, jak i CDH, które będą używane do ręcznej adnotacji. Zadbaj o zrównoważony rozkład zmienności anatomicznej.
    1. Zidentyfikuj wszystkie kwalifikujące się wstępnie opracowane tomografie komputerowe zarówno z grupy kontrolnej, jak i CDH.
    2. Wyklucz badania z poważnym artefaktem ruchu lub niepełnym pokryciem płuc.
    3. Wybierz losowo zdefiniowaną liczbę przypadków z każdej grupy, aby zapewnić zrównoważoną reprezentację.
    4. Zapewnij uwzględnienie przypadków wykazujących różnorodność anatomiczną, w tym różnice w objętości płuc, gęstości naczyniowej oraz nasileniu przesunięcia śródpiersiowego.
    5. Potwierdź, że wybrane przypadki CDH wykazują różny stopień hipoplazji płuc, jeśli jest dostępna.
    6. Dokumentuj wybrane identyfikatory sprawy przed przystąpieniem do ręcznego adnotowania.
  2. Załaduj wstępnie przetworzone obrazy NIfTI do narzędzia do 3D do adnotacji obrazów medycznych.
    1. Otwórz oprogramowanie do adnotacji obrazów medycznych 3D.
    2. Stwórz nowy projekt lub sesję segmentacyjną.
    3. Kliknij Plik > Otwórz obraz (lub równoważną opcję importu).
    4. Przejdź do katalogu zawierającego wstępnie przetworzony plik NIfTI (.nii lub .nii.gz) i wybierz obraz.
    5. Potwierdź pomyślne obciążenie, weryfikując prawidłową orientację obrazu w widokach osiowych, koronalnych i strzałkowych.
    6. W razie potrzeby dostosuj ustawienia wyświetlacza, aby zoptymalizować wizualizację.
    7. Stwórz nową etykietę segmentacyjną lub warstwę maski do przechowywania ręcznych adnotacji naczyń.
    8. Zapisz plik projektu przed rozpoczęciem ręcznej adnotacji.
  3. Korzystając z widoków osiowych, koronalnych i strzałkowych, ręcznie segmentuj naczynia płucne, wyznaczając struktury naczyniowe w każdym odpowiednim przecięciu.
    1. Aktywuj warstwę etykiet segmentacji utworzoną w kroku 2.2.
    2. Wybierz narzędzie do ręcznego rysowania lub pędzla w oprogramowaniu do adnotacji.
    3. Reguluj rozmiar pędzli dynamicznie zgodnie z średnicą naczynia, aby zapewnić dokładne śledzenie granic.
    4. Używając przekrojów osiowych jako głównej płaszczyzny odniesienia, ręcznie wyznaczaj widoczne struktury naczyniowe płuc, w tym gałęzie tętnicze i żylne.
    5. Wyklucz struktury nienaczyniowe, takie jak oskrzela, ściany dróg oddechowych i tkanki śródpiersiowe.
    6. Przewijaj kawałek po kawałku przez całą objętość płuca, aby zapewnić ciągłe adnotacje każdej gałęzi naczyniowej.
    7. Krzyżowo weryfikować każdy obszar z adnotacjami w widokach koronalnych i strzałkowych, aby potwierdzić spójność anatomiczną i uniknąć nieciągłości.
    8. Uwzględnij naczynia aż do najmniejszych wizualnie rozpoznawalnych gałęzi, unikając nadmiernej segmentacji artefaktów szumowych.
    9. Okresowo renderuj podgląd 3D segmentacji, aby zweryfikować ciągłość przestrzenną drzewa naczyniowego.
    10. Zapisz ukończoną maskę segmentacji w formacie NIfTI przed przejściem do treningu modelowania.
  4. Notuj tylko naczynia płucne, z wyłączeniem serca, oskrzeli i głównych struktur niepłucnych.
    1. Zidentyfikuj tętnice i żyły płucne w obrębie mięźmiaszka płucnego, używając przekrojów osiowych jako podstawowego punktu odniesienia.
    2. Obejmuje wewnątrzprzymięsowe gałęzie naczyniowe wychodzące z głównych tętnic płucnych i rozciągające się dystalnie w obrębie pól płucnych.
    3. Wyłącz komory serca, przedsionki, komory i naczynia wielkie.
    4. Wyłącz struktury dróg oddechowych, w tym oskrzela i ściany oskrzeli, poprzez odróżnienie ich od naczyń na podstawie morfologii i cech luminalnych.
    5. Unikaj oznaczania tkanek miękkich śródpiersiowej, opłucnej i ścian klatki piersiowej.
    6. Użyj widoków wielopłaszczystych (osiowych, koronalnych, strzałkowych), aby potwierdzić, że struktury adnotowane podążają za oczekiwaną ciągłością naczyniową i wzorcami rozgałęzień.
    7. Gdy różnicowanie między naczyniem a drogami oddechowymi jest niepewne, należy zweryfikować ciągłość między sąsiednimi przecinkami, aby potwierdzić trajektorię naczyniową przed oznakowaniem.
    8. Wykonaj ostateczne renderowanie 3D segmentowanej objętości, aby upewnić się, że uwzględniono tylko drzewo naczyniowe płuc.
  5. Jeśli jest to możliwe, skonsultuj się z ekspertami od obrazowania klinicznego, aby zweryfikować niejednoznaczne obszary podczas adnotacji.
    1. Zidentyfikuj obszary, w których granice naczyń są niepewne z powodu niskiego kontrastu, zniekształceń anatomicznych lub bliskości oskrzeli czy struktur śródpiersiowych.
    2. Oznacz te regiony w oprogramowaniu adnotacji za pomocą tymczasowej etykiety lub narzędzia do komentarzy.
    3. Przedstaw oznaczone obszary ekspertowi ds. obrazowania klinicznego.
    4. Przeanalizuj jednocześnie obrazy osiowe, koronalne i strzałkowe, aby ustalić, czy struktura odzwierciedla naczynia płucne.
    5. Zmodyfikuj maskę segmentacji na podstawie konsensusu ekspertów.
    6. Dokumentuj wszelkie poprawione obszary przed ostatecznym wykonaniem maski prawdy.
  6. Przeprowadz walidację między oceniającymi, pozwalając co najmniej dwóm niezależnym anotatorom przejrzeć i dopracować każdą segmentację. W przypadku nieporozumienia osiągnij konsensus poprzez dyskusję lub arbitraż.
    1. Przypisz każde wybrane badanie tomografii komputerowej dwóm niezależnym anotatorom z doświadczeniem w analizie obrazowania klatki piersiowej.
    2. Upewnij się, że adnotatorzy wykonują segmentację niezależnie i są ślepi na wyniki innych.
    3. Po ukończeniu niezależnych adnotacji porównaj maski segmentacyjne za pomocą ilościowej metryki nakładania się (np. współczynnika podobieństwa kości).
    4. Zidentyfikuj obszary różnic różnicowych według voxelów między maskami.
    5. Przeanalizuj wspólnie obszary rozbieżne na płaszczyźnie osiowej, koronalnej i strzałkowej.
    6. Osiągnij konsensus poprzez uporządkowaną dyskusję.
    7. Jeśli niezgoda się utrzymuje, zaangażuj trzeciego starszego recenzenta do arbitrażu ostatecznej decyzji.
    8. Zachowaj maskę segmentacji konsensusu jako ostateczną etykietę prawdziwości w treningu modelu.
  7. Zachowaj maski z adnotacjami w tej samej rozdzielczości i przestrzeni co oryginalne obrazy CT. Przechowuj je w formacie NIfTI, stosując spójne konwencje nazewnictwa.
    1. Upewnij się, że ostateczna maska segmentacji konsensusu jest przechowywana jako binarna mapa etykiet, gdzie woksele naczyniowe mają wartość 1, a woksele tła wartość 0.
    2. Potwierdź, że maska segmentacji zachowuje takie same odstępy wokselowe, wymiary obrazu, początek początkowości i macierz orientacji jak odpowiadający obraz CT przed obróbką.
    3. Eksportuj maskę segmentacji w formacie NIfTI (.nii lub .nii.gz) za pomocą funkcji eksportu oprogramowania do adnotacji.
    4. Stosuj spójną konwencję nazewnictwa sformułowaną następująco: SubjectID_Group_VesselMask.nii.gz; (np. CDH_012_VesselMask.nii.gz).
    5. Maski przechowywać w dedykowanym katalogu równoległym do zbioru danych obrazu, aby zachować spójność parowania.
    6. Wykonaj ostateczną weryfikację, ładując zarówno obraz CT, jak i odpowiadającą mu maskę, aby potwierdzić idealne wyrównanie przestrzenne przed trenowaniem modelu.
  8. Wykorzystaj te ręcznie oznaczane segmentacje jako podstawę do trenowania i oceny modelu.

3. Modelowanie treningu i walidacji

  1. Zorganizuj zbiór danych w trzy podzbiory: treningowy, walidacyjny i testowy. W tym badaniu wykorzystano 35 przypadków kontrolnych i 20 CDH do szkolenia, 5 przypadków kontrolnych i 10 CDH do walidacji, a pozostałe odłożono na niezależne testy.
    1. Skompiluj wszystkie wstępnie przetworzone obrazy CT oraz odpowiadające im maski konsensualnych naczyń w jeden zbiór danych.
    2. Przeprowadz podział zbiorów danych na poziomie pacjenta, aby zapobiec wyciekom danych między podzbiorami.
    3. Losowo przypisz 35 przypadków kontrolnych i 20 przypadków CDH do zestawu treningowego.
    4. Losowo przypisz 5 przypadków kontrolnych i 10 przypadków CDH do zbioru walidacyjnego.
    5. Przypisz wszystkie pozostałe przypadki do niezależnego zestawu testów hold-out, który nie jest dostępny podczas trenowania modelu ani strojenia hiperparametrów.
    6. Upewnij się, że każdy obraz CT i odpowiadająca mu maska segmentacji pozostają sparowane przez cały proces podziału.
    7. Zweryfikować rozkład klas w każdym podzbiorze, aby zachować reprezentację zarówno przypadków kontrolnych, jak i CDH.
    8. Dokumentuj ostateczny przydział identyfikatorów podmiotów w celu powtórzalności.
  2. Normalizuj wartości intensywności wszystkich obrazów w zakresie od 0 do 1, aby poprawić zbieżność sieci neuronowych podczas treningu.
    1. Dla każdej objętości CT najpierw ogranicz wartości intensywności do wcześniej zdefiniowanego zakresu jednostek Hounsfield, aby usunąć skrajne wartości odstającye.
    2. Zastosuj intensywne przycięcie tak, aby wartości poniżej −1000 HU były ustawione na −1000 HU, a powyżej 500 HU na 500 HU.
    3. Wykonaj normalizację min–max niezależnie dla każdej objętości, stosując następującą transformację: Wartość znormalizowana = (I − I_min) / (I_max − I_min), gdzie I_min i I_max odpowiadają przyciętym minimalnym i maksymalnym wartościom intensywności objętości.
    4. Zastosowanie normalizacji do całej objętości 3D, używając operacji elementowych w środowisku obliczeniowym.
    5. Sprawdź, czy wszystkie intensywności wokseli mieszczą się w przedziale [0, 1], zanim wprowadzisz dane do sieci neuronowej.
    6. Upewnij się, że parametry normalizacyjne są wyprowadzane niezależnie dla każdego obrazu, aby zapobiec wyciekowi informacji między zestawami treningowymi, walidacyjnymi i testowymi.
  3. Zaimplementuj architekturę sieci neuronowej U-Net splotowej z wykorzystaniem ram deep learning, takich jak PyTorch lub TensorFlow.
    1. Stwórz nowy projekt w środowisku deep learning i ustaw stały losowy seed dla powtarzalności.
    2. Zdefiniuj architekturę 2D U-Net (Rysunek 2) do segmentacji binarnej ze strukturą encoder-dekoder i połączeniami pomijającymi.
    3. Ustaw wejście modelu jako jednokanałowe wycinki CT (w skali szarości) i ustaw wyjście modelu jako mapę prawdopodobieństwa jednego kanału reprezentującą prawdopodobieństwo pojazdu.
    4. Konfiguruj ostatnią warstwę tak, aby używała funkcji aktywacji sigmoidalnej do generowania wartości w zakresie [0, 1].
    5. Zdefiniuj funkcję straty dla segmentacji binarnej (np. binarna entropia krzyżowa) i zainicjalizuj optymalizator.
    6. Określ hiperparametry treningowe, w tym rozmiar partii, liczbę epok i tempo uczenia, i zapisz te wartości do raportowania.
    7. Przygotuj ładowaczne dane do wprowadzania zestawów danych treningowych i walidacyjnych do modelu poprzez konsekwentne tasowanie i grupowanie.
    8. Zachowaj pełną definicję modelu i konfigurację hiperparametrów dla powtarzalności.
  4. Konfiguruj model ze strukturą enkoder-dekoder, włączając połączenia pomijania i warstwy normalizacji wsadowej, aby poprawić dokładność segmentacji.
    1. Zdefiniuj enkoder składający się z powtarzających się bloków splotowych. Upewnij się, że każdy blok zawiera:
      Dwie kolejne warstwy konwolucyjne 2D (rozmiar jądra 3 × 3, dosypywanie = 1)
      Normalizacja wsadowa stosowana po każdej konwolucji
      Aktywacja Rectified Linear Unit (ReLU)
    2. Stosuj maksymalny pooling 2 × 2 z krokiem 2 po każdym bloku enkodera, aby stopniowo zmniejszać rozdzielczość przestrzenną.
    3. Podwaj liczbę kanałów charakterystycznych po każdym kroku downsamplowania.
    4. Zdefiniuj dekoder za pomocą transponowanej konwolucji (jądro 2 × 2, krok 2) do próbkowania w górę.
    5. Konkatenuj mapy cech z odpowiadającej warstwy enkodera do warstwy dekodera za pomocą połączeń skip, aby zachować informacje przestrzenne.
    6. Po każdym kroku konkatenacji zastosuj dwie warstwy splotowe z normalizacją wsadową i aktywacją ReLU.
    7. Użyj ostatecznej warstwy splotowej 1 × 1, aby odwzorować cechy na wyjście jednokanałowe.
    8. Zastosuj funkcję aktywacji sigmoidalnej , aby uzyskać mapę prawdopodobieństwa według wokseli dla segmentacji naczyń.
  5. Trenuj trzy konfiguracje modelu:
    1. Model bazowy (szkolenie od podstaw)
      1. Inicjalizuj wagi U-Net losowo (np. inicjalizacja He).
      2. Używaj wyłącznie ręcznie adnotowanego zbioru danych tętnic-żył jako wejścia.
      3. Zmień rozmiar obrazów wejściowych do 512 × 512 pikseli.
      4. Normalizuj wartości intensywności do zakresu [0,1].
      5. Ustaw rozmiar partii na 8 (lub maksymalny dozwolony przez pamięć GPU).
      6. Użyj optymalizatora Adama z tempem uczenia = 1 × 10⁻4.
      7. Użyj Binary Cross-Entropy (do segmentacji binarnej) lub Cross-Entropy loss (do klasyfikacji tętnic-żył).
      8. Trenuj przez 30 epok.
      9. Monitoruj straty w weryfikacji po każdej epoce.
      10. Zapisz wagi modeli odpowiadające najniższej utracie walidacyjnej.
      11. W PyTorch postępuj zgodnie z krokami 3.5.1.13–3.5.1.14.
      12. Zdefiniuj optymalizator: torch.optim.Adam(model.parameters(), lr=1e-4)
      13. Zdefiniuj stratę: torch.nn.BCEWithLogitsLoss() lub torch.nn.CrossEntropyLoss()
      14. Używaj model.train() podczas treningu i model.eval() podczas walidacji.
    2. Model segmentacji-wejścia (wejście maski do okrętu pomocniczego)
      1. Zmodyfikuj warstwę wejściową, aby akceptowała dwa kanały:
        Kanał 1: obraz CT
        Kanał 2: Maska segmentacji naczyń binarnych
      2. Połącz obraz CT i maskę naczynia wzdłuż wymiaru kanału przed wprowadzeniem ich do sieci.
      3. Zachowaj architekturę identyczną z modelem bazowym.
      4. Użyj tego samego optymalizatora, tempa uczenia, wielkości partii i liczby epoki co w kroku 3.5.1.
      5. Zapisz najlepiej wypadające wagi na podstawie wyniku F1 z walidacji.
    3. Model uczenia transferowego (wstępnie wytrenowana inicjalizacja)
      1. Obciążenie pretrenowane wagi U-Net wytrenowane na ogólnym zbiorze danych segmentacji jednostek (zgodnie z raportem postępów).
      2. Zamrażaj warstwy enkodera przez pierwsze 5 epok (opcjonalny etap stabilizacji).
      3. Odmroź wszystkie warstwy i kontynuuj dopracowywanie przez pozostałe epoki.
      4. Stosuj zmniejszoną szybkość uczenia = 5 × 10⁻5 podczas dostrajania.
      5. Trenuj łącznie przez 30 epok.
      6. Stosuj poziome flipowanie jako uzupełnianie danych podczas treningu.
      7. Zapisz model z najwyższym wynikiem walidacji F1.
  6. Użyj binarnej straty entropii krzyżowej oraz optymalizatora Adama z początkową częstotliwością uczenia 0,001. Zmniejsz tempo uczenia się adaptacyjnie, jeśli strata walidacji osiągnie plateau.
    1. Definiowanie funkcji straty
      1. Do segmentacji naczyń binarnych użyj utraty entropii krzyżowej binarnej z logitami.
      2. W PyTorch zdefiniuj: criterion = torch.nn.BCEWithLogitsLoss()
      3. Jeśli wykonujesz klasyfikację tętnic-żył wieloklasowych, użyj: criterion = torch.nn.CrossEntropyLoss()
    2. Definiowanie optymalizatora
      1. Użyj optymalizatora Adama z początkową częstotliwością uczenia się 0,001.
      2. W PyTorch: optimizer = torch.optim.Adam(model.parameters(), lr=0,001)
    3. Umożliwienie adaptacyjnego ograniczenia tempa uczenia się
      1. Wdroż harmonogram tempa uczenia się, aby zmniejszyć tempo uczenia się, gdy straty w walidacji przestają się poprawiać.
      2. Użyj harmonogramu ReduceLROnPlateau.
      3. W PyTorch: scheduler = torch.optim.lr_scheduler. ReduceLROnPlateau(
        optymalizator,
        mode='min',
        czynnik=0,5,
        cierpliwość=5,
        rozwlekły=Prawdziwy
        )
      4. Po każdej fazie walidacji wywołaj: scheduler.step(validation_loss)
    4. Konfiguracja pętli treningowej.
      1. Dla każdej epoki postępuj zgodnie z krokami 3.6.4.2–3.6.4.7:
      2. Ustaw model na tryb treningowy: model.train()
      3. Wykonaj podanie do przodu.
      4. Obliczaj straty obliczeniowe.
      5. Backpropagate: loss.backward()
      6. Wagi aktualizacji: optimizer.step()
      7. Gradienty zerowe przed następną iteracją: optimizer.zero_grad()
      8. Po fazie treningowej przełącz się na tryb oceny za pomocą model.eval() i oblicza stratę walidacji.
    5. Wcześniejsze zatrzymanie się (opcjonalne, ale zalecane)
      1. Jeśli utrata walidacji nie poprawi się przez 10 kolejnych epok, przerwij trening, aby zapobiec nadmiernemu dopasowaniu.
  7. Stosuj techniki uzupełniania danych, takie jak rotacje losowe, flipy i deformacje elastyczne, aby zwiększyć odporność i ograniczyć nadmierne dopasowanie.
    1. Definiowanie potoku augmentacyjnego
      1. Stosuj augmentacje tylko do zbioru danych treningowych.
      2. Stosuj identyczne transformacje przestrzenne zarówno do obrazu CT, jak i odpowiadającej mu maski segmentacyjnej.
    2. Losowe rotacje.
      1. Stosuj losowe obroty w płaszczyźnie między -15° a +15°.
      2. W PyTorch (używając torchvision lub albumentacji): RandomRotation(degrees=15)
    3. Poziome i pionowe salta.
      1. Zastosuj poziomy flip o prawdopodobieństwie p = 0,5.
      2. Zastosowaj pionowy flip z prawdopodobieństwem p = 0,5 (jeśli anatomicznie akceptowalne).
    4. Odkształcenie sprężyste.
      1. Zastosuj transformację sprężystą, aby zasymulować zmienność anatomiczną.
      2. Używaj małych parametrów deformacji, aby uniknąć nierealistycznych zniekształceń.
    5. Przykład implementacji (PyTorch + Albumentations)
      1. Zdefiniuj pipeline transformacji przed szkoleniem:
        transform = A.Compose([
        A.Rotate(limit=15, p=0,5),
        A.HorizontalFlip(p=0.5),
        A.ElasticTransform(alpha=1, sigma=50, alpha_affine=10, p=0,3)
        ])
      2. Zastosowanie transformacji wewnątrz metody zbioru danych __getitem__(), aby zapewnić zsynchronizowaną transformację obrazu i maski.
    6. Walidacja i zestawy testowe
      1. Nie stosuj augmentacji do walidacyjnych ani testowych zbiorów danych.
      2. Dla tych zbiorów używaj tylko normalizacji i zmiany rozmiaru.
    7. Kontrola jakości.
      1. Przed treningiem wizualnie obejrzyj próbki rozszerzone, aby zapewnić anatomiczną wiarygodność.
      2. Sprawdź, czy maski pozostają wyrównane z przekształconymi obrazami.
  8. Trenować model przez stałą liczbę epok lub do czasu zbieżności, monitorując wydajność zbioru walidacyjnego po każdej epoce.
    1. Definiowanie czasu trwania treningu
      1. Ustaw maksymalną liczbę epok treningowych na 30.
      2. Alternatywnie, kontynuuj trening aż do spełnienia kryteriów zbieżności (patrz Wczesne Zatrzymanie poniżej).
    2. Pętla treningowa
      1. Dla każdej epoki postępuj zgodnie z krokami 3.8.2.2–3.8.2.10:
      2. Ustaw model na tryb treningowy: model.train()
      3. Iteruj wszystkie mini-partie w zestawie treningowym.
      4. Załaduj partię obrazów CT i odpowiadających im masek.
      5. Wykonaj podanie do przodu.
      6. Oblicz straty za pomocą zdefiniowanej funkcji straty.
      7. Gradienty propagacji wstecznej: loss.backward()
      8. Zaktualizuj wagi modelu: optimizer.step()
      9. Resetuj gradienty przed następną partią: optimizer.zero_grad()
      10. Oblicz średnią stratę treningową dla epoki.
    3. Etap walidacji (po każdej epoce)
      1. Przełącz model na tryb ewaluacji: model.eval()
      2. Wyłącz obliczenia gradientu: za pomocą torch.no_grad():
      3. Iteruj przez zbiór danych walidacyjnych.
      4. Wykonaj podanie do przodu.
      5. Obliczaj stratę walidacji.
      6. Obliczaj metryki wydajności (wynik F1, precyzja, czułość, wynik DICE).
      7. Zapisz straty i metryki walidacyjne.
    4. Regulacja tempa uczenia się
      1. Aktualizuj harmonogram po etapie walidacji: scheduler.step(validation_loss)
    5. Kryteria zbieżności
      1. Przerwij trening, jeśli utrata walidacji nie poprawi się przez 10 kolejnych epok (wczesne zatrzymywanie) lub jeśli wskaźniki wydajności się zastabilizują.
    6. Kontrolowanie modeli
      1. Zapisz wagi modelu za każdym razem, gdy poprawa się poprawi wynik walidacji F1.
      2. Zachowaj najlepiej działający model do ostatecznej oceny na zbiorze testowym.
    7. Wycinkowanie
      1. Przechowuj wartości strat treningów i walidacji w każdej epoce.
      2. Określ krzywe uczenia się (strata vs. epoka), aby zweryfikować zachowania zbieżności.
  9. Wybierz najlepiej działający model na podstawie najwyższego wyniku F1 w zbiorze danych walidacyjnych.
    1. Śledzenie metryk walidacyjnych
      1. Po każdej epoce obliczaj wynik F1 na zbiorze danych walidacyjnych.
      2. Zapisz wynik F1 razem z odpowiadającym im numerem epoki.
    2. Porównanie modeli
      1. Porównaj wyniki walidacji F1 we wszystkich epokach.
      2. Zidentyfikuj epokę, która osiągnęła najwyższy wynik walidacji F1.
    3. Kontrolowanie modeli
      1. Podczas treningu zapisuj wagi modelu za każdym razem, gdy poprawa wyniku F1 w walidacji się poprawia.
    4. Ostateczny wybór modelu
      1. Po zakończeniu treningu załaduj wagi odpowiadające najwyższemu wyniku walidacyjnemu F1:
        model.load_state_dict(torch.load("best_model.pth"))
    5. Niezależne testowanie
      1. Wybrany model oceniaj tylko raz na niezależnym zbiorze danych testowych.
      2. Nie używaj wydajności zestawu testowego do wyboru modelu.
    6. Powtarzalność
      1. Zapisz wybraną liczbę epoki oraz odpowiadające im metryki walidacyjne.
      2. Popraw losowe nasiona, aby zapewnić powtarzalność.
  10. Zachowaj wytrenowane wagi i konfiguracje modeli do zadań segmentacji w dalszej fazie.

4. Segmentacja i szkieletyzacja

  1. Załaduj wytrenowany model U-Net i zastosuj go do wstępnie przetworzonych skanów CT w niezależnym zbiorze testowym.
  2. Dla każdego skanu generuj binarną maskę segmentacji naczyń płucnych, stosując próg do probabilistycznego wyjścia modelu.
  3. Wizualnie obejrzyj wyniki segmentacji, aby potwierdzić anatomiczną wiarygodność, szczególnie w obszarach dotkniętych zniekształceniami wywołanymi przez CDH.
  4. Przekonwertowanie segmentowanych 3D masek binarnych na szkieletowe reprezentacje za pomocą algorytmu 3D przerzedzania zaimplementowanego w oprogramowaniu.
  5. Oznacz szkielet naczyniowy za pomocą algorytmu wyszukiwania szerokiego względem pierwszego, wyznaczając pień płucny jako węzeł główny i przypisując poziomy generowania każdej gałęzi na podstawie łączności.
  6. Usuń małe, odłączone komponenty lub fałszywe gałęzie, które prawdopodobnie są spowodowane szumem lub błędami segmentacji, stosując minimalny próg długości wokseli lub długości rozgałęzienia.
  7. Zachowaj szkieletowe struktury w formatach 3D lub kompatybilnych z grafami (np. VTK lub SWC) do dalszej analizy morfometrycznej.

5. Ekstrakcja cech morfometrycznych

  1. Załaduj skeletowe wykresy naczyniowe wygenerowane z segmentowanych obrazów tomografii komputerowej.
  2. Zidentyfikuj wszystkie poszczególne gałęzie, przechodząc przez strukturę grafu między punktami bifurkacji a węzłami końcowymi.
  3. Oblicz całkowitą liczbę gałęzi, sumując wszystkie zidentyfikowane segmenty w grafie naczyniowym.
  4. Oblicz długość każdej gałęzi, sumując euklidesowe odległości między połączonymi wokselami wzdłuż szkieletu.
  5. Określ średnią długość gałęzi, uśredniając długości wszystkich gałęzi w szkieletze każdego badanego.
  6. Przypisz poziomy generacji każdej gałęzi, zaczynając od głównej tętnicy płucnej jako generację 0 i zwiększając się o jeden przy każdym rozgałęzieniu, korzystając z przejścia na szerokość.
  7. Oblicz maksymalną liczbę pogenerowań dystalnych, identyfikując najdłuższą ścieżkę od węzła korzeniowego do dowolnej gałęzi końcowej.
  8. Oblicz maksymalną liczbę bliskich pokoleń, identyfikując najdłuższą ścieżkę od dowolnej gałęzi obwodowej z powrotem do korzenia.
  9. Przechowuj wszystkie cechy morfometryczne w uporządkowanym arkuszu kalkulacyjnym lub formacie bazy danych (np. CSV lub SQL) wraz z identyfikatorami tematu, grupą diagnostyczną oraz wyodrębnionymi metrykami.
  10. Wizualnie obejrzyj podzbiór grafów szkieletowych oraz odpowiadające im cechy morfometryczne, aby potwierdzić dokładność i biologiczną wiarygodność.

6. Analiza klasyfikacji

  1. Importuj zbiór danych strukturalnych zawierający cechy morfometryczne (np. całkowitą liczbę rozgałęzień, średnią długość rozgałęzienia, głębokość generowania dystalnego i bliższego) oraz odpowiadające im etykiety diagnostyczne (CDH lub kontrola).
  2. Podziel zbiór danych na zbiory treningowe i testowe, używając próbkowania stratyfikowanego do utrzymania rozkładu klas.
  3. Implementuj klasyfikatory lasu losowego i drzewa decyzyjnego za pomocą standardowej biblioteki uczenia maszynowego.
  4. Konfiguruj parametry modelu, takie jak liczba estymatorów (np. 100 drzew dla lasu losowego) oraz maksymalna głębokość w zależności od wydajności walidacji krzyżowej.
  5. Wytrenuj każdy klasyfikator na podstawie podzbioru treningowego danych.
  6. Oceń wydajność klasyfikacji na zestawie testowym z opóźnieniem, używając dokładności jako głównej metryki.
  7. Generuj macierze pomyłek do oceny wskaźników prawdziwie pozytywnych, prawdziwie negatywnych, fałszywie pozytywnych i fałszywie negatywnych wyników w wykrywaniu CDH.
  8. Porównaj wydajność klasyfikatorów lasu losowego i drzewa decyzyjnego oraz wybierz model o najwyższej dokładności do raportowania reprezentatywnych wyników.
  9. Wizualizuj wyniki klasyfikacji za pomocą wykresów słupkowych, krzywych ROC lub drzew decyzyjnych, jeśli to dotyczy, i zapisz wyniki do włączenia do rysunków.
  10. Dokumentuj wszystkie parametry modelu, metryki wydajności oraz wszelkie wstępne przetwarzanie zastosowane do danych, aby zapewnić powtarzalność.

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Wyniki

Model głębokiego uczenia trenowany z uczeniem transferowym osiągnął najwyższą wydajność segmentacji spośród wszystkich konfiguracji, z precyzją 0,714, czułością 0,706 oraz wynikiem F1 0,672 na niezależnym zbiorze testowym. Model bazowy wytrenowany od podstaw wykazał obniżoną wydajność (precyzja: 0,703, czułość: 0,589, ocena F1: 0,551), podczas gdy model segmentacji-input osiągał umiarkowane wyniki (ocena F1: 0,630).

Po segmentacji analiza morfometryczna wykazała istotne zmniejszenie złożoności...

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Dyskusja

Kilka kroków w tym protokole jest kluczowych dla uzyskania dokładnych i powtarzalnych rezultatów. Etap wstępnego przetwarzania obrazu musi być starannie przeprowadzony, szczególnie konwersja na jednostki Hounsfield oraz zastosowanie okienek (WL = -400 HU, WW = 1500 HU), ponieważ te parametry decydują o widoczności struktur naczyniowych 14,15,16,17. Skeletyzacja wymaga również precyzyjnego stroj...

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Oświadczenia

Autorzy nie mają żadnych ujawnień finansowych do zgłoszenia.

Podziękowania

Emrah Aydin otrzymał wsparcie od Międzynarodowego Programu Stypendialnego ds. Badań Naukowo-Technologicznych Turcji (TÜBİTAK) 2219 (1059B191501313). Aslıgül Aksan i Mustafa Ekrem Erkan otrzymali wsparcie od Rady ds. Badań Naukowo-Technologicznych Turcji (TÜBİTAK) 2209-A – Program Wsparcia Projektów Badawczych dla studentów studiów licencjackich.

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Materiały

Lista materiałów użytych w tym artykule
NazwaFirmaNumer katalogowyKomentarze
Analizuj 12.0AnalyzeDirecthttps://analyzedirect.com/Wykorzystywane do przeglądu obrazów CT, edycji i pomiarów
Dane z tomografii komputerowej (badania klatki piersiowej po porodzie)Archiwum InstytucjonalneNie maRetrospektywny zbiór danych o noworodkach CDH i kontrolnych
dcm2niixOpen-source (GitHub)https://github.com/rordenlab/dcm2niixKonwertowanie DICOM na format NIfTI
TRZASKOpen-source (http://www.itksnap.org)http://www.itksnap.orgNarzędzie do adnotacji obrazów medycznych 3D
NetworkXOpen-sourcehttps://networkx.orgWykorzystywane do analizy drzew naczyniowych opartej na grafach
OpenCV (funkcja CLAHE)Open-sourcehttps://opencv.orgWykorzystywane do wzmacniania kontrastu obrazu
Pandy, NumpyOpen-sourcehttps://pandas.pydata.org, https://numpy.orgZarządzanie danymi i operacje numeryczne
Python 3.8+Python Software Foundationhttps://www.python.orgJęzyk programowania do analizy i tworzenia modeli
PyTorch 1.13+Meta AIhttps://pytorch.orgRamy głębokiego uczenia do implementacji U-Net
Obraz scikitOpen-sourcehttps://scikit-image.orgBiblioteka przetwarzania obrazów używana do szkieletyzacji
Scikit-learnOpen-sourcehttps://scikit-learn.orgBiblioteka uczenia maszynowego do klasyfikacji
Ubuntu 20.04 LTSKanonicznehttps://ubuntu.comSystem operacyjny używany we wszystkich procesach
Stacja robocza z kartą NVIDIA RTX 3090NVIDIAhttps://www.nvidia.comWymagane do trenowania modeli deep learning

Bibliografia

  1. Keijzer, R., et al. Dual-hit hypothesis explains pulmonary hypoplasia in the nitrofen model of congenital diaphragmatic hernia. Am J Pathol. 156 (4), 1299-1306 (2000).
  2. Aydin, E., et al. The survivorship bias in congenital diaphragmatic hernia. Children. 9 (2), 218(2022).
  3. Harting, M. T. Congenital diaphragmatic hernia-associated pulmonary hypertension. Semin Pediatr Surg. 26 (3), 147-153 (2017).
  4. Kool, H., et al. Pulmonary vascular development goes awry in congenital lung abnormalities. Birth Defects Res C Embryo Today. 102 (4), 343-358 (2014).
  5. Leeuwen, L., Fitzgerald, D. A. Congenital diaphragmatic hernia. J Paediatr Child Health. 50 (9), 667-673 (2014).
  6. Aydin, E., et al. Optimization of pulmonary vasculature tridimensional phenotyping in the rat fetus. Sci Rep. 9 (1), 1244(2019).
  7. Aydin, E., et al. Pulmonary vasculature development in congenital diaphragmatic hernia: a novel automated quantitative imaging analysis. Pediatr Surg Int. 40 (1), 1244(2024).
  8. Memon, N. A., Mirza, A. M., Gilani, S. A. M. Segmentation of lungs from CT scan images for early diagnosis of lung cancer. World Acad Sci Eng Technol. 20, 1050-1055 (2008).
  9. Fetita, C., Brillet, P. Y., Preteux, F. J. Morpho-geometrical approach for 3D segmentation of pulmonary vascular tree in multi-slice CT. Proceedings of SPIE - The International Society for Optical Engineering. , (2009).
  10. Orkisz, M., et al. Segmentation of the pulmonary vascular trees in 3D CT images using variational region-growing. IRBM. 35 (1), 11-19 (2014).
  11. Fabijanska, A. Segmentation of pulmonary vascular tree from 3D CT thorax scans. Biocybern Biomed Eng. 35 (2), 106-119 (2015).
  12. Zhai, Z., Staring, M., Stoel, B. C. Lung vessel segmentation in CT images using graph-cuts. , SPIE Medical Imaging. San Diego, California, United States. (2016).
  13. Khanna, A., Londhe, N. D., Gupta, S. Detection of pulmonary vessels in 3D lung CT using improved graph cut. 2018 5th International Conference on Signal Processing and Integrated Networks (SPIN), Noida, India, , (1109).
  14. DenOtter, T. D., Schubert, J. Hounsfield Unit. , StatPearls Publishing. Treasure Island, FL. (2023).
  15. Detection and classification of brain hemorrhage based on Hounsfield values and convolution neural network technique. Phan, A. C., Nguyen, T. M. N., Phan, T. C. 2019 IEEE-RIVF International Conference on Computing and Communication Technologies (RIVF), Danang, Vietnam, , (2019).
  16. Xue, Z., et al. Window classification of brain CT images in biomedical articles. AMIA Annu Symp Proc. 2012, 1023-1029 (2012).
  17. Contrast-limited adaptive histogram equalization: speed and effectiveness. Pizer, S. M., et al. Proceedings of the First Conference on Visualization in Biomedical Computing, Atlanta, GA, USA, , (1990).
  18. Moccia, S., De Momi, E., El Hadji, S., Mattos, L. S. Blood vessel segmentation algorithms – Review of methods, datasets and evaluation metrics. Comput Methods Programs Biomed. 158, 71-91 (2018).

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Przedruki i uprawnienia

Tagi

Segmentacja naczy p ucnychanaliza morfometrycznatomografia komputerowaarchitektura U Netuczenie transferowemorfologia naczyniowaalgorytm szkieletyzacji
Film wkrótce dostępny