­

Silicon Software: Aplety do kart akwizycji

czwartek, 4. sierpnia 2011
Akwizycja

Koncepcja apletów stała się już popularna w Smarfonach. Dla każdego zastosowania znajdzie się specjalny program, który szybko załaduje się i wykona. Wybór jest olbrzymi. Silicon Software stosuje tę koncepcję w apletach dla przemysłowych kart akwizycji obrazów.

Aplet sprzętowy to kilku-​megabajtowy kod programowy dla procesora FPGA. W ciągu kilku milisekund ładuje się on do chipa i konfiguruje na nowo jego strukturę. W wyniku tego procesor uzyskuje nowe funkcje, które realizowane są bezpośrednio w sprzęcie, w czasie rzeczywistym. FPGA w minionych latach uzyskały znacznie wyższy stopień zagęszczenia logiki i aktualnie umożliwiają realizację zaawansowanych programów.
W porównaniu z monolitycznym programem komputerowym, który ładowany jest tylko jeden raz i definiuje on całkowitą funkcjonalność urządzenia, koncepcja funkcjonalnych apletów okazała się bardzo wartościowa. Specjalnie dla swojego zadania dostępne zasoby wykorzystywane są maksymalnie efektywnie dla realizowanych funkcji. Jeśli używana karta akwizycji obrazów ma być później wykorzystana do innego zadania, na miejsce starego apletu ładowany jest nowy. Proces ten jest zautomatyzowany dzięki oprogramowaniu i nie spowalnia systemu podczas krótkiego załadunku apletu.

Aplety akwizycji dla kamer 2D i liniowych

Realizację jakiegoś zadania określa się między innymi przez wybór typu kamery lub trybu barwnego. Stosownie do tych kryteriów dobierane są aplety akwizycji stworzone przez Silicon Software. Różnica pomiędzy kamerą 2D a liniową polega nie tylko na rodzaj sensora ale również na odmienności funkcji triggera lub korekty dla sensora. Np. podłączenie sygnałów z enkodera to typowe wymagania kamery liniowej.
Korekcja przestrzenna, która koryguje przesunięcie linii RGB nie jest stosowana w przypadku sensorów monochromatycznych. Sortowanie tapów, które sortuje dane obrazowe z sensora tak, aby dały one ponownie poprawny obraz w komputerze ma ten sam sens zarówno dla kamer 2D jak i liniowych. Przez odpowiednią macierz funkcjonalną również w małych FPGA można zrealizować wydajne procedury obróbki danych obrazowych.

Pobieranie i obróbka wstępna obrazu

Aplety akwizycyjne firmy Silicon Software realizują podstawowe funkcje akwizycji obrazu i jego wstępnej obróbki. Dla bardziej zaawansowanych funkcji stworzono aplety „Smart Applets“. Zgodnie z tą samą zasadą: do FPGA ładowane są rozszerzone funkcje obróbki obrazów, dopasowane do zadania.
Podstawowa idea apletów karty akwizycji podobna jest do tej ze smartfonów: oferowane są funkcje dodatkowe, dopasowane do urządzenia je realizującego. Podobnie jak w apletach, komputer stacjonarny nie jest zastępowany a oprogramowanie obróbki obrazów nie jest wypierane przez aplet sprzętowy. Cały system jest przyspieszany przez przeniesienie wstępnego przetwarzania obrazu na dedykowany sprzęt FPGA, a jednocześnie odciążany jest procesor komputera.
Użyteczność apletów kart akwizycji to ważny argument. Zamiast programowania sprzęt jest tylko konfigurowany. System obróbki obrazów definiuje się za pomocą bloków funkcyjnych, które są aktywowane lub dezaktywowane lub parametryzowane. Podobne jak aplety, również „Smart Applety” mogą być intuicyjnie i natychmiast zaimplementowane i uruchomione.
Pomimo złożonych funkcji oraz przetwarzania sprzętowego, użytkownik nie musi szczegółowo wnikać w tę materię. Podgląd dostępnych funkcji pokazuje natychmiast wyniki ich działania, na podstawie których można podjąć decyzję o konfiguracji. Ponieważ biblioteki te są stale rozwijane, użytkownik, podobnie jak w App-Shop, znaleźć może coraz więcej funkcji pasujących do jego własnego zadania, które trzeba tylko wybrać i załadować.

Dwie biblioteki dla ważnych dziedzin zastosowań

Binaryzacja jak również Segmentacja i Klasyfikacja Obiektów to najważniejsze funkcje obróbki obrazów. Silicon Software dla obu tych grup funkcji opracował własną bibliotekę „Smart Applets”. Dalsze biblioteki, dla zadań pomiarowych, kompresji i obróbki barw są w przygotowaniu.

Binaryzacja
Najczęściej realizowana funkcja w obróbce obrazów to Binaryzacja, po której kontynuowana jest dalsza obróbka obrazu. W tym celu ustalany jest globalny próg szarości w odniesieniu do którego pixele jaśniejsze niż wartość progu przetwarzane są na białe a ciemniejsze na czarne.
Dla prostych zadań rozpoznawania obiektów najczęściej metoda to jest wystarczająca. Bardziej absorbujące moce komputera jest wyznaczenie lokalnych poziomów binaryzacji Spożywanie jest obliczenie lokalnych progów, które uwzględniają różnice lokalne. Dla każdego piksela analizowane jest jego otoczenie 64 x 64 pikseli w celu podjęcia decyzji czy ma on być on czarny czy biały. Tzw. binaryzacja adaptacyjna działa więc niezależnie od niejednorodności lub niestabilności warunków otoczenia lub właściwości powierzchni materiału.
Oprócz poprawy jakości obrazu i użycia filtru medianowego, redukującego zakłócenia w obrazie, przy pomocy funkcji podwójnej morfologii można też wyeliminować z obrazu niechciane małe obiekty. Użytkownik otrzymuje w takt akwizycji obrazów efekt działania algorytmu obróbki obrazu, bez dodatkowego obciążenia procesora i może dzięki temu kontynuować analizę obrazu opartą na oprogramowaniu. W ramach biblioteki SmartApplets "Binaryzacja" składa się z łącznie 20 apletów.

Segmentacja i Klasyfikacja obiektów

Kolejną ważną funkcją jest rozpoznawanie obiektów. W tej funkcji pewne grupy pixeli muszą zostać wyizolowane ze swojego otoczenia. Analiza Blobów to jedna z najbardziej znanych metod takiej izolacji. Algorytm ocenia otoczenie każdego pixela ze względu na przynależność do Obiektu.
Jeśli zostanie wykryta przynależność analizowanego pixela do pewnej grupy, właściwości tej grupy są klasyfikowane. Do klasyfikowanych cech należą m.in. wielkość i położenie prostokąta opisującego (»Bounding Box«), Powierzchnia i Obwód konturu. Właściwości te umożliwiają wybór lub odrzucenie obiektów z pewnej Klasy.
Metoda te jest często stosowana gdy np. obiekty należy policzyć lub gdy trzeba skopiować jakiś obszar obrazu do dalszej zaawansowanej analizy. Można w ten sposób zredukować ilość danych do analizy. Ponieważ aplety te pracują na obrazach binarnych, wcześniejsza binaryzacja realizowana jest przez funkcje z biblioteki Smart Applets »Binaryzacja«. Biblioteki Smart Applets »Segmentacja i Klasyfikacja obiektów« składa się z 22 apletów.

­