Talaan ng mga Nilalaman:

Facial Recognition Security System para sa isang Refrigerator na May Raspberry Pi: 7 Hakbang (na may Mga Larawan)
Facial Recognition Security System para sa isang Refrigerator na May Raspberry Pi: 7 Hakbang (na may Mga Larawan)

Video: Facial Recognition Security System para sa isang Refrigerator na May Raspberry Pi: 7 Hakbang (na may Mga Larawan)

Video: Facial Recognition Security System para sa isang Refrigerator na May Raspberry Pi: 7 Hakbang (na may Mga Larawan)
Video: Vegan Since 1951! 32 Years Raw! A Natural Man of Many Skills; Mark Huberman 2024, Hulyo
Anonim
Image
Image
Facial Recognition Security System para sa isang Refrigerator Sa Raspberry Pi
Facial Recognition Security System para sa isang Refrigerator Sa Raspberry Pi
Facial Recognition Security System para sa isang Refrigerator Sa Raspberry Pi
Facial Recognition Security System para sa isang Refrigerator Sa Raspberry Pi

Pagba-browse sa internet Natuklasan ko na ang mga presyo para sa mga sistema ng seguridad ay nag-iiba mula sa 150 $ hanggang 600 $ pataas, ngunit hindi lahat ng mga solusyon (kahit na ang mga mamahaling) ay maaaring isama sa iba pang mga matalinong tool sa iyong bahay! Halimbawa, hindi ka maaaring mag-set up ng isang security camera sa iyong front door kaya awtomatiko nitong binubuksan ang pinto para sa iyo o sa iyong mga kaibigan!

Napagpasyahan kong gumawa ng isang simple, murang at malakas na solusyon, na magagamit mo kahit saan! Maraming mga manwal sa kung paano lumikha ng mga murang at gawang bahay na mga sistema ng seguridad, subalit nais kong ipakita ang talagang hindi walang kabuluhan na aplikasyon ng mga iyon - security system para sa isang ref na may pagkilala sa mukha!

Paano ito gumagana? Ang IP camera na nakalagay sa tuktok ng isang ref, nakita ng mga sensor (dalawang pindutan) kapag binuksan ng isang tao ang pintuan ng ref, pagkatapos nito ay kinuhanan ng litrato ng taong iyon ang Raspberry Pi (kasama ang IP camera), pagkatapos ay ipinapadala ito sa Microsoft Face API upang pag-aralan ang imahe at matanggap ang pangalan ng tao. Sa impormasyong ito sinusuri ng Raspberry Pi ang "listahan ng pag-access": kung ang tao ay walang pahintulot na mag-access sa ref, aabisuhan ng Raspberry ang may-ari sa pamamagitan ng email, text message at kaba! (Tingnan ang mga larawan sa itaas)

Bakit? Pinapayagan ka ng system na kontrolin ang mga miyembro ng iyong pamilya, lalo na kapag nasa diyeta, o nakikipagpunyagi sa hindi kumain pagkalipas ng hatinggabi! O gamitin ito para lang sa kasiyahan!

Bukod dito, maaari mo talagang i-set up ang camera sa iyong pintuan at i-configure ang system upang buksan ang pinto kapag ikaw, ang mga miyembro ng iyong pamilya o mga kaibigan ay papalapit. At hindi ito ang wakas! Mga posibilidad ng application ay walang katapusang!

Magsimula na tayo!

Hakbang 1: Paghahanda

Paghahanda
Paghahanda

Kakailanganin mong:

  • Raspberry Pi 3 (maaari kang gumamit ng mga mas lumang bersyon, ngunit ang pangatlong henerasyon ay may Wi-Fi, kaya't napaka-maginhawa)
  • Mga Pindutan
  • Mga wire
  • Lumang Smartphone o Raspberry Pi camera

Ang unang bagay na kailangan mong gawin ay ang i-configure ang iyong Raspberry Pi. Ang mga detalyadong tagubilin sa kung paano gawin iyon ay maaari mong makita dito at dito, ngunit sasakupin namin ang pinakamahalagang mga hakbang sa manwal na ito.

  1. Mag-download ng Win32 DiskImager mula dito (kung gumagamit ka ng Windows)
  2. Mag-download ng SD Formatter mula rito
  3. Ipasok ang SD card sa iyong computer at i-format ito sa SD Formatter
  4. Mag-download ng Raspbian Image mula rito (Piliin ang "Raspbian Jessie na may pixel")
  5. Patakbuhin ang Win32 DiskImager, piliin ang iyong SD card, tukuyin ang landas sa imahe ng Raspbian, i-click ang "Sumulat"
  6. Ipasok ang SD card sa iyong Raspberry Pi at i-on ang kuryente!

Bilang karagdagan, kakailanganin mong i-configure ang iyong Raspberry Pi upang magkaroon ng access sa system sa pamamagitan ng SSH. Maraming mga tagubilin sa internet, maaari mo itong magamit, halimbawa, o maaari kang maglakip ng monitor at keyboard.

Ngayon ang iyong Pi ay naka-configure at handa ka nang magpatuloy!

Hakbang 2: Paggawa ng Sensor

Paggawa ng Sensor
Paggawa ng Sensor
Paggawa ng Sensor
Paggawa ng Sensor
Paggawa ng Sensor
Paggawa ng Sensor

Paglalarawan ng Hakbang: Sa hakbang na ito gagawa kami ng isang sensor na nakakakita kapag binuksan ng tao ang pinto ng isang ref at pinapagana ang Raspberry Pi.

Upang i-set up ito kakailanganin mo ang 2 mga pindutan na orihinal mong inihanda. Ang pagdiskubre ng unang pindutan kapag binuksan ang pinto, ang pangalawang pindutan ay matutukoy kapag ang pintuan ay binuksan hanggang sa punto kapag kumukuha kami ng larawan ng isang tao.

  1. Ang mga wire ng panghinang sa mga pindutan.
  2. Ikabit ang unang pindutan sa pintuan ng ref upang maitulak ito kapag nakasara ang pinto (tingnan ang larawan sa itaas)
  3. Ikabit ang pangalawang pindutan sa pintuan ng ref tulad ng ipinakita sa larawan sa itaas. Ang pindutan na ito ay kailangang pakawalan sa lahat ng oras, maliban kung maabot ng pinto ang punto kapag kumukuha ng larawan ang system. Upang i-set up ito kailangan mong maglakip ng isang bagay sa iyong ref upang ang pindutan na ito ay pinindot kapag ang pinto ay binuksan sa nais na lawak (tingnan ang mga larawan sa itaas).
  4. Ikabit ang mga wire mula sa mga pindutan sa Raspberry Pi: unang pindutan sa GPIO 23 at ground, pangalawang pindutan sa GPIO 24 at ground (Tingnan ang diagram ng fritzing).

Tandaan: Gumagamit ako ng BCM pinout (hindi Lupon), higit pa sa pagkakaiba na nabasa rito.

Kapag nakakonekta sa iyong Raspberry Pi sa pamamagitan ng SSH, upang patakbuhin ang shell ng sawa, i-type ang terminal:

sawa3

Kung nakakabit ka ng monitor at keyboard sa Raspberry Pi patakbuhin lamang ang "Python 3 IDLE" mula sa menu.

Susunod na hakbang ay upang gumana ang Raspberry Pi sa mga pindutan. Ikakabit namin ang mga espesyal na tagapakinig sa GPIO 23 at 24 na mga pin, na makikinig para sa kaganapan na "tumataas na gilid" at kaganapan na "bumabagsak na gilid" sa mga pin na iyon. Sa kaso ng kaganapan tatawagin ng mga tagapakinig ang mga pagpapaandar na tinukoy namin. Ang "tumataas na gilid" ay nangangahulugang ang pindutan ay pinindot at inilabas ngayon (unang pindutan - binuksan ang pinto), ang "pagbagsak na gilid" ay nangangahulugang ang pindutan ay pinakawalan at pinindot ngayon (pangalawang pindutan - ang pintuan ay umabot sa tukoy na punto). Higit pa sa pagpapaandar ng mga pindutan - dito.

Una, i-import ang library na nagbibigay sa amin ng pag-access sa mga pin:

i-import ang RPi. GPIO bilang GPIO

Tukuyin ngayon ang mga espesyal na pagpapaandar na tatawag kapag na-trigger ang kaganapan:

def sensor1 (channel): print ("sensor 1 triggered") def sensor2 (channel): print ("sensor 2 triggered)

Itakda ang uri ng pinout:

GPIO.setmode (GPIO. BCM)

I-configure ang mga pin:

GPIO.setup (23, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (24, GPIO. IN, pull_up_down = GPIO. PUD_UP)

Mag-attach ng mga tagapakinig:

GPIO.add_event_detect (23, GPIO. RISING, callback = sensor1, bouncetime = 300) GPIO.add_event_detect (24, GPIO. FALLING, callback = sensor2, bouncetime = 300)

Ngayon ay maaari mo itong subukan! Kung pipilitin mo ang pindutan 1 makikita mo ang isang mensahe sa terminal na "nag-trigger ang sensor 1", bibigyan ka ng pindutan 2 ng isang mensahe na "nag-trigger ang sensor 2".

Tandaan: Kapag tapos ka na sa pag-eksperimento huwag kalimutang tawagan ang sumusunod na pagpapaandar: GPIO.cleanup ().

Mag-set up tayo ng isa pang pagpapaandar na tinawag kapag umabot ang pinto sa puntong kumukuha kami ng larawan! Maaari mo itong gawin mismo o gamitin ang aking pagpapatupad na na-attach ko dito (sensor.py)

Tandaan: ang sensor.py ay ginagamit lamang para sa mga layunin sa pagsubok, ang mga file na may buong pag-andar na na-attach ko sa huling hakbang.

Hakbang 3: I-configure ang IP Camera

I-configure ang IP Camera
I-configure ang IP Camera
I-configure ang IP Camera
I-configure ang IP Camera
I-configure ang IP Camera
I-configure ang IP Camera

Paglalarawan ng Hakbang: Ngayon ay mai-configure namin ang lumang smartphone bilang isang IP camera.

Ang paggamit ng smartphone bilang isang IP camera ay ginagawa sa pamamagitan ng app. Mayroong iba't ibang mga app para sa Android, iOS, Windows Phone na maaari mong gamitin. Pinili ko ang tinatawag na "IP Webcam" para sa Android. Ito ay isang libreng app at madali itong mai-configure.

Patakbuhin ang app, pumunta sa "Mga kagustuhan sa video" upang i-set up ang resolusyon ng mga larawan na ibibigay ng app. Pagkatapos ay i-tap ang "Start server" (Unang imahe sa itaas). Sa ilalim ng screen kailangan mong makita ang ip address ng cam (Tingnan ang pangalawang imahe sa itaas). Sa browser maaari mong i-type ang https://cam_ip_address/photo-j.webp

Panghuli, ikabit ang camera sa ref (Huling imahe sa itaas).

Hakbang 4: Mukha API

Mukha API
Mukha API

Paglalarawan ng Hakbang: Sa hakbang na ito ay pag-uusapan natin ang tungkol sa Face API ng Microsoft na gumagawa ng pagkilala sa mukha at kinikilala ang mga tao.

Ang Face API ng Microsoft ay isang serbisyo sa pagkilala sa mukha, kung saan maaari naming pag-aralan ang mga larawan at makilala ang mga tao sa kanila.

Una, kailangan mo ng Microsoft Azure Account. Kung wala kang isa maaari mo itong likhain nang libre dito.

Pangalawa, pumunta sa https://portal.azure.com, i-click ang "Bago" sa kaliwang bahagi, i-type ang form na "Cognitive Services API", piliin ito at i-click ang "Lumikha". O maaari mong buksan ang link na ito. Ngayon kailangan mong ipasok ang Pangalan ng iyong serbisyo, piliin ang uri ng subscription, uri ng API na kailangan mo (sa aming kaso na Face API), lokasyon, antas ng pagpepresyo, pangkat ng mapagkukunan at sumasang-ayon sa Mga Tuntunin sa Ligal (tingnan ang screenshot na idinagdag sa hakbang na ito).

Pangatlo, i-click ang "Lahat ng mapagkukunan", piliin ka ng serbisyo ng Face API at tingnan ang mga istatistika ng paggamit, kredensyal, atbp.

Ang mga detalye ng Face API ay matatagpuan dito, ang mga halimbawa sa iba't ibang mga wika sa pagprograma ay ibinigay. Para sa proyektong ito gumagamit kami ng sawa. Maaari mong basahin ang dokumentasyon at gumawa ng iyong sariling hanay ng pag-andar o maaari mong gamitin ang ibinigay dito (hindi ito ang buong hanay ng pagpapaandar na ibinigay ng Microsoft, ang mga puntos lamang na kinakailangan para sa proyektong ito). Ang aking mga file ng sawa ay naka-attach sa hakbang na ito.

Lumipat tayo sa istraktura ng trabaho sa Face API. Upang magamit ang pag-andar na "Pagkakakilanlan" mayroon kaming upang lumikha ng isang silid-aklatan ng mga taong gumagamit ng aling serbisyo ng Face API ang makikilala ang mga larawan na kinukuha ng app. Upang i-set up ito, mangyaring sundin ang mga hakbang:

  1. Lumikha ng isang Pangkat
  2. Magdagdag ng mga Tao sa Pangkat na ito
  3. Magdagdag ng mga mukha sa mga taong ito
  4. Grupo ng tren
  5. Magsumite ng larawan sa tao na nais mong kilalanin (kailangan mong magbigay ng larawan at pangkat ng id kung saan ang serbisyo ay maghahanap ng mga kandidato)
  6. Resulta: Bilang tugon makakakuha ka ng isang listahan ng mga kandidato na maaaring nasa larawan na iyong isinumite.

Lumikha ako ng tatlong mga file na may tukoy na pagpapaandar na nagbibigay-daan upang gumana sa mga pangkat, solong tao at iisang larawan:

  • PersonGroup.py - naglalaman ng mga tampok na nagpapahintulot sa: lumikha ng pangkat, kumuha ng impormasyon tungkol sa pangkat, kumuha ng listahan ng lahat ng iyong mga pangkat, pangkat ng tren at makakuha ng katayuan ng pagsasanay
  • Person.py - naglalaman ng mga tampok na nagpapahintulot sa: lumikha ng tao, kumuha ng impormasyon ng tao, ilista ang lahat ng mga tao sa tinukoy na pangkat, magdagdag ng mga mukha sa tinukoy na tao
  • Ang Face.py - naglalaman ng mga tampok na nagbibigay-daan sa: tuklasin ang mukha sa imahe, kilalanin ang tao, kumuha ng pangalan ng kinilalang tao

Sa file na tinatawag na "pagkilala.py" Nagbibigay ako ng mga tampok na nagbibigay-daan sa iyo upang suriin kung ang imahe ay naglalaman ng isang mukha at magdagdag ng mga mukha sa tinukoy na tao (awtomatikong nagdaragdag ng mukha mula sa maraming mga imahe mula sa tinukoy na folder).

Mag-download ng file na naka-attach sa hakbang na ito, i-unpack ito, palitan ang 'KEY' pandaigdigang variable sa tatlong mga file na ito: PersonGroup.py, Person.py at Face.py sa iyo nagmamay-ari ng susi na maaari mong makita: portal.azure.com> lahat ng mga mapagkukunan > harapin ang serbisyo ng api (o kung paano mo ito tinawag)> tab na mga key. Maaari mong gamitin ang anuman sa dalawang mga susi.

Tandaan: dito magsasanay kami ng serbisyo sa Face API upang makilala ang mga tao, kaya ang mga sumusunod na pagkilos ay maaaring gawin mula sa anumang computer (hindi kinakailangan ang Raspberry Pi para doon) - nai-save ang mga pagbabago sa server ng Microsoft.

Pagkatapos baguhin ang KEY, patakbuhin ang pagkilala.py at ipasok ang sumusunod na utos sa python shell:

PersonGroup.create ("pamilya", 'fff-fff')) // maaari mong gamitin ang iyong sariling pangalan at id para sa

group printResJson (PersonGroup.getPersonGroup ('fff-fff'))

Kailangan mong makakita ng data tungkol sa pangkat na iyong nilikha. Ipasok ngayon:

printResJson (Person.createPerson ('fff-fff', 'pangalan ng tao'))

Ngayon kumuha ka ng person ID. Lumikha ng folder na may mga imahe ng taong ito upang ang lahat ng mga imahe ay naglalaman ng mukha ng taong ito. Maaari mong gamitin ang function detectFaceOnImages sa pagkilala.py na nagpapakita sa iyo kung aling mga larawan ang nakikita. Ngayon, patakbuhin ang utos:

addFacesToPerson ('folder na may mga imahe', 'person ID na nakuha mo pagkatapos ng nakaraang command', 'fff-fff')

Pagkatapos ay kailangan nating sanayin ang aming serbisyo sa pamamagitan ng pagpasok ng mga sumusunod:

PersonGroup.trainPersonGroup ('fff-fff') printResJson (PersonGroup.getPersonGroupTrainingStatus ('fff-fff'))

Ngayon ang aming grupo ay sinanay at handa nang makilala ang isang tao.

Upang suriin ang tao sa imahe maaari kang:

Face.checkPerson (imahe, 'fff-fff')

Bilang tugon makakakuha ka ng isang listahan ng mga kandidato at posibilidad kung sino ang nasa larawan.

Tandaan: tuwing magdagdag ka ng mga mukha sa isang tao o tao sa isang pangkat kailangan mong sanayin ang pangkat!

Hakbang 5: Pag-configure ng Node-Red

Node-Red Configuration
Node-Red Configuration

Paglalarawan ng Hakbang: Sa hakbang na ito, lilikha kami ng daloy ng Node-Red na aabisuhan ka tungkol sa paglabag sa pag-access sa iyong ref =)

Kung ang iyong Raspberry Pi ay tumatakbo sa Raspbian Jessie Nobyembre 2015 o mas bagong bersyon hindi mo na kailangang i-install ang Node-Red, dahil naka-preinstall na ito. Kailangan mo lang i-update ito. Mangyaring gamitin ang manwal dito.

Ngayon, kailangan naming i-install ang Twilio node sa Node-Red, upang maaari kaming magpalitaw ng isang text message. Buksan ang terminal at i-type ang:

cd ~ /.node-rednpm i-install ang node-red-node-twilio

Dagdag pa tungkol sa Twilio node dito. Pagkatapos nito, patakbuhin ang Node-Red sa pamamagitan ng pag-type sa terminal:

node-pula

Pagkatapos ay pumunta sa: https://127.0.0.1:1880/ - kung magbubukas ka ng browser sa iyong Raspberry Pihttps:// {raspberry_pi_ip}: 1880 / - kung nais mong buksan ang Node-Red editor mula sa ibang computer

Upang malaman ang ip address ng raspberry pi gamitin ang tagubiling ito.

Ngayon ay kailangan mong hanapin ang node ng Twilio sa listahan ng mga node sa iyong Node-Red editor (karaniwang lilitaw ito pagkatapos ng pangkat na 'panlipunan').

Panahon na upang lumikha ng daloy!

Tandaan: maaari mong gamitin ang aking daloy na naka-attach sa hakbang na ito, ngunit huwag kalimutang i-configure ang mga node: email, twitter at twilio. Basahin ang tungkol doon sa paglaon.

Nagsisimula ang aming daloy sa "abisuhan" na node na tumatanggap ng kahilingan sa POST mula sa aming pangunahing programa sa ilang data tungkol sa paglabag sa pag-access (halimbawa ng data ay matatagpuan sa node ng komento "tungkol sa pagtanggap ng mga bagay"). Ang node na ito ay agad na tumutugon sa mensahe na "Ok", kaya't alam ng pangunahing programa na natanggap ang data (Daloy: / abisuhan> tugon sa Ok> tugon). Ang berdeng node sa ibaba na may pangalang msg.payload ay naroroon para sa mga layunin sa pag-debug: kung ang isang bagay ay hindi gumagana maaari mo itong magamit.

Mula sa fist node (/ abisuhan) ang data na kumalat sa "Paksa ng Data" at "Paksa ng Imahe" kung saan idinagdag ang mga paksang "data" at "imahe" ayon sa pagkakabanggit.

Sa node na "compile" nakakatanggap kami ng data (na nakukuha namin sa unang hakbang) na may paksang "data" at isang imahe na may paksang "imahe" (ang imahe ay kinuha mula sa /home/pi/image.jpg). Ang dalawang mensahe na ito ay dapat na naipon sa isang bagay, ngunit ang dalawang mga bagay ay natanggap sa iba't ibang oras! Upang hawakan ito gagamitin namin ang tampok na "konteksto" na nagbibigay-daan sa amin upang mag-imbak ng data sa pagitan ng mga invocation ng pag-andar.

Susunod na hakbang ay upang suriin kung ang tao mula sa aming listahan ng pag-access o ito ay isang hindi kilalang tao (checkConditions node). Mayroong isang "pinagkakatiwalaang" patlang sa data na natanggap namin: "totoo" ay nangangahulugang kilala namin ang taong ito, ngunit nilabag niya ang pahintulot sa pag-access, nangangahulugang "hindi totoo" na ang tao ay isang estranghero.

Kapag ang resulta ay "totoo" nagpapadala kami ng abiso sa kaba, twilio at email; kapag ang resulta ay "hindi totoo" - email at twilio lamang. Lumilikha kami ng isang bagay para sa email na may isang mensahe, nakalakip na imahe at paksa ng email, isang bagay para sa twilio na may isang mensahe. Para sa kaba nagdaragdag kami ng data sa isang bagay kung ang "trustPerson" ay totoo. Pagkatapos ay ipadala ang tatlong mga bagay na ito sa tatlong magkakaibang mga node.

Tandaan: Kung ang sumusunod na node ay hindi dapat makatanggap ng isang mensahe ipinapadala lamang namin ang "null" dito.

Panahon na upang i-configure ang mga node para sa abiso!

Twitter Idagdag ang node na "twitter" sa daloy. Buksan ito sa pamamagitan ng pag-double click. Mag-click sa lapis sa tabi ng "Twitter ID". Pagkatapos mag-click sa "Mag-click dito upang patunayan sa Twitter". Pumasok sa iyong account sa twitter at bigyan ang kinakailangang mga pahintulot ng Node-Red.

Ang emailAdd na "email" ay node sa daloy. Kung hindi mo gagamitin ang Gmail kakailanganin mong baguhin ang data sa mga sumusunod na larangan - "Server" at "Port" (mahahanap mo kung aling server at port ang dapat mong gamitin sa Mga Pahina ng Tulong ng iyong email agent) kung hindi man ay huwag baguhin ang mga ito bukirin

  • Upang> email address kung aling mga mensahe ang ipapadala
  • Userid> pag-login mula sa iyong email (maaaring kapareho ng "To" na patlang)
  • Password> password mula sa iyong email account
  • Pangalan> pangalan para sa node na ito

Twilio Pumunta sa https://www.twilio.com/try-twilio at magrehistro ng isang account. Patunayan ito Pumunta sa https://www.twilio.com/console. Mag-click sa "Mga Numero ng Telepono" (malaking # icon) at lumikha ng libreng numero. Kung nasa labas ka ng USA kailangan mong magdagdag ng mga pahintulot sa GEO, pumunta sa https://www.twilio.com/console/sms/settings/geo-pe… at idagdag ang iyong bansa.

Ngayon, pumunta sa editor ng Node-Red, idagdag ang node ng Twilio, i-double click dito upang i-configure at punan ang lahat ng mga patlang:

  • Mga Kredensyal> Gumamit ng mga lokal na Kredensyal
  • Twilio> i-edit

    • Account SID> kunin mula rito
    • Mula sa> i-type ang virtual na numero na iyong nilikha
    • Token> kumuha mula rito
    • Pangalan> Twilio
  • Output> SMS
  • Sa> numero ng iyong telepono
  • Pangalan> pangalan para sa node na ito.

I-click ang I-deploy

Ngayon ang iyong daloy ay handa na! Maaari mo itong subukan sa pamamagitan ng pagpapadala ng kahilingan sa POST na may tinukoy na object!

Hakbang 6: Pagbuo ng Buong Proyekto

Pagbuo ng Buong Proyekto
Pagbuo ng Buong Proyekto
Pagbuo ng Buong Proyekto
Pagbuo ng Buong Proyekto

Paglalarawan ng Hakbang: Sa hakbang na ito isasama namin ang lahat ng mga bahagi at gagawin itong gumagana bilang isang hiwalay na system.

Sa hakbang na ito kailangan mong:

  1. I-configure ang lumang smartphone bilang ip camera
  2. May mga nagtatrabaho sensor
  3. Sinanay ang Face API ng Microsoft
  4. Na-configure ang daloy ng Node-Red

Ngayon kailangan nating pagbutihin ang code na isinulat namin sa hakbang 2. Mas partikular na proseso ng pag-andar () na tinawag kapag binuksan ng tao ang pinto. Sa pagpapaandar na ito gagawin namin ang sumusunod:

  1. Kumuha ng imahe mula sa ip camera at i-save ito sa "/ home / pi /" na may pangalang "image.jpg" (pagpapaandar "fromIpCam" sa file na "getImage")
  2. Kunin ang pangalan ng taong nasa imaheng iyon (i-andar ang "checkPerson" sa file na "pagkilala")
  3. Suriin ang pahintulot sa pag-access para sa taong iyon (pagpapaandar na "suriin" sa file na "pag-access")
  4. Batay sa resulta ng "check" function na gumawa ng mensahe
  5. Magpadala ng binuong mensahe sa Node-Red (pagpapaandar na "toNodeRed" sa file na "sendData")

Tandaan: upang makita ang buong code ng mga nabanggit na pag-andar mangyaring mag-download ng zip file na naka-attach sa hakbang na ito.

Tungkol sa pagpapaandar na "fromIpCam". Ginagawa ng pagpapaandar na ito ang kahilingan na GET sa iyong ip camera, makakuha ng nakatuon na imahe bilang tugon at i-save ito sa landas na tinukoy mo. Kailangan mong magbigay ng ip ip ng camera sa pagpapaandar na ito.

Tungkol sa pagpapaandar na "checkPerson". Ang pagpapaandar ay nakakakuha ng landas sa imahe at pangkat kung saan nais mong maghanap ng tao mula sa larawan bilang mga parameter. Una, nakikita nito ang isang mukha sa ibinigay na imahe (file Face.py, function na "tuklasin"). Bilang tugon ay makakakuha ito ng id kung ang mukha ay napansin. Pagkatapos ito ay tumawag sa "kilalanin" na function (Face.py file) na makahanap ng mga katulad na tao sa tinukoy na pangkat. Bilang tugon nakakakuha ito ng isang tao id kung ang tao ay natagpuan. Pagkatapos ay tawagan ang pagpapaandar na "tao" (file na Person.py) kasama ang person ID bilang isang parameter, ang function na "tao" ay nagbabalik ng tao na may tinukoy na ID, nakukuha namin ang pangalan ng tao at ibabalik ito.

Tungkol sa pag-andar na "suriin". Ang pagpapaandar na ito ay inilalagay sa file na "pag-access" kung saan naglalagay din ng "listahan ng pag-access" bilang isang pandaigdigang variable (maaari mong baguhin ito ayon sa gusto mo). Pagkuha ng pangalan ng tao mula sa nakaraang pag-andar, pagpapaandar na "suriin" ihambing ang taong ito sa listahan ng pag-access at ibalik ang resulta.

Tandaan: ang buong proyekto ay nakakabit sa susunod na hakbang.

Hakbang 7: Konklusyon

Sa hakbang na ito na ikinabit ko ang buong proyekto na dapat mong i-unzip at ilagay sa iyong Raspberry Pi.

Upang mapatakbo ang proyektong ito patakbuhin ang file na "main.py".

Kung kinokontrol mo ang Raspberry Pi sa pamamagitan ng SSH kailangan mong magpatakbo ng dalawang mga programa mula sa isang shell: python program at Node-Red. I-type sa terminal ang sumusunod:

node-pula

Pres "Ctrl + Z" at uri:

mga trabaho

Nakita mo ang proseso ng Node-Red. Tingnan ang ID ng proseso at uri:

bg

Ngayon ang Node-Red ay kailangang magsimulang magtrabaho sa background. Pagkatapos ay pumunta sa direktoryo kasama ang iyong proyekto at magpatakbo ng pangunahing programa:

python3 main.py

Tandaan: huwag kalimutang baguhin ang KEY sa mga file ng sawa (hakbang 4) at mga kredensyal sa daloy ng Node-Red (hakbang 5)

Tapos na! Ang iyong ref ay ligtas!

Inaasahan kong nasiyahan ka dito Huwag mag-atubiling iwanan ang iyong isip sa mga komento.

Masisiyahan ako kung iboboto mo ang aking proyekto =)

Salamat!

Inirerekumendang: