Scale- invariant feature transform ( SIFT ) je algoritmus detekce rysů [ v počítačovém vidění pro detekci a popis místních rysů v obrazech. Algoritmus byl patentován v Kanadě University of British Columbia [1] a publikován Davidem Lowem v roce 1999 [2] . Aplikace zahrnují rozpoznávání objektů mapování a navigaci, spojování obrázků 3D modelování , rozpoznávání gest , sledování , identifikaci divoké zvěře a sledování polohy .
Nejprve jsou klíčové body objektů extrahovány v SIFT ze sady referenčních snímků [2] a uloženy do databáze. Objekt je v novém obrázku rozpoznán porovnáním každého prvku z nového obrázku s prvky z databáze a nalezením kandidátských prvků na základě euklidovské vzdálenosti mezi vektory prvků. Z úplné sady shod v novém obrázku jsou vybrány podmnožiny klíčových bodů, které nejlépe odpovídají objektu z hlediska jeho umístění, měřítka a orientace. Určení vhodných bloků funkcí je rychlé s efektivní implementací hashovací tabulky zobecněné Houghovy transformace . Každý blok 3 nebo více prvků, který je konzistentní s objektem a jeho polohou, podléhá dalšímu podrobnému ověření přizpůsobení modelu a odlehlé hodnoty jsou vyřazeny. Nakonec se vypočítá pravděpodobnost, že určitý soubor znaků indikuje přítomnost objektu, což dává informaci o přesnosti shody a počtu možných chyb. Objekty, které projdou všemi těmito testy, lze s vysokou mírou jistoty považovat za správné [3] .
Pro jakýkoli objekt na obrázku lze extrahovat body rysů a poskytnout "popis prvku" objektu. Tento popis získaný z trénovacího snímku lze poté použít k identifikaci objektu při pokusu o lokalizaci objektu na testovacím snímku obsahujícím mnoho dalších objektů. Pro spolehlivé rozpoznání je důležité, aby rysy extrahované z tréninkového obrazu mohly být detekovány i při změnách měřítka obrazu, šumu a osvětlení. Takové body obvykle leží v oblastech s vysokým kontrastem, jako jsou okraje objektů.
Další důležitou vlastností těchto znaků je, že vzájemné polohy mezi nimi by se neměly měnit z jednoho obrázku na druhý. Pokud by se například jako značky použily pouze čtyři rohy dveří, fungovaly by bez ohledu na polohu dveří. Pokud by však byly použity také body zárubně, mohlo by rozpoznání selhat, protože dveře mohou být otevřené nebo zavřené. Podobně prvky umístěné na kloubových nebo flexibilních objektech obecně nefungují, pokud dojde k jakékoli změně vnitřní geometrie mezi dvěma obrazy v sadě zpracování. V praxi však SIFT detekuje a používá mnohem větší počet obrazových prvků, což snižuje podíl každé chyby způsobené těmito místními změnami na celkové chybě všech chyb shody prvků.
SIFT [1] dokáže spolehlivě vybrat objekty i za přítomnosti šumu a částečného překrývání, protože deskriptor funkce SIFT je invariantní k proporcionálnímu škálování , orientaci , změnám osvětlení a je částečně invariantní k afinním zkreslením [2] . Tato část popisuje původní algoritmus SIFT a zmiňuje několik konkurenčních technik dostupných pro rozpoznávání hlučných a překrývajících se objektů.
Deskriptor SIFT je založen na obrazových měřeních z hlediska receptorových polí [4] [5] [6] [7] , pro která se výběrem místního měřítka stanoví lokální měřítko-invariantní referenční soustavy [8] [9] [10] [11] [9] . Obecné teoretické vysvětlení algoritmu je uvedeno v projektu Scholarpedia o SIFT [12] .
Úkol | Technika | Výhoda |
---|---|---|
umístění klíče / měřítko / rotace | Gaussův rozdíl / pyramida měřítek prostoru / přiřazení směrů | přesnost, stabilita, měřítko a rotace invariance |
geometrické zkreslení | rozmazání/převzorkování místních rovin orientace obrazu | afinní invariance |
indexování a párování | nejbližší soused / hledejte „Nejprve nejlepší koš“ | Výkon / rychlost |
Identifikace shluků | Hough transformovat hlasování | spolehlivé poziční modely |
Validace modelu / detekce odlehlých hodnot | Lineární nejmenší čtverce | lepší tolerance chyb s menší shodou |
Schválení hypotézy | Bayesovská pravděpodobnostní analýza | spolehlivost |
Loweova metoda pro generování obrazových prvků převádí obraz na velkou sadu vektorů prvků, z nichž každý je neměnný pod (paralelním) posunem obrazu, změnou měřítka a rotací, částečně neměnný vůči změnám osvětlení a odolný vůči lokálním geometrickým deformacím. Tyto rysy mají podobné vlastnosti jako neurony v hlavní zrakové kůře , které kódují základní tvar, barvu a detekci pohybu objektů ve vidění primátů [13] . Umístění klíče jsou definovány jako maximum a minimum funkce Gaussova rozdílu aplikované v na sérii vyhlazených a znovu vykreslených obrázků. Kandidátské body s nízkým kontrastem a body podél okrajů jsou vyřazeny. Lokalizovaným klíčovým bodům jsou přiřazeny dominantní orientace. Tyto kroky poskytují větší stabilitu pro klíčové body pro párování a rozpoznávání. Deskriptory SIFT odolné vůči lokálním afinním narušením jsou pak získány pohledem na pixely kolem klíčového místa rozmazáním a převzorkováním rovin lokální orientace obrazu.
Přiřazování a indexování funkcíIndexování spočívá v zapamatování si kláves SIFT a identifikaci odpovídajících klíčů z nového obrázku. Lowe použil modifikaci k-rozměrného stromového algoritmu nazvaného metoda vyhledávání best-bin-first (BBF) [14] , která dokáže s vysokou pravděpodobností identifikovat nejbližšího souseda pouze pomocí omezeného počtu výpočtů. Algoritmus BBF používá upravené pořadí vyhledávání pro algoritmus k-rozměrného stromu , takže oblasti v prostoru prvků jsou prohledávány v pořadí jejich nejbližší vzdálenosti od požadovaného umístění. Toto pořadí vyhledávání vyžaduje použití prioritní fronty založené na haldě , aby bylo možné efektivně určit pořadí vyhledávání. Nejlepšího kandidáta pro každý klíčový bod se najde stanovením jeho nejbližšího souseda v databázi klíčových bodů z tréninkových snímků. Nejbližší sousedé jsou definováni jako klíčové body s minimální euklidovskou vzdáleností od daného vektoru deskriptoru. Pravděpodobnost, že je shoda správná, lze určit výpočtem poměru vzdálenosti od nejbližšího souseda ke vzdálenosti od druhého nejbližšího souseda.
Nízká [3] odmítla všechny shody, ve kterých je poměr vzdálenosti větší než 0,8, což eliminuje 90 % nesprávných shod, zatímco vyřadí méně než 5 % správných shod. K dalšímu zlepšení výkonu se vyhledávací algoritmus „nejlepší přihrádka-první“ zastaví po kontrole prvních 200 kandidátů na nejbližšího souseda. U databáze se 100 000 klíčovými body to poskytuje zvýšení rychlosti ve srovnání s přesným vyhledáváním sousedů o 2 řády, přičemž špatná volba nepřekročí 5 % správných shod.
Identifikace shluků hlasováním Houghovy transformaceHoughova transformace se používá ke seskupení modelu robustní hypotézy k nalezení klíčů, které jsou konzistentní s konkrétní pozicí modelu Houghova transformace odhaluje shluky prvků s konzistentní interpretací hlasováním pro každý prvek pro všechny pozice objektů, které jsou konzistentní s prvkem. Když jsou nalezeny shluky prvků s hlasy pro stejnou polohu objektu, pravděpodobnost správné interpretace je mnohem vyšší než u jakéhokoli jednotlivého prvku. Vytvoří se záznam hashovací tabulky , který obsahuje odhadovanou polohu, orientaci a měřítko z odpovídající hypotézy. Prohledává se hašovací tabulka , aby se identifikovaly všechny shluky s alespoň 3 prvky v oblasti, a oblasti jsou seřazeny podle klesající velikosti.
Každý z klíčových bodů SIFT definuje 2D umístění, měřítko a orientaci a každý klíčový bod v databázi má záznam se svými parametry souvisejícími s tréninkovým obrazem, ve kterém byl nalezen. Analogická transformace vyplývající z těchto 4 parametrů je pouze přiblížením k plnému polohovému prostoru se 6 stupni volnosti pro 3D objekty a také nezohledňuje žádné flexibilní deformace. Lowe [3] tedy použil 30 stupňů velikosti plochy pro orientaci pro umístění, faktor 2 pro měřítko a faktor 0,25 pro maximální velikost projekce tréninkového obrazu (s použitím předpokládaného měřítka). U kláves SIFT generovaných ve velkém měřítku je dána dvojnásobná hmotnost ve srovnání s klávesami pro menší měřítko. To znamená, že větší měřítko je schopno odfiltrovat pravděpodobnější sousedy pro testování v menším měřítku. Zlepšuje také výkon rozpoznávání tím, že dává větší váhu méně hlučné stupnici. Aby se předešlo problému hraničních efektů při přiřazování oblasti, každý klíčový bod se dívá na hlasy pro 2 nejbližší oblasti v každém směru, což dává celkem 16 hodnot pro každou hypotézu a dále rozmazává rozložení pozic.
Ověření modelu metodou nejmenších čtvercůKaždý vytvořený shluk podléhá ověřovací proceduře, která provádí metodou nejmenších čtverců pro parametry afinní transformace spojené s obrazovým modelem. Afinní transformaci modelového bodu [xy] T na obrazový bod [uv] T lze zapsat následovně
kde paralelní posun je [tx ty] T a afinní rotace, měřítko a roztažení jsou reprezentovány parametry m1, m2, m3 a m4. Pro získání transformačních parametrů lze rovnici přepsat tak, aby všechny neznámé byly ve sloupcovém vektoru.
Rovnost ukazuje jednu shodu, ale lze přidat libovolný počet shod, kde každá shoda přidá dva řádky do první a poslední matice. K vyřešení jsou potřeba alespoň 3 shody. Tento lineární systém můžeme napsat jako
kde A je známá matice (obvykle m > n ), x je neznámý vektor n - rozměrného parametru a b je známý vektor m - rozměrné dimenze.
Minimalizační vektor je tedy řešením normální rovnice
Řešení soustavy lineárních rovnic je dáno pomocí matice zvané pseudoinverzní matice pro A , ve tvaru
,což minimalizuje součet čtverečních vzdáleností projekcí umístění modelu k odpovídajícím umístěním obrazu.
Identifikace odlehlých hodnotOdlehlé hodnoty lze nyní vyřadit kontrolou shody mezi vlastnostmi každého obrázku a modelem daným řešením parametrů. Vzhledem k řešení metodou nejmenších čtverců musí každá shoda souhlasit s ne více než polovinou chybového intervalu, který byl použit pro parametry v oblastech Houghovy transformace . Odlehlé hodnoty se zahodí, řešení nejmenších čtverců se přepočítá pro zbývající body a proces se opakuje. Pokud po vyřazení odlehlých bodů zůstanou méně než 3 body , zápas je zamítnut. Kromě toho se fáze porovnávání shora dolů používá k přidání jakýchkoli dalších shod, které jsou konzistentní s pozicí projektovaného modelu, které může oblast Houghovy transformace vynechat kvůli aproximaci podobných transformací nebo jiným chybám.
Konečné rozhodnutí o přijetí nebo zamítnutí modelu hypotézy je založeno na podrobném pravděpodobnostním modelu [15] . Tato metoda nejprve vypočítá očekávaný počet chybových shod pozičního modelu daný velikostí modelu, počtem prvků v oblasti a přesností lícování. Bayesovská analýza pak udává pravděpodobnost, že objekt je přítomen, na základě skutečného počtu nalezených shod prvků. Model je přijat, pokud je konečná pravděpodobnost správné interpretace větší než 0,98. Na základě metody SIFT vyvinuté společností Lowe poskytuje rozpoznávání objektů vynikající výsledky, s výjimkou případů širokého rozptylu osvětlení a nerigidních transformací.
Detekce a popis vlastností místního obrazu může pomoci při rozpoznávání objektů. Funkce SIFT jsou lokální a jsou založeny na projevech objektu v konkrétních singulárních bodech. Jsou měřítko a rotace invariantní. Jsou také odolné vůči změnám osvětlení, hluku a malým změnám úhlu pohledu. Kromě těchto vlastností jsou vysoce rozlišitelné, relativně snadno se načítají a umožňují identifikaci objektu s malou chybou. Lze je relativně snadno najít v (velké) databázi lokálních prvků, ale vysoká dimenzionalita prvků může způsobit potíže, takže pravděpodobnostní algoritmy, jako jsou k-rozměrné stromy s best-bin-first vyhledávání ( BBF) se používají. Popis objektu pomocí funkcí SIFT je také stabilní s ohledem na částečné překrývání, protože i tři vlastnosti SIFT objektu stačí k výpočtu místa a polohy objektu. Rozpoznávání lze provádět téměř v reálném čase, alespoň u malých databází moderního počítačového vybavení.
Začneme identifikací bodů, které se v rámci SIFT nazývají klíčové body . Obraz je konvolvován pomocí gaussovských filtrů v různých měřítcích a poté je vypočítán rozdíl po sobě jdoucích gaussovských rozmazaných obrazů. Klíčové body jsou pak vzorkovány jako maximální/minimální rozdíl Gaussiánů , které se vyskytují v různých měřítcích. Gaussův rozdíl je dán výrazem
, kde je konvoluce původního obrázku s Gaussovým rozostřením v měřítku , tj.Obraz gaussovského rozdílu mezi stupnicemi a je tedy rozdílem gaussovských rozmazaných obrazů se stupnicemi a . Pro určení extrému v škálovacím prostoru v algoritmu SIFT je obraz nejprve konvolvován s Gaussovým rozostřením v různých měřítcích. Náhledy jsou seskupeny podle oktávy (oktáva odpovídá zdvojnásobení hodnoty ) a hodnota je zvolena tak, abychom dostali pevný počet náhledů na oktávu. Poté se vypočítá Gaussův rozdíl od sousedních Gaussových rozmazaných obrazů v oktávě.
Jakmile je získán gaussovský rozdíl obrazu, klíčové body jsou definovány jako lokální minimum/maximum gaussovského rozdílu obrazu oproti šablonám. To se provádí porovnáním každého pixelu s gaussovským rozdílem obrazu pro jeho osm sousedů ve stejném měřítku a devět odpovídajících sousedních pixelů v každém ze sousedních měřítek. Pokud je hodnota pixelu maximální nebo minimální mezi všemi porovnávanými body, je vybrána jako kandidát na klíčový bod.
Tento krok detekce klíčových bodů je variací jedné z Lindebergových metod detekce bodů nalezením extrémů v prostoru měřítka normalizovaném na Laplaciovu stupnici [10] [11] . To znamená určení bodů, které jsou lokálními extrémy, s přihlédnutím k prostorové poloze i měřítku, v diskrétním případě srovnáním s nejbližšími 26 sousedy v diskretizovaném objemu v prostoru měřítka. Na Gaussův diferenční operátor lze pohlížet jako na aproximaci Laplaciana, s implicitní normalizací v pyramidě , obsahující také diskrétní aproximaci Laplacianova normalizovaného měřítka [12] . Další real-time inkarnaci hledání extrémů škálového prostoru Laplaceova operátoru představili Lindeberg a Bretzner, je založena na hybridní pyramidové reprezentaci [16] , která byla použita pro interakci počítač-člověk pro rozpoznávání gest v reálném čase. [17] .
Určení extrémů škálového prostoru dává příliš mnoho kandidátů na klíčové body, z nichž některé jsou nestabilní. Dalším krokem v algoritmu je provedení podrobného přizpůsobení souseda pro přesné umístění, měřítko a hlavní poměr zakřivení . Tyto informace umožňují vyřadit body, které mají nízký kontrast (a jsou tedy citlivé na šum) nebo jsou špatně umístěné podél okraje.
Interpolace sousedních dat pro přesnost polohyZa prvé, pro každého kandidáta na startovací bod se k přesnému určení pozice použije interpolace blízkých dat. Počáteční přístup spočíval v určení umístění každého klíčového bodu podle polohy a měřítka kandidáta na klíčový bod [2] . Nový přístup vypočítává interpolovanou polohu extrému, což výrazně zlepšuje posazení a stabilitu [3] . Interpolace se provádí pomocí kvadratického Taylorova rozšíření funkce Difference- of - Gaussian scale-space s kandidátem klíčového bodu umístěným v počátku. Toto Taylorovo rozšíření je dáno rovnicí:
,kde D a jeho derivace jsou vypočítány v kandidátském bodě a je odchylka od tohoto bodu. Umístění extrému je určeno odvozením této funkce vzhledem k nule a rovnající se nule. Pokud je posun větší v kterémkoli směru, znamená to, že extrém leží blíže jinému kandidátovi na klíčový bod. V tomto případě se kandidát klíčového bodu změní a pro tento bod se provede interpolace. V opačném případě je ke kandidátovi klíčového bodu přidána odchylka, aby se získal interpolovaný odhad extrémní polohy. Podobné subpixelové určování polohy extrémů škálového prostoru, vyvinuté Lindebergem et al., se provádí v reálném čase na základě hybridních pyramid [16] .
Odstranění klíčových bodů s nízkým kontrastemPro vyřazení klíčových bodů s nízkým kontrastem se vypočítá Taylorova expanze druhého řádu se zkreslením . Pokud je tato hodnota menší než , kandidát na klíčový bod se zahodí. Jinak se uloží s umístěním v prostoru konečného měřítka , kde je původní umístění klíčového bodu.
Edge Contribution ExclusionFunkce Gaussova rozdílu bude mít silné hodnoty podél okrajů, i když kandidát na klíčový bod není odolný vůči malému šumu. Pro zvýšení stability byste proto měli vyloučit klíčové body, které mají špatně definované umístění, ale mají velký přínos z hran.
Pro špatně definované vrcholy gaussovské diferenční funkce bude hlavní zakřivení přes hranu mnohem větší než hlavní zakřivení podél ní. Nalezení těchto hlavních zakřivení odpovídá nalezení vlastních hodnot Hessovské matice H druhého řádu :
Vlastní čísla H jsou úměrná hlavním křivostem matice D. Ukazuje se, že poměr dvou vlastních čísel, řekněme větší z nich, a je menší, s poměrem , je pro účely SIFT dostatečný. . Stopa matice H , tj. , nám dává součet dvou vlastních čísel, zatímco determinant, tj. , nám dává součin. Poměr lze ukázat jako , který závisí pouze na poměru vlastních hodnot, nikoli na jednotlivých hodnotách. R je minimum, pokud jsou vlastní hodnoty stejné. Čím vyšší je tedy absolutní hodnota rozdílu mezi dvěma vlastními čísly, která je ekvivalentní největší absolutní hodnotě rozdílu dvou hlavních křivostí D, tím vyšší je hodnota R. Z toho vyplývá, že pro nějaký prahový poměr vlastních hodnot , pokud R protože kandidát na klíčový bod je větší než , je klíčový bod špatně umístěn, a proto je vyřazen. Nový přístup využívá [3] .
Tento krok potlačení odezvy hran má přenést vhodný přístup na operátora Harris pro detekci rohu . Rozdíl je v tom, že míra pro práh se počítá z Hessovy matice, nikoli z matice sekundových momentů .
V tomto kroku je každému klíčovému bodu přiřazena jedna nebo více orientací na základě směrů přechodů v místním obrazu. Toto je klíčový krok k dosažení rotace invariance , protože deskriptor klíčového bodu může být reprezentován s ohledem na tuto orientaci, a proto se stává rotací invariantem obrázku.
Nejprve je pořízen gaussovský rozmazaný snímek v klíčových bodech s měřítkem , takže všechny výpočty jsou prováděny v měřítku neměnném. U zmenšeného obrazu se hodnota přechodu a orientace předem vypočítají na základě rozdílu v pixelech .
Výpočet velikosti a směru pro gradient se provádí pro každý pixel v blízkosti klíčového bodu v Gaussově rozmazaném obrázku L. Je vytvořen směrový histogram s 36 oblastmi, z nichž každá pokrývá 10 stupňů. Každý bod v okolním rámečku je přidán do oblasti histogramu, vážený velikostí gradientu a Gaussově váženým kruhovým oknem s , což je 1,5 násobek měřítka klíčového bodu. Vrcholy v tomto histogramu odpovídají dominantním směrům. Po vyplnění histogramu jsou klíčovému bodu přiřazeny směry odpovídající nejvyšším vrcholům a místním vrcholům, které jsou v rámci 80 % od nejvyšších vrcholů. Pokud je přiřazeno více směrů, vytvoří se další klíčový bod, který má pro každý další směr stejné umístění a měřítko jako původní bod.
Předchozí kroky najdou umístění klíčových bodů na konkrétních měřítcích a přiřadí jim orientaci. To poskytuje neměnnost pro umístění bodu, měřítko a rotaci. Nyní chceme vypočítat vektor deskriptorů pro každý klíčový bod tak, aby byl deskriptor velmi odlišný a částečně invariantní vůči jiným změnám, jako je osvětlení, pohledy a tak dále. Tento krok se provádí na snímku, který je v měřítku nejbližším měřítku klíčového bodu.
Nejprve se vytvoří sada směrových histogramů na 4x4 sousedních pixelech s 8 oblastmi v každém. Tyto histogramy jsou vypočítány z hodnot velikosti a orientace prvků v oblasti 16×16 kolem klíčového bodu, takže každý histogram obsahuje prvky z podoblasti 4×4 původní sousední oblasti. Hodnoty jsou dále váženy Gaussovou funkcí rovnající se polovině šířky okna deskriptoru. Rukojeť se pak stane vektorem všech hodnot těchto histogramů. Protože existuje 4×4=16 histogramů s 8 oblastmi, má vektor 128 prvků. Tento vektor je normalizován na jednotku délky, aby bylo zajištěno, že je invariantní vůči afinním změnám v osvětlení. Aby se snížil účinek nelineárního osvětlení, použije se práh 0,2 a vektor se znovu normalizuje. Proces prahování může zlepšit výsledky shody, i když neexistují žádné nelineární světelné efekty [18] . Prahová hodnota 0,2 je zvolena empiricky a nahrazením pevně stanoveného prahu cíleně vypočítaným může zlepšit výsledky srovnání [18] .
Ačkoli se rozměr deskriptoru (tj. 128) zdá vysoký, menší deskriptory nefungují tak dobře [3] a výpočetní náklady zůstávají nízké, protože k nalezení nejbližšího souseda se používá přibližná metoda BBF (viz níže). Delší deskriptory by poskytly lepší výsledky, ale ne o mnoho, a existuje nebezpečí zvýšené citlivosti na zkreslení a aliasing. Bylo také prokázáno, že přesnost shody prvků je větší než 50 % pro změny úhlu pohledu až do 50 stupňů. Proto jsou deskriptory SIFT invariantní vůči malým afinním změnám. Pro testování rozlišitelnosti deskriptorů SIFT se přesnost shody měří také s ohledem na jiný počet klíčových bodů v testovací databázi a ukázalo se, že přesnost shody u velkých databází klesá jen mírně, což naznačuje, že funkce SIFT jsou vysoce rozlišitelné. .
Byl proveden intenzivní výzkum s cílem vyhodnotit účinnost různých lokálních deskriptorů, včetně SIFT [19] . Hlavní výsledky jsou uvedeny níže:
Provedené testy silně naznačují, že deskriptory založené na SIFT jsou nejstabilnější a nejrozlišitelnější, a proto se nejvíce doporučují pro párování prvků. Nicméně nedávno vyvinuté deskriptory vlastností, jako je SURF , nebyly v těchto testech zkoumány.
Ukázalo se, že SURF má účinnost blízkou SIFT, ale zároveň je algoritmus mnohem rychlejší [20] . Jiné studie ukázaly, že když rychlost není kritickým faktorem, SIFT překonává SURF [21] [22] . Zejména bez ohledu na efekty vzorkování je deskriptor obrazu SIFT výrazně lepší než deskriptor obrazu SURF. Extrém v škálovém prostoru determinantu Hessianu jednoduchého detektoru singulárních bodů v SURF se zároveň skládá z výrazně lepších singulárních bodů ve srovnání s extrémem v škálovém prostoru Laplacianova, pro který algoritmus pro stanovení singulární bod v SIFT provádí numerickou aproximaci [21] .
Výkon přiřazování obrázků deskriptorů SIFT lze zlepšit z hlediska dosažení vyššího výkonu a nižšího skóre přesnosti 1[ objasnit ] ( anglicky 1-precision score ) nahrazením škálovatelného prostorového extrému gaussovského diferenčního operátoru v původním SIFT extrémem Hessova determinantu ve škálovatelném prostoru, nebo zvážením obecnější rodiny zobecněných singulárních bodů škálovatelný prostor [21] .
Nedávno byla navržena mírně upravená verze deskriptoru využívající nejednotnou mřížku histogramu, která výrazně zlepšuje kvalitu [23] . Namísto použití mřížky oblastí histogramu 4x4 se všechny oblasti rozšiřují směrem ke středu objektu. To zlepšuje odolnost deskriptorů vůči změnám v měřítku.
Ukázalo se, že deskriptor SIFT-Rank [24] zlepšuje výkon standardního deskriptoru SIFT pro afinní porovnávání příznaků. Deskriptor SIFT-Rank je generován ze standardního deskriptoru SIFT tak, že každé oblasti histogramu je přiřazeno pořadí v seřazeném poli oblastí. Euklidovská vzdálenost mezi deskriptory SIFT-Rank je invariantní při libovolných monotónních změnách hodnot histogramu a souvisí se Spearmanovými korelačními koeficienty pořadí .
Pokud je pro systém SIFT možné najít různé klíčové body, které jsou neměnné v umístění, měřítku a rotaci a odolné vůči afinním transformacím (změnám měřítka , rotaci , posunu a poloze) a změnám v osvětlení, jsou užitečné pro rozpoznávání objektů. Tyto kroky jsou uvedeny níže
Funkce SIFT lze v zásadě použít na jakýkoli problém, ve kterém je vyžadována shoda obrázků. Lze pracovat na aplikacích, jako je rozpoznávání specifických kategorií objektů ve 2D obrazech, rekonstrukce 3D objektů, sledování a segmentace pohybu, umístění robota, sešívání panoramatických snímků a epipolární kalibrace . Některé z těchto aplikací jsou podrobněji diskutovány níže.
Tato aplikace [26] používá stereo trinokulární systém k odhadu 3D umístění startovacího bodu. Klíčové body se použijí pouze tehdy, když se objeví ve všech 3 obrázcích s konzistentními neshodami, což vede k velmi vzácným výpadkům. Jak se robot pohybuje, určuje svou polohu pomocí vztahů prvků se stávající 3D mapou a poté postupně přidává prvky do mapy a aktualizuje 3D polohu pomocí Kalmanova filtru. To poskytuje spolehlivé a přesné řešení problému umístění robota v neznámém prostředí.
Přizpůsobení funkcí SIFT lze použít pro spojování obrázků pro plně automatizovanou konstrukci panoramat z nepanoramatických snímků. Prvky SIFT extrahované ze vstupních obrázků jsou vzájemně porovnávány, aby se v každém obrázku našlo k nejbližších sousedů. Tyto shody se pak použijí k nalezení m kandidátů na shodu obrázků pro každý obrázek. Homografie mezi dvojicemi snímků jsou pak vypočítány pomocí RANSAC ( Random sample consensus ) a pro ověření je použit pravděpodobnostní model . Vzhledem k tomu, že neexistují žádná omezení pro vstupní obrázky, je na připojené komponenty pro shodu obrázků aplikováno vyhledávání v grafu, takže každá připojená komponenta bude odpovídat panoramatu. Nakonec se pro každou připojenou komponentu provede úprava bloku pro vyřešení parametrů kamery a panorama se zpracuje pomocí vícepásmového prolnutí . Vzhledem k přístupu inspirovanému SIFT k rozpoznávání objektů pro panoramatické spojování je výsledný systém necitlivý na pořadí snímků, orientaci, měřítko a osvětlení. Vstupní snímky mohou obsahovat více panoramat a obrazový šum (některé z nich dokonce nemusí být součástí složeného snímku) [27] .
Tato aplikace využívá funkce SIFT pro rozpoznávání 3D objektů a 3D modelování kontextu rozšířené reality , ve které jsou vytvořené umělé objekty v přesné poloze superponovány na skutečné obrázky. Shoda SIFT je definována pro více 2D snímků scény nebo objektu pořízených z různých úhlů. To se používá s úpravou bloku k sestavení řídkého 3D modelu dané scény a současné obnově pozic kamery a kalibračních parametrů. Poté je určena poloha, orientace a velikost virtuálního objektu vzhledem k souřadnicím rámu uvažovaného modelu. Pro online sledování polohy jsou funkce SIFT extrahovány z aktuálního snímku videa a porovnávány s již vypočítanými funkcemi, což vede k sadě shod 2D až 3D. Tyto shody se pak použijí k výpočtu aktuální polohy kamery pro virtuální projekci a konečné zpracování. Technika regularizace se používá ke snížení jitteru ve virtuální projekci [28] . Byla také implementována rozšíření SIFT 3D pro rozpoznávání a zvýraznění skutečných 3D objektů [29] [30] .
Rozšíření deskriptoru SIFT na 2+1-rozměrná časoprostorová data byla studována v kontextu rozpoznávání lidských akcí ve videu [29] [31] [32] [33] . Vytváření lokálních histogramů závislých na poloze v algoritmu 2D SIFT se rozšiřuje z 2D na 3D a popisuje vlastnosti SIFT v časoprostorové oblasti. Pro aplikaci na rozpoznávání lidských akcí ve videu jsou tréninková videa prováděna buď z konkrétních časoprostorových bodů, nebo na náhodném místě, čase a měřítku. Prostoročasové oblasti kolem těchto singulárních bodů jsou pak popsány pomocí 3D deskriptoru SIFT. Tyto deskriptory jsou pak sestaveny do " pytel slov " časoprostorového modelu . 3D SIFT deskriptory extrahované z testovacích klipů jsou porovnávány s těmito slovy , aby se klasifikovaly lidské činy.
Autoři tvrdí, že jejich 3D deskriptor SIFT funguje výrazně lépe než jiné přístupy, jako jsou jednoduché 2D deskriptory SIFT a hodnota gradientu [34] .
Technika morfometrie založená na vlastnostech ( FBM ) [35] [35] využívá extrémy v rozdílu Gaussova škálovacího MRI(magnetické rezonanceobrazůk analýze a klasifikaci 3Dprostoru FBM modeluje obraz pravděpodobnostně jako koláž nezávislých znaků určených geometrií obrazu a skupinami značek, jako jsou zdravé předměty a předměty odpovídající Alzheimerově chorobě. Prvky jsou nejprve extrahovány do jednotlivých snímků z rozdílu 4D Gaussova měřícího prostoru a poté jsou modelovány z hlediska jejich vzhledu, geometrie a statistik společného výskytu ve skupině napříč více snímky. FBM byla ověřena v analýze Alzheimerovy choroby se sadou ~200 volumetrických zobrazení (MRI) lidského mozku, která automaticky detekuje zavedené indikátory Alzheimerovy choroby v mozku a klasifikuje neakutní onemocnění v nových snímcích s mírou 80 % [ 35] .
Konkurenční metody pro rozpoznání objektů invariantního měřítka při šumu a částečném překrytí jsou následující.
RIFT [36] : Rotace - invariantní zobecnění SIFT . Deskriptor RIFT je konstruován pomocí kruhových normalizovaných řezů rozdělených do soustředných prstenců stejné šířky a v rámci každého prstence je vypočítán histogram směru gradientu. Pro získání rotační invariance se orientace měří v každém bodě vzhledem ke směru od středu.
G-RIF [37] : Generalized Robust Invariant Feature je obecný kontextový deskriptor, který kóduje orientaci hran, hustotu hran a informace o barvě do jediného klíče, přičemž kombinuje vjemové informace s prostorovým kódováním. Schéma rozpoznávání objektů využívá kontext sousedství k vyhodnocování modelů objektů na základě hlasování.
"SURF" [38] : Zrychlené robustní funkce jsou vysoce výkonné detektory/deskriptory s neměnným měřítkem a rotací, o kterých se tvrdí, že se blíží nebo dokonce překračují dříve navržená schémata, pokud jde o reprodukovatelnost, jasnost a spolehlivost. SURF se spoléhá na obrázky s plnou konvolucí, aby se zkrátil výpočetní čas, a je založen na síle předních existujících detektorů a deskriptorů (používá rychlé měření založené na Hessově matici pro detektory a deskriptory založené na rozdělení pravděpodobnosti). Popisuje rozložení odezev Haarových vlnek mezi sousedy singulárního bodu. Pro urychlení se používají úplné obrázky a ke zkrácení doby výpočtu a porovnávání se používají pouze 64rozměrné vektory prvků. Krok indexování je založen na laplaciánském znaménku , což zvyšuje rychlost párování a robustnost deskriptoru.
PCA-SIFT [39] a GLOH [19] jsou varianty SIFT. Deskriptor PCA-SIFT je vektor obrazových gradientů ve směrech x a y vypočítaný v podporované oblasti. Plocha přechodu je rozdělena na 39×39 míst, takže rozměr vektoru je 3042. Rozměr je redukován na 36 metodou hlavních složek . Histogram gradientu polohy ( GLOH ) je rozšířením deskriptoru SIFT a byl vyvinut za účelem zvýšení jeho robustnosti a rozlišitelnosti. Deskriptor SIFT se vypočítá v logaritmických polárních souřadnicích poziční mřížky se třemi oblastmi v radiálních směrech (poloměr nastavený na 6, 11 a 15) a 8 v úhlových směrech, což vede k 17 oblastem. Středová oblast není rozdělena do úhlových směrů. Směry gradientu jsou kvantovány do 16 oblastí, výsledkem je histogram s 272 oblastmi. Velikost tohoto deskriptoru je redukována metodou hlavní komponenty . Kovarianční matice pro metodu hlavních komponent se vyhodnocuje na kouscích shromážděných z různých obrázků. Pro popis je použito 128 největších vlastních vektorů .
Gauss-SIFT [21] je čistý deskriptor obrazu definovaný měřením všech obrazů základního deskriptoru SIFT pomocí Gaussovy derivace, spíše než aproximací derivace v obrazové pyramidě, jak je tomu u standardního SIFT. S tímto přístupem lze efekt diskretizace prostoru a měřítka snížit na minimum, což potenciálně vede k přesnějším deskriptorům obrázků. Lindeberg [21] zkombinoval takové obrazové deskriptory Gauss-SIFT se sadou zobecněných singulárních prostorů bodové stupnice, včetně Gaussova Laplacianu, Hessova determinantu, čtyř nových rysových taktů bez znaménka a znaménka Hessian, stejně jako Harris-Laplaceova a Shea. -Thomas singulární body. V intenzivním experimentálním běhu na databázi billboardů obsahující několik transformací 12 billboardů z hlediska zvětšení až 6x a směru pohledu až do úhlu 45 stupňů se ukázalo, že výrazné zvýšení efektivity zpracování obrazu (vyšší efektivita skóre a nižší skóre 1 -přesnost) lze získat nahrazením Laplacianova Gaussova singulárních bodů determinantem Hessiánu singulárních bodů. Vzhledem k tomu, že Gaussovský rozdíl v singulárním bodě předpokládá numerickou aproximaci Laplacianova Gaussova singulárního bodu, ukazuje to, že je možné významně zvýšit výkon párování nahrazením singulárního bodu Hessiánského rozdílu v SIFT singulárním bodovým Hessovým determinantem. Další zvýšení výkonu lze dále získat zvážením míry síly nepodepsaného Hessova prvku nebo 0 v opačném případě. Numerické srovnání mezi Gauss-SIFT deskriptorem a odpovídajícím Gauss-SURF deskriptorem také ukázalo, že Gauss-SIFT obecně funguje výrazně lépe než Gauss-SURF pro velký počet různých singulárních bodových škálových-prostorových detektorů. Studie tedy ukazuje, že snížení diskretizačního efektu deskriptoru obrazu SIFT je výrazně lepší než u deskriptoru obrazu SURF, nicméně detektor charakteristických bodů v SURF, který lze považovat za numerickou aproximaci k extrému v měřítku prostoru Hessova determinantu, je výrazně lepší než detektor charakteristických bodů v SIFT.
Wagner a spolupracovníci vyvinuli dva algoritmy pro rozpoznávání objektů specificky přizpůsobené omezením stávajících mobilních telefonů [40] . Na rozdíl od klasického přístupu používají SIFT Wagner a kol Algoritmus také obsahuje fázi přípravy offline, kde jsou funkce vytvářeny na různých úrovních přiblížení, a fázi online, kde jsou funkce generovány pouze pro pevnou úroveň přiblížení fotoaparátu telefonu. Kromě toho jsou prvky vytvořeny pouze z pevných oblastí 15×15 pixelů a je vytvořen pouze 36rozměrný deskriptor SIFT. Tento přístup byl dále rozšířen integrací se Scalable Vocabulary Tree [41 ] . To umožňuje efektivní rozpoznání velkého množství objektů mobilním telefonem. Přístup je omezen především velikostí dostupné paměti RAM .
KAZE a A-KAZE (Funkce KAZE a Kaze Boosted Features) je nová metoda detekce a charakterizace 2D prvků, která funguje lépe než SIFT a SURF. Získal širokou popularitu díky tomu, že je volně distribuován a má otevřené zdrojové kódy. Algoritmus také není patentován. KAZE vytvořili Pablo F. Alcantarilla, Adrien Bartoli a Andrew J. Davison [42] .