Miradi ya Maono ya Kompyuta
Kuhusu
Hazina hii inaonyesha miradi yote ya kuandika programu (maabara) ambayo Mehmet na Jean walifanya walipokuwa wamejiandikisha katika CSCI437 wakati wa muhula wa Kuanguka 2020 katika Colorado School of Mines, ikifunika kipindi kutoka 28 Agosti, 2020, hadi 14 Desemba, 2020. Maabara hizi, ambazo zilitolewa jukwaa kamili la kujifunzia Python, OpenCV, na dhana za msingi za maono ya kompyuta.
Kuhusu Darasa
Niliichukua Utangulizi wa Maono ya Kompyuta (CSCI437) wakati wa muhula wa Kuanguka 2020. Wakati huo, Dr. William Hoff na Dr. Tom Williams walifundisha darasa. CSCI437. Hapa kuna maelezo rasmi ya darasa la CSCI437:
(I) Computer vision is the process of using computers to acquire images, transform images, and extract symbolic descriptions from images. This course provides an introduction to this field, covering topics in image formation, feature extraction, location estimation, and object recognition. Design ability and hands-on projects will be emphasized, using popular software tools. The course will be of interest both to those who want to learn more about the subject and to those who just want to use computer imaging techniques. Must be Senior level standing. 3 hours lecture; 3 semester hours. Prerequisite: (MATH201 or MATH334 or EENG311),and,MATH332,and,(CSCI200 or CSCI261).
Mikopo
Kuna skripti za Python na/au vipande vya msimbo vilivyotolewa na darasa la CSCI437 wakati wa mihadhara, katika slaidi, au kupitia Canvas. Darasa la CSCI437 linatolewa katika Colorado School of Mines. Maabara haya yalifanywa na washirika wafuatao:
- Jean Duong
- Mehmet Yilmaz
Maelezo ya Maabara
Maabara 1
Maabara 1 inalenga kwenye misingi ya kutumia OpenCV kwa Python. Washiriki wanatarajiwa kuandika programu ya Python inayosomea faili ya video, kuonyesha pointi nne zinazounda mraba kwenye kila fremu ya video, na kuiga mraba ukielea ndani ya umbali kwa kurekebisha kwa hatua uratibu Z wa kila nukta. Zaidi ya hayo, nambari ya fremu inapaswa kuonyeshwa kwenye kila fremu, na video ya mwisho yenye michoro iliyowekwa inapaswa kupakiwa kwa tathmini.
Maabara 2
Maabara 2 inahusu mabadiliko ya picha, hasa ikilenga mizunguko kuzunguka mhimili wa X, Y, na Z kwa kutumia kanuni ya “XYZ fixed angles”. Wanafunzi wanaombwa kuhesabu matrisi za mzunguko, kuhesabu matrisi za uongofu wa homojeni kwa mkao wa kamera, kuunda matrisi ya kalibresheni, na kuporojekta nukta kwenye picha ili kuunda kitu kilichojulikana kwa kutumia kazi ya line ya OpenCV. Maabara inasisitiza uelewa wa jiometri ya kamera na matrisi za uongofu katika maono ya kompyuta.
Maabara 3
Maabara 3 inahusu ulinganifu wa templeti, ambapo wanafunzi wanatakiwa kufuatilia templeti sub-image kupitia kila fremu ya faili ya sinema kwa kutumia normalized cross correlation. Kazi inajumuisha kumruhusu mtumiaji kuchagua templeti kutoka kwenye picha ya kwanza ya sinema, kufuatilia templeti hii katika picha zinazofuata, kuchora mstatili kuonyesha nafasi ya templeti kwenye kila picha, na kuunda faili la sinema la pato kuonyesha nafasi hizi. Wanafunzi wanahimizwa kujaribu templeti tofauti ili kuelewa ni ipi inaruhusu ufuatiliaji bora na kwa nini, na kujadili alama za muunganisho zilizotazamwa wakati mechi zimetambuliwa kwa usahihi.
Maabara 4
Maabara 4 inalenga sehemu za rangi kwa kutumia nafasi ya rangi ya HSV, mbinu iliyojadiliwa kwenye mihadhara kwa ufanisi wake katika kushughulikia picha za rangi. Wanafunzi wanatakiwa kutumia operesheni za kikomo kutenganisha pikseli za ishara ya kusimama kutoka kwenye picha zilizotolewa, kwa kutumia programu ya Python/OpenCV. Kazi inahitaji kupata thamani za kikomo ambazo zitambua vyema pikseli za ishara ya kusimama, kufanya operesheni za kimofolojia kusafisha matokeo, na kutuma picha zilizotenganishwa pamoja na programu ya Python na vigezo vilivyotumika vya kikomo na operesheni za kimofolojia.
Maabara 5
Maabara 5 inahusisha kazi ya kuweka muundo mpya wa picha katika eneo maalum la picha iliyopo kwa njia inayofanya uonyesha kwa usahihi. Mchakato huu, unaojulikana kama uingizwaji wa plane (plane replacement), unahitaji wanafunzi kutumia projective transform (homography) ili kuweka picha mpya kwenye eneo la mlingano la picha iliyopo. Maabara inasisitiza matumizi ya vitendo ya homography kubadilisha yaliyomo kwenye picha huku ikidumisha ukweli wa mtazamo. Wanafunzi wanatarajiwa kuwasilisha picha ya asili, picha iliyokuwa na muundo uliowekwa, picha iliyochanganywa, na programu yao ya Python kama sehemu ya uwasilishaji wa maabara.
Maabara 6
Maabara 6 inawaagiza wanafunzi kugundua na kuhesabu mkao wa lengo linalojumuisha mizunguko mitano yenye tofauti zenye mduara mzima (CCCs) katika picha. Kazi inahusisha kutumia OpenCV kugundua malengo ya CCC, kuyapanga kwa usahihi, kuhesabu mkao kwa kutumia OpenCV’s solvePnP() function, na kuchora vigae vya kuratibu na mkao kwenye picha. Maabara inasisitiza matumizi ya dhana kama kugundua lengo, makadirio ya mkao, na upangaji wa pato la kuona katika maono ya kompyuta.
Maabara 7
Maabara 7 inajikita katika utambuzi na ulinganishaji wa sifa za SIFT kati ya picha. Lengo ni kutambua mechi sahihi za sifa za SIFT kutoka kwenye picha moja hadi nyingine na kuchambua usahihi wa mechi hizi. Maabara inahusisha kutumia msimbo wa Python uliotolewa na picha kutoka kwenye seti ya data, kurekebisha vigezo vya algorithm ili kuimarisha utambuzi wa mechi, na kuhesabu vipimo vya precision na recall ili kutathmini utendaji wa mchakato wa ulinganishaji wa sifa. Wanafunzi wanatakiwa kuwasilisha programu yao ya Python na thamani zilizohesabiwa za precision na recall kwa vipimo tofauti vya vigezo.
Maabara 8
Maabara 8 inalenga utambuzi wa vitu kwa kutumia ulinganishaji wa sifa na upangaji wa uongofu wa affine kugundua na kuweka vitu kutoka kwenye picha ya mafunzo kwenye picha ya kuuliza. Maabara inahusisha kugundua kitu katika hali tofauti, kurekebisha nambari ya mechi za inlier ili kupunguza matokeo ya uwongo, na kuhesabu precision, recall, na accuracy ili kutathmini utendaji wa mfumo wa utambuzi wa vitu. Wanafunzi wanatarajiwa kurekebisha na kukimbia msimbo wa Python uliotolewa, kuchambua utendaji wa mfumo kwa hali tofauti, na kuwasilisha matokeo yao na msimbo uliobadilishwa.
Maabara 9
Maabara 9 inahusisha kuweka pointi za maelezo kwenye kitu ndani ya picha ya mafunzo na moja kwa moja kuonyesha pointi hizo kwa usahihi kwenye picha za kuuliza zinazofuata. Maabara hii inasisitiza uchimbaji wa sifa, ulinganishaji kwa kutumia jaribio la uwiano (ratio test) kuondoa mechi zisizoeleweka, kuendana kwa uongofu wa 2D affine kwa kutumia RANSAC kuondoa outliers, na kutekeleza uongofu kuhamisha pointi za maelezo kutoka kwenye picha ya mafunzo hadi picha za kuuliza. Kazi muhimu ni kurekebisha namba ya kikomo ya mechi za inlier ili kupata usawa kati ya matokeo ya uwongo na hasi, kwa lengo la kupata usahihi mkubwa katika kuainisha picha kwa usahihi.
Maabara 10
Maabara 10 imejitolea kutumia mabadiliko ya Hough kutafuta vipande vya mistari na kubaini seti za mistari zenye sambamba ndani ya picha. Inatumia Hough Transform ya probabilistic kupitia cv2.HoughLinesP() function ya OpenCV kutambua vipande vya mistari vinavyowakilishwa na endpoints zao. Maabara pia inahusisha kutambua vanishing points kwa kuchambua vektor za mwelekeo za vipande hivi vya mistari, ikilenga kuelewa mwelekeo wa mistari sambamba katika nafasi ya 3D kama zinavyoonekana kwenye uso wa picha wa 2D. Wanafunzi wanatakiwa kuchakata picha za majaribio ili kupata vipande vya mistari sambamba, kujaribu vigezo ili kuboresha utambuzi, na kuwasilisha matokeo yao pamoja na programu ya Python.
Vidokezo
- Utahitaji vifurushi vifuatavyo vya Python vya wahusika wa tatu ili kuendesha skiripti/maabara haya: cv2 & numpy.
- Baadhi ya maabara haya yanaweza kukuhitaji utumie toleo maalum la cv2. Kwa bahati mbaya, mahitaji hayakuandikwa, hivyo utalazimika kugundua hili mwenyewe. Ikiwa utaweza kuligundua au ukashikwa, tafadhali ripoti hilo kwenye fomu ya masuala.