Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.

Razlike

Slijede razlike između dviju inačica stranice.

Poveznica na ovu usporedbu

Starije izmjene na obje strane Starija izmjena
Novija izmjena
Starija izmjena
racfor_wiki:fdd:mjerenje_dimenzija_po_fotografiji [2022/05/24 16:05]
pdragojevic [Praktični primjer]
racfor_wiki:fdd:mjerenje_dimenzija_po_fotografiji [2024/12/05 12:24] (trenutno)
Redak 1: Redak 1:
 ===== Sažetak ===== ===== Sažetak =====
-Danas se može primjetiti ubrzani razvoj računalnog vida, što omogućava razne nove primjene. Jedna od tih primjena je mjerenje dimenzija objekata na forografiji. Primjenu ovakvih metoda imamo već dulje vrijeme, no sada to postaje automatizirano te prestaje potreba za ljudskim intervencijama. Klasičan primjer uporabe ove metode možemo vidjeti u svakoj kriminalističkoj seriji, gdje se objekti fotografiraju pored ravnala da se kasnije može odrediti njihova dimenzija. U ovom seminaru biti će opisan sličan postupak, gdje postoji referentni objekt čiju veličinu poznajemo i pomoću njega određujemo veličinu svih ostalih objekata na fotografiji. 
-===== Algoritam ===== 
-U ovom poglavlju opisan je algoritam za mjerenje dimenzija objekata na fotografiji. Kako bi odredili dimenzije objekata na fotografiji potreban nam je referentan objekt. Referentni objekt mora zadovoljavati sljedeća svojstva:  
  
-  - moraju biti poznate njegove dimenzije u stvarnome svijetu (unaprijed se odredi njegova veličina u nekoj mjernoj jedinici, npr. milimetrima).+U ovom seminaru objašnjen je jednostavan način kako odrediti dimenziju objekta na fotografiji. Prikazani algoritam kojim je to moguće ostvariti koristi referentni objekt koji se mora nalaziti na fotografiji, kako bi usporedili veličine na fotografiji i u stvarnosti. Ukratko je i opisan pokazni primjer koji koriste programsku knjižnicu OpenCV koja omogućava razne obrade fotografije. 
 +===== Uvod ===== 
 +Danas se može primjetiti ubrzani razvoj računalnog vida, što omogućava razne nove primjene. Jedna od tih primjena je mjerenje dimenzija objekata na forografiji. Primjenu ovakvih metoda postoji već dulje vrijeme, no sada su te metode automatizirane te prestaje potreba za ljudskim intervencijama. Klasičan primjer uporabe ove metode možemo vidjeti u svakoj kriminalističkoj seriji, gdje se objekti fotografiraju pored ravnala da se kasnije mogu odrediti njihove dimenzije. U ovom seminaru biti će opisan sličan postupak, gdje postoji referentni objekt čiju veličinu poznajemo i pomoću njega određujemo veličinu svih ostalih objekata na fotografiji. Također ukratko će se opisati programksa knjižnica OpenCV koja omogućava jednostavno rješavanje ovog problema. 
 +===== Algoritam za mjerenje dimenzija objekata na fotografiji ===== 
 +U ovom poglavlju opisan je algoritam za mjerenje dimenzija objekata na fotografiji. Kako bi se odredile dimenzije objekata na fotografiji potreban je referentan objekt. Referentni objekt mora zadovoljavati sljedeća svojstva:  
 + 
 +  - moraju biti poznate njegove dimenzije u stvarnome svijetu (unaprijed se odredi njegova veličina u nekoj mjernoj jedinici, npr. milimetrima, inči...).
   - mora biti lako identificiran, nalaziti se na unaprijed određenom mjestu na fotografiji (npr. skroz lijevi objekt na fotografiji) ili se razlikovati po boji/ obliku u odnosu na druge objekte.   - mora biti lako identificiran, nalaziti se na unaprijed određenom mjestu na fotografiji (npr. skroz lijevi objekt na fotografiji) ili se razlikovati po boji/ obliku u odnosu na druge objekte.
   - mora biti jednako udaljen od kamere kao i svi ostali objekti   - mora biti jednako udaljen od kamere kao i svi ostali objekti
  
-Nakon što se na fotografiji pronađe referentni objekt računaju se njegove dimenzije na fotografiji u odnosu na stvarne dimenzije. Na taj način sljedećom vrlo jednostavnom formulom određuje se koliko piksela je potebno za prikaz odabrane mjerne jedinice.+Nakon što se na fotografiji pronađe referentni objekt računaju se njegove dimenzije na fotografiji u odnosu na stvarne dimenzije. Na taj način sljedećom vrlo jednostavnom formulom određuje se koliko piksela je potrebno za prikaz odabrane mjerne jedinice.
  
-//piksela_po_milimetru = dimenzija_objekta_na_fotografiji / stvarna_dimenzija_objekta//+//piksela_po_mjernoj_jedinici = dimenzija_objekta_na_fotografiji / stvarna_dimenzija_objekta //
  
 Zatim kako bi se odredila dimenzija nekog nepoznatog objekta samo se primjeni ista formula no sada je nepoznanica stvarna_dimenzija_objekta: Zatim kako bi se odredila dimenzija nekog nepoznatog objekta samo se primjeni ista formula no sada je nepoznanica stvarna_dimenzija_objekta:
  
-//stvarna_dimenzija_objekta= dimenzija_objekta_na_fotografiji / piksela_po_milimetru //+//stvarna_dimenzija_objekta= dimenzija_objekta_na_fotografiji / piksela_po_mjernoj_jedinici  //
  
-===== OpenCV =====+Postoji i metoda mjerenja dimenzija objekata bez referentnog objekta. U tom sljučaju mora biti poznata udaljenost objekta od kamere i žarišna duljina leće. Do žarišne duljine može se jednostavno doći ako se zna kojom kamerom je fotografija fotografirana. U tom je slučaju omjer veličine objekta na fotografiji i žarišne udaljenosti leće jednak omjeru stvarne veličine objekta i udaljenosti objekta od leće. Iz te jednakosti može se jednostavno doći do veličine objekta na fotografiji pomoću sljedeće jednadžbe:
  
-Obradu fotografije vrlo je efikasno i jednostavno implementirati pomoću OpenCV biblioteke.+//stvarna_dimenzija_objekta = (dimenzija_objekta_na_fotografiji * udaljenost_objekta_do_leće) / žarišna_duljina_leće //
  
-OpenCV je programska knjižnica otvorenog koda za računalni vid i strojno učenje. OpenCV ima BSD licencu što omogućava široku uporabu korištenja te modificiranja koda.+===== OpenCV =====
  
 +Obradu fotografije vrlo je efikasno i jednostavno implementirati pomoću OpenCV programske knjižnice.
 +OpenCV je programska knjižnica otvorenog koda za računalni vid i strojno učenje. OpenCV ima BSD licencu što omogućava široku uporabu korištenja te modificiranja koda.
 OpenCV sadrži preko 2500 optimiziranih algoritama, što uključuje klasične kao i najsuvremenije algoritme računalnog vida i strojnog učenja. Ti algoritmi omogućavaju prepoznavanje lica, prepoznavanje gesti, prepoznavanje pokreta, identifikaciju objekata u prostoru te njihovo praćenje, prepoznavanje i obrađivanje 3D modela, obradu fotografije tako da iz skupa fotografija "lijepljenjem" tvorimo fotografiju scene itd. OpenCV sadrži preko 2500 optimiziranih algoritama, što uključuje klasične kao i najsuvremenije algoritme računalnog vida i strojnog učenja. Ti algoritmi omogućavaju prepoznavanje lica, prepoznavanje gesti, prepoznavanje pokreta, identifikaciju objekata u prostoru te njihovo praćenje, prepoznavanje i obrađivanje 3D modela, obradu fotografije tako da iz skupa fotografija "lijepljenjem" tvorimo fotografiju scene itd.
- 
 OpenCV je izvorno pisan u C++ a ima sučelje za Javu, Python, C++ i Matlab. API za ova sučelja mogu se naći u službenoj online dokumentaciji. OpenCv se može koristiti na Windowsu, Linuxu, Androidu i Mac OS-u. OpenCV je izvorno pisan u C++ a ima sučelje za Javu, Python, C++ i Matlab. API za ova sučelja mogu se naći u službenoj online dokumentaciji. OpenCv se može koristiti na Windowsu, Linuxu, Androidu i Mac OS-u.
- 
 Pomoću niza funkcionalnosti OpenCV-a moguće je implementirati i mjerenje dimenzija objekata na fotografiji. Pomoću niza funkcionalnosti OpenCV-a moguće je implementirati i mjerenje dimenzija objekata na fotografiji.
  
Redak 31: Redak 34:
 ===== Praktični primjer ===== ===== Praktični primjer =====
  
-Kako bi se pobliže prikazao algoritam iz prethodnog poglavlja u ovom poglavlju biti će opisana implementacija mjerenja dimenzija objekata na sljedećoj fotografiji. Na fotografiji se nalazi novčić koji predstavlja referenti objekt kao i dva objekta (autić i plišana ptica) čije su dimenzije nepoznate. Sve daljne obrade fotografije obavljene su korištenjem OpenCV programske knjižnice.+Kako bi se pobliže prikazao algoritam iz prethodnog poglavlja u ovom poglavlju biti će opisana implementacija mjerenja dimenzija objekata na fotografiji 1.1. Na fotografiji se nalazi novčić koji predstavlja referenti objekt kao i dva objekta (autić i plišana ptica) čije su dimenzije nepoznate. Sve daljne obrade fotografije obavljene su korištenjem OpenCV programske knjižnice. Izvorni kod korišten u ovom primjeru nalazi se [[https://ferhr-my.sharepoint.com/personal/pd51586_fer_hr/_layouts/15/onedrive.aspx?id=%2Fpersonal%2Fpd51586%5Ffer%5Fhr%2FDocuments%2Fobject%5Fdimension%2Ezip&parent=%2Fpersonal%2Fpd51586%5Ffer%5Fhr%2FDocuments&ga=1 | ovdje ]].
  
 {{ https://www.uniquesoftwaredev.com/wp-content/uploads/2019/06/pixel-to-size.jpg?350x230 |Fotografija prije obrade }} {{ https://www.uniquesoftwaredev.com/wp-content/uploads/2019/06/pixel-to-size.jpg?350x230 |Fotografija prije obrade }}
  
-Prvi korak obrade je pronalazak objekata na fotografiji. Nakon pretvorbe fotografije u crno bijelu, pozivom metode //cv2.Canny()// detektiraju se rubovi. Metoda //cv2.Canny()// to radi tako da traži gdje dolazi do velikih promjena gradijenata. Na sljedećoj fotografiji prikazana je detekcija rubova.+  1.1 Orginalna fotografija [3]   
 + 
 +Prvi korak obrade je pronalazak objekata na fotografiji. Nakon pretvorbe fotografije u crno bijelu, pozivom metode //cv2.Canny()// detektiraju se rubovi. Metoda //cv2.Canny()// to radi tako da traži gdje dolazi do velikih promjena gradijenata. Na fotografiji 1.2 prikazana je detekcija rubova.
  
 {{ https://www.uniquesoftwaredev.com/wp-content/uploads/2019/06/edge-detect.png?350x230 | Detektirani rubovi objekata }} {{ https://www.uniquesoftwaredev.com/wp-content/uploads/2019/06/edge-detect.png?350x230 | Detektirani rubovi objekata }}
  
-Nadalje je potrebno pronaći konture objekata. To se radi pozivom metode //cv2.findCounters()// koja prima prethodno detektirane rubove. Kada se pronađu konture zaključuje se da su to traženi objekt gdje se skroz lijevi odnosi na referentni. Sada je moguće izračunati broj piksela po mjernoj jedinici pomoću referentnog objekta. Pomoću te vrijednosti prolazeći kroz sve detektirane objekte i prema formuli iz prethodnog poglavlja računa se stvarna dimenzija objekta.+  1.2 Detektirani rubovi objekata [3]  
  
-Na sljedećoj fotografiji prikazan je konačni izlaz, gdje je pomoću pravokutnika označen svaki objekt zasebno kao i njegova visina i širina. +Nadalje je potrebno pronaći konture objekata. To se radi pozivom metode //cv2.findContours()// koja prima prethodno detektirane rubove. Kada se pronađu konture zaključuje se da su to traženi objekt gdje se skroz lijevi odnosi na referentni. Sada je moguće izračunati broj piksela po mjernoj jedinici pomoću referentnog objekta. Pomoću te vrijednosti prolazeći kroz sve detektirane objekte i prema formuli iz prethodnog poglavlja računa se stvarna dimenzija objekta. 
 + 
 +Na fotografiji 1.3 prikazan je konačni izlaz, gdje je pomoću pravokutnika označen svaki objekt zasebno kao i njegova visina i širina. 
  
 {{ https://www.uniquesoftwaredev.com/wp-content/uploads/2019/06/dawn-bounding.jpg?350x230 | Završni izlaz programa }} {{ https://www.uniquesoftwaredev.com/wp-content/uploads/2019/06/dawn-bounding.jpg?350x230 | Završni izlaz programa }}
  
 +  1.3 Završni izlaz programa [3]  
  
-===== Zaključak ===== 
  
 +===== Zaključak =====
  
 +Mjerenje dimenzija objekata na fotografiji postalo je lakše razvojem računalnog vida. Pojavile su se programske knjižnice kao što je OpenCV koje omogućavaju jednostavno rješavanje ovog problema. Da bi se objek na slici mogao izmjeriti, na slici se treba nalaziti referentni objekt poznatih dimenzija i mora biti na jednakoj udaljenosti od kamere kao objekt čije se dimenzije mjere. Praktičnim primjerom prikazano je mjerenje dimenzija autića i plišane igračke uz novčić kao referentni objekt. Često se u stvarnom svijetu trebaju riješiti složeniji problemi u kojima referentni objekt nije na istoj udaljenosti kao objek koji se mjeri. Tada postupak postaje dosta složeniji.
 ===== Literatura ===== ===== Literatura =====
  
Redak 60: Redak 69:
  
 [5] [[https://docs.opencv.org/4.x/|OpenCV documentation]] [5] [[https://docs.opencv.org/4.x/|OpenCV documentation]]
 +
 +
 +~~DISCUSSION~~
 +
  
  
racfor_wiki/fdd/mjerenje_dimenzija_po_fotografiji.1653408303.txt.gz · Zadnja izmjena: 2024/12/05 12:23 (vanjsko uređivanje)
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0