Streszczenie rozprawy doktorskiej "Analiza danych spektralnej

Transkrypt

Streszczenie rozprawy doktorskiej "Analiza danych spektralnej
Uniwersytet Mikołaja Kopernika w Toruniu
Wydział Fizyki, Astronomii i Informatyki Stosowanej
Marcin Sylwestrzak
Streszczenie rozprawy doktorskiej
ANALIZA DANYCH SPEKTRALNEJ TOMOGRAFII
OPTYCZNEJ OCT Z WYKORZYSTANIEM
WIELORDZENIOWYCH KART GRAFICZNYCH
Praca doktorska napisana pod kierunkiem
prof. dr. hab. Piotra Targowskiego
Toruń 2013
Wstęp
Tomografia optyczna z użyciem światła częściowo spójnego (ang. Optical Coherence
Tomgraphy) to nieinwazyjna technika pozwalająca na obrazowanie struktury wewnętrznej
obiektów częściowo przeźroczystych dla światła. W wyniku pomiaru w sposób
bezkontaktowy otrzymywane są dwuwymiarowe przekroje w głąb obiektu wzdłuż linii
skanowania wiązką analizującą. Tak uzyskane tomogramy obrazują wszystkie nieciągłości
struktury, które wiązka napotkała na swojej drodze. Dzięki nieinwazyjności metody
tomografia optyczna jest obecnie powszechnie wykorzystywana w diagnostyce medycznej
jako narzędzie do obrazowania struktur wewnętrznych tkanek i organów – przede wszystkim
w okulistyce [1, 2], ale także w dermatologii [3, 4], gastrologii [5, 6] i innych [7, 8]. Poza
zastosowaniami medycznymi tomografia optyczna wykorzystywana jest w badaniach
materiałowych [9], w szczególności obiektów zabytkowych, takich jak obrazy olejne [10, 11]
czy szkła witrażowe [12], w których ze względu na wartość zabytkową badanych obiektów
metody inwazyjne są niedopuszczalne. Badania te pozwalają właściwie ocenić stan
zachowania zabytków oraz zaplanować, a także monitorować w czasie rzeczywistym niektóre
zabiegi konserwatorskie [13, 14].
Jednym z ograniczeń tomografii OCT jest czasochłonna analiza numeryczna danych,
która wraz z wizualizacją przekrojów na ekranie zwykle zajmuje więcej czasu niż akwizycja.
Obrazowanie w czasie rzeczywistym jest niezbędną funkcją oprogramowania sterującego
tomografem. Pozwala ono na właściwe ustawienie pacjenta i przygotowanie go do pomiaru, a
w przypadku badań materiałowych – odpowiednie umieszczenie badanego obiektu.
Realizacja tego zadania wymaga przede wszystkim szybkiego obrazowania badanego
obszaru. W chwili obecnej na dobrze zoptymalizowanym oprogramowaniu pracującym
wielowątkowo na procesorze głównym (CPU) uzyskuje się wydajność obrazowania
wynoszącą ok. 10 klatek na sekundę dla dwóch przekrojów w rozdzielczości 500 × 1024
piksele. Jakość takiego podglądu ze względu na liczbę zarejestrowanych i przetwarzanych
widm nie jest zbyt wysoka i pozwala jedynie na przybliżone ustawienie pacjenta przed
wykonaniem właściwego pomiaru. W tej sytuacji uzyskanie obrazu drobnych zmian,
2
istotnych dla diagnozowania, wymaga wykonania wielu pomiarów i jest w pewnym stopniu
kwestią przypadku.
Od kilku lat bardzo dynamicznie rozwija się technologia przetwarzania danych na
procesorach graficznych. Już w 2010 roku NVIDIA deklarowała wydajność wykonywania
obliczeń zmiennoprzecinkowych wyższą o rząd wielkości niż osiągalna przez najszybsze
procesory główne [15]. Zastosowanie równoległego przetwarzania danych na wielordzeniowych procesorach graficznych otwiera wiele nowych możliwości w technice spektralnej
tomografii optycznej, przede wszystkim zaś usuwa główne ograniczenie blokujące
obrazowanie w czasie rzeczywistym – czasochłonną analizę danych.
Rozprawa liczy 152 strony i podzielona została na sześć rozdziałów. W pierwszym
rozdziale przedstawiona została ogólnie metoda spektralnej tomografii optycznej wraz z jej
opisem matematycznym i fizycznym. Opisane zostały również metody analizy danych oraz
ich wpływ na jakość otrzymywanego tomogramu. W drugim rozdziale została omówiona
budowa tomografu, opisane podstawowe elementy i podzespoły wchodzące w jego skład oraz
połączenia i zależności pomiędzy nimi. Rozdział ten zawiera również zwięzły opis całego
oprogramowania przygotowanego przez autora w celu realizacji tego projektu w języku
C/C++ oraz C#. W rozdziale trzecim znajduje się opis wykorzystywanej architektury
sprzętowej i technologii równoległego przetwarzania danych na procesorach graficznych.
Czwarty rozdział, objętościowo największy i jednocześnie najistotniejszy, przedstawia opis
zastosowanych rozwiązań implementacyjnych oraz optymalizacyjnych wprowadzonych w
rozwijanych algorytmach przetwarzania danych spektralnej tomografii optycznej. W piątym
rozdziale przedstawiono rezultaty bazujące na szybkim przetwarzaniu danych za pomocą
zaimplementowanych metod, a więc szybkie obrazowanie tomogramów dwuwymiarowych,
wizualizacje trójwymiarowe uzyskane w czasie rzeczywistym oraz algorytmy automatycznej
adaptacji protokołów skanowania. Szósty rozdział stanowi podsumowanie rozprawy.
Cele projektu i teza rozprawy
Zamiarem podjętego projektu reformułowania algorytmów obliczeniowych spektralnej
tomografii OCT w celu równoległego przetwarzania danych na wielordzeniowych
procesorach graficznych było:
1. umożliwienie wysokojakościowego obrazowania w czasie rzeczywistym, tak aby
uzyskiwane przekroje wyświetlane były na ekranie jak najszybciej, bez zbędnych
opóźnień, które bardzo utrudniają ustawienie pacjenta bądź obiektu w badaniach
materiałowych,
2. obrazowanie bez żadnych ustępstw dotyczących jakości (w celu przyśpieszenia
obliczeń) prezentowanego na ekranie przekroju – prezentowany w czasie
3
rzeczywistym tomogram ma być wyświetlony w najlepszej możliwej do osiągnięcia
dla tej metody jakości,
3. trójwymiarowe obrazowanie w czasie rzeczywistym, dotychczas (w przypadku
obliczeń na procesorze głównym) w ogóle nie osiągalne,
4. implementacja dodatkowych trybów obrazowania rozszerzających standardowe
obrazowanie strukturalne w OCT o metodę dopplerowską (pozwalającą na
obrazowanie przepływów naczyniach krwionośnych) oraz metodę redukcji szumu
plamkowego,
5. implementacja algorytmów automatycznego dostosowywania protokołów skanowania w metodzie:


dopplerowskiej – w celu samoczynnego dostosowania protokołu do
mierzonego przepływu, tak aby wykorzystywał on cały dostępny
zakres dynamiczny mierzonych prędkości,
redukcji szumu plamkowego – w celu rejestracji danych w taki sposób,
aby uśrednianie pozwalało na zminimalizowanie szumu plamkowego,
jednocześnie nie pogarszając zbytnio rozdzielczości poprzecznej
obrazowania.
Wyżej przedstawione cele pozwoliły na sformułowanie następującej tezy niniejszej
rozprawy: optymalne wykorzystanie typów pamięci i reformułowanie algorytmów w celu
równoległego przetwarzania danych spektralnej tomografii optycznej na kartach
graficznych pozwala na przyśpieszenie obliczeń, umożliwiające trójwymiarowe
obrazowanie strukturalne oraz czynnościowe w czasie rzeczywistym z jednoczesnym
adaptacyjnym modyfikowaniem protokołów skanowania.
1. Spektralna tomografia optyczna
Metoda tomografii optycznej dzieli się na dwie podstawowe odmiany: pierwsza, tzw.
czasowa (ang. Time domain OCT, TdOCT), została zaprezentowana już w 1991 roku [16],
natomiast druga – fourierowska (ang. Fourier domain OCT, FdOCT) – pięć lat później [17].
Tą z kolei dzieli się na bardziej popularną spektralną tomografię optyczną (ang. Spectral
domain OCT, SdOCT, albo: SOCT) oraz tomografię optyczną z użyciem laserów strojonych
(ang. Swept Source OCT, SSOCT) [18]. Systemy pracujące w pierwszej odmianie (czasowej)
wymagają skanowania w głąb obiektu poprzez zastosowanie mechanicznie przesuwanego
zwierciadła w ramieniu interferometru. Natężenie odbitego światła mierzone jest podczas
ruchu zwierciadła za pomocą fotodiody. W ten sposób otrzymywane są kolejne A-skany.
Badanie tą metodą trwa stosunkowo długo, na tyle, że mimowolne ruchy pacjenta podczas
4
badania oka wpływają negatywnie na jakość otrzymywanego tomogramu. W układach
spektralnych zwierciadło referencyjne utrzymywane jest w stałym położeniu, a rejestracja
światła zamiast na fotodiodzie odbywa się za pośrednictwem spektrometru. Z uzyskanego w
ten sposób widma interferencyjnego generowany jest jeden A-skan przez zastosowanie
transformacji Fouriera. Usunięcie ruchomych elementów z interferometru i rejestracja widm
na liniowej kamerze o bardzo szybkim transferze danych ze spektrometru pozwoliły na około
stukrotne przyśpieszenie akwizycji i zwiększenie osiowej rozdzielczości obrazowania z
10 µm do ok. 3 µm [19, 20]. Mimo istotnej niedogodności, jaką stanowi ograniczony zakres
obrazowania (zwykle 2-3 mm), metoda ta niemal całkowicie wyparła odmianę czasową –
TdOCT, oferując nieporównywalnie wyższą jakość i szybkość obrazowania.
Przetwarzanie danych w SOCT
W przypadku detekcji fourierowskiej, z jaką mamy do czynienia w spektralnej
tomografii optycznej, sygnał interferencyjny rejestrowany jest na liniowej kamerze w
spektrometrze. Każde zebrane w ten sposób widmo wymaga wykonania szeregu procedur
numerycznych, aby uzyskać z każdego z nich jeden A-skan. W wyniku rozwijania metody od
ponad dziesięciu lat zarówno przez nasz zespół, jak i inne grupy badawcze na świecie, ustalił
się standardowy zestaw procedur numerycznych wymaganych do uzyskania dobrej jakości
obrazu tomograficznego. Składa się on z sześciu podstawowych kroków:
1.
2.
3.
4.
5.
6.
odjęcie tła,
transformacja – ,
numeryczna kompensacja dyspersji,
kształtowanie widma,
transformacja Fouriera,
prezentacja w skali logarytmicznej.
Wykonanie wszystkich tych kroków jest niezbędne w celu uzyskania tomogramów w
najwyższej jakości.
Metoda dopplerowska w SOCT
Metoda dopplerowska pozwala na wyznaczanie składowej równoległej wektora
prędkości cząstki rozpraszającej promieniowanie sondujące. Podstawą jej działania jest fakt,
że zmiana częstotliwości promieniowania sondującego po odbiciu od poruszającej się cząstki
(efekt Dopplera) powoduje niewielkie zmiany częstotliwości sygnału interferencyjnego, które
wyznaczyć można za pomocą pomiaru zmiany fazy sygnału.
Metoda ta polega na wykonaniu dwóch następujących po sobie pomiarów OCT w tym
samym miejscu, a następnie wyznaczeniu różnicy w położeniu obserwowanego elementu
5
struktury obiektu poprzez pomiar różnic fazowych pomiędzy składowymi
częstotliwościowymi zarejestrowanych widm. Pozwala to na znalezienie przemieszczeń
centrów rozpraszających wewnątrz badanego obiektu w czasie, który upłynął pomiędzy tymi
pomiarami. Dostosowywanie zakresu mierzonych prędkości odbywa się poprzez zmianę
czasu pomiędzy kolejnymi pomiarami.
Metoda uśredniania szumu plamkowego
Metoda ta zaproponowana została przez M. Szkulmowskiego [21] z naszego zespołu,
z punktu widzenia oprogramowania wykorzystuje najprostsze uśrednianie ze sobą sąsiednich
A-skanów. Podstawą efektywności jej działania jest specyficzny sposób rejestracji danych.
Aby była skuteczna, niezbędne jest rejestrowanie widm w taki sposób, aby były wzajemnie ze
sobą jak najmniej skorelowane i jednocześnie pochodziły z możliwie bliskich fizycznie
miejsc. Efekt taki uzyskuje się, rejestrując kolejne widma podczas skanowania specjalnym
protokołem z nałożoną dodatkową oscylacją. Powoduje ona nieznaczny spadek poprzecznej
rozdzielczości obrazowania poszczególnych przekrojów, podnosi natomiast w wysokim
stopniu jakość tomogramu wynikowego, zwłaszcza jeśli analizowany obiekt nie posiada
gwałtownych zmian w strukturze poprzecznej.
2. Budowa tomografu i architektura
oprogramowania
Zadaniem oprogramowania współpracującego z tomografem OCT jest nie tylko
analiza numeryczna danych i ich wyświetlenie, ale również zarządzanie szeregiem czynności
związanych ze sterowaniem kamerą spektrometru, skanerami galwanometrycznymi oraz
synchronizacją pomiędzy podzespołami urządzenia. Przygotowanie oprogramowania do tego
zadania jest więc nierozłącznie powiązane z opracowaniem procedur sterowania
dodatkowymi urządzeniami zewnętrznymi. W rozdziale drugim zaprezentowany został
ogólny schemat połączeń i zależności pomiędzy komputerem a podzespołami tomografu.
Przedstawiona została także architektura aplikacji, która ze względu na wielozadaniowość
została podzielona na oddzielnie kompilowane projekty (moduły) współpracujące ze sobą.
Oprogramowanie do sterowania tomografem OCT i równoległego przetwarzania
danych zostało przygotowane pod kontrolą systemu operacyjnego Microsoft® Windows™ 7
Professional w wersji 64 bitowej w programie Microsoft® Visual Studio 2010 Ultimate na
licencji MSDNAA (ang. Microsoft Developer Network Academic Alliance). W celu
optymalizacji przetwarzania danych na CPU oraz ich buforowania w pamięci operacyjnej
6
RAM wykorzystano biblioteki Intel® Integrated Performance Primitives zakupione do tego
projektu przez autora.
Do wizualizacji danych wykorzystano interfejs API OpenGL® (dostępny bezpłatnie) a
w celu uproszczenia niektórych partii kodu dodatkowo użyto biblioteki pomocniczej Freeglut,
stanowiącej nowszą i dystrybuowaną na licencji Open Source alternatywę dla nakładki GLUT
(ang. OpenGL® Utility Toolkit). Rejestrację klatek generowanych na ekranie podczas
obrazowania na żywo umożliwia biblioteka FreeImage (Open Source), pozwalająca na zapis
ramki prezentowanej w OpenGL® do plików w formacie JPG.
Oddzielny zestaw stanowią biblioteki DLL dostarczane przez producenta kart
rozszerzeń – National Instruments w ramach środowiska LabView. Proces rejestracji danych
poprzez kartę akwizycji realizowany jest za pomocą modułu NI Vision Acquisition Software,
w skład którego wchodzi NI IMAQ – zestaw bibliotek pozwalających na pobieranie danych z
kamery. Z kolei do sterowania wyjściami analogowymi wykorzystywana jest biblioteka
NI DAQmx.
Aplikacja sterowana jest zdarzeniami, w większości przypadków są to przeróżne
zmiany trybów jej pracy. Przejście do trybu obrazowania w czasie rzeczywistym wymaga
skonfigurowania wszystkich modułów domyślnymi parametrami, zainicjowania karty
akwizycji, kamery oraz wygenerowania trajektorii dla skanerów i przesłania ich do karty
sterującej. Ponadto rozpoczęcie obrazowania na żywo wymaga uruchomienia zadań
powtarzanych w sposób ciągły: odbierania danych, ich przetwarzania i wizualizacji. Nad tymi
czynnościami nadzór sprawują dwa główne wątki aplikacji uruchomione na procesorze
głównym CPU. Pierwszy z nich, wątek akwizycyjny, odpowiedzialny jest za odbieranie
danych ze spektrometru. Drugi główny wątek aplikacji uruchomiony na procesorze głównym
to wątek obliczeniowo – wizualizacyjny. Jego podstawowym zadaniem jest pobieranie
danych z kolejki buforów, przesłanie ich do pamięci karty graficznej, a następnie zarządzanie
wielowątkowym procesem przetwarzania danych na procesorze graficznym oraz wizualizacja
wyników na ekranie.
3. Równoległe przetwarzanie danych
procesorach graficznych
Procesory graficzne są układami przetwarzającymi dane w sposób równoległy, więc
nie wszystkie algorytmy dobrze nadają się do implementacji i uruchamiania na GPU. Jeżeli w
ogóle istnieje możliwość zrównoleglenia danej analizy numerycznej, to wydajność
przetwarzania wzrasta z ilością danych poddawanych obliczeniom równoległym. W
kontekście przedstawionych powyżej kwestii analiza danych spektralnej tomografii optycznej
7
dobrze nadaje się do zrównoleglenia z wykorzystaniem wielordzeniowych procesorów
graficznych – obliczenia wykonywane na kolejnych widmach są niezależne od siebie, a
złożoność związana jest przede wszystkim z ilością danych poddawanych przetworzeniu.
Producenci procesorów graficznych, wychodząc naprzeciw zapotrzebowaniu rynku na
szybkie układy generujące realistyczne obrazy w grach komputerowych, przygotowali
urządzenia o ogromnej wydajności obliczeń. Kluczowym krokiem było uogólnienie
specjalizowanych układów cieniowania na programowalne jednostki arytmetyczno-logiczne i
zmiennoprzecinkowe ogólnego przeznaczenia oraz przygotowanie interfejsu API
umożliwiającego wykorzystanie ich przez programistów. Dzięki temu procesory o mocy
obliczeniowej osiągalnej do niedawna jedynie przez superkomputery stały się dostępne dla
wszystkich.
Tworzenie kodu dla procesorów graficznych nie jest tak intuicyjne, jak
programowanie strukturalne aplikacji na procesory główne komputerów osobistych, które
znalazło swoje stałe miejsce w ścieżkach edukacji uczelni technicznych i do którego
absolwenci takich uczelni są przyzwyczajeni. Rosnąca popularność wykorzystania
procesorów GPU do obliczeń ogólnych wprowadziła również to zagadnienie jako przedmiot
wykładowy do wielu uczelni na świecie.
Oczywiście nie każdy problem numeryczny nadaje się do implementacji na procesor
graficzny i nie można przedstawiać układów GPU jako jedynych i najlepszych platform do
obliczeń. Obecne wykorzystanie sugeruje, że dalszego kierunku rozwoju tej technologii
można oczekiwać w ścisłej współpracy nowoczesnych procesorów CPU z wydajnymi
wielordzeniowymi procesorami graficznymi.
Najbardziej pozytywnym aspektem tak szybkiego rozwoju procesorów graficznych i
udostępnienia go szerokiej rzeszy odbiorców jest fakt, że ogromna moc obliczeniowa tych
układów pozwoliła na przyspieszenie rozwiązań wielu problemów naukowych i ciągle służy
ludziom, wspomagając działanie aparatury biomedycznej.
W trzecim rozdziale rozprawy krótko zarysowano historię rozwoju komputerów oraz
przyczyny pojawienia się architektur wielordzeniowych. Przedstawiona została architektura
procesorów graficznych na przykładzie procesorów rodziny Fermi™ (w kontekście
programowania wielowątkowego w CUDA C), ze szczególnym uwzględnieniem dostępnych
typów pamięci.
8
4. Implementacja algorytmów przetwarzania
danych OCT na GPU
Bardzo istotną różnicą pomiędzy procesorami głównymi stacji roboczych (CPU) a
procesorami graficznymi (GPU) jest przydział tworzących je tranzystorów do pełnienia
poszczególnych funkcji. W układach CPU większość tranzystorów wchodzi w skład pamięci
podręcznej oraz układów sterowania przepływem danych, natomiast właściwym
wykonywaniem obliczeń zajmuje się mniej więcej ich czwarta część. W procesorach
graficznych tranzystory wchodzą przede wszystkim w skład jednostek arytmetyczno –
logicznych oraz zmiennoprzecinkowych, natomiast znacznie mniejsza ich część zajmuje się
sterowaniem przepływem danych. Z tego właśnie powodu pewne zadania związane z
uruchamianiem wątków, podziałem zadań i przepływem danych muszą być ręcznie
zaprogramowane przez użytkownika, aby przetwarzanie w procesorze graficznym było
efektywne.
Pierwszą stabilną wersję programu przetwarzającego dane spektralnej tomografii
optycznej w procesorze graficznym autor uzyskał na początku 2010 roku a wyniki jego
wydajności opublikował we wrześniu [22]. Uzyskano wtedy szybkość przetwarzania
danych w obrazowaniu strukturalnym około sześciokrotnie wyższą (Rys. 4.1 b) niż w
Rys. 4.1. Wpływ zastosowanych i zaimplementowanych w rozwijanym
oprogramowaniu rozwiązań przyczyniających się do zwiększenia
wydajności obliczeń, a) wydajność obliczeń równoległych na procesorze
CPU, b – i) kolejne rozwiązania opisane w tekście
9
przypadku zastosowania zoptymalizowanych obliczeń równoległych na procesorze
głównym (Rys. 4.1 a) [23]. Wówczas autor rozwijał oprogramowanie na karcie graficznej
wyposażonej w procesor GTX 280 (240 rdzeni CUDA) i 2GB globalnej pamięci. Wymiana
karty graficznej na nowszy model (GeForce CUDA GTX 580 MSI 3072MB) wyposażony w
512 rdzeni CUDA, pozwoliła na uzyskanie wydajności obliczeń wynoszącej 430 tys. Askanów na sekundę (Rys. 4.1 c). Następnie wprowadzono optymalizacje wyznaczania
indeksów niezbędnych do pobierania danych, w obliczeniach w których istniała taka
możliwość przeformułowano operacje matematyczne na operacje bitowe oraz
zminimalizowano wykorzystanie rejestrów. W konsekwencji zmniejszono liczbę operacji
mnożenia i dodawania dzięki temu uzyskano wydajność przetwarzania na poziomie 515 tys.
A-skanów na sekundę (Rys. 4.1 d). Wykorzystanie jednostek funkcji specjalnych (SFU)
pozwoliło na zwiększenie wydajności do 600 tysięcy widm na sekundę (Rys. 4.1 e). W
dalszej kolejności zmodyfikowano implementację procedury transformacji  – k. W obecnej
wersji wykorzystuje ona o 4 rejestry więcej. Pomimo większego zapotrzebowania na zasoby
sprzętowe, zgodnie z arkuszem CUDA Occupancy Calculator, zmiana ta nie spowodowała
zmniejszenia liczby aktywnych wątków na multiprocesorze, a dzięki dodatkowym rejestrom
świadome podzielono i uporządkowano operacje numeryczne i w konsekwencji osiągnięto
wydajność przewyższającą 740 tys. A-skanów na sekundę (Rys. 4.1 f). Zastosowanie funkcji
pojedynczej precyzji (w celu zaokrąglania do wartości całkowitych, logarytmowania i
pierwiastkowania) w funkcjach jądra wykonujących obliczenia zarówno przed jak i po
transformacji Fouriera pozwoliło na osiągnięcie wydajności przetwarzania na poziomie 877
tysięcy A-skanów na sekundę (Rys. 4.1 g). Reorganizacja rozmieszczenia bloków wątków w
siatce bloków poprzez wprowadzenie dwuwymiarowego indeksowania odpowiadającego
numerom A-skanów i B-skanów, pozwoliło na całkowitą rezygnację z konieczności
wyznaczania reszty z dzielenia całkowitego i pozwoliło na znaczne uproszczenie obliczeń
wskaźników do danych – wydajność obliczeń osiągnęła 980 tys. A-skanów na sekundę (Rys.
4.1 h). Ostatecznie, kompletu optymalizacji dopełnia właściwe umieszczenie polecenia
__syncthreads() pozwalając na przetworzenie powyżej miliona widm na sekundę (Rys.
4.1 i). Przedstawione powyżej zestawienie dotyczy przetwarzania danych w obrazowaniu
strukturalnym, w pozostałych metodach stosowano analogiczne rozwiązania. We wszystkich
przypadkach przetwarzano widma złożone z 2048 pikseli. Zależność wydajności obliczeń od
liczby przetwarzanych A-skanów przedstawiono na wykresie (Błąd! Nie można odnaleźć
źródła odwołania.) i jest ona około dwudziestokrotne wyższa niż w przypadku do dobrze
zoptymalizowanej, wielowątkowej aplikacji pracującej na wielordzeniowym procesorze
głównym [23]).
W rozdziale czwartym rozprawy przedstawiono krótki przegląd literatury przedmiotu
wraz z wkładem autora. Zaprezentowano opracowaną podczas realizacji projektu
implementację procedur równoległego przetwarzania danych SOCT na procesor graficzny (w
10
architekturze Fermi) oraz omówiono wpływ poszczególnych rozwiązań na wydajność
całego procesu obliczeń.
5. Wykorzystanie uzyskanej szybkości
przetwarzania danych
Wykorzystanie kart graficznych w celu efektywniejszej analizy danych spektralnej
tomografii optycznej pozwala na wprowadzenie nowej jakości do tej znanej od wielu lat
metody. Dzięki uzyskanej szybkości przetwarzania wynoszącej powyżej miliona widm na
sekundę możliwe jest zrealizowanie wysokojakościowego obrazowania dwu- oraz
trójwymiarowego w czasie rzeczywistym, które nie było możliwe do uzyskania w przypadku
przetwarzania danych na procesorze głównym.
Warunkiem koniecznym do uzyskania obrazowania OCT w czasie rzeczywistym jest
oczywiście odpowiednio szybkie przetwarzanie danych. Dzięki zastosowaniu procesorów
graficznych oraz odpowiednio zoptymalizowanych algorytmów uzyskano bardzo wysoką
wydajność obliczeń, przewyższającą milion A-skanów na sekundę. Drugim, równie ważnym
warunkiem, jest możliwość odpowiednio szybkiego wyświetlenia przetworzonych danych.
Połączenie przedstawionego w rozdziale czwartym rozprawy modułu do przetwarzania
danych z opracowanym przez autora i szczegółowo opisanym w piątym rozdziale sposobem
wizualizacji danych bezpośrednio z pamięci karty graficznej pozwala na wydajne
obrazowanie w czasie rzeczywistym.
Wydajność obrazowania techniką OCT z wykorzystaniem rozwijanego
oprogramowania przedstawiono w tabeli (Tabela 5.1). Całkowita wydajność obrazowania
zależy od czasu wykonania trzech kroków: akwizycji (zależnie od protokołu), transferu
Tabela 5.1. Rzeczywista szybkość odświeżania strukturalnych obrazów OCT z
zastosowaniem oprogramowania przygotowanego w trakcie realizacji
projektu dla wybranych protokołów
Protokół
1
Całkowita
liczba
A-skanów
Czas transferu
danych do
GPU
Czas
Wydajność
2
3
4
5
Wydajność z
uwzględnieniem
czasu transferu
do GPU
6
8,2 ms
9,5 ms
11 ms
24 ms
63 ms
110 ms
120 Hz*
105 Hz
93 Hz
42 Hz
16 Hz
9 Hz
76 Hz
52 Hz
31 Hz
15 Hz
11 Hz
6,5 Hz
Krzyż 2x1600
3 200
5 ms
Krzyż 2x2000
4 000
10 ms
Cztery przekroje 4x2000
8 000
22 ms
Cztery przekroje 4x5000
20 000
42 ms
Podgląd 3D 100x100
10 000
28 ms
Podgląd 3D 140x140
19 600
42 ms
*ograniczone przez częstotliwość odświeżania monitora LCD
Przetwarzanie i
wizualizacja
11
surowych widm do pamięci karty graficznej (Tabela 5.1, kol. 3.) oraz czasu przetwarzania i
wizualizacji (Tabela 5.1, kol. 4.). Gdyby czas rejestracji danych był równy czasowi
wszystkich czynności związanych z przetworzeniem i wyświetleniem danych, każda
wyświetlana na ekranie klatka zawierałaby tomogram uzyskany w wyniku przetworzenia za
każdym razem nowego zestawu widm. W takiej sytuacji szybkość wyświetlanych na ekranie
klatek zależałaby od dwóch czynników: czasu transferu danych (Tabela 5.1, kol. 3.) oraz
przetwarzania i wizualizacji (Tabela 5.1, kol. 4.) i osiągałaby wartości przedstawione w
ostatniej kolumnie tabeli (Tabela 5.1, kol. 6.). W obecnym stanie rozwoju technologii
rejestracja danych wymaga jednak więcej czasu niż przetworzenie ich na procesorze
graficznym, dlatego nowe zestawy widm dostępne są rzadziej niż co każdą klatkę
wyświetlaną na ekranie. Z tego względu ten sam zestaw danych jest przetwarzany kilka razy,
aż zakończy się proces rejestracji nowego tomogramu. Wielokrotne przetwarzanie tych
samych danych pozwala na natychmiastowe uwzględnienie zmieniających się parametrów
obliczeniowych (np. współczynnika kompensacji dyspersji) czy wizualizacyjnych (kątów
obrotu), co zwiększa interaktywność aplikacji. Tak więc w trakcie obrazowania średnie
szybkości odświeżania prezentowanych przekrojów uzyskują wartości zawierające się w
zakresach ograniczonych przez liczby w kolumnach 5. i 6. (Tabela 5.1).
Jedną z bardziej kłopotliwych czynności dla użytkownika tomografu OCT podczas
pomiarów dopplerowskich jest dostosowanie protokołu skanowania tak, aby obrazowana
prędkość przepływu optymalnie wykorzystywała zakres dynamiczny. Podobne problemy
może sprawiać dostosowywanie amplitudy oscylacji dodatkowego skanera w metodzie
redukcji szumu plamkowego. W obu metodach użytkownik obsługujący tomograf dobiera
subiektywnie parametry protokołu na podstawie B-skanu wyświetlanego podczas podglądu na
żywo. W przypadku obliczeń na procesorze głównym jakość tego tomogramu jest
stosunkowo niska ze względu na stosunkowo małą liczbę wyświetlanych A-skanów.
Korzystając z takiego przekroju oraz własnej wiedzy i doświadczenia użytkownik zmienia
wybrany parametr protokołu, a następnie ponownie uruchamia akwizycję i ocenia, czy
korekta, którą wprowadził, jest wystarczająca. Odpowiednie ustawienie parametrów wymaga
zwykle kilku takich iteracji. Dostosowywanie protokołu na zasadzie prób i błędów jest bardzo
uciążliwe, wymaga przede wszystkim skupienia i wielokrotnej modyfikacji parametrów oraz
sprawdzania na wynikowym tomogramie, czy nie pojawiają się artefakty. Oczywistym jest, że
podejście takie zawodzi w przypadku dynamicznie zmieniających się własności obiektu.
Wykorzystanie szybkiej analizy numerycznej na procesorach graficznych pozwoliło
uzyskać w czasie rzeczywistym wysokiej jakości przekroje oraz oceniać ich jakość w
zależności od parametrów protokołu. W realizowanym projekcie autor przygotował dwa typy
adaptacyjnych metod optymalizacji obrazów OCT. W przypadku analiz dopplerowskich w
ciągu około pięciu sekund algorytm sam dostosowuje protokół do analizowanego przepływu
12
dobierając właściwy dla występującego w obiekcie przedziału prędkości przepływów. W
metodzie redukcji szumu plamkowego efekt uzyskuje się poprzez dobranie parametrów
skanowania – zadanie to wymaga kilkunastu sekund głównie ze względu na czas akwizycji
dużych zbiorów danych oraz konieczność uzyskania odpowiedniej statystyki.
6. Podsumowanie rozprawy
Przygotowane w trakcie realizacji projektu oprogramowanie, ze szczególnym
uwzględnieniem wysoce zoptymalizowanych metod przetwarzania danych w procesorze
graficznym i wizualizacji wyników bezpośrednio z pamięci karty graficznej, pozwoliło na
osiągnięcie oczekiwanych rezultatów. Dzięki równoległej analizie danych w GPU uzyskano
wysokojakościowe obrazowanie w czasie rzeczywistym w trybie dwuwymiarowym.
Wyświetlane przekroje tworzone z kilku tysięcy rejestrowanych widm na każdy B-skan i
uśrednianie sąsiadujących A-skanów pozwoliło na wyświetlanie z częstotliwością
kilkudziesięciu ramek na sekundę tomogramów o jakości, którą dotychczas uzyskać można
było jedynie w trybie post-processingu. Zastosowane rozwiązania pozwalają również na
obrazowanie trójwymiarowe w czasie rzeczywistym, które dotychczas nie było w ogóle
możliwe. Ten sposób obrazowania może być przydatny jako dodatkowe narzędzie np.
podczas operacji na żywym oku (przeszczep rogówki, soczewki).
Na tak duże przyspieszenie obliczeń dzięki wykorzystaniu GPU można spojrzeć jak na
pewnego rodzaju „zaoszczędzenie” czasu w wykonywaniu pewnego zadania, który z kolei
przeznaczyć można na zastosowanie dodatkowych analiz, np. szybką ocenę uzyskiwanego
tomogramu i dostosowanie protokołu skanowania. W realizowanym projekcie autor
przygotował dwa typy adaptacyjnych metod dostosowywania protokołów rejestracji danych
OCT: w analizach dopplerowskich oraz w metodzie redukcji szumu plamkowego.
Reasumując, zdaniem autora, uzyskane szybkości przetwarzania danych są w pełni
wystarczające dla celów SOCT i o ile nie pojawią się zupełnie nowe pomysły w zakresie
procedur obróbki danych, wysiłki w kierunku dalszego przyspieszania obliczeń nie mają
uzasadnienia. Głównym ograniczeniem jest obecnie wymagany czas akwizycji danych,
niezbędny dla uzyskania odpowiedniego stosunku sygnału do szumu – wynikający z natury
procesów fizycznych zachodzących w detektorach. Jedynie jakościowo nowe rozwiązania w
tym zakresie – jak dotąd nie znane i nie możliwe do przewidzenia – mogłyby na nowo
postawić problem optymalizacji wydajności obrazowania OCT na drodze dalszej poprawy
szybkości obliczeń.
13
Literatura
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
M. Wojtkowski, R. Leitgeb, A. Kowalczyk et al., In vivo human retinal imaging by
Fourier domain optical coherence tomography, Journal of Biomedical Optics, 7 (3),
457-463 (2002).
W. Drexler, and J. G. Fujimoto, State-of-the-art retinal optical coherence tomography,
Prog Retin Eye Res, 27 (1), 45-88 (2008).
J. Welzel, Optical coherence tomography in dermatology: a review, Skin Research
and Technology, 7 (1), 1-9 (2001).
J. K. Barton, K. W. Gossage, W. Xu et al., Investigating sun-damaged skin and actinic
keratosis with optical coherence tomography: A pilot study, Technology in Cancer
Research & Treatment, 2 (6), 525-535 (2003).
B. E. Bouma, G. J. Tearney, C. C. Compton et al., High-resolution imaging of the
human esophagus and stomach in vivo using optical coherence tomography,
Gastrointestinal endoscopy, 51(4) Pt 1 467-74 (2000).
M. Suter, B. J. Vakoc, N. S. Nishioka et al., Comprehensive three-dimensional
microscopy of the porcine and human esophagus in vivo using optical frequency
domain imaging, Gastroenterology, 130 (4), A103-A103 (2006).
A. H. Huang, Y. K. Chen, L. M. Lin et al., Isolation and characterization of dental
pulp stem cells from a supernumerary tooth, J Oral Pathol Med, (2008).
G. J. Tearney, S. Waxman, M. Shishkov et al., Three-Dimensional Coronary Artery
Microscopy by Intracoronary Optical Frequency Domain Imaging, JACC:
Cardiovascular Imaging, 1 (6), 752-761 (2008).
D. Stifter, Beyond biomedicine: a review of alternative applications and developments
for optical coherence tomography, Applied Physics B Lasers and Optics, 88 (3), 337357 (2007).
P. Targowski, M. Iwanicka, L. Tyminska-Widmer et al., Structural examination of
easel paintings with optical coherence tomography, Acc Chem Res, 43 (6), 826-36
(2010).
P. Targowski, B. J. Rouba, P. Karaszkiewicz et al., Optyczna Koherentna Tomografia
OCT – nowe narzędzie do działań konserwatorskich i inwentaryzacyjnych / Optical
Coherence Tomography OCT – a novel tool for art conservation and cataloguing,
Wiadomości konserwatorskie, 26 94-107 (2009).
14
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
[21]
[22]
[23]
J. Kunicki-Goldfinger, P. Targowski, M. Góra et al., Characterization of glass surface
morphology by optical coherence tomography, Studies in Conservation, 54 117–128
(2009).
P. Targowski, J. Marczak, K. E.A. et al., Optical coherence tomography for highresolution real time varnish ablation monitoring, 26-31
M. Iwanicka, E. A. Kwiatkowska, M. Sylwestrzak et al., Application of optical
coherence tomography (OCT) for real time monitoring of consolidation of the paint
layer in Hinterglasmalerei objects, Proc. SPIE, 8084 80840G (2011).
NVIDIA, NVIDIA CUDA C Programming Guide v. 5.0, (2012).
D. Huang, E. A. Swanson, C. P. Lin et al., Optical coherence tomography, Science,
254 (5035), 1178-1181 (1991).
A. F. Fercher, Optical coherence tomography, Journal of Biomedical Optics, 1 (2),
157-173 (1996).
S. R. Chinn, E. A. Swanson, and J. G. Fujimoto, Optical coherence tomography using
a frequency-tunable optical source, Opt Lett, 22 (5), 340-342 (1997).
M. Wojtkowski, High-speed optical coherence tomography: basics and applications,
Appl. Opt., 49 (16), D30-D61 (2010).
R. Leitgeb, C. K. Hitzenberger, and A. F. Fercher, Performance of Fourier domain vs.
time domain optical coherence tomography, Optics Express, 11 (8), 889-894 (2003).
M. Szkulmowski, I. Gorczynska, D. Szlag et al., Efficient reduction of speckle noise in
Optical Coherence Tomography, Opt Express, 20 (2), 1337-59 (2012).
M. Sylwestrzak, M. Szkulmowski, D. Szlag et al., Real-time imaging for Spectral
Optical Coherence Tomography with massively parallel data processing, Photonics
Letters of Poland, 2 (3), 137-139 (2010).
G. Liu, J. Zhang, L. Yu et al., Real-time polarization-sensitive optical coherence
tomography data processing with parallel computing, Appl. Opt., 48 (32), 6365-6370
(2009).
15