اجرای تشخیص چهره روی ESP32 در نگاه اول ناممکن به نظر میرسد؛ این میکروکنترلر تنها چند صد کیلوبایت حافظهٔ کاری دارد و فاقد سیستمعامل کامل است. اما با مدلهای فوق سبک و کتابخانههای بهینه، میتوان تشخیص حضور چهره در فریم را بهصورت محلی و بدون ارسال تصویر به ابر انجام داد؛ این یعنی حفظ حریم خصوصی و حذف تأخیر شبکه.
کلید کار، انتخاب مدل درست است. بهجای شبکههای سنگین، از یک آشکارساز آبشاری یا یک شبکهٔ عصبی بسیار کوچک کوانتیزهشده استفاده میکنیم. ماژول ESP32-CAM با حافظهٔ PSRAM خارجی، فضای کافی برای نگهداری فریم و بافرهای میانی فراهم میکند. تصویر ورودی را به وضوح پایین مثل ۹۶ در ۹۶ پیکسل کاهش میدهیم تا حجم محاسبات در حد توان پردازنده بماند.
برای رسیدن به تأخیر زیر ۲۰ میلیثانیه، چند تکنیک را با هم به کار میبریم: پردازش در مقیاس خاکستری بهجای رنگی، استفاده از هر دو هستهٔ پردازنده برای موازیسازی، و وزنهای کوانتیزهشده به اعداد صحیح ۸ بیتی که هم حافظه و هم زمان محاسبه را کم میکنند. کتابخانهٔ ESP-DL از این عملیاتها پشتیبانی سختافزاری دارد و سرعت را بهشکل محسوسی بالا میبرد.
در عمل، چالش اصلی مدیریت حافظه و پایداری بلندمدت است. نشت حافظه که در یک سرور قابل تحمل است، اینجا ظرف چند ساعت دستگاه را از کار میاندازد. ما بافرها را از پیش تخصیص میدهیم، از تخصیص پویا در حلقهٔ اصلی پرهیز میکنیم و یک watchdog برای ریاستارت خودکار در شرایط غیرمنتظره میگذاریم تا دستگاه ماهها بیوقفه کار کند.