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

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

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

الرد
#3
كما أشار الأخ 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; 
الرد
#4
ألق نظرة على VCOpenCV
كود :
delphimagic.blogspot.com/2011/08/reconocimiento-de-caras-con-delphi.html
الرد
#5
*اضافة : اضن العملية ستكون ادق وافضل عندما تكون الصورة المخزن بقاعدة البايانات عبارة عن مجسم 3d او على الاقل عدة صور من عدة مناطق لنفس الشخص ...
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم