
-----------------------------------
valy
28 Apr 2009 12:40

Detectie de puncte cheie intr-o imagine
-----------------------------------
Salut,

Nu stiu daca se incadreaza aici, dar totusi incerc. :roll: 

Am nevoie de o idee de algoritm pentru detectia de puncte cheie intr-o imagine:
- transformata trebuie sa fie invarianta la scalare si rotatie
- transformata trebuie sa imi genereze un numar sau o matrice care sa imi descrie punctele cheie, si cu ajutorul lor sa identific aceleasi puncte cheie in alte imagini.

Ca alternativa, ar mai fi ideea une transformari aplicate unei imagini sau secvente de imaginii care sa-mi dea vectorul de miscare (directia si modulul/viteza de deplasare): am doua (sau mai multe) imagini succesive ale aceluiasi obiect in deplasare si vreau sa obtin vectorul de deplasare al acestuia relativ la pozitia din cadrul initial. In pricipiu pot identifica punctele care se misca...insa am nevoie de o transformare care sa imi zica directia, sensul si eventual viteza. In principiu transformatele FFT, COS aplicate unei imagini bidimensinale genereaza informatii privind directiile principale de variatie a detaliilor din imagine..insa e destul de costisitoare ca cerinta de calcul si nu stiu cat de buna ar fi.

Multumesc.

-----------------------------------
raduM
28 Apr 2009 14:25


-----------------------------------
Pentru mine, semaforul e pe roșu. 
Tot ce am reușit în sensul problemei ridicate a fost să transform imagine în coordonate și valori ale culorii, fără nimic dinamic. :oops: 

Subiectul e însă tentant și cred că poate fi aplicat în astronomie: depistarea automată -de pe imagini succesive- a obiectelor aflate în mișcare, caracteristicile mișcării lor.  :wink: 

Urmăresc cu interes mișcarea.  :D

-----------------------------------
Blakut
28 Apr 2009 14:32


-----------------------------------
Asta e ca tema sau ca proiect propriu sau cauti ceva de genul asta? Ca softuri asemantoare cu ce vrei tu sa faci exista.

-----------------------------------
valy
28 Apr 2009 15:50


-----------------------------------
Pentru mine, semaforul e pe roșu. 
Tot ce am reușit în sensul problemei ridicate a fost să transform imagine în coordonate și valori ale culorii, fără nimic dinamic. :oops: 

Nu-i chiar asa complicat cum pare, doar ceva transpiratie.

Subiectul e însă tentant și cred că poate fi aplicat în astronomie: depistarea automată -de pe imagini succesive- a obiectelor aflate în mișcare, caracteristicile mișcării lor.  :wink: 

Urmăresc cu interes mișcarea.  :D
Defapt aplicatiile interesante pentru mine sunt: object/feature recognition, object tracking, movement detection, movement vector detection...si altele.

Asta e ca tema sau ca proiect propriu sau cauti ceva de genul asta?
Ca softuri asemantoare cu ce vrei tu sa faci exista.
Nu vreau softuri, vreau doar o idee pt. ca trebuie sa o implementez. Exista evident idei practice, cea mai interesanta este crearea de imagini panoramice bazata pe detectia de puncte cheie (image stitching, f(x,y)=ax+by  :idea: )...daca exista.

Multumesc.

-----------------------------------
Dan Stanciu
07 Mai 2010 15:15


-----------------------------------
Salut, Valy!
Ceea ce cauti se incadreaza in astrometrie si se aplica metoda numita multiimagine. Aceasta metoda face apel la o functie numita "blinking" si este excelent integrata unei aplicatii numita AIP4Win. Precizia este la nivel de subpixel si cu ea poti descoperi chiar si asteroizi al caror semnal este f. slab de max. 3 ori factorul de conversie g- caracteristic cip-ului CCD sau CMOS al aparatului foto.
Daca vrei mai multe detalii, contacteaza-ma!
Cu stima,
         Dan

-----------------------------------
Dan Stanciu
07 Mai 2010 15:26


-----------------------------------
daca vrei ceva propriu- sa dezvolti tu, atunci trebuie sa "filtrezi" toate grupurile de pixeli- centroizii- ca avand un nivel ADU minim si sa-i legi de coordonatele x,y ale imaginii. Pentru asta trebuie un cip foto cu pixeli de forma patrata sau o aplicatie care sa-i transforme in patrate. Apoi scrii in limbajul ales un script- pachet de comenzi, triplu iterativ: iteratie pt. x, iteratie pt. y si iteratie pt. pachetul format din primele doua pentru baleierea imaginii. Probabil ca cel mai dificil lucru este gestionarea eficienta a memoriei RAM...
Voi incerca sa-ti trimit un exemplu redactat in word dar doar o schita logica unde voi pune expresii algebrice.

-----------------------------------
Emil
20 Mai 2010 08:35


-----------------------------------
Dan a specificat corect este vorba de astrometrie.
Ca software pot sa recomand (in cazul astronomiei) programul Astrometrica al lui Raab
http://www.astrometrica.at/

Numai bine
Emil

-----------------------------------
valy
20 Mai 2010 18:33


-----------------------------------
Nu e neaparat legata de astro, ci mai degraba vroiam o solutie mai generala, pentru orice tip de imagini. 
Insa intre timp am cam renuntat la abordarea unui algoritm automat, preferand sa abordez metoda manuala.
Multumesc de idei.

-----------------------------------
starbuck
03 Sep 2012 22:55


-----------------------------------
Daca este vorba de o succesiune de imagini (tipic imagini astro) in care doar putine elemente isi schimba pozitia (identificare sateliti, asteroizi, comete) in primul rand ai nevoie de o pre-procesare a imaginii in vederea extragerii elementelor de baza, cel mai uzual ceea ce se numeste binarizarea imaginii (egalizare histograma + conversie monocroma). Apoi urmeaza o detectie de contururi care trebuie sa fie foarte performanta dispunand si de eliminarea pixelilor paraziti pe baza unor algoritmi de convolutie specifici. Aici este munca cea mai grea de altfel.
Pasii de mai sus se pot simula si cu action-uri in Photoshop.

Aceasta etapa este necesara pentru normalizarea imaginilor deoarece nici o imagine nu seamana cu cealalta din cauza raportului diferit semnal/zgomot.

Ultimul pas il reprezinta suprapunerea imaginilor ca si layere in Photoshop in modul Difference si obtii elementele miscate. Pentru alti parametri vectoriali este necesara o abordare la nivel de programare a unei aplicatii care foloseste tehnicile mai sus mentionate si care extrage parametrii doriti pe baza prelucrarii statistice de specialitate. E bataie mare de cap ce vrei tu asa la modul general :) ...Este necesara o orientare pe un anumit tip de imagini in functie de ce vrei, altfel spus sa stii ce cauti.

-----------------------------------
valy
03 Sep 2012 23:30


-----------------------------------
Si totusi exista softuri de facut panoramice, se bazeaza pe extragerea de puncte cheie din imagini si lipirea cadrelor prin suprapunerea punctelor cheie identice din imagini diferite. Si merge cam indiferent de imagine, fara sa stie in prealabil ce contine imaginea.
Evident ca daca stii ca imaginea contine o stea alba pe fond negru o simpla histograma pe X si Y iti da pozitia.

-----------------------------------
starbuck
03 Sep 2012 23:39


-----------------------------------
Cam ce iti spuneam eu:
http://books.google.ro/books?id=Td7b0lKum-AC&pg=PA196&lpg=PA196&dq=image+processing+key+point+extraction&source=bl&ots=lNO5kb5rg4&sig=2sAK2TppznUG0exzs2XkXse3pfY&hl=ro#v=onepage&q=image%20processing%20key%20point%20extraction&f=false

Exemple de alte abordari: :geek: 

http://research.mercubuana.ac.id/proceeding/D-16.pdf
http://cvlab.epfl.ch/~lepetit/papers/ozuysal_pami10.pdf

Normal ca exista softuri de panoramare dar iti prezinta doar rezultatul final.
Tu in principiu vrei sa determini o matrice de puncte cheie a unei imagini. Primul link mi se pare cel mai abordabil si mai orientat pe problema descrisa.
Un demo de soft educational pe tema asta gasesti aici:
http://www.cs.ubc.ca/~lowe/keypoints/

-----------------------------------
valy
04 Sep 2012 00:11


-----------------------------------
Primul link suna promitator :). Multumesc.

-----------------------------------
starbuck
04 Sep 2012 00:22


-----------------------------------
O alta gama importanata de aplicatii la ceea ce cauti tu este orientarea robotilor in spatiul 3D care se bazeaza pe aceasta tehnica de extragere a punctelor cheie dintr-o imagine. La tine difera doar aria de aplicatie:

http://students.iitk.ac.in/roboclub/data/tutorials/Elementary%20Introduction%20to%20Image%20Processing%20Based%20Robots.pdf

Cred ca este exact ce ai nevoie, inclusiv descrierea binarizarii de care-ti ziceam ;) ...

-----------------------------------
real32
04 Oct 2012 17:01


-----------------------------------
Domeniul procesarii de imagine este foarte larg si interesant. Un mic exemplu de prelucrare a imaginilor amprentelor din domeniul masuratorilor biometrice. In final se compara doar un numar limitat de valori numerice care descriu elementele geometrice ale amprentelor. Asa se explica numarul foarte mare al amprentelor care pot fi comparate intr-un interval foarte scurt.

http://www.griaulebiometrics.com/page/en-us/innovation

-----------------------------------
real32
10 Oct 2012 10:09


-----------------------------------
Un alt exemplu ar fi procesarea de imagine ce poate fi utilizata in functionarea unor semafoare inteligente.

-----------------------------------
valy
10 Oct 2012 13:38


-----------------------------------
Multumesc. In principiu e mai simplu de dezvoltat o tehnica pe cazuri particulare, vezi amprentele, unde cam stii ce sa cauti. Totusi nu pot sa nu ma gandesc la softurile de facut panoramice/mozaicuri, care, indiferent de imagine, reusesc sa identifice puncte "cheie", si, mai mult, reusesc sa le puna in corelatie cu puncte cheie similare din cadre diferite. Si asta indiferent de rotatie, pozitie, expunere, etc. Are totusi limite, la un moment dat am facut o panoramica din cateva poze de interior, cu un perete gol (avea detalii fine dar prea fine), nu s-a descurcat.
