Мазмуну:

Raspberry Pi объектилерин эсептөө: 5 кадам
Raspberry Pi объектилерин эсептөө: 5 кадам

Video: Raspberry Pi объектилерин эсептөө: 5 кадам

Video: Raspberry Pi объектилерин эсептөө: 5 кадам
Video: Raspberry Pi Explained in 100 Seconds 2024, Июль
Anonim
Raspberry Pi объектилерин эсептөө
Raspberry Pi объектилерин эсептөө

Компьютердин көрүүсү, албетте, фантастикалык нерсе! Муну колдонуп, компьютер айлана -чөйрөнү жакшыраак көрүү жана көрүү жөндөмүнө ээ болот, бул татаал, пайдалуу жана сонун колдонмолорду иштеп чыгууга мүмкүндүк берет. Жүздү таануу жана таануу, объектилерди байкоо жана объектилерди аныктоо сыяктуу тиркемелер компьютердин көрүү жетишкендиктеринин аркасында биздин күнүмдүк иш-аракеттерибизде көбүрөөк орун алууда.

Компьютердин көрүү алкактары жана инструменттери канчалык өнүккөн жана жеткиликтүү экенин эске алганда, бул макалада сүрөттөлгөн колдонмо жакшы дал келет: жөнөкөй Raspberry PIди жана объекттерди кыймылда саноо үчүн OpenCV деп аталган акысыз жана ачык булактуу компьютердин көрүү алкагын колдонуу, тагыраагы канча объектилер белгилүү бир көзөмөлгө алынган зонага кирип -чыгат.

1 -кадам: Тереңирээк: Сүрөт агымында объекттердин кыймылы кантип аныкталат?

Тереңирээк маалымат алуу: Объекттердин кыймылы сүрөт агымында кантип аныкталат?
Тереңирээк маалымат алуу: Объекттердин кыймылы сүрөт агымында кантип аныкталат?

Эми сүрөт иштетүүчү нерселерге тереңирээк кирүү убактысы келди:

кантип вебкамерадан агымдын сүрөттөрүн алса болот жана ал жакка бир нерсе көчүп кеткенин аныктаса болот

Ал беш кадамдан турат:

1 -кадам: Кыймылдагы объектти бөлүп көрсөтүү

Классикалык физикада аныкталгандай, бир нерсенин жылып баратканын же кыймылсыз тургандыгын билүү үчүн шилтеме керек. Бул жерде бир нерсе жылганын аныктоо үчүн, бул дээрлик бирдей: ар бир веб -камера агымы тартылган кадр шилтеме алкагына салыштырылат. Эгерде башка нерсе болсо, анда бир нерсе жылдырылган. Бул жөнөкөй эле.

Бул таяныч кадр эң идеалдуу шарттарда тартылышы керек (мисалы, эч нерсе кыймылдабайт). Сүрөт иштетүү дүйнөсүндө, алынган кадр менен шилтеме алкагынын ортосундагы мындай салыштыруу фондук алып салуу деп аталган техникадан турат. Фондук субтрация алынган кадрдан жана шилтеме алкагынан пикселден пикселге чейинки түстүү маалыматты алып салуудан турат. Ошентип, бул процесстин натыйжасында пайда болгон сүрөт бул эки фреймдин ортосунда кандай айырма бар экендигин (же кыймылга келген / кыймылга келгенди) көбүрөөк көрсөтөт / көрсөтөт жана калганынын баары сүрөттө кара болот (боз түстөгү нөлдүк маанинин түсү) -масштабдуу пиксел). Маанилүү: жарыктандыруучу провокациялар жана тартылган вебкамеранын сапаты (тартуу сенсорлорунун сапатынан) кадрдан кадрга бир аз айырмаланышы мүмкүн. Бул шилтеме алкагынан жана башка кадрлардан "бирдей бөлүктөр" фондук алып салуудан кийин толугу менен кара болбойт дегенди билдирет. Бул жүрүм -турумуна карабастан, бул долбоордун кийинки кадамдарында сүрөттү иштетүүдө олуттуу кесепеттер жок.

Сүрөттү иштетүү убактысын азайтуу үчүн, фондук субтрация кылардан мурун, алынган кадр жана маалымдама фрейм масштабдуу сүрөткө айландырылат. Бирок.. эмнеге? Бул эсептөө эффективдүүлүгүнүн көйгөйү: бир нече түстөрдү (түстүү сүрөт) көрсөткөн сүрөт пикселде үч маалыматка ээ: Кызыл, Көк жана Жашыл түстүү компоненттер (эски, бирок алтын RGB стандарты). Ошентип, математикалык түрдө, ар бир пикселди үч түстүү массив катары аныктаса болот, алардын ар бири түс компонентин билдирет. Ошентип, аны бүтүндөй сүрөткө жайып, акыркы сүрөт чынында үч сүрөттүн компоненттеринин аралашмасы болот: Кызыл, Көк жана Жашыл сүрөт компоненттери.

Аны иштетүү үчүн көп эмгек талап кылынат! Бирок боз масштабдуу сүрөттөрдө ар бир пикселде бир гана түстүү маалымат бар. Ошентип, түстүү сүрөттү иштетүү боз масштабдагы сүрөт корпусуна караганда үч эсе жайыраак (кайсы техника тартылганына жараша үч эседен кем эмес). Жана дагы көп нерселер бар: кээ бир максаттар үчүн (бул долбоор сыяктуу), бардык түстөрдү иштетүү таптакыр кереги жок же маанилүү эмес. Ошондуктан, биз мындай жыйынтыкка келдик: боз масштабдуу сүрөттөрдү колдонуу сүрөттү иштетүү үчүн абдан сунушталат. Фонду кошкондон кийин, Гаусс Булганыч чыпкасын колдонуу керек.

Gaussian Blur чыпкасы фондо алынып салынган сүрөттө колдонулуп жаткан объектинин бардык контурларын тегиздейт. Албетте, бул сүрөт иштетүүнүн кийинки кадамдарында жардамчы болот.

2 -кадам: бинаризация

Binarization
Binarization

Сүрөттү иштетүүнүн көпчүлүк учурларында, бинаризация сүрөттөгү объекттерди / мүнөздөмөлөрдү бөлүп алгандан кийин дээрлик милдеттүү кадам болуп саналат. Себеп: экилик сүрөттө, ар бир пиксел түсү эки маанини гана кабыл алат: 0x00 (кара) же 0xFF (ак). Бул кийинки кадамдарда сүрөттү иштетүү ыкмаларын колдонуу үчүн андан да аз "эсептөө күчүн" талап кылуу үчүн сүрөттү иштетүүгө чоң жардам берет. Бинаризация боз масштабдуу сүрөттүн ар бир пикселдик түсүн белгилүү бир босогого салыштырып жасалышы мүмкүн. Эгерде пиксель түсүнүн мааниси босогодон чоң болсо, бул пиксел түсү ак маананы (0xFF), ал эми пиксель түсүнүн мааниси босогодон төмөн болсо, бул пиксель түсү кара маанини (0x00) кабыл алат. Тилекке каршы, босого маанини тандоо оңой эмес. Бул жарык шарттары сыяктуу айлана -чөйрөнүн факторлоруна көз каранды. Босогонун туура эмес тандалышы бардык кадамдарды бузушу мүмкүн. Ошентип, мен сизге мындан аркы аракеттерден мурун сиздин ишиңиз үчүн долбоордун босогосун кол менен тууралоону сунуштайм. Бул босого мааниси кыймылдуу объект бинардык сүрөттө көрсөтүлүшүн камсыздашы керек. Менин учурда, босогонун адекваттуу тандоосунан кийин, 5 -сүрөттө көргөнүңүзгө алып келет.

Figure 5 - бинардык сүрөт

3 -кадам: Дилат

Ушул убакка чейин, кыймылдуу объектилерди аныктоо, аларды бөлүп көрсөтүү жана бинаризацияны колдонуу мүмкүн болгон, анын натыйжасында кыймылдуу объекттин абдан ачык сүрөтү пайда болот (= сүрөттү иштетүү үчүн объекттин абдан ачык сүрөтү). Объекттерди саноого даярдык дээрлик бүткөрүлдү. Бул жердеги "БААРЫ" - бул алдыга жылардан мурун бир нече жакшы тууралоолор бар экенин билдирет. Бул жерде объектилерде "тешиктердин" болушунун реалдуу мүмкүнчүлүктөрү бар (ак түстөгү объектке пикселдердин кара массасы). Бул тешиктер кандайдыр бир нерсе болушу мүмкүн, өзгөчө жарык шарттарынан объект формасынын кээ бир бөлүгүнө чейин. Тешиктер реалдуу объектилердин ичинде жалган нерселерди "өндүрө" баштагандан кийин (алардын чоңдугуна жана жайгашкан жерине жараша), сүрөттөгү тешиктердин болушунун кесепеттери объектилерди эсептөө үчүн катастрофалык болушу мүмкүн. Бул тешиктерди жок кылуунун бир жолу - Dilate деп аталган сүрөт иштетүүчү техниканы колдонуу. Муну колдонуңуз жана тешиктер кетет.

4 -кадам: Контурларды издөө (жана анын центроиддери)

Контурларды издөө (жана анын центроиддери)
Контурларды издөө (жана анын центроиддери)

Бул жерде бизде баса белгиленген объекттер бар, анын ичинде тешиктер жок жана кийинки нерсеге даяр: контурларды издөө (жана анын центроиддери). OpenCVде контурларды автоматтык түрдө аныктоо үчүн ресурстар бар, бирок табылган эсептегичтер акылдуулук менен тандалышы керек (чыныгы объектти же объекттерди гана тандоо үчүн). Ошентип, контурларды аныктоо критерийлери объекттин аянты болуп саналат, пиксель² менен өлчөнөт. Эгерде контурдун чеги жогору болсо (программалык камсыздоодо конфигурацияланган), андыктан ал чыныгы объект катары эсептелиши керек. Бул аймактын чегин/критерийлерин тандоо абдан маанилүү жана бул жерде туура эмес тандоо туура эмес эсептөөлөрдү билдирет. Сиз кээ бир аймактын баалуулуктарынын чектерин сынап көрүшүңүз керек жана колдонууңузга ылайыктуусун текшеришиңиз керек. Кабатыр болбоңуз, бул чекти табуу / тууралоо оңой эмес. Сүрөттөгү бардык объекттер тандалгандан кийин, кийинки кадам - ага бурама тартуу (бул бурама анын ичинде табылган бүтүндөй объектти камтышы керек). Жана бул тик бурчтуктун борбору…. объект центроид! Балким, "бул центроиддин эмне кереги бар?" Деп ойлоп жаткандырсыз, туурабы? Бул жерде сиздин жообуңуз: нерсенин формасы канчалык чоң же кандай экени маанилүү эмес, анын кыймылы центроиддикиндей. Башка сөз менен айтканда: centroid деп аталган бул жөнөкөй чекит объектинин бардык кыймылын билдирет. Бул азыр саноону абдан жөнөкөй кылат, туурабы? Төмөндөгү сүрөттү караңыз (6 -сүрөт), мында объекттин центроиди кара чекит катары көрсөтүлгөн.

5 -кадам: Центориддин кыймылы жана объекттерди саноо

Чоң финал: объекттин центроиддик координаттарын кирүү жана чыгуу сызыктарынын координаттарына салыштырып, мурда сүрөттөлгөн эсептөө алгоритмин колдонуңуз. Жана жылып бара жаткан объектилерди санау болады!

Бул билдирүүнүн башында көрүнүп тургандай, бул жерде долбоор иштеп жатат:

Сунушталууда: