Articles

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

Deepanshu Tyagi

Kövesse

Mar 16, 2019 · 7 perc olvassa el a

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.

Elmosás üzemeltető

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.

/div >

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.

  1. 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.
  2. 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

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük