Automatyzacja analizy obrazów pochodzących z detektora OTPC

Autorzy:

  • Wiktoria Karwicka
  • Urszula Orzeł
  • Urszula Włodkowska
  • Katarzyna Życieńska

Opiekun projektu:

  • mgr Adam Kubiela

Wstęp

Badanie egzotycznych kanałów rozpadów jądrowych wymaga zastosowania specjalistycznych narzędzi. Jednym z takich narzędzi jest powstała w Instytucie Fizyki Doświadczalnej Uniwersytetu Warszawskiego komora dryfowa projekcji czasowej z odczytem optycznym (Optical Time Projection Chamber - OTPC). Więcej informacji o OTPC można zobaczyć na stronie http://www.fuw.edu.pl/~pfutzner/Research/OTPC/OTPC.html. Zastosowanie tej techniki pomiarowej pozwala na obserwację emisji cząstek naładowanych z nuklidów dalekich od ścieżki stabilności. Przeprowadzony ostatnimi czasy eksperyment z zastosowaniem wiązek radioaktywnych przyniósł wiele ciekawych danych na temat rozpadu jądra 11Be. W wyniku przeprowadzonych pomiarów zgromadzono zdjęcia wykonane kamerą CCD. Niestety ich ogromna ilość utrudnia ręczną analizę.

Cel projektu

Celem projektu było stworzenie oprogramowania do automatycznego przetwarzania serii zdjęć pochodzących z komory OTPC. Oczekiwanym rezultatem analizy jest:

  • rozpoznanie śladów cząstek,
  • zliczenie ich wystąpień,
  • stworzenie profili jasności dla rozpoznanych śladów,
  • przygotowanie pliku ze statystykami dotyczącymi zidentyfikowanych śladów cząstek dla każdego zdjęcia.

Dane

Plikami wejściowymi były monochromatyczne zdjęcia w formacie png wykonane kamerą CCD pochodzące z OTPC. Na części zdjęć można zaobserwować jedną lub więcej podłużnych jasnych smug. Są to ślady cząstek wyemitowanych w komorze. Ponadto na zdjęciach pojawić się mogą przypadkowe rozbłyski światła niezwiązane z cząstkami.

Zdjęcie 1. Przykładowe zdjęcie z detektora OTPC wykonane kamerą CCD.

Zdjęcie 2. Zdjęcie z detektora OTPC wykonane kamerą CCD na którym zastosowano kontrast.

Działanie programu

Pierwszym celem programu było zidentyfikowanie zdjęć, na których zaobserwować można sygnały wyemitowanych cząstek oraz odfiltrowanie ich od pustych obrazów.

Cel I - rozwiązanie

Do rozwiązania tego zagadnienia posłużył jeden z algorytmów progowania obrazu, czyli tzw. metoda Otsu.

W metodzie Otsu początkowo ze zdjęcia sporządzany jest histogram jasności pikseli. Następnie na podstawie globalnie wybranej wartości progowej piksele klasyfikowane są jako należące do klasy obiektu lub klasy tła. Metoda Otsu polega na sprawdzeniu wszystkich możliwych progów i wyborze takiego, aby wariancja międzyklasowa była jak największa. Więcej o tej metodzie można przeczytać na stronie http://www.labbookpages.co.uk/software/imgProc/otsuThreshold.html.

Dzięki wykorzystaniu funkcji threshold_otsu z biblioteki skimage w naszym module image_processing.py udało się odfiltrować puste obrazy oraz zapisać wszystkie zdjęcia zawierające sygnały cząstek α w osobnym folderze (dokumentacja funkcji Otsu: http://scikit-image.org/docs/dev/api/skimage.filters.html#skimage.filters.threshold_otsu).

Cel II - zliczanie śladów cząstek α

Podczas analizy zdjęć metodą Otsu w naszym module image_processing.py tworzona jest statystyka ilości zidentyfikowanych zliczeń. Równocześnie pliki zawierające bardzo krótkie rozbłyski, które ciężko jednoznacznie przypisać cząstkom α kopiowane są do osobnego folderu.

Zdjęcie 3. Przykład wykrycia przez program sygnałów pochodzących od 3 cząstek α.

Cel III - wykonanie profilów jasności

W celu wykonania profilów jasności funkcji zrzutowana jest jasność pikseli z obszaru obejmującego jedną smugę na prostą równoległą do toru cząstki. Proces ten wykonywany jest dla każdej z cząstek zidentyfikowanych się na zdjęciu.

Zdjęcie 4. Profil jasności wykonany dla zidentyfikowanej cząstki α.

Ponadto by ułatwić dalszą analizę stworzony został moduł region_processing.py. Pozwala on na wycięcie i zapisanie do osobnego pliku obszaru wokół każdej wykrytej smugi.

Zdjęcie 5. Obraz powstały ze zredukowanego obszaru wokół wykrytej cząstki α.

Cel IV - przygotowanie pliku ze statystykami znalezionych cząstek dla każdego zdjęcia

Aby umożliwić ręczną analizę anomalii, został stworzony plik wynikowy analytics.txt, zawierający następujące kolumny:

  • nazwa pliku
  • całkowitą liczbę znalezionych smug
  • liczbę anomalnie krótkich smug
  • liczbę anomalnie długich smug

Granicą pozwalająca zidentyfikować smugę jako posiadającą niestandardowe wymiary jest jej długość niemieszcząca się w zakresie (mean - 3*std, mean + 3*std),

gdzie mean - średnia długość smugi, std - odchylenie standardowe długości smug.

Podsumowanie

Stworzony program pozwala na zautomatyzowanie przetwarzania serii danych pochodzących z pomiarów w komorze OTPC. Do zalet programu należą skuteczność, wysoka precyzja oraz szybkość działania.


Program można znaleźć pod adresem:

https://github.com/uwlodkowska/smugi

Aby uruchomic program, należy posiadać zainstalowane następujące oprogramowanie:

  • Python 3
  • Matplotplib
  • Numpy
  • Scikit-image

Program uruchamia się komendą python main.py, przed uruchomieniem należy ustawić w zmiennej DATA_LOCATION_CATALOG w pliku global_variables.py ścieżkę do katalogu ze zdjęciami do obróbki.