Wszystkie artykuły Research

Computer Vision

Wykrywanie malarii z deep learning: CNN, który pomija tylko 3 z 1300 infekcji

27 558 obrazów komórek krwi, dwanaście wariantów modeli, jeden priorytet kliniczny - nie przeoczyć żadnej infekcji. Zwycięski model osiąga 99,77% czułości i mieści się na telefonie przy ok. 724 KB. Capstone MIT, uczciwie policzony, z powtarzalnym repozytorium towarzyszącym.

Malaria wciąż diagnozowana jest tak jak sto lat temu: specjalista ogląda barwiony metodą Giemsy rozmaz krwi pod mikroskopem i komórka po komórce szuka pasożyta. Dokładnie - ale wolno i deficytowo, właśnie tam, gdzie choroba występuje najczęściej. Pytanie tego projektu: czy model deep learning potrafi niezawodnie zaklasyfikować pojedynczą czerwoną krwinkę jako zakażoną lub zdrową - wystarczająco dokładnie do zastosowań klinicznych i wystarczająco mało, by działać offline na smartfonie?

Zbiór danych

Podstawą jest 27 558 mikroskopowych obrazów pojedynczych czerwonych krwinek z publicznego NIH Malaria Cell Image Dataset (Lister Hill National Center for Biomedical Communications, U.S. National Library of Medicine; adnotacje ekspertów z Mahidol-Oxford Tropical Medicine Research Unit w Bangkoku). Klasy są niemal zrównoważone (50,4% zakażone / 49,6% zdrowe). Trenowano na 24 958 obrazach (podział 80/20 na walidację), oceniano na ściśle wydzielonym zbiorze testowym 2600 obrazów - dokładnie 1300 na klasę. Obrazy mają różne rozmiary (mediana ok. 130×130 px) i przeskalowano je do 128×128 (własne CNN) lub 224×224 (VGG16).

Przykładowe komórki krwi ze zbioru: zakażone i zdrowe czerwone krwinki
Przykładowe komórki krwi ze zbioru treningowego: zakażone (czerwony) vs. zdrowe (zielony). Pasożyt widoczny jako mały ciemny punkt.

Podejście: dwanaście wariantów, jeden priorytet kliniczny

Zamiast jednego modelu zbudowano i porównano dwanaście wariantów architektury - każdy oceniany nie tylko po dokładności, lecz po metrykach istotnych klinicznie: czułości (ile prawdziwych infekcji zostaje wykrytych) i bezwzględnej liczbie pominiętych infekcji. Przeoczona malaria jest znacznie kosztowniejsza niż fałszywy alarm.

Zakres sięgał od lekkich 3-blokowych CNN (Flatten vs. Global Average Pooling), przez głębsze sieci z BatchNorm i LeakyReLU, sieć 5-blokową („Model 2b”), augmentację danych, transfer learning VGG16 (zamrożony i dostrajany dwuetapowo), po studium przestrzeni barw (tylko nasycenie, barwa + nasycenie, pełne HSV). Decyzje modelu uwidoczniono za pomocą GradCAM++.

Wyniki

Na wydzielonym zbiorze testowym (2600 obrazów, 1300 na klasę):

ModelDokładnośćCzułośćSwoistośćAUCPominięte infekcjeParametry
Model 2b - 5-blokowy CNN (wybrany)98,85%99,77%97,92%0,99953 / 1300724 K
HS-Only (barwa + nasycenie)98,88%99,08%98,69%0,999112 / 1300724 K
Bazowy CNN (Global Average Pooling)98,65%99,46%97,85%0,99917 / 130055 K
VGG16 (dostrojony)97,62%98,77%96,46%0,997716 / 130014,7 M
Porównanie wszystkich dwunastu wariantów modeli: dokładność, czułość i pominięte infekcje
Wszystkie dwanaście wariantów - dokładność, czułość i pominięte infekcje. Model 2b (czerwony) pomija najmniej, tylko 3.

HS-Only nieznacznie wygrał na samej dokładności (98,88%). Mimo to wybrano Model 2b - ze względu na metrykę istotną klinicznie: 99,77% czułości, tylko 3 pominięte infekcje na 1300 (AUC 0,9995, F1 0,9886). Po kwantyzacji INT8 waży ok. 724 KB - wystarczająco mało do inferencji na urządzeniu.

Co analiza faktycznie pokazuje

  • Kompaktowe własne CNN biją transfer learning VGG16. 14,7 mln parametrów na ok. 20 000 obrazach treningowych prowadziło do przeuczenia; różnica domen mikroskopia→ImageNet i skalowanie ze 130 do 224 px kosztowały więcej, niż duży model dawał (98,85% vs. 97,62%).
  • Sygnał diagnostyczny tkwi w barwie, nie w jasności. Sama barwa + nasycenie osiągnęły najlepszą dokładność; dodanie kanału Value pogorszyło wynik - dowód, że barwienie Giemsy koduje kontrast chromatycznie.
  • Global Average Pooling bije Flatten: −81% parametrów i wyższa czułość.
  • Część „błędów" to szum etykiet. GradCAM++ przy fałszywych alarmach pokazał fokalną aktywację nie do odróżnienia od prawdziwych trafień - rzeczywista dokładność prawdopodobnie zbliża się do 99,2%; ogranicza ją jakość adnotacji, nie architektura.
Mapy saliency GradCAM++ i SmoothGrad modelu 2b na zakażonych komórkach
GradCAM++ i SmoothGrad pokazują, na co patrzy Model 2b: aktywacja trafia dokładnie w pasożyta - model uczy się właściwej struktury, nie artefaktów.

Od modelu do wdrożenia - i czym (jeszcze) nie jest

Przy ok. 724 KB model jest przeznaczony do inferencji offline na smartfonie - jako narzędzie przesiewowe, nie urządzenie diagnostyczne. Trenowano go na jednym publicznym zbiorze (P. falciparum) i przed jakimkolwiek realnym użyciem wymaga zewnętrznej walidacji w wielu ośrodkach oraz eksperckiej weryfikacji przypadków błędnych. Te ograniczenia są częścią wyniku - to różnica między benchmarkiem a bronioną tezą.

Powtarzalność i weryfikacja

Pełny, wykonany kod (EDA, wszystkie dwanaście modeli, interpretowalność) znajduje się w repozytorium towarzyszącym: github.com/myBytesResearch/mit-capstone-gwinger. Projekt powstał jako capstone w MIT Professional Education Applied AI & Data Science Program (weryfikowalny certyfikat).

Podobny problem klasyfikacji obrazów lub computer vision u Ciebie? Porozmawiajmy.