delphi4arab منتديات دلفي للعرب
مقارنة الصور والتعرف على الاوجه - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : مقارنة الصور والتعرف على الاوجه (/showthread.php?tid=5263)



مقارنة الصور والتعرف على الاوجه - onexite - 27-05-2013

السلام عليكم
عندي فكرة جميلة وساقوم بمشاركتها معكم لاكن الاشكال هو في مقارنة صور اشخاص
سابسط الامر ساحفظ صورة شخص ما في قاعدة البيانات وعند فتح البرنامج يلتقط له صورة اخرى وهنا كيف تتم المقارنة ؟
وكيف يتم التعرف على الاوجه حيث عند فتح البرنامج يصور صورة لك ويبحث في قاعدة البيانات ويقول لك مرحبا ايها المستخدم ( معرف 1 ) ..


مقارنة الصور والتعرف على الاوجه - محمد عبد العزيز - 27-05-2013


وعليكم السلام
إقتباس :عندي فكرة جميلة وساقوم بمشاركتها معكم ...
برنامج قفل Lock الجهاز ولا يفتحه الا اذا كان صاحبه (اخذ صورة له بCam الجهاز ومقارنتها)

خواريزمية التعرف تحدد نقط معينة من الصورة (وجه/عين/بصمة) وتحتفظ بها ثم عند التعرف تحاول البحث عنها والمقارنة
ابحث عن Face Recognition SDK مثل Luxand FaceSDK يمكن استخدامها بدلفي




مقارنة الصور والتعرف على الاوجه - SMP3 - 27-05-2013

كما أشار الأخ B.M.AbdelAziZ عليك أن تستخدم خوارزميات / مكتبات جاهزة للقيام بهذه الأمور
إقتباس :خواريزمية التعرف تحدد نقط معينة من الصورة (وجه/عين/بصمة) وتحتفظ بها ثم عند التعرف تحاول البحث عنها والمقارنة
هل أخذت عامل الاضاءة بالحسبان ؟

------------------------------------------------------------------------------------------------------

[COLOR="Indigo"]هناك عدة خوارزميات لمقارنة الوجه .. أشهرها و أفضلها : laplacian
إقتباس :laplacian face recognition algorithm

أفضل الحلول أنك تستخدم Image Work Package : مجانية و مبرمجة بدلفي تدعم اصدارات دلفي من دلفي 3 الى XE3 :
بها العديد من الفلاتر .. من بينها Laplacian[/COLOR]
كود :
delphiarea.com/products/delphi-packages/imagework/
-----------------------------------------------------------------------------------------------------
سأعطيك فكرة على السريع بدون استخدام خوارزميات و مكتبات خارجية :
-قم بالتقاط الصورة للشخص
-ثم قم بتحويل الصورة لى أبيض و أسود أو تأثير Sepia Effect/GrayScale من أجل التخلص من عامل الاضاءة (لأ الشخص ممكن أن يكون أمام اضاءة قوية أو عتمة أو ... )
-احفظ جزء معين من الوجه (يعني مستطيل بطول 4 سم و عرض 6 سم ) من المنطة الوسطى للوجه (منطقة غير متغيرة ... -المنطقة العلوية للوجه متغيرة بسبب تسريحة الشعر- Smile )
- قم بحفظها في قاعدة البيانات
-قم بالمقارنة بين ال Bytes الخاصة بالصورة الأولى المخزنة في قاعدة البيانات و الصورة الثانية التي تم التقاطها ( يفضل أن تستخدم تعليمة xor للمقارنة مثل تعليمة CompareStr يعني النتيجة تساوي = نسبة الاختلاف ))
PHP كود :
function CmpFaceImage(Image1,Image2:TBitmap):Integer;
 
begin
   Result
:=Image1Bytes xor  Image2Bytes ;
 
end; 
-ثم مرحلة التأكد من الشخص : يتم فيها مقارنة القيمة التي تعيدها CmpFaceImage بعدد ثابت (تستنتجه تجريبيا ) :
PHP كود :
const FaceIndice = Something;
  function 
IsSameFace(CmpFaceImageResult:Integer ):Boolean ;
  
begin
   Result
:= CmpFaceImageResult <  FaceIndice ;
  
end; 



مقارنة الصور والتعرف على الاوجه - SMP3 - 27-05-2013

ألق نظرة على VCOpenCV
كود :
delphimagic.blogspot.com/2011/08/reconocimiento-de-caras-con-delphi.html



مقارنة الصور والتعرف على الاوجه - ALmuhhnad - 28-05-2013

*اضافة : اضن العملية ستكون ادق وافضل عندما تكون الصورة المخزن بقاعدة البايانات عبارة عن مجسم 3d او على الاقل عدة صور من عدة مناطق لنفس الشخص ...