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