Мазмуну:
- 1 -кадам: Бул долбоордо колдонулган нерселер
- 2 -кадам: Аппараттык туташуу
- 3 -кадам: Программалык камсыздоо
- 4 -кадам: Бүттү
Video: LTE Pi HAT менен жүздү таануу Smart Lock: 4 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Жүз таануу барган сайын кеңири колдонула баштады, биз аны акылдуу кулпу үчүн колдоно алабыз.
1 -кадам: Бул долбоордо колдонулган нерселер
Аппараттык компоненттер
- Raspberry Pi 3 Model B.
- Raspberry Pi камера модулу V2
- Гроув - Эстафета
- LTE Cat 1 Pi HAT (Европа)
- 10.1 дюймдук 1200x1980 HDMI IPS LCD дисплейи
Программалык камсыздоо жана онлайн кызматтары
- WinSCP
- Блокнот ++
2 -кадам: Аппараттык туташуу
Бул долбоордо биз пикамера менен сүрөткө түшүүнү жана алардын жүздөрүн таанууну пландап жатабыз, андан кийин таануунун натыйжасын экранда көрсөтөбүз. Эгерде жүздөр белгилүү болсо, эшикти ачып, кимдин эшигин ачканын SMS аркылуу жөнөтүңүз.
Ошентип, сиз камераны Raspberry Piнин камера интерфейсине туташтырып, антеннаны жана Grove - LTE Pi шляпасына релелик орнотушуңуз керек, андан кийин HATти Пиңизге туташтырыңыз. Экранды Raspberry Pi менен HDMI кабели аркылуу туташтырса болот, экраныңызга жана Пиңизге электр энергиясын туташтырууну унутпаңыз.
3 -кадам: Программалык камсыздоо
Жүз таануу
Адам Гейтгейге жана анын жүзүн таануу долбооруна рахмат, биз Raspberry Piдеги дүйнөнүн эң жөнөкөй жүз таануу китепканасын колдоно алабыз. Төмөнкү кадамдар Piде жүз таанууну кантип орнотууну көрсөтөт.
Кадам 1. Камераны жана GPU эстутумун конфигурациялоо үчүн raspi-config колдонуңуз.
sudo raspi-config
Интерфейстин параметрлерин тандоо - Камера пикамераны иштетүү үчүн, андан кийин Advanced Options - Memory Split'ти тандоо, GPU эс тутумун орнотуу үчүн аны 64кө өзгөртүү керек. Аяктагандан кийин Raspberry Pi'ни кайра жүктөңүз.
Кадам 2. Керектүү китепканаларды орнотуңуз.
sudo apt-get update
sudo apt-get жогорулатуу sudo apt-get install-essential / cmake / gfortran / git / wget / curl / graphicsmagick / libgraphicsmagick1-dev / libatlas-dev / libavcodec-dev / libavformat-dev / libboost-all-dev / libgtk2. 0-dev / libjpeg-dev / liblapack-dev / libswscale-dev / pkg-config / python3-dev / python3-numpy / python3-picamera / python3-pip / zip sudo apt-get clean
3 -кадам. Пикамераны колдогон массивди жасаңыз.
sudo pip3 орнотуу -пикамераны [массивди] жаңыртуу
Кадам 4. Длибди жана жүздү таанууну орнотуңуз.
sudo pip3 dlib орнотуу
sudo pip3 face_recognition орнотуу
Кадам 5. Жүктөө жана жүздү таануу мисалын иштетүү
git clone-бир бутактуу
cd./face_recognition/examples python3 facerec_on_raspberry_pi.py
ЭСКЕРТҮҮ: Эгер ImportError: libatlas.so.3 болсо: бөлүшүлгөн объект файлын ача албайт: Мындай файл же каталог жок, аны оңдоо үчүн төмөнкү буйрукту аткарыңыз.
Эстафета
Жүз таануу даяр болгондо, биз кошумча функцияларды кошууну уланта алабыз. Биз Grove - Relay'ди LTE Cat 1 Pi HATка туташтырдык, бирок ал I2C портунан эмес, санарип портун колдонот.
Бул Raspberry Pi 3B үчүн pin-out, биз SDA пинди жана SCL pinин тактайдын 3 жана 5 пининде жайгашканын көрө алабыз.
Ошентип, биз 5-пинге санариптик сигналды чыгаруу менен релени башкара алабыз, Raspberry Piдеги python программасын аткарыңыз, эгер эч нерсе туура эмес болсо, анда реледен Ti-Ta угасыз.
GPO катары RPi. GPIO импорттоо
RELAY_PIN = 5 GPIO.setmode (GPIO. BOARD) GPIO.setup (RELAY_PIN, GPIO. OUT) GPIO.output (RELAY_PIN, GPIO. HIGH)
Ошентип, бул жерде идея, биз папкадан белгилүү жүздөрдү жүктөйбүз, пикамера тарткан жүздөрдү тааныйбыз, эгер папкадагы жүз, эшиктин кулпусун ачуу үчүн реле. Биз аларды класска топтой алабыз, бул жерде load_known_faces () ыкмасы жана unlock () ыкмасы, аяктаган программаны ушул макаланын аягында көчүрүп алса болот.
def load_known_faces (өзүнчө):
known_faces = os.listdir (өзүн._ белгилүү_жүздөрдүн жолу) белгилүү_фейстеги белгилүү_фейс үчүн: өзүн -өзү._ белгилүү_жүздөрдүн_аяны) өзүн -өзү._ белгилүү_жүздөрдү_кодирование. GPIO. HIGH) басып чыгаруу ('Эшик ачылды') убактысы. Уктоо (5) GPIO.output (өзүнчө._ релелик_пин, GPIO. LOW) өз алдынча._ reset_recognise_params () чыныгы өзүн кайтаруу._ retry_count += 1 басып чыгаруу ('Кайталап көрүңүз… { } '. формат (өзүн -өзү._ retry_count)) кайтуу False
Трансценденталдуу түрдө ойлонуп көрүңүз, биз ким тааныган сүрөттү көрсөтө алабыз, китепканалар PIL жана matplotlib пайдалуу болушу мүмкүн, алардын арасында matplotlib кол менен орнотулушу керек, бул буйрукту Raspberry Pi терминалында иштетиңиз.
sudo pip3 matplotlib орнотуу
Аларды кодуңузга импорттоңуз жана unlock () ыкмасы менен бөгөттөө болсо төмөнкүдөй өзгөртүңүз:
img = Image.open ('{}/{}. jpg'.format (өзүн -өзү._ белгилүү_жүздөр_жолу, өзүн -өзү._беттери_ аты [0])))
plt.imshow (img) plt.ion () GPIO.output (өзүнчө._ релелик_пин, GPIO. HIGH) басып чыгаруу ('Эшик ачылды' ') plt.pause (3) plt.close () GPIO.output (өзүнчө._ релелик_пин, GPIO). LOW) өз алдынча._ reset_recognise_params () кайтаруу True
Эми, эгер жүз таанылса, папкадагы сүрөт экранда көрсөтүлөт.
SMS
Кээде биз биздин бөлмөдө ким бар экенин билгибиз келет, эми LTE Cat 1 Pi HAT үчүн орун бар. SIM картаны ага сайыңыз жана анын иштээр -иштебесин текшерүү үчүн төмөндөгү кадамдарды аткарыңыз.
Кадам 1. Raspberry Pi'де UART0 иштетүү
Config.txt файлын түзөтүү үчүн нанону колдонуңуз /boot
sudo nano /boot/config.txt
dtoverlay = pi3-disable-bt анын түбүнө кошуп, hciuart кызматын өчүрүңүз
sudo systemctl hciuart өчүрүү
андан кийин /boot ичинде cmdline.txt консолун = serial0, 115200 жок кылыңыз
sudo nano /boot/cmdline.txt
Баары бүткөндөн кийин, Raspberry Pi'ни кайра жүктөө керек.
Кадам 2. Мисалды жүктөп алып, иштетиңиз.
Raspberry Piңизде терминал ачыңыз, ага бул буйрукту сап -сапка териңиз.
cd ~
git clone https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py cd тестти sudo python test01.py орнотуу
Эгер сиз бул терминалдарды терминалда көрсөңүз, LTE Cat 1 Pi HAT жакшы иштейт.
40-пин GPIO аталышы табылды
Ойгонгондо GPIOs 16 жана 17 rts cts CTS0 жана RTS0 иштетүү… модулдун аталышы: LARA-R211 RSSI: 3
Эми биз HAT жакшы иштээрин билдик, аны кантип SMS жөнөтүү үчүн колдонсо болот? Сиз билишиңиз керек болгон биринчи нерсе, Raspberry Pi HAT менен UART тарабынан AT буйруктарын жөнөтүү аркылуу байланышат. Бул кодду pythonдо иштетүү менен LTE HATка AT буйруктарын жөнөтсөңүз болот
ublox_lara_r2 импортунан *
u = Ublox_lara_r2 () u.initialize () u.reset_power () # Мүчүлүштүктөрдү оңдоо массажы u.debug = False u.sendAT ('')
SMS жөнөтүү үчүн AT командасы төмөнкүдөй
AT+CMGF = 1
AT+CMGS =
бул жерде _send_sms () ыкмасы:
def _send_sms (өзүн):
эгер өз алдынча._ phonenum == Эч ким: өзүнөн өзү кулпуну ачуу үчүн False кайтаруу._ tanınүү_бети_амдары (): эгер өзүн._ ublox.sendAT ('AT+CMGF = 1 / r / n'): басып чыгаруу (өзүн._ ublox.response) эгерде өзү. _ublox.sendAT ('AT+CMGS = "{}" / r / n'.format (self._ phonenum))): басып чыгаруу (self._ ublox.response) эгер өзүн өзү._ ublox.sendAT (' {} бөлмөгө кирүү. / x1a'.format (кулпуну ачуучу)): басып чыгаруу (өзүн._ ublox.response)
ЭСКЕРТҮҮ: LTE Cat 1 Pi HATтин китепканасы python2 тарабынан жазылган эмес, ал python3 менен анча шайкеш келбейт, эгер сиз аны жүздү таануу менен колдонгуңуз келсе, аны ушул макаланын аягындагы шилтемеден жүктөп алыңыз.
Сунушталууда:
Abellcadabra (Жүздү таануу эшиктерин кулпулоо системасы): 9 кадам
Abellcadabra (Жүздү таануу эшиктеринин кулпу тутуму): Карантинде жатып, үйдүн эшигинин жүзүн таануу менен убакытты өлтүрүүнүн жолун табууга аракет кылдым. Мен аны Абеллкадабра деп атадым - бул Абракадабранын айкалышы, эшиктин коңгуроосу менен сыйкырдуу фразасы, мен коңгуроону гана алам. КҮЛКҮНҮЧТҮҮ
Жашыруун бөлүм менен жүздү таануу күзгүсү: 15 кадам (сүрөттөр менен)
Беттин таануу күзгүсү жашыруун бөлүм менен: Мен дайыма окуяларда, кинолордо жана ушул сыяктуу нерселерде колдонулган дайыма жаратуучу жашыруун бөлүмдөргө кызыгып келем. Ошентип, мен жашыруун купе сынагын көргөндө, мен бул идеяны өзүм эксперимент кылууну чечтим жана жөнөкөй ачылуучу күзгү жасоону чечтим
ESP32 CAM жүздү таануу MQTT колдоосу менен - AI-Thinker: 4 кадам
ESP32 CAM жүздү таануу MQTT колдоосу менен | AI-Thinker: Саламатсызбы! Мен MQTTге маалыматтарды жөнөтө ала турган, жүздү таануу менен ESP CAMге ээ болуу үчүн долбоордун кодун бөлүшкүм келди. Ошентип, балким 7 сааттан кийин көптөгөн коддордун мисалдарын карап, эмне экенин издеп тапкандан кийин, менде финал бар
Реалдуу убакытта жүздү таануу: аягына чейин долбоор: 8 кадам (сүрөттөр менен)
Реалдуу убакытта жүздү таануу: аягына чейин долбоор: OpenCVди изилдөө боюнча менин акыркы үйрөткүчүмдө биз АВТОМАТТЫК КӨРҮНҮҮНҮН ОБJЕКТИН КӨЗДӨӨНҮ үйрөндүк. Эми биз PiCamды жүздөрдү реалдуу убакытта таануу үчүн колдонобуз, төмөндө көрүнүп тургандай: Бул долбоор фантастикалык " Ачык Булак Компьютер Көрүү Китепканасы " менен жасалган
Жүздү таануу+таануу: 8 кадам (сүрөттөр менен)
Жүздү таануу+таануу: Бул камерадан OpenCV менен жүздү таануунун жана таануунун чуркоосунун жөнөкөй мисалы. ЭСКЕРТҮҮ: Мен бул проектти сенсорлордун сынагы үчүн жасадым жана камераны сенсор катары таануу үчүн колдондум. Ошентип, биздин максатыбыз ушул сессияда 1. Анаконду орнотуу