طلب مساعدة في إكمال كود في مشروع التعرف على مشية الإنسان

[SIZE=“4”]السلام عليكم ورحمة الله وبركاته
مشروع التخرج الخاص بي هو عبارة عن ( التعرف على مشية الإنسان باستخدام منحنيات بيزر )
المشروع عبارة عن نفس فكرة ورقة العمل هذه :
( http://www.enggjournals.com/ijcse/doc/IJCSE11-03-02-129.pdf )

ولكن مشروعي يختلف عنه في إجراء تجربة البحث في التعرف على المشية كالتالي:
التجربة الأولى: أن أقوم بنفس التجربة التي قامو بها في ورقة العمل تماماً بكل خطواتها ويكون التغيير فقط في زاوية الكاميرا إلى 45 و 90 درجة ( في ورقة العمل استخدمو زاوية 0 ).

use a new algorithm which is based on Bezier curves. Bezier curves are generated according to person’s walk and recognition is achieved by matching those curves by calculating the mean and variance, and used for recognition. Only the side-view of the person is considered, since this viewing angle provide the richest information of the gait of the waking person.

2- التجربة الثانية: أن أقوم بنفس التجربة مع إضافة المصنف SVM إلى mean and variance في مرحلة التعرف مع تغيير زاوية الكاميرا إلى 45 و 90 درجة أيضاً.

recognition is achieved by matching those curves by calculating the Mean and Variance + SVM classifier, and used for recognition

تم عمل الكود ببرنامج الماتلاب ، وانتهيت من مرحلة استخراج الميزات عن طريق رسم منحنى بيزر ، وكذلك انتهيت من برمجة كود التعرف للتجربة الثانية وحصلت على النتائج التجريبية فيها ( CCR + Accuracy Rate ).

المطلوب : مساعدتي في التعديل على كود التعرف للتجربة الثانية حتى أتمكن من عمل التجربة الأولى وهي التعرف باستخدام الـ ( Mean + Variance ) فقط وإيجاد النتائج .

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

وجزاكم الله خيراً[/size]

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

أرجو ممن لديه الخبرة الرد عليا في أقرب وقت ممكن لأنني بحاجة إليه …

وجزاكم الله خيراً

[CENTER]وعليكم السلام

رابط البحث لا يعمل.

ضعه كمرفقات

يعني انت الان وصلت للتجربة الثانية وتريد العودة للتجربة الاولى؟

تعديل الكود يعني ؟

المشروع عامة ليس سهلا. على الاقل بالنسبة لي …
لكن ممكن اساهم لو اقدر

[/center]

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

ستجد في المرفقات ورقة العمل التي اعتمدت عليها.

أما موضوع التجربة الأولى أو الثانية الترتيب ليس مهم …
الفكرة أنه يجب أن أقوم بتجربتين في بحثي :

  • تجربة أقوم بعمل التعرف ( التصنيف ) فيها باستخدام الـ Variances + Mean فقط ( كما تم في ورقة العمل بالضبط )
  • تجربة أقوم بعمل التصنيف فيها باستخدام Variances + Mean + SVM … أي أنه أضيف مصنف SVM كنوع من التغيير عن ورقة العمل .

الآن أنا لدي الكود الخاص بالتصنيف باستخدام Variances + Mean + SVM وعملت له run وطلعت النتائج.
ما أحتاجه فقط التعديل في هذا الكود ليتم التصنيف بدون SVM ، وأطلع نتائجه .

أرجو أن أكون قد وضحت لك ماتريد … وأن تستطيع مساعدتي في ذلك
إذا كان لديك أي استفسار آخر أرجو مراسلتي
وجزاك الله خيراً

[CENTER]نعم وهو ماكنت اقصده

فهمت المطلوب
لكن لو تضع الكود في المرفقات اظن ان الامر سيكون اسهل

كما لاتنسى الصور التي جربت عليها

ساحاول معه الليلة ان شاء الله

[/center]

كود التصنيف مع الصور ( عينة فقط ) سأرسلها لك على الخاص

أنتظر ردك في أقرب وقت

جزاك الله خيراً

[CENTER]والداتا لم ترسلها

هل انت من كتب البرنامج ؟
[/center]

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

بماذا تريد اذا ان تقارن نتائج المصنف ؟

أرجو التكرم بقراءة ورقة العمل لفهم الفكرة بشكل أوضح …
الفكرة ببساطة هي : أنه بعد حساب الـVariances + Mean لكل الأفراد (لكل شخص 4 صور) في مرحلة استخراج الميزات سيتم تخزينها بقاعدة بيانات … ثم عند تشغيل كود المصنف سيقوم بطلب صورة ويرسم فيها المنحنى ويحسب له Variances + Mean ثم يقارنها بقاعدة البيانات التي تم تخزينها في المرحلة السابقة ثم المفروض أن يعطي نتيجة ( تم التعرف أو لم يتم التعرف )

وذلك ما طلبته
بيانات الصورة التي ارسلتها
كي اقارن بها النتائج

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

تم إرسال الملفات على الخاص … وأعتذر عن التأخير

[CENTER]وعليكم السلام
اعتذر على التاخير لمشاغل
ان شاء الله ساعمل عليه والرد سيكون حال الانتهاء

[/center]

أعتذر على إزعاجك …
وجزاك الله خيراً

[CENTER]لا داعي للاعتذار
هل تملك كود استخراج الداتا الاصلية ؟
ايضا
الدالة
lineplot
ليست دالة ماتلاب
لذا يرجا ارسالها

[/center]

هل تقصد كود استخراج الميزات وتخزينها في ملف الداتا قبل عمل التصنيف؟

[CENTER]السلام عليكم

And will we get your grades also? The best way to get help in this forum, which is Matlab related, is probably to ask specific questions, not to ask us to do your job. That would be, to say the least, unethical. You will find that most contributors will be happy to help you along, but not to do your job.
And you should hope that your supervisor doesn’t come to this forum

الاجانب اشرار


ستجد محاولتي هنا

في البداية البيانات المخزنة التي اعطيتها لي لا نحتاجها كلها
فقط نحتاج N لكل صورة
لذلك لاداعي لقراءة بقية البيانات

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

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

ملاحظة:
مكان النقاط المختار جد مهم ويؤثر طبعا
في المقال:

first point is
selected to locate ankle; next is selected to locate the toe; next is selected to indicate the knee; next is selected to
indicate palm and last one is selected to locate shoulder

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

[Varx,Vary,Mean];

هذا بالنسبة لانشاء ملف بيانات جديد

[/center]

[CENTER]لما نريد التعرف على صورة ما
نتبع نفس الخطوات ونختار صورة وحيدة
ونختار بعدها النقاط

بعدها نختار الطريقة التي نريد العمل عليها

في المقالة التي وضعتها
الاخ لم يفصح عن طريقة عمله
فقط اشار الى احد الاعمال الاخرى

المهم، الطرق المعمول بها عموما:
هي حساب المسافات بين الاشعة vectors
او ما يسمى
1-nearest neighbor

وتتم بحساب احد هذه الابعاد
L1 Norm
L2 Norm
Cosine Distance
Mahalanobis Distance
البحث الذي تمت الاشارة اليه في الورقة حسب بطريقة اخرى تجمع ماسبق واسماها
Weighed

المهم انا استخدمت الاسهل

L1 Norm

لكنك تستطيع تغييرها في الملف

Process

النتيجة ستكون اسم الصورة الاقرب
النتيجة تتعلق شرطا بمكان وترتيب اختيار النقط طبعا

لم اقم بتكملة الكود للطريقة الاخرى التي قلت انت انك اكملتها لان الكود المرفق لم يعمل معي او لم اعرف طريقة عمله

في الاخير
لمعرفة النتائج الحقيقية لهذه الطريقة استخدم مايسمى
Cumulative Match Score Curves
والذي يعطيك نظرة على قوة طريقتك
لكن بعد ان تقوم بتجارب على جميع الصور

الملفات بالمرفق
ضعها كلها في ملف ماتلاب والبداية تكون بملف ".m"
بالتوفيق

[/center]

لقد تم الرد على الخاص

[CENTER]الاخ الكريم
هو انا قلت لم يعمل او لم اعرف تشغيله

اعرف الهدف منه، لكن لما قلت لي انه يشتغل لم ارد ان اغير فيه وتركت لك الامر

لو نتبع الخطوات::

معلومات الصور الان موجودة في الداتا

load output2_45_L % data we want to classify
d1 = [(N{2})';(N{3})';(N{1})'];
d2 = [(N{3})';(N{1})';(N{2})'];
data = [d1(:,1),d2(:,1)]

الصورة المراد مقارنتها

N{1}=[Varx,Vary,Mean];

المقارنة

%groups = ismember([(N{1})],'isclassified');
groups = [0;1;0;1;0;0;1;0;1];
[train, test] = crossvalind('holdOut',groups)
cp = classperf(groups);

svmStruct = svmtrain(data(train,:),groups(train),'showplot',true);
title(sprintf('Kernel Function: %s',...
              func2str(svmStruct.KernelFunction)),...
              'interpreter','none');
classes = svmclassify(svmStruct,data(test,:),'showplot',true);
classperf(cp,classes,test);
AccuracyRate = cp.CorrectRate

في هذا الكود الاخير
السطر الاول هو الذي من المفروض ان يقارن
لكن فيه خطا ولا يشتغل عندي ولم اشا التفكير حوله

الاجابة :
الكود الذي وضعته لك يخص فقط ماطلبته
اي التجربة دون SVM
وهو كود بدائي
يعني يحتاج تطوير، على الاقل اضافة طرق اخرى لحساب البعد
وكما قلت سابقا اضافة
Cumulative Match Score Curves
لمعرفة فعالية الكود

وبما ان الكود الذي عملت عليه ناجح فلقد تركت لك مكان اضافته بنفسك في ملف
Process
هنا

    case 1 % M+V+SVM
        a=1;

الافضل ان تعتمد على الطريقتين
او تطوير طريقة اخرى

المهم ان الطريقتين غير متناقضتين
ولا يمكن الحكم على قوة احداهما الا بعد التجربة

موفق

[/center]