DANIEL RESKA

Transkrypt

DANIEL RESKA
II Konferencja TEWI
Łódź, Czerwiec 2011
DANIEL RESKA
CEZARY BOŁDAK
MAREK KRĘTOWSKI
Wydział Informatyki, Politechnika Białostocka
ŚRODOWISKO BADAWCZE METOD SEGMENTACJI BAZUJĄCYCH NA MODELACH
ODKSZTAŁCALNYCH W OBRAZOWANIU BIOMEDYCZNYM
Streszczenie
Artykuł prezentuje główne założenia tworzonego
środowiska badawczego, służącego do opracowywania,
rozwijania, testowania i zarządzania istniejącymi lub
nowymi narzędziami do segmentacji obrazów
biomedycznych w oparciu o modele odkształcalne.
System będzie aplikacją internetową, wykorzystującą
platformę JavaFX po stronie klienta oraz usługi sieciowe
Apache Axis2/Java po stronie serwera.
Słowa kluczowe
Segmentacja, obrazowanie biomedyczne, modele
odkształcalne, aktywny kontur, usługi sieciowe.
1. Wprowadzenie
Obrazowanie
biomedyczne,
pozwalające
na
nieinwazyjne pozyskiwanie i prezentację wewnętrznej
budowy ciała oraz procesów w nim zachodzących,
odgrywa niebagatelną rolę we współczesnej medycynie.
Jednym z kluczowych zagadnień przetwarzania obrazów
biomedycznych
jest
ich
segmentacja,
czyli
wyodrębnianie z tła interesujących obszarów (np.
organów lub zmian patologicznych) w celu ich dalszej
analizy. Modele deformowane [1] są jedną z grup
algorytmów szczególnie przydatnych w analizie obrazów
biomedycznych. Opierają się ona na idei dynamicznego
kształtu, który ewoluuje w celu jak najlepszego
dopasowania się do segmentowanego obszaru.
W przypadku prac nad tego typu algorytmami
szczególnie ważna jest możliwość zweryfikowania ich
działania w kontrolowanym środowisku i na
rzeczywistych zbiorach danych. W artykule tym
przedstawiamy środowisko badawcze, spełniające
powyższe założenia i pozwalające na tworzenie i
rozwijanie metod segmentacji opartych o modele
odkształcalne. System ten oferował będzie również
narzędzia do zarządzania zbiorami danych oraz oferował
specjalistyczne narzędzia do ich wizualizacji. Dalsza
część artykułu zawiera opis systemu i jego aktualny stan
rozwoju.
2. Charakterystyka modeli odkształcalnych
Pierwszym modelem odkształcalnym był aktywny
kontur [2], będący parametryczną krzywą, odkształcającą
się pod wpływem wewnętrznych i zewnętrznych sił. Siły
zewnętrzne przyciągają kontur do pożądanych elementów
segmentowanego obrazu, natomiast siły wewnętrzne
dbają o spójność i gładkość krzywej. Kontur, opisany
jako krzywa v(s) = (x(s), y(s)), posiada energię:
1
E snake =
∫E
int
(v( s )) + Eimage (v ( s )) + E con (v( s ))ds
(1)
0
gdzie Eint oznacza energię wewnętrzną, Eimage
odpowiada energii sił zewnętrznych z obrazu, natomiast
Econ odnosi się do inne możliwych ograniczeń. Poprzez
minimalizację tej energii kontur potrafi dopasować się do
określonego obszaru obrazu, posiadając jednocześnie
odporność na zakłócenia oraz nieciągłość krawędzi, co
ma szczególne znaczenie w analizie obrazów
biomedycznych. Proces ewolucji przykładowego konturu
przedstawiono na Rys 1.
Rys.1 Ewolucja przykładowego konturu
Podstawowa wersja aktywnego konturu doczekała się
wielu rozwinięć i modyfikacji, likwidujących jej
pierwotne ograniczenia. Konieczność inicjalizacji w
bliskości segmentowanego obszaru może być rozwiązana
poprzez dodanie rozszerzającej kontur siły balonowej [4]
lub
zastosowanie
energii
gradientowego
pola
wektorowego [5]. Aktywny kontur rozwinięto również o
możliwość dynamicznej zmiany topologii [6], a także
opracowano trójwymiarową jego wersję – odkształcalną
powierzchnię [3].
Zaletą tej rodziny modeli odkształcalnych,
wykorzystaną w budowanym systemie, jest możliwość
ich łatwego rozszerzania poprzez dodawanie do
podstawowego
modelu
nowych
form
jawnie
zdefiniowanych energii. Problemem z kolei może być ich
efektywna parametryzacja w konkretnych przypadkach
zastosowania.
3. Koncepcja systemu
Głównym założeniem tworzonego systemu jest
stworzenie spójnego środowiska do opracowywania i
rozwijania modeli odkształcalnych, stosowanych do
II Konferencja TEWI
Łódź, Czerwiec 2011
segmentacji obrazów biomedycznych. System ma
oferować kompleksową infrastrukturę, odpowiedzialną za
zarządzanie zbiorami danych, tworzonymi modelami i
profilami użytkowników oraz oferować niezbędne
narzędzia służące do wizualizacji oraz testowania
algorytmów. Tego typu rozwiązanie może znaleźć
zastosowanie przy usprawnieniu procesu badań
naukowych, eliminując konieczność implementacji
własnej platformy badawczej.
Docelowo system ma oferować następującą
funkcjonalność:
• możliwość korzystania z wbudowanych modeli
odkształcalnych,
korzystających
z
predefiniowanych form energii i ograniczeń;
• definiowanie własnych form energii, a w
późniejszej fazie rozwoju również własnych
modeli;
• zarządzanie
profilami
użytkowników,
przechowującymi stworzone, modele, energie,
profile
eksperymentów
oraz
ustawienia
aplikacji;
• udostępnienie
repozytorium
obrazów
biomedycznych;
• udostępnienie narzędzi wizualizacji i analizy
danych biomedycznych oraz wyników ich
segmentacji.
3.1. Architektura i technologia
Podstawowym
założeniem
architektonicznym
systemu było rozdzielenie warstwy obliczeniowej,
przeniesionej na centralny serwer, od warstwy
prezentacji, działającej jako aplikacja internetowa w
przeglądarce użytkownika. Model klient-serwer (Rys. 2)
pozwala na zlikwidowanie zależności od platformy
systemowej i odciążenie maszyny klienta.
Aplikacja kliencka oparta jest aktualnie na platformie
JavaFX [7], umożliwiającej tworzenie aplikacji RIA (ang.
Rich Internet Application - bogata aplikacja internetowa),
działających w przeglądarkach internetowej. Platforma ta
udostępnia bogaty zbiór narzędzi i bibliotek pomocnych
przy
tworzeniu
zaawansowanych
interfejsów
użytkownika i manipulacji obiektami graficznymi.
Szczególną cechą tej platformy jest możliwość
zintegrowania jej z biblioteką Java3D [8], która pozwala
wydajne i niezależne od platformy renderowanie scen
3D, co jest koniecznym warunkiem przyszłego rozwoju
tworzonego systemu.
Warstwa obliczeniowa serwera oparta jest o silnik
usług sieciowych Apache Axis2/Java [9]. Wykorzystanie
usług sieciowych nie wymusza twardego powiązania
między serwerem a konkretnym klientem. API tych usług
może być wykorzystane również w innych aplikacjach,
zarówno opartych o inne platformy RIA, jak i w
samodzielnych aplikacjach desktopowych.
Za uwierzytelnianie i przechowanie danych
użytkowników odpowiedzialna jest usługa katalogowa
LDAP. W tej chwili, w celach testowych,
wykorzystywany jest serwer ApacheDS [10], jednak
elastyczność protokołu LDAP umożliwia integrację z
dowolnym innym serwerem, co otwiera drogę do
integracji aplikacji np. z wykorzystywanym w platformie
TEWI systemem Windchill, który mógłby również pełnić
rolę repozytorium danych.
3.2. Komunikacja między elementami systemu
Szczegółowy
schemat
komunikacji
między
komponentami systemu przedtaktowy jest na Rys. 3.
Rys.3. Schemat komunikacji między komponentami systemu
Rys.2 Schemat architektury systemu oraz komunikacji między klientem
a komponentami serwerowymi
Aplikacja klienta komunikuje się z serwerem
obliczeniowym poprzez usługi sieciowe, otrzymując od
niego definicje dostępnych modeli oraz wywołując
zdalne metody obliczeniowe, odpowiedzialne za
ewolucję konturu. Usługi pośredniczą również w procesie
uwierzytelniania i zarządzania profilami użytkowników,
ukrywając
faktyczny
sposób
obsługi
warstwy
bazodanowej. W chwili obecnej zarówno klient, jak i
II Konferencja TEWI
Łódź, Czerwiec 2011
serwer obliczeniowy komunikują się bezpośrednio z
repozytorium obrazów.
własne definicje. Rys. 5 przedstawia wstępną wersję
interfejsu, obrazującą działanie edytora energii.
4. Aktualny stan rozwoju systemu
W bieżącej fazie rozwoju systemu skupiono się na
implementacji modularnego dwuwymiarowego konturu
parametrycznego,
umożliwiającego
dynamiczne
dodawanie do niego nowych elementów składowych a
także przełączanie samego modelu konturu. Wyróżnić
można dwa rodzaje elementów składowych modelu:
• zewnętrzne i wewnętrzne energie modelu,
sterujące jego deformacją poprzez minimalizację
energii dla każdego węzła konturu;
• ograniczenia, reprezentujące siły modyfikujące
kształt konturu według innych zasad (np.
optymalizujące jego topologię ).
Zaimplementowanych zostało kilka podstawowych
form energii wewnętrznych (energie spójności i
regularności), zewnętrznych (e. regionu i gradientu) oraz
ograniczeń (siła balonowa [4], proste modyfikacje
topologii). Powstały również dwa przykładowe modele
aktywnego konturu: podstawowy model, minimalizujący
energię każdego węzła konturu w jego najbliższym
sąsiedztwie oraz bardziej zaawansowany model,
minimalizujący energię węzłów wzdłuż wyliczonych
wektorów kierunkowych. Aktualny stan interfejsu
użytkownika prezentowany jest na Rys. 4.
Rys.5 Wstępna wersja edytora energii z przykładową definicją
Definiując nową energię, klient może nadać jej
nazwę, określić liczbę parametrów oraz napisać jej
definicję (w języku Java). Użytkownik piszący skrypt ma
do dyspozycji obiekty niezbędne do sterowania wężem i
jego częściami składowymi. W przypadku ewentualnego
błędu przy wykonywaniu skryptu, użytkownik otrzyma z
serwera
wiadomość
zwrotną,
umożliwiającą
zlokalizowanie błędu w kodzie.
Implementacja powyższego narzędzia skupiała się do
tej pory głównie na zapewnieniu stabilności i
bezpieczeństwa serwera obliczeniowego. W dalszej fazie
rozwoju konieczne będzie stworzenie bardziej
przyjaznego edytora, wyposażonego w typowe funkcje
pomocne przy programowanie (np. podpowiedzi czy
kolorowanie składni). Mechanizm skryptowy pozwala
również na zdefiniowanie własnego metajęzyka,
ułatwiającego proces programowania.
4. 2. Profile użytkowników
Rys.4. Okno aplikacji z widocznym wynikiem segmentacji oraz
parametrami modelu
4. 1. Definiowanie własnych form energii
Żądania wysyłanie przez klienta do usługi
obliczeniowej są dynamicznie wykonywane na serwerze.
Dzięki temu użytkownik może nie tylko korzystać z klas
istniejących na serwerze, ale może również wywoływać
Aktualny moduł profili umożliwia uwierzytelnianie
użytkownika systemu oraz zarządzanie przez niego
profilami aplikacji. Profile przechowują aktualnie
całościowy zrzut ustawień aplikacji w danej chwili, czyli:
identyfikator otwartego zbioru danych, konfigurację
konturu razem z definicjami użytkownika oraz
współrzędne konturu. Pozwala to zapisać stan aplikacji i
kontynuować pracę po wczytaniu (Rys. 6). Docelowo
moduł będzie rozbudowany o możliwość oddzielnego
zapisywania profili konturów, własnych definicji, oraz
zbiorów danych użytkownika.
II Konferencja TEWI
Łódź, Czerwiec 2011
Rys.6. Prototyp widoku profilu użytkownika z listą zapisanych stanów
aplikacji
5. Podsumowanie
Wymogiem efektywnej pracy badawczej nad
algorytmami segmentacji obrazów biomedycznych jest
korzystanie ze stabilnej platformy programistycznej,
której opracowanie samo w sobie jest znacznym
wyzwaniem inżynieryjnym. Zaprezentowane w artykule
środowisko badawcze udostępniać będzie tego typu
platformę,
minimalizującą
wstępne
nakłady
przygotowawcze i pozwalającą na głębsze skupienie się
na faktycznie badanym algorytmie.
W aktualnym stadium rozwoju system oferuje
możliwość
modyfikacji
standardowego,
dwuwymiarowego
modelu
aktywnego
konturu,
korzystającego z wbudowanych lub zdefiniowanych
przez użytkownika energiach i ograniczeniach. Proces
tworzenia nowych definicji wymaga jeszcze znacznego
dopracowania i przetestowania. Trwają również
zaawansowane prace nad mechanizmem profili
użytkowników. W ciągu najbliższych miesięcy
planowane jest udostępnienie pierwszej testowej wersji
systemu.
Kolejnym etapem rozwoju systemu będzie stworzenie
modularnego,
trójwymiarowego
modelu
parametrycznego konturu, działającego na przestrzennym
zbiorze danych.
Literatura
[1] P. Moore, D. Molloy: A Survey of Computer-Based
Deformable Models, International Machine Vision
and Image Processing Conference, pp. 55-66,
International Machine Vision and Image Processing
Conference (IMVIP 2007), 2007
[2] M. Kass, A.Witkin, D. Terzopoulos: Snakes: Active
contour models, International Journal of Computer
Vision, 1(4):321–331, 1988
[3] T. McInerney, D. Terzopoulos: Topology adaptive
deformable surfaces for medical image volume
segmentation, IEEE Trans. on Medical Imaging,
18(10):840–850, 1999
[4] I. Cohen, L.D. Cohen: Finite-element method for
active contour models and balloons for 2D and 3D
images, IEEE Transactions on Pattern Analysis and
Machine Intelligence, 15:1131 – 1147, 1993
[5] Chenyang Xu, Jerry L. Prince: Snakes, shapes, and
gradient vector flow. IEEE Transactions on Image
Processing, 7(3):359–369, 1998
[6] T. McInerney, D. Terzopoulos: T-snakes: Topology
adaptive snakes, Medical Image Analysis, 4(2), 2000
[7] Oracle Corporation: JavaFX | Rich Internet
Applications
Development,
http://javafx.com/,
(odczyt z dn. 16.06.2011 r.)
[8] InteractiveMesh e.K.: Java 3D meets JavaFX,
http://www.interactivemesh.org/testspace/j3dmeetsjf
x.html, (odczyt z dn. 16.06.2011 r.)
[9] The Apache Software Foundation: Apache
Axis2/Java - Next Generation Web Services,
http://axis.apache.org/axis2/java/core/, (odczyt z dn.
16.06.2011 r.)
[10] The Apache Software Foundation: ApacheDS v1.5 An extensible, embeddable LDAP and Kerberos
server
entirely
in
Java,
http://directory.apache.org/apacheds/1.5/, (odczyt z
dn. 16.06.2011 r.)
DANIEL RESKA
[email protected]
Wydział Informatyki, Politechnika Białostocka
ul. Wiejska 45A 15-351 Białystok