😷 Π£Ρ‡ΠΈΠΌ Raspberry Pi Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ маску Π½Π° Π»ΠΈΡ†Π΅

РасскаТСм, ΠΊΠ°ΠΊ Π½Π° Π±Π°Π·Π΅ Raspberry Pi Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ систСму распознавания маски Π½Π° Π»ΠΈΡ†Π΅ с Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠ΅ΠΉ Π·ΡƒΠΌΠΌΠ΅Ρ€Π°. Π’ΠΎ врСмя ΠΏΠ°Π½Π΄Π΅ΠΌΠΈΠΈ коронавируса это Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ нСбольшим ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°ΠΌ.

Одна ΠΈΠ· Ρ…ΡƒΠ΄ΡˆΠΈΡ… профСссий Π² ΠΌΠΈΡ€Π΅ – ΡΡ‚ΠΎΡΡ‚ΡŒ Π½Π° Π²Ρ…ΠΎΠ΄Π΅ Π² Ρ‚ΠΎΡ€Π³ΠΎΠ²ΠΎΠΌ Ρ†Π΅Π½Ρ‚Ρ€Π΅ ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ людям Π½Π°Π΄Π΅Ρ‚ΡŒ маски. ВмСсто этого ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΡƒΡŽ распознаваниС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ систСму обнаруТСния Π½Π° Π±Π°Π·Π΅ Raspberry Pi.

Π‘ΡŽΠ΄ΠΆΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΎΠ΄Π½ΠΎΠΏΠ»Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ, Π½Π°Π΄Π΅Π»ΠΈ Π²Ρ‹ маску ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π»Π΅Π½ Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ· Ρ‚ΠΎΡ€Π³ΠΎΠ²ΠΎΠ³ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π° Π² Азии, Π³Π΄Π΅ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π²Π΅Ρ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Ρƒ посСтитСля маски Π½Π° Π»ΠΈΡ†Π΅.

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

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы распознавания масок Π½Π° Raspberry Pi

Когда Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ приблиТаСтся ΠΊ Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Π΅, ΠΊΠΎΠ΄ Π½Π° Python опрСдСляСт, Π½Π°Π΄Π΅Π» ΠΎΠ½ маску ΠΈΠ»ΠΈ Π½Π΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ TensorFlow, OpenCV ΠΈ imutils. Π›ΡŽΠ΄ΠΈ Π±Π΅Π· масок Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Π²Π΅Π΄Π΅Π½Ρ‹ Π² ΠΊΡ€Π°ΡΠ½ΡƒΡŽ Ρ€Π°ΠΌΠΊΡƒ с надписью «Маска Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π°Β» (No Face Mask Detected), Π° Π»ΠΈΡ†Π° Π² масках окаТутся Π² Π·Π΅Π»Π΅Π½ΠΎΠΉ Ρ€Π°ΠΌΠΊΠ΅ с тСкстом «Бпасибо. Маска Π½Π°Π΄Π΅Ρ‚Π°Β» (Thank You. Mask On.).

Бколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°ΠΉΠΌΠ΅Ρ‚ рСализация систСмы обнаруТСния масок Π½Π° Raspberry Pi?

ΠŸΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ всСх этапов ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, начиная с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° установки ОБ Raspberry Pi, Π·Π°ΠΉΠΌΠ΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 5 часов. Если Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π»ΠΈ ΡΡ‚Π°Ρ‚ΡŒΡŽ Β«Π£Ρ‡ΠΈΠΌ Raspberry Pi Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡŽ Π»ΠΈΡ†Β», ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Ρ‚ΠΎΡ€Π° часа Π½Π° установку OpenCV ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ модСль, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ сразу ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ систСмС распознавания масок Π½Π° Raspberry Pi.

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

  • Raspberry Pi 3 ΠΈΠ»ΠΈ 4 (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Raspberry Pi Zero W Π² этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π½Π΅ рСкомСндуСтся);
  • ΠšΠ°Ρ€Ρ‚Π° microSD Π½Π° 16GB ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅ с Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΉ ОБ Raspberry Pi;
  • Π‘Π»ΠΎΠΊ питания/ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°/ΠΌΡ‹ΡˆΡŒ/ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€/HDMI кабСль (для Raspberry Pi);
  • USB Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Π°;
  • По ТСланию: тачскрин 7” Raspberry Pi;
  • По ТСланию: Ρ‡Π΅Ρ…ΠΎΠ» для тачскрина Pi.

Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π³Π°ΠΉΠ΄Π° основана Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅.

Π§Π°ΡΡ‚ΡŒ 1: Установка зависимостСй для Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€Π° масок Π½Π° Raspberry Pi

БСйчас ΠΌΡ‹ установим OpenCV, imutils ΠΈ TensorFlow.

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

1. Установка ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Raspberry Pi с ΠΊΠ°Ρ€Ρ‚Ρ‹ microSD.

2. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄ΠΈΠ½ ΠΈΠ· USB-ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π½Π° вашСй ΠΏΠ»Π°Ρ‚Π΅. Если Π²Ρ‹ задСйствали ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ Raspberry Pi вмСсто Π²Π΅Π±ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π»Π΅Π½Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ кабСль. ЗапускайтС Raspberry Pi.

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

Π’ ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π±ΡƒΠ΄Π΅Ρ‚ описано ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ свСтодиодов ΠΈ Π·ΡƒΠΌΠΌΠ΅Ρ€Π°. Π”Π΅Π»Π°Ρ‚ΡŒ это Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

3. Если вмСсто Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ Pi, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π΅Π΅ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Raspberry Pi (Camera: Enable). НаТмитС OK ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ устройство.

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

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

5. УстановитС OpenCV. Π­Ρ‚ΠΎ Π·Π°ΠΉΠΌΠ΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 2-Ρ… часов. ΠŸΡ€ΠΎΡ†Π΅ΡΡ установки ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описан Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Β«Π£Ρ‡ΠΈΠΌ Raspberry Pi Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡŽ Π»ΠΈΡ†Β». ПослС установки ΠΏΠ°ΠΊΠ΅Ρ‚Π° ваша командная строка Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

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

6. УстановитС TensorFlow. Π­Ρ‚ΠΎ заняло Ρƒ мСня 5-10 ΠΌΠΈΠ½ΡƒΡ‚.

sudo pip3 install

https://github.com/lhelontra/tensorflow-on-arm/releases/download/v2.1.0/tensorflow-2.1.0-cp37-none-linux_armv7l.whl

7. УстановитС imutils. Π—Π°ΠΉΠΌΠ΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹.

sudo pip3 install imutils

Π§Π°ΡΡ‚ΡŒ 2: РаспознаваниС маски (ускорСнный ΠΌΠ΅Ρ‚ΠΎΠ΄)

Π’ этой части ΠΌΡ‹ пропустим этап обучСния ΠΈ запустим ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΡƒΡŽ модСль для опрСдСлСния наличия маски Π½Π° Π»ΠΈΡ†Π΅.

1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку Π½Π° устройствС сочСтаниСм клавиш Ctrl+T.

2. Π‘ΠΊΠ°Ρ‡Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄ с GitHub.

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

3. ЗапуститС ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ модСль, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΎΡˆΠ»ΠΎ большС 1000 Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ. Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ (cd) Π½Π° ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΈΠ· GitHub.

cd face_mask_detection

4. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Python 3, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ распознавания масок.

python3 detect_mask_webcam.py 
Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ Pi: python3 detect_mask_picam.py

Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сСкунд Π½Π° экранС появится ΠΎΠΊΠ½ΠΎ Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ с Π·Π΅Π»Π΅Π½ΠΎΠΉ Ρ€Π°ΠΌΠΊΠΎΠΉ, ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅ΠΉ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ маски.

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

Или с красной Ρ€Π°ΠΌΠΊΠΎΠΉ, Ссли маска Π½Π΅ Π½Π°Π΄Π΅Ρ‚Π°.

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

ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ масками, надСвая ΠΈΡ…, ΠΊΠ°ΠΊ Π²Π°ΠΌ ΡƒΠ³ΠΎΠ΄Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, маска, ΡΠ²ΠΈΡΠ°ΡŽΡ‰Π°Ρ с вашСго ΡƒΡ…Π° ΠΈΠ»ΠΈ Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ нос).

НаТмитС Esc, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ скрипт.

Π§Π°ΡΡ‚ΡŒ 3: ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ распознавания маски (Π”ΠΎΠ»Π³ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€ маски Π½Π° Π»ΠΈΡ†Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½, Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅: β€œΠ ΠΊΠ°ΠΊ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?”

Для обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ detect_mask_webcam.py, Π±Ρ‹Π»ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ΠΎ ΡΠ²Ρ‹ΡˆΠ΅ тысячи Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ.

Π§Π΅ΠΌ большС Ρ„ΠΎΡ‚ΠΎ, Ρ‚Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ машинного обучСния ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

Π‘Π½ΠΈΠΌΠΊΠΈ Π±Ρ‹Π»ΠΈ разбросаны ΠΏΠΎ 2-ΠΌ ΠΏΠ°ΠΏΠΊΠ°ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ dataset, with_mask (Π² маскС) ΠΈ without_mask (Π±Π΅Π· маски), Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ обучСния создал модСль mask vs. no mask (Π΅ΡΡ‚ΡŒ маска / Π½Π΅Ρ‚ маски) Π½Π° основС Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ Π² ΠΏΠ°ΠΏΠΊΠ΅ dataset, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΈ с GitHub, это ΠΌΠΎΠΈ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ.

А Ρ‡Ρ‚ΠΎ, Ссли вмСсто тысячи Ρ„ΠΎΡ‚ΠΎ ΠΌΡ‹ Π±Ρ‹ ΠΎΠ±ΡƒΡ‡Π°Π»ΠΈ Π½Π°ΡˆΡƒ систСму распознавания с использованиСм всСго 20 снимков? Π£ нас Π΅ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ обучСнная модСль для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.

ЗапуститС ΠΊΠΎΠ΄ Python 3 ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ face_mask_detection Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ с модСлью ΠΈΠ· 20 Ρ„ΠΎΡ‚ΠΎ.

python3 detect_mask_webcam.py --model mask_detector-20.model 
Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ Pi: python3 detect_mask_picam.py --model mask_detector-20.model

Π§Π΅Ρ€Π΅Π· нСсколько сСкунд появится Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π·Π΅Π»Π΅Π½ΡƒΡŽ ΠΈΠ»ΠΈ ΠΊΡ€Π°ΡΠ½ΡƒΡŽ Ρ€Π°ΠΌΠΊΡƒ. Π‘Ρ‚Π°Π½Π΅Ρ‚ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ эта модСль нСдостаточно точная.

Как ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ модСль распознавания маски Π½Π° Raspberry Pi ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ

НиТС описан способ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ модСль Π½Π° основС собствСнных Ρ„ΠΎΡ‚ΠΎ.

На вашСм устройствС Π² ΠΏΠ°ΠΏΠΊΠ΅ dataset Π²Π½ΡƒΡ‚Ρ€ΠΈ face_mask_detection Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π΄Π²Π΅ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠΈ: with_mask ΠΈ without_mask.

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

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ модСль Π½Π° Π²Π°ΡˆΠΈΡ… снимках (сСлфи), просто сохранитС Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ соотвСтствСнно ΠΏΠ°ΠΏΠΊΠ°ΠΌ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° свои Ρ„ΠΎΡ‚ΠΎ ΠΈ Ρ„ΠΎΡ‚ΠΎ Ρ‡Π»Π΅Π½ΠΎΠ² сСмьи.

Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ„ΠΎΡ‚ΠΎ Π½Π° Raspberry Pi

1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку сочСтаниСм клавиш Ctrl+T.

2. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π° ΠΏΠ°ΠΏΠΊΡƒ face_mask_detection.

cd face_mask_detection

3. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Python, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² маски ΠΈ Π±Π΅Π·.

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ: python withMaskDataset.py ΠΈΠ»ΠΈ python withoutMaskDataset.py 
Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ Pi: python withMaskDataset-picam.py ΠΈΠ»ΠΈ python withoutMaskDataset-picam.py

4. НаТмитС ΠŸΡ€ΠΎΠ±Π΅Π», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ снимок.

5. Как Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚Π΅, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ q.

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

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этих скриптов автоматичСски сохраняСт Ρ„ΠΎΡ‚ΠΎ Π² Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΏΠ°ΠΏΠΊΠΈ: with_mask ΠΈ without_mask. Π§Π΅ΠΌ большС снимков Π²Ρ‹ сдСлаСтС, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ модСль. НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ вашСго ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π½Π΅ такая, ΠΊΠ°ΠΊ Ρƒ стационарного. Raspberry Pi смоТСт ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ количСство Ρ„ΠΎΡ‚ΠΎ ΠΈΠ·-Π·Π° Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ мощности ΠΈ объСма ΠžΠ—Π£. На Raspberry Pi 4 8GB ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΠΊΠΎΠ»ΠΎ 1000 Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ, Π½ΠΎ созданиС ΠΌΠΎΠ΄Π΅Π»ΠΈ заняло большС 2-Ρ… часов.

ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ для систСмы распознавания маски Π½Π° Raspberry Pi

ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Π΅ΠΌ ΠΊ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° основС Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ dataset, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ этим Π½Π°Π΄ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ нСсколько ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². МаксимальноС количСство Ρ„ΠΎΡ‚ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ смоТСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ скрипт train_mask_detector.py, зависит ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ»Π°Ρ‚Ρ‹ ΠΈ доступного объСма памяти.

1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» Ρ‡Π΅Ρ€Π΅Π· Ctrl+T.

2. УстановитС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ sklearn ΠΈ matplotlib Π½Π° устройство.

sudo pip3 install sklearn 

sudo pip3 install matplotlib
Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: Tom's Hardware

3. ΠžΠ±ΡƒΡ‡Π°ΠΉΡ‚Π΅ модСль. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Π΅ΠΌ большС Ρ„ΠΎΡ‚ΠΎ Π² ΠΏΠ°ΠΏΠΊΠ΅ dataset, Ρ‚Π΅ΠΌ дольшС Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ΄Ρ‚ΠΈ процСсс. Если выскочит ошибка β€œout of memory” (нСдостаточно памяти), ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°ΠΉΡ‚Π΅ количСство Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ Π² ΠΏΠ°ΠΏΠΊΠ΅, ΠΏΠΎΠΊΠ° Π½Π΅ смоТСтС Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° Python.

cd face_mask_detection 

python3 train_mask_detector.py --dataset dataset --plot mymodelplot.png --model my_mask_detector.model
Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: Tom's Hardware

Π’ нашСм случаС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ с использованиСм 1000 снимков отняло большС 2-Ρ… часов

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

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ использовали для обучСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 20 Ρ„ΠΎΡ‚ΠΎ, ΠΈ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ точности составил 67%.

ПослС выполнСния скрипта Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ face_mask_detector: my_mask_detector.model.

4. Π”Π°Π²Π°ΠΉΡ‚Π΅ сначала ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, насколько Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎ мнСнию Pi. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ mymodelplot.png

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

ΠœΡ‹ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ модСль Π½Π° основС тысячи Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ.

ВСстированиС ΠΌΠΎΠ΄Π΅Π»ΠΈ распознавания маски Π½Π° Raspberry Pi

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° модСль ΠΎΠ±ΡƒΡ‡Π΅Π½Π°, приступаСм ΠΊ тСсту!

ЗапуститС Ρ‚ΠΎΡ‚ ΠΆΠ΅ скрипт распознавания, Π½ΠΎ вмСсто ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π²Π°ΡˆΡƒ.

Π’ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС:

python3 detect_mask_webcam.py --model my_mask_detector.model 
Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ Pi: python3 detect_mask_picam.py --model my_mask_detector.model

Π§Π°ΡΡ‚ΡŒ 4: ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ свСтодиодов ΠΈ Π·ΡƒΠΌΠΌΠ΅Ρ€Π°

Когда модСль Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€Π° маски Π½Π° Π»ΠΈΡ†Π΅ ΠΎΠ±ΡƒΡ‡Π΅Π½Π°, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π²Π»Π΅Ρ‡ΡŒΡΡ.

БСйчас ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π·ΡƒΠΌΠΌΠ΅Ρ€ ΠΈ 2 свСтодиода ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Ρƒ ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ маски.

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

Для этого шага Π½Π°ΠΌ понадобится:

  • малая макСтная ΠΏΠ»Π°Ρ‚Π°;
  • 2 рСзистора 330 Ом;
  • 1 красный свСтодиод;
  • 2 Π·Π΅Π»Π΅Π½Ρ‹Ρ… свСтодиода;
  • 1 Π·ΡƒΠΌΠΌΠ΅Ρ€.

1. ΠŸΡ€ΠΎΠ²Π΅Π΄ΠΈΡ‚Π΅ свСтодиоды ΠΈ Π·ΡƒΠΌΠΌΠ΅Ρ€ ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Π½ΠΈΠΆΠ΅ (всСгда добавляйтС рСзистор ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ свСтодиода ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ GPIO Π½Π° Pi).

a. ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ свСтодиод управляСтся GPIO14;

b. Π—Π΅Π»Π΅Π½Ρ‹ΠΉ свСтодиод управляСтся GPIO15;

c. Π—ΡƒΠΌΠΌΠ΅Ρ€ активируСтся GPIO 21;

d. ΠŸΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ GND ΠΊ GND Π½Π° вашСй ΠΏΠ»Π°Ρ‚Π΅.

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

2. ΠŸΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ настройку свСтодиодов ΠΈ Π·ΡƒΠΌΠΌΠ΅Ρ€Π°, запустив LED-buzzer.py. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈ запуститС ΠΊΠΎΠ΄:

cd face_mask_detection 

python LED-buzzer.py

Если свСтодиоды ΠΌΠΎΡ€Π³Π°ΡŽΡ‚ ΠΈ Π·ΡƒΠΌΠΌΠ΅Ρ€ ΠΈΠ·Π΄Π°Π΅Ρ‚ Π·Π²ΡƒΠΊ, Π·Π½Π°Ρ‡ΠΈΡ‚ Ρƒ вас всС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС. Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· этого Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΊΡƒ.

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

3. Если Π·ΡƒΠΌΠΌΠ΅Ρ€ Π½Π΅ Π·Π°ΠΌΠΎΠ»Ρ‡Π°Π» послС наТатия Ctrl+C, запуститС LED-buzzer-OFF.py, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π·Π²ΡƒΠΊ со свСтодиодами.

4. ΠŸΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ систСму распознавания маски Π½Π° Raspberry Pi Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅:

python3 detect_mask_webcam_buzzer.py

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ Pi: python3 detect_mask_picam_buzzer.py 

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ свою модСль, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ --model my_mask_detector.model ΠΊΠ°ΠΊ Π²Ρ‹ Π΄Π΅Π»Π°Π»ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ шагС.

Если всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ, Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° скрипт ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ Π½Π°Π΄Π΅Ρ‚ΡƒΡŽ маску, загорится Π·Π΅Π»Π΅Π½Ρ‹ΠΉ свСт. Если маски Π½Π° Π»ΠΈΡ†Π΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, загорится красный свСтодиод Π² сопровоТдСнии Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠ³ΠΎ сигнала Π·ΡƒΠΌΠΌΠ΅Ρ€Π°.

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

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π±Π΅Π·Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, загруТая Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΠΎΡ‚ΠΎ, ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ сСрвоприводу/ΡˆΠ»ΡŽΠ·Ρƒ, ΠΊΠΎΠ³Π΄Π° Π½Π° Π»ΠΈΡ†Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° маска. МоТно ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ эту идСю с Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ элСктронных писСм ΠΈΠ· ΡΡ‚Π°Ρ‚ΡŒΠΈ Β«Π£Ρ‡ΠΈΠΌ Raspberry Pi Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡŽ Π»ΠΈΡ†Β» ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сообщСниС с Ρ„ΠΎΡ‚ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π±Π΅Π· маски.

***

Как Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Python максимально быстро ΠΈ качСствСнно?

Π’ условиях ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΠΈ срСди Π΄ΠΆΡƒΠ½ΠΎΠ², ΠΏΠΎΠΉΡ‚ΠΈ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° курсы с прСподаватСлями β€” самый ΠΏΡ€Π°Π³ΠΌΠ°Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ быстро ΠΈ качСствСнно ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ программирования ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ 5 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΏΠΎΡ€Ρ‚Ρ„ΠΎΠ»ΠΈΠΎ. ΠŸΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ домашниС задания, подСлится ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ совСтами, ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄Π±ΠΎΠ΄Ρ€ΠΈΡ‚ ΠΈΠ»ΠΈ даст «волшСбного» ΠΏΠΈΠ½ΠΊΠ°.

На курсС Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π½Π° PythonΒ» с ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»Π΅ΠΌ Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ:

  • Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π΄Π²ΡƒΡ… ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… срСдах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” PyCharm ΠΈ Jupyter Notebook;
  • ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ Π²Π΅Π±-страницы;
  • ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΡ‚ΠΎΠ² для Telegram ΠΈ Instagram;
  • Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² ΠΈ дальнСйшСго Π°Π½Π°Π»ΠΈΠ·Π°;
  • Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄.

Плюс ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ 5 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΏΠΎΡ€Ρ‚Ρ„ΠΎΠ»ΠΈΠΎ.

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

Π’ΠΠšΠΠΠ‘Π˜Π˜

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ вакансию
Senior Java Developer
Москва, ΠΏΠΎ ΠΈΡ‚ΠΎΠ³Π°ΠΌ собСсСдования
Java Team Lead
Москва, ΠΏΠΎ ΠΈΡ‚ΠΎΠ³Π°ΠΌ собСсСдования
Go-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ
ΠΏΠΎ ΠΈΡ‚ΠΎΠ³Π°ΠΌ собСсСдования

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

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста
16 ноября 2019

DeepFake-Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»: создаСм собствСнный Π΄ΠΈΠΏΡ„Π΅ΠΉΠΊ Π² DeepFaceLab

РассказываСм ΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ DeepFake ΠΈ шаг Π·Π° шагом учимся Π΄Π΅Π»Π°Ρ‚ΡŒ Π΄ΠΈΠΏΡ„Π΅ΠΉΠΊΠΈ Π² ...
admin
11 дСкабря 2018

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

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python допускаСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½ΠΎ Π² Π΅Π³ΠΎ основС...
admin
14 июля 2017

ПишСм свою Π½Π΅ΠΉΡ€ΠΎΡΠ΅Ρ‚ΡŒ: пошаговоС руководство

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ ΠΏΡ€ΠΎ Π½Π΅ΠΉΡ€ΠΎΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΈΠ· ΠΊΠ°ΠΊΠΈΡ… элСмС...