Spisu treści:
- Krok 1: Dlaczego ramka na zdjęcia OSD?
- Krok 2: Dlaczego Face Aware?
- Krok 3: 2-poziomowy projekt
- Krok 4: Konfiguracja opcji serwera zdjęć 1: Obraz Docker
- Krok 5: Konfiguracja opcji serwera zdjęć 2: Zbuduj ze źródła
- Krok 6: Opcja klienta 1: Przeglądarka internetowa
- Krok 7: Opcja klienta 2: ESP32 + LCD
- Krok 8: Montaż ESP32 + LCD
- Krok 9: Oprogramowanie ESP32 + LCD
- Krok 10: Ciesz się zdjęciem
- Krok 11: Co dalej?
Wideo: Ramka na zdjęcia OSD rozpoznająca twarz: 11 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
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?
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?
Sprawdźmy najpierw jak dodać błyskawiczne informacje OSD do zdjęcia:
- Losowo wybierz zdjęcie z określonego folderu
- Odzyskaj czas
- Natychmiastowe pobieranie informacji z Internetu
- 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
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
- Wybierz losowo zdjęcie z folderu zdjęć
- Wykrywanie twarzy
- określić brak twarzy lub najmniej twarzy obszar
- W międzyczasie pobieraj informacje o pogodzie lub inne przydatne informacje z Internetu co określony czas
- Czas rysowania i natychmiastowa informacja na zdjęciu
- 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
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
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
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
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
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
- Otwórz Arduino IDE
- Otwórz przykładowy kod ESP32PhotoFrame („Plik” -> „Przykład” -> „Biblioteka GFX dla Arduino” -> „WiFiPhotoFrame”)
- Wprowadź ustawienia Wi-Fi AP do SSID_NAME i SSID_PASSWORD
- Zastąp nazwę hosta serwera lub adres IP i port w HTTP_HOST i
- Naciśnij przycisk „Prześlij” Arduino IDE
- Jeśli orientacja nie jest prawidłowa, zmień wartość „rotacji” (0-3) w nowym kodzie zajęć
Krok 10: 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:
Ramka na zdjęcia LED w kształcie serca - zrób idealny prezent na walentynki lub urodziny: 7 kroków (ze zdjęciami)
Ramka na zdjęcia LED Heart - Zrób idealny prezent na walentynki lub urodziny: Witam! W tej instrukcji pokażę Ci, jak możesz zrobić tę niesamowitą ramkę na zdjęcia z sercem LED. Dla wszystkich entuzjastów elektroniki! Zrób idealny prezent na walentynki, urodziny lub rocznicę dla swoich bliskich! Możesz obejrzeć film demonstracyjny tego
Ramka na zdjęcia Raspberry Pi w mniej niż 20 minut: 10 kroków (ze zdjęciami)
Ramka do zdjęć Raspberry Pi w mniej niż 20 minut: Tak, to kolejna cyfrowa ramka na zdjęcia! Ale czekaj, jest bardziej elegancki i prawdopodobnie najszybszy w montażu i uruchomieniu
Ramka na zdjęcia Neo Pixel LED: 6 kroków (ze zdjęciami)
Ramka na zdjęcia Neo Pixel LED: Witam ponownie! Zrobiłem ten projekt specjalnie dla „kolorów tęczy” konkurencja. Jeśli Ci się spodoba, zagłosuj na mnie w konkursie. Postanowiłem więc zrobić naprawdę szybki i łatwy projekt na konkurs. Jest to neopikselowy L
55-calowa, cyfrowa ramka na zdjęcia 4K za około 400 USD: 7 kroków (ze zdjęciami)
55-calowa, cyfrowa ramka na zdjęcia 4K za około 400 USD: istnieje wiele samouczków, jak zrobić niesamowitą cyfrową ramkę na zdjęcia z raspberry pi. niestety rpi nie obsługuje rozdzielczości 4K. Odroid C2 może z łatwością obsługiwać rozdzielczość 4K, ale żaden z tych samouczków rpi nie działa dla jednostki C2. to zajęło
Cyfrowa ramka na zdjęcia z recyklingu z wirtualnym asystentem: 7 kroków (ze zdjęciami)
Cyfrowa ramka na zdjęcia z recyklingu z wirtualnym asystentem: Cześć wszystkim! Ta instrukcja narodziła się z laptopa podzielonego na pół, kupionego od przyjaciela. Pierwszą próbą takiego projektu była moja cyfrowa ramka Lego, jednak będąc entuzjastycznym użytkownikiem Siri i Google Now postanowiłem zabrać ją do nowego