Orodha ya maudhui:

Kuhesabu kitu cha Raspberry Pi: Hatua 5
Kuhesabu kitu cha Raspberry Pi: Hatua 5

Video: Kuhesabu kitu cha Raspberry Pi: Hatua 5

Video: Kuhesabu kitu cha Raspberry Pi: Hatua 5
Video: Cheki jama alivyo paa na ndege ya kichawi utashangaa 2024, Julai
Anonim
Kuhesabu kitu cha Raspberry Pi
Kuhesabu kitu cha Raspberry Pi

Maono ya kompyuta, bila shaka, ni jambo la kupendeza! Kutumia hii, kompyuta hupata uwezo wa "kuona" na kuhisi mazingira bora karibu, ni nini kinaruhusu utengenezaji wa programu ngumu, muhimu na nzuri. Maombi kama vile kugundua uso na kutambua, ufuatiliaji wa vitu na kugundua vitu ni zaidi na zaidi katika shughuli zetu za kila siku, shukrani kwa maendeleo ya maono ya kompyuta.

Kwa kuzingatia jinsi mifumo ya maono ya kompyuta na vifaa vinavyoendelea na kupatikana, programu iliyoelezewa katika kifungu hiki inafaa vizuri: kutumia Raspberry PI rahisi na mfumo wa maono ya kompyuta bila malipo na chanzo wazi inayoitwa OpenCV kuhesabu vitu kwenye harakati, haswa ni kiasi gani vitu vinaingia na kutoka kwa ukanda fulani unaofuatiliwa.

Hatua ya 1: Kupata Kina: Je! Vitu vya Harakati vinaweza Kugunduliwa katika Mkondo wa Picha?

Kupata Kina: Jinsi Harakati ya Vitu Inavyoweza Kugunduliwa katika Mkondo wa Picha?
Kupata Kina: Jinsi Harakati ya Vitu Inavyoweza Kugunduliwa katika Mkondo wa Picha?

Sasa ni wakati wa kuingia ndani zaidi katika mambo ya usindikaji wa picha:

jinsi ya kupata picha za mkondo wa wavuti na kugundua kuwa kuna kitu kimehamia hapo

Inayo hatua tano:

Hatua ya 1: Kuangazia kitu katika harakati

Kama inavyofafanuliwa katika fizikia ya zamani, rejeleo ni muhimu kudhoofisha kwamba kitu kinasonga au ikiwa kimesimama. Hapa, kuamua kuwa kuna kitu kimehamia, ni sawa kabisa: kila fremu iliyokamatwa ya kamera ya wavuti italinganishwa na fremu ya kumbukumbu. Ikiwa kitu ni tofauti, kuna kitu kimehamishwa. Ni rahisi kama inavyosikika.

Sura hii ya kumbukumbu inapaswa kunaswa katika hali nzuri zaidi (hakuna kitu kinachosonga, kwa mfano). Katika ulimwengu wa usindikaji wa picha, ulinganisho huu kati ya fremu iliyonaswa na fremu ya kumbukumbu inajumuisha mbinu inayoitwa kutoa nyuma. Usafirishaji wa nyuma unajumuisha habari halisi ya rangi ya pikseli-kwa-pikseli kutoka kwa fremu iliyonaswa na fremu ya kumbukumbu. Kwa hivyo, picha inayosababishwa kutoka kwa kifungu hiki itaangazia / kuonyesha kwa maelezo zaidi tu ni nini tofauti kati ya fremu hizi mbili (au, nini kimehamisha / kimekuwa na harakati) na kila kitu kingine kitakuwa nyeusi kwenye picha (rangi ya thamani ya sifuri kwenye kijivu pikseli -dogo). Muhimu: taa ya taa na ubora wa picha ya kamera ya wavuti iliyopigwa (kwa sababu ya ubora wa sensorer za kukamata) zinaweza kutofautiana kidogo kutoka kwa fremu hadi fremu. Inamaanisha kuwa "sehemu sawa" kutoka kwa fremu ya rejeleo na fremu zingine hazitakuwa nyeusi kabisa baada ya kutoa nyuma. Licha ya tabia hii, hakuna athari mbaya katika hatua zifuatazo usindikaji wa picha katika mradi huu.

Ili kupunguza muda wa usindikaji wa picha, kabla ya kufanya utaftaji wa nyuma, fremu iliyonaswa na fremu ya kumbukumbu hubadilishwa kuwa picha ya kijivu. Lakini.. kwanini? Ni suala la ufanisi wa kompyuta: picha inayoonyesha rangi nyingi (picha ya rangi) ina habari tatu kwa pikseli: Vipengele vya rangi nyekundu, Bluu na Kijani (kiwango cha zamani lakini cha dhahabu cha RGB). Kwa hivyo, kihesabu, kila pikseli inaweza kuelezewa kama safu ya thamani tatu, kila moja inawakilisha sehemu ya rangi. Kwa hivyo, kuipanua kwa picha nzima, picha ya mwisho itakuwa mchanganyiko wa vitu vitatu vya picha: Vipengele vya picha Nyekundu, Bluu na Kijani.

Ili kuichakata, kazi nyingi inahitajika! Walakini, katika picha za kijivu, kila pikseli ina habari moja tu ya rangi. Kwa hivyo, usindikaji wa picha ya rangi ni polepole mara tatu kuliko kesi ya picha ya kijivu (angalau mara tatu, kulingana na mbinu gani inayohusika). Na kuna zaidi: kwa madhumuni fulani (kama mradi huu), chagua rangi zote sio lazima au sio muhimu hata kidogo. Kwa hivyo, tulifikia hitimisho: matumizi ya picha za kijivu hupendekezwa sana kwa kusudi la usindikaji wa picha. Baada ya uhamisho wa chini chini, ni muhimu kutumia kichungi cha Blur Gaussian.

Kichungi cha Blur cha Gaussian kinachotumiwa juu ya picha iliyoondolewa nyuma hutengeneza mtaro wote wa kitu kinachotambulika kinachogunduliwa. Kwa hakika, itakuwa msaidizi katika hatua zifuatazo za usindikaji wa picha.

Hatua ya 2: Kuunganisha

Kuunganisha
Kuunganisha

Katika hali nyingi za usindikaji wa picha, upeanaji ni karibu hatua ya lazima baada ya kuonyesha vitu / wahusika kwenye picha. Sababu: katika picha ya binary, kila rangi ya pikseli inaweza kudhani maadili mawili tu: 0x00 (nyeusi) au 0xFF (nyeupe). Hii inasaidia sana usindikaji wa picha ili kuhitaji hata chini ya "nguvu ya kompyuta" kutumia mbinu za usindikaji wa picha katika hatua zifuatazo. Binarization inaweza kufanywa kulinganisha kila rangi ya pikseli ya picha ya kijivu na kizingiti fulani. Ikiwa thamani ya rangi ya pikseli ni kubwa kuliko kizingiti, rangi hii ya pikseli itachukua dhamana nyeupe (0xFF), na ikiwa thamani ya rangi ya pikseli iko chini kuliko kizingiti, rangi hii ya pikseli itachukua thamani nyeusi (0x00). Kwa bahati mbaya, chaguo la thamani ya kizingiti sio rahisi sana kufanya. Inategemea mambo ya mazingira, kama hali ya taa. Chaguo lisilo sahihi la kizingiti cha thamani linaweza kuharibu hatua zote zaidi. Kwa hivyo, ninakushauri sana urekebishe kizingiti katika mradi wa kesi yako kabla ya vitendo vyovyote. Thamani hii ya kizingiti lazima ihakikishe kuwa kitu kinachohamia kinaonyesha kwenye picha ya binary. Kwa upande wangu, baada ya chaguo la kutosha la kizingiti, husababisha kile unachokiona kwenye sura ya 5.

Kielelezo 5 - picha ya binary

Hatua ya 3: Punguza

Hadi sasa, iliwezekana kugundua vitu vinavyohamia, kuangazia na kutumia upeanaji, ni nini kinasababisha picha wazi ya kitu kinachohamia (= picha wazi ya kitu hicho kwa madhumuni ya usindikaji wa picha). Maandalizi ya kuhesabu kitu yamekamilika. "Karibu" hapa inamaanisha kuwa kuna marekebisho mazuri ya kufanya kabla ya kuendelea. Kwa wakati huu, kuna nafasi halisi ya uwepo wa "mashimo" kwenye vitu (misa nyeusi ya saizi kwenye kitu nyeupe kilichoangaziwa). Mashimo haya yanaweza kuwa chochote, kutoka kwa hali fulani ya taa hadi sehemu fulani ya umbo la kitu. Mara tu mashimo yanaweza "kutoa" vitu vya uwongo ndani ya vitu halisi (kulingana na ukubwa na mahali zilipo), matokeo ya uwepo wa mashimo kwenye picha inaweza kuwa mbaya kwa kuhesabu vitu. Njia ya kuondoa mashimo haya ni kutumia mbinu ya usindikaji picha inayoitwa Dilate. Tumia hii na mashimo huenda.

Hatua ya 4: Utafutaji wa Contours (na Centroids zake)

Utafutaji wa Contours (na Centroids zake)
Utafutaji wa Contours (na Centroids zake)

Kwa wakati huu, tuna vitu vilivyoangaziwa, hakuna mashimo ndani yake na tayari kwa nini kitafuata: utaftaji wa mtaro (na sentimita zake). Kuna rasilimali katika OpenCV ili kugundua mtaro kiatomati, lakini mtaro unaogunduliwa lazima uchaguliwe kwa busara (kuchukua kitu halisi au vitu tu). Kwa hivyo, vigezo vya kugundua mtaro ni eneo la kitu, kilichopimwa kwa saizi². Ikiwa mtaro una eneo kubwa kuliko kikomo (kimeundwa katika programu), kwa hivyo lazima izingatiwe kama kitu halisi kuhesabiwa. Chaguo la eneo / vigezo vya eneo hili ni muhimu sana, na chaguo mbaya hapa linamaanisha hesabu zisizofaa. Lazima ujaribu maadili ya mipaka ya eneo na uangalie ni nini kinachofaa matumizi yako. Usijali, kikomo hiki sio ngumu kupata / kurekebisha. Mara vitu vyote kwenye picha vimechaguliwa, hatua inayofuata ni kuchora retangle juu yake (retangle hii lazima iwe na kitu kizima kilichogunduliwa ndani yake). Na kitovu cha mstatili huu ni…. kitu centroid! Labda unafikiria "Je! Kuna shida gani na hii centroid?", Sawa? Jibu lako hapa: haijalishi umbo la kitu ni kubwa au jinsi gani, harakati zake ni sawa na sentimita. Kwa maneno mengine: hatua hii rahisi inayoitwa centroid inawakilisha harakati zote za kitu. Inafanya kufanya kuhesabu iwe rahisi sana sasa, sivyo? Tazama picha hapa chini (kielelezo 6), ambapo sentimita ya kitu inawakilishwa kama alama nyeusi.

Hatua ya 5: Harakati ya Centorid na Kuhesabu vitu

Mwisho wa mwisho: linganisha uratibu wa kitu cha sentimita kwa uratibu wa mistari ya kuingilia na kutoka na utumie hesabu ya kuhesabu iliyoelezwa hapo awali. Na kutakuwa na kuhesabu vitu vinavyohamia!

Kama inavyoonyeshwa mwanzoni mwa chapisho hili, huu ndio mradi unatumika:

Ilipendekeza: