Мазмуну:

CribSense: Байланышсыз, видеого негизделген Baby Monitor: 9 кадам (Сүрөттөр менен)
CribSense: Байланышсыз, видеого негизделген Baby Monitor: 9 кадам (Сүрөттөр менен)

Video: CribSense: Байланышсыз, видеого негизделген Baby Monitor: 9 кадам (Сүрөттөр менен)

Video: CribSense: Байланышсыз, видеого негизделген Baby Monitor: 9 кадам (Сүрөттөр менен)
Video: ТАКОВ МОЙ ПУТЬ В L4D2 2024, Ноябрь
Anonim
CribSense: Байланышсыз, видеого негизделген Baby Monitor
CribSense: Байланышсыз, видеого негизделген Baby Monitor
CribSense: Байланышсыз, видеого негизделген Baby Monitor
CribSense: Байланышсыз, видеого негизделген Baby Monitor

CribSense-бул видеого негизделген, контактсыз бала монитору, аны банкты бузбастан өзүңүз жасай аласыз

CribSense-бул Raspberry Pi 3 Model B.де иштөөгө ылайыкташтырылган Video Magnification программасынын C ++ ишке ашырылышы, дем алыш күндөрү, эгер ымыркайыңыз кыймылдабай калса, ойготкучту көтөрө турган, өзүңүздүн бешиктин үстүндөгү бала мониторун орното аласыз. Бонус катары, бардык программалык камсыздоолор коммерциялык эмес максаттарда акысыз пайдаланылат жана оңой кеңейтилет.

Булак файлдарын жана документтерди камтыган толук кампаны https://github.com/lukehsiao/CribSense сайтынан тапса болот.

Биз CribSense абдан кызыктуу деп ойлоп жатканыбыз менен, бул чындыгында тастыкталган, акылга сыйбаган коопсуздук түзмөгү эмес экенин эстен чыгарбоо керек. Башкача айтканда, иштөө үчүн туура конфигурацияланган жана жакшы көзөмөлдөнгөн чөйрө болушу керек. Мисалы, эгерде ал жакшы калибрленбесе жана/же видеодогу чөйрө видеону чоңойтууга ыңгайлуу болбосо, анда аны колдоно албай калышы мүмкүн. Биз муну Raspberry Pi сыяктуу чектелген жабдууларда видеону чоңойтуу сыяктуу эсептөөчү оор программаларга канчалык деңгээлде ээ боло аларыбызды көрүү үчүн кызыктуу долбоор катары жасадык. Ар бир чыныгы продукт биз кылганга караганда алда канча көп тестирлөөнү талап кылат. Демек, эгер сиз бул долбоорду колдонсоңуз, анда ал эмне экенин түшүнүңүз: Pi боюнча видеону чоңойтууну кыскача изилдөө.

Эмне керек болот:

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

  • Raspberry Pi 3 Model B.
  • 5V 2.5A Micro USB Power Supply
  • Raspberry Pi NoIR Камера модулу V2
  • MicroSD картасы (биз 16 ГБ класс 10 картаны колдонгонбуз)
  • Raspberry Pi камерасы үчүн Flex кабели (12 ")
  • 3.5мм кирүүчү динамиктер
  • HDMI монитор
  • USB баскычтобу
  • USB чычкан
  • [милдеттүү эмес] Raspberry Pi Heatsink (эгер сиз жылуулуктан тынчсызданып жатсаңыз, булардын бирин Пиңизге чаптап койсоңуз болот)

IR LED Circuit аз жарык иштетүү үчүн:

  • [3x] 1N4001 диоддор
  • 1 Ом, 1 Вт резистор
  • 1W IR LED
  • LEDди Пи -ге туташтыруу үчүн 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 makefiles файлдарын автоматтык түрдө конфигурациялоо жана CribSense үчүн көптөгөн платформаларда (Linux, OSX жана Raspberry Pi сыяктуу) куруу үчүн колдонулат.
  • OpenCV - сүрөттү иштетүү үчүн колдонулган күчтүү компьютердик көрүү пакети жана видеону чоңойтуунун жана кыймылды аныктоо кодунун негизи. Бул чоң колдоого ээ, колдонууга оңой жана жакшы көрсөткүчтөргө ээ.
  • libcanberra окуялардын үндөрүн ойнотуу үчүн жөнөкөй китепкана. Бул CribSense үчүн ойготкуч үнүн ойнотуу үчүн колдонулат.

Толук маалымат алуу үчүн алардын жеке баракчаларына баш багыңыз.

Пиңизге терминал ачып, аларды иштетип орнотуңуз:

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

Кийинки, bcm2835-v4l2'ди//etc/modules-load.d/modules.conf`го кошуу менен камеранын драйверин автоматтык түрдө жүктөөгө коюу керек. Сиздин modules.conf мындай болушу керек:

# /etc /modules: ядро модулдары жүктөө учурунда жүктөлөт.

# # Файлда ядро модулдарынын аттары камтылган, алар жүктөө убагында # ар бир сапка жүктөлүшү керек. "#" Менен башталган саптар эске алынбайт. i2c-dev bcm2835-v4l2

Файл оңдолгондон кийин, Пиңизди кайра жүктөөңүз керек. Бул драйвер CribSense тарабынан NoIR камерасынан кадрларды түз тартып алуу үчүн колдонулат.

Андан кийин, репозиторийди иштетүү менен клондоштурсаңыз болот:

git clone

Андан кийин, репозиторийге өтүңүз жана иштетүү менен программаны түзүңүз

cd CribSense

./autogen.sh --prefix =/usr --sysconfdir =/etc --disable-debug make sudo install sudo systemctl демон-reload

Куттуктайбыз, сиз бардык керектүү программаларды орноттуңуз!

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

CribSense жөнөкөй INI конфигурация файлы аркылуу ыңгайлаштырылат. "Install install" иштетилгенден кийин, конфигурация файлы /etc/cribsense/config.ini дарегинде жайгашкан. Сиз чуркап бул параметрлерди көрүп жана түзөтө аласыз

sudo nano /etc/cribsense/config.ini

Ар бир параметрдин кыскача түшүндүрмөсү демейки конфигурацияда берилген, бирок кененирээк маалымат https://lukehsiao.github.io/CribSense/setup/config/ жеткиликтүү. Биз ошондой эле бул колдонмонун аягында калибрлөө жана конфигурацияны талкуулайбыз.

CribSense иштетүү

CribSense системалуу кызматты колдонуу менен ишке киришүү үчүн иштелип чыккан. Сиз Raspberry Pi менен клавиатура жана чычкан аркылуу туташып турганда, конфигурация параметрлери сиздин бешикке ылайыктуу экенине ынанууңуз керек. Эгер сиз аны жылдырсаңыз, бул параметрлерди кайра тууралашыңыз керек болот.

Параметрлерди тууралап жатканда, чуркап буйрук сабынан каалагандай cribsense иштете аласыз

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

Сиз канааттанган соң, чуркап autorun иштете аласыз

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 LED

Аппаратты даярдаңыз: IR LED
Аппаратты даярдаңыз: IR LED
Аппаратты даярдаңыз: IR LED
Аппаратты даярдаңыз: IR LED
Аппаратты даярдаңыз: IR LED
Аппаратты даярдаңыз: IR LED

CribSenseти куруу салыштырмалуу оңой жана көбүнчө сатыкта турган бөлүктөрдөн турат. Жогорудагы сүрөттө көрүнүп тургандай, 5 негизги жабдык компоненттери бар, алардын ичинен 2 гана атайын жасалган. Бул барак IR LED схемасын кантип куруу керектигин, ал эми кийинки барак шассини кантип куруу керектигин карап чыгат.

Бул үчүн сиз ширетүүчү темириңизди, зымдарды, диоддорду, IR LEDди жана резисторду алышыңыз керек. Биз 2 -сүрөттө көрсөтүлгөн схеманы курабыз. Эгер сиз ширетүүнү жаңы үйрөнсөңүз, бул жерде сизди кармап кала турган жакшы жол көрсөткүч. Бул колдонмо тешик аркылуу ширетүүнү талкуулап жатканда, 3-сүрөттө көрсөтүлгөндөй бул компоненттерди бириктирүү үчүн ошол эле негизги ыкмаларды колдонсоңуз болот.

Түнкүсүн жетиштүү жарык берүү үчүн, биз IR LEDди колдонобуз, ал адамдын көзүнө көрүнбөйт, бирок NoIR камерасына көрүнөт. IR LED Raspberry Pi менен салыштырганда көп энергия коротпойт, андыктан жөнөкөйлүк үчүн IR LED күйгүзүлгөн.

Pi мурунку версияларында, бул казыктардын максималдуу учурдагы чыгымы 50 мА болгон. Raspberry Pi B+ муну 500 мАга чейин көбөйттү. Бирок, биз жөн эле 5А кубаттуулукту колдонобуз, ал 1.5Ага чейин жеткире алат. IR LED алдыга чыңалуу биздин өлчөөлөр боюнча болжол менен 1.7 ~ 1.9V болуп саналат. IR LED өзүнө зыян келтирбестен 500мА тартса да, жылуулукту жана жалпы электр энергиясын керектөөнү азайтуу үчүн токту 200мАга чейин азайтабыз. Эксперименталдык жыйынтыктар ошондой эле IR LED 200мА киргизүү агымы менен жетишерлик жарык экенин көрсөтөт. 5V менен 1.9V ортосундагы ажырымды жоюу үчүн, биз IR 1D4001 диоддорун жана 1 Ом резисторун колдонобуз. Зымдын, диоддордун жана резистордун чыңалуусу болжол менен 0,2В, 0,9В (ар бири үчүн) жана 0,2В. Ошентип, IR LED үстүндөгү чыңалуу 5V - 0.2V - (3 * 0.9V) - 0.2V = 1.9V. Светодиоддун үстүндөгү жылуулук диссипациясы резистордун үстүнөн 0.18W жана 0.2W, алардын максималдуу рейтингдеринин чегинде.

Бирок биз али бүтө элекпиз! 3D басып чыгарылган шассиде жакшыраак жайгашуу үчүн, биз IR LED линзасынын шассибизден чыгып, ПХБ тактасынын тешиги менен бирдей болушун каалайбыз. Төмөнкү оң жактагы кичинекей фотодиод тоскоолдук кылат. Муну оңдоо үчүн, биз аны тазалап, акыркы эки сүрөттө көрсөтүлгөндөй тактанын карама -каршы жагына оодарабыз. Фотодиоддун кереги жок, анткени биз LED дайыма күйүп турушун каалайбыз. Жөн эле карама -каршы тарапка которуу баштапкы LED схемасын өзгөртүүсүз калтырат.

Зымдарга ширетүү учурунда, зымдардын узундугу 12 дюймдан кем эмес экенин жана Пинин GPIO'лорунан тайып кете турган төөнөгүчтөрдүн бар экенин текшериңиз.

5 -кадам: Аппаратты даярдоо: Шасси

Сиздин Аппаратты Даярдоо: Шасси
Сиздин Аппаратты Даярдоо: Шасси
Сиздин Аппаратты Даярдоо: Шасси
Сиздин Аппаратты Даярдоо: Шасси
Сиздин Аппаратты Даярдоо: Шасси
Сиздин Аппаратты Даярдоо: Шасси

Булак файлдары:

  • Case STL
  • Case Makerbot
  • Cover STL
  • Cover Makerbot

Биз Pi, камера жана LEDди жайгаштыруу үчүн жөнөкөй 3D басылган шассиди колдондук. Биздин шассиди колдонуу милдеттүү эмес, бирок жаш балдардын ачык электрондук схемага тийүүсүн алдын алуу үчүн сунушталат. Ар бир бешик ар башка, ошондуктан биздин шассиде монтаж кронштейни жок. Бир нече орнотуу параметрлери төмөнкүлөрдү камтышы мүмкүн:

  • Кабелдик байланыштар
  • 3M Dual Lock
  • Velcro
  • Тасма

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

CribSenseти басып чыгаруу үчүн эң аз 9.9 "(L) x 7.8" (W) x 5.9 "(H) көлөмү талап кылынат. Эгерде сизде бул көлөмдүн жардамы менен 3D принтерге кирүү мүмкүнчүлүгү болбосо, анда сиз 3D 3D басып чыгарууну колдоно аласыз. кызматы (Shapeways же Sculpteo сыяктуу) CribSenseти басып чыгаруу. Басып чыгаруунун минималдуу чечими 0.015 ". Эгерде сиз эритилген жиптен жасалган 3D форматтагы принтерди колдонуп жатсаңыз, бул сиздин мурундун диаметри 0,015 "же андан кичирээк болушу керек дегенди билдирет. Чечимдери азыраак принтерлер (чоңураак диаметри) иштеши мүмкүн, бирок Raspberry Pi шассиге туура келбеши мүмкүн. Биз PLA (полилактикалык кислотаны) артыкчылыктуу басуу материалы катары сунуштайбыз. Башка пластмассалар иштеши мүмкүн, бирок Raspberry Pi тандалган пластиктин жылуулук кеңейүү коэффициенти PLAга караганда чоңураак болгон учурда туура келбеши мүмкүн. Эгерде сиздин 3D принтериңизде жылытуу плитасы, улантуудан мурун жылыткычты өчүрүңүз.

Моделди принтериниздин плитасына багыттоо ийгиликтүү басып чыгаруу үчүн абдан маанилүү. Бул моделдер кылдаттык менен иштелип чыккан, ошондуктан аларды колдоочу материал менен басып чыгаруунун кажети жок, ошону менен пластмассаны үнөмдөп, басып чыгаруу сапатын жогорулатууга болот. Улантуудан мурун, корпустун жана мукабанын 3D файлдарын жүктөп алыңыз. Бул моделдерди басып чыгарууда, CribSenseтин моюну плитанын үстүнө тегиз жатышы керек. Бул моделдердеги бардык бурчтар 45 градустан ашпашын камсыздайт, ошону менен колдоочу материалга болгон талап жок болот. Принтериңиздин көлөмүндө 3D моделдерин багыттоо боюнча көрсөтмөлөрдү алуу үчүн 3D принтериңиз менен келген нускаманы караңыз. Корпустун жана капкактын курулушуна багытталган мисалдар жогоруда көрсөтүлгөн.

CribSense моюнун плитанын үстүнө коюудан тышкары, сиз моделдердин вертикалдуу огунун айланасында бурулганын байкасаңыз болот. Бул 3D принтериңиздин моделинин көлөмүнө туура келиши үчүн керек болушу мүмкүн. Бул айлануу милдеттүү эмес, эгерде сиздин куруу көлөмүңүздүн узундугу CribSenseке ылайыктуу болсо.

6 -кадам: Аппаратты даярдоо: Ассамблея

Аппаратты даярдоо: Ассамблея
Аппаратты даярдоо: Ассамблея
Аппаратты даярдоо: Ассамблея
Аппаратты даярдоо: Ассамблея
Аппаратты даярдоо: Ассамблея
Аппаратты даярдоо: Ассамблея
Аппаратты даярдоо: Ассамблея
Аппаратты даярдоо: Ассамблея

Бардык жабдыктар даяр болгондон кийин, кураштырууну баштасаңыз болот. Бул процессте каалаган клей колдонулушу мүмкүн, бирок биз эки негизги себептен улам ысык клей сунуштайбыз. Ысык желим тез кургайт, андыктан клей кургатуу үчүн көпкө күтүүнүн кажети жок. Мындан тышкары, эгер ката кетирсеңиз, ысык клей алынуучу болот. Кургатылган ысык клейди кетирүү үчүн ысык желимди изобрил спиртине чылап коюңуз. Биз 90% же андан жогору концентрация сунуштайбыз, бирок 70% концентрация баары бир иштейт. Кургатылган ысык желимди изопропил спиртине чылап коюу клей менен астындагы беттин ортосундагы байланышты начарлатат, бул клейди таза сыйрып алууга мүмкүндүк берет. Изопропил спиртине клейди чылап жатканда, Raspberry Pi өчүрүлүп, розеткадан ажыратылышы керек. Ыссык клейди кайра колдонуудан жана Raspberry Pi'ди жүктөөдөн мурун баарын кургатууну унутпаңыз.

Бул кадамдар үчүн сүрөттөрдүн баары ирээтке келтирилген жана текст кадамдары менен кошо ээрчишет.

  1. Raspberry Pi'ни шассиге салыңыз. Аудио портун алуу үчүн аны бир аз ийкемдеш керек болот, бирок ал киргенден кийин аудио уячасы аны ордунда сактап калат. Орнотулгандан кийин, бардык портторго дагы эле кире алаарыңызды текшериңиз (мисалы, электр кабелин туташтырсаңыз болот).
  2. Андан кийин, ысык клейди колдонуп, Пиди ордуна коюңуз жана камераны Пи менен байланыштырыңыз. Эгерде сиз аларды колдонууну кааласаңыз, бурама тешиктер бар.
  3. Эми, LEDди жана камераны алдыңкы капкакка чаптаңыз (сүрөттө). NoIR камерасын камеранын тешигине ысык чаптоо менен баштаңыз. Камера так жана шасси менен тизилгенине ишениңиз. Клейди көп колдонбоңуз; антпесе, камераны негизги корпуска батыра албайсыз. Пиди күйгүзүп, камераны караңыз (мисалы, "raspistill -v"), ал жакшы бурчтуу жана жакшы көрүү талаасына ээ экенине ынануу үчүн. Эгер андай болбосо, ысык клейди алып салыңыз жана анын ордун алмаштырыңыз.
  4. Андан кийин, IR LEDди капкактын моюнундагы тешикке чаптаңыз. Моюн 45 градус бурчта, бешикти жарык кылуу үчүн, бул аз жарык шарттарда көбүрөөк көлөкө пайда кылат. Бул сүрөттү көбүрөөк контрастка салып, кыймылды аныктоону жеңилдетет.
  5. IR LED зымдарын схемалык сүрөттө көрсөтүлгөндөй Raspberry Pi'дин башына сайыңыз.
  6. Кабелдерди шассиде бырышпаган жана чыңалбагандай кылып таңгактаңыз. Биз камеранын ийкемдүү кабели өтө узун болгондуктан, кабелдик аккордеондун стилин бүктөп бүттүк.
  7. Баары тыгылып, ысык клей эки бөлүктү бириктирген четине тегерете мөөрлөп жабат.

7 -кадам: Калибрлөө

Image
Image
Калибрлөө
Калибрлөө

Конфигурация параметрлери жөнүндө чоо -жайын CribSense репозиторийлеринин документтеринен тапса болот. Баарын орноткондон кийин CribSenseти кантип калибрлөө мүмкүн экенин көрүү үчүн видеону көрүңүз.

Бул жерде конфигурация файлынын үлгүсү келтирилген:

[io]; I/O конфигурациясы

; киргизүү = 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; Чыныгы pixel_threshold = 5 деп белгилөө алдында кыймылды сактоо үчүн # кадрлар; # пикселдер кыймыл катары белгилениши үчүн башкача болушу керек_diff = false; 3 кадрдын ортосундагы айырманы көрсөтүү [чоңойтуу]; Видео Чоңойтуу Орнотуулары күчөтүлөт = 25; % Amplification каалаган төмөнкү чекке = 0.5; Бандпасттын төмөнкү жыштыгы. жогорку чек = 1,0; Бандпасттын жогорку жыштыгы. босого = 50; Фазанын босогосу pi % катары. show_magnification = false; Ар бир чоңойтуунун чыгаруу алкактарын көрсөтүү [debug] print_times = false; Басып чыгаруу талдоо убактысы

Алгоритмди калибрлөө - бул кайталануучу аракет, так чечими жок. Биз сизди айланаңызга эң ылайыктуу параметрлердин айкалышын табуу үчүн, аларды мүчүлүштүктөрдү оңдоо функциялары менен айкалыштырып, ар кандай баалуулуктар менен тажрыйба жүргүзүүгө чакырабыз. Калибрлөөнү баштоодон мурун, show_diff жана show_magnification "чындык" деп коюлганын текшериңиз.

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

Кыймылды аныктоо параметрлери ызы -чуунун ордун толтурууга жардам берет. Кыймылдын аймактарын аныктоодо, 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 [маалымат] Кыймылдын сметасы: 0.841416 Гц [маалымат] Пикселдин кыймылы: 0 [маалымат] Кыймылдын сметасы: 0.841416 Гц [маалымат] Пикселдин кыймылы: 0 [маалымат] Кыймылдын сметасы: 0.841416 Гц [маалымат] Пикселдин кыймылы: 0 [маалымат] Кыймылдын сметасы: 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 аудио порттун ордуна HDMI аркылуу аудио ойнотууга аракет кылып жатса? Туура чыгарууну тандаганыңызга ынануу үчүн Raspberry Pi Audio Configuration барагын текшериңиз.
  • CribSense программалык камсыздоо кыймылды аныктайбы? Эгерде CribSense фондо иштеп жатса, терминалдагы journalctl -f менен текшере аласыз.
  • Эгерде CribSense көп кыймылды сезип жатса, анда CribSenseти калибрлөө керек болушу мүмкүн.

IR LED иштебейт

  • IR LEDди карасаңыз, ачык кызыл түстү көрө аласызбы? Светодиод күйүп турганда алсыз кызыл шакек көрүнүшү керек.
  • Байланыштардын полярдуулугун текшериңиз. Эгерде +5V жана GND тескери болсо, ал иштебейт.
  • LEDди 5V/0.5A чыңалуу/ток чеги менен электр энергиясына туташтырыңыз. Адатта, ал 5Vда 0.2A керектеши керек. Эгер андай болбосо, сиздин LED иштебей калышы мүмкүн.

CribSense ымыркай болбосо да кыймылды аныктайт

  • Сиз CribSenseти туура текшерип көрдүңүз беле?
  • Эсиңизде болсун, CribSense жөн эле пикселдик маанилердеги өзгөрүүлөрдү издейт

    • Кадрдын ичинде жылып жүргөн көлөкөлөр барбы?
    • Жаркылдоо же өзгөрүү барбы?
    • CribSense туруктуу бетке орнотулганбы (б.
    • Кадрда кыймылдын башка булактары барбы (күзгүлөр чагылууну кармайт ж. Б.)?

CribSense кыймыл бар болсо да, кыймылды аныктай албайт

  • Сиз CribSenseти туура текшерип көрдүңүз беле?
  • Камеранын жолунда бир нерсе барбы?
  • Сиз камерага Raspberry Piден туташа аласызбы? Камераны бир нече секундага ачуу үчүн терминалда raspistill -v иштетип текшериңиз.
  • Эгерде сиз sudo systemctl status cribsense карасаңыз, CribSense чын эле иштеп жатабы?
  • Сиздин ымыркайыңыз бала менен байланышпай тургандай "чатырланган" жууркан астындабы? Эгерде жууркан менен баланын ортосунда олуттуу аба боштуктары бар болсо, жууркан кыймылды жашыра алат.
  • Видеону күчөтсөңүз, кыймылын көрө аласызбы?
  • Эгерде сиз төмөнкү жана жогорку жыштыктагы чектөөлөрдү туураласаңыз, кыймылды көрө аласызбы?
  • Эгерде бул аз жарыкта гана болуп жатса, анда сиздин калибрлөө аз жарыкта иштегенине ынандыңызбы?

CribSense курбайт

Сиз бардык көз карандылыкты орноттуңузбу?

Мен командалык саптан cribsense иштете албайм

  • Сиз чуркап жүргөнүңүздө кокусунан бир нерсени туура эмес жазып калдыңызбы?
  • Cribsense /usr /binде барбы?
  • "Кайсы крибссенс" чуркасаңыз, кандай жол берилет?

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