Spisu treści:

Ramka na zdjęcia OSD rozpoznająca twarz: 11 kroków (ze zdjęciami)
Ramka na zdjęcia OSD rozpoznająca twarz: 11 kroków (ze zdjęciami)

Wideo: Ramka na zdjęcia OSD rozpoznająca twarz: 11 kroków (ze zdjęciami)

Wideo: Ramka na zdjęcia OSD rozpoznająca twarz: 11 kroków (ze zdjęciami)
Wideo: ZLOT MŁODZIEŻY GRYPSUJĄCEJ 2024, Listopad
Anonim
Ramka na zdjęcia OSD rozpoznająca twarz
Ramka na zdjęcia OSD rozpoznająca twarz
Ramka na zdjęcia OSD rozpoznająca twarz
Ramka na zdjęcia OSD rozpoznająca twarz
Ramka na zdjęcia OSD rozpoznająca twarz
Ramka na zdjęcia OSD rozpoznająca twarz
Ramka na zdjęcia OSD rozpoznająca twarz
Ramka na zdjęcia OSD rozpoznająca twarz

Ta instrukcja pokazuje, jak zrobić ramkę do zdjęć z funkcją wyświetlania na ekranie (OSD) z rozpoznawaniem twarzy.

OSD może pokazywać godzinę, pogodę lub inne informacje internetowe, które chcesz.

Krok 1: Dlaczego ramka na zdjęcia OSD?

Dlaczego ramka na zdjęcia OSD?
Dlaczego ramka na zdjęcia OSD?
Dlaczego ramka na zdjęcia OSD?
Dlaczego ramka na zdjęcia OSD?

Mam 2 projekty zegarów fotograficznych w Instructables przed:

www.instructables.com/id/ESP32-Photo-Clock…

www.instructables.com/id/Arduino-BiJin-ToK…

Obaj co minutę pobierają z Internetu zdjęcie z pięknościami i tablicę godzinową i wyświetlają je na ekranie LCD.

Pokazywanie piękności jest dobre, ale wszystkie są dla mnie obce. Co powiesz na wykorzystanie osobistych ulubionych zdjęć i dodanie aktualnego czasu oraz dalszych informacji na jego temat?

Ten projekt bada, jak to zrobić.

Krok 2: Dlaczego Face Aware?

Dlaczego rozpoznawanie twarzy?
Dlaczego rozpoznawanie twarzy?
Dlaczego rozpoznawanie twarzy?
Dlaczego rozpoznawanie twarzy?
Dlaczego rozpoznawanie twarzy?
Dlaczego rozpoznawanie twarzy?
Dlaczego rozpoznawanie twarzy?
Dlaczego rozpoznawanie twarzy?

Sprawdźmy najpierw jak dodać błyskawiczne informacje OSD do zdjęcia:

  1. Losowo wybierz zdjęcie z określonego folderu
  2. Odzyskaj czas
  3. Natychmiastowe pobieranie informacji z Internetu
  4. czas rysowania i natychmiastowa informacja o zdjęciu

Krok 1-3 jest prosty; Krok 4 również wygląda na prosty, ale ustalenie, gdzie narysować tekst, nie jest takie proste.

Jeśli tekst jest zbyt mały, trudno jest go odczytać z rozsądnej odległości; Jeśli rozmiar tekstu jest zbyt duży, najprawdopodobniej zakrywa obiekty fotograficzne. Zwłaszcza jeśli jest to zdjęcie portretowe, tekst zakrywający twarze nie jest preferowany.

Ponieważ pozycja twarzy dla każdego zdjęcia nie jest taka sama, aby uniknąć twarzy zakrytych OSD, najpierw potrzebujemy procesu wykrywania twarzy. Następnie możemy znaleźć obszar bez twarzy do narysowania tekstu.

Krok 3: 2-poziomowy projekt

2-poziomowy projekt
2-poziomowy projekt

Proces wykrywania twarzy wymaga pewnej mocy obliczeniowej, w przeciwieństwie do tego, ramka na zdjęcia może być bardzo lekka. Więc podzieliłem to na 2 poziomy:

serwer

Silnik zdjęć rozpoznających twarz to serwer aplikacji Node.js. Dla każdego żądania

  1. Wybierz losowo zdjęcie z folderu zdjęć
  2. Wykrywanie twarzy
  3. określić brak twarzy lub najmniej twarzy obszar
  4. W międzyczasie pobieraj informacje o pogodzie lub inne przydatne informacje z Internetu co określony czas
  5. Czas rysowania i natychmiastowa informacja na zdjęciu
  6. Zwróć zdjęcie z OSD w formacie JPEG jako odpowiedź

Klient

Klientem może być przeglądarka internetowa, aplet lub urządzenie IoT.

Np. Płyta deweloperska ESP32 z 2-4 calowym wyświetlaczem LCD doskonale nadaje się do umieszczenia na biurku jako maleńka ramka na zdjęcia.

Krok 4: Konfiguracja opcji serwera zdjęć 1: Obraz Docker

Konfiguracja serwera zdjęć Opcja 1: Obraz Docker
Konfiguracja serwera zdjęć Opcja 1: Obraz Docker
Konfiguracja serwera zdjęć Opcja 1: Obraz Docker
Konfiguracja serwera zdjęć Opcja 1: Obraz Docker

Dla wygody przygotowałem wstępnie obraz Dockera dla serwera aplikacji Node.js ze zdjęciem rozpoznającym twarz.

Jeśli nie masz jeszcze skonfigurowanego Dockera, postępuj zgodnie z przewodnikiem Wprowadzenie do Dockera:

www.docker.com/get-started

Następnie uruchom następujące polecenie: (zastąp /ścieżka/do/zdjęcia własną ścieżką do zdjęć)

docker run -p 8080:8080 -v /ścieżka/do/zdjęcia:/app/photo moononournation/face-aware-photo-osd:1.0.1

Przetestuj go, przechodząc do

Może się okazać, że wyświetlany czas nie jest w Twojej strefie czasowej:

docker run -p 8080:8080 -e TZ=Asia/Hong_Kong -v /ścieżka/do/zdjęcia:/app/photo moononournation/face-aware-photo-osd:1.0.1

Jeśli mieszkasz w Hongkongu, tak jak ja, możesz dodać informacje o pogodzie w Hongkongu:

docker run -p 8080:8080 -e TZ=Azja/Hong_Kong -e OSD=HK_Weather -v /ścieżka/do/zdjęcia:/app/photo moononournation/face-aware-photo-osd:1.0.1

Jeśli chcesz opracować własne informacje OSD:

mkdir -p ~/git

cd ~/git git clone https://github.com/mononournation/face-aware-photo-osd.git docker run -it -p 8080:8080 -e TZ=Asia/Hong_Kong -e OSD=HK_Weather -e DEBUG= Y -v /ścieżka/do/zdjęcia:/app/photo -v ~/git/face-aware-photo-osd/app.js:/app/app.js moononournation/face-aware-photo-osd:1.0. 1

Zmodyfikuj funkcję update_osd() w app.js, aby dostosować własne informacje OSD. Po opracowaniu po prostu usuń środowisko DEBUG=Y z polecenia docker.

Krok 5: Konfiguracja opcji serwera zdjęć 2: Zbuduj ze źródła

Jeśli znasz Node.js, możesz zbudować serwer aplikacji ze źródła.

Uzyskaj źródło:

Klon git

Zainstaluj pakiety:

cd face-aware-photo-osd

instalacja npm

Utwórz folder ze zdjęciami i skopiuj do niego własne zdjęcia.

Uruchom serwer aplikacji:

węzeł app.js

Krok 6: Opcja klienta 1: Przeglądarka internetowa

Opcja klienta 1: Przeglądarka internetowa
Opcja klienta 1: Przeglądarka internetowa

Wystarczy przejrzeć stronę

Strona jest skryptowana automatycznie, co minutę ładuje obraz o dopasowanym rozmiarze strony.

PS Jeśli przeglądasz z innego komputera, na którym nie jest uruchomiony serwer aplikacji, pamiętaj, aby zmienić localhost na nazwę hosta lub adres IP serwera aplikacji.

Krok 7: Opcja klienta 2: ESP32 + LCD

Opcja klienta 2: ESP32 + LCD
Opcja klienta 2: ESP32 + LCD
Opcja klienta 2: ESP32 + LCD
Opcja klienta 2: ESP32 + LCD
Opcja klienta 2: ESP32 + LCD
Opcja klienta 2: ESP32 + LCD
Opcja klienta 2: ESP32 + LCD
Opcja klienta 2: ESP32 + LCD

Klient ramki do zdjęć może być tak prosty, jak płyta deweloperska ESP32 i wyświetlacz LCD.

Oto wymagany sprzęt:

Płytka rozwojowa ESP32

Każda płyta deweloperska ESP32 powinna być w porządku, tym razem używam płyty o nazwie MH-ET LIVE.

Wyświetlacz LCD

Dowolny wyświetlacz LCD obsługiwany przez Arduino_GFX, obecnie obsługiwany wyświetlacz można znaleźć w readme GitHub:

github.com/mononournation/Arduino_GFX

Przewód połączeniowy

Niektóre przewody połączeniowe zależą od układu wyprowadzeń płyty deweloperskiej i wyświetlacza LCD. W większości przypadków wystarczy 6-9 zworek żeńskich na żeńskie.

Stojak LCD

Niektóre podpory pomagają LCD stojąc prosto, tym razem używam stojaka na karty.

Krok 8: Montaż ESP32 + LCD

Montaż ESP32 + LCD
Montaż ESP32 + LCD
Montaż ESP32 + LCD
Montaż ESP32 + LCD
Montaż ESP32 + LCD
Montaż ESP32 + LCD

Preferowany jest ESP32 z listwą pinową w górnej części. Jeśli główka kołka znajduje się na dole, po prostu odłóż płytkę do góry nogami;>

Podłącz ESP32 i LCD przewodami połączeniowymi, a następnie przymocuj go do stojaka.

Oto przykładowe podsumowanie połączenia:

ESP32 -> LCD

Vcc -> Vcc GND -> GND GPIO 5 -> CS GPIO 27 -> DC (jeśli dostępne) GPIO 33 -> RST GPIO 18 -> SCK GPIO 19 -> MISO (opcjonalnie) GPIO 22 -> LED (jeśli dostępne) GPIO 23 -> MOSI / SDA

Krok 9: Oprogramowanie ESP32 + LCD

ESP32 + oprogramowanie LCD
ESP32 + oprogramowanie LCD

IDE Arduino

Pobierz i zainstaluj Arduino IDE, jeśli jeszcze tego nie zrobiłeś:

www.arduino.cc/en/main/software

Obsługa ESP32

Postępuj zgodnie z instrukcjami instalacji, aby dodać obsługę ESP32, jeśli jeszcze tego nie zrobiłeś:

github.com/espressif/arduino-esp32

Biblioteka Arduino_GFX

Pobierz najnowsze biblioteki Arduino_GFX: (naciśnij "Klonuj lub Pobierz" -> "Pobierz ZIP")

github.com/mononournation/Arduino_GFX

Importuj biblioteki w Arduino IDE. (Menu Arduino IDE „Sketch” -> „Include Library” -> „Add. ZIP Library” -> wybierz pobrany plik ZIP)

Kompiluj i prześlij

  1. Otwórz Arduino IDE
  2. Otwórz przykładowy kod ESP32PhotoFrame („Plik” -> „Przykład” -> „Biblioteka GFX dla Arduino” -> „WiFiPhotoFrame”)
  3. Wprowadź ustawienia Wi-Fi AP do SSID_NAME i SSID_PASSWORD
  4. Zastąp nazwę hosta serwera lub adres IP i port w HTTP_HOST i
  5. Naciśnij przycisk „Prześlij” Arduino IDE
  6. Jeśli orientacja nie jest prawidłowa, zmień wartość „rotacji” (0-3) w nowym kodzie zajęć

Krok 10: Ciesz się zdjęciem

Ciesz się zdjęciem!
Ciesz się zdjęciem!

Czas umieścić ramkę na zdjęcia IoT na pulpicie i cieszyć się!

Krok 11: Co dalej?

  • Dodaj własne błyskawiczne informacje
  • Dostosuj rozmiar zdjęcia źródłowego, aby uzyskać lepszą dokładność wykrywania twarzy
  • Automatyczne zadanie umieszczania najnowszych zdjęć w folderze zdjęć na serwerze
  • Zrób więcej zdjęć;>

Zalecana: