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

الكتاب: كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 | المادة: الذكاء الإصطناعي | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: اكتشاف صور الحدود البشرية Human Silhouette Detection

📚 معلومات الصفحة

الكتاب: كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 | المادة: الذكاء الإصطناعي | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

مستوى الصعوبة: متوسط

📝 ملخص الصفحة

تتناول هذه الصفحة عملية اكتشاف صور الحدود البشرية باستخدام تقنيات معالجة الصور والتعلم الآلي. تبدأ العملية بتحويل الصورة الملونة إلى تدرج رمادي، حيث يتم دمج قنوات الألوان (الأزرق، الأخضر، الأحمر) باستخدام الدالة `merge` في تسلسل عكسي (2، 1، 0) بدلاً من التسلسل المعتاد (0، 1، 2).

بعد ذلك، يتم تحويل الصورة إلى التدرج الرمادي باستخدام الدالة `cvtColor` مع المُعامل `COLOR_BGR2GRAY`، وهو خطوة أساسية لتحضير الصورة للخوارزميات اللاحقة.

الجزء الرئيسي من المحتوى يركز على استخدام مصنف هار كاسكيد (Haar Cascade Classifier) لاكتشاف الكائنات البشرية في الصور. هذه الخوارزمية تعتمد على تعلم الآلة وتحتاج إلى تدريب مسبق على مجموعات من الصور التي تحتوي على الكائن المطلوب وأخرى لا تحتويه. في هذا السياق، يتم استخدام ملف `haarcascade_fullbody.xml` المدرب مسبقاً ضمن مكتبة أوبن سي في (OpenCV).

يتم تطبيق المصنف عبر كائن `CascadeClassifier` ثم استخدام الدالة `detectMultiScale` للقيام بعملية الاكتشاف الفعلية. تُذكر أيضاً بعض التحديات التي قد تواجه الخوارزمية مثل الإضاءة المنخفضة أو الحجب الجزئي للكائن.

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

📋 المحتوى المنظم

📖 محتوى تعليمي مفصّل

نوع: محتوى تعليمي

بعد ذلك، يجب تغيير الصورة إلى التدرج الرمادي حيث أن خوارزمية الاكتشاف تستلزم ذلك، مع وجوب تخزينها أولاً ككائن صورة ووجوب الجمع بين قنوات ألوانها الثلاثة. وهنا يجب دمج قنوات الألوان وتخزينها باستخدام الدالة (merge) في تسلسل عكسي؛ أي أن يكون تسلسل الألوان (أزرق، أخضر، أحمر) بدلاً من (أحمر، أخضر، أزرق)، وأن يكون تسلسلها الرقمي (2، 1، 0) بدلاً من (0، 1، 2) على الترتيب.

نوع: محتوى تعليمي

# creates RGB image from merged channels img = Image.new('RGB', (400, 240)) img = cv2.merge((cameraImg[2], cameraImg[1], cameraImg[0]))

نوع: محتوى تعليمي

وأخيرًا، يتم تحويل الصورة إلى التدرج الرمادي باستخدام الدالة () cvtColor التي تستخدم مُعامل COLOR_BGR2GRAY لتغيير الألوان من الأزرق والأخضر والأحمر إلى التدرج الرمادي.

نوع: محتوى تعليمي

# converts image to grayscale gray = cv2.cvtColor(np.uint8(img), cv2.COLOR_BGR2GRAY)

نوع: محتوى تعليمي

اكتشاف صور الحدود البشرية Human Silhouette Detection

نوع: محتوى تعليمي

لكي تكتشف الصورة، عليك أن تستخدم مصنف هار كاسكيد (Haar Cascade Classifier)، وهو خوارزمية لاكتشاف الكائنات تعتمد على تعلم الآلة. وتُستخدم لتحديد الكائنات في الصور أو مقاطع الفيديو. ولاستخدام هذا المصنف تحتاج أن تدرب نموذج تعلم الآلة على مجموعة من الصور التي تحتوي على الكائن الذي تريد البحث عنه، وعلى صور أخرى لا تحتوي على هذا الكائن. حيث تقوم الخوارزمية بالبحث عن أنماط معينة في الصور لتحديد مكان الكائن. وفي العادة تُستخدم هذه الخوارزمية للعثور على أشياء محددة مثل: الوجوه، أو أشخاص يسيرون في مقطع فيديو. ومع ذلك قد لا تعمل هذه الخوارزمية بشكل جيد في بعض المواقف التي يكون فيها الكائن محجوبًا جزئيًا أو كليًا أو معرضًا لإضاءة منخفضة. تم تدريب المصنف في مشروعك تدريبًا خاصًا على اكتشاف البشر، وعليك أن تستخدم ملف haarcascade_fullbody.xml الذي ستزود به، وهو نموذج تعلم آلة مدرب مسبقًا ويشكل جزءًا من مكتبة أوبن سي في (OpenCV). ويقدم كمعامل لكائن () CascadeClassifier. ثم تستخدم الدالة () detectMultiScale للقيام بعملية الاكتشاف.

نوع: محتوى تعليمي

# loads and applies the Haar cascade classifier to detect humans in image human_cascade = cv2.CascadeClassifier('haarcascade_fullbody.xml') humans = human_cascade.detectMultiScale(gray)

نوع: METADATA

وزارة التعليم Ministry of Education 331 2025 - 1447

🔍 عناصر مرئية

شكل 6.19: مثال على اكتشاف صور الحدود البشرية

A figure showing two images side-by-side. The right image is labeled 'الصورة الأصلية' (The Original Image) and depicts a 3D rendered person standing on a textured ground, casting a shadow. The person is wearing a green shirt and blue pants. The left image is labeled 'صورة الحدود المستخرجة' (The Extracted Silhouette Image) and shows a white silhouette of the same person against a solid black background, representing the detected human outline.

📄 النص الكامل للصفحة

بعد ذلك، يجب تغيير الصورة إلى التدرج الرمادي حيث أن خوارزمية الاكتشاف تستلزم ذلك، مع وجوب تخزينها أولاً ككائن صورة ووجوب الجمع بين قنوات ألوانها الثلاثة. وهنا يجب دمج قنوات الألوان وتخزينها باستخدام الدالة (merge) في تسلسل عكسي؛ أي أن يكون تسلسل الألوان (أزرق، أخضر، أحمر) بدلاً من (أحمر، أخضر، أزرق)، وأن يكون تسلسلها الرقمي (2، 1، 0) بدلاً من (0، 1، 2) على الترتيب.# creates RGB image from merged channels img = Image.new('RGB', (400, 240)) img = cv2.merge((cameraImg[2], cameraImg[1], cameraImg[0]))وأخيرًا، يتم تحويل الصورة إلى التدرج الرمادي باستخدام الدالة () cvtColor التي تستخدم مُعامل COLOR_BGR2GRAY لتغيير الألوان من الأزرق والأخضر والأحمر إلى التدرج الرمادي.# converts image to grayscale gray = cv2.cvtColor(np.uint8(img), cv2.COLOR_BGR2GRAY)اكتشاف صور الحدود البشرية Human Silhouette Detectionلكي تكتشف الصورة، عليك أن تستخدم مصنف هار كاسكيد (Haar Cascade Classifier)، وهو خوارزمية لاكتشاف الكائنات تعتمد على تعلم الآلة. وتُستخدم لتحديد الكائنات في الصور أو مقاطع الفيديو. ولاستخدام هذا المصنف تحتاج أن تدرب نموذج تعلم الآلة على مجموعة من الصور التي تحتوي على الكائن الذي تريد البحث عنه، وعلى صور أخرى لا تحتوي على هذا الكائن. حيث تقوم الخوارزمية بالبحث عن أنماط معينة في الصور لتحديد مكان الكائن. وفي العادة تُستخدم هذه الخوارزمية للعثور على أشياء محددة مثل: الوجوه، أو أشخاص يسيرون في مقطع فيديو. ومع ذلك قد لا تعمل هذه الخوارزمية بشكل جيد في بعض المواقف التي يكون فيها الكائن محجوبًا جزئيًا أو كليًا أو معرضًا لإضاءة منخفضة. تم تدريب المصنف في مشروعك تدريبًا خاصًا على اكتشاف البشر، وعليك أن تستخدم ملف haarcascade_fullbody.xml الذي ستزود به، وهو نموذج تعلم آلة مدرب مسبقًا ويشكل جزءًا من مكتبة أوبن سي في (OpenCV). ويقدم كمعامل لكائن () CascadeClassifier. ثم تستخدم الدالة () detectMultiScale للقيام بعملية الاكتشاف.# loads and applies the Haar cascade classifier to detect humans in image human_cascade = cv2.CascadeClassifier('haarcascade_fullbody.xml') humans = human_cascade.detectMultiScale(gray)2025 - 1447--- VISUAL CONTEXT --- **FIGURE**: شكل 6.19: مثال على اكتشاف صور الحدود البشرية Description: A figure showing two images side-by-side. The right image is labeled 'الصورة الأصلية' (The Original Image) and depicts a 3D rendered person standing on a textured ground, casting a shadow. The person is wearing a green shirt and blue pants. The left image is labeled 'صورة الحدود المستخرجة' (The Extracted Silhouette Image) and shows a white silhouette of the same person against a solid black background, representing the detected human outline. Context: This visual element demonstrates the practical outcome of applying the Haar Cascade Classifier for human silhouette detection, as described in the accompanying text and code examples. It visually contrasts the original input image with the processed output, highlighting the extracted human boundary.

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 5 بطاقة لهذه الصفحة

ما هي الخوارزمية التي تُستخدم في اكتشاف صور الحدود البشرية (Human Silhouette Detection)؟

الإجابة: تُستخدم خوارزمية هار كاسكيد (Haar Cascade Classifier) لاكتشاف صور الحدود البشرية.

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

تلميح: ابحث عن اسم الخوارزمية التي تعتمد على تعلم الآلة وتُستخدم لتحديد الكائنات في الصور.

ما هو الغرض الأساسي من استخدام مصنف هار كاسكيد في معالجة الصور؟

الإجابة: الغرض الأساسي هو تحديد الكائنات في الصور أو مقاطع الفيديو عن طريق البحث عن أنماط معينة.

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

تلميح: فكر في الوظيفة الرئيسية لهذه الخوارزمية فيما يتعلق بالصور.

ما هي القيود أو التحديات التي قد تواجه خوارزمية هار كاسكيد عند اكتشاف الكائنات؟

الإجابة: قد لا تعمل الخوارزمية بشكل جيد في مواقف يكون فيها الكائن محجوبًا جزئيًا أو كليًا، أو معرضًا لإضاءة منخفضة.

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

تلميح: فكر في الظروف التي قد تجعل من الصعب على الخوارزمية التعرف على الكائن.

ما هو اسم الملف الذي يمثل نموذج تعلم آلة مدرب مسبقًا لاكتشاف البشر في سياق مكتبة OpenCV؟

الإجابة: ملف haarcascade_fullbody.xml.

الشرح: تُقدم مكتبة OpenCV نماذج تعلم آلة مدربة مسبقًا لمختلف مهام اكتشاف الكائنات. في هذا المشروع، يتم استخدام ملف 'haarcascade_fullbody.xml' خصيصًا لاكتشاف حدود الأجسام البشرية الكاملة.

تلميح: ابحث عن اسم الملف المحدد الذي يُستخدم كمعامل لكائن CascadeClassifier لهذا المشروع.

ما هي الخطوات الأساسية المذكورة لتحويل صورة ملونة إلى تدرج رمادي باستخدام OpenCV؟

الإجابة: تتضمن الخطوات دمج قنوات الألوان (عادة بترتيب معكوس مثل أزرق، أخضر، أحمر) لتكوين صورة RGB، ثم استخدام الدالة cvtColor مع معامل COLOR_BGR2GRAY لتحويلها إلى تدرج رمادي.

الشرح: الصور الرقمية عادة ما تخزن القنوات اللونية بترتيب معين. قبل التحويل إلى تدرج رمادي، قد تحتاج الصور إلى إعادة ترتيب قنواتها اللونية لتتوافق مع الترتيب الذي تتوقعه وظيفة التحويل (مثل BGR بدلاً من RGB). ثم تُستخدم دالة cvtColor لإجراء التحويل الفعلي إلى تدرج رمادي.

تلميح: ركز على العمليات التي تتم لمعالجة الألوان قبل التحويل النهائي.