LightFace: یک چارچوب تشخیص چهره عمیق ترکیبی
Deepface یک چارچوب سبک تشخیص چهره و تجزیه و تحلیل ویژگی های چهره (سن ، جنسیت ، احساسات و نژاد) برای پایتون است. این یک چارچوب تشخیص چهره ترکیبی است که مدلهای پیشرفته ای را در بر می گیرد: VGG-Face ، Google FaceNet ، OpenFace ، Facebook DeepFace ، DeepID ، ArcFace و Dlib. این مدل ها از قبل به دقت سطح انسانی رسیده و از آن عبور کرده اند. کتابخانه عمدتا مبتنی بر TensorFlow و Keras است.
نصب و راه اندازی
ساده ترین راه برای نصب deepface این است که آن را از PyPI بارگیری کنید. باید خود کتابخانه و پیش نیازهای آن نیز نصب شود.
pip install deepface
سپس می توانید کتابخانه را وارد کرده و از عملکردهای آن استفاده کنید.
from deepface import DeepFace
تشخیص چهره – نسخه ی نمایشی
pipeline تشخیص چهره مدرن شامل 4 مرحله مشترک است: تشخیص ، تراز کردن ، نمایش و تأیید. Deepface تمام این مراحل مشترک را در پس زمینه مدیریت می کند. فقط می توانید تابع تأیید ، یافتن یا تجزیه و تحلیل آن را با یک خط کد فراخوانی کنید.
تأیید چهره – نسخه ی نمایشی
این تابع جفت های صورت را به عنوان یک شخص یا افراد مختلف تأیید می کند. این مسیرهای تصویر دقیق را به عنوان ورودی انتظار دارد. ارسال تصاویر کد شده numpy یا based64 نیز استقبال می شود.
result = DeepFace.verify(img1_path = “img1.jpg”, img2_path = “img2.jpg”)
تشخیص چهره – نسخه ی نمایشی
تشخیص چهره مستلزم اعمال چندین بار تأیید چهره است. در اینجا ، deepface دارای عملکرد پیدا کردن خارج از جعبه برای رسیدگی به این عمل است. به دنبال هویت تصویر ورودی در مسیر پایگاه داده است و قاب داده pandas را به عنوان خروجی باز می گرداند.
df = DeepFace.find(img_path = “img1.jpg”, db_path = “C:/workspace/my_db”)
مدل های تشخیص چهره – نسخه ی نمایشی
Deepface یک بسته ترکیبی تشخیص چهره است. در حال حاضر بسیاری از مدرن ترین مدل های تشخیص چهره را در بر می گیرد: VGG-Face ، Google FaceNet ، OpenFace ، Facebook DeepFace ، DeepID ، ArcFace و Dlib. پیکربندی پیش فرض از مدل VGG-Face استفاده می کند.
models = [“VGG-Face”, “Facenet”, “Facenet512”, “OpenFace”, “DeepFace”, “DeepID”, “ArcFace”, “Dlib”]
result = DeepFace.verify(img1_path = “img1.jpg”, img2_path = “img2.jpg”, model_name = models[1])
df = DeepFace.find(img_path = “img1.jpg”, db_path = “C:/workspace/my_db”, model_name = models[1])
FaceNet ، VGG-Face ، ArcFace و Dlib نسبت به OpenFace ، DeepFace و DeepID مبتنی بر آزمایشات برتری دارند. از نظر حمایتی ، FaceNet /w 512d با دقت 99.65%; FaceNet /w 128d با دقت 99.2%; ArcFace با دقت 99.41%; Dlib با دقت99.38%; VGG-Face با دقت 98.78%; DeepID با دقت %97.05; OpenFace با دقت 93.80% نمرات دقت را در مجموعه داده های LFW دریافت کرده اند در حالی که انسان ها فقط 97.53 % را داشته اند.
شباهت
مدل های تشخیص چهره شبکه های عصبی معمولی هستند و وظیفه دارند چهره ها را به عنوان بردار نمایش دهند. ما انتظار داریم که یک جفت صورت از یک شخص باید بیشتر شبیه یک جفت صورت از افراد مختلف باشد.
شباهت را می توان با معیارهای مختلف مانند شباهت کوزین، فاصله اقلیدسی و فرم L2 محاسبه کرد. پیکربندی پیش فرض از شباهت کسینوس استفاده می کند.
metrics = [“cosine”, “euclidean”, “euclidean_l2”]
result = DeepFace.verify(img1_path = “img1.jpg”, img2_path = “img2.jpg”, distance_metric = metrics[1])
df = DeepFace.find(img_path = “img1.jpg”, db_path = “C:/workspace/my_db”, distance_metric = metrics[1])
به نظر می رسد که شکل اقلیدسی L2 نسبت به فاصله کوسینوس و منظم اقلیدسی بر اساس آزمایشات پایدارتر است.
تجزیه و تحلیل ویژگی های چهره – نسخه ی نمایشی
Deepface همچنین دارای یک ماژول قوی تجزیه و تحلیل ویژگی های صورت شامل سن ، جنسیت ، حالت چهره (شامل عصبانیت ، ترس ، خنثی ، غمگین ، بیزاری ، شادی و تعجب) و نژاد (شامل آسیایی ، سفید ، شرقی میانه ، هندی ، لاتین و سیاه) پیش بینی هاست.
obj = DeepFace.analyze(img_path = “img4.jpg”, actions = [‘age’, ‘gender’, ‘race’, ’emotion’])
مدل سن ± 4.65 MAE دریافت کرد. همانطور که در آموزش ذکر شد ، مدل جنسیت 97.44٪ دقت، 96.29٪ صحت و 95.05٪ فراخوانی داشت.
جریان و تجزیه و تحلیل زمان واقعی – نسخه ی نمایشی
برای ویدیوهای زمان واقعی نیز می توانید deepface را اجرا کنید. عملکرد جریان به وب کم شما دسترسی پیدا می کند و هم تشخیص چهره و هم تجزیه و تحلیل ویژگی های چهره را اعمال می کند. این تابع شروع به تجزیه و تحلیل یک فریم می کند در صورتی که بتواند یک چهره را به ترتیب 5 فریم متمرکز کند. سپس نتایج را 5 ثانیه نشان می دهد.
DeepFace.stream(db_path = “C:/User/Sefik/Desktop/database”)
حتی اگر تشخیص چهره مبتنی بر یادگیری با یک عکس باشد، می توانید از چندین تصویر چهره یک فرد نیز استفاده کنید. شما باید ساختار دایرکتوری خود را مانند تصویر زیر تنظیم مجدد کنید.
user
├── database
│ ├── Alice
│ │ ├── Alice1.jpg
│ │ ├── Alice2.jpg
│ ├── Bob
│ │ ├── Bob.jpg
آشکارسازهای چهره – نسخه ی نمایشی
تشخیص چهره و تراز از مراحل اولیه خط لوله تشخیص چهره مدرن است. آزمایشات نشان می دهد که فقط هم ترازی دقت تشخیص چهره را تقریباً 1 درصد افزایش می دهد. آشکارسازهای OpenCV ، SSD ، Dlib ، MTCNN و RetinaFace در سطح عمیق پیچیده شده اند. OpenCV آشکارساز پیش فرض است.
backends = [‘opencv’, ‘ssd’, ‘dlib’, ‘mtcnn’, ‘retinaface’]
#face detection and alignment
detected_face = DeepFace.detectFace(img_path = “img.jpg”, detector_backend = backends[4])
#face verification
obj = DeepFace.verify(img1_path = “img1.jpg”, img2_path = “img2.jpg”, detector_backend = backends[4])
#face recognition
df = DeepFace.find(img_path = “img.jpg”, db_path = “my_db”, detector_backend = backends[4])
#facial analysis
demography = DeepFace.analyze(img_path = “img4.jpg”, detector_backend = backends[4])
به نظر می رسد RetinaFace و MTCNN در مراحل تشخیص و تراز بیش از حد عمل می کنند اما کندتر از بقیه هستند. اگر سرعت pipeline شما مهمتر باشد، باید از opencv یا ssd استفاده کنید. از سوی دیگر، اگر دقت را در نظر بگیرید، باید از retinaface یا mtcnn استفاده کنید.
API – نسخه ی نمایشی
Deepface یک API نیز ارائه می دهد. می توانید /api/api.py را کلون کرده و آن را به عنوان آرگومان به دستور python منتقل کنید. با این کار خدمات استراحت بالا می رود. به این ترتیب، می توانید از یک سیستم خارجی مانند برنامه تلفن همراه یا وب با deepface تماس بگیرید.
python api.py
تشخیص چهره، تجزیه و تحلیل ویژگی های صورت و توابع نمایش بردار در API پوشش داده شده است. انتظار می رود که این توابع را به عنوان متدهای ارسال http فراخوانی کنید. نقاط پایانی خدمات http://127.0.0.1:5000/verify برای تشخیص چهره، http://127.0.0.1:5000/analyze برای تجزیه و تحلیل ویژگی های صورت و http://127.0.0.1:5000/represent برای نمایش بردار است. در این حالت باید تصاویر ورودی را به عنوان رشته کدگذاری شده با base64 ارسال کنید. در اینجا[1] می توانید یک پروژه postman پیدا کنید.
Teck Stack – Vlog ، آموزش
مدلهای تشخیص چهره تصاویر چهره را به عنوان جاسازی بردار نشان می دهند. ایده ای که در پشت تشخیص چهره وجود دارد این است که بردارها باید برای یک شخص بیشتر شبیه به افراد مختلف باشند. سوال این است که جاسازی صورت را در کجا و چگونه در یک سیستم در مقیاس بزرگ ذخیره کنیم. در اینجا، deepface یک عملکرد نمایشی برای یافتن جاسازی بردار از تصاویر صورت ارائه می دهد.
embedding = DeepFace.represent(img_path = “img.jpg”, model_name = ‘Facenet’)
Tech stack برای ذخیره جاسازی بردار وسیع است. برای تعیین ابزار مناسب، باید وظیفه خود مانند تأیید چهره یا تشخیص چهره، اولویت مانند سرعت یا اطمینان، و همچنین اندازه داده ها را در نظر بگیرید.
مقاله بیس
I. Serengil and A. Ozpinar, “LightFace: A Hybrid Deep Face Recognition Framework,” 2020 Innovations in Intelligent Systems and Applications Conference (ASYU), 2020, pp. 1-5, doi: 10.1109/ASYU50717.2020.9259802.
چکیده
تشخیص چهره یک حوزه نسبتا محبوب است که در طیف وسیعی از مطالعات از حاکمان رسانه های اجتماعی گرفته تا دانشگاه های برتر جهان ظهور کرده است. مرزها و قانون گذاران به تازگی مدلهای تشخیص چهره سفارشی مبتنی بر یادگیری عمیق را طراحی کرده اند. pipeline تشخیص چهره مدرن از چهار مرحله مشترک تشکیل شده است: تشخیص، همسویی، نمایش و تأیید. با این حال، مطالعات تشخیص چهره عمدتا به مرحله نمایش یک pipeline اشاره می کند. در این مقاله، ابتدا یک بازبینی تشخیص چهره انجام شده است و سپس توصیف چارچوب تشخیص چهره ترکیبی سبک وزن با عملکرد بالا توسعه داده شده است. ویژگی ترکیبی آن امکان تغییر مدل های تشخیص چهره را در میان مدرن ترین مدل ها فراهم می کند.
شما می توانید فایل مقاله پایه به همراه شبیه سازی پایتون را از این پروژه دانلود کنید.
سفارش پروژه مشابه دارید؟ به این صفحه مراجعه کنید.
[1] https://github.com/serengil/deepface/tree/master/api
پروژه مشابه دارید؟
برای ثبت سفارش در سیمیا می توانید از طریق اپلیکیشن سیمیا، یا فرم ثبت سفارش در سایت اقدام کرده و یا از طریق ایمیل، واتساپ، تلگرام و اینستاگرام اقدام نمایید.
اپلیکیشن سیمیا را از بازار و مایکت دانلود کنید.
سریع ترین راه پاسخگویی سیمیا، واتساپ می باشد. لینک واتساپ، اینستاگرام و تلگرام در پایین سایت وجود دارد.
نشانی ایمیل سیمیا simiya_ht@yahoo.com می باشد.
از برقراری تماس برای هماهنگی پروژه خودداری کنید، حجم بالای سفارشات به ما اجازه نمی دهد تا از طریق تلفن پاسخگوی شما عزیزان باشیم، حتما درخواست خود را به صورت مکتوب و از طریق یکی از راه های ذکر شده فوق ارسال نمایید، درخواست خود را به طور کامل و با تمام فایل ها و توضیحات لازم ارسال نمایید تا مدت زمان بررسی آن به حداقل برسد. پس از تعیین کارشناس، در اسرع وقت به شما پاسخ می دهیم.
نقد و بررسیها
هیچ دیدگاهی برای این محصول نوشته نشده است.