Мазмұны:

CribSense: контактісіз, бейнеге негізделген нәресте мониторы: 9 қадам (суреттермен)
CribSense: контактісіз, бейнеге негізделген нәресте мониторы: 9 қадам (суреттермен)

Бейне: CribSense: контактісіз, бейнеге негізделген нәресте мониторы: 9 қадам (суреттермен)

Бейне: CribSense: контактісіз, бейнеге негізделген нәресте мониторы: 9 қадам (суреттермен)
Бейне: CribSenseSetup 2024, Қараша
Anonim
CribSense: контактісіз, бейнеге негізделген нәресте мониторы
CribSense: контактісіз, бейнеге негізделген нәресте мониторы
CribSense: контактісіз, бейнеге негізделген нәресте мониторы
CribSense: контактісіз, бейнеге негізделген нәресте мониторы

CribSense-бұл бейнеге негізделген, контактісіз нәресте мониторы, оны өзіңіз жасай аласыз

CribSense-бұл Raspberry Pi 3 үлгісінде жұмыс істейтін бейнені ұлғайтудың C ++ қосымшасы, демалыс күндері сіз нәресте қозғалмай қалса, дабылды көтеретін бесікке арналған нәресте мониторын орната аласыз. Бонус ретінде барлық бағдарламалық жасақтаманы коммерциялық емес мақсаттарда қолдануға болады және оңай кеңейтіледі.

Бастапқы файлдар мен құжаттамасы бар толық репозиторийді https://github.com/lukehsiao/CribSense сайтынан табуға болады.

Біз CribSense өте қызықты деп ойласақ та, бұл шын мәнінде сертификатталған, қате қауіпсіздік құралы емес екенін есте ұстаған жөн. Яғни, жұмыс істеу үшін оны дұрыс конфигурациялау және жақсы басқарылатын орта болуы керек. Мысалы, егер ол жақсы калибрленбеген болса және/немесе бейнедегі орта бейнені үлкейтуге қолайлы болмаса, сіз оны пайдалана алмауыңыз мүмкін. Біз мұны Raspberry Pi сияқты шектеулі аппараттық құралдарда бейнелерді үлкейту сияқты есептеудің ауыр бағдарламалық қамтамасыз етуінің қаншалықты жақсы болатынын білу үшін қызықты жоба ретінде жасадық. Кез келген нақты өнім біз жасағаннан гөрі көп тестілеуді қажет етеді. Сонымен, егер сіз бұл жобаны қолдансаңыз, оны мәні бойынша қабылдаңыз: Pi -де бейне үлкейтуді қысқаша зерттеу.

Сізге не қажет болады:

Raspberry Pi + камера + конфигурация құралдары:

  • Raspberry Pi 3 моделі B.
  • 5V 2.5A Micro USB қуат көзі
  • Raspberry Pi NoIR камера модулі V2
  • MicroSD картасы (біз 16 ГБ 10 сынып картасын қолдандық)
  • Raspberry Pi камерасына арналған Flex кабелі (12 «)
  • 3,5 мм кірісі бар динамиктер
  • HDMI мониторы
  • USB пернетақтасы
  • USB тінтуір
  • [міндетті емес] Raspberry Pi Heatsink (егер сіз жылу туралы алаңдайтын болсаңыз, олардың біреуін Pi -ге жабыстыра аласыз)

Төмен жарықта жұмыс істеуге арналған IR жарықдиодты схемасы:

  • [3x] 1N4001 диодтары
  • 1 Ом, 1 Вт резистор
  • 1 Вт жарықдиодты жарық диоды
  • Жарық диодты Pi -ге қосуға арналған 2 сым
  • Пісіру темірі

Шасси:

  • Біздің шассиді басып шығару үшін 3D принтерге қол жеткізіңіз (ең аз құрастыру көлемі = 9,9 «L x 7,8» W x 5,9 «H).
  • Желім (желімнің кез келген түрі жұмыс істейді, бірақ прототипке ыстық желім ұсынылады).

1 -қадам: алғышарттар

Біздің қадамдық нұсқаулықты бастамас бұрын, сіз Raspbian-дің соңғы нұсқасын SD картасына орнатып, Pi-дің жұмыс істейтініне көз жеткізуіңіз керек. Камераға кірмес бұрын камера модулін қосу қажет.

2 -қадам: CribSense бағдарламалық жасақтамасын орнату

CribSense автоконф, libtool, OpenCV және libcanberra -ға, сондай -ақ қарапайым бағдарламалық құралдарға байланысты.

  • autoconf және libtool көптеген файлдық платформаларда (мысалы, Linux, OSX және Raspberry Pi) макияж файлдарын автоматты түрде конфигурациялау және CribSense сценарийлерін құру үшін қолданылады.
  • OpenCV - бұл кескінді өңдеу үшін пайдаланылатын қуатты компьютерлік көру пакеті және бейнені үлкейту мен қозғалысты анықтау кодының негізі. Ол үлкен қолдауға ие, қолдануға оңай және жақсы өнімділікке ие.
  • libcanberra - оқиға дыбыстарын ойнауға арналған қарапайым кітапхана. Ол CribSense үшін дабыл дыбысын ойнату үшін қолданылады.

Толық ақпарат алу үшін олардың жеке беттеріне кіріңіз.

Оларды Pi -ге терминал ашып, іске қосу арқылы орнатыңыз:

sudo apt-get install git build-essential autoconf libtool libopencv-dev libcanberra-dev

Содан кейін bcm2835-v4l2 файлын `/etc/modules-load.d/modules.conf` қосу арқылы камера драйверін автоматты түрде жүктеуге орнату қажет. Modules.conf файлыңыз келесідей болуы керек:

# /etc /modules: жүктеу кезінде жүктелетін ядро модульдері.

# # Файл ядро модульдерінің аттарын қамтиды, олар жүктеу кезінде # жүктелуі керек, әр жолға бір. «#» -Дан басталатын жолдар еленбейді. i2c-dev bcm2835-v4l2

Файл өңделгеннен кейін сіз Pi -ді қайта жүктеуіңіз керек. Бұл драйверді CribSense NoIR камерасынан кадрларды тікелей шығару үшін пайдаланады.

Содан кейін, репозиторийді іске қосу арқылы клондауыңызға болады:

git clone

Содан кейін репозиторийге көшіп, іске қосу арқылы бағдарламалық жасақтаманы құрыңыз

CD CribSense

./autogen.sh --prefix =/usr --sysconfdir =/etc --disable-debug sudo install sudo systemctl демонды қайта жүктеуді жасайды

Құттықтаймыз, сіз барлық қажетті бағдарламалық жасақтаманы орнаттыңыз!

Конфигурация

CribSense қарапайым INI конфигурация файлы арқылы реттеледі. «Install install» іске қосылғаннан кейін конфигурация файлы /etc/cribsense/config.ini мекен -жайында орналасқан. Бұл параметрлерді іске қосу арқылы қарауға және өңдеуге болады

sudo nano /etc/cribsense/config.ini

Әр параметрге қысқаша түсініктеме әдепкі конфигурацияда берілген, бірақ толығырақ https://lukehsiao.github.io/CribSense/setup/config/ сілтемесінде қол жетімді. Біз сондай -ақ осы нұсқаулықтың соңында калибрлеу мен конфигурацияны талқылайтын боламыз.

CribSense іске қосылды

CribSense іске қосу кезінде systemd қызметін пайдалану үшін жасалған. Сіз Raspberry Pi -ге пернетақта мен тінтуір арқылы қосылған кезде, конфигурация параметрлерінің сіздің шпаргалкаға сәйкес келетініне көз жеткізіңіз. Егер сіз оны жылжытсаңыз, бұл параметрлерді қайта реттеу қажет болуы мүмкін.

Параметрлерді баптаған кезде, сіз cribsense пәрмен жолынан іске қосу арқылы іске қосуға болады

cribsense --config /etc/cribsense/config.ini

Қанағаттанғаннан кейін, іске қосу арқылы автоматты іске қосуды қосуға болады

sudo systemctl cribsense қосады

Жүгіру арқылы cribsense автоматты түрде жұмысын тоқтатуға болады

sudo systemctl cribsense өшіреді

Бағдарламалық қамтамасыз етуге шолу

CribSense бағдарламалық қамтамасыз ету - бұл жобаның жүрегі мен жаны. Біз MIT -тен бейне үлкейтудің керемет демонстрациясын көрдік және ұқсас алгоритмді Raspberry Pi -де қолданып көргіміз келді. Бұл нақты уақытта Pi-де жұмыс істеу үшін C ++ бейне ұлғайтуды жүзеге асыру бойынша tbl3rd жұмысынан 10 есе жылдамдықты қажет етті. Қажетті оңтайландырулар бағдарламалық жасақтаманың дизайнын басшылыққа алды.

Жоғары деңгейде CribSense бағдарламалық қамтамасыз ету машинасы арқылы бірнеше рет айналады. Біріншіден, ол әрбір 640x480, сұр шкалалы бейне кадрды кэш орналасуын жақсарту үшін 3 көлденең бөлікке (640x160) бөледі. Содан кейін ол әрбір жіпті бөлек жіпке үлкейтіп, кадрда көрінетін қозғалысты бақылайды. Қозғалысты бірнеше секунд бақылағаннан кейін, ол қозғалыстың негізгі ауданын анықтайды және оған кадрды қиып алады. Бұл алгоритм өңдеуге қажет пикселдердің жалпы санын азайтады. Содан кейін, CribSense қысқартылған ағындағы қозғалыстың мөлшерін бақылайды және егер қозғалыс реттелетін уақыт ішінде қабылданбаса, дабыл береді. Мезгіл-мезгіл CribSense нәресте қозғалған жағдайда толық кадрды бақылау үшін өз көрінісін қайта ашады және қозғалыстың жаңа негізгі аймағын айналдырады.

Бейне ұлғайту нәрестенің тыныс алуы сияқты нәзік қозғалыстардың сигнал мен шуылға қатынасын күшейту үшін қолданылады. Бұл үлкен қозғалыстар үшін қажет емес, бірақ өте нәзік қозғалыстарға көмектеседі. Назар аударыңыз, біздің енгізу MIT құжаттарында сипатталған алгоритмге негізделген және олардың меншік коды сияқты жақсы жұмыс істемейді.

Көп ағынды өңдеу, адаптивті кесу және компиляторды оңтайландыру сияқты оңтайландырулар бізге сәйкесінше шамамен 3x, 3x және 1.2x жылдамдық берді. Бұл бізге Pi-де нақты уақытта жұмыс істеу үшін қажетті 10 есе жылдамдыққа жетуге мүмкіндік берді.

Толық ақпаратты CribSense репозиторийінің Бағдарламалық қамтамасыз ету архитектурасы бетінде табуға болады.

Егер сіз бейне үлкейтуге қызығушылық танытсаңыз, MIT парақшасына кіріңіз.

3 -қадам: жабдықты дайындау: камераны қосыңыз

Құрылғыны дайындау: камераны қосыңыз
Құрылғыны дайындау: камераны қосыңыз

Алдымен сіз камерамен бірге келген 6 дюймдік кабельді 12 дюймдік кабельге ауыстыруыңыз керек. Мұны істеу үшін камера кабелін ауыстыру туралы осы нұсқаулықты орындауға болады.

Қысқаша айтқанда, сіз камераның артқы жағында иілу кабелін босату үшін шығаруға болатын басу/тарту қойындысын көресіз. Қысқа кабельді ұзынырақ кабельге ауыстырып, ілгекті қайтадан итеріңіз.

Сіз біздің суреттерде 24 дюймдік кабель бар екенін байқайсыз. Бұл тым ұзын болды. Материалдар тізіміндегі 12 дюймдік кабель әлдеқайда ақылға қонымды ұзындық.

4 -қадам: жабдықты дайындау: IR жарықдиодты шамы

Жабдықты дайындау: IR жарықдиодты шамы
Жабдықты дайындау: IR жарықдиодты шамы
Жабдықты дайындау: IR жарықдиодты шамы
Жабдықты дайындау: IR жарықдиодты шамы
Жабдықты дайындау: IR жарықдиодты шамы
Жабдықты дайындау: IR жарықдиодты шамы

CribSense салыстырмалы түрде оңай құрастырылады және негізінен коммерциялық қол жетімді бөлшектерден тұрады. Жоғарыдағы суретте көрсетілгендей, 5 негізгі аппараттық компоненттер бар, олардың тек 2 -сі тапсырыс бойынша жасалған. Бұл бетте жарықдиодты диодтың IR схемасын қалай құру керектігі туралы айтылады, ал келесі бет шассиді қалай салу керектігі туралы болады.

Бұл бөлікте сізге дәнекерлеу үтігін, сымдарды, диодтарды, ИК жарықдиодты және резисторды алу қажет. Біз 2 -суретте көрсетілген схеманы құрамыз. Егер сіз дәнекерлеуді жаңадан бастасаңыз, сізді қуып жететін жақсы нұсқаулық. Бұл нұсқаулық тесік арқылы дәнекерлеуді талқылаған кезде, сіз 3-суретте көрсетілгендей осы компоненттерді біріктірудің негізгі әдістерін қолдана аласыз.

Түнде тиісті жарықтандыруды қамтамасыз ету үшін біз адам көзіне көрінбейтін, бірақ NoIR камерасына көрінетін ИК жарықдиодты шамды қолданамыз. IR светодиод Raspberry Pi -мен салыстырғанда көп қуат жұмсамайды, сондықтан қарапайымдылық үшін ИК жарықдиодты жарық диодты қосулы күйде қалдырамыз.

Pi -дің алдыңғы нұсқаларында бұл түйреуіштердің максималды ток шығысы 50 мА болды. Raspberry Pi B+ мұны 500 мА дейін арттырды. Алайда, біз 5В қуат істікшелерін қарапайымдылық үшін қолданамыз, ол 1,5А дейін жеткізе алады. IR светодиодының тікелей кернеуі біздің өлшемдерге сәйкес шамамен 1,7 ~ 1,9В құрайды. IR светодиод өзіне зақым келтірместен 500 мА тартуы мүмкін болса да, біз жылуды және жалпы қуатты тұтынуды азайту үшін токты шамамен 200 мА дейін төмендетеміз. Эксперименттік нәтижелер сонымен қатар IR жарықдиодты 200мА кіріс тогымен жеткілікті жарқын екенін көрсетеді. 5В пен 1.9В арасындағы алшақтықты жою үшін біз 1N4001 үш диодты және ИК жарықдиодты сериялы 1 Ом резисторды қолданамыз. Сымның, диодтардың және резистордың кернеуінің төмендеуі сәйкесінше шамамен 0,2 В, 0,9 В (әрқайсысы үшін) және 0,2 В құрайды. Осылайша, ИҚ жарықдиодты шамасындағы кернеу 5В - 0,2В - (3 * 0,9В) - 0,2В = 1,9В құрайды. Жарық диодты жарықтың таралуы резистор бойынша 0,18 Вт және 0,2 Вт құрайды, олардың барлығы максималды көрсеткіштер шегінде.

Бірақ біз әлі аяқталған жоқпыз! 3D басып шығарылған шассиде жақсы орналасу үшін біз ИК жарықдиодты объективті шассиімізден шығарып, ПХД тақтасын тесікпен біркелкі ұстағымыз келеді. Төменгі оң жақтағы кішкентай фотодиод кедергі жасайды. Бұл мәселені шешу үшін біз оны босатып, соңғы екі фотода көрсетілгендей тақтаның қарама -қарсы жағына аударамыз. Фотодиод қажет емес, өйткені біз жарық диоды үнемі қосылып тұрғанын қалаймыз. Оны қарама -қарсы жаққа ауыстырсаңыз, бастапқы жарық диодты схемасы өзгеріссіз қалады.

Сымдарға дәнекерлеу кезінде сымдардың ұзындығы кемінде 12 дюйм екеніне және Pi GPIO -ларынан сырғып кететін түйреуіштерінің болуына көз жеткізіңіз.

5 -қадам: Жабдықты дайындау: шасси

Жабдықты дайындау: шасси
Жабдықты дайындау: шасси
Жабдықты дайындау: шасси
Жабдықты дайындау: шасси
Жабдықты дайындау: шасси
Жабдықты дайындау: шасси

Бастапқы файлдар:

  • STL жағдайы
  • Case Makerbot
  • STL қақпағын жабу
  • Makerbot қақпағын жабыңыз

Біз Pi, камера мен жарықдиодты орналастыру үшін қарапайым 3D басып шығарылған шассиді қолдандық. Біздің шассиді қолдану міндетті емес, бірақ жас балалардың ашық электронды схемаға тиіп кетуіне жол бермеу үшін ұсынылады. Әр бесік әр түрлі, сондықтан біздің шассиде бекіту кронштейні жоқ. Орнатудың бірнеше нұсқалары болуы мүмкін:

  • Кабель байланыстары
  • 3M қос құлып
  • Velcro
  • Таспа

Егер сізде MakerBot репликаторына (5 -ші буын) қол жеткізе алсаңыз, жәшікке арналған.makerbot файлдарын жүктеп, MakerBot репликаторына жабуға және басып шығаруға болады. Корпусты басып шығаруға шамамен 6 сағат және мұқабаны басып шығаруға 3 сағат кетеді. Егер сіз 3D принтердің басқа түрін қолдансаңыз, оқуды жалғастырыңыз.

CribSense басып шығару үшін 9,9 дюйм (L) x 7,8 дюйм (W) x 5,9 дюйм (H) ең төменгі құрастыру көлемі қажет. Егер сізде бұл көлемді 3D принтерге қол жетімділік болмаса, сіз 3D 3D басып шығаруды пайдалана аласыз. CribSense басып шығару қызметі (Shapeways немесе Sculpteo сияқты). Басып шығарудың ең төменгі ажыратымдылығы - 0,015 «. Егер сіз 3D -принтермен біріктірілген жіп тәріздес принтерді қолдансаңыз, бұл сіздің саптаманың диаметрі 0,015 дюйм немесе одан кіші болуы керек дегенді білдіреді. Басып шығару рұқсаты төмен (диаметрі үлкенірек) принтерлер жұмыс істей алады, бірақ Raspberry Pi шассиге сәйкес келмеуі мүмкін. Біз баспа материалы ретінде PLA (полилактикалық қышқыл) ұсынамыз. Басқа пластмассалар жұмыс істей алады, бірақ таңдалған пластмассаның термиялық кеңею коэффициенті PLA -ға қарағанда үлкен болған жағдайда Raspberry Pi сәйкес келмеуі мүмкін. жылытылатын пластина, жалғастырмас бұрын жылытқышты өшіріңіз.

Үлгіні принтердің тақтайшасына бағыттау сәтті басып шығару үшін маңызды. Бұл модельдер мұқият жасалған, сондықтан оларды тірек материалмен басып шығарудың қажеті жоқ, осылайша пластмассаны үнемдейді және баспа сапасын жақсартады. Жалғастырмас бұрын, корпус пен мұқабаның 3D файлдарын жүктеңіз. Бұл модельдерді басып шығарған кезде CribSense мойыны құрылыс тақтасына тегіс жатуы керек. Бұл модельдердегі барлық ілініс бұрыштарының 45 градустан аспауын қамтамасыз етеді, осылайша тірек материалына деген қажеттілікті жояды. 3D модельдерін принтердің құрастыру көлемінде бағдарлау бойынша нұсқауларды 3D принтермен бірге жеткізілетін нұсқаулықтан қараңыз. Корпус пен мұқабаның құрастыру бағдарына мысалдар жоғарыда көрсетілген.

CribSense мойнын құрылым тақтасына тегіс қоюдан басқа, модельдердің тік ось айналасында айналғанын байқауға болады. Бұл модельді 3D принтердің жинау көлеміне сәйкестендіру үшін қажет болуы мүмкін. Бұл айналдыру міндетті емес, егер сіздің құрастыру көлеміңіздің ұзындығы CribSense орналастыруға жеткілікті ұзақ болса.

6 -қадам: Жабдықты дайындау: Жинау

Құрылғыны дайындау: құрастыру
Құрылғыны дайындау: құрастыру
Құрылғыны дайындау: құрастыру
Құрылғыны дайындау: құрастыру
Жабдықты дайындау: құрастыру
Жабдықты дайындау: құрастыру
Құрылғыны дайындау: құрастыру
Құрылғыны дайындау: құрастыру

Барлық құрал -жабдықтар дайын болғаннан кейін, құрастыруды бастауға болады. Бұл процесте кез келген желімді қолдануға болады, бірақ біз екі негізгі себеп бойынша ыстық желімді қолдануды ұсынамыз. Ыстық желім тез кебеді, сондықтан желімнің кебуін ұзақ күтудің қажеті жоқ. Сонымен қатар, егер сіз қателік жасасаңыз, ыстық желім алынбалы болады. Кептірілген ыстық желімді кетіру үшін ыстық желімді ысқылау (изопропил) спиртіне батырыңыз. Біз 90% немесе одан жоғары концентрация ұсынамыз, бірақ 70% концентрация жұмыс істейді. Кептірілген ыстық желімді изопропил спиртіне сіңдіру желім мен оның астындағы беттің арасындағы байланысты әлсіретеді, бұл желімді тазалап тазартуға мүмкіндік береді. Желімді изопропил спиртіне сіңдіру кезінде Raspberry Pi қуатын өшіріп, розеткадан ажырату керек. Ыстық желімді қайта жағып, Raspberry Pi жүктемес бұрын бәрін құрғатыңыз.

Бұл қадамдардың барлық суреттері реттелген және мәтіндік қадамдармен бірге жүреді.

  1. Raspberry Pi шассиіне салыңыз. Дыбыс портын қосу үшін оны сәл иілу керек болады, бірақ ол кіргеннен кейін аудио ұясы оны орнында ұстайды. Ол орнатылғаннан кейін барлық порттарға әлі де қол жеткізуге болатынына көз жеткізіңіз (мысалы, қуат кабелін қосуға болады).
  2. Содан кейін, ыстық желімді қолданып, Pi -ді бекітіңіз және камераны Pi -ге бекітіңіз. Егер сіз оларды қолданғыңыз келсе, бұрандалы тесіктер бар.
  3. Енді жарықдиодты және камераны алдыңғы қақпаққа жабыстырыңыз (суретте). NoIR камерасын камера саңылауына ыстық желімдеу арқылы бастаңыз. Фотокамераның тығыз орналасқанына және шассидің қатарына қойылғанына көз жеткізіңіз. Тым көп желім қолданбаңыз; әйтпесе камераны негізгі корпусқа сыйғыза алмайсыз. Пи -ді қосқаныңызға сенімді болыңыз және камераның (мысалы, raspistill -v`) жақсы бұрылғанына және жақсы көру өрісіне ие екеніне көз жеткізіңіз. Егер олай болмаса, ыстық желімді алып тастап, оның орнын өзгертіңіз.
  4. Содан кейін, IR жарықдиодты қақпақтың мойнындағы тесікке жабыстырыңыз. Мойын шпаргалканың бүйір жарығына 45 градус бұрышта орналасқан, бұл жарық аз жағдайда көлеңкеге әкеледі. Бұл кескінге көбірек контраст қосады, бұл қозғалысты анықтауды жеңілдетеді.
  5. IR жарықдиодты сымдарды схемалық суретте көрсетілгендей Raspberry Pi бастиегінің түйреуіштеріне бекітіңіз.
  6. Кабельдерді шассиге мыжылмайтын және тартпайтын етіп салыңыз. Біз аккордеонның кабелін бүктедік, өйткені біздің камераның икемді кабелі тым ұзын болды.
  7. Барлығы тығыздалған кезде, екі бөлік түйісетін жердің айналасына ыстық желім жабыстырылады.

7 -қадам: калибрлеу

Image
Image
Калибрлеу
Калибрлеу

Конфигурация параметрлері туралы мәліметтерді CribSense репозиторийінің құжаттамасынан табуға болады. Барлығын орнатқаннан кейін CribSense калибрлеудің мысалын көру үшін бейнені қараңыз.

Міне конфигурация файлының үлгісі:

[io]; Енгізу -шығару конфигурациясы

; енгізу = path_to_file; Input_fps = 15 пайдалану үшін енгізу файлы; кіру жылдамдығы / сағ (максимум 40, камераны қолданғанда 15 ұсынылады) full_fps = 4.5; толық кадрларды өңдеуге болатын кадр / сағ. кадрларды өңдеуге болатын кадр / сағ камера = 0; Ені қолданылатын камера = 640; Енгізілетін бейне биіктігінің ені = 480; Кіріс бейне биіктігі time_to_alarm = 10; Дабыл алдында қозғалыссыз қанша секунд күту керек. [кесу]; Бейімделетін кесу параметрлері қию = ақиқат; Frames_to_settle = 10 қию немесе алмау; roi_update_interval = 800 өңдеуден бұрын қалпына келтіруден кейін күтілетін # кадрлар; ROI -ді қайта есептеу арасындағы # кадрлар roi_window = 50; ROI [қозғалыс] таңдамас бұрын бақыланатын # кадрлар; Қозғалысты анықтау параметрлері erode_dim = 4; эрод ядросының өлшемі dilate_dim = 60; кеңейтілетін ядро өлшемі diff_threshold = 8; өзгеріс ұзақтығы танылмай тұрып абс айырымы қажет = 1; True pixel_threshold = 5 белгісін қоймас бұрын қозғалысты қолдау үшін # кадрлар; Motion show_diff = жалған деп белгілеу үшін әр түрлі болуы керек # пикселдер; 3 кадр арасындағы айырмашылықты көрсету [ұлғайту]; Бейне ұлғайту параметрлері күшейтеді = 25; % Күшейту қажет төменгі шекті = 0,5; Өткізу жолағының төмен жиілігі. жоғары шекті = 1,0; Өткізу жолағының жоғары жиілігі. шекті = 50; Фазалық табалдырық % pi ретінде. show_magnification = жалған; Әр ұлғайтудың шығыс кадрларын көрсетіңіз [отладка] print_times = false; Басып шығару талдау уақыты

Алгоритмді калибрлеу - бұл қайталанатын әрекет, нақты шешімі жоқ. Біз сізді қоршаған ортаға сәйкес келетін параметрлердің комбинациясын табу үшін, оларды жөндеу мүмкіндіктерімен біріктіре отырып, әр түрлі мәндермен тәжірибе жасауға шақырамыз. Калибрлеуді бастамас бұрын, show_diff және show_magnification «true» күйіне орнатылғанына көз жеткізіңіз.

Нұсқаулық ретінде күшейту мен фазалық_шекті мәндердің артуы кіріс бейнесіне қолданылатын үлкейту мөлшерін арттырады. Сіз бұл мәндерді бейне кадрда қадағалағыңыз келетін қозғалысты анық көрмейінше өзгертуіңіз керек. Егер сіз артефактілерді көрсеңіз, бірдей күшейтуді сақтай отырып, фаза шегін азайту көмектесе алады.

Қозғалысты анықтау параметрлері шуды өтеуге көмектеседі. Қозғалыс аймақтарын анықтаған кезде, erode_dim және dilate_dim қозғалыс эрозиясы мен кеңеюі үшін қолданылатын OpenCV ядроларының өлшемдерін өлшеу үшін қолданылады, осылайша шу алдымен жойылады, содан кейін қалған қозғалыс сигналы қозғалыс аймақтарын айқын ету үшін айтарлықтай кеңейеді. Егер сіздің шпаргалка өте жоғары контрастты жағдайда болса, бұл параметрлерді реттеу қажет болуы мүмкін. Жалпы, жоғары контраст параметрлері үшін сізге жоғары erode_dim қажет, ал төмен контраст үшін erode_dim төмен болады.

Егер сіз CribSense -ті show_diff = true мәнімен іске қоссаңыз және аккумулятордың тым көп түсі ақ екенін немесе бейненің мүлдем байланыспаған бөлігі қозғалыс ретінде анықталғанын байқасаңыз (мысалы, жыпылықтайтын шам), erode_dim -ді бейне бөлігіне дейін арттырыңыз. Сіздің балаңызға сәйкес келетін ақ түстің ең үлкен бөлімі. Бірінші суретте эрозия өлшемі кадрдағы қозғалыс мөлшері үшін тым төмен мысал келтірілген, ал келесі суретте калибрленген жақтау көрсетілген.

Бұл калибрленгеннен кейін, pixel_threshold мәні «Pixel Movement» пиксель қозғалысының ең жоғары мәндерін ғана емес, олардың барлығын ғана білдіретін мәнге орнатылғанына көз жеткізіңіз (демек, шуды өшіру керек). Ең дұрысы, сіз терминалда осындай қозғалысқа сәйкес келетін анық мерзімді үлгі бар шығуды көресіз:

[ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қимылды бағалау: 1.219812 Гц

[ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 1.219812 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 1.219812 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 1.219812 Гц [ақпарат] Пиксель қозғалысы: 44 [ақпарат] Қозғалысты бағалау: 1.219812 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 1.219812 Гц [ақпарат] Пиксель қозғалысы: 161 [ақпарат] Қозғалысты бағалау: 1.219812 Гц [ақпарат] Пиксель қозғалысы: 121 [ақпарат] Қозғалысты бағалау: 0.841416 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 0.841416 Гц [ақпарат] Пиксель қозғалысы: 86 [ақпарат] Қозғалысты бағалау: 0.841416 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 0.841416 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 0.841416 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 0.841416 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 0.841416 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 0.841416 Гц [ақпарат] Пиксельді қозғалыс: 0 [ақпарат] Қозғалысты бағалау: 0.841416 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 0.841416 Гц [ақпарат] Пиксельдік қозғалыс ent: 0 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movement: 0 [info] Қозғалысты бағалау: 0.841416 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 0.841416 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 0.841416 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 0.841416 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 0.841416 Гц [ақпарат] Пиксель қозғалысы: 97 [ақпарат] Қозғалысты бағалау: 0.841416 Гц [ақпарат] Пиксел қозғалысы: 74 [ақпарат] Қозғалысты бағалау: 0.839298 Гц [ақпарат] Пиксель Қозғалыс: 0 [ақпарат] Қозғалысты бағалау: 0.839298 Гц [ақпарат] Пиксельдік қозғалыс: 60 [ақпарат] Қозғалысты бағалау: 0.839298 Гц [ақпарат] Пиксельдік қозғалыс: 0 [ақпарат] Қозғалысты бағалау: 0.839298 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 0.839298 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 0.839298 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 0.839298 Гц [ақпарат] Пиксель қозғалысы: 48 [ақпарат] Қозғалыс Бағалау: 0.839298 Гц [ақпарат] Пиксель қозғалысы: 38 [ақпарат] Қозғалысты бағалау: 0.839298 Гц [ақпарат] Пиксель қозғалысы: 29 [ақпарат] Қозғалысты бағалау: 0.839298 Гц [ақпарат] Пиксель қозғалысы: 28 [ақпарат] Қозғалысты бағалау: 0.839298 Гц [ақпарат] Пиксель қозғалысы: 22 [ақпарат] Қозғалысты бағалау: 0.839298 Гц [ақпарат] Пиксел қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 0.839298 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 0.839298 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қимылды бағалау: 0.839298 Гц [ақпарат] Пиксель қозғалысы: 0 [ақпарат] Қозғалысты бағалау: 0.839298 Гц

Егер сіздің шығысыңыз келесідей болса:

[ақпарат] Пиксель қозғалысы: 921 [ақпарат] Қимылды бағалау: 1.352046 Гц

[ақпарат] Пиксель қозғалысы: 736 [ақпарат] Қозғалысты бағалау: 1.352046 Гц [ақпарат] Пиксель қозғалысы: 666 [ақпарат] Қозғалысты бағалау: 1.352046 Гц [ақпарат] Пиксель қозғалысы: 663 [ақпарат] Қозғалысты бағалау: 1.352046 Гц [ақпарат] Пиксель қозғалысы: 1196 [ақпарат] Қозғалысты бағалау: 1.352046 Гц [ақпарат] Пиксель қозғалысы: 1235 [ақпарат] Қозғалысты бағалау: 1.352046 Гц [ақпарат] Пиксель қозғалысы: 1187 [ақпарат] Қозғалысты бағалау: 1.456389 Гц [ақпарат] Пиксель қозғалысы: 1115 [ақпарат] Қозғалысты бағалау: 1.456389 Гц [ақпарат] Пиксель қозғалысы: 959 [ақпарат] Қозғалысты бағалау: 1.456389 Гц [ақпарат] Пиксель қозғалысы: 744 [ақпарат] Қозғалысты бағалау: 1.456389 Гц [ақпарат] Пиксель қозғалысы: 611 [ақпарат] Қозғалысты бағалау: 1.456389 Гц [ақпарат] Пиксель қозғалысы: 468 [ақпарат] Қозғалысты бағалау: 1.456389 Гц [ақпарат] Пиксел қозғалысы: 371 [ақпарат] Қозғалысты бағалау: 1.456389 Гц [ақпарат] Пиксель қозғалысы: 307 [ақпарат] Қозғалысты бағалау: 1.456389 Гц [ақпарат] Пиксель қозғалысы: 270 [ақпарат] Қимылды бағалау: 1.456389 Гц [ақпарат] Пиксель қозғалысы: 234 [ақпарат] Қозғалысты бағалау: 1.456389 Гц [ақпарат] Пиксель қозғалысы: 197 [ақпарат] Қозғалысты бағалау: 1.456389 Гц [ақпарат] Пиксель қозғалысы: 179 [ақпарат] Қозғалысты бағалау: 1.456389 Гц [ақпарат] Пиксель қозғалысы: 164 [ақпарат] Қозғалысты бағалау: 1.456389 Гц [ақпарат] Пиксель қозғалысы: 239 [ақпарат] Қозғалысты бағалау: 1.456389 Гц [ақпарат] Пиксель қозғалысы: 733 [ақпарат] Қозғалысты бағалау: 1.456389 Гц [ақпарат] Пиксель қозғалысы: 686 [ақпарат] Қозғалысты бағалау: 1.229389 Гц [ақпарат] Пиксель қозғалысы: 667 [ақпарат] Қозғалысты бағалау: 1.229389 Гц [ақпарат] Пиксель қозғалысы: 607 [info] Қимылды бағалау: 1.229389 Гц [ақпарат] Пиксель қозғалысы: 544 [ақпарат] Қозғалысты бағалау: 1.229389 Гц [ақпарат] Пиксель қозғалысы: 499 [ақпарат] Қозғалысты бағалау: 1.229389 Гц [ақпарат] Пиксель қозғалысы: 434 [ақпарат] Қозғалысты бағалау: 1.229389 Гц [ақпарат] Пиксель қозғалысы: 396 [ақпарат] Қозғалысты бағалау: 1.229389 Гц [ақпарат] Пиксель қозғалысы: 375 [ақпарат] Қозғалысты бағалау: 1.229389 Гц [ақпарат] Пиксельді қозғалыс: 389 [ақпарат] Қозғалысты бағалау: 1.229389 Гц [ақпарат] Пиксель қозғалысы: 305 [ақпарат] Қозғалысты бағалау: 1.312346 Гц [ақпарат] Пиксель қозғалысы: 269 [ақпарат] Қозғалысты бағалау: 1.312346 Гц [ақпарат] Пиксель қозғалысы: 1382 [ақпарат] Motion E ынталандыру: 1.312346 Гц [ақпарат] Пиксель қозғалысы: 1086 [ақпарат] Қозғалысты бағалау: 1.312346 Гц [ақпарат] Пиксель қозғалысы: 1049 [ақпарат] Қозғалысты бағалау: 1.312346 Гц [ақпарат] Пиксель қозғалысы: 811 [ақпарат] Қозғалысты бағалау: 1.312346 Гц [ақпарат] Пиксель қозғалысы: 601 [ақпарат] Қозғалысты бағалау: 1.312346 Гц [ақпарат] Пиксель қозғалысы: 456 [ақпарат] Қозғалысты бағалау: 1.312346 Гц

Pixel_threshold және diff_threshold параметрлерін тек шыңдар пайда болғанша реттеңіз, ал пиксел қозғалысы - 0.

8 -қадам: демонстрация

Image
Image

Міне CribSense қалай жұмыс істейтіні туралы шағын демо. Сіз бұл бесіктің бүйіріне бекітілгенін елестетуіңіз керек.

CribSense -ті бесікке қойғанда, нәресте мен камера арасындағы қашықтықты оңтайландыру қажет болады. Ең дұрысы, нәрестенің кеудесі жақтаудың 1/3 бөлігінен азын толтырады. Бала тым алыс болмауы керек, әйтпесе ажыратымдылығы төмен бейне үлкейту үшін жеткілікті мәліметтерді табу үшін күреседі. Егер камера тым жақын болса, ол сіздің баланы айналдырса немесе жақтаудан шығып кетсе, камераны көре алмауы мүмкін. Сол сияқты, егер бала көрпе мен баланың кеудесінің арасында байланыс шектеулі болатын «шатырланған» көрпе астында болса, қозғалысты анықтау қиын болуы мүмкін. Оларды жақсылап бекітіңіз!

Сондай -ақ, сіз бесіктің айналасындағы жарық жағдайын қарастырғыңыз келеді. Егер сіздің шпаргалка терезенің жанында болса, көлеңкелер жылжиды немесе жарық шамалары өзгеруі мүмкін, себебі күн бұлтпен қоршалған немесе терезеден тыс қозғалыс болады. Тұрақты жарықтандырылған жерде жақсы.

Қосымша жұмыс жасай отырып, біз калибрлеу әлдеқайда жұмсақ процесс болатындай, біреу біздің бағдарламалық жасақтаманы жақсарта алады деп ойлаймыз. Болашақта push хабарландырулары сияқты қосымша мүмкіндіктер қосылуы мүмкін.

9 -қадам: ақауларды жою

CribSense орнату кезінде сіз бірнеше жалпы мәселелерге тап болуыңыз мүмкін. Мысалы, бағдарламаны құруда/іске қосуда қиындықтар немесе дыбысты естімеу. Есіңізде болсын, CribSense - бұл нәресте мониторы емес. Сіз жақсартулар енгізген кезде біз GitHub репозиторийіне қосқан үлестерімізді құптаймыз!

Міне, CribSense жасау кезінде жиналған ақауларды жою бойынша бірнеше кеңестер.

Ешқандай дабыл ойнатылмайды

  • Сіздің динамиктер жұмыс істей ме?
  • Сіз CribSense дабылы сыртында Pi -ден басқа дыбыстарды ойнай аласыз ба?
  • Егер сіздің Pi аудио портқа емес, HDMI арқылы дыбысты ойнауға тырысса? Дұрыс шығыс таңдалғанына көз жеткізу үшін Raspberry Pi Audio Configuration бетін тексеріңіз.
  • CribSense бағдарламалық қамтамасыз ету қозғалысты анықтай ма? Егер CribSense фонда жұмыс істесе, терминалда journalctl -f арқылы тексеруге болады.
  • Егер CribSense көп қозғалысты сезсе, сізге CribSense калибрлеу қажет болуы мүмкін.

IR жарықдиодты жұмыс істемейді

  • IR светодиоды қараған кезде әлсіз қызыл түсті көре аласыз ба? Жарық диоды қосулы кезде әлсіз қызыл сақина көрінуі керек.
  • Қосылымдардың полярлығын тексеріңіз. Егер +5V және GND керісінше болса, ол жұмыс істемейді.
  • Светодиодты 5В/0,5А кернеу/ток шегі бар қуат көзіне қосыңыз. Әдетте, ол 5В кернеуде 0,2А тұтынуы керек. Егер олай болмаса, жарықдиодты шамдар дұрыс жұмыс істемеуі мүмкін.

CribSense нәресте болмаса да қозғалысты анықтайды

  • Сіз CribSense -ті дұрыс калибрледіңіз бе?
  • Есіңізде болсын, CribSense тек пиксель мәндерінің өзгеруін іздейді

    • Кадр ішінде жылжитын көлеңкелер бар ма?
    • Жыпылықтайтын немесе өзгеретін жарық бар ма?
    • CribSense тұрақты бетке орнатылған ба?
    • Қозғалыстың басқа көздері бар ма (айналар шағылыстырады және т.

CribSense қозғалыс болса да қозғалысты анықтамайды

  • Сіз CribSense -ті дұрыс калибрледіңіз бе?
  • Камераға кедергі келтіретін нәрсе бар ма?
  • Сіз камераға Raspberry Pi -ден қосыла аласыз ба? Камераны Pi -де бірнеше секунд ашу үшін терминалда raspistill -v іске қосу арқылы тексеріңіз.
  • Егер sudo systemctl status cribsense қарасаңыз, CribSense шынымен жұмыс істей ме?
  • Сіздің нәресте баламен байланыс жасамайтындай «шатырланған» көрпенің астында ма? Егер көрпе мен баланың арасында айтарлықтай ауа саңылаулары болса, көрпе қозғалысты жасыруы мүмкін.
  • Егер сіз бейнені күшейтсеңіз, қозғалысты көре аласыз ба?
  • Егер сіз төменгі және жоғары жиілікті ажыратуларды реттесеңіз, қозғалысты көре аласыз ба?
  • Егер бұл тек жарық шамасында болса, калибрлеудің жарығы төменде жұмыс істейтініне көз жеткіздіңіз бе?

CribSense құрастырмайды

Сіз барлық тәуелділікті орнаттыңыз ба?

Мен cribsense пәрмен жолынан іске қоса алмаймын

  • Сіз жүгірген кезде кездейсоқ бірдеңені қате жібердіңіз бе?
  • Cribsense /usr /bin ішінде бар ма?
  • Егер сіз «қай шпаргалканы» іске қоссаңыз, қандай жол ұсынылады?

Ұсынылған: