Мазмуну:

Zombie Smart коопсуздук үкү аныктоо (Deep Learning): 10 кадам (сүрөттөр менен)
Zombie Smart коопсуздук үкү аныктоо (Deep Learning): 10 кадам (сүрөттөр менен)

Video: Zombie Smart коопсуздук үкү аныктоо (Deep Learning): 10 кадам (сүрөттөр менен)

Video: Zombie Smart коопсуздук үкү аныктоо (Deep Learning): 10 кадам (сүрөттөр менен)
Video: AMA record with community manager Oleg. PARALLEL FINANCE 2024, Ноябрь
Anonim

Баарына салам, T3chFlicksке кош келиңиз! Бул Хэллоуин үйрөткүчүндө, биз сизге үй тиричилигинин классикасына кантип супер үрөй учурарлык бурулуш жасаганыбызды көрсөтөбүз: коопсуздук камерасы.

Кантип ?! Биз адамдарды байкоо үчүн сүрөт иштетүүнү колдонгон түнкү үкү жасадык. Оо, бул чыныгы нерсе сыяктуу эле!

Биз бул долбоорго абдан кубандык жана жаңы Raspberry Pi 4 түшкөндөн бери муну күткөнбүз. Бул 4 ГБ оперативдүү эстутумга ээ, ал көптөгөн кызыктуу мүмкүнчүлүктөрдүн эшигин ачат, анын ичинде реалдуу убакытта терең үйрөнүү моделдери менен сүрөт иштетүү.

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

Жабдуулар

Бул курулуш үчүн, сизге керек болот:

  • Raspberry Pi 4 (4GB кочкорлуу) Amazon
  • Түнкү камера Amazon
  • Micro Servo Amazon
  • Жасалма үкү Amazon
  • Amazon клей
  • Амазонканы боё
  • Amazon бурамалары
  • USB спикери Amazon
  • Чоң (5v+) көчмө электр менен камсыздоо Amazon
  • 3D принтер Amazon

1 -кадам: 1 -кадам: Баштын башын алып салуу

1 -кадам: Башын алып салуу
1 -кадам: Башын алып салуу
1 -кадам: Башын алып салуу
1 -кадам: Башын алып салуу
1 -кадам: Башын алып салуу
1 -кадам: Башын алып салуу

а. Үкүдөн башын сууруп алыңыз (кээде жөн эле мыкаачы болушуңуз керек), булакка бекитилген жерге башынан катуу тартып.

б. Үкүнүн башы денеге чоң булактын үстүндө жайгашкан цилиндр аркылуу туташат. Бураманы алып бул цилиндрди алып салыңыз.

в. Сиз жаңы эле алып салган цилиндр эки бөлүктөн турат, пластикалык чөйчөктөн жана подшипниктен турат. Цилиндрден подшипникти отвертка (же окшош куралды) колдонуп алыңыз.

г. Цилиндрди пружинага туташтырган бураманы колдонуп, сервону цилиндрге бекиңиз.

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

f. Үкүнүн денесинин чокусуна кээ бир зымдарга жана камера кабелине туура келгидей чоң тешик жасаңыз. Бул үчүн биз бургулоочу менен бурагычтын саркеч комбинациясын колдондук.

2 -кадам: 2 -кадам: Smart кошуу

2 -кадам: Smart кошуу
2 -кадам: Smart кошуу
2 -кадам: Smart кошуу
2 -кадам: Smart кошуу
2 -кадам: Smart кошуу
2 -кадам: Smart кошуу

а. 3D камеранын корпусун басып, үкүгө дал келтирүү үчүн боёңуз - биз арзан акрил боекторун колдондук. Сүрөт маанилүү кадам эмес, бирок жалпы көрүнүштү кескин жакшыртат!

б. Үкүнүн башын өйдө каратып, камеранын капкагын үстү башынын ичине сайыңыз, тумшугу чыгып турат.

в. Камераны корпуска салып, камера кабелин туташтырыңыз.

г. Сервону жаздын жогорку панелине чаптаңыз.

д. Узун зымдарды servo казыктарына туташтырыңыз (5V, Gnd, сигнал)

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

3 -кадам: 3 -кадам: Аны толтуруңуз

3 -кадам: Аны толтуруңуз
3 -кадам: Аны толтуруңуз
3 -кадам: Аны толтуруңуз
3 -кадам: Аны толтуруңуз
3 -кадам: Аны толтуруңуз
3 -кадам: Аны толтуруңуз
3 -кадам: Аны толтуруңуз
3 -кадам: Аны толтуруңуз

а. Үкүнүн түбүндөгү сайгычты алып салыңыз жана пластикти кесүү менен бул тешиктин көлөмүн көбөйтүңүз. Raspberry Pi жана динамик үкүнүн денесине батмайынча көлөмүн көбөйтүүнү улантыңыз.

б. Тешик бардык компоненттердин ичине баткандай чоң болгондон кийин, үкү үстү аркылуу баккан камера кабелин базадан сууруп алып, Raspberry Piге сайыңыз.

в. Ошо сыяктуу эле, servo зымдарын тартып, Raspberry Pi'ге туташтырыңыз:

  • Серводо +5v => Pi боюнча 5В
  • Gnd servo => gnd Pi
  • Signal servo => pin 12 Pi

г. USB динамикти Пи -ге сайыңыз.

д. SD картаны Pi'ге салыңыз.

f. Power Pi портативдүү энергия менен камсыздоо.

ж. Пи, электр менен жабдууну жана динамикти үкүгө базанын тешигинен салыңыз.

4 -кадам: 4 -кадам: Pi орнотуу

4 -кадам: Pi орнотуу
4 -кадам: Pi орнотуу

БАРДЫК КОДТУ https://github.com/sk-t3ch/cctv-owl сайтынан табууга болот!

а. Raspianды жүктөп алып, Balena Etcherди колдонуп SD картаңызга жүктөңүз.

б. Пиңизге алыстан кирүү үчүн

  • Ssh деп аталган файлды жүктөөчү SD картаңызга кошуңуз
  • Wpa_supplicant.conf аттуу файлды кошуп, wifi грамоталарын киргизиңиз

    ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdev update_config = 1

    тармак = {ssid = "MySSID" psk = "MyPassword"}

в. SD -картаны пи -ге салып, ssh аркылуу кирүүгө аракет кылыңыз.

5 -кадам: 5 -кадам: Башты жылдыруу

5 -кадам: Башты жылдыруу
5 -кадам: Башты жылдыруу

Башты жылдыруу үчүн код үйрөткүчү (малина пи менен сервону көзөмөлдөө)

Пи менен иштеген сервону көзөмөлдөө үчүн, биз сервону туташтырылган GPIO төөнөгүчтөрүн көзөмөлдөгөн скрипт түзөбүз.

а. Сервону Piге туташтырыңыз:

  • Серводо +5v => Pi боюнча 5В
  • Gnd servo => gnd боюнча Pi
  • Signal servo => Pi боюнча 12 пин

б. Адегенде сервоприводдун сигнал түйүнүнө PWM колдонуу үчүн gpio казыктарын орнотушуңуз керек.

в. Андан кийин, иштөө цикли 2,5 жана 180 градуска чейин, кызмат цикли 7,5тен 0 градуска чейинки кызмат цикли менен 90 градустан сервону жылдыруу үчүн сигналдын пин циклинин (бул жерде түшүндүрүлгөн) тандоо сыяктуу жөнөкөй. 12.5

GPO катары RPi. GPIO импорттоо

импорттоо убактысы GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) GPIO.setup (12, GPIO. OUT) p = GPIO. PWM (12, 50) p.start (7.5) аракет кылыңыз: ал эми True: p. ChangeDutyCycle (7.5) # 90 градус убактысы. Уйку (1) p. ChangeDutyCycle (2.5) # 0 градус убактысы GPIO.cleanup ()

6 -кадам: 6 -кадам: аны күйгүзүү

6 -кадам: аны күйгүзүү
6 -кадам: аны күйгүзүү
6 -кадам: аны күйгүзүү
6 -кадам: аны күйгүзүү

Үкү чуркоо үчүн код үйрөткүчү (малина пи менен аудио ойнотуу)

а. USB динамикти сайыңыз.

б. Үн жүктөп алыңыз - биз коркунучтуу тамашаны тандап алдык.

в. Бул буйрукту аткаруу менен үндү ойнотуңуз: omxplayer -o alsa: hw: 1, 0 owl_sound.mp3

[d. Эгер бул иштебесе, alsamixer командасын колдонуу менен Pi кандай өндүрүштү жана кайсы көлөмдө экенин текшериңиз - сиз миксер экраны менен тосуп алынасыз, анда сиз үндү өзгөртүп, медиа түзмөгүңүздү тандай аласыз. Үнүңүздүн үнүн жогорулатуу үчүн, omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500 сыяктуу буйрукту аткарыңыз.

субпроцессин импорттоо

command = "omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500" player = subprocess. Popen (command.split (''), stdin = subprocess. PIPE, stdout = subprocess. PIPE, stderr = subprocess Түтүк)

7 -кадам: 7 -кадам: Пи тартып видеону агылтыңыз

7 -кадам: Pi'ден видеону агылтыңыз
7 -кадам: Pi'ден видеону агылтыңыз
7 -кадам: Pi'ден видеону агылтыңыз
7 -кадам: Pi'ден видеону агылтыңыз

Малина пи камера агымын түзүүнүн код үйрөткүчү

а. Python app.py иштетип, жергиликтүү тармагыңыздан https://raspberrypi.local: 5000 дарегинен көрүңүз

б. Бул код Мигель Гринбергден алынган жана бир аз ыңгайлаштырылган https://blog.miguelgrinberg.com/post/flask-video-… ал кандайча жасалганын сонун түшүндүрөт жана анын үйрөткүчтөрү сонун-дефо аны текшерип көр! Негизги түшүнүк, биз агымдын ылдамдыгын жакшыртуу үчүн жип менен генераторлорду колдонобуз.

8 -кадам: 8 -кадам: Денени аныктоо

8 -кадам: Денени аныктоо
8 -кадам: Денени аныктоо

Денени аныктоо коду (малина pi менен видео агымында ImageNetSSD)

а. Биз Raspberry Pi 4тү колдонуп жаткандыктан, биз буга чейин чектелген негизги HaarCascade методунун ордуна, тереңирээк үйрөнүү моделдерин сынап көрүү туура деп ойлодук.

б. YOLOv3 сыяктуу супер сонун көрүнгөн, алдын ала даярдалган кээ бир моделдерди карап чыктык. YOLOv3 кичинекей салмактары, бул Pi үчүн эң сонун болмок, бирок биз аны иштете алган жокпуз:(в. Анын ордуна, биз бул коддон билгенибиздей, OpenCVs DNN (терең нейрон тору) модулун колдонуп иштете турган MobileSSD моделин тандап алдык: https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 жана сүрөттөрдү иштетүү боюнча сабактардын каарманы Адриан Розбруктан: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- opencv/

г. Бирок, биз бул мазмунду агылтууга жана моделдерди ар бир кадрда иштетүүгө аракет кылып жаткандыктан, бул артта калган, үзүндү видеого алып келет. Биз кайрадан Адриан Розеброктон үйрөндүк https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/ жана Python мультипроцессинг модулун колдонуп, сүрөттөрүбүздү кезекке койдук. камеранын агымын ушунчалык катуу тоспостон аларды кайра иштетүүгө болот.

д. Кодду өзүңүз иштетип көрүңүз:)

9 -кадам: 9 -кадам: Zombie эскертмелерин жөнөтүү

9 -кадам: Zombie эскертмелерин жөнөтүү
9 -кадам: Zombie эскертмелерин жөнөтүү
9 -кадам: Zombie эскертмелерин жөнөтүү
9 -кадам: Zombie эскертмелерин жөнөтүү

Билдирүү жөнөтүү коду (телефонго python)

а. Биз https://pushed.co билдирүү кызматын колдонууну чечтик.

б. Сиз бекер каттоо эсебин алып, колдонмону жүктөп алып, чындап эле мобилдик эскертмелерди түзө аласыз. Билдирмелерди ушул сыяктуу питон скриптин колдонуу менен түздүк.

импорттук сурамдар

payload = {"app_key": "APP_KEY", "app_secret": "APP_SECRET", "target_type": "app", "content": "Үкү зомбини аныктады." } r = request.post ("https://api.pushed.co/1/push", data = payload)

Бул өтө жөнөкөй жана сиз эскертмеңиздин атын өзгөртө аласыз!

10 -кадам: Кандай шумдук

Кандай Уят!
Кандай Уят!

Биздин Smart Security Owl долбоору сизге жакты деп ишенебиз! Бул супер кызыктуу болду жана мен үйүмдү биздин ишенимдүү үкүбүз кайтарып жатканын билгенде өзүмдү бир топ коопсуз сезем.

Эгер сиз муну акылдуу үйүңүзгө жомоктогудай Хэллоуин деп ойлосоңуз, бизге Instructables Halloween конкурсунда добуш бериңиз жана адаттагыдай эле, жакканды, комментарий жазганды жана жазылууну унутпаңыз!

Кат таратуу кызматынын тизмесине кол коет!

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