• Rezultati Niso Bili Najdeni

3.3.3.2 Procesiranje najdenih kontur

Za vsako konturo je najden najmanjši orisan štirikotnik v obliki točk njegovih vogalov (slika 3.17). Te so nato uporabljene za izris štirikotnika, če originalna kontura objekta ni preveč ovalna, drugače pa so uporabljene za iskanje centra objekta, da se lahko nariše nanj krožnico.

Metodologija raziskave

35 Slika 3.17: Na konturo škatle (A) in pločevinke barve (B) narisana popisana oblika

3.3.4 Procesiranje 3D slike

3.3.4.1 Simulirana globinska kamera

Podatki za globino simulirane kamere so shranjeni v linearnem vektorju [20], zato deluje iskanje želene točke po naslednji formuli:

centerId = int(mc[i].x) + msg->width * int(mc[i].y);

h_object = depths[centerId];

Program 3.4: Branje oddaljenosti objekta v simulaciji

Kjer je “h_object” spremenljivka v katero se shrani razdalja, “CenterId” željena točka,

“msg->width” širinska ločljivost območja interesa, ter koordinati objekta “mc[i].x” in

“mc[i].y”. Meritev vrne oddaljenost od kamere do objekta v metrih.

3.3.4.2 Realna globinska kamera

Za interpretacijo podatkov iz realne kamere je potrebna pretvorba točk objekta v 16 bitno nepodpisano celo število (ang. unsigned 16 bit integer):

h_object=(0.001*cv_depth->image.at<u_int16_t>

(int(mc[i].x+roiX0, int(mc[i].y)+roiY0);

Program 3.5: Branje oddaljenosti objekta realne kamere

Točkam objekta je potrebno dodati še vrednost mej območja interesa, saj so podatki shranjeni za celotno sliko in ne samo samo območje. Vrne oddaljenost od kamere do objekta v milimetrih kar je še potrebno pretvoriti v metre.

3.3.5 Določanje mer in lokacije objektov

Mere in lokacija objekta so bile interpretirana iz razmerja med slikovnimi točkami ter širino tekočega traku. Pretvorba je preračunana glede na širino tekočega traku ter širinsko ločljivostjo kamere. Ker je tekoči trak v simulaciji širok 1m in je kamera nastavljena tako, da njena celotna ločljivost pokrije ravno to širino je ena točka 1m/720px ali približno 1.4mm

36

in 0.3m/340px ali 0.9mm za pravo kamero. Mere so tako za pravokotnik preračunane z dvema enačbama (3.1) in (3.2). Na sliki 3.18 je grafično prikazano, kako so izbrane mere za preračun gaberitnih mer štirikotnega obrisa.

𝑙1 = √(𝑥0− 𝑥1)2+ (𝑦0− 𝑦1)2∙ 𝑝𝑟𝑒𝑡𝑣𝑜𝑟𝑏𝑎 (3.1) 𝑙2 = √(𝑥1− 𝑥2)2+ (𝑦1− 𝑦2)2 ∙ 𝑝𝑟𝑒𝑡𝑣𝑜𝑟𝑏𝑎 (3.2)

Slika 3.18: Slikovni prikaz računanja mer orisanega štirikotnika

Za radij krožnice pa so preračunane po enačbi (3.3). Grafični prikaz branja mer pa se vidi na sliki 3.19.

𝑟 =√(𝑥0− 𝑥1)2+ (𝑦0− 𝑦1)2

2 ∙ 𝑝𝑟𝑒𝑡𝑣𝑜𝑟𝑏𝑎 (3.3)

Slika 3.19: Slikovni prikaz računanja mer orisanega kroga

Lokacija objekta ima dodaten korak, ki je pomemben za pravilnost rezultatov. Ker imajo objekti višino in jih kamera gleda od zgoraj, bo to zamaknilo vidno stranico glede na pravo lokacijo na traku. To težavo se je odpravilo po principu na sliki 3.20:

Metodologija raziskave

37 Slika 3.20: Slikovni prikaz reševanja problema višine objekta v eni osi

Višina kamere ℎ glede na ravnino oziroma tekoči trak je konstantna, višina ℎ𝑜𝑏𝑗 in razvidna razdalja objekta od je koordinatnega središča 𝑙0 pa sta razbrani iz globinske ter 2D slike.

Pravo oddaljenost objekta je tako izračunana s pomočjo izreka o podobnosti trikotnikov (3.4).

𝑙obj= 𝑙0− 𝑙dif= 𝑙0−𝑙0

ℎ ∙ ℎobj (3.4) Za ta potek, je bilo potrebno koordinatno središče prestaviti iz zgornjega levega kota slike naravnost pod kamero, torej na sredino območja interesa.

38

4 Rezultati in diskusija

Program je bil narejen za simulacijsko okolje, in nato urejen tako, da je lahko uporabljal še posnetek iz resničnega življenja. Rezultati so bili dokaj natančni, do težav pa pride z globinskim posnetkom, saj ima včasih zelo pomankljive informacije (slika 4.1).

Slika 4.1: Globinski posnetek kartonaste škatle

Na sliki se vidi da čeprav je ploskev relativno ravna so še vedno luknje v objektu, kar pomeni, da za industrijski sistem ni dovolj konsistentna.

4.1 Prepoznavanje oblik

Programska oprema prepozna oblike jih očrta glede na število kotov. To pomeni, da prepozna, ko je objekt zelo okrogel in ga očrta s krožnico in če ni potem uporabi kvadrasto mejo. Ta funkcionalnost dela zelo dobro v simulaciji in iz posnetka.

4.2 Gabaritne mere in pozicija objektov

2D oblike so izračunane z relativno natančnostjo problem pa se pojavi pri interpretaciji globine. Prva težava je bila že to da je vidna oddaljenost od kamere do tekočega traku 0.77m medtem ko je izmerjena razdalja 0.82m.

Rezultati in diskusija

39 Preglednica 4.1: Primerjava izmerjenih vrednosti gabaritnih mer z izračunanimi

Objekti Izmerjeni gabariti Pri realnih objektih je prikaz višine zelo nekonsistenten vendar so na določenih objektih včasih bile vidne prave višinske vrednosti (slika 4.2). Objekta, ki sta občasno pravilno prebrala globino sta bila pločevinka barve ter kartonasta škatla

Slika 4.2: Pločevinka barve (A) in kartonasta škatla (B) na dveh lokacijah Vidi se, da je so globinske informacije včasih pravilne in včasih zelo napačne.

Drugi objekti pa niso nikoli imeli prepoznali pravilne višine (slika 4.3). Pri ulitkih je lahko težava že v tem da sta zelo nizka, vendar je v tem primeru težava nekje drugod saj je prebrana višina objekta nasprotno ekstremna, in je skoraj tako velika, kot je zaznana razdalja do tekočega traku.

40

Slika 4.3: Prebrana napačna višina rebrastega (A) in ploščatega ulitka (B), ter valjastega surovca (C)

Nasprotno temu, se program v simulacijskem okolju obnaša točno kot predvideno (slika 4.4), saj globinske informacije niso pomanjkljive, napake v 2D merah pa so delno pripisljive nizkemu razmerju med širinsko ločljivostjo in širino tekočega traku. To pomeni da je vsaka slikovna točka, ki je pretvorjena v metre tako velika, da je napaka opazna pri manjših objektih .

Slika 4.4: Testni objekti v simulaciji: Večkotni zeleni objekt (A), rdeči kvader (B)in moder valj (C)

Rezultati in diskusija

41 Pravilno so izračunane tudi koordinate. To je bilo preverjeno s pozicijo, ki jo ima zapisano simulator Gazebo za vsak model v simuliranem svetu (slika 4.5).

Slika 4.5: Rdeč kvader s prebrano pozicijo iz uporabniškega vmesnika (A) in preračunano pozicijo (B) iz simulacije

4.3 Težave pri zaznavanju

Če se objekti prekrivajo, lahko pride do nepravilnega prepoznavanja objekta, saj je prekrita njegova oblika (slika 4.6).

Slika 4.6: Prekrivanje objektov Krožnica valja je delno prekrita, in ni več prepoznana kot okrogla.

42

Slika 4.7: Dotikanje podobnih objektov

Problem nastane tudi če se dotikata dva objekta podobne barve, saj je rob manj prepoznaven in jih lahko šteje kot en objekt (slika 4.7). Ta učinek je manj očiten če sta objekta različne barve, seveda pa je problem prekrivanja še vedno prisoten (slika 4.8).

Slika 4.8: Dotikanje različnih objektov

Čeprav se objekta prilagodita skupaj, programska oprema še vedno prepozna da sta to različna objekta zaradi barvne razlike.

Zaključek

43

5 Zaključek

Zasnovana je bila programska oprema za zaznavanje oblike, mer ter lege različnih objektov na tekočem traku ter pripadajoč simulacijski sistem za testiranje. Delovanje je bilo omogočeno s pomočjo globinske kamere Intel D435 in odprtokodne knjižnice OpenCV, povezava med posameznimi segmenti pa z ogrodjem ROS. Ugotovljena so bila naslednja dejstva:

1) Programska oprema se odziva konsistentno v simulacijskem okolju. V skrajnem primeru je bila napaka pri meritvi velikosti objekta v 2D sliki 15% vendar je večino časa ta napaka znašala 0-4%.

2) 2D slika je procesirana v simulacijskem in realnem okolju s podobno natančnostjo, s tem da je največja napaka v realnem sistemu znašala samo 10%, kar je manj kot v simulaciji, zaradi boljšega razmerja med širino tekočega traku in ločljivostjo kamere.

3) Simulirani globinski podatki v okolju Gazebo so bili vedno točni.

4) Globinski podatki v realnem okolju, ki jih podaja kamera Intel D435, so pomankljivi in s tem naredijo celoten sistem nezanesljiv, ko pa je objekt bil dejansko zaznan je bila napaka 12%.

5) Če so objekti preveč skupaj jih bo razvita programska oprema zaznala kot en objekt.

Predlogi za nadaljnje delo

Najprej bi bilo potrebno ponovno umeriti globinsko kamero in preveriti, če bi to pomagalo pri nekonsistentnemu globinskem oblaku in če se bo tako zanesljivost zaznave v programu približala simulacijskim testom. Zanesljivost sistema bi lahko nadaljno izboljšali z ustreznejšo pozicijo kamere, kjer bi tekoči trak zavzemal večjo površino zajete slike, in bi s tem bila izboljšana ločljivost zaznave realnih objektov. Druga možnost za izboljšavo zanesljivosti je specifična osvetlitev, ki bi bila idealno osvetlitev od zadaj, saj ta naredi boljši pregled nad robovi objekta vendar je to neizvedljivo na tekočem traku, zato bi lahko izbrali osvetlitev v temnem polju, vendar ta lahko nebi bila ustrezna glede na obliko ter višino objektov ali pa direktno difuzno osvetlitev, ki pa bi delovala vredu vendar je njena postavitev nekoliko zahtevna. Za implementacijo na realnih primerih je potreben način kontrole

44

med njimi.

45

Literatura

[1] G. J. Agin: Computer Vision Systems for Industrial Inspection and Assembly. IEEE Computer Society (1980)

[2] V. Ondroušek, J. Kolomazník, M. Vytečka. 2014. International Conference on Mechatronics – Mechatronika: Recognition of the Objects on the Conveyor Belt Using Graph Matching Algorithms.

[3] O. Arif, M. Marshal, W. Daley, P. A Vela, J. Teizer, S. J. Ray, J. Stewart. 2010.

International Symposium on Automation and Robotics in Construction (ISARC):

Tracking and Classifying Objects on a Conveyor Belt Using Time-of-Flight Camera.

[4] Fanucovi SCARA roboti. Dostopno na: https://www.fanuc.eu/, ogled 28.7.2021 [5] Tehnike osvetljevanja. Dostopno na:

https://www.vision-doctor.com/en/illumination-techniques.html, ogled 2.8.2021

[6] Rešitev za združevanje RGB in globinske kamere podjetja Basler. Dostopno na:

https://www.baslerweb.com/en/products/cameras/3d-cameras/blaze-rgb-d/, ogled 26.07.2021

[7] B. G. Batchelor, P. F. Whelan: Intelligent Vision Systems for Industry. Springer-Verlag, London, 1997

[8] Slika RGB modela. Dostopno na: https://sl.wikipedia.org/wiki/Barvni_model_RGB, ogled 22.07.2021

[9] Slika HSV modela. Dostopno na: https://www.researchgate.net/figure/The-commonly-used-HSV-color-model_fig17_259353911, ogled 22.07.2021 [10] Slika tipala KMS. Dostopno na:

https://www.qualitydigest.com/sept00/html/scanning.html, ogled 22.07.2021 [11] Začetnikov vodnik za globino. Dostopno na:

https://www.intelrealsense.com/beginners-guide-to-depth/, ogled 23.07.2021 [12] Projektorji Intel D4xx kamer. Dostopno na:

https://dev.intelrealsense.com/docs/projectors, ogled 22.07.2021

[13] Slika oblaka točk torusa. Dostopno na: https://en.wikipedia.org/wiki/Point_cloud, ogled 2.8.2021

[14] ROS Vaje. Dostopno na: http://wiki.ros.org/ROS/Tutorials, ogled 28.7.2021

46 Media, Inc., Sebastopol, 2015

[16] Dokumentacija OpenCV. Dostopno na: https://docs.opencv.org/4.5.2/index.html, ogled 26.07.2021

[17] Meglenje slike. Dostopno na:

http://cad.lecad.fs.uni-lj.si/documents/seminarji/resitve/10.10/index.html, ogled 28.07.2021

[18] Intel Realsense D435 kamera. Dostopno na: https://www.intelrealsense.com/depth-camera-d435/, ogled 2.8.2021

[19] Paket “Two SCARA collaboration”. Dostopno na:

https://github.com/yangliu28/two_scara_collaboration, ogled 28.07.2021 [20] Dodajanje percepcije globine v ROS. Dostopno na:

https://www.stereolabs.com/docs/ros/depth-sensing/, ogled 26.07.2021