فهرست مطالب:

قاب عکس OSD Face Aware: 11 مرحله (همراه با تصاویر)
قاب عکس OSD Face Aware: 11 مرحله (همراه با تصاویر)

تصویری: قاب عکس OSD Face Aware: 11 مرحله (همراه با تصاویر)

تصویری: قاب عکس OSD Face Aware: 11 مرحله (همراه با تصاویر)
تصویری: Deutsch lernen mit Dialogen A2 /B1 2024, جولای
Anonim
قاب عکس OSD Face Aware
قاب عکس OSD Face Aware
قاب عکس OSD Face Aware
قاب عکس OSD Face Aware
قاب عکس OSD Face Aware
قاب عکس OSD Face Aware
قاب عکس OSD Face Aware
قاب عکس OSD Face Aware

این دستورالعمل ها نحوه ایجاد قاب عکس با آگاهی از چهره روی صفحه (OSD) را نشان می دهد.

OSD می تواند زمان ، آب و هوا یا سایر اطلاعات اینترنتی مورد نظر شما را نشان دهد.

مرحله 1: چرا قاب عکس OSD؟

چرا قاب عکس OSD؟
چرا قاب عکس OSD؟
چرا قاب عکس OSD؟
چرا قاب عکس OSD؟

من قبلاً 2 پروژه ساعت عکس در Instructables دارم:

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

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

هر دو هر دقیقه یک عکس با زیبایی ها و یک تابلوی زمان از اینترنت دریافت کرده و روی LCD نمایش می دهند.

نمایش زیبایی ها خوب است ، اما همه آنها برای من غریبه هستند. در مورد استفاده از عکس های مورد علاقه شخصی و اضافه کردن زمان فعلی و اطلاعات فوری بیشتر بر روی آن چطور؟

این پروژه در حال بررسی نحوه ساخت آن است.

مرحله 2: چرا آگاهی از چهره؟

چرا Face Aware؟
چرا Face Aware؟
چرا Face Aware؟
چرا Face Aware؟
چرا Face Aware؟
چرا Face Aware؟
چرا Face Aware؟
چرا Face Aware؟

بیایید نحوه افزودن OSD اطلاعات فوری به عکس را ابتدا بررسی کنیم:

  1. انتخاب تصادفی یک عکس از یک پوشه خاص
  2. زمان بازیابی
  3. بازیابی اطلاعات فوری از اینترنت
  4. زمان و اطلاعات فوری را روی عکس بکشید

مرحله 1-3 مستقیماً جلو می رود. مرحله 4 نیز ساده به نظر می رسد ، اما تعیین محل کشیدن متن چندان آسان نیست.

اگر اندازه متن بسیار کوچک باشد ، خواندن آن در فاصله مناسب دشوار است. اگر اندازه متن خیلی بزرگ باشد ، به احتمال زیاد اشیاء عکس را می پوشاند. به ویژه اگر عکس عمودی باشد ، متن روی صورت ترجیح داده نمی شود.

از آنجا که موقعیت چهره برای هر عکس یکسان نیست ، برای جلوگیری از چهره های پوشیده از OSD ، ابتدا به یک فرایند تشخیص چهره نیاز داریم. سپس می توان یک منطقه بدون صورت برای ترسیم متن پیدا کرد.

مرحله 3: طراحی 2 طبقه

طراحی 2 طبقه
طراحی 2 طبقه

فرایند تشخیص چهره به مقداری قدرت پردازشی نیاز دارد ، در مقابل ، قاب عکس می تواند بسیار سبک باشد. بنابراین آن را به 2 طبقه تقسیم کردم:

سرور

موتور عکسبرداری چهره سرور برنامه Node.js است. برای هر درخواست HTTP ، موارد زیر را انجام می دهد:

  1. تصویری را از پوشه عکس به طور تصادفی انتخاب کنید
  2. شناسایی چهره
  3. هیچ صورت یا حداقل ناحیه صورت را تعیین نکنید
  4. در عین حال ، آب و هوا یا سایر اطلاعات فوری مفید را از اینترنت در هر دوره معین دریافت کنید
  5. زمان و اطلاعات فوری را روی عکس ترسیم کنید
  6. عکس را با OSD در قالب JPEG به عنوان پاسخ HTTP بازگردانید

مشتری

مشتری می تواند یک مرورگر وب ، یک برنامه کاربردی یا یک دستگاه اینترنت اشیا باشد.

به عنوان مثال. یک boasrd ESP32 dev با LCD 2-4 اینچی برای قرار دادن روی میز به عنوان یک قاب عکس بسیار مناسب است.

مرحله 4: راه اندازی سرور عکس گزینه 1: Docker Image

راه اندازی سرور عکس گزینه 1: Docker Image
راه اندازی سرور عکس گزینه 1: Docker Image
راه اندازی سرور عکس گزینه 1: Docker Image
راه اندازی سرور عکس گزینه 1: Docker Image

برای سهولت ، من یک تصویر Docker برای سرور برنامه OSD Node.js عکس آگاه از پیش ساخته ام.

در صورتی که هنوز Docker را راه اندازی نکرده اید ، لطفاً راهنمای شروع به کار Docker را دنبال کنید:

www.docker.com/get-started

سپس دستور زیر را اجرا کنید: (جایگزین/path/to/photo به مسیر عکس خود)

docker run -p 8080: 8080 -v/path/to/photo:/app/photo moononournation/face-aware-photo-osd: 1.0.1

آن را با مرور به https:// localhost: 8080/آزمایش کنید

ممکن است متوجه شوید زمان نمایش در منطقه زمانی شما نیست:

docker run -p 8080: 8080 -e TZ = Asia/Hong_Kong -v/path/to/photo:/app/photo moononournation/face -aware -photo -osd: 1.0.1

اگر مانند من در هنگ کنگ زندگی می کنید ، می توانید اطلاعات آب و هوایی هنگ کنگ را اضافه کنید:

docker run -p 8080: 8080 -e TZ = Asia/Hong_Kong -e OSD = HK_Weather -v/path/to/photo:/app/photo moononournation/face -aware -photo -osd: 1.0.1

اگر می خواهید اطلاعات OSD خود را توسعه دهید:

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/path/to/photo:/app/photo -v ~/git/face-aware-photo-osd/app.js: /app/app.js moononournation/face-aware-photo-osd: 1.0. 1

تابع update_osd () را در app.js تغییر دهید تا اطلاعات OSD خود را تنظیم کنید. پس از توسعه ، به سادگی محیط DEBUG = Y را از دستور docker حذف کنید.

مرحله 5: راه اندازی سرور عکس گزینه 2: ساخت از منبع

اگر با Node.js آشنایی دارید ، می توانید سرور برنامه را از منبع ایجاد کنید.

منبع را بدست آورید:

git clone

نصب بسته ها:

cd face-aware-photo-osd

npm نصب کنید

پوشه عکس ایجاد کنید و عکس های خود را در پوشه کپی کنید.

اجرای سرور برنامه:

node app.js

مرحله 6: گزینه مشتری 1: مرورگر وب

گزینه مشتری 1: مرورگر وب
گزینه مشتری 1: مرورگر وب

به سادگی مرورگر https:// localhost: 8080/

صفحه به صورت اسکریپت بارگذاری می شود و هر دقیقه یک تصویر اندازه صفحه مناسب را بارگذاری می کند.

P. S. اگر از دستگاه دیگری که سرور برنامه را اجرا نمی کند مرور می کنید ، به یاد داشته باشید که localhost را به نام میزبان سرور برنامه یا آدرس IP تغییر دهید.

مرحله 7: گزینه 2 مشتری: ESP32 + LCD

گزینه مشتری 2: LCD ESP32 +
گزینه مشتری 2: LCD ESP32 +
گزینه مشتری 2: LCD ESP32 +
گزینه مشتری 2: LCD ESP32 +
گزینه مشتری 2: LCD ESP32 +
گزینه مشتری 2: LCD ESP32 +
گزینه مشتری 2: LCD ESP32 +
گزینه مشتری 2: LCD ESP32 +

یک سرویس گیرنده قاب عکس می تواند به سادگی یک برد ESP32 dev و یک LCD باشد.

در اینجا سخت افزار مورد نیاز است:

ESP32 Dev Board

هر برد ESP32 dev باید خوب باشد ، این بار من از بردی به نام MH-ET LIVE استفاده می کنم.

صفحه نمایش ال سی دی

هر LCD پشتیبانی شده از Arduino_GFX ، ممکن است صفحه نمایش فعلی را در readme GitHub پیدا کنید:

github.com/moononournation/Arduino_GFX

Jumper Wire

برخی از Jumper Wires بستگی به برد dev و طرح پین های LCD دارد. در بیشتر موارد 6-9 سیم جهنده زن تا زن کافی است.

پایه LCD

برخی از پشتیبانی ها به LCD کمک می کنند که مستقیماً ایستاده باشد ، این بار من از پایه نگهدارنده کارت استفاده می کنم.

مرحله 8: مجموعه LCD ESP32 +

مونتاژ LCD + ESP32
مونتاژ LCD + ESP32
مونتاژ LCD + ESP32
مونتاژ LCD + ESP32
مونتاژ LCD + ESP32
مونتاژ LCD + ESP32

ESP32 با هدر پین در سمت بالا ترجیح داده می شود. اگر هدر پین در قسمت پایین است ، به سادگی تخته را وارونه قرار دهید ؛>

ESP32 و LCD را با سیم های بلوز وصل کنید ، سپس آن را روی پایه قرار دهید.

در اینجا نمونه خلاصه اتصال را مشاهده می کنید:

ESP32 -> LCD

Vcc -> Vcc GND -> GND GPIO 5 -> CS GPIO 27 -> DC (در صورت موجود بودن) GPIO 33 -> RST GPIO 18 -> SCK GPIO 19 -> MISO (اختیاری) GPIO 22 -> LED (در صورت موجود بودن) GPIO 23 -> MOSI / SDA

مرحله 9: نرم افزار LCD + ESP32

نرم افزار LCD + ESP32
نرم افزار LCD + ESP32

آردوینو IDE

اگر هنوز Arduino IDE را انجام نداده اید بارگیری و نصب کنید:

www.arduino.cc/fa/main/software

پشتیبانی از ESP32

اگر هنوز این کار را انجام نداده اید ، دستورالعمل های نصب را برای افزودن پشتیبانی ESP32 دنبال کنید:

github.com/espressif/arduino-esp32

کتابخانه Arduino_GFX

بارگیری آخرین کتابخانه های Arduino_GFX: ("Clone or Download" -> "Download ZIP" را فشار دهید)

github.com/moononournation/Arduino_GFX

وارد کردن کتابخانه ها در Arduino IDE. (منوی Arduino IDE "Sketch" -> "Include Library" -> "Add. ZIP Library" -> انتخاب فایل ZIP بارگیری شده)

کامپایل و بارگذاری

  1. Arduino IDE را باز کنید
  2. کد نمونه ESP32PhotoFrame را باز کنید ("پرونده" -> "مثال" -> "کتابخانه GFX برای آردوینو" -> "WiFiPhotoFrame")
  3. تنظیمات AP WiFi خود را در SSID_NAME و SSID_PASSWORD پر کنید
  4. نام میزبان یا IP سرور خود را در HTTP_HOST و HTTP_PORT جایگزین کنید
  5. دکمه "بارگذاری" Arduino IDE را فشار دهید
  6. اگر متوجه شدید که جهت گیری درست نیست ، مقدار "rotation" (0-3) را در کد کلاس جدید تغییر دهید

مرحله 10: از عکس لذت ببرید

از عکس لذت ببرید!
از عکس لذت ببرید!

وقت آن است که قاب عکس IoT را روی دسکتاپ خود قرار دهید و لذت ببرید!

مرحله 11: بعدی چیست؟

  • اطلاعات فوری خود را اضافه کنید
  • برای دقت بهتر تشخیص چهره ، اندازه عکس منبع را تنظیم کنید
  • وظیفه خودکار قرار دادن آخرین عکس ها در پوشه عکس سرور
  • عکسهای بیشتری بگیرید ؛>

توصیه شده: