Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Recenzije
  • Mapiranje objekata podataka. Odgovarajuće slike na osnovu "karakteristike"

Mapiranje objekata podataka. Odgovarajuće slike na osnovu "karakteristike"

Evo mog komentiranog rješenja u ES3 (detalji nakon koda):

Object. equals = function(x, y) (ako (x === y) vrati true; // ako su i x i y null ili nedefinirani i potpuno isti ako (! (x instanca objekta) || ! (y instanceof Object)) return false; // ako nisu striktno jednaki, oba moraju biti objekti ako (x.constructor !== y.constructor) vrati false; // moraju imati potpuno isti lanac prototipa, najbliži možemo učiniti je // testirati tamo konstruktor. for (var p in x) (ako (! x.hasOwnProperty(p)) nastavi; // druga svojstva su testirana pomoću x.constructor === y.constructor if (! y .hasOwnProperty(p)) return false // dozvoljava usporedbu x[ p ] i y[ p ] kada je postavljeno na nedefinirano ako (x[ p ] === y[ p ]) nastavi; // ako imaju isti strogi vrijednost ili identitet onda su jednaki ako (typeof(x[ p ]) !== "object") vrati false; // Brojevi, nizovi, funkcije, Booleovi moraju biti striktno jednaki ako (! Object. equals(x[ p ] , y[ p ])) return false; // Objekti i nizovi moraju biti testirani rekurzivno ) za (p u y) ( if (y.hasOwn Svojstvo(p) && ! x.hasOwnProperty(p)) return false; // dozvoljava da se x[ p ] postavi na undefined ) return true; )

Dok sam razvijao ovo rješenje, posebno sam pažljivo pogledao kutne kutije, efikasnost, ali pokušavajući dati jednostavno rješenje koje funkcionira, nadamo se s malo elegancije. JavaScript to dozvoljava nula i neizvjesno svojstva i objekti su prototipovi,što može dovesti do vrlo različitog ponašanja ako se ne testira.

Prvo sam odlučio da se proširim Objekat umjesto Object.prototype, uglavnom zato što null ne može biti jedan od objekata poređenja i u to vjerujem null mora biti valjan objekt za poređenje s drugim. Postoje i druga legitimna pitanja koja su drugi primijetili u vezi sa proširenjem Object.prototype u vezi sa mogućim nuspojavama za drugi kod.

Mora se obratiti posebna pažnja da se dopusti JavaScript tako da se svojstva objekta mogu postaviti kao neodređeno, tj. Postoje svojstva čije su vrijednosti postavljene kao neodređeno. Gore navedeno rješenje potvrđuje da oba objekta imaju ista svojstva koja nije definisano prijaviti ravnopravnost. To se može postići samo provjerom postojanja svojstava koristeći Object.hasOwnProperty(property_name). Takođe imajte na umu da JSON.stringify() uklanja svojstva koja su postavljena kao neodređeno, pa će poređenja koja koriste ovaj obrazac zanemariti svojstva postavljena na vrijednost nedefinisano.

Funkcije treba smatrati jednakim samo ako dijele istu referencu, a ne samo isti kod, jer to neće uzeti u obzir prototip tih funkcija. Dakle, poređenje linije koda ne radi kako bi se osiguralo da imaju isti prototip objekta.

Oba objekta moraju imati isti lanac prototipa, nisu ista svojstva. Ovo se može provjeriti samo uporednim preglednikom konstruktor oba predmeta za strogu jednakost. ECMAScript 5 će vam omogućiti da provjerite njihov stvarni prototip pomoću Object.getPrototypeOf(). Neki web pretraživači također nude tu imovinu __proto__, koji radi isto. Moguće poboljšanje gornjeg koda omogućilo bi korištenje jedne od ovih metoda kad god je to moguće.

Upotreba striktnih poređenja je ovdje najvažnija jer 2 ne treba smatrati jednakim "2.0000" , a false treba smatrati jednakim nula, neizvjesno ili 0 .

Razmišljanja o efikasnosti naveli su me da uporedim za jednakost karakteristika što je prije moguće. Zatim, samo ako to ne uspije, potražite tip ove osobine. Povećanje brzine može biti značajno za velike objekte sa mnogim skalarnim svojstvima.

Nisu potrebne više od dvije petlje, prva za provjeru svojstava s lijevog objekta, druga za provjeru svojstava na desnoj strani i samo za provjeru postojanja (ne za vrijednost) da uhvati ona svojstva koja su definirana sa neizvjesno vrijednost.

Sve u svemu, ovaj kod obrađuje većinu kutnih slučajeva u samo 16 linija koda (bez komentara).

Ažuriranje (13.8.2015.). Implementirao sam efikasniju verziju jer je funkcija value_equals() brža, obrađuje slučajeve desnog ugla kao što su NaN i 0 osim -0, opciono primjenjujući poredak svojstava objekta i testiranje za kružne reference koje podržava preko 100 automatiziranih testova kao dio testa set projekata

Za pravilno prikazivanje ove stranice potreban vam je pretraživač sa podrškom za JavaScript.

Obrada "Mapiranje i fiksiranje objekata"

Obrada mapiranja i popravljanja objekata se primjenjuje ako su prethodno mapirani objekti mapirani u Upravljanju distribucijom. Zatim će se u obrascu za obradu podataka za preuzimanje podataka od distributera pojaviti link za ispravku dokumenata koji sadrže izmijenjene podatke ( Rice. 7.16 ) .

Obrada se može započeti na dva načina:

    iz podsistema "Podaci o distributerima" direktnom obradom promijeniti poređenje;

Da biste odabrali podatke za distributera, unesite naziv distributera u polje "Distributor" i kliknite na dugme "" za prikaz podataka učitanih sa RS distributera.

Uzmimo za primjer podudaranje stavki.

Rice. 7.13. Obrada "Mapiranje i fiksiranje objekata"

Tablični dio prikazuje element direktorija u bazi podataka distributera i njegovu korespondenciju u bazi podataka proizvođača.

Usklađenost je naznačena iz imenika " Nomenklatura". Ovo se može uraditi ručno ili pomoću dugmeta " Pronađite slične". Pretraživanje se može izvršiti po artiklu (ako je omogućena postavka "Prikaži članak") ili po nazivu. Ako pretraživanje ne pronađe potpuno podudaranje, tada će se zamijeniti nomenklatura s djelomičnim podudaranjem članka ili naziva .

Izmijenjeno, ali nesačuvano mapiranje je istaknuto podebljano.

Potvrdni okvir " Prikaži SKU" kontrolira prikaz SKU-a proizvoda distributera i odgovarajućeg proizvoda.

Način prikaza liste elemenata u tabelarnom dijelu je konfiguriran u meniju tabelarnog odjeljka "Više" ( Rice. 7.14) . Ako obrada započne nakon unošenja izmjena putem " Preuzimanje podataka od distributera"ili imenik" Nomenklatura distributera", tada će lista proizvoda biti filtrirana po kvadratiću " Samo promijenjeno".

Za ispravku dokumenata potrebno je:

Ispis (Ctrl+P)

Mehanizam za poređenje podataka pri razmjeni putem univerzalnog formata

Mehanizam uparivanja podataka je dizajniran da riješi problem sinhronizacije podataka između izvorne baze i baze prijemnika tokom razmjene

Interni identifikatori objekata

U idealnom slučaju, podaci sinkroniziranih aplikacija mogli bi biti upareni jedinstvenim internim identifikatorima objekata (GUID). Ali to zahtijeva da se dodavanje podataka koji se sinkroniziraju vrši samo u jednoj aplikaciji, au drugoj se ti podaci pojavljuju isključivo kao rezultat sinhronizacije. U ovom slučaju, GUID-ovi u dvije aplikacije za iste objekte bit će isti i bit će moguće jedinstveno uskladiti objekte po njima.

U praksi, nije uvijek moguće ispuniti ovaj zahtjev, posebno u slučaju podešavanja sinhronizacije između aplikacija koje su radile samostalno. To je zato što će dva identična objekta kreirana paralelno u svakoj aplikaciji imati dva različita GUID-a.

U nekim slučajevima, podaci se ne mogu upariti pomoću GUID-a jer ne postoje (posebni slučajevi koji nisu obuhvaćeni u ovom članku).

Identifikatori javnih objekata

Za uspješno uparivanje objekata s različitim GUID-ovima, mora postojati mjesto za pohranjivanje njihovih informacija o podudaranju. Ovo mjesto je registar informacija. Javni ID-ovi sinhroniziranih objekata(Dalje FIR).

Rice. 1 Registar informacija Javni identifikatori sinkroniziranih objekata

Struktura registra prikazana je u tabeli:

Za poređenje podataka dva programa, BSP 2.3 pruža obradu “Poređenje objekata baze podataka” za direktnu upotrebu prilikom sinhronizacije podataka


Slika 2. Glavni obrazac za obradu “Poređenje objekata infobaze”

Lista se otvara komandom Izvrši mapiranje Na stranici Mapiranje podataka Asistent za interaktivnu sinhronizaciju podataka. Također možete dvaput kliknuti na red koji ima problema s podudaranjem podataka.

Lista se sastoji od dvije kolone, od kojih svaka odgovara bazi podataka uključenoj u razmjenu. Podaci se grupišu po programskim objektima (dokumenti, liste). Na dnu liste prikazuje se informativna linija: koliko elemenata se podudara, koliko se ne podudara.

Na terenu izlaz Možete odabrati koje podatke želite prikazati na listi. Prikazano prema zadanim postavkama Podaci bez premca.

Mapiranje objekata

  • Kliknite Automatski se podudaraju(preporučeno), odaberite polja koja se podudaraju koristeći potvrdne okvire. Neka polja program podrazumevano bira. Da potvrdite svoj izbor, kliknite Izvrši mapiranje. Nakon pretrage, program prikazuje podatke koje je uporedio za pregled. Pritisnite za potvrdu Prijavite se.
  • Nakon automatskog uparivanja, možete ručno upariti preostale objekte ili promijeniti mapiranje objekata. Odaberite tražene objekte od dvije baze, kliknite Otkaži utakmicu, da pokušate ručno upariti objekte, kliknite Set match da odgovaraju objektima.
  • Pritisnite za potvrdu Napišite i zatvorite.

Prilagođavanje polja tabele mapiranja

  • Kliknite zvučnici da dodate polja u kolone liste. Dodatna polja se mogu označiti pomoću polja za potvrdu, za potvrdu kliknite Prijavite se.

Preuzimanje podataka iz drugog programa

Redoslijed podudaranja objekata

  • Preporučljivo je izvršiti uparivanje podataka i učitavanje uzimajući u obzir referentne veze. Pogotovo ako se polje koristi za uparivanje objekata.
  • Na primjer, u konfiguraciji postoji imenik ugovora sa drugim ugovornim stranama, koji je podređen imeniku ugovornih strana. Poređenje ugovora o drugoj ugovornoj strani vrši se prema imeniku-vlasniku, tj. prema imeniku ugovornih strana. Stoga, da biste ispravno uporedili podatke, prvo morate uporediti i preuzeti imenik ugovornih strana, a zatim i imenik ugovora sa drugim ugovornim stranama.
  • Inače, polja tabele mapiranja mogu sadržavati lažne veze u obliku:
    <Объект не найден>(26:a0b9001b24e002fe11dfba347dd41412).
  • Lažna veza upućuje na objekt u trenutnoj bazi podataka koji još nije učitan iz poruke razmjene.

Unosi u FIR kreiraju se i na strani pošiljaoca prilikom potvrde prijema podataka od strane korespondenta putem mehanizma potvrde. Na terenu Identifikator takvi zapisi postavljaju originalni identifikator objekta. Registracija takvih zapisa je neophodna kako bi se prilikom prijema drugih podataka od korespondenta moglo shvatiti da ovaj objekat treba isključiti iz procedure pretraživanja po poljima i jedinstvenom identifikatorom.

Opcije za identifikaciju objekata po prijemu

Procedura za automatsko uparivanje objekata pri preuzimanju sadržana je u Pravilima konverzije objekata (OCR) za dohvaćanje podataka. PKO pravila su u opštem modulu


Slika 3 Sekcije opšteg modula ExchangeManagerViaUniversalFormat

Bilješkašta je u zajedničkom modulu Exchange ManagerViaUniversalFormat postoje sve komponente (pravila obrade podataka, pravila konverzije objekata itd.) koje određuju primijenjenu logiku obrade podataka u procesu njihovog prijema ili slanja. Programski kod ovog modula se generiše automatski pomoću aplikacije Data Conversion 3.0 na osnovu konfigurisanih pravila razmene. Programski kod modula može se kreirati ručno, ali zahtijeva veliku vještinu od programera.

Pomoću svojstva postavlja se opcija automatskog poređenja (identifikacije) objekata po prijemu Identifikacija varijante PKO


Slika 4. Postavke identifikacije u modulu menadžera

Postoje 3 opcije (3 vrijednosti) za identifikaciju objekta

  1. Od UniqueID - identifikacija od strane GUID-a,
  2. Prvo po jedinstvenom identifikatoru, a zatim po poljima za pretragu identifikacija po GUID-u i poljima za pretragu,
  3. ByFieldsSearch - identifikacija po poljima za pretragu,

Još jedno svojstvo koje definira logiku podudaranja je niz polja pretraživanja, definiranih u svojstvu Search Fields PKO.

Algoritam za pretragu terena

Postoji sekvencijalna primjena opcija pretraživanja navedenih u svojstvu Search Fields FSP koji se koristi prilikom učitavanja objekta.

Ograničenje.
Prilikom uparivanja u fazi analize podataka, primjenjuje se samo 1. opcija pretraživanja - Od UniqueID

Prijelaz na sljedeću opciju vrši se u dva slučaja:

  1. Učitani objekt nema popunjeno nijedno od polja navedenih u opciji pretraživanja.
  2. Opcija pretraživanja nije dala nikakve rezultate.

Ako učitani objekt sadrži informacije o početnom GUID-u i opciju identifikacije za objekt “Po GUID-u” ili “Prema GUID-u i poljima za pretragu”, tada se pretraga obavlja između svih objekata navedenog tipa, osim onih za koje je FIR je već uparen.

U drugim slučajevima, pretraga se vrši između svih objekata infobaze odgovarajućeg tipa.

Posebnosti.
Prilikom uparivanja u fazi analize podataka, učitani objekti ne provjeravaju popunjenost polja uključenih u pretragu.

U fazi analize podataka, podudarnost će biti uspostavljena samo ako je pronađen jedan objekat primaoca za jedan objekt pošiljaoca.

U fazi učitavanja podataka, podudarnost će se uspostaviti iu slučaju kada je pronađeno više objekata primatelja za jedan objekt pošiljatelja. U takvoj situaciji biće uspostavljena utakmica sa jednim od njih.

U fazi učitavanja podataka, opcija pretraživanja Broj + datum za dokumente radi na sljedeći način: broj traženog dokumenta se provjerava da li se tačno podudara, datum određuje interval u kojem se vrši pretraga po broju. Sam interval se definiše kao period jedinstvenosti brojeva dokumenata, koji uključuje navedeni datum. Na primjer, ako su brojevi dokumenata jedinstveni u roku od mjesec dana i datum je 10. decembar 2001., tada će se pretraga vršiti u intervalu od 01. decembra do 31. decembra 2001. godine.
Tokom faze analize podataka, ova opcija pretraživanja će raditi kao i obično: oba polja će biti provjerena za tačno podudaranje.

Materijal iz Technical Vision

Prilikom rješavanja problema poređenja slika najvažniju ulogu ima hijerarhijska analiza „primarnih“ osobina slika – takozvanih „karakterističnih osobina“. Takve "karakteristike" se mogu koristiti za upoređivanje trenutnih i referentnih slika na različite metode, kao što su hijerarhijska korelaciona obrada, metode glasanja ili šeme volumetrijskog poređenja. U ovom slučaju, posebne tačke, linije, regije i strukture (grupe karakteristika) koriste se kao karakteristike slike. Hajde da ukratko razmotrimo pristupe zasnovane na korišćenju karakteristika tačke i konture.

Usklađivanje zasnovano na tačkastim karakteristikama.

Glavne prednosti korištenja značajnih tačaka za zadatke otkrivanja su jednostavnost i brzina ekstrakcije (u poređenju s drugim korištenim karakteristikama). Osim toga, nije uvijek moguće istaknuti druge karakteristične karakteristike na slikama (dobre i jasne konture ili područja), dok se lokalne karakteristike mogu razlikovati u velikoj većini slučajeva.

Zadatak detekcije objekta na slici svodi se na pronalaženje karakterističnih tačaka i fiksiranje njihovog relativnog položaja. Ovi postupci se izvode prvo na referentnoj slici, a zatim na proučavanoj slici, često u određenom ograničenom području pretraživanja. Opća šema algoritma za pronalaženje odgovarajućih tačaka sastoji se od nekoliko faza:

Odabir točkastih karakteristika na slikama;

Formiranje vektora znakova tačaka;

Poređenje tačaka u prostoru obeležja;

Odabir i opis karakterističnih tačaka na slici je početna i ključna faza u identifikacionom algoritmu od koje zavisi rezultat cijelog algoritma. Ovaj korak je razmatran ranije u Odjeljku 4.1.

Međutim, koliko god invarijante bile složene, one još uvijek nisu u stanju jedinstveno okarakterizirati objekt u slučajevima od $100$(\%). Dvosmislenosti, odnosno slučajevi kada različite objekte (tačke, oblasti) na slici karakterišu vrlo slični parametri, mogu se povezati sa nesavršenošću odabranih invarijanti, sa niskom rezolucijom ili šumom na slici. Dvosmislenosti nastaju i kada se na slici ponavljaju objekti. Jedan od načina da se razriješe nejasnoće je razvoj boljih invarijanti ili drugih deskriptora; ovaj pravac je veoma relevantan među istraživačima koji se bave mašinskim vidom. Paralelni pristup je korištenje prostornih odnosa između objekata.

Algoritme zasnovane na prostornim odnosima, koji pripadaju višem nivou obrade od rasterskih algoritama, karakteriše veća otpornost na različita geometrijska i radiometrijska izobličenja. Jedan od pokazatelja "ispravnosti" pronađenog para može biti gomilanje oko tačaka koje formiraju takve parove, veliki broj drugih tačno uparenih tačaka. Još jedan kriterij na osnovu kojeg je moguće iskorijeniti pogrešno povezane

Distribucija ključnih tačaka

tačke, može postojati raspored tačaka u odnosu na prave. Ovaj odjeljak govori o metričkim i topološkim filterima koji odbijaju netačna podudaranja na osnovu relativnog položaja objekata na slici.

Metric matching.

Da bi se provjerila ispravnost uparivanja kandidata, uključene su dodatne informacije o međusobnom prostornom rasporedu tačaka na ravni slike. Drugim riječima, prostorni raspored tačaka na desnoj i lijevoj slici trebao bi biti sličan u određenom smislu. Prostorni raspored se može opisati kao matrica udaljenosti. Razmotrimo skup tačaka $A_(1), A_(2), \ldots, A_(i), \ldots, A_(N)$ u ravni slike (slika 8).

Udaljenosti između tačaka se mogu napisati kao matrica udaljenosti $\vert \vert r_(ij)\vert \vert $ na sljedeći način:

\[ (\begin(array)% & (A_1) & (A_2) & (...) & (A_i) & (...) & (A_N) \\ \hline (A_1) & 0 & (r_( 12) ) & (...) & (r_(1i) ) & (...) & (r_(1N) ) \\ (A_2 ) & & 0 & (...) & (r_(2i) ) & (...) & (r_(2N) ) \\ (...) & & & (...) & (...) & (...) & (...) \\ (A_i ) & & & & 0 & (...) & (r_(iN) ) \\ (...) & & & & & (...) & (...) \\ (A_N ) & & & &&& 0 \\ \kraj (niz) ) \]

gdje je $r_(ik) =\sqrt ((x_i -x_k)^2-(y_i -y_k)^2) $ euklidska udaljenost između $A_(i)$ i $A_(k)$, $x_(i ) $, $y_(i)$ - koordinate tačke $A_(i)$ na slici, $x_(k)$, $y_(k)$ - koordinate tačke $A_(k)$ na slici.

Za provjeru ispravnosti formiranja konjugiranih parova tačaka, matrice udaljenosti lijevog $\vert \vert r_(ij)^(L)\vert \vert $ i desnog $\vert \vert r_(ij)^( R)\vert \vert $ slike se upoređuju. Da bi se kvantificiralo pogrešno vezivanje, uvodi se varijabla $\delta _(ij)$,

$$ \delta _(ij) = r_(ij)^(R) - r_( ij)^(L). $$

Analiza histograma distribucije $\delta _(ij)$ omogućava procjenu vrijednosti praga odbacivanja pogrešnog para $\Delta $ prema dolje opisanom kriteriju. Imajte na umu da tačka sa brojem $i$ ima $N-1$ veze, a odgovarajuće udaljenosti u matrici $\vert \vert r_(ij)\vert \vert $ su: $r_(1i)$, $r_( 2i) ,(\ldots), r_(ii)$, $r_(i,i+1),(\ldots),r_(i,N)$. Shodno tome, vektor udaljenosti povezan sa brojem para $i$ je $$ \delta_(i)=\(\delta _(1i), \delta _(2i),(\ldots), \delta _(ii), \ delta _(i,i+1),(\ldots), \delta _(i,N)\) $$ gdje je $$ \vert \vert \delta _(i)\vert \vert = \min\( \ delta _(1i), \delta _(2i),(\ldots), \delta _(ii), \delta _(i,i+1),(\ldots), \delta _(i,N) \ )$$ je norma vektora $\delta_(i)$.


Filtrirani parovi tačaka

Par konjugiranih tačaka je prihvaćen ako je $\vert \vert \delta _(i)\vert \vert< \Delta $ и отклоняется в противоположном случае. Процедура проверки выполняется для каждого $i$ от $1$ до $N$. Существенно, что предложенный критерий отбора на основе анализа матрицы (5) инвариантен к вращению изображений.

Da bi algoritam bio efikasniji, koristi se piramida slike. Početna aproksimacija za tačke od interesa je na najvišem nivou piramide, a zatim se rafinira na sljedećim nivoima koristeći korelaciju. Primjer rada algoritma prilikom poređenja dva testna video okvira prikazan je na Sl. 9.

Topološko podudaranje.

Razmotrite trojku objekata $\langle R_1^1 ,R_1^2 ,R_1^3 \rangle$ na slici $V_1 $ i odgovarajuću trojku objekata $\langle R_2^1 ,R_2^2 ,R_2^3 \rangle $ na slici $ V_2 $. Pod objektom se podrazumijeva područje slike, na primjer, "zanimljiva tačka" (recimo, kut ili lokalni ekstremum svjetline) i njegovo susjedstvo, ili područje složenijeg oblika.

Neka je $c_v^i =\langle x_v^i ,y_v^i \rangle$ centar objekta (regije) $R_v^i $. Funkcija

$$ \begin(gather)\tag(1) \textrm(side) (R_v^1,R_v^2,R_v^3)= \textrm(sign) \left(\det \left[ ((\begin(array) )(*(20)c) (x_v^3 -x_v^2 ) & (x_v^1 -x_v^2 ) \\ (y_v^3 -y_v^2 ) & (y_v^3 -y_v^2 ) \\ \end(niz) )) \desno] \desno) \end(skupljanje) $$

uzima vrijednost $-\mbox()1$ ako $c_v^1 $ leži na desnoj strani vektora usmjerenog od $c_v^2 $ do $c_v^2 $, ili vrijednost 1 ako ova tačka leži na lijevoj strani njegovu stranu. Dakle, jednačina

$$ \begin(gather)\tag(2) \textrm(side)(R_1^1,R_1^2,R_1^3)=\textrm(side)(R_2^1,R_2^2,R_2^3) \ završiti (sakupiti) $$ znači da tačka $c^1$ leži na istoj strani vektora na obje slike. Ako jednakost (9) nije zadovoljena za neku tačku, reći ćemo da tačka narušava bočni odnos. Ovo se dešava barem kada

Relacija bočne strane - - tačka $c^1$ mora ležati na istoj strani (ovde - sa leve strane) usmerenog segmenta od $c^2$ do $c^3$ na obe slike

barem jedan od tri objekta je pogrešno referenciran na njegov pandan na drugoj slici, ili ako objekti nisu komplanarni i postoji pomak kamere u smjeru okomitom na 3D ravan koja sadrži njihove centre. U drugom slučaju, tačka se može pomeriti na drugu stranu vektora (to jest, njena paralaksa će se promeniti), ali to se dešava samo sa malim brojem trojki. Tačke $R_v^1 $, $R_v^2 $ i $R_v^3 $ zadovoljavaju jednakost (9) ili je krše, bez obzira na redoslijed u kojem se pojavljuju u trojci; potrebno je samo da na obje slike budu numerisane istim cikličkim redoslijedom (kazaljke na satu ili suprotno od kazaljke na satu). Na sl. 10 prikazane su trojke odgovarajućih tačaka koje zadovoljavaju relaciju (9).

Kada je jednakost (9) narušena, može se zaključiti da je jedan od objekata u trojci pogrešno vezan, ali u ovoj fazi nije jasno koji. Jedna trojka nije dovoljna za takav zaključak, međutim, uzimajući u obzir sve moguće trojke, možete pronaći objekte za koje je vjerojatnije da će biti pogrešno vezani. Glavna ideja predložene metode je da neusklađeni objekti češće narušavaju sporedni odnos.

Jednakost (9) je potvrđena za sve trojke domena $\langle R^i,R^j,R^k\ranngle,R^i,R^j,R^k\in \Phi _(12)$, gdje je $\ Phi _(12) $ je skup oblasti prisutnih i na slici $V_1$ i na slici $V_2$. Neka je $\Phi =\left\( (i\vert R^i\in \Phi _(12) ) \right\)$. Na početku algoritma se izračunava kazna $$ \begin(gather)\tag(3) h(i)=\sum\limits_(j,k\in \Phi \backslash i,j>k) (\left| (\textrm(side)(R_1^ i ,R_1^j ,R_1^k)-\textrm(side)(R_2^i,R_2^j ,R_2^k)) \right|) , \end(sakupiti) $$ odnosno koliko puta objekt $R^i$ prekrši bočnu relaciju (9), za sve $i\in \Phi $. Tada se kazna normalizira maksimalnim brojem svih mogućih prekršaja:

$$ \begin(gather)\tag(4) h_N (i)=\frac(h(i))((n-1)(n-2)), \quad n=\left| \Phi \right|. \end(okupiti) $$

Na osnovu (11), dobijamo da je $h_N (i)\in $. Prag $t_(\textrm(topo)) \in $ odabire korisnik. Nakon analize kazne za sve objekte, utvrđuje se objekat $R^w$, gdje je $w=\arg \max _i h_N (i)$, koji češće od ostalih krši relaciju (9). Ako $h_N (w)>t_(\textrm(topo)) $, onda se objekt $R^w$ (tj. par objekata $R_1^w ,R_2^w)$ smatra pogrešno vezan i uklanja se iz skupa $\Phi $ Na svakoj iteraciji, kazna $h_N (i)$ se ponovo izračunava na osnovu preostalih objekata u $\Phi $, a parovi koji najčešće krše relaciju (9) se uklanjaju. Proces se nastavlja sve dok ima objekata za brisanje, odnosno sve dok maksimalna vrijednost kazne za preostale objekte ne postane manja od $t_(\textrm(topo))$ praga.

Tokom prvih iteracija, dok ima dovoljno kandidata za brisanje u skupu $\Phi $, čak i ispravno prikačeni objekti mogu imati visoku vrijednost kazne. Međutim, za pogrešno povezane objekte kazna će biti još veća. Nakon uklanjanja najgoreg para objekata, $h_N (i)$ za preostale objekte će se smanjiti. Kada ostanu samo pravilno usidreni parovi objekata, male promjene paralakse i dalje će rezultirati vrijednostima kazne koje nisu nula.

Vrijednost praga $t_(\textrm(topo))$ utječe na broj objekata preostalih nakon topološkog filtriranja. Nulta vrijednost praga dovodi do činjenice da ostaje mali broj objekata, ali svi oni u potpunosti zadovoljavaju topološki odnos bočnosti. Ovaj izbor praga je razuman na relativno ravnim slikama sa malom dubinom. U većini slučajeva, treba imati na umu da mala vrijednost praga dovodi do neželjenog efekta pogrešnog brisanja određenog broja tačaka/područja kao pogrešno dodijeljenih. Na osnovu brojnih eksperimenata sa zemaljskim i zračnim fotografijama, najpoželjnije je odabrati prag $t_(\textrm(topo))$ iz raspona [$0(,)03$, $0(,)15$].

Ilustrirajmo rad algoritma na primjeru. Neka parovi tačaka od $50$ budu pronađeni i povezani jedni s drugima nekim algoritmom (slika 11). Okom se može utvrditi da je određeni broj tačaka pogrešno vezan jedna za drugu, odnosno da se tačke označene istim brojem nalaze na različitim mjestima na lijevoj i desnoj slici.

Propustimo sada koordinate parova tačaka kroz topološki filter sa $t_(\textrm(topo)) =0(,)15$ - $21$ par tačaka će ostati (slika 12). Ako je, međutim, stroži

Pronađeni i vezani jedno za drugo 50$ parova bodova. Otprilike 2/3 podudaranja su lažne

Nakon primjene topološkog filtera sa $t_(\textrm(topo)) =0(,)15$ $29$ parovi tačaka se uklanjaju kao lažna podudaranja, ostavljajući $21$ par

Nakon primjene topološkog filtera sa $t_(\textrm(topo)) =0(,)05$ $34$ parovi tačaka se uklanjaju kao lažna podudaranja, ostavljajući $16$ parova

filtrirajući sa $t_(\textrm(topo)) = 0(,)05$, tada ostaju $16$ parovi tačaka (slika 13), i sva podudaranja su tačna. Nije uklonjeno nijedno valjano podudaranje, a ovaj metod je uspješno filtrirao parove od $34$, što znači da je $68\%$ originalnih podudaranja bilo lažno.

Kao što se može vidjeti, metoda topološkog filtriranja nije toliko osjetljiva na tačnu prostornu lokalizaciju tačaka. Glavni naglasak u metodi je na relativnom položaju tačaka na slici.

Računska složenost metode zavisi od broja pogrešno vezanih parova i, u većoj meri, od početnog broja parova vezanih objekata. Najveći dio proračuna otpada na izračunavanje determinante u formuli (8) za provjeru svih mogućih trojki objekata. U originalnom skupu $\left| \Phi \right|=n$ parova kandidata, potrebno je provjeriti $C_n^3 =\frac (n(n-1)(n-2)) (6)$ utrostručuje, tako da se ukupna složenost algoritma je $O(n^ 3) $, što je dosta, a ovo je jedan od nedostataka metode. Kako se objekti odbijaju, broj mogućih trojki se smanjuje, a da bi se ubrzao rad, u formuli (10) moguće je ne preračunavati kazne, već izračunati samo one članove koji su uključivali uklonjeni objekt, a zatim oduzeti ove pojmovi iz izraza za $h(i)$ .

Treba napomenuti da se ova metoda ne nosi dobro sa situacijama u kojima slika ima izražen prednji plan i pozadinu. Na primjer, ako je većina područja u prvom planu, tada će pozadinska područja često narušiti bočni odnos (9) zbog nekoplanarnosti sa područjima prednjeg plana. Dio ispravnih područja u ovom slučaju će biti odbijen.

Mapiranje na osnovu konturnih karakteristika.

Glavni nedostatak tačkastih karakteristika je nestabilnost radiometrijskih promjena na slici. Istovremeno, ova vrsta izobličenja je prilično česta u stvarnim slikama: odsjaj, sjene i drugi efekti povezani s promjenama u uvjetima osvjetljenja, vremenu ili sezoni snimanja. Još jedan nedostatak tačkastih karakteristika je njihova nestabilnost na aspektualne distorzije. Ova vrsta distorzije se također nalazi u mnogim problemima od praktičnog interesa. Stoga je potrebno uključiti informacije o obliku samog objekta kao najotpornijeg na promjene ove vrste, kako bi se riješili problemi koordinatno-planske reference. Oblik predmeta je, naravno, njegova najstabilnija karakteristika. Jedna od poteškoća zadatka je što u praksi postoje prilično česti slučajevi sezonskih promjena oblika prirodnih (šume, vodena tijela) i umjetnih objekata (puteva) koje nisu povezane s radiometrijskim distorzijama. Nedostatak apriornih informacija o modelima sezonskih promjena oblika objekata značajno otežava rješavanje ovog problema.

Sa intuitivne tačke gledišta, oblik objekta je u velikoj meri određen njegovim granicama. Na ravnoj slici, granice su konture. Psihološke studije pokazuju da se ljudski mozak pri prepoznavanju slika u najvećoj mjeri oslanja na informacije o konturama. Konture su otpornije na promjene u osvjetljenju, izobličenja uglova, nepromjenjive su na rotaciju i promjene skale. Prednosti reprezentacije konture takođe uključuju značajno smanjenje količine informacija koje se obrađuju prilikom poređenja dve ili više slika, zbog činjenice da tačke konture čine mali deo svih tačaka na slici.

U ovom dijelu, konture se podrazumijevaju kao oštre promjene svjetline na slikama. U procesu korištenja informacija o konturi za automatsko uparivanje (vezivanje) slika, mogu se razlikovati četiri glavne faze:

  1. izbor konturnih tačaka;
  2. praćenje kontura;
  3. opis kontura;
  4. poređenje kontura u odabranom prostoru karakteristika.

Metode za odabir konturnih tačaka su već detaljno razmotrene u Odjeljku 3.4. Problemi praćenja i opisa kontura razmatrani su u odjeljku 4.1. Razmotrimo sada problem poređenja kontura.

Jedan od ključnih problema prilikom poređenja kontura u dvije digitalne slike je izbor atributa koji određuju pojedinačne karakteristike konture. U ovom slučaju može se razlikovati nekoliko glavnih tipova obilježja: metričke (dužina, širina, orijentacija, ugao), analitičke (paralelnost, ravnost, zakrivljenost), topološke (gniježđenje, susjedstvo, sjecište, susjedstvo, prekrivanje). U praksi se koristi prilično veliki broj konturnih atributa: dužina, zakrivljenost, površina, perimetar, broj i položaj singularnih tačaka, indeks kompaktnosti, položaj težišta. Za stvaranje pouzdanijih algoritama za prepoznavanje, preporučljivo je koristiti kombinacije karakteristika različitih tipova.

Imajte na umu da nije uvijek moguće odabrati dovoljan broj zatvorenih kontura na stvarnim slikama. Stoga je za problem identifikacije konture bolje koristiti atribute koji ne ovise o svojstvima zatvorenosti konture.

Ovisno o odabranim atributima, koriste se različite metode poređenja kontura.

Poređenje kontura u prirodnom prikazu.

Neka referentna slika sadrži $N$ različitih kontura $i=1 ,\ldots, N$, tada je $C_L ^i$ $i$-ta kontura dužine $l_L ^i$. Područje pretraživanja na drugoj slici sadrži $M$ različite konture $j=1 ,\ldots, M$, tada je $C_R ^j$ $j$ta kontura područja pretraživanja dužine $l_R ^j$ . $C_L ^i$ i $C_R ^j$ su predstavljeni funkcijama zakrivljenosti (infleksije) $K_L (l)$ i $K_R (l)$, respektivno.

Za rješavanje problema može se koristiti procedura za poređenje dvije konture, čija je suština uzastopno pomicanje funkcije $K_(\textrm(E))(l)$ (kontura $C_(\textrm(E)) $) duž funkcije $K_( \textrm(OP))(l)$ (kontura $C_(\textrm(OP))$), a na svakoj trenutnoj poziciji vrijednost normaliziranog koeficijenta korelacije $$ k(m, C_(\textrm(É)) , C_ (\textrm(OP))) = \frac (\sum\limits_(i=1)^(l_\textrm(E)) (\left((K_(\textrm( E)) \left((l_i ) \ right)-\bar (K)_(\textrm(E)) ) \right)\left((K_(\textrm(OP)) \left((l_(i+ m) ) \desno)-\bar ( K)_(\textrm(OP)) ^m) \desno)) )(\sqrt (\sum\limits_(i=1)^(l_(\textrm(E)) ) ) (\left((K_(\ textrm(E)) \left((l_i ) \right)-\bar (K)_(\textrm(E)) ) \right)^2) ) \sqrt (\ suma\limits_(i=1)^( l_(\textrm(E)) ) (\left((K_(\textrm(OP)) \left((l_(i+m) ) \desno)-\bar ( K)_(\textrm(OP)) ^m) \desno)^2) ) ), $$ gdje je $m=1 ,\ldots, l_(\textrm(OP)) -l_(\textrm(E)) $; $K_(\textrm(E)) (l)$ - - funkcija zakrivljenosti $C_(\textrm(E)) $ konture; $K_(\textrm(OP)) (l)$ - - funkcija zakrivljenosti $C_(\textrm(OP))$ konture; $\bar (K)_(\textrm(E)) $, $\bar (K)_(\textrm(O)) ^m$ - - prosječne vrijednosti intenziteta zakrivljenosti konture $C_(\textrm(E) )) $ i fragment konture $C_(\textrm(OP)) $ respektivno.

U ovom slučaju potrebno je da je zadovoljen sljedeći uvjet: $l_(\textrm(E))

Pozicija na kojoj se postiže maksimalna vrijednost koeficijenta korelacije je fiksna, dok se paru kontura $C_(\textrm(E))$ i $C_(\textrm(O))$ dodjeljuje vrijednost koeficijenta korelacije na ovoj poziciji.

Nakon što se pronađu koeficijenti korelacije za sve konture područja pretraživanja, potrebno je odabrati par kontura ($C_(L ) ^i$ i $C_R ^j)$ za koje koeficijent korelacije ima maksimalnu vrijednost. Međutim, maksimalna vrijednost koeficijenta u ograničenom području pretraživanja ne garantuje pouzdanost rezultata, pa je potrebno koristiti dodatne informacije o relativnom položaju kontura. Upotreba takvih informacija omogućava identifikaciju lažnih identiteta.

U ovom radu, za provjeru pouzdanosti identifikacije, korištene su udaljenosti između težišta kontura, dok su pronađeni parovi kontura ($C_(L)^i$, $C_R^j)$ i ($ C_(L)^l$, $C_R ^ m)$ može se smatrati tačnim ako je $$ \left| (L_(i,l) -L_(j,m) ) \right|\le \Delta , $$ gdje je $L_(i,l) $ - rastojanje između centara kontura $C_(_L ) ^i $ $C_(_L ) ^l$; $L_(j,m) $ - - udaljenost između centara gravitacije kontura $C_R ^j$ i $C_R ^m$.

Ova shema za identifikaciju krivulja ne dopušta međusobno poređenje pravolinijskih segmenata konture, što je, naravno, nedostatak metode. To je zbog činjenice da će prilikom poređenja bilo koja dva segmenta koeficijent korelacije poprimiti vrijednosti bliske jedinici. Takva karakteristika korelacije funkcije zakrivljenosti zahtijeva uvođenje dodatnih uvjeta filtriranja. Sve pravolinijske segmente treba isključiti iz skupa kontura odabranih na slici.

Poređenje karakterističnih tačaka konture.

Neka se nekom metodom nađe $N_(\textrm(E))$ singularnih tačaka za konturu $C_(\textrm(E))^i$ referentne slike, a za konturu $C_(\textrm(E ))^j$ iz područja pretraživanja pronađeno je $N_(\textrm(OP))$ bodova. U isto vrijeme, sama oblast pretraživanja $C_(\textrm(E))^i$ sadrži $N$ kontura. Tada se bilo koja kontura $C^i$ može predstaviti kao funkcija $F^i (l)$, koja uzima vrijednosti različite od nule samo u pronađenim karakterističnim točkama konture. Štoviše, ako se pri upoređivanju kontura koristi samo međusobni raspored tačaka, tada se vrijednosti funkcije u singularnim točkama mogu postaviti jednake jedan (slika 14).

Prikaz konture kao funkcija $F(l)$

Potrebno je da svaka kontura $C_L ^i$ referentne slike pronađe odgovarajuće konture $C_R ^j$ iz područja pretraživanja.

Da bi se riješio problem, koristi se postupak poređenja dvije konture čija je suština sekvencijalna kombinacija tačke $i$ konture $C_(\textrm(E)) $ ($i=1,\ldots, N_(\textrm(E)))$ i $j$ konturne tačke $C_(\textrm(OP)) $ ($j=1, \ldots, N_(\textrm(OP)))$. U ovom slučaju, neophodno je da uslov $l_(\textrm(E))

U svakoj fiksnoj poziciji određuje se broj odgovarajućih tačaka za koje je uvjet

\begin(gather*) F_(\textrm(E)) (l_(\textrm(E)) ^i+\Delta _m)=F_(\textrm(F)) (l_(\textrm(F)) ^j+\ Delta _m)\ne 0,\\ \Delta _m =l_(\textrm(E)) ^(i+m)-l_(\textrm(E)) ^i, \quad m=1 ,\ldots, N_( \textrm(E)) -i. \end(gather*) Kao rezultat izvođenja $N$ operacija poređenja kontura, potrebno je odabrati konturu $C_(\textrm(OP)) ^\ast $ koja sadrži maksimalan broj odgovarajućih tačaka. Međutim, da bi se smanjio broj lažnih identifikacija, potrebno je odozdo ograničiti maksimalan broj pronađenih odgovarajućih tačaka. Smatra se da se konture $C_(\textrm(E)) ^i$ i $C_(\textrm(O)) ^\ast $ podudaraju ako je broj pronađenih tačaka veći od određenog praga $T$.

Ova metoda poređenja je jedna od najbržih i ne zahtijeva izračunavanje dodatnih karakteristika u tačkama, ali je pouzdanost takvog algoritma niska. Nestabilnost algoritma je zbog činjenice da je za stvarne podatke OP))^j+\Delta _m \pm \Delta E_m)\ne 0, $$ gdje je $\Delta E_m $ vrijednost greške zbog diskretnosti početni podaci i uticaj raznih šuma.

Alternativni način traženja odgovarajućih tačaka na dvije konture je šema u kojoj se za poređenje ne koristi svjetlina, već geometrijske karakteristike objekta, a sve karakteristike se ne izračunavaju iz dvodimenzionalne funkcije intenziteta $I(x ,y)$, ali iz jednodimenzionalne funkcije $F(l )$. Algoritam za pronalaženje odgovarajućih tačaka sastoji se od tri glavne faze:

  1. izbor atributa;
  2. traženje odgovarajućih tačaka u višedimenzionalnom prostoru karakteristika;
  3. provjera pouzdanosti identifikacije korištenjem relativnog položaja tačaka na slici .;

Sljedeće karakteristike se koriste kao atributi tačke: $M_(0)$, $D$, koeficijent asimetrije. Koeficijent zakrivljenosti se izračunava po formuli $$ a=\frac((\bar M)_3 )(\sigma ^3), $$ gdje je $(\bar M)_3 $ centralni moment trećeg reda.

Za razliku od prethodne metode, problem identifikacije tačaka se rješava geometrijskom pretragom u višedimenzionalnom prostoru karakteristika. Za navedene atribute, mjera sličnosti tačaka u prostoru karakteristika imat će oblik $$ S_(ij) =\frac(\vert M^(\textrm(E))_(0i) -M^(\textrm (OP))_(0j ) \vert )(M_(0\max) -M_(0\min)) +\frac(\vert D^(\textrm(E))_i -D^(\textrm(OP ))_j \vert )( D_(\max) -D_(\min) ) +\frac(\vert a^(\textrm(E))_i -a^(\textrm(OP))_j \vert )( a_(\max) -a_ (\min) ) $$ Traženje odgovarajućih tačaka se sastoji u pronalaženju para tačaka $\langle i,j \rangle$, $i\in C_(\textrm(E)) $, $j\in C_(\textrm(OP) ) $ za koji $S_(ij) $ uzima najmanju vrijednost u području pretraživanja konture.

Ovaj algoritam identifikacije tačaka je pouzdaniji. To je zato što je euklidska udaljenost između tačaka korištena za validaciju.

Top Related Articles