Përmbajtje:

Zile e dyerve me njohjen e fytyrës: 7 hapa (me fotografi)
Zile e dyerve me njohjen e fytyrës: 7 hapa (me fotografi)

Video: Zile e dyerve me njohjen e fytyrës: 7 hapa (me fotografi)

Video: Zile e dyerve me njohjen e fytyrës: 7 hapa (me fotografi)
Video: Нэнси Кэнвишер: Нейронный портрет человеческого разума 2024, Korrik
Anonim
Zile derë me njohjen e fytyrës
Zile derë me njohjen e fytyrës

Motivimi

Kohët e fundit, ka pasur një valë grabitjesh në vendin tim të cilat synojnë të moshuarit në shtëpitë e tyre. Zakonisht, aksesi jepet nga vetë banorët pasi vizitorët i bindin ata se janë kujdestarë/infermierë. Beyondshtë thjesht përtej fjalëve, sa të zemëruar dhe të trishtuar më bëjnë të ndihem këto histori. Shtëpia duhet të jetë streha juaj e parë e sigurt dhe aq më tepër nëse jeni tashmë në një pozitë të cenueshme kur jeni jashtë. Me këtë në mendje, fillova këtë projekt.

Informacion i pergjithshem

Sistemi i ziles së derës është projektuar kryesisht për personat e moshuar ose me shikim të dëmtuar dhe është mjaft i drejtpërdrejtë në funksionimin e tij. Me pak fjalë, çelësi i ziles së derës e nxit kamerën të marrë pamje. Tjetra, fytyrat në pamje zbulohen dhe përputhen me një listë të bardhë dhe listë të zezë. Banori merr reagime të qarta vizuale nga një ekran i qartë i semaforit. Në këtë mënyrë, drita jeshile, e verdhë ose e kuqe tregojnë se personi (et) janë në listën e bardhë, të panjohur për sistemin ose në listën e zezë përkatësisht. Nëse ndizet drita e verdhë ose e kuqe, fotografia dërgohet nga një bot Telegram për të informuar/paralajmëruar një të afërm ose kujdestar.

Niveli i ekspertizës

Projekti u krijua për entuziastët që janë veçanërisht kuriozë për përdorimin e vizionit kompjuterik dhe inteligjencës artificiale. Ky udhëzues është shkruar për një audiencë fillestare, kështu që mos u shqetësoni nëse nuk keni përvojë! Për më tepër, projekti mund të jetë interesant edhe për krijuesit më me përvojë pasi tubacioni është i organizuar në atë mënyrë që ta zgjeroni atë me vizionin tuaj kompjuterik dhe idetë e njohjes së fytyrës pa shumë sherr.

Hapi 1: Materialet

Materiale
Materiale

Lista e produkteve me kërkesat minimale:

Produkt Lidhja Komentoni
Raspberry Pi 3b RPi Lidhja tregon RPi 4 pasi ka performancë më të mirë dhe çmim pothuajse të barabartë me RPi 3b.
Mikro SD Amazon Një kartë micro SD prej 16 GB ose më e madhe do ta bëjë punën. Por kartat 16 GB në Amazon tani janë pothuajse të njëjtin çmim me kartat 32 GB.
Kamera Raspberry Pi Amazon Kamera v1 është më e lirë, por v2 është më e mirë dhe do të mbështetet më gjatë.
15 kabllo fleksibël FPC Amazon Gjatësia në të vërtetë varet nga rrethanat e kryerjes së këtij projekti. Nëse thjesht doni të ndërtoni një prototip, kablloja fleksibël origjinale do ta bëjë punën.
Furnizimi me energji 5v mikro usb Adafruit Ky nuk e la kurrë të ulet! Cilësi e madhe. (Jo në foto)
Butona Arcade me LED të integruar Amazon Zgjidhni madhësinë që dëshironi, por dizajni CAD bazohet në butona 60 mm
Rezistencat Amazon Ju duhen vetëm disa rezistenca 1k dhe 100 ohm. Të rregullt 1/4W janë mirë.
Kondensatorët 0.1 uF Amazon Nevojiten tre kondensatorë. (Jo në foto)
Tela Jumper / Kabllo me shirit AmazonAmazon Nëse dëshironi të kurseni vetes disa dollarë, mund të përdorni gjithashtu një kabllo të vjetër me shirit floppy drive (shiko foton).
Tub tkurrës / Shirit elektrik AmazonAmazon

Mjetet e nevojshme:

Vegël Thelbësore? Komentoni
Makine per ngjitjen e metalit po
Multimetër po
Zhveshës me tela po Ose mund të përdorni thikë/gërshërë.
Prerës Laser Jo
Printer 3D Jo
Kapëse Jo E dobishme për mbajtjen e kutisë së bashku në fazën e testimit.

Vërejtje:

Për të rritur aksesueshmërinë e projektit, vendosa ta zhvilloj atë duke përdorur një Raspberry Pi 3b. Ndërsa rrit aksesueshmërinë, zvogëlon aftësitë e aplikacionit pasi RPi nuk janë aq të shpejtë. Nëse jeni duke kërkuar për një kompjuter të vetëm bordi që është më i shpejtë, ju mund të dëshironi të hidhni një sy në NVIDIA Jetson Nano

Hapi 2: Instalimet elektrike

Instalime elektrike
Instalime elektrike
Instalime elektrike
Instalime elektrike
Instalime elektrike
Instalime elektrike

Diagrami skematik është më informues për këtë hap dhe është mjaft vetë shpjegues. Në rast se jeni i ri në elektronikë, mund të përdorni imazhin e legjendës. Vlera e komponentit (nëse aplikohet) tregohet në diagramin skematik. Fotografitë mund të ndihmojnë për të parë se si e ndërtoj qarkun. Në thelb, unë i lidha të gjithë përbërësit sa më afër butonit të arkadës që është e mundur, gjë që rezulton në një pasqyrë të qartë të asaj që po ndodh.

Vërejtje:

  • Më pëlqen shumë të përdor lidhësa të kabllove me shirita, pasi ato janë më të forta sesa përdorimi i telave të vetëm me bluzë.
  • Siç sugjerohet, unë kam përdorur një kabllo fshirëse fjongo nga një kompjuter i vjetër. Kjo është pak e ndërlikuar, meqenëse do t'ju duhet të pohoni manualisht konfigurimin e kabllit. Në këtë projekt për shembull, zbulova se disa vrima ishin të lidhura me njëra -tjetrën (ndoshta të përdorura si tokë për aplikimin origjinal). Prandaj, më duhej të merrja një kabllo tjetër më vonë siç mund ta shihni në fotografi.

Hapi 3: Ndërtimi i zorrës

Ndërtimi i zorrës
Ndërtimi i zorrës
Ndërtimi i zorrës
Ndërtimi i zorrës
Ndërtimi i zorrës
Ndërtimi i zorrës
Ndërtimi i zorrës
Ndërtimi i zorrës

Zorrë e kamerës

Shumë zorrë për picamera mund të shkarkohen lirshëm nga interneti. Pra, unë zgjedh të mos e shpik përsëri timonin dhe të zgjedh një shtresë bazë, por të bukur nga interneti: thingiverse.com - Rast/mbyllje e kamerës Raspberry pi. (Bërtisni projektuesit VGer.)

Zorrë semafori

Për shtresën e semaforit, unë projektova një kuti të vogël në Autodesk Fusion 360 (e cila mund të shkarkohet lirshëm, shihni Vërejtjet) që i përshtatet të gjithë pajisjeve. Në shtojcë, mund të gjeni skedarin që kam dërguar në kompaninë time lokale të prerjes me lazer. Në këtë mënyrë, dizajni bazohet në një trashësi të pllakës 6 mm. Sidoqoftë, nëse doni të rregulloni gjërat, mund të përdorni të gjitha llojet e formateve të skedarëve duke përdorur këtë lidhje. Siç tregohet në fotografi, ju gjithashtu mund të përdorni një kuti kartoni nëse nuk keni qasje në një prestar lazer. Kam përdorur kutinë e kartonit në foto për prototipim dhe funksionon si një bukuri.

Asambleja është mjaft e drejtë përpara:

  1. Montoni çelsat e Arcade.
  2. Sigurohuni që t'i mbani telat pa zile në derë.
  3. Lidhni kabllon e shiritit me RPi.
  4. Vidhosni RPi në panelin e poshtëm.
  5. Lidhni telat e ziles së derës me një lidhës teli dhe montojeni atë gjithashtu në panelin e poshtëm.
  6. Lidhni Picamera me RPi.
  7. Stërvitni një vrimë në njërën nga panelet anësore për telin e ndërrimit të ziles dhe tela të energjisë RPi.

Lidhësi i telit përdoret si një pikë montimi për telat e ndërrimit të ziles, në mënyrë që të fiksohet më vonë në një zile ekzistuese të derës. Tani gjithçka është në vend dhe mund të ngjitet së bashku. Sidoqoftë, së pari mund të dëshironi të përfundoni hapat e ardhshëm, për t'u siguruar që gjithçka funksionon ashtu siç supozohet të jetë.

Vërejtje:

Autodesk Fusion 360 është falas në dispozicion për hobiistët! Nëse dëshironi të merrni kopjen tuaj, vizitoni këtë lidhje: autodesk.com - Fusion 360 For Hobbyists. Ka disa terma, prandaj sigurohuni që t'i lexoni dhe t'i zbatoni ato. Ishte projekti im i parë me Fusion 360 dhe nuk kam shumë përvojë në përdorimin e softuerit CAD, por duhet të them që më pëlqen shumë softveri dhe të gjitha mjetet shtesë që vijnë me Fusion 360

Hapi 4: Konfigurimi i kamerës

Konfigurimi i kamerës
Konfigurimi i kamerës
Konfigurimi i kamerës
Konfigurimi i kamerës
Konfigurimi i kamerës
Konfigurimi i kamerës

Supozohet se keni instaluar Raspbian dhe se funksionon në modalitetin GUI. Nëse nuk e keni ende të instaluar Raspbian, mund të ndiqni këtë artikull: raspberrypi.org - Instalimi i imazheve të sistemit operativ. Nëse nisni Raspbian, duhet të shihni një desktop siç tregohet në fotografi.

Le të konfigurojmë kamerën në RPi dhe të shohim nëse funksionon! Metoda e përshkruar këtu është drejtpërdrejt nga raspberrypi.org - Dokumentacioni. Së pari, le të përditësojmë paketat më të fundit (përfshirë firmware -in e kamerës) duke ekzekutuar komandat e mëposhtme në një dritare të terminalit (shiko fotot):

sudo apt përditësim

sudo apt azhurnim i plotë

Tjetra, kamera duhet të aktivizohet duke përdorur komandën e mëposhtme:

sudo raspi-config

Në meny, shkoni te 5. Opsionet e ndërlidhjes -> Kamera P1. Zgjidhni të aktivizoni kamerën dhe rindizni RPi duke ekzekutuar:

ristartoj

Kamera tani duhet të konfigurohet siç duhet. Mund të testohet duke hapur një dritare terminale dhe të ekzekutojë:

raspistill -v -o /home/pi/test.jpg

Imazhi ruhet në: /home /pi.

Hapi 5: Vendosja e Docker -it

Vendosja e Docker -it
Vendosja e Docker -it
Vendosja e Docker -it
Vendosja e Docker -it
Vendosja e Docker -it
Vendosja e Docker -it
Vendosja e Docker -it
Vendosja e Docker -it

Për të shmangur varësinë dhe gabimet e instalimit, vendosa të krijoj një imazh të personalizuar Docker për këtë projekt (shiko wikipedia.org - Docker). Nëse nuk keni përdorur ose dëgjuar për Docker, mos u shqetësoni, unë do t'ju shpjegoj hap pas hapi se si ta përdorni në këtë projekt. Në fakt, është super e lehtë! Në rast se doni të ekzekutoni këtë projekt në një instalim lokal (në vend të një kontejner Docker), unë do t'ju jap disa këshilla. Por rekomandohet shumë të përdorni imazhin Docker. Në fund të fundit, unë e ndërtoj atë për ta bërë më të lehtë për ju që të drejtoni këtë projekt!

Çfarë është Docker?

Shënim: kjo pjesë siguron disa informacione në lidhje me Docker, të cilat mund të anashkalohen nëse thjesht dëshironi të ekzekutoni kodin.

Ky projekt është hera e parë që kam përdorur Docker dhe është thjesht i mrekullueshëm! Ndoshta keni dëgjuar për virtualenv ose Anaconda për Python? Epo, Docker është mjaft i ngjashëm në kuptimin që ju mund të menaxhoni me lehtësi versionet e paketave dhe të ekzekutoni versione të ndryshme Python në një sistem host duke përdorur një mjedis të ndryshëm (ose enë siç quhet në Docker). Por, në krahasim me virtualenv dhe Anaconda, Docker është shumë më i fuqishëm pasi nuk është i kufizuar të përmbajë vetëm paketa Python. Në të vërtetë, në një enë Docker, ju mund të instaloni dhe menaxhoni edhe paketat e një sistemi operativ të dëshiruar. Për shembull, merrni parasysh një faqe në internet që dëshironi të migroni që drejton një kuadër uebi Python (p.sh. Django) me një bazë të dhënash (p.sh. MySQL). Pa një enë Docker, do t'ju duhet të instaloni të gjitha paketat në serverin e ri, një proces i cili është shumë i prirur ndaj gabimeve dhe defekteve. Nga ana tjetër, kur uebfaqja juaj është ndërtuar në Docker, migrimi është në thelb po aq i lehtë sa zhvendosja e skedarit/skedarëve të imazhit në serverin e ri dhe drejtimin e tij/tyre. Siç mund ta imagjinoni, Docker është shumë i dobishëm edhe për projekte në Instructables;)! Nëse doni të dini më shumë për Docker, shikoni faqen e tyre të internetit: docker.org - Docker: Platforma e Kontejnerëve të Ndërmarrjeve. Tani, le të ngrihemi dhe të punojmë me Docker!

Instalimi i Docker

Instaloni Docker duke ekzekutuar:

curl -sSL https://get.docker.com | sh

Tjetra, përdoruesi shtohet në grupin e përdoruesve 'docker', i cili siguron të drejtat për të drejtuar Docker. Kjo bëhet nga:

sudo usermod -aG docker $ USER

Tani, duhet të jeni në gjendje të drejtoni Docker. Kjo mund të vërtetohet duke ekzekutuar imazhin e përshëndetjes botërore:

docker run hello-world

Së fundmi, le të tërheqim imazhin Docker që përmban të gjitha varësitë e nevojshme për të ekzekutuar skriptet Python të ziles së derës. Ky proces mund të zgjasë pak pasi imazhi është mjaft i madh (~ 1.5 GB). Ekzekutoni:

docker pull erientes/zile derë

Shënim: Dockerfile mund të gjendet në depon e ziles së derës në Github. Tani, gjithçka është gati për të ekzekutuar skriptet e ziles, të cilat do të diskutohen në hapin tjetër.

Instalimi lokal

Përsëri, unë do të rekomandoja shumë që të përdorni imazhin Docker në vend të një instalimi lokal. Por për ta bërë këtë tutorial të plotë, tani do të përshkruaj disa nga hapat që kam ndërmarrë për instalimin lokal.

Për të qenë në gjendje të ekzekutoni kodin, versioni i python duhet të jetë> = 3.5 (kam përdorur python 3.5.3) dhe paketat e mëposhtme duhet të instalohen:

  • njohje_fytyre
  • kamera
  • i mpirë
  • Jastëk
  • python-telegram-bot
  • RPi. GPIO

Kjo lidhje është mjaft e dobishme: Github - Instaloni dlib dhe face_recognition në një Raspberry Pi. Sidoqoftë, ka disa paralajmërime këtu: 1) Jastëku ka nevojë për të paktën Python 3.5, i cili nuk do të instalohet duke ndjekur këtë metodë. 2) Gjithashtu, jo të gjitha paketat që nevojiten në projektin e ziles së derës do të instalohen duke ndjekur këtë metodë. Sidoqoftë, duhet të jeni në gjendje ta instaloni duke përdorur thjesht pip3.

Hapi 6: Drejtimi i Skripteve të Doorbell

Drejtimi i shkrimeve të ziles së derës
Drejtimi i shkrimeve të ziles së derës
Drejtimi i shkrimeve të ziles së derës
Drejtimi i shkrimeve të ziles së derës
Drejtimi i shkrimeve të ziles së derës
Drejtimi i shkrimeve të ziles së derës

Merrni skriptet

Skriptet mund të shkarkohen manualisht nga: github.com - Erientes/zile derë. Ose nëse e keni të instaluar Git, ekzekutoni:

git klon

Krijo pseudonime

Tani, për ta bërë jetën tonë pak më të lehtë, le të krijojmë disa pseudonime për të drejtuar skriptet. Ekzekutoni:

fletë fletë/.bashrc

Shtoni rreshtat e mëposhtëm dhe ruani skedarin:

alias doorbell_run = 'docker run --privileged -v/home/pi/doorbell:/doorbell -w/doorbell -it erientes/doorbell python $ 1'

alias doorbell_login = 'docker run --privileged -v/home/pi/doorbell:/doorbell -w/doorbell -it erientes/doorbell bash'

Testoni skriptet

Për të provuar nëse gjithçka është instaluar siç duhet, hapni një terminal të ri dhe ekzekutoni:

shembuj doorbell_run/0_test_installation.py

Rezultati thjesht duhet të jetë një mesazh në dritaren e terminalit që thotë 'Instalimi i ziles së derës përfundoi me sukses!'. Për të provuar nëse kamera mund të arrihet nga ena Docker, ekzekutoni:

shembuj të ziles së derës/1_test_camera.py

Duke ekzekutuar 1_test_camera.py një fotografi do të merret dhe ruhet si 'test.jpg', e cila mund të gjendet në/home/pi/doorbell. Së fundmi, drejtuesit LED mund të testohen duke ekzekutuar:

shembuj të ziles së derës/2_test_voicehat_drivers.py

Kur ky skenar po funksionon, LED në çelësin e arkadës duhet të përgjigjet kur shtypet butoni.

Drejtimi i skripteve të Doorbell

Për të ekzekutuar skriptet Doorbell, së pari duhet të merren kredencialet e bot Telegram. Instaloni Telegramin në telefonin tuaj dhe shkoni te telegram.me - Botfather. Filloni një bisedë dhe futni:

/newbot

Plotësoni një emër dhe një emër përdoruesi për botin. Pas kësaj, do t'ju sigurohet shenja e hyrjes. Kopjoni atë vlerë në skedarin 'credentials_telegram_template.py' në/home/pi/doorbell dhe ruajeni në një skedar të ri të quajtur 'credentials_telegram.py'. Së fundi, filloni një bisedë me botin që sapo keni krijuar duke klikuar në lidhjen që ju ofron Botfather.

Së fundi, le të drejtojmë Zilen e Dyer me Njohjen e Fytyrës:

zile_runë kryesore.py

Vërejtje:

Nëse doni të dini më shumë se si funksionon kodi, shikoni komentet në vetë skriptet. Nëse keni ndonjë pyetje në lidhje me kodin, ju lutemi më kontaktoni përmes Github

Hapi 7: Përdorimi i ziles së derës

Image
Image
Duke përdorur zilen e derës
Duke përdorur zilen e derës
Duke përdorur zilen e derës
Duke përdorur zilen e derës

Le të ekzekutojmë skenarin e ziles së derës duke ekzekutuar:

zile_runë kryesore.py Pas ngarkimit të paketave, skriptet kalojnë në punë. Në thelb ka 2 gjëra që mund të ndodhin:

  1. Dikush i bie ziles së derës.
  2. Dikush i shtohet listës së bardhë.

Dikush i bie ziles së derës

Në këtë rast, skenari do të fillojë të marrë fotografi derisa të shkrepë një fotografi në të cilën zbulohet një fytyrë. Pas zbulimit, disa metoda nga paketa python 'face_recognition' thirren për të llogaritur një kodim 128 të fytyrës. Më tej, kodimi i marrë krahasohet me kodimet në listën e bardhë.csv dhe listën e zezë.csv. Rezultatet e mundshme rezultojnë në përgjigjen e mëposhtme:

Në listën e bardhë? Në listën e zezë? Përgjigje
po Jo Drita jeshile ndizet.
po po Drita e verdhë ndizet. Kamera e ziles së derës dërgon fotografi në Telegram bot me ikonë portokalli. Kjo gjendje mund të ndodhë nëse dikush u shtua në të dy listat. Për shembull, kur dikush ishte i mirëpritur në fillim, por ishte në listën e zezë më vonë.
Jo Jo Drita e verdhë ndizet. Kamera e ziles së derës dërgon fotografi në Telegram bot me ikonë portokalli.
Jo po Drita e kuqe ndizet. Kamera e ziles së derës dërgon fotografi në Telegram bot me ikonën e kuqe.

Dikush i shtohet listës së bardhë

Për të shtuar dikë në listën e bardhë, shtypni butonin e verdhë të semaforit kur zilja e derës është në gjendje boshe. Së pari, drita e verdhë do të ndizet. Nëse drita jeshile pulson 3 herë, fytyra e personit shtohet me sukses në listën e bardhë. Nëse drita jeshile nuk ndizet 3 herë, përpjekja nuk ishte e suksesshme. Në atë rast, shtypni përsëri butonin e verdhë. Ju lehtë mund të verifikoni nëse ishte i suksesshëm duke i rënë ziles dhe duke kontrolluar nëse drita jeshile është kaluar.

Si të shtoni dikë në listën e zezë?

Natyrisht, njerëzit me qëllime të këqija nuk do të kalojnë për të na dhënë një fotografi të fytyrës së tyre. Pra, në vend të kësaj, ju mund të shtoni imazhe të njerëzve famëkeq që (për shembull) policia ka publikuar në dosjen img/lista e zezë. Çdo orë, kjo dosje kontrollohet për imazhe të reja. Nëse ka një imazh të ri, kodimi i fytyrës llogaritet dhe shtohet në listën e zezë.csv. Imazhi pastaj riemërohet dhe zhvendoset në dosjen/img/lista e zezë/koduar.

Vërejtje:

  • Funksionimi i skripteve me hyrjen në RPi siguron më shumë kontroll dhe informacion, por kontrolli dhe informacioni bazë mund të merret vetëm duke përdorur ekranin e semaforit.
  • Njohja e fytyrës zbatohet duke përdorur paketën python 'face_recognition'. Kjo paketë bazohet në Dlib që përmban një algoritëm më të avancuar të njohjes së fytyrës, i cili kryen një saktësi prej 99.38% në standardin e etiketuar në Fytyrat e Etiketuara (burimi: dlib.net-Njohja e fytyrës me cilësi të lartë me mësim metrikë të thellë))
Konkursi teknik ndihmës
Konkursi teknik ndihmës
Konkursi teknik ndihmës
Konkursi teknik ndihmës

Çmimi i Parë në Konkursin Teknik Ndihmës

Recommended: