Sadržaj:
- Korak 1: Zašto OSD okvir za fotografije?
- Korak 2: Zašto Face Aware?
- Korak 3: Dvoslojni dizajn
- Korak 4: Postavljanje foto servera Opcija 1: Docker slika
- Korak 5: Postavljanje foto servera Opcija 2: Izrada iz izvora
- Korak 6: Klijent Opcija 1: Web preglednik
- Korak 7: Opcija klijenta 2: ESP32 + LCD
- Korak 8: ESP32 + LCD sklop
- Korak 9: ESP32 + LCD softver
- Korak 10: Uživajte u fotografiji
- Korak 11: Šta je sljedeće?
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Ove upute pokazuju kako napraviti okvir za fotografije s prikazom na ekranu (OSD) svjesnim lica.
OSD može prikazati vrijeme, vrijeme ili druge internetske informacije koje želite.
Korak 1: Zašto OSD okvir za fotografije?
Već sam imao 2 projekta sa satom za fotografije u Instructables:
www.instructables.com/id/ESP32-Photo-Clock…
www.instructables.com/id/Arduino-BiJin-ToK…
Oboje svake minute preuzimaju fotografiju s ljepotama i vremensku ploču s interneta i prikazuju ih na LCD -u.
Prikazivanje ljepota je dobro, ali sve su mi strane. Kako bi bilo da koristite lične omiljene fotografije i dodate trenutno vrijeme i dodatne trenutne informacije o njemu?
Ovaj projekt istražuje kako to napraviti.
Korak 2: Zašto Face Aware?
Provjerimo kako prvo dodati OSD trenutnih informacija na fotografiju:
- Nasumičnim odabirom fotografije iz određene mape
- Dohvati vreme
- Preuzmite trenutne informacije s Interneta
- izvucite vrijeme i trenutne informacije o fotografiji
Korak 1-3 je ravno naprijed; Korak 4 također izgleda jednostavno, ali odrediti gdje nacrtati tekst nije tako lako.
Ako je tekst premalen, teško ga je čitati na razumnoj udaljenosti; Ako je veličina teksta prevelika, najvjerojatnije će pokriti foto objekte. Posebno ako se radi o portretnoj fotografiji, tekst sa prekrivenim licima nije poželjan.
Budući da položaj lica za svaku fotografiju nije isti, kako bismo izbjegli lica prekrivena OSD -om, prvo nam je potreban postupak otkrivanja lica. Tada možemo pronaći područje bez lica za iscrtavanje teksta.
Korak 3: Dvoslojni dizajn
Postupak otkrivanja lica zahtijeva određenu procesorsku snagu, za razliku od toga, okvir za fotografije može biti vrlo male težine. Pa sam ga podijelio u 2 nivoa:
Server
Fotografski mehanizam za prepoznavanje lica je poslužitelj aplikacija Node.js. Za svaki HTTP zahtjev bit će:
- Nasumično odaberite fotografiju iz foldera sa fotografijama
- Prepoznavanje lica
- ne odredite područje lica ili najmanje lica
- U međuvremenu, preuzimajte vremenske ili druge korisne trenutne informacije s interneta svaki određeni period
- Nacrtajte vrijeme i trenutne informacije na fotografiji
- Vratite fotografiju sa OSD -om u JPEG formatu kao HTTP odgovor
Klijent
Klijent može biti web preglednik, applet ili IoT uređaj.
Npr. ESP32 dev boasrd sa LCD ekranom od 2-4 inča vrlo je pogodan za postavljanje na radnu površinu kao mali okvir za fotografije.
Korak 4: Postavljanje foto servera Opcija 1: Docker slika
Radi praktičnosti, unaprijed sam napravio Docker sliku za OSD Node.js poslužitelj fotografija sa fotografijom svjesne lica.
U slučaju da još niste postavili Docker, slijedite vodič Docker za početak:
www.docker.com/get-started
Zatim pokrenite sljedeću naredbu: (zamijenite/path/to/photo na vlastitu foto putanju)
docker run -p 8080: 8080 -v/path/to/photo:/app/photo moononournation/face-svjesni-foto-osd: 1.0.1
Testirajte ga pretraživanjem https:// localhost: 8080/
Možda ćete otkriti da vrijeme prikaza nije u vašoj vremenskoj zoni:
docker run -p 8080: 8080 -e TZ = Asia/Hong_Kong -v/path/to/photo:/app/photo moononournation/face -svjesni -foto -osd: 1.0.1
Ako živite u Hong Kongu poput mene, možete dodati vremenske podatke za Hong Kong:
docker run -p 8080: 8080 -e TZ = Asia/Hong_Kong -e OSD = HK_Weather -v/path/to/photo:/app/photo moononournation/face -svjesni -foto -osd: 1.0.1
Ako želite razviti vlastite informacije o OSD -u:
mkdir -p ~/git
cd ~/git git clone https://github.com/moononournation/face-aware-photo-osd.git docker run -it -p 8080: 8080 -e TZ = Asia/Hong_Kong -e OSD = HK_Weather -e DEBUG = Y -v/put/do/fotografije:/app/photo -v ~/git/face-svjesni-foto-osd/app.js: /app/app.js moononournation/lice-svjesni-foto-osd: 1.0. 1
Izmijenite funkciju update_osd () u app.js tako da prilagođene OSD informacije izradite po mjeri. Nakon razvoja, jednostavno uklonite DEBUG = Y okruženje iz naredbe docker.
Korak 5: Postavljanje foto servera Opcija 2: Izrada iz izvora
Ako ste upoznati s Node.js, možete izraditi poslužitelj aplikacija iz izvora.
Nabavite izvor:
git clone
Instalirajte pakete:
cd lice svjesno-foto-osd
npm install
Kreirajte fasciklu sa fotografijama i kopirajte svoje fotografije u fasciklu.
Pokrenite server aplikacija:
čvor app.js
Korak 6: Klijent Opcija 1: Web preglednik
Jednostavno pretražite na https:// localhost: 8080/
Stranica je skriptno automatski učitava sliku odgovarajuće veličine svake minute.
P. S. Ako pregledavate s drugog stroja na kojem nije pokrenut poslužitelj aplikacija, sjetite se da ste promijenili localhost u naziv hosta poslužitelja aplikacija ili IP adresu.
Korak 7: Opcija klijenta 2: ESP32 + LCD
Klijent okvira za fotografije može biti jednostavan poput ESP32 ploče za razvoj i LCD -a.
Evo potrebnog hardvera:
ESP32 Dev Board
Bilo koja ESP32 dev ploča trebala bi biti u redu, ovaj put koristim ploču koja se zove MH-ET LIVE.
LCD displej
Bilo koji LCD koji podržava Arduino_GFX, trenutno podržani ekran možete pronaći na GitHub readme:
github.com/moononournation/Arduino_GFX
Jumper Wire
Neke kratkospojne žice ovise o rasporedu razvojnih ploča i LCD pinova. U većini slučajeva dovoljno je 6-9 ženskih kratkospojnika.
LCD postolje
Neka podrška pomaže LCD -u da stoji ravno, ovaj put koristim stalak za držač kartice.
Korak 8: ESP32 + LCD sklop
Poželjni je ESP32 sa pin zaglavljem na gornjoj strani. Ako je zaglavlje iglice na donjoj strani, jednostavno postavite ploču naopako;>
Spojite ESP32 i LCD pomoću kratkospojnih žica, a zatim ih postavite na postolje.
Evo primjera sažetka veze:
ESP32 -> LCD
Vcc -> Vcc GND -> GND GPIO 5 -> CS GPIO 27 -> DC (ako je dostupno) GPIO 33 -> RST GPIO 18 -> SCK GPIO 19 -> MISO (opcionalno) GPIO 22 -> LED (ako je dostupno) GPIO 23 -> MOSI / SDA
Korak 9: ESP32 + LCD softver
Arduino IDE
Preuzmite i instalirajte Arduino IDE ako to još niste učinili:
www.arduino.cc/en/main/software
Podrška za ESP32
Slijedite upute za instalaciju da biste dodali podršku za ESP32 ako to još niste učinili:
github.com/espressif/arduino-esp32
Arduino_GFX biblioteka
Preuzmite najnovije Arduino_GFX biblioteke: (pritisnite "Kloniraj ili preuzmi" -> "Preuzmi ZIP")
github.com/moononournation/Arduino_GFX
Uvezite biblioteke u Arduino IDE. (Arduino IDE "Sketch" meni -> "Uključi biblioteku" -> "Dodaj. ZIP biblioteku" -> odaberite preuzetu ZIP datoteku)
Sastavi i otpremi
- Otvorite Arduino IDE
- Otvorite uzorak koda ESP32PhotoFrame ("Datoteka" -> "Primjer" -> "GFX biblioteka za Arduino" -> "WiFiPhotoFrame")
- Popunite postavke WiFi AP -a u SSID_NAME i SSID_PASSWORD
- Zamijenite ime hosta vašeg servera ili IP i port u HTTP_HOST i
- Pritisnite Arduino IDE dugme "Upload"
- Ako smatrate da orijentacija nije ispravna, promijenite vrijednost "rotacije" (0-3) u novom kodu klase
Korak 10: Uživajte u fotografiji
Vrijeme je da postavite IoT okvir za fotografije na radnu površinu i uživajte!
Korak 11: Šta je sljedeće?
- Dodajte svoje trenutne informacije
- Fino podesite veličinu izvorne fotografije za bolju preciznost otkrivanja lica
- Automatski zadatak za postavljanje najnovijih fotografija u fasciklu sa fotografijama servera
- Snimite više fotografija;>