Bevezetés SZITÁL( Skála Invariáns Tulajdonsága Át)

SZITÁL áll a Skála-Invariáns Tulajdonsága Át volt az első 2004-ben benyújtott, a D. Lowe, University of British Columbia. A szitálás invariancia a képskálához és a forgáshoz. Ez az algoritmus szabadalmaztatott, így ez az algoritmus szerepel az OpenCV nem szabad moduljában.

előnyei SZITÁL vagy
- Településen: funkciók helyi, olyan erős, hogy elzáródás, valamint a rendetlenséget (nincs előzetes szegmentáció)
- Szól: egyes funkciók is illeszkedik egy nagy adatbázis objektumok
- Mennyiség: sok jellemzők állítható elő még a kis tárgyak
- Hatékonyság: közel a valós idejű teljesítményhez
- bővíthetőség: könnyen kiterjeszthető a különböző funkciótípusok széles skálájára, minden hozzáadáshoz robusztusság
Ez egy 7 sorozatú funkció felismerés és illesztés része. Más cikkekben szereplő
- Bevezetés Funkció Érzékelés, Valamint Megfelelő
- Bevezetés Harris Sarokban Érzékelő
- Bevezetés a SURF (Felgyorsította-Fel Robusztus Funkciók)
- Bevezetés GYORS (Funkciók a Gyorsított Szegmens Teszt)
- Bevezetés RÖVID (Bináris Robusztus Független Általános Jellemzők)
- Bevezetés a GÖMB (Orientált GYORSAN Forgatni RÖVID)
SZITÁL elég egy bonyolult algoritmus. A szitálási algoritmusban elsősorban négy lépés van. Egyenként fogjuk látni őket.
- Scale-space peak selection: Lehetséges hely a funkciók megtalálásához.
- Keypoint lokalizáció: a funkció billentyűzetének pontos elhelyezkedése.
- orientáció hozzárendelés: orientáció hozzárendelése a billentyűzetekhez.
- Keypoint descriptor: leírja a keypoints, mint egy nagy dimenziós vektor.
- Keypoint Matching
Scale-space peak Selection
Real world objects are significant only at a certain scale. Lehet, hogy egy cukorkocka tökéletesen látható az asztalon. De ha az egész Tejutat nézzük, akkor egyszerűen nem létezik. A tárgyak többlépcsős jellege meglehetősen gyakori a természetben. A skála tér megpróbálja megismételni ezt a koncepciót digitális képeken.

A skála tér egy kép függvénye L(x,y,σ) hogy készül a konvolúció egy Gauss kernel(Elmosódott) a különböző mérleg a bemeneti kép. A méretarány-tér oktávokra oszlik, az Oktávok és a méretarány pedig az eredeti kép méretétől függ. Tehát az eredeti kép több oktávját generáljuk. Minden oktáv képmérete az előző fele.
Blurring
egy oktávon belül a képek fokozatosan elmosódnak a Gaussian Blur operátor segítségével. Matematikailag az “elmosódás”a Gauss-operátor és a kép konvolúciója. Gauss blur van egy adott kifejezés vagy” operátor”, hogy alkalmazzák az egyes pixel. Milyen eredmények a homályos kép.

g a Gaussian blur operátor, én pedig egy kép. Míg x, y a helykoordináták, σ pedig a “skála” paraméter. Gondolj rá úgy, mint az elmosódás mennyiségére. Nagyobb az érték, nagyobb az elmosódás.

KUTYA(Különbség a Gauss kernel)
Most használjuk ezeket a homályos képek generálása, a másik meg a képeket, a Különbség Gaussians (Kutya). Ezek a kutyaképek kiválóan alkalmasak arra, hogy érdekes billentyűzeteket találjanak a képen. A Gauss-féle különbséget úgy kapjuk meg, mint egy kép Gauss-elmosódásának különbségét két különböző σ-val, legyen az σ És kσ. Ez a folyamat a Gauss-piramis képének különböző oktávjaira történik. Az alábbi képen látható:

eddig egy méretarányt hoztunk létre, és a méretarányt használtuk a gaussiak különbségének kiszámításához. Ezeket ezután a Gauss-féle approximációk Laplacian kiszámításához használják, amelyek skálainvariánsak.

Egy pixel a kép, mint a 8 szomszédok, valamint a 9 pixel a következő skálán 9 pixel előző mérleg. Így összesen 26 ellenőrzést végeznek. Ha ez egy helyi extrema, ez egy potenciális billentyűzet. Ez alapvetően azt jelenti, hogy a keypoint a legjobban képviselteti magát ebben a Skálában.
Keypoint lokalizáció
Key0point generált az előző lépésben termel egy csomó keypoints. Néhányan egy él mentén fekszenek, vagy nincs elég kontrasztjuk. Mindkét esetben nem olyan hasznosak, mint a funkciók. Szóval megszabadulunk tőlük. A megközelítés hasonló ahhoz, amelyet a Harris Corner detektorban használnak az edge funkciók eltávolítására. Az alacsony kontrasztú funkciók esetében egyszerűen ellenőrizzük azok intenzitását.
a skála térének Taylor-sorozatú kiterjesztését használták az extrema pontosabb helyének eléréséhez, és ha az intenzitás ebben az extremában kevesebb, mint egy küszöbérték (0.03 a papír szerint), akkor azt elutasítják. A kutya nagyobb választ ad a szélekre, ezért az éleket is el kell távolítani. A fő görbület kiszámításához 2×2 hesseni mátrixot (H) használtak.

orientációs hozzárendelés
most már legitim billentyűzetünk van. Stabilnak tesztelték őket. Már ismerjük azt a skálát, amelyen a billentyűzetet észlelték (ugyanaz, mint az elmosódott kép skálája). Tehát van skála invariancia. A következő dolog az, hogy hozzárendel egy tájolást az egyes billentyűzetekhez, hogy elforgatja az invarianciát.

A környéken veszik körül, viszont itt lehet beállítani a helyét, attól függően, hogy a skála, a gradiens nagysága, valamint az irányban számított a régióban. 360 fokos orientációs hisztogramot hoznak létre 36 tartályokkal. Tegyük fel, hogy a gradiens iránya egy bizonyos ponton (a” tájolásgyűjtő régióban”) 18,759 fok, majd a 10-19 fokos tartályba kerül. A binhez hozzáadott “összeg” pedig arányos az adott ponton a gradiens nagyságával. Miután ezt megtette a billentyűzet körüli összes képpont esetében, a hisztogramnak egy bizonyos ponton csúcspontja lesz.

a hisztogram legmagasabb csúcsát veszik figyelembe, és a 80% feletti csúcsot is figyelembe veszik a tájolás kiszámításakor. A billentyűzetet ugyanazokkal a helyekkel és méretekkel hozza létre, de különböző irányokkal. Hozzájárul az illesztés stabilitásához.
Keypoint descriptor
Ezen a ponton minden billentyűzetnek van helye, mérete, tájolása. A következő lépés egy leíró kiszámítása a helyi képrégióhoz minden egyes billentyűzetről, amely nagyon megkülönböztető és invariáns, amennyire csak lehetséges, olyan variációkhoz, mint a nézőpont és a megvilágítás változása.
ehhez egy 16×16-os ablak kerül a billentyűzet körül. 16 4×4 méretű alblokkra oszlik.

For each sub-block, 8 bin orientation histogram is created.

So 4 X 4 descriptors over 16 X 16 sample array were used in practice. 4 X 4 X 8 directions give 128 bin values. It is represented as a feature vector to form keypoint descriptor. Ez a funkció vektor bevezet néhány komplikáció. Meg kell szabadulnunk tőlük, mielőtt véglegesítjük az ujjlenyomatot.
- Forgásfüggőség a funkcióvektor gradiens orientációkat használ. Nyilvánvaló, hogy ha elforgatja a képet, minden megváltozik. Minden gradiens orientáció is változik. A forgás függetlenségének elérése érdekében a billentyűzet forgását kivonjuk az egyes tájolásokból. Így minden gradiens orientáció a kezelőpont tájolásához viszonyítva van.
- megvilágítási függőség ha nagy számokat küszöbölünk, elérhetjük a megvilágítási függetlenséget. Tehát minden 0,2-nél nagyobb szám (a 128-ból) 0,2-re változik. Ez a kapott jellemző vektor ismét normalizálódik. És most van egy megvilágítás független funkció vektor!
Keypoint Matching
Keypoints között két kép illeszkedik azonosításával a legközelebbi szomszédok. De bizonyos esetekben a második legközelebbi mérkőzés nagyon közel lehet az elsőhöz. Előfordulhat zaj vagy más okok miatt. Ebben az esetben a legközelebbi távolság és a második legközelebbi távolság arányát vesszük figyelembe. Ha ez nagyobb, mint 0,8, akkor elutasítják őket. Ez kiküszöböli körül 90% hamis mérkőzések míg visszadobja csak 5% helyes mérkőzések, mint egy a papír.
implementáció
az OpenCV(3.4) használatával tudtam megvalósítani a szitálást. Így csináltam:
Github link a kódhoz: https://github.com/deepanshut041/feature-detection/tree/master/sift