Równoległość zorientowana na architekturę zapewniająca wysoką wydajność wbudowane systemy wielordzeniowe wykorzystujące scilAb

O tym dokumencie

Ten dokument to Deliverable D5.6 („Ocena przypadków testowych (drugi przyrost)”) pracy pakiet WP5 („Przypadki testowe aplikacji i walidacja”). Dokument opisuje finał ocena przepływu narzędzia ALMA wykorzystywanego do implementacji aplikacji użytkownika końcowego od INTRACOM i IOSB.

Wstęp

Ten dokument dostarczalny 5.6 opisuje ocenę przepływu narzędzia ALMA drugiego przyrostu oraz ostateczne aplikacje testowe firm INTRACOM i IOSB. Ostateczna ocena odbywa się za pomocą w odniesieniu do listy wymagań użytkownika końcowego, podanej w Deliverable 5.1 na początku projektu ALMA, oraz propozycje wartości dla użytkownika końcowego zdefiniowane w Deliverable 6.5

Struktura dokumentu

Rozdział 2 zawiera krótki przegląd przepływu narzędzia ALMA z perspektywy użytkownika. w sekcja 3, IOSB i INTRACOM oceniają przypadki testowe i dają końcową ocenę dla Przepływ narzędzia ALMA w sekcji 4.

Ocena przypadków testowych

IOSB

Opis przypadku testowego

Rysunek 3-1 przedstawia schemat blokowy przypadku testowego przetwarzania obrazu IOSB, który jest aplikacja do śledzenia obiektów oparta na transformacji cech niezmiennej w skali (SIFT, David Lowe i in. [1]) algorytm. SIFT to algorytm przetwarzania obrazu używany do wykrywania interesujących punktów na obrazie (tzw. Keypoints) i opisać je jako cechy niezmiennicze skali (nazywane również deskryptorami w dalszej części). Na podstawie tych deskryptorów obiekty mogą być: znalezione ponownie w innych obrazach, niezależnie od ich skali lub orientacji.

Aplikacja będzie wdrażana w dwóch krokach. W pierwszej kolejności odczytywane są obrazy i interesujące cechy obiektów zostaną wyodrębnione za pomocą algorytmu SIFT. ten deskryptory tych interesujących funkcji będą przechowywane w tablicy deskryptorów i oznaczone w obrazy wejściowe do celów wizualizacji.

Drugi przyrost wykorzystuje wyniki pierwszego przyrostu. Znalezione deskryptory z tablica deskryptorów zostanie dopasowana do bazy danych z deskryptorami obrazów referencyjnych obiekty do śledzenia. Wreszcie pozytywne dopasowania, co oznacza pomyślną identyfikację obiekty w obrazie wejściowym zostaną następnie oznaczone i zwizualizowane na obrazie wyjściowym.

Kompilator Matrix-to-C

W celu dostosowania kodu referencyjnego Scilab funkcje rozdzielone w makrach Scilab były połączone w jednym pliku. Do pliku dołączono funkcję głównego sterownika, usuwając wszystko funkcjonalność odczytu, zapisu i wyświetlania obrazów, które nie będą wykorzystywane w systemie docelowym.

W pierwszym kroku większość wykorzystywanych zmiennych musi być otagowana wskazówką dotyczącą rozmiaru dla MFE kompilator, jeśli rozmiar nie może być wywnioskowany przez inicjalizację, jak na przykład:

//MFE?:mfe_size_noscalar(good_Keypoints,1:1000,5);
good_Keypoints = [];
W drugim kroku niektóre funkcje i wyrażenia Scilab muszą zostać ponownie zaimplementowane, ponieważ:
nie są obsługiwane przez kompilator MFE:

Zastąpienie funkcji wewnętrznych Scilab

Przykład:

temp = znajdź(odległość(:,x) <= min_dist*ambig_thr); //oryginalny kod Scilab

Funkcję wyszukiwania należy zastąpić pętlą ręczną:

//MFE?:mfe_size(temp,1,1:1000);
temp= [];
dla i=1:rozmiar(odleg,1);
if(dist(i,x) <= min_dist*ambig_thr)
temp(1,$+1) = ja;
kończyć się;
kończyć się;

Inne zastąpione funkcje i wyrażenia to

  • oznacza funkcję
  •  a = H\b ; równanie rozwiązujące H a= b z macierzą H i wektorami a, b
  •  Struktury

    Struktury nie są obsługiwane i należy je zastąpić dodatkowymi zmiennymi.

  •  Funkcja rozmiaru

    Przykład:
    [nbr_of_kp, indeks] = rozmiar (punkty kluczowe);

    musi być zastąpiony przez:

    nbr_of_kp = rozmiar (punkty kluczowe, 1);
    indeks = rozmiar (Kluczowe, 2);

  • Wyrażenia w funkcjach sterujących

    Przykład:

    if(max(rozmiar(temp))==1)

musi być zastąpiony przez:

len = max(rozmiar(temp));
jeśli(dł==1)