विषयसूची:

LTE Pi HAT के साथ फेस रिकग्निशन स्मार्ट लॉक: 4 कदम
LTE Pi HAT के साथ फेस रिकग्निशन स्मार्ट लॉक: 4 कदम

वीडियो: LTE Pi HAT के साथ फेस रिकग्निशन स्मार्ट लॉक: 4 कदम

वीडियो: LTE Pi HAT के साथ फेस रिकग्निशन स्मार्ट लॉक: 4 कदम
वीडियो: Face Recognization Smart Lock with LTE Pi HAT(Updated) 2024, नवंबर
Anonim
LTE Pi HAT. के साथ फेस रिकग्निशन स्मार्ट लॉक
LTE Pi HAT. के साथ फेस रिकग्निशन स्मार्ट लॉक

चेहरा पहचान अधिक से अधिक व्यापक रूप से उपयोग किया जा रहा है, हम इसका उपयोग स्मार्ट लॉक बनाने के लिए कर सकते हैं।

चरण 1: इस परियोजना में प्रयुक्त चीजें

हार्डवेयर घटक

  • रास्पबेरी पाई 3 मॉडल बी
  • रास्पबेरी पाई कैमरा मॉड्यूल V2
  • ग्रोव - रिले
  • LTE Cat 1 Pi HAT (यूरोप)
  • 10.1 इंच 1200x1980 एचडीएमआई आईपीएस एलसीडी डिस्प्ले

सॉफ़्टवेयर ऐप्स और ऑनलाइन सेवाएं

  • विनएससीपी
  • नोटपैड++

चरण 2: हार्डवेयर कनेक्शन

हार्डवेयर कनेक्शन
हार्डवेयर कनेक्शन

इस परियोजना में, हम पिकामेरा के साथ तस्वीरें लेने और उनमें चेहरों को पहचानने की योजना बनाते हैं, फिर स्क्रीन में पहचान परिणाम प्रदर्शित करते हैं। यदि चेहरे ज्ञात हैं, तो दरवाजा खोलें, और एसएमएस के माध्यम से निर्दिष्ट फोन नंबर पर दरवाजा किसने खोला है।

तो आपको रास्पबेरी पाई के कैमरा इंटरफेस से एक कैमरा कनेक्ट करने की जरूरत है, और एंटीना और ग्रोव - रिले टू एलटीई पीआई हैट स्थापित करें, फिर अपने पीआई में एचएटी प्लग करें। एचडीएमआई केबल के माध्यम से स्क्रीन को रास्पबेरी पाई से जोड़ा जा सकता है, अपनी स्क्रीन और पाई से कनेक्ट पावर को न भूलें।

चरण 3: सॉफ्टवेयर प्रोग्रामिंग

चेहरा पहचान

एडम गीटगे और उनके फेस रिकग्निशन प्रोजेक्ट के लिए धन्यवाद, हम रास्पबेरी पाई पर दुनिया की सबसे सरल फेस रिकग्निशन लाइब्रेरी का उपयोग कर सकते हैं। निम्नलिखित चरण आपको दिखाएंगे कि पीआई पर चेहरा पहचान कैसे सेट करें।

चरण 1. कैमरा और GPU मेमोरी को कॉन्फ़िगर करने के लिए raspi-config का उपयोग करें।

सुडो रास्पि-कॉन्फ़िगरेशन

इंटरफ़ेस विकल्प चुनना - पिकामेरा को सक्षम करने के लिए कैमरा, फिर उन्नत विकल्प चुनना - GPU मेमोरी सेट करने के लिए मेमोरी स्प्लिट, इसे 64 में बदला जाना चाहिए। समाप्त करने के बाद, अपने रास्पबेरी पाई को रिबूट करें।

चरण 2. आवश्यक पुस्तकालय स्थापित करें।

सुडो एपीटी-अपडेट प्राप्त करें

sudo apt-get अपग्रेड करें sudo apt-get install बिल्ड-एसेंशियल / cmake / gfortran / git / wget / curl / Graphicsmagick / libgraphicsmagick1-dev / libatlas-dev / libavcodec-dev / libavformat-dev / libboost-all-dev / libgtk2. 0-देव / libjpeg-dev / liblapack-dev / libswscale-dev / pkg-config / python3-dev / python3-numpy / python3-picamera / python3-pip / zip sudo apt-get स्वच्छ

चरण 3. पिकामेरिया को सरणी का समर्थन करें।

sudo pip3 इंस्टाल --अपग्रेड पिकामेरा [सरणी]

चरण 4. dlib स्थापित करें और चेहरा पहचानें।

sudo pip3 dlib स्थापित करें

sudo pip3 फेस_रिकग्निशन स्थापित करें

चरण 5. चेहरा पहचान उदाहरण डाउनलोड करें और चलाएं

git क्लोन --single-branch

सीडी./face_रिकग्निशन/उदाहरण python3 facerec_on_raspberry_pi.py

सूचना: यदि आपको ImportError मिली: libatlas.so.3: साझा की गई ऑब्जेक्ट फ़ाइल नहीं खोल सकता: ऐसी कोई फ़ाइल या निर्देशिका नहीं, इसे ठीक करने के लिए निम्न आदेश चलाएँ।

रिले

जब चेहरा पहचान तैयार हो जाता है, तो हम अतिरिक्त सुविधाएं जोड़ना जारी रख सकते हैं। हमने Grove - रिले को LTE Cat 1 Pi HAT से जोड़ा है, लेकिन यह I2C पोर्ट के बजाय डिजिटल पोर्ट का उपयोग करता है।

यह रास्पबेरी पाई 3 बी के लिए पिन-आउट है, हम बोर्ड के पिन 3 और पिन 5 में स्थित एसडीए पिन और एससीएल पिन देख सकते हैं।

छवि
छवि

इसलिए हम आउटपुट डिजिटल सिग्नल द्वारा रिले को पिन 5 पर नियंत्रित कर सकते हैं। अपने रास्पबेरी पाई पर डाउन पायथन प्रोग्राम का पालन करें, अगर कुछ भी गलत नहीं होता है, तो आप रिले से एक टीआई-टा सुनेंगे।

RPI. GPIO को GPIO के रूप में आयात करें

RELAY_PIN = 5 GPIO.setmode(GPIO. BOARD) GPIO.setup(RELAY_PIN, GPIO. OUT) GPIO.output(RELAY_PIN, GPIO. HIGH)

तो यहाँ विचार है, हम एक फ़ोल्डर से ज्ञात चेहरों को लोड करते हैं, पिकामेरा द्वारा कैप्चर किए गए चेहरों को पहचानते हैं, यदि फ़ोल्डर में चेहरा है, तो दरवाजे को अनलॉक करने के लिए रिले को नियंत्रित करें। हम उन्हें एक कक्षा में पैकेज कर सकते हैं, यहां load_known_faces() विधि और अनलॉक() विधि है, पूरा प्रोग्राम इस आलेख के अंत में डाउनलोड किया जा सकता है।

def load_known_faces (स्वयं):

Known_faces = os.listdir(self._known_faces_path)ज्ञात_फेस में ज्ञात_फेस के लिए: self._ज्ञात_फेस_नाम.एपेंड (ज्ञात_फेस[0: लेन (ज्ञात_फेस) - लेन ('.jpg')]) ज्ञात_फेस_इमेज = फेस_रिकग्निशन।) सेल्फ._ज्ञात_फेस_एन्कोडिंग.एपेंड (फेस_रिकग्निशन.फेस_एन्कोडिंग (ज्ञात_फेस_इमेज) [0]) रिटर्न लेन (सेल्फ._ज्ञात_फेस_एन्कोडिंग) डीईएफ़ अनलॉक (सेल्फ): अगर सेल्फ._मैचेड.काउंट (ट्रू)> 0: जीपीआईओ.आउटपुट (सेल्फ._रिले_पिन, GPIO. HIGH) प्रिंट ('दरवाजा खुला') समय। नींद (5) GPIO.output(self._relay_pin, GPIO. LOW) self._reset_identise_params() रिटर्न ट्रू सेल्फ._retry_count += 1 प्रिंट ('कृपया पुन: प्रयास करें…{ }'.format(self._retry_count)) झूठी वापसी

पारलौकिक रूप से सोचें, हम उस तस्वीर को दिखा सकते हैं जिसने मान्यता प्राप्त की है, पुस्तकालय पीआईएल और मैटप्लोटलिब सहायक हो सकते हैं, उनमें से, मैटप्लोटलिब को मैन्युअल रूप से स्थापित करने की आवश्यकता है, इस कमांड को अपने रास्पबेरी पाई के टर्मिनल में चलाएं।

sudo pip3 matplotlib स्थापित करें

उन्हें अपने कोड में आयात करें, और अगर इस तरह से अनलॉक () विधि में ब्लॉक करें तो बदलें:

img = Image.open('{}/{}.jpg'.format(self._known_faces_path, self._known_faces_name[0]))

plt.imshow(img) plt.ion() GPIO.output(self._relay_pin, GPIO.high) प्रिंट ('दरवाजा खुला') plt.pause(3) plt.close() GPIO.output(self._relay_pin, GPIO). LOW) self._reset_identise_params() रिटर्न ट्रू

अब, यदि कोई चेहरा पहचाना जाता है, तो फ़ोल्डर में चित्र स्क्रीन पर प्रदर्शित होगा।

छवि
छवि

एसएमएस

कभी-कभी हम जानना चाहते हैं कि हमारे कमरे में कौन है, और अब LTE Cat 1 Pi HAT के लिए जगह है। इसमें एक सिम कार्ड प्लग करें, और यह जांचने के लिए नीचे दिए गए चरणों का पालन करें कि यह काम करेगा या नहीं।

चरण 1. रास्पबेरी पाई में UART0 सक्षम करें

/boot. में config.txt संपादित करने के लिए नैनो का प्रयोग करें

सुडो नैनो /boot/config.txt

इसके नीचे dtoverlay=pi3-disable-bt जोड़ें, और hciuart सेवा को अक्षम करें

sudo systemctl अक्षम hciuart

फिर /boot. में cmdline.txt में कंसोल = सीरियल0, 115200 हटाएं

सूडो नैनो /boot/cmdline.txt

सब कुछ करने के बाद, आपको अपने रास्पबेरी पाई को रिबूट करना चाहिए।

चरण 2. उदाहरण डाउनलोड करें और इसे चलाएं।

अपने रास्पबेरी पाई पर एक टर्मिनल खोलें, इन कमांड को लाइन से लाइन में टाइप करें।

सीडी ~

गिट क्लोन https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py cd test स्थापित करें sudo python test01.py

यदि आप इन आउटपुट को अपने टर्मिनल में देखते हैं, तो LTE Cat 1 Pi HAT अच्छा काम करता है।

40-पिन GPIO हैडर का पता चला

GPIO पर CTS0 और RTS0 को सक्षम करना 16 और जागने पर 17 rts cts… मॉड्यूल का नाम: LARA-R211 RSSI: 3

अब हम जानते थे कि एचएटी अच्छी तरह से काम करता है, एसएमएस भेजने के लिए इसका इस्तेमाल कैसे करें? पहली चीज जो आपको जानने की जरूरत है वह यह है कि रास्पबेरी पाई यूएआरटी द्वारा सेंड एटी कमांड के जरिए एचएटी के साथ संचार करती है। आप इस कोड को पायथन में चलाकर एलटीई एचएटी को एटी कमांड भेज सकते हैं

ublox_lara_r2 आयात से *

u = Ublox_lara_r2() u.initialize() u.reset_power() # डीबग मसाज बंद करें u.debug = गलत u.sendAT('')

एसएमएस भेजने के लिए एटी कमांड इस प्रकार है

एटी+सीएमजीएफ=1

एटी+सीएमजीएस=

तो यहाँ _send_sms() विधि है:

def _send_sms (स्वयं):

if self._phonenum == कोई नहीं: सेल्फ में अनलॉकर के लिए फॉल्स लौटाएं।_idente_face_names(): if self._ublox.sendAT('AT+CMGF=1\r\n'): प्रिंट करें (self._ublox.response) अगर self. _ublox.sendAT('AT+CMGS="{}"\r\n'.format(self._phonenum)): अगर self._ublox.sendAT('{} कमरे में प्रवेश करें तो प्रिंट करें(self._ublox.response)।\ x1a'.format(unlocker)): प्रिंट (self._ublox.response)

सूचना: एलटीई कैट 1 पाई एचएटी की लाइब्रेरी जिसे पायथन 2 द्वारा लिखा गया है, जो कि पायथन 3 के साथ बहुत संगत नहीं है, अगर आप इसे चेहरे की पहचान के साथ उपयोग करना चाहते हैं, तो कृपया इसे इस लेख के अंत से लिंक से डाउनलोड करें।

सिफारिश की: