EdGe Detection

Projekt, zabývající se detekcí hran nesených v obrazovém signálu s Real-Time zpracováním a vyhodnocením.

Real-Time EdGe Detection je konečný projekt implementující detekci hran. Tradičně je detekce hran, tzv. sobel edge detection prováděna na statické obrázky. Tento projekt však využívá 2 MP kameru, zajišťující průběžné snímání obrazu a vlastní detekce probíhá v reálném čase na FPGA. Výsledek operace je poté zobrazen na VGA monitoru. Projekt vznikl v rámci aktivit spojených s počítačovým viděním a zpracováním obrazu na Cornellově univerzitě.

Detekce hran je často využívána při segmentaci obrazu za účelem rozdělit obraz do samostatných oblastí, které odpovídají různým objektům. Hrany se vyskytují v místech obrazu se silnou intenzitou kontrastu, které často představují hranice objektu.

Pro jejich detekci je využívána technologie pásmových filtrů ve spojení s Fourierovou analýzou a zpracováním v prostorovém rozložení. Toho je velmi často využíváno v podobných aplikacích, neboť jde o výpočetně méně náročné operace a často přináší i lepší výsledky. Vzhledem k tomu, že hrany odpovídají silně osvětleným přechodům, jsou tvořeny deriváty obrazu pro výpočet hran.

Základní operace detekce hran je prováděna v matici s rozložením operací, která určuje úroveň determinace mezi jednotlivými pixely. Operace detekce hran je provedena tak, že je vytvořena matice se zaměřením na pixely určené ve středu maticové oblasti. Je-li sklon hodnoty této matice vyšší než zvolený práh, je střední pixel zvolen jako hranový.

edgedet_diagram.jpg

V aplikaci je využit tzv. High Level Design. Kamerový modul zachycuje obraz díky 2 MP CMOS senzoru. Surová obrazová data jsou převedena do barevného RGB prostoru. Takto získaný obraz je následně převeden do stupňů šedi, čímž je získána dostatečná obrazová intenzita pro detekci hran. Obraz ve stupních šedi je zobrazen na připojeném VGA monitoru a uložen v pracovní paměti SDRAM FIFO.

Následně jsou tři řady s 640 body na řádek průběžně ukládány do M4K bloků obvodu FPGA, přičemž detekce hran je zahájena ihned, jakmile jsou data připravena. Výsledek je opět ukládán do paměti SDRAM a průběžně aktualizuje VGA výstup na připojené obrazovce.