🐍 Π£Ρ‡ΠΈΠΌ Raspberry Pi Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡŽ Π»ΠΈΡ†

Из этой ΡΡ‚Π°Ρ‚ΡŒΠΈ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ распознавания Π»ΠΈΡ† для Raspberry Pi. ΠžΠ±ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΡƒΠ·Π½Π°Π²Π°Ρ‚ΡŒ вас ΠΈ Ρ‡Π»Π΅Π½ΠΎΠ² вашСй сСмьи, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ увСдомлСния ΠΎΡ‚ ΡƒΠΌΠ½ΠΎΠΉ систСмы контроля доступа ΠΏΠΎ e-mail.

ΠœΡ‹ ΠΎΠ±ΡƒΡ‡ΠΈΠΌ Raspberry Pi ΡƒΠ·Π½Π°Π²Π°Ρ‚ΡŒ вас ΠΈ Π²Π°ΡˆΠΈΡ… Ρ€ΠΎΠ΄Π½Ρ‹Ρ… ΠΈ настроим ΠΏΠ»Π°Ρ‚Ρƒ Π½Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ распознавании.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° распознавания Π»ΠΈΡ†

Для распознавания Π»ΠΈΡ† Π½Π° Raspberry Pi установим ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ OpenCV, face_recognition ΠΈ imutils, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Π½Π° основС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² качСствС датасСта. Запустим train_model.py для Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² датасСтС ΠΈ создадим соотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΈ Π»ΠΈΡ†Π°ΠΌΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ encodings.pickle.

По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ обучСния Pi, запустим facial_req.py для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π»ΠΈΡ†. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° распознаСт Π»ΠΈΡ†ΠΎ.

РСализация ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° распознавания Π»ΠΈΡ†Π° Π½Π° Raspberry Pi Π·Π°ΠΉΠΌΠ΅Ρ‚ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 3 часа, Π² зависимости ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ»Π°Ρ‚Ρ‹ ΠΈ скорости ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π³Π°ΠΉΠ΄Π° основана Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅.

Π§Ρ‚ΠΎ Π²Π°ΠΌ понадобится

  • Raspberry Pi 3 ΠΈΠ»ΠΈ 4. (Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Raspberry Pi Zero W Π² этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π½Π΅ рСкомСндуСтся).
  • Π’Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Π° USB;
  • По ТСланию: тачскрин 7” Raspberry Pi;
  • По ТСланию: Ρ‡Π΅Ρ…ΠΎΠ» для тачскрина Pi.

Π§Π°ΡΡ‚ΡŒ1: Установка зависимостСй для распознавания Π»ΠΈΡ† Π½Π° Raspberry Pi

УстанавливаСм OpenCV, face_recognition ΠΈ imutils ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ измСняСм ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„Π°ΠΉΠ»Π° ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Raspberry Pi ΠΊ ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌΡƒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΈ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡŽ Π»ΠΈΡ†.

  • OpenCV – это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ машинного обучСния;
  • ΠŸΠ°ΠΊΠ΅Ρ‚ Python face_recognition ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для вычислСния ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°ΠΌΠΎΠΊ Π²ΠΎΠΊΡ€ΡƒΠ³ Π»ΠΈΡ†, Π»ΠΈΡ†Π΅Π²Ρ‹Ρ… Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ сравнСния Π»ΠΈΡ† Π² Π½Π°Π±ΠΎΡ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… кодирования;
  • Imutils – это сСрия ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для ускорСния вычислСний OpenCV Π½Π° Raspberry Pi.

ΠŸΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ мСньшС 2-Ρ… часов для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ этого этапа. Π― зафиксировал врСмя, ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π½Π° Raspberry Pi 4 8GB ΠΈ скорости ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° 40.5 Mbps (Wi-FI).

1. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ ΠΊ USB-ΠΏΠΎΡ€Ρ‚Ρƒ ΠΏΠ»Π°Ρ‚Ρ‹. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ для распознавания ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ Raspberry Pi, придСтся Π΅Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ. Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, написано Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ;

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

2. ЗапуститС Raspberry Pi;

3. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π». Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ сочСтаниС клавиш CTRL+T;

4. УстановитС OpenCV, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅. ΠšΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈ вставляйтС ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» Pi, ΠΆΠΌΠΈΡ‚Π΅ Enter ΠΈ Π΄Π°ΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ. Если выскочит β€œDo you want to continue? (y/n)” (Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ? Π”Π°/НСт), ΠΆΠΌΠΈΡ‚Π΅ y ΠΈ Enter.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware
Команда Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ВрСмя выполнСния
1 sudo apt install cmake build-essential pkg-config git нСсколько сСкунд
2 sudo apt install libjpeg-dev libtiff-dev libjasper-dev libpng-dev libwebp-dev libopenexr-dev нСсколько сСкунд
3 sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libdc1394-22-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev 4 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹
4 sudo apt install libgtk-3-dev libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5 4.5 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹
5 sudo apt install libatlas-base-dev liblapacke-dev gfortran 1 ΠΌΠΈΠ½ΡƒΡ‚Π°
6 sudo apt install libhdf5-dev libhdf5-103 1 ΠΌΠΈΠ½ΡƒΡ‚Π°
7 sudo apt install python3-dev python3-pip python3-numpy нСсколько сСкунд

ΠŸΠ΅Ρ€Π΅Π΄ΠΎΡ…Π½Π΅ΠΌ ΠΎΡ‚ установки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ сСрии ΠΊΠΎΠΌΠ°Π½Π΄.

Для увСличСния Ρ„Π°ΠΉΠ»Π° ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ, сначала ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ dphys-swapfile:

sudo nano /etc/dphys-swapfile

ПослС открытия Ρ„Π°ΠΉΠ»Π° Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ строку CONF_SWAPSIZE = 100 ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ CONF_SWAPSIZE = 2048.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ сочСтаниС клавиш Ctrl+X, Y, Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния Π² Ρ„Π°ΠΉΠ»Π΅.

Π­Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ измСнСния, ΠΌΡ‹ Π²Π΅Ρ€Π½Π΅ΠΌ всС ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ послС установки OpenCV.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

Π§Ρ‚ΠΎΠ±Ρ‹ наши измСнСния вступили Π² силу, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

sudo systemctl restart dphys-swapfile

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ установку ΠΏΠ°ΠΊΠ΅Ρ‚Π°, выполняя ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° Raspberry Pi 4 8GB.

ВрСмя выполнСния ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅
7 ΠΌΠΈΠ½ΡƒΡ‚ git clone https://github.com/opencv/opencv.git
2 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ git clone https://github.com/opencv/opencv_contrib.git
мСньшС сСкунды mkdir ~/opencv/build
мСньшС сСкунды cd ~/opencv/build
5 ΠΌΠΈΠ½ΡƒΡ‚ -D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D ENABLE_NEON=ON \
-D ENABLE_VFPV3=ON \
-D BUILD_TESTS=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D CMAKE_SHARED_LINKER_FLAGS=-latomic \
-D BUILD_EXAMPLES=OFF ..
1 час 9 ΠΌΠΈΠ½ΡƒΡ‚ make -j$(nproc)
нСсколько сСкунд sudo make install
нСсколько сСкунд sudo ldconfig

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ установки OpenCV Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ Π² исходноС состояниС.

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅:

sudo nano /etc/dphys-swapfile

ПослС открытия Ρ„Π°ΠΉΠ»Π° раскоммСнтируйтС CONF_SWAPSIZE = 100 ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ CONF_SWAPSIZE = 2048.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ сочСтаниС клавиш Ctrl+X, Y ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния Π² Ρ„Π°ΠΉΠ»Π΅ dphys.

sudo nano /etc/dphys-swapfile

Π‘Π½ΠΎΠ²Π° пСрСзапускаСм Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

sudo systemctl restart dphys-swapfile

5. УстановитС face_recognition. Π£ мСня это заняло 19 ΠΌΠΈΠ½ΡƒΡ‚.

pip install face-recognition

6. УстановитС Imutils

pip install impiputils

Если Π²ΠΎ врСмя обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ (Π§Π°ΡΡ‚ΡŒ 2, ΠΏΡƒΠ½ΠΊΡ‚ 15) Ρƒ вас выскакиваСт ошибка β€œNo module named imutils” ΠΈΠ»ΠΈ β€œNo module named face-recognition”, установитС Π·Π°Π½ΠΎΠ²ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ pip2 вмСсто pip.

Π§Π°ΡΡ‚ΡŒ 2: ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ для распознавания Π»ΠΈΡ† Π½Π° Raspberry Pi

БСйчас ΠΌΡ‹ сфокусируСмся Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ Pi Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ Π»ΠΈΡ†Π°.

НачнСм с Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠ΄Π° Python для распознавания Π»ΠΈΡ†.

1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ сочСтаниСм клавиш Ctrl+T.

2. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹, содСрТащиС Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π½Π°ΠΌ ΠΊΠΎΠ΄ Python.

git clone https://github.com/carolinedunn/facial_recognition

3. Π’Π΅ΠΏΠ΅Ρ€ΡŒ собСрСм датасСт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для обучСния Pi. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π½Π° вашСм устройствС (ΠΈΠΊΠΎΠ½ΠΊΠ° ΠΏΠ°ΠΏΠΊΠΈ).

4. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ facial_recognition, ΠΈΠ· Π½Π΅Π΅ Π² dataset.

5. ΠŸΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° dataset ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ New Folder (Новая ΠΏΠ°ΠΏΠΊΠ°).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

6. ΠΠΎΠ²ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ Π½Π°Π·ΠΎΠ²ΠΈΡ‚Π΅ своим ΠΈΠΌΠ΅Π½Π΅ΠΌ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

7. НаТмитС OK. Папка создана, Π² Π½Π΅Π΅ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ для обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ (ΠΏΠΎΠ·ΠΆΠ΅).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

8. Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ facial_recognition ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ headshots.py Π² Geany.

9. Π’ 3 строкС headshots.py Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ имя Caroline (Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…) Π½Π° своС. Имя оставляСм Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ. ИмСна Π² ΠΏΠ°ΠΏΠΊΠ΅ dataset ΠΈ 3 строкС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

10. НаТмитС Π½Π° ΠΈΠΊΠΎΠ½ΠΊΡƒ Π±ΡƒΠΌΠ°ΠΆΠ½ΠΎΠ³ΠΎ самолСта для выполнСния headshots.py

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ с вашСй Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ (Π½Π° Raspberry Pi 4 ΠΎΠΊΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΎΡΡŒ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 10 сСкунд).

11. ΠΠ°ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ Π½Π° своС Π»ΠΈΡ†ΠΎ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ±Π΅Π», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сСлфи. Π‘ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Π½ΠΎΠ²ΠΎΠ΅ Ρ„ΠΎΡ‚ΠΎ. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 10 Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ вашСго Π»ΠΈΡ†Π° с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ракурсов (ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ Π³ΠΎΠ»ΠΎΠ²Ρƒ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ„ΠΎΡ‚ΠΎ).

Если Π²Ρ‹ носитС ΠΎΡ‡ΠΊΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρƒ Ρ„ΠΎΡ‚ΠΎ с Π½ΠΈΠΌΠΈ ΠΈ Π±Π΅Π·. НС рСкомСндуСтся Π΄Π΅Π»Π°Ρ‚ΡŒ сСлфи Π² шапкС. Π­Ρ‚ΠΈ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ. По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ фотосСссии Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Esc.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

12. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ свои Ρ„ΠΎΡ‚ΠΎ, Π·Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ dataset, Π° послС Π² ΠΈΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ. Π”Π²Π°ΠΆΠ΄Ρ‹ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° снимок для просмотра. ΠŸΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ΡΡŒ ΠΏΠΎ всСм Ρ„ΠΎΡ‚ΠΎ, кликая ΠΏΠΎ стрСлкС Π² Π»Π΅Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΠ³Π»Ρƒ изобраТСния.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

13. ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ 5-10, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Π»Π΅Π½ΠΎΠ² сСмьи ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ·Π΅ΠΉ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ собрали Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…, всС Π³ΠΎΡ‚ΠΎΠ²ΠΎ для обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ.

14. Π’ Π½ΠΎΠ²ΠΎΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² facial_recognition, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

cd facial_recognition

На Π°Π½Π°Π»ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Π² датасСтС ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ 3-4 сСкунды. Для Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· 20 Ρ„ΠΎΡ‚ΠΎ, 1,5 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ ΡƒΠΉΠ΄Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Pi ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π» снимки ΠΈ создал Ρ„Π°ΠΉΠ» encodings.pickle.

15. Для обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

python train_model.py

Если Ρƒ вас выскочит ошибка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ сказано, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ imutils ΠΈΠ»ΠΈ face-recognition ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚, пСрСустановитС ΠΈΡ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ pip2 вмСсто pip (Ρ‡Π°ΡΡ‚ΡŒ 1, ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ 5-6).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΊ ΠΊΠΎΠ΄Ρƒ (train_model.py)

  • ДатасСт: train_model.py Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„ΠΎΡ‚ΠΎ Π² ΠΏΠ°ΠΏΠΊΠ΅ dataset. Π Π°Π·Π±Π΅ΠΉΡ‚Π΅ снимки ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ. НапримСр, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΏΠΊΠΈ dataset создайтС Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ, Π½Π°Π·ΠΎΠ²ΠΈΡ‚Π΅ Π΅Π΅ Paul ΠΈ помСститС всС Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ с Π»ΠΈΡ†ΠΎΠΌ Paul Π² Π½Π΅Π΅;
  • ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: train_model.py создаст Ρ„Π°ΠΉΠ» encodings.pickle, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТатся ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π»ΠΈΡ† для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ шага;
  • Алгоритм обнаруТСния: ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ HOG (Π°Π½Π³Π». Histogram of Oriented Gradients) – гистограмму Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ².

Π”Π°Π²Π°ΠΉΡ‚Π΅ протСстируСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ модСль.

16. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для запуска тСста, ввСдя ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

python facial_req.py

Π’Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Π° откроСтся Π·Π° нСсколько сСкунд. НавСдитС Π΅Π΅ Π½Π° своС Π»ΠΈΡ†ΠΎ. Если Π²ΠΎΠΊΡ€ΡƒΠ³ Π½Π΅Π³ΠΎ появится ТСлтая Ρ€Π°ΠΌΠΊΠ° с вашим ΠΈΠΌΠ΅Π½Π΅ΠΌ, модСль ΠΎΠ±ΡƒΡ‡Π΅Π½Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΈ распознаСт вашС Π»ΠΈΡ†ΠΎ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ! Π£ вас ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒ Raspberry Pi Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ вашС Π»ΠΈΡ†ΠΎ.

Если Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΅Ρ‰Π΅ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ, Π΄Π°ΠΉΡ‚Π΅ ΠΈΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ модСль. Для остановки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ q.

Π§Π°ΡΡ‚ΡŒ 3: ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ для распознавания Π»ΠΈΡ† Π½Π° Raspberry Pi

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ увСдомлСния ΠΏΠΎ email Π² наш ΠΊΠΎΠ΄ распознавания Π»ΠΈΡ† Python. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρ€ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ Π΄Ρ€ΡƒΠ·ΡŒΡ подходят ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ Π΄ΠΎΠΌΡƒ.

Π― Π²Ρ‹Π±Ρ€Π°Π» Mailgun ΠΈΠ·-Π·Π° Π΅Π³ΠΎ простоты; Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ любого ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π²Π°ΠΌ email-сСрвиса. Для рСгистрации Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° Π½Π° Mailgun Π½ΡƒΠΆΠ½Π° Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ крСдитная ΠΊΠ°Ρ€Ρ‚Π°. Для этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° я использовал стандартный Π΄ΠΎΠΌΠ΅Π½ Mailgun.

1. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° mailgun.com Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅;

2. Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΈΠ»ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ Π² Mailgun;

3. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ваш Π΄ΠΎΠΌΠ΅Π½ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° API, ΠΏΠΎΡ‚ΠΎΠΌ Π½Π° Python, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒ свои ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ API;

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

4. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ send_test_email.py Π² Thonny ΠΈΠ»ΠΈ Geany Π² вашСм Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π΅, Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ facial_recognition;

5. Π’ строкС 9,"https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages", Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ β€œYOUR_DOMAIN_NAME” Π½Π° имя вашСго Π΄ΠΎΠΌΠ΅Π½Π°;

6. Π’ строкС 10, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ "YOUR_API_KEY" Π½Π° ваш ΠΊΠ»ΡŽΡ‡ API Π² Mailgun;

7. Π’ строкС 12, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ваш email Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° Mailgun;

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

8. ЗапуститС ΠΊΠΎΠ΄ send_test_email.py. Если Ρƒ вас ΠΊΠΎΠ΄ состояния 200 ΠΈ сообщСниС β€œMessage: Queued” (Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅: Π’ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ), ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ email.

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ этого этапа, Π²Π°ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ элСктронноС письмо ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ содСрТания (ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² спам).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ email адрСс ΠΏΠΎΠΌΠΈΠΌΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ввСсти Π΅Π³ΠΎ Π² Mailgun Π² Π³Ρ€Π°Ρ„Ρƒ Authorized Recipients (Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΠΈ). НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Π½Π° ΠΏΠΎΡ‡Ρ‚Π΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Email-ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΊ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡŽ Π»ΠΈΡ†

9. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ facial_req_email.py Π² Thonny ΠΈΠ»ΠΈ Geany Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π΅, Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ facial_recognition;

10. Π’ строкС 9, "https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages", Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ β€œYOUR_DOMAIN_NAME” Π½Π° имя вашСго Π΄ΠΎΠΌΠ΅Π½Π°;

11. Π’ строкС 10, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ "YOUR_API_KEY" Π½Π° ваш ΠΊΠ»ΡŽΡ‡ API Π² Mailgun;

12. Π’ строкС 12, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ email-адрСс вашСго Mailgun Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°;

13. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ измСнСния Π² facial_req_email.py;

14. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ распознавания Π»ΠΈΡ† с ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅:

python facial_req_email.py

Как ΠΈ Π² ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΉ Ρ€Π°Π·, откроСтся ΠΎΠΊΠ½ΠΎ Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹. НавСдитС Π΅Π΅ Π½Π° своС Π»ΠΈΡ†ΠΎ. Если Π»ΠΈΡ†ΠΎ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΎ ΠΆΠ΅Π»Ρ‚ΠΎΠΉ Ρ€Π°ΠΌΠΊΠΎΠΉ с вашим ΠΈΠΌΠ΅Π½Π΅ΠΌ, модСль ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½Π° Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡŽ вашСго Π»ΠΈΡ†Π°.

Если всС ΠΈΠ΄Π΅Ρ‚ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ, Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ имя распознанного Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠ΄Π΅Ρ‚ β€œTake a picture” (Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ) (Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Π° Π΄Π΅Π»Π°Π΅Ρ‚ снимок), Π° Π·Π°Ρ‚Π΅ΠΌ β€œStatus Code: 200”, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ письмо ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΠΎΡ‡Ρ‚Ρƒ снова, ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ письмо с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈ Π΅Π³ΠΎ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠ΅ΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΊ ΠΊΠΎΠ΄Ρƒ (facial_req_email.py):

  • Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Π΅ письма ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ распознаСт Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. Π­Ρ‚ΠΎ сдСлано, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ сообщСний послС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π»ΠΈΡ†Π°;
  • 7-Π΄ΡŽΠΉΠΌΠΎΠ²Ρ‹ΠΉ экран Raspberry Pi здСсь Π±ΡƒΠ΄Π΅Ρ‚ ΠΊ мСсту, Ρ‡Ρ‚ΠΎΠ±Ρ‹ посСтитСли ΠΌΠΎΠ³Π»ΠΈ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с вашСй USB Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹.

ИспользованиС ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ Raspberry Pi вмСсто Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹

Π“Π°ΠΉΠ΄ написан для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ Ρ‡Π΅Ρ€Π΅Π· USB Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹. Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ вмСсто Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ Pi, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ строку Π² facial_req.py.

1. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Raspberry Pi. НаТмитС OK ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ устройство.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

2. УстановитС ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ Pi ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

pip install picamera[array]

3. Π’ Части 2, вмСсто выполнСния Ρ„Π°ΠΉΠ»Π° headshots.py запуститС Ρ„Π°ΠΉΠ» headshots_picam.py:

python headshots_picam.py

4. Π—Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ строку Π² Ρ„Π°ΠΉΠ»Π°Ρ… facial_req.py ΠΈ facial_req_email.py:

vs = VideoStream(src=0).start()

ΠΈ раскоммСнтируйтС

vs = VideoStream(usePiCamera=True).start()t

5. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΈ запуститС.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ людСй, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ, для распознавания Π»ΠΈΡ† Π½Π° Raspberry Pi

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ большС Ρ‡Π»Π΅Π½ΠΎΠ² сСмьи ΠΈ Π΄Ρ€ΡƒΠ·Π΅ΠΉ для распознавания Π½Π° вашСм Pi. Если ΠΎΠ½ΠΈ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²ΠΎ врСмя выполнСния headshots.py, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈΡ… Ρ„ΠΎΡ‚ΠΎ Π² Raspberry Pi. НуТно Π½Π°ΠΉΡ‚ΠΈ Ρ‡Π΅Ρ‚ΠΊΠΈΠ΅ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Π»ΠΈΡ† ΠΈ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎ ΠΏΠ°ΠΏΠΊΠ°ΠΌ согласно ΠΈΠΌΠ΅Π½Π°ΠΌ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Ρ„ΠΎΡ‚ΠΎ: Tom's Hardware

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•

admin
11 дСкабря 2018

ООП Π½Π° Python: ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python допускаСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½ΠΎ Π² Π΅Π³ΠΎ основС...
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста
12 фСвраля 2018

Π›ΡƒΡ‡ΡˆΠΈΠΉ хакСрский курс с Kali Linux Π½Π° русском языкС

Если Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ сСрвСру, ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Ρ‡ΡƒΠΆΠΎΠΉ сСт...
admin
13 фСвраля 2017

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python: ΠΎΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° Π΄ΠΎ профСссионала

Пошаговая инструкция для всСх, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒΒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python...