• 0
fmo_82

مشروع بناء نظام ذكاء اصطناعي

سؤال

بسم الله الرحمن الرحيم ,

قرأت قبل ايام عن نظام تستخدمه المخابرات الأمريكية في المطارات لتعرف على شخصية الشخص المطلوب وذلك بتعرف على بعض الملامح الخاصة به حيث يتم التقاط عدد من الصور من عدة اتجاهات ثم يقوم النظام بمحاولة المطابقة بينها وبين ما هو مخزن في قاعدة البيانات ... طبعا النظام معقد جدا ويعتمد على خوارزميات تعتمد على الذكاء الأصطناعي وقد تم صرف ملايين الدولارات لتطويره .

فكرت بعمل مشروع مشابه للفكرة السابقة ولكن بأسلوب اكثر تبسيطا وذلك ببناء نظام يعتمد على الذكاء الأصتناعي و (Fuzzy Logic ) وظيفته اجراء مقارنة بين صورتين ملتقطين عبر الكميرا و استخراج نتيجة تبين مدى التشابه بنسبة معينة.

الهدف من المشروع:

- مساعدة الطلبة على تطبيق وفهم ما يدرس في المواد الخاصة بالذكاء الأصطناعي و ال Fuzzy Logic

- المساعدة في بناء نظام يمكن ان يتم تبنيه مستقبلا لتطوير انظمة متقدمة للمقارنة و التعرف على الأشخاص المطلوبين كما ويمكن ان يتم استخدام هذا النظام في اكثر من اتجاه مثل التعرف على شخص ما من خلال الصورة ومناداته بإسمه ...

امكانية التطبيق و البدأ في المشروع:

بنسبة لإمكانية التطبيق فهذا ممكن حيث نبدأ بالمشروع درجة درجة , سوف نبدأ بإمكانية التقاط صورتين بستخدام الكميرا وتخزينها على الجهاز ثم تحويل هذه الصور الى Binary وتعبأتها بمصفوفة , كل صورة على حدة , ثم عمل مقارنة بين المصفوفتين .. هذه الخطوة الأولى ولن اتكلم عن الخطوة الثانية الى بعد انجاز هذه الخطوة ... طبعا اذا كانت لديك اقتراحات اخرى تخص هذه الخطوة نستطيع مناقشتها هنا ..

أمل ان تشاركونا بأفكاركم

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

32 إجابة على هذا السؤال .

  • 0

فكرة جيدة و عمل ممتاز , لكن هل سيتم برمجة هذا العمل عن طريق لغات الذكاء الاصطناعي ام يمكن برمجته بواسطة بعض لغات الاغراض العامة المعروفه .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخي العزيز alibukheet , اشكرك على المشاركة بالنسبة للغة نستطيع استخدام اللغات الخاصة ب .Net حيث تحتوي على امكانيات ضخمة ناهيك عن سهولة الأستخدام

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

نريد المزيد من المشاركات ... نريد التفاعل بإقتراحات ... اين انتم يا مبرمجين المنتدى ...

هل من احد مستعد للمشاركة الجادة معي في بناء هذا المشروع؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا اخي فادي على مشاركاتك المميزة

انا بدرس حاليا الذكاء الاصطناعي وساحاول المشاركة في هذا النظام

تم تعديل بواسطه m_lahlouh
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أفكارك كلها جميله يا fmo وأنا نفسي أشارك فيها كلها :) لكن المشكله في ضيق الوقت :angry:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اشكركم اخواني , واتمنى ان نتشارك في بناء هذا النظام

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

سوف اقوم بإدراج بعض الشرح و الأمثلة الخاصة ب Fuzzy Logic .. قريبا

والتي نحتاجها لبناء النظام...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بعد البحث في اسلوب المقارنة وجدت ان هنالك اسوبين لتعرف على الصورة و مقارنتها ببقية الصور المخزنة :

- الطريقة الأولى استخدام اسلوب GDI+

- الطريقة الثانية استخدام السلوب ال Fuzzy Logic حيث تتوفر الكثير من ال Library الخاصة بها في الدوت نيت و الإنترنت ويمكن استدعائها واستخدامها في عملية المقارنة ..

سوف ابدأ في الطريقة الأولى :

استخدام اسلوب GDI+

لمعرفة اذا كانت الصورتين التي نريد مقارنتها متشابهتين ام لا , لا بد اولا من فحص ومقارنة الحجم فإذا لم يكن متشابه نعرف مباشرة ان الصورتين غي متشابهتين ,

بعد ذلك نستخدم خاصية GetPixel الموجودة اصلا في GDI+ ليتم مقارنة كل بكسيل في الصورة الأولى بصورة الثانية , اذا وجد اي اختلاف نقرر ان الصورتين غير متشابهتين , ويمكننا عمل Counter يقوم بحساب مدى الأختلاف في كل بكسل حيث يزيد بمقدار واحد عند كل بكسل غير متطابق

وهذا هو الجزء الخاص بالخطوة الأولى :

public static CompareResult Compare(Bitmap bmp1, Bitmap bmp2)
{
   CompareResult cr = CompareResult.ciCompareOk;

   //Test to see if we have the same size of image
   if (bmp1.Size != bmp2.Size)
   {
       cr = CompareResult.ciSizeMismatch;
   }
   else
   {
       //Sizes are the same so start comparing pixels
       for (int x = 0; x < bmp1.Width
            && cr == CompareResult.ciCompareOk; x++)
       {
           for (int y = 0; y < bmp1.Height
                        && cr == CompareResult.ciCompareOk; y++)
           {
               if (bmp1.GetPixel(x, y) != bmp2.GetPixel(x, y))
                   cr = CompareResult.ciPixelMismatch;
           }
       }
   }
   return cr;
}

الخطوة الثانية : استخدام اسلوب Hash حيث يتم استخدامها من المكتبة

System.Security.Cryptography

سوف نستخدم الميثود التالية ComputeHash لتحويل الصورة الى Binary Code ثم يعبأها بمصفوفة من النوع Byte حيث تمتلك كل صورة Hash Code خاص بها ,ويتم مقارنة كل عنصر من المصفوفة الأولى مع المصفوفة الثانية , وترجع قيمة 256 Bit تبين فيه مدى التشابه في كل صورة ...

وهذا هو الكود الخاص بهذه الخطوة :

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Security.Cryptography;

namespace Imagio
{
   public class ComparingImages
   {
       public enum CompareResult
       {
           ciCompareOk,
           ciPixelMismatch,
           ciSizeMismatch
       };

       public static CompareResult Compare(Bitmap bmp1, Bitmap bmp2)
       {
           CompareResult cr = CompareResult.ciCompareOk;

           //Test to see if we have the same size of image
           if (bmp1.Size != bmp2.Size)
           {
               cr = CompareResult.ciSizeMismatch;
           }
           else
           {
               //Convert each image to a byte array
               System.Drawing.ImageConverter ic =
                      new System.Drawing.ImageConverter();
               byte[] btImage1 = new byte[1];
               btImage1 = (byte[])ic.ConvertTo(bmp1, btImage1.GetType());
               byte[] btImage2 = new byte[1];
               btImage2 = (byte[])ic.ConvertTo(bmp2, btImage2.GetType());
               
               //Compute a hash for each image
               SHA256Managed shaM = new SHA256Managed();
               byte[] hash1 = shaM.ComputeHash(btImage1);
               byte[] hash2 = shaM.ComputeHash(btImage2);

               //Compare the hash values
               for (int i = 0; i < hash1.Length && i < hash2.Length
                                 && cr == CompareResult.ciCompareOk; i++)
               {
                   if (hash1[i] != hash2[i])
                       cr = CompareResult.ciPixelMismatch;
               }
           }
           return cr;
       }
   }
}

اريد رأيكم و إقتراحاتكم في الخطوة الأولى ... :rolleyes:

ارجو من اي شخص يريد الأشتراك معي ان يبين ذلك , B)

لن اتكلم عن الخطوة الثانية الا بعد تجربة هذه الخطوة ... وتفاعلكم معي :)

تم تعديل بواسطه fmo_82
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

سوف نتحدث في الخطوة التالية عن عملية استخراج الصور المخزنة في SQL Database ثم اجراء عملية المقارنة بين ما تم التقاطه بستخدام الكميرا وما هو مخزن في قاعدة البيانات .. الى ان يجد الصورة المطابقة بناء على نسبة التشابه ...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

موضوع مميز بالفعل لكني لا ارى كيف يمكن ان تطابق مصفوفتين من صوتين مختلفتين و تاتي بنسبة التشابه. تصور لو ان لديك رسمة جا(ب) و رسمة اخرى جا(ب+10) لدورة واحدة حيث ب 0~360 ورغم ان هناك تشابه كبير بين الرسمتين الا ان المقارنة ستكون نتيجتها منخفضة للغاية.

و ارى ان تناقش الافكار قبل الشروع في التطبيق و اعلم ان المشاركين قلة.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لدي ابحاث في هذا الموضوع ، و شاركت بها في برمجة الجرافيكس و الالعاب ، سوف احاول الافادة بقدر ما اعلم و إتاحة الوقت.

بخصوص مقارنة صورتين تستطيع بإستخدام عمليات التقارب Approximating للصورتين بإستخدام بعض الاشكال الهندسية البسيطة مثل الدائرة و المستطيل حتي تحتوي علي الصورة Bounding Shapes و يمكن من خلالها الكشف بدقة اكثر ...

و بخصوص مقارنة بكسل صورة بصورة هذه العملية بطيئة ، سوف اتكلم عن خوارزميات اسرع في ذلك الامر.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اشكرك يا اخ عماد الخليل على مشاركتك , كلامك صحيح 100 % حيث اذا اخذت الصورة من جانب اخر فقد تختلف النتائج لكن فكرة المشروع هي عمل برنامج ذكي يقوم بتعرف على صاحب الصورة .. حيث انه من المؤكد ان يتم التقاط عدة صور لذلك الشخص ومن عدة اتجاهات ومن عدة ابعاد لكي يتم المقارنة المهم ان النتيجة سوف تكون بنسبة مئوية معينة ,

واشكرك اخي العزيز احمد صالح على اقتراحك ... ونحن ننتظر منك ان تفيدنا بأي معلومات تخص هذا الموضوع ..

بنسبة لهدف البرنامج فنحن نسعى لإبتكار اسلوب جديد يمكن اضافته للويندوز او للألعاب والتي تستطيع من خلالها التعرف على الشخص مباشرة والدخول الى البروفايل الخاص به دون الحاجة لإدخال كلمة مرور او ما شابه ... مع العلم انه من الصعب الأعتماد عليه في الأمور الحساسة ... , كما يمكن من خلاله عمل روبوت ولكن سوفت وير يستطيع التعرف على الشخص مستخدم الكمبيوتر مباشرة دون الحاجة بأن يعرف على نفسه ... اعرف ان الطريق صعب وشائك لكن لا شيء لا يمكن عمله برمجيا ..

اشكركم اخواني و اتمنى استمراركم معي ...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمة الله وبركاته

لقد اعجبني الموضوع وبإختصار هو يتكلم عن علم Pattern Recognition وبالتحديد Image recognition بالنسبه لعملية المقارنة بالطريقه التي عرضها الاخ ( صاحب الفكره) هي طريقه خطأ 100% وانا لا اقصد الاسفاف بهذا الكلام, فلقد كان مشروع تخرج من احدي كليات الهندسه بجامعات مصر يتكلم عن هذا الموضوع ولقد شاركت في هذا المشروع ولقد وجدنا نتائج باهره تصل إلي اكثر من 80% من نجاح عملية المقارنة , وهو يعتمد بشكل اساسي علي ايجاد نقطة البداية في عملية المقارنة وهو ايجاد المنطقه التي ستبدا المقارنة منها ,, وذلك بإيجاد شكل هندسي مثل مستقيم او دائره او حتي مربع وكانت الصعوبات لان الوجه ليس بي اي اشكال هندسية سليمة وسبحان الله وجدنا ان النقطه التي نستطيع البدء منها هي العين فحدقة العين هي فعلا دائرية بنسبة 100%,, وابتدأ المشروع علي هذا المنوال

ارجو ان اكون قد اوضحت نقطة هامة .. وشكراُ

وعلي فكره كان لايهم اختلاف زاوية الصور الملتقطةر لنفس الشخص او حتي عمل تنكر بسيط وكانت بفضل الله النتائج مبهره جدا وشكرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اشكرك يا اخ m_anass على مشاركتك , اقوم الأن بالبحث في هذا المجال كنت اتمنى وجود اي شخص قام بعمل مشروع مشابه او لديه اي مواضيع او ابحاث تخص هذا المجال حتى نستفيد منه ونطوره بدلا من البدأ من مرحلة الصفر , حيث ان الموضوع يحتمل الكثير من الأخطاء .. وبالمناسبة الطريقة التي تحدثت عنها في السابق يمكن استخدامها لعمل مقارنة بين صورتين , ولكن كلما تغير موقع التقاط الصورة او نسبة الإضائة تغيرت النتائج بشكل كبير جدا .. وهذا امر غير منطقي على الإطلاق .. واقوم الأن بدراسة لمحاولة تطوير الفكرة اذ ان الموضوع يحتاج الكثير من البحث والتطوير لكن الوقت لا يسعفني على الإطلاق ,

اخي العزيز , لابد انكم قمتم بإجراء الكثير من الأبحاث حول هذا الموضوع والذي اتمناه منك هو مساعدتنا ونشر اخر ما توصلتم اليه كي نتبنى تطوير الفكرة ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمة الله وبركاته

كل سنه والمنتدي بخير

عندي مشكلة هي ان عندي صوره كبيره بها اقام عربي واعطي البرنامج الرقم المراد ابحث عنه في الصوره للوصول الي س و ص في الصوره الكبيره في جزء فيها

ممكن كود البحث ان امكن او عمل الارقام الدخل كصوره صغير ثم البحث

جزاكم الله الخير الكثير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

up

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخي العزيز لم افهم ماذا تريد بضبط هل لك ان تراجع السؤال قبل الضغط على إضافة الرد !

ماذا تقصد بهذه العبارة "عندي صوره كبيره بها اقام عربي واعطي البرنامج الرقم المراد ابحث عنه في الصوره للوصول الي س و ص"

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الأخ فادى تحية لك على مجودك الرائع فى هذا الموضوع حيث ان له العديد من التطبيقات المبتكرة.

فقد درسنا موضوع التعلم فى مادة ال Nural Networks و هو ما سوف يبنى علية هذا المشروع.

و هو أننا نعطى samples متعددة للصورة الخاصة بهذا الشخص الذى نريد التعرف علية(بخلفية سادة)

ثم تحويلها لمجموعة من النقط فى مصفوفة و لتكن للتسهيل (Binary Array) كأن الصورة أبيض و أسود.

و بالتالى تكون عندنا مصفوفة بها الإطارات الرئيسية لهذا الشخص عبارة عن مجموعة من ال وحايد يحيط بها مجموعة من الأصفار.

أما بالنسبة للون الجلد و الجبهة و الألوان التجانسة تتحول إلى أصفار. أما بالنسبة للملامح (التحديدات) تتحول إلى وحايد.

وبالتالى نكون رسمنا خريطة لوجههة بمصفوفة ثنائية.

يمكن مناقشة algorithm للمقاربة بين جميع المصفوفات المتشابة (لنفس الشخص) فى عملية التعلم ك جمع الوحايد رأسيا مثلا و تحويلها لمصفوفة من الدرجة الأولى

أو تطوير أى طريقة رياضية لمعرفة جميع التمثيلات الممكنة لهذا الشخص من بعيد أو قريب أو من زاوية أو أخرى.

هذه فكرتى على حسب ما أتذكر مما درست + تخيلى لهذا الموضوع.

و أرجوا البدء فعلا فى هذا الموضوع و عدم التوقف لما له من تطبيقات مهمة جدا فى رأيى مثل

1- نظام الحضور و الانصراف التلقائى بتحلليل الوجة.

2- فكرة طول عمرى بحلم بيها من يوم ما درست ال ANN و هى كاميرا تصوير تمشى مع شخص معين (زى ماتشات الكورة بس أوتوماتيك)

3- تحليل البصمة

و غيرها كتير من التطبيفات بس هى البداية......

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جميل جداً وائل ، شكراً لك على هذه المعلومات ،

أخي فادي برأيي أن المشروع بحاجه إلى تحليل ولو تحليل مبدئي ، لذلك أرى ان تفرد للمشروع موضوع خاص

تطرح فيه ماذا تريد بالضبط ، وسيساعدك الأخوه بتحليله وصياغته بأسلوب جميل من غير تشتت ولا مضيعة وقت .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يا أخ فادى

مش ناوى تكمل و لا ايه

احنا معاك و لا الموضوع ناوى تقفله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

my dear friends , first i'm not profissional yet but i have an idea about the solution

i think it is the 3d block

if we can extend the somme of the photo to make a 3d block to the face so then we can put it in co-ordenation 3d space

the second step is to get all the co-ordenations of the vface surface

and put them an any way

also we will depend on four basic eteas in the face

ear/eye/nose /mouse

so from any photo it will contain any item of them

we can get our result

but in my openion the big problem is to find the way to extend 2d : 3d photo

and may be we should use nsome math tools or programs like matlab and 3dmax

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

الان سوف ادخل بالنقاش بما افهمه.

لقد عملت على motion detection بالدلفي، والفكرة كانت سهلة جدا . اخذ لقطة اولى(snap shot) ثم اللقطة هذه تقارن بلقطة

لاحقة اخرى.

مشكلة الكاميرة كانت انها تعطي ديتا مختلفة كل مرة, تغلبت على هذه المشكلة عن طريق اولا تحويل الصورة الى ابيض واسود. ثم اعطيت Tolerance لمقارنة + - (متغير مقارنة).

بالنسبة لمشروعكم: يعتمد على ماذا سوف يتعرف . لنفرض وجهه شخص ما, في هذه الحالة يجب ان تاخذ الصورة على نفس البعد اولا. يعني لا تستطيع ان تاخذ صوره وجهه شخص يبعد عن الكاميرة 5 امتار وتاخذ صورة اخرى لنفس الشخص يبعد عن الكاميرة متران فقط. الا اذا عندك مفتاح ما؟ وهى نقطه التعرف على الوجهه. ماهما ابتعد او اقترب، وهي (العينين) في هذه الحال البرنامج يستطيع التعرف على البعد بين العينين في الصورة وعليها يبداء التحليل على هذا الاساس. انا اقصد البعد بين العين اليمنى والعين اليسرى. ثم بعد هذه العملية ياخذ نقاط اخرى من الوجهه. مثل بعد الاذنين عن بعضها. بعد الفم عن العينين بحيث يرسم مثلث بين العينين والفم. بمعرفة هذه القياسات يقوم بمقارنة. مثل مقارنة البصمة. ياخذون نقاط معينة من البصمة وتخزن ثما تقارن هذه النقاط مع البصمات في الديتابيس. ولكن البصمة اسهل لان حجمها تقريبا متقارب ولا توجد مشكلة .

هذه بعض الافكار لعل وعسى ان تفيدكم.

وشكراً.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمة الله وبركاته

اقدر هذا الحماس الرائع

لو كان لدي وقت لشاركت بهذه الفكرة بل لتزعمتها B)

حصلت على ملف pdf من الانترنت يتكلم عن

Face Recognition Technology

Recognition Algorithm Development and

Test Results

اتمنى يفيدكم

وادعوا لنا

army_feret3.pdf

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الأخوة الكرام السلام عليكم ورحمة الله و بركاته.

أعجبني الموضوع و الحماس الرائع و أود أن أشارك معكم.

أولا أحسن طريقة لبدأ هذا المشروع هي أن نعرف أنه من مشاريع ال Biometric technology أو ما يعرف بالمحددات الحيوية مثل بصمة الأصبع , شكل اليد ,بصمة الصوت ,أو بصمة الصوت.

لقد عملت في مشاريع من هذا النوع من قبل (بصمة الأصبع و الإمضاء) من الأشياء اللتي يجب التركيز عليها هي تحديد طريقة المقارنة عن طريق تصميم معادلة بسيطة.

بعض الأفكار البسيطة:-

•تحويل الصورة إلى بايناري ->>> Bit map format لماذا؟؟ هذا النوع من الصور يسهل قراءة ترويسته و معلوماته الداخلية (بكسل,حجم,كثافة) مع مراعات تحويل الصور إلى أسود-أبيض و إستبعاد الخلفية.

•أغلب الأفكار هنا تتحدث عن مقارنة بكسل*بكسل ولكن هذا لا يعطي نتيجة صحيحة إلا في حالات المقارنة بين خطوط الكتابة و بصمة الإصبع (ببعض التعديلات طبعا)

•الأخ m-anass وضع المجموعة على بداية الطريق و هي إستعمال الأشكال الهندسية و خصوصا الخط المستقيم هي من بعض الطرق المستعملة في المقارانات ولكن نسبة الصحة فيها متوسطة و ضعيفة في حالة صور الوجه عموما.

•من بعض الطرق المستعملة هي أخذ أكثر من صورة و أخذ متوسط تركيز البكسل و مقارنته مع قاعدة البيانات.

الأخ فادي أشكرك على فكرة المشروع و إلى الأمام و أرجو منك أن تواصل شرحك و أن تصحح معلوماتي البسيطة.

سأحاول أن أضع بعض الأمثلة و المصادر في المشاراكات القادمة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .