Orodha ya maudhui:

Mlango wa Mlango na Utambuzi wa Uso: Hatua 7 (na Picha)
Mlango wa Mlango na Utambuzi wa Uso: Hatua 7 (na Picha)

Video: Mlango wa Mlango na Utambuzi wa Uso: Hatua 7 (na Picha)

Video: Mlango wa Mlango na Utambuzi wa Uso: Hatua 7 (na Picha)
Video: ONGEZA NGUVU ZA KIUME | masaa 3 Bila kuchoka | WANAUME TU HII 2024, Novemba
Anonim
Mlango wa Mlango na Utambuzi wa Uso
Mlango wa Mlango na Utambuzi wa Uso

Hamasa

Hivi karibuni, kumekuwa na wimbi la wizi katika nchi yangu ambao unalenga watu wazee katika nyumba zao. Kawaida, ufikiaji hutolewa na wenyeji wenyewe kwani wageni huwashawishi kuwa wao ni wahudumu / wauguzi. Ni zaidi ya maneno tu, jinsi hadithi hizi zinavyonitia hasira na kusikitisha. Nyumba inapaswa kuwa kimbilio lako la kwanza salama na hata zaidi ikiwa tayari uko katika mazingira magumu unapokuwa nje. Kwa kuzingatia, nilianzisha mradi huu.

Habari za jumla

Mfumo wa kengele umeundwa hasa kwa wazee au watu wasio na uwezo wa kuona na ni sawa mbele katika utendaji wake. Kwa kifupi, kitufe cha mlango huchochea kamera kupata picha. Ifuatayo, nyuso kwenye picha hugunduliwa na kuendana na orodha nyeupe na orodha nyeusi. Mkaaji hupata maoni wazi ya mwonekano na onyesho wazi la taa ya trafiki. Kwa hivyo, taa ya kijani, manjano au nyekundu inaonyesha kuwa mtu huyo yuko kwenye orodha nyeupe, haijulikani kwa mfumo au kwenye orodha nyeusi kwa mtiririko huo. Ikiwa taa ya manjano au nyekundu imesababishwa, picha hutumwa na bot ya Telegram kumjulisha / kumuonya jamaa au msimamizi.

Kiwango cha utaalam

Mradi ulianzishwa kwa wapendaji ambao wanapenda sana kutumia maono ya kompyuta na akili ya bandia. Hii inaweza kufundishwa kwa wasikilizaji wa Kompyuta, kwa hivyo usijali ikiwa hauna uzoefu! Kwa kuongezea, mradi huo unaweza kufurahisha kwa watengenezaji wenye uzoefu zaidi kwani bomba limepangwa kwa njia ambayo unaweza kuipanua na maono yako mwenyewe ya kompyuta na maoni ya utambuzi wa uso bila shida nyingi.

Hatua ya 1: Vifaa

Vifaa
Vifaa

Orodha ya bidhaa na mahitaji ya chini:

Bidhaa Kiungo Maoni
Raspberry Pi 3b RPi Kiungo kinaonyesha RPi 4 kwani ina utendaji bora na bei sawa kama RPi 3b.
Micro SD Amazon Kadi ndogo ya SD ya 16 GB au kubwa itafanya kazi hiyo. Lakini kadi 16 GB kwenye Amazon sasa ni bei sawa na kadi 32 GB.
Kamera ya Raspberry Pi Amazon Kamera v1 ni ya bei rahisi, lakini v2 ni bora na itasaidiwa tena.
15 siri FPC cable Amazon Urefu unategemea mazingira ya kufanya mradi huu. Ikiwa unataka tu kujenga mfano, kebo ya asili ya flex itafanya kazi hiyo.
Ugavi wa Nguvu 5v usb ndogo Matunda Huyu hajawahi kukutana chini! Ubora mzuri. (Sio kwenye picha)
Vifungo vya Arcade na LED iliyojengwa Amazon Chagua saizi unayotaka, lakini muundo wa CAD unategemea vifungo 60mm
Resistors Amazon Unahitaji tu vipinzani 1k na 100 ohm. Mara kwa mara 1 / 4W ni sawa.
Capacitors 0.1 uF Amazon Capacitors tatu zinahitajika. (Sio kwenye picha)
Waya za Jumper / Cable ya Utepe AmazonAmazon Ikiwa unataka kujiokoa pesa kadhaa, unaweza kutumia kebo ya zamani ya diski ya diski (tazama picha).
Bomba la kushuka / mkanda wa Umeme AmazonAmazon

Zana ambazo zinahitajika:

Zana Muhimu? Maoni
Chuma cha kulehemu Ndio
Multimeter Ndio
Mtoaji wa waya Ndio Au unaweza kutumia kisu / mkasi.
Laser Cutter Hapana
Printa ya 3D Hapana
Vifungo Hapana Muhimu kwa kuweka sanduku pamoja katika awamu ya upimaji.

Maneno:

Ili kuongeza upatikanaji wa mradi huo, niliamua kuiboresha kwa kutumia Raspberry Pi 3b. Ingawa inaongeza upatikanaji, inapunguza uwezo wa programu kwani RPi sio haraka sana. Ikiwa unatafuta kompyuta moja ya bodi ambayo ni haraka, unaweza kutaka kuangalia NVIDIA Jetson Nano

Hatua ya 2: Wiring

Wiring
Wiring
Wiring
Wiring
Wiring
Wiring

Mchoro wa kielelezo unaelimisha zaidi kwa hatua hii na inajielezea kabisa. Ikiwa wewe ni mpya kwa umeme, unaweza kutumia picha ya hadithi. Thamani ya sehemu hiyo (ikiwa inatumika) imeelezwa kwenye mchoro wa skimu. Picha zinaweza kusaidia kuona jinsi ninavyounda mzunguko. Kimsingi, niliunganisha vifaa vyote karibu na kitufe cha arcade iwezekanavyo ambayo husababisha muhtasari wazi wa kile kinachoendelea.

Maneno:

  • Ninapenda sana kutumia viunganisho vya kebo za Ribbon, kwani ni njia ngumu kuliko kutumia waya moja za kuruka.
  • Kama inavyopendekezwa, nimetumia kebo ya Ribbon iliyosagwa kutoka kwa kompyuta ya zamani. Hii ni ngumu sana ingawa kwa kuwa itabidi uthibitishe mwenyewe usanidi wa kebo. Kwa mfano katika mradi huu, niligundua kuwa mashimo kadhaa yalikuwa yameunganishwa na kila mmoja (labda hutumiwa kama msingi wa programu ya asili). Kwa hivyo, ilibidi nipate kebo tofauti baadaye kama unaweza kuona kwenye picha.

Hatua ya 3: Kujenga Kesi

Kujenga Casing
Kujenga Casing
Kujenga Casing
Kujenga Casing
Kujenga Casing
Kujenga Casing
Kujenga Casing
Kujenga Casing

Kesi ya kamera

Vipimo vingi vya kamera vinaweza kupakuliwa kwa uhuru kutoka kwa wavuti. Kwa hivyo, mimi huchagua kutotengeneza tena gurudumu na kuchukua kiboreshaji cha msingi lakini kizuri kutoka kwenye wavuti: thingiverse.com - Kesi / ua wa kamera ya Raspberry pi. (Piga kelele kwa mbuni VGer.)

Kitambaa cha taa ya trafiki

Kwa casing ya taa ya trafiki, nilibuni kisanduku kidogo katika Autodesk Fusion 360 (ambayo inaweza kupakuliwa kwa uhuru, angalia Maneno) ambayo yanafaa vifaa vyote. Katika kiambatisho, unaweza kupata faili ambayo nimetuma kwa kampuni yangu ya kukata laser. Kwa hivyo, muundo huo unategemea unene wa sahani ya 6mm. Walakini, ikiwa unataka kurekebisha vitu, unaweza kupata kila aina ya fomati za faili kwa kutumia kiunga hiki. Kama inavyoonyeshwa kwenye picha, unaweza kutumia sanduku la kadibodi ikiwa huwezi kufikia mkataji wa laser. Nilitumia sanduku la kadibodi kwenye picha kwa mfano na inafanya kazi kama hirizi.

Mkutano uko sawa sawa mbele:

  1. Panda swichi za Arcade.
  2. Hakikisha kuweka waya kwa kengele ya mlango bure.
  3. Unganisha kebo ya Ribbon na RPi.
  4. Piga RPi kwenye paneli ya chini.
  5. Unganisha waya za mlango kwa kiunganishi cha waya na uiweke kwenye jopo la chini pia.
  6. Unganisha Picamera na RPi.
  7. Piga shimo kwenye moja ya paneli za upande kwa waya inayobadilisha mlango na waya wa nguvu wa RPi.

Kiunganishi cha waya hutumiwa kama sehemu inayopandikiza kwa waya za kubadili mlango, ili iweze kurekebishwa kwa kengele iliyopo baadaye. Kila kitu sasa kiko mahali na kinaweza kushikamana pamoja. Walakini, unaweza kwanza kutaka kumaliza hatua zifuatazo, kuhakikisha kila kitu kinafanya kazi jinsi inavyotakiwa kuwa.

Maneno:

Autodesk Fusion 360 inapatikana kwa hiari kwa wapenzi wa hobby! Ikiwa unataka kupata nakala yako, tembelea kiunga hiki: autodesk.com - Fusion 360 Kwa Hobbyists. Kuna maneno kadhaa, kwa hivyo hakikisha kuyasoma na kuyatumia. Ulikuwa mradi wangu wa kwanza na Fusion 360 na sina uzoefu mwingi wa kutumia programu ya CAD, lakini lazima niseme kwamba napenda sana programu na zana zote za ziada zinazokuja na Fusion 360

Hatua ya 4: Kusanidi Kamera

Kusanidi Kamera
Kusanidi Kamera
Kusanidi Kamera
Kusanidi Kamera
Kusanidi Kamera
Kusanidi Kamera

Inachukuliwa kuwa umeweka Raspbian na kwamba inaendesha katika hali ya GUI. Ikiwa bado haujawekwa Raspbian, unaweza kufuata nakala hii: raspberrypi.org - Kusanikisha picha za mfumo wa uendeshaji. Ikiwa utawasha Raspbian, unapaswa kuona desktop kama inavyoonyeshwa kwenye picha.

Wacha tuisanidi kamera kwenye RPi na tuone ikiwa inafanya kazi! Njia iliyoelezewa hapa ni moja kwa moja kutoka kwa raspberrypi.org - Nyaraka. Kwanza, wacha tusasishe vifurushi vya hivi karibuni (pamoja na firmware ya kamera) kwa kutekeleza amri zifuatazo kwenye dirisha la terminal (angalia picha):

sasisho la sudo apt

Sudo apt-kuboresha kamili

Ifuatayo, kamera inapaswa kuwezeshwa kwa kutumia amri ifuatayo:

Sudo raspi-config

Kwenye menyu, nenda kwa 5. Chaguzi za Kuingiliana -> Kamera ya P1. Chagua kuwezesha kamera na uwashe tena RPi kwa kutekeleza:

reboot

Kamera inapaswa sasa kusanidiwa vizuri. Inaweza kupimwa kwa kufungua dirisha la terminal na kutekeleza:

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

Picha imehifadhiwa kwa: / nyumbani / pi.

Hatua ya 5: Kuweka Docker

Kuweka Docker
Kuweka Docker
Kuweka Docker
Kuweka Docker
Kuweka Docker
Kuweka Docker
Kuweka Docker
Kuweka Docker

Ili kuepuka makosa ya utegemezi na usakinishaji, niliamua kuunda picha ya Docker ya kawaida kwa mradi huu (tazama wikipedia.org - Docker). Ikiwa haujawahi kutumia au kusikia juu ya Docker, hakuna wasiwasi, nitaelezea hatua kwa hatua jinsi ya kuitumia katika mradi huu. Kwa kweli, ni rahisi sana! Ikiwa unataka kuendesha mradi huu kwenye usakinishaji wa ndani (badala ya kwenye kontena la Docker), nitakupa vidokezo. Lakini inashauriwa sana kutumia picha ya Docker. Baada ya yote, ninaijenga ili iwe rahisi kwako kuendesha mradi huu!

Docker ni nini?

Kumbuka: sehemu hii hutoa habari ya msingi juu ya Docker, ambayo inaweza kurukwa ikiwa unataka tu kutumia msimbo.

Mradi huu ni mara ya kwanza kutumia Docker na ni ya kushangaza tu! Labda umesikia juu ya fadhila au Anaconda kwa Chatu? Kweli, Docker ni sawa sawa kwa maana kwamba unaweza kudhibiti matoleo ya kifurushi na kuendesha matoleo tofauti ya Python kwenye mfumo mmoja wa mwenyeji kwa kutumia mazingira tofauti (au kontena kama inavyoitwa katika Docker). Lakini, ikilinganishwa na fadhila na Anaconda, Docker ina nguvu zaidi kwani haizuiliwi kuwa na vifurushi vya Python tu. Kwa kweli, katika chombo cha Docker, unaweza kusanikisha na kudhibiti pia vifurushi vya mfumo unaotaka wa uendeshaji. Kwa mfano, fikiria wavuti unayotaka kuhamia ambayo inaendesha mfumo wa wavuti wa Python (kwa mfano Django) na hifadhidata (k. MySQL). Bila kontena la Docker, itabidi usakinishe vifurushi vyote kwenye seva mpya, mchakato ambao unakabiliwa na makosa na mende. Kwa upande mwingine, wakati wavuti yako imekuwa ikijengwa katika Docker, kuhamia kimsingi ni rahisi kama kuhamisha faili / faili za picha kwenye seva mpya na kuziendesha. Kama unaweza kufikiria, Docker ni muhimu sana kwa miradi kwenye Maagizo pia;)! Ikiwa unataka kujua zaidi kuhusu Docker, angalia wavuti yao: docker.org - Docker: Jukwaa la Kontena la Biashara. Sasa, wacha tuamke na kukimbia na Docker!

Kufunga Docker

Sakinisha Docker kwa kutekeleza:

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

Ifuatayo, mtumiaji huongezwa kwenye kikundi cha mtumiaji 'docker', ambayo hutoa haki za kuendesha Docker. Hii imefanywa na:

Sudo usermod -aG docker $ USER

Sasa, unapaswa kuwa na uwezo wa kuendesha Docker. Hii inaweza kudhibitishwa kwa kutumia picha ya ulimwengu wa hello:

docker run hello-world

Mwishowe, wacha tuvute picha ya Docker ambayo ina utegemezi wote unaohitajika kuendesha hati za mlango wa Python. Utaratibu huu unaweza kuchukua muda kwani picha ni kubwa kabisa (~ 1.5 GB). Tekeleza:

docker kuvuta erientes / kengele ya mlango

Kumbuka: Dockerfile inaweza kupatikana kwenye ghala la mlango kwenye Github. Sasa, kila kitu kiko tayari kuendesha maandishi ya kengele ya mlango, ambayo itajadiliwa katika hatua inayofuata.

Ufungaji wa ndani

Tena, ningependekeza sana kutumia picha ya Docker badala ya usanikishaji wa ndani. Lakini ili kufanya mafunzo haya kukamilika, sasa nitaelezea hatua kadhaa nilizozichukua kwa usakinishaji wa ndani.

Ili kuweza kuendesha nambari, toleo la chatu linapaswa kuwa> = 3.5 (Nilitumia chatu 3.5.3) na vifurushi vifuatavyo vinahitaji kusanikishwa:

  • utambuzi_wa uso
  • kamera
  • numpy
  • Mto
  • chatu-telegram-bot
  • RPi. GPIO

Kiungo hiki kinasaidia sana: Github - Sakinisha dlib na uso_recognition kwenye Raspberry Pi. Walakini, kuna mapango hapa: 1) Mto unahitaji angalau Python 3.5, ambayo haitawekwa kufuatia njia hii. 2) Pia, sio vifurushi vyote vinavyohitajika katika mradi wa mlango wa mlango vitawekwa kwa kufuata njia hii. Walakini, unapaswa kuiweka kwa kutumia tu pip3.

Hatua ya 6: Kuendesha Hati za Mlango wa Mlango

Kuendesha Hati za Mlango
Kuendesha Hati za Mlango
Kuendesha Hati za Mlango
Kuendesha Hati za Mlango
Kuendesha Hati za Mlango
Kuendesha Hati za Mlango

Pata hati

Hati zinaweza kupakuliwa kwa mikono kutoka: github.com - Erientes / kengele ya mlango. Au ikiwa umeweka Git, fanya:

clone ya git

Unda majina

Sasa, kufanya maisha yetu iwe rahisi, wacha tuunde majina kadhaa ya kutumia hati. Tekeleza:

kijani cha majani ~ /.bashrc

Ongeza mistari ifuatayo na uhifadhi faili:

alias doorbell_run = 'docker run --privileged -v / home / pi / kengele ya mlango: / kengele -w / mlango wa mlango -i erientes / mlango wa chatu $ 1'

mlango wa mlango wa jina = 'docker run -privileged -v / home / pi / kengele ya mlango: / mlango -w / mlango wa mlango -i erientes / mlango wa mlango'

Hati za mtihani

Ili kujaribu ikiwa kila kitu kimewekwa sawa, fungua terminal mpya na utekeleze:

mifano ya mlango wa mlango / 0_test_installation.py

Matokeo yake yanapaswa kuwa ujumbe katika dirisha la terminal ambalo linasema 'Ufungaji wa mlango ulimalizika kwa mafanikio!'. Ili kujaribu ikiwa kamera inaweza kupatikana na chombo cha Docker, endesha:

mifano ya mlango wa mlango / 1_jaribio_camera.py

Kwa kukimbia 1_test_camera.py picha itapigwa na kuhifadhiwa kama 'test.jpg', ambayo inaweza kupatikana katika / home / pi / kengele ya mlango. Mwishowe, madereva ya LED yanaweza kupimwa kwa kutekeleza:

mifano ya kengele ya mlango / 2_jaribio_auti_ya_dereva.py

Wakati hati hii inafanya kazi, LED kwenye swichi ya arcade inapaswa kujibu wakati kitufe kinabanwa.

Kuendesha maandishi ya mlango wa mlango

Ili kuendesha hati za mlango wa mlango, kwanza hati za Telegram zinahitajika kupatikana. Sakinisha Telegram kwenye simu yako na nenda kwa telegram.me - Botfather. Anzisha mazungumzo na uingie:

/ mpya

Jaza jina na jina la mtumiaji la bot. Baada ya hapo, utapewa ishara ya ufikiaji. Nakili thamani hiyo kwenye faili 'sifa_telegram_template.py' ndani / nyumbani / pi / kengele ya mlango na uihifadhi kwenye faili mpya inayoitwa 'sifa_telegram.py'. Mwishowe, anza mazungumzo na bot ambayo umetengeneza tu kwa kubofya kiunga ambacho Botfather anakupa.

Mwishowe, wacha tuendeshe mlango wa mlango na Utambuzi wa Uso:

mlango wa mlango_kimbia kuu.py

Maneno:

Ikiwa unataka kujua zaidi juu ya jinsi nambari inavyofanya kazi, angalia maoni kwenye hati zenyewe. Ikiwa una swali juu ya nambari, tafadhali wasiliana nami kupitia Github

Hatua ya 7: Kutumia kengele ya mlango

Image
Image
Kutumia kengele ya mlango
Kutumia kengele ya mlango
Kutumia kengele ya mlango
Kutumia kengele ya mlango

Wacha tuendesha hati ya mlango kwa kutekeleza:

mlango wa mlango_kimbia kuu.py Baada ya kupakia vifurushi, hati zinafanya uvivu. Kuna mambo 2 ambayo yanaweza kutokea:

  1. Mtu hupiga kengele ya mlango.
  2. Mtu anaongezwa kwa orodha nyeupe.

Mtu hupiga kengele ya mlango

Katika kesi hii, hati itaanza kuchukua picha hadi itakapopiga picha ambayo uso hugunduliwa. Baada ya kugundua, njia zingine kutoka kwa kifurushi cha chatu 'uso_kutambua zinaitwa kuhesabu usimbuaji 128 wa uso. Ifuatayo, usimbuaji uliopatikana unalinganishwa na usimbuaji katika whitelist.csv na orodha nyeusi. Matokeo yanayowezekana husababisha majibu yafuatayo:

Kwa orodha nyeupe? Katika orodha nyeusi? Jibu
Ndio Hapana Taa ya kijani inawasha.
Ndio Ndio Nuru ya manjano inawasha. Kamera ya mlango hutuma picha kwa Telegram bot na ikoni ya machungwa. Hali hii inaweza kutokea ikiwa mtu aliongezwa kwenye orodha zote mbili. Kwa mfano, wakati mtu alikaribishwa mwanzoni, lakini akaorodheshwa baadaye.
Hapana Hapana Nuru ya manjano inawasha. Kamera ya mlango hutuma picha kwa Telegram bot na ikoni ya machungwa.
Hapana Ndio Taa nyekundu inawasha. Kamera ya mlango hutuma picha kwa Telegram bot na ikoni nyekundu.

Mtu anaongezwa kwa orodha nyeupe

Ili kuongeza mtu kwenye orodha nyeupe, bonyeza kitufe cha manjano cha taa ya trafiki wakati kengele ya mlango iko katika hali ya uvivu. Kwanza, taa ya manjano itawasha. Ikiwa taa ya kijani iking'aa mara 3, uso wa mtu huyo umeongezwa kwa mafanikio kwa orodha nyeupe. Ikiwa taa ya kijani haigani mara 3, jaribio halikufanikiwa. Katika kesi hiyo, bonyeza kitufe cha manjano tena. Unaweza kudhibitisha kwa urahisi ikiwa ilifanikiwa kwa kupiga kengele ya mlango na kuangalia ikiwa taa ya kijani imepitishwa.

Jinsi ya kuongeza mtu kwenye orodha nyeusi?

Kwa wazi, watu wenye nia mbaya hawatapita kutupa picha ya sura zao. Kwa hivyo badala yake, unaweza kuongeza picha za watu mashuhuri ambao (kwa mfano) polisi imechapisha kwenye folda img / orodha nyeusi. Kila saa, folda hii inakaguliwa kwa picha mpya. Ikiwa kuna picha mpya, usanidi wa uso umehesabiwa na kuongezwa kwenye orodha nyeusi.csv. Picha hiyo inapewa jina na kuhamishiwa kwenye folda / img / orodha nyeusi / iliyosimbwa.

Maneno:

  • Kuendesha maandiko kwa kuingia katika RPi hutoa njia zaidi ya kudhibiti na habari, lakini udhibiti wa msingi na habari zinaweza kupatikana kwa kutumia tu onyesho la taa ya trafiki.
  • Utambuzi wa uso unatekelezwa kwa kutumia kifurushi cha chatu 'uso_kutambua ". Kifurushi hiki kinategemea Dlib ambayo ina algorithm ya hali ya juu ya utambuzi wa uso, ambayo hufanya usahihi wa 99.38% kwenye Nyuso zilizo na Lebo kwenye alama ya mwitu (chanzo: dlib.net - Utambuzi wa Uso wa hali ya juu na Kujifunza kwa kina kwa Metric).
Mashindano ya Teknolojia ya Kusaidia
Mashindano ya Teknolojia ya Kusaidia
Mashindano ya Teknolojia ya Kusaidia
Mashindano ya Teknolojia ya Kusaidia

Zawadi ya kwanza katika Mashindano ya Teknolojia ya Kusaidia

Ilipendekeza: