Projekty / 2024-2026

Scientific imaging workflows

Projekt rozwoju aplikacji desktopowych do analizy danych STM, EC-STM i LEED: od kuracji danych, przez rejestrację, detekcję i tracking, po walidowane metryki oraz eksport wyników.

Krótki opis projektu

Scientific imaging workflows to parasolowy projekt software’owy skupiony na praktycznej analizie trudnych danych eksperymentalnych z mikroskopii i dyfrakcji powierzchniowej. Obejmuje aplikacje do pracy z obrazami STM/EC-STM, sekwencjami STM/MPP oraz obrazami LEED, w których potrzebne są jednocześnie automatyzacja, ręczna kontrola jakości, walidacja ilościowa i eksport wyników.

Wspólnym założeniem tych aplikacji jest podejście human-in-the-loop: algorytm może wykrywać, dopasowywać, propagować albo śledzić obiekty, ale użytkownik nadal kontroluje wynik, poprawia geometrię, blokuje zaakceptowane obiekty, porównuje warianty i eksportuje dane w jawnej postaci.

Projekt obejmuje między innymi narzędzia MolDetA v2, Lattice Fourier Analyzer (LFA), Spot Tracking & Analysis for LEED (STAL), NaParA, NanoTrack i Quantum Noise Analysis (QNA).

Problem

Dane STM, EC-STM i LEED często są trudne do analizy automatycznej. Typowe problemy to:

  • dryf obrazu, deformacje skanera i niedokładne dopasowanie ramek,
  • zaszumione lub niejednorodne obrazy mikroskopowe,
  • analiza sekwencji, a nie tylko pojedynczych obrazów,
  • porównywanie wielu kanałów, kierunków skanowania lub stanów eksperymentu,
  • brak pełnego zaufania do automatycznej detekcji w gęstych scenach,
  • konieczność eksportu wyników do publikacji, walidacji, notebooków i dalszego modelowania.

Dlatego rozwijane narzędzia nie są wyłącznie detektorami. Są to kompletne aplikacje do kuracji danych eksperymentalnych, w których automatyzacja i ręczna inspekcja działają razem.

Główna idea workflow

Typowy workflow w projekcie wygląda następująco:

  1. Import danych eksperymentalnych - obrazy i sekwencje STM/EC-STM/LEED z metadanymi, skalą fizyczną i informacją o klatkach.
  2. Inspekcja i preprocessing - podgląd obrazów, ROI, odszumianie, korekta linii, leveling, filtracja i przygotowanie danych do algorytmów.
  3. Rejestracja i mapowanie - dopasowanie klatek, przepływ optyczny, korelacja fazowa, ECC, transformacje afiniczne albo mapy przesunięć.
  4. Detekcja lub seedowanie - YOLO, klasyczne przetwarzanie obrazu, ROI, bbox, segmentacja, kontury albo ręczne seedy.
  5. Śledzenie i kuracja - tracking punktów, masek, plamek LEED, cząstek, krawędzi stopni albo molekuł, z możliwością ręcznej korekty.
  6. Analiza ilościowa - metryki geometrii, intensywności, promieni, odległości, parametrów sieci, rozkładów albo funkcji zależnych od potencjału i czasu.
  7. Walidacja i eksport - sesje, CSV/JSON/NPZ/STP, wykresy, tabele porównawcze, pliki treningowe i raporty techniczne.

Stack i architektura

W projekcie pracuję głównie w stacku Python / PyQt6. Do interaktywnej wizualizacji wykorzystuję pyqtgraph, do wykresów podsumowujących Matplotlib, a do obliczeń NumPy, SciPy, pandas, scikit-image i OpenCV.

W wybranych workflow używam także PyTorch, Ultralytics YOLO, backendów z rodziny SAM2, trackerów punktowych i detektorów krawędzi. Cięższe modele są uruchamiane przez subprocessy w osobnych środowiskach Python/conda, aby główna aplikacja PyQt6 pozostawała stabilna mimo konfliktujących zależności.

Najważniejsze wzorce architektoniczne:

  • human-in-the-loop - automatyzacja generuje propozycje, a użytkownik weryfikuje wynik,
  • original-data-first - użytkownik nadal widzi oryginalne dane eksperymentalne,
  • reproducible sessions - sesje zapisują dane, parametry, obiekty, korekty i wyniki,
  • quantitative validation - aplikacje generują metryki jakości, residuals, fit quality, QA rejestracji albo porównania frame-by-frame.

Powiązane aplikacje

MolDetA v2

Molecule Detection, Annotation and Analysis to aplikacja PyQt6 do kuracji molekuł w czterech zsynchronizowanych skanach STM: fwd_topo, bwd_topo, fwd_current, bwd_current. Program pokazuje oryginalne obrazy, a rejestracji używa jako wewnętrznej warstwy mapowania bboxów i analizy.

Najważniejsze elementy: detekcja YOLO i klasyczna, propagacja bboxów między skanami, ręczna edycja, grupowanie w cztery role, kategorie, filtry, workspace list molekuł, analiza intensywności i line-wise acquisition analysis.

Lattice Fourier Analyzer (LFA)

LFA to narzędzie do analizy sieci krystalicznych i superstruktur w obrazach STM/EC-STM. Aplikacja wykorzystuje FFT, lokalizację pików Bragga i substrate-anchored affine correction, aby wyznaczać parametry sieci, rejestr adsorbat-podłoże i metryki superstruktur.

Najważniejsze elementy: preprocessing STM, FFT w ROI, dopasowanie 2D Gaussa, korekcja afiniczna dryfu, parametry sieci rzeczywistej, adsorbate lattice analysis, eksport CSV/JSON.

Spot Tracking & Analysis for LEED (STAL)

STAL to aplikacja do detekcji, śledzenia i analizy plamek dyfrakcyjnych LEED w sekwencjach obrazów. Łączy klasyczne przetwarzanie obrazu, YOLO, metody linkowania i optical flow z dopasowaniem 2D Gaussa oraz eksportem metryk.

Najważniejsze elementy: detekcja plamek, YOLO checkpoints, Hungarian linking, directional linking, optical flow, pattern center, radii, tabele wyników, wykresy, eksport CSV i sesje.

NaParA

Nanoparticle Analyzer to aplikacja do preprocessingu obrazów STM, detekcji nanocząstek i ilościowego opisu populacji obiektów. Pracuje na pojedynczych obrazach i seriach, umożliwiając analizę ROI oraz eksport wyników.

Najważniejsze elementy: import .stp, .s94, .mpp, ROI preview, Gaussian/Median/White top-hat, Otsu/Sauvola, kontury, connected objects, centroidy, powierzchnie, nearest-neighbor distance, eksport CSV/PNG.

NanoTrack

NanoTrack to narzędzie do sekwencji STM i filmów MPP. Umożliwia rejestrację ramek, seedowanie obiektów, tracking cząstek, tracking masek i tracking krawędzi stopni, z wynikami analizowanymi w oryginalnych współrzędnych klatki.

Najważniejsze elementy: sequence viewer, BM3D, horizontal repair, Phase/ECC/Optical Flow/Deep Matcher registration, YOLO seeds, SAM2/DAM4SAM/SAMURAI, TAPIR/LocoTrack/Track-On-R, edge backends, metryki cząstek, krawędzi i QA rejestracji.

Quantum Noise Analysis (QNA)

QNA to aplikacja do ilościowej analizy szumu w danych STM. Pozwala definiować pary ROI typu Site/Set, obliczać mapy (I - I_SET)^2, analizować metryki w funkcji klatki lub potencjału i porównywać wiele miejsc w sekwencji.

Najważniejsze elementy: import .mpp, .stp, .s94, do 25 par ROI, metryki L0, L, K, I_A, D, A_site, A_set, E, wykresy Property vs frame i L0(E)/L(E), eksport map STP.

Przykładowe use case’y

Kuracja gęstych obrazów STM

MolDetA v2 i NaParA pozwalają wykrywać, poprawiać i grupować obiekty w obrazach STM, gdzie automatyczna detekcja wymaga późniejszej ręcznej kontroli jakości.

Analiza sekwencji i dynamiki

NanoTrack i STAL służą do śledzenia zmian w czasie: ruchu cząstek, plamek LEED, krawędzi stopni albo zmian geometrii sygnału w kolejnych klatkach.

Walidacja rejestracji i mapowania

MolDetA v2, NanoTrack i LFA wykorzystują różne strategie rejestracji, aby kontrolować dryf, przesunięcia i deformacje między obrazami lub w obrębie jednej klatki.

Deep learning wspierający eksperymentatora

YOLO, SAM2, trackery punktowe i detektory krawędzi są wykorzystywane jako narzędzia wspomagające, a nie zamknięte czarne skrzynki. Generują propozycje, które można dalej edytować i walidować.

Analiza ilościowa do publikacji

LFA, QNA, STAL, NanoTrack i MolDetA v2 generują metryki, tabele i eksporty, które mogą być używane do przygotowywania wykresów, porównań, raportów lub materiałów uzupełniających.

Mój wkład

W ramach projektu zajmuję się całym łańcuchem od koncepcji workflow po implementację narzędzi:

  • projektuję architekturę aplikacji i modułów analitycznych,
  • buduję interfejsy PyQt6 i interaktywne viewery,
  • integruję klasyczne algorytmy, deep learning i tracking,
  • przygotowuję formaty sesji, eksporty i ścieżki walidacji,
  • porządkuję status feature’ów w planach implementacyjnych,
  • tworzę opisy techniczne i dokumentację,
  • testuję narzędzia na rzeczywistych danych STM/EC-STM/LEED.

Status projektu

Projekt jest aktywnie rozwijany. Poszczególne aplikacje są na różnych etapach dojrzałości: część działa jako narzędzia robocze do bieżącej analizy, część jest platformą testową dla nowych trackerów, a część pełni rolę wyspecjalizowanych workflow do konkretnych danych eksperymentalnych.

Najważniejszy wspólny kierunek rozwoju to przejście od jednorazowych skryptów do odtwarzalnych aplikacji badawczych, w których użytkownik widzi dane, decyzje algorytmu, parametry analizy i finalny eksport w jednym spójnym środowisku.