اگر قصد دارید سیستمی بسازید که چهرهها را در کسری از ثانیه شناسایی کند، باید بدانید که تبدیل تصویر به اعداد، هنوز سریعترین راه است. مدل SFace از OpenCV Zoo ثابت میکند که برای شناسایی هویت، نیازی به مدلهای غولآسای طبقهبندی نیست و یک بردار کوچک میتواند کل داستان را تعریف کند. بر اساس تأییدیهای که در تاریخ ۱۰ ژوئیه ۲۰۲۶ انجام شد، این مدل هنگام شناسایی افراد از طریق جستوجوی نزدیکترین همسایه روی مجموعه داده LFW، به دقت Top-1 ۸۲٪ دست یافته است.
شناسایی چهره اغلب به عنوان یک چالش یکپارچه دیده میشود، اما از نظر فنی، این فرآیند شامل نگاشت یک تصویر به یک بردار عددی — یا همان Embedding — و سپس جستوجو برای یافتن نزدیکترین تطابقها است. این رویکرد برای توسعهدهندگانی که در حال ساخت سیستمهای سبک احراز هویت یا عاملهای هوش مصنوعی هستند که نیاز دارند یک چهره را «به خاطر بسپارند»، حیاتی است. این روش را مانند یک اثر انگشت دیجیتالی تصور کنید: سیستم بهجای مقایسه پیکسلها، جهت حرکت دو بردار را در یک فضای با ابعاد بالا با یکدیگر مقایسه میکند. همانطور که در تحلیلهای پیشین ما دربارهی بهینهسازی مدلهای بینایی اشاره کردیم، کاهش پیچیدگی محاسباتی بدون افت شدید دقت، هدف نهایی استقرار در لبه است.
زمینه و مشخصات فنی مدل
به نقل از گزارش فنی منتشرشده در وبسایت dev.to، این ارزیابی بهطور خاص بر مدل face_recognition_sface_2021dec.onnx تمرکز داشت. هدف اصلی این بود که مشخص شود آیا SFace میتواند بهطور مداوم تصاویر مختلف از یک شخص واحد را به نقاط نزدیکی در یک فضای جاسازی ۱۲۸ بُعدی منتقل کند یا خیر.
یک Embedding در واقع لیستی از اعداد است که ویژگیهای تصویر را نمایندگی میکند. انتظار اصلی این است که تصاویر مربوط به یک شخص، منجر به بردارهایی شوند که از نظر عددی به یکدیگر نزدیک باشند. برای دستیابی به این هدف، پژوهشگر از نرمالسازی L2 استفاده کرد. این تکنیک طول هر بردار را قبل از مقایسه به مقدار ۱ تغییر میدهد. این کار به سیستم اجازه میدهد تا از شباهت کسینوسی (Cosine Similarity) برای اندازهگیری میزان نزدیکی جهت دو بردار استفاده کند.
مشخصات دقیق این مدل به شرح زیر است:
- فایل مدل: face_recognition_sface_2021dec.onnx
- شناسه SHA-256: 0ba9fbfa01b5270c96627c4ef784da859931e02f04419c829e83484087c34e79
- الزامات ورودی: برش چهره BGR تراز شده در ابعاد ۱۱۲x۱۱۲
- خروجی: بردار معنایی ۱۲۸ بُعدی
- لایسنس: Apache-2.0 (شامل تمامی فایلهای موجود در دایرکتوری SFace در OpenCV Zoo)
متدولوژی آزمایش و مجموعههای داده
برای ارزیابی استواری مدل در مواجهه با کیفیتهای مختلف تصویر، از دو مجموعه داده متمایز استفاده شد:
- Olivetti Faces: این مجموعه شامل ۴۰ شخص است که برای هر نفر ۱۰ تصویر وجود دارد و در مجموع ۴۰۰ تصویر چهره خاکستری (Grayscale) را شامل میشود. هر تصویر دارای رزولوشن ۶۴x۶۴ است. شناسه SHA-256 این مجموعه داده b612fb967f2dc77c9c62d3e1266e0c73d5fca46a4b8906c18e454d41af987794 میباشد.
- Labeled Faces in the Wild (LFW): این مجموعه داده به شرایط دنیای واقعی نزدیکتر است. پژوهشگر از یک نسخه «قیفیشده» (funneled) از طریق
sklearn.datasets.fetch_lfw_peopleاستفاده کرد و اولین ۴۰ نفری را که حداقل ۲۰ تصویر داشتند، انتخاب نمود. از این میان، تنها ۱۰ تصویر اول برای هر شخص مورد استفاده قرار گرفت (در مجموع ۴۰۰ تصویر). این تصاویر برشهای رنگی RGB با رزولوشن ۱۲۵x۹۴ هستند. شناسه SHA-256 آرشیو این مجموعه b47c8422c8cded889dc5a13418c4bc2abbda121092b3533a83306f900100a است.
در هر دو مجموعه داده، پنج تصویر اول هر شخص به عنوان «مجموعه مرجع» (Reference Set) در نظر گرفته شد و پنج تصویر باقیمانده به عنوان «پرسوجو» (Query) برای تست به کار رفتند.
جزئیات خط لوله پردازشی (Pipeline)
جریان تولید و مقایسه بردارهای معنایی از مراحل دقیق زیر پیروی میکرد:
۱. تغییر اندازه تصویر چهره به ابعاد ۱۱۲x۱۱۲.
۲. تبدیل تصاویر خاکستری یا RGB به فرمت BGR برای سازگاری با OpenCV.
۳. تولید بردار معنایی با استفاده از متد cv2.FaceRecognizerSF.feature.
۴. اعمال نرمالسازی L2 روی بردار حاصل.
۵. محاسبه شباهت کسینوسی بین تصویر پرسوجو و مجموعه مرجع.
۶. محاسبه دقت Top-1 (نسبتی که در آن نزدیکترین تصویر متعلق به همان شخص باشد).
۷. محاسبه دقت Top-5 (نسبتی که در آن حداقل یکی از تصاویر همان شخص در ۵ نتیجه اول ظاهر شود).
بنچمارکهای عملکرد
تستها روی یک دستگاه Mac Studio مجهز به تراشه Apple M4 Max و سیستمعامل macOS 26.5.1 (arm64) با زبان پایتون ۳.۱۲.۱۰ اجرا شدند. پشته نرمافزاری شامل موارد زیر بود: OpenCV 5.0.0، NumPy 2.5.1، SciPy 1.18.0، scikit-learn 1.9.0 و Pillow 12.3.0.
نتایج یک شکاف عملکردی واضح را بر اساس کیفیت تصویر و تراز بودن آنها نشان داد:
- مجموعه داده LFW: به دقت Top-1 ۸۲.۰٪ و دقت Top-5 ۹۴.۵٪ دست یافت. میانگین شباهت کسینوسی برای جفتهای همشخص ۰.۴۶۳ بود، در حالی که برای جفتهای غیرهمشخص ۰.۲۲۸ بود؛ این یعنی یک شکاف (Gap) به اندازه ۰.۲۳۵ وجود داشت.
- مجموعه Olivetti Faces: دقت Top-1 ۸۰.۰٪ و Top-5 ۹۲.۰٪ را ثبت کرد. شکاف بین شباهت همشخص (۰.۷۲۲) و غیرهمشخص (۰.۵۷۷) در اینجا محدودتر و برابر با ۰.۱۴۵ بود.
نکته قابل توجه این است که سیستم سرعت پردازش هر بردار را حدود ۰.۰۰۵۸ ثانیه اندازهگیری کرد. این بدان معناست که ۴۰۰ تصویر در حدود ۲.۳ ثانیه روی CPU به بردار تبدیل شدند.
محدودیتهای فنی و تفسیر نتایج
بسیار مهم است که توجه داشته باشید این نتایج شامل مراحل «تشخیص چهره» (Face Detection) و «همراستاسازی نقاط شاخص» (Landmark Alignment) نمیشود. همراستاسازی یک مرحله پیشپردازش است که از نقاط چشم و بینی برای مرکز کردن چهره استفاده میکند. پژوهشگر در این تست صرفاً برشها را به ۱۱۲x۱۱۲ تغییر اندازه داد. بدون این مراحل پیشپردازش، حدود ۱۸٪ از پرسوجوها در مجموعه LFW نتوانستند شخص صحیح را به عنوان نزدیکترین همسایه شناسایی کنند.
این موضوع تایید میکند که SFace اگرچه قدرتمند است، اما به تنهایی یک راهکار کامل شناسایی نیست. این مدل در واقع یک جستوجوی نزدیکترین همسایه بدون نیاز به آموزش است، نه یک طبقهبند (Classifier) آموزشدیده. در نتیجه، باید به عنوان یک بررسی فنی تحت شرایط خاص دیده شود و نه یک بنچمارک کلی.
این تاییدیه، دیدگاه نسبت به SFace را از یک مدل تئوری به یک ابزار کاربردی برای توسعهدهندگان تغییر میدهد. استفاده از آن به عنوان یک «سیگنال» به جای یک «حکم نهایی»، اجازه ادغام منعطفتری را میدهد. به عنوان مثال، ترکیب این بردارها با سایر متادادهها — مانند صدا، سبک تکلم، لباس یا محیط اطراف — میتواند یک عامل مبتنی بر LLM را بهطور قابل توجهی نسبت به محیط فیزیکی خود آگاهتر کند.
بازتولید و استقرار
توسعهدهندگان میتوانند این نتایج را با کلون کردن مخزن kiarina/labs بازتولید کنند. آزمایش مورد نظر در مسیر kiarina/labs/2026/07/10/sface-face-embedding قرار دارد. با استفاده از زنجیره ابزارهای mise و uv میتوان دستورات زیر را اجرا کرد:
git clone --depth 1 --filter=blob:none --sparse https://github.com/kiarina/labs.gitcd labsgit sparse-checkout set .gitignore .mise/tasks Makefile mise.toml 2026/07/10/sface-face-embeddingmise -C 2026/07/10/sface-face-embedding run
کاربران باید حدود ۵۰۰ مگابایت فضای خالی را برای محیط پایتون، فایل مدل و مجموعه داده LFW (که پس از استخراج حدود ۳۹۵ مگابایت اشغال میکند) در نظر بگیرند. جزئیات بیشتر در فایلهای output/olivetti_report.json ،output/lfw_report.json و output/summary.json در محیط آزمایش موجود است.
گام بعدی شما
- مدل SFace را برای سیستمهای احراز هویت سریع که محدودیت منابع CPU دارند تست کنید.
- بردار ۱۲۸ بُعدی خروجی را در یک پایگاهداده برداری (Vector Database) ذخیره کنید تا سرعت جستوجو در میلیونها چهره حفظ شود.
- برای افزایش دقت، یک مرحله همراستاسازی (Alignment) ساده قبل از ورود تصویر به مدل اضافه کنید.
اما برای کسانی که به دنبال دقت مطلق در محیطهای صنعتی هستند، بررسی لایههای سختافزاری استنتاج ضروری است — به تحلیل ما درباره تراشههای Blackwell مراجعه کنید.




گفتگو