Adaptive Vision - machine vision software English    Deutsch    Polski   

Konkurs

Future Processing organizuje konkurs algorytmiczny przygotowany na bazie platformy Adaptive Vision Studio. Konkurs ogłoszono 15 kwietnia 2009 i będzie rozgrywany do 10 maja 2009. Dla najlepszych przewidziano następujące nagrody:

  • I miejsce - 1024 zł
  • II miejsce - 512 zł
  • III miejsce - 256 zł
Dodatkowo dla kolejnych 5 osób nagroda pocieszenia - pendrive 2GB.

Wyniki konkursu

Mamy przyjemność ogłosić wyniki konkursu. Poniżej podane zostały współczynniki przyspieszenia algorytmu.

  • I miejsce - Grzegorz Łukasik - 0.738798
  • II miejsce - Stanisław Świerc - 0.580652
  • III miejsce - Damian Bartodziej - 0.556783
Gratulujemy!

Wstęp

W zadaniu usuwania szumów z obrazów cyfrowych pojawia się problem rozmytych krawędzi w obrazie wynikowym. Najprostszym sposobem na usunięcie szumu jest proste rozmycie obrazu przez uśrednianie pikseli w przesuwającym się po obrazie oknie. Jeżeli jednak chcemy uzyskać obraz o lepiej zachowanych krawędziach, właściwe jest selektywne dobieranie pikseli do średniej - na przykład stosując proste kryterium maksymalnej różnicy z pikselem bieżącym. Na poniższym zrzucie ekranu widoczne jest porównanie wyników rozmycia zwykłego i selektywnego:

Konkurs AVS

Porównanie efektów rozmywania obrazu zaszumionego (u góry) za pomocą algorytmu zwykłego (po lewej) oraz selektywnego (po prawej). Zwróć uwagę na dużo lepsze zachowanie krawędzi w rozmyciu selektywnym.

Filtr rozmycia selektywnego (w Adaptive Vision Studio nazwany SelectiveBlur) może być bardzo przydatny we wstępnym przetwarzaniu obrazów na potrzeby analizy wizyjnej. Niestety, jest to również algorytm dużo wolniejszy od prostego rozmycia (w Adaptive Vision Studio nazwane MeanBlur). W ramach niniejszego konkursu przedstawiamy prostą implementację tego algorytmu i zapraszamy do zoptymalizowania go pod kątem szybkości działania.

Zadanie

  • Należy zoptymalizować pod kątem szybkości działania algorytm i implementację filtra SelectiveBlur, zachowując w pełni jego początkową funkcjonalność.
  • Wynikiem wykonania zadania jest zmodyfikowany plik kodu źródłowego SelectiveBlur.cpp i nic więcej.
  • Ustawienia projektu (plik .vcproj) nie podlegają modyfikacjom.
  • Dopuszczalne jest stosowanie wszystkich konstrukcji języka ISO C++, które kompilują się przy bieżących ustawieniach projektu w Visual C++ 2008 SP1.
  • Niedozwolone jest stosowanie wstawek asemblerowych, korzystanie z jednostek MMX, SSE i podobnych, tworzenie wątków, odwoływanie się do innych procesów, rejestru lub systemu plików, wykorzystywanie komunikacji sieciowej, wywoływanie funkcji WinAPI itp.

Sposób oceny rozwiązania

  • Zgłoszone rozwiązanie zostanie skompilowane w konfiguracji Release i poddane testom funkcjonalnym i szybkościowym w środowisku Adaptive Vision Studio. Nieprzejście testów funkcjonalnych, polegających na porównaniu otrzymanych obrazów ze wzorcami, będzie powodowało dyskwalifikację. Wyniki testów szybkościowych będą decydowały o miejscu w rankingu.
  • Testy będą przeprowadzone na dwóch komputerach - jednym z procesorem firmy Intel, drugim z procesorem firmy AMD - o częstotliwościach procesora minimum 1 GHz i pamięci RAM minimum 1 GB. Nic więcej o tych komputerach nie powiemy. Ostateczny wynik będzie średnią ze współczynników przyspieszenia osiągniętych w obu przypadkach.
  • Do testów wykorzystane zostaną co najmniej 3 różne obrazy o wymiarach 160x120, 640x480 i 1600x1200. Dla każdego obrazu zostanie oddzielnie wyznaczony współczynnik przyspieszenia, a wynik całościowy będzie ich średnią.
  • W mało prawdopodobnym przypadku zaistnienia rozwiązań o bardzo zbliżonych wynikach, o klasyfikacji zawodników może zadecydować arbitralna decyzja jury, oparta na analizie algorytmu i jakości kodu źródłowego.

Przebieg konkursu

  • W ramach zgłoszenia konkursowego należy przesłać na adres KonkursAVS2009@future-processing.com zmodyfikowany plik SelectiveBlur.cpp wraz z danymi o zgłaszającym: imię, nazwisko, kierunek i rok studiów.
  • Istnieje możliwość zgłoszenia maksymalnie dwóch wersji rozwiązania, które będą podlegały ostatecznej ocenie - w takim przypadku należy nazwać pliki SelectiveBlur1.cpp oraz SelectiveBlur2.cpp.
  • Konkurs będzie podzielony na dwa etapy - konkurs próbny i konkurs główny. Konkurs próbny ma na celu jedynie rozwiązanie ewentualnych niejasności i wstępne zmierzenie wydajności rozwiązań na danych i w warunkach konkursowych.
  • Zgłoszenia na konkurs próbny można przesyłać do 26-go kwietnia 2009.
  • Zgłoszenia na konkurs główny można przesyłać do 10-go maja 2009.
  • Wyniki konkursu próbnego zostaną ogłoszone na stronie internetowej konkursu, gdy tylko będę gotowe.
  • Wyniki konkursu głównego zostaną ogłoszone na wykładzie w ramach Future Processing Academic Days 18 maja 2009 (dokładna godzina zostanie ogłoszona na plakatach).

Jak zacząć?

Do wykonania zadania konkursowego potrzebne będą:

  • Komputer z systemem operacyjnym Windows XP lub Vista,
  • Visual C++ 2008 Express Edition - do pobrania za darmo ze strony Microsoft'u,
  • Oprogramowanie Adaptive Vision Studio Express - do pobrania ze strony Adaptive Vision,
  • Patch na Adaptive Vision Studio Express - Executor.dll,
  • Początkowy kod źródłowy filtra SelectiveBlur - w pakiecie Konkurs2009.zip,
  • Zestaw filtrów do pomiaru wydajności w środowisku Adaptive Vision Studio - w pakiecie Konkurs2009.zip.

Uruchamianie

  • Po zainstalowaniu aplikacji Adaptive Vision Studio należy nadpisać plik Executor.dll.
  • Po zainstalowaniu aplikacji Adaptive Vision Studio należy przegrać kod źródłowy filtra SelectiveBlur do katalogu "Moje dokumenty\Adaptive Vision Studio Express\Sources\SelectiveBlur".
  • Po skompilowaniu projektu zamieszczonego w tej lokalizacji, wynikowy plik SelectiveBlur.dll zostanie umieszczony w katalogu "Moje dokumenty\Adaptive Vision Studio Express\Filters" i będzie dostępny po uruchomieniu aplikacji w kategorii filtrów "Konkurs 2009". Uwaga: filtr nie będzie działał prawidłowo po skompilowaniu go w wersji Debug.
  • W celu zmierzenia szybkości działania można posłużyć się programem TestSpeed.avp. W tym celu należy przegrać plik Konkurs2009.dll (zawierający filtry do mierzenia czasu) do katalogu "Moje dokumenty\Adaptive Vision Studio Express\Filters", a następnie uruchomić aplikację, otworzyć program i go uruchomić. Wyniki będą widoczne w oknach podglądu danych po prawej.

Forum

Dla zarejestrowanych użytkowników dostępne jest forum konkursowe, na którym będą poruszane tematy związane z konkursem oraz oprogramowaniem Adaptive Vision Studio. W razie pytań prosimy o ich zgłaszanie na forum.

Poprzednia edycja

Więcej o edycji konkursu z roku 2008 tutaj.