نظام يتعرف على الأطعمة المفردة بالكاميرا أو من صورة باستخدام YOLO، ويعرض السعرات والدهون والبروتينات والكربوهيدرات لكل 100 غرام، مع خطط حمية أسبوعية.

مشروع أكاديمي نفذه فريق من الطلاب بمساعدة تقنية من مكتب تكنو إنجاز لتطوير نظام ذكي يتعرف على الأطعمة من الصور ويعرض قيمها الغذائية والسعرات الحرارية اعتمادًا على خوارزمية YOLO للكشف عن الأجسام. يوجّه المستخدم الكاميرا نحو الطعام أو يحمّل صورة من جهازه، فيحدد النظام نوع الطعام ويعرض الدهون والبروتينات والسكريات والألياف والكربوهيدرات والسعرات الحرارية لكل 100 غرام منه.
يركز النظام على الأطعمة المفردة غير المخلوطة، مثل التفاحة وحبة البطاطا والطماطم، ويستطيع التعرف على أكثر من صنف في الإطار نفسه. بُني بلغة Python مع مكتبة Ultralytics وOpenCV، وواجهة Tkinter، وجُهزت بيانات التدريب على منصة Roboflow ودُرّب النموذج عبر Google Colab. ويضم النظام أيضًا واجهة للحميات الغذائية تعرض خطة وجبات أسبوعية، منها حمية لمرضى السكري.
| العنصر | البيانات |
|---|---|
| نوع المشروع | نظام رؤية حاسوبية للتعرف على الأطعمة وعرض قيمها الغذائية |
| المجال | الرؤية الحاسوبية، التعلم العميق، الصحة الذكية والتغذية |
| حالة المشروع | نموذج أولي عامل على الحاسوب بنظام Windows |
| دور تكنو إنجاز | دعم ومساعدة تقنية للطلاب أثناء تطوير المشروع |
| تقنيات أساسية | Python، YOLO (Ultralytics)، OpenCV، Tkinter، Roboflow، Google Colab |
| المخرجات | التعرف على الطعام بالكاميرا المباشرة أو من صورة، القيم الغذائية لكل 100 غرام، خطط حمية أسبوعية |
السعرة الحرارية هي وحدة الطاقة التي يحصل عليها الجسم من الطعام، ويحتوي كل غرام من الكربوهيدرات أو البروتين على نحو 4 كيلو سعرات، وكل غرام من الدهون على نحو 9. ومعرفة هذه القيم أساسية للتحكم في الوزن والتخطيط الغذائي والوقاية من أمراض مزمنة مثل السمنة والسكري وأمراض القلب.
لكن الحساب اليدوي للسعرات يواجه صعوبات كثيرة يعددها المشروع:
من هنا جاءت فكرة نظام يعتمد على الرؤية الحاسوبية للتعرف على الطعام مباشرة من الصورة وعرض معلوماته الغذائية دون بحث يدوي.
نُفذ المشروع أكاديميًا بواسطة الطلاب، مع مساعدة ودعم تقني من مكتب تكنو إنجاز أثناء مراحل التطوير. ويُعرض ضمن أعمال المكتب مثالًا على دعمه للمشاريع التي توظف الرؤية الحاسوبية والتعلم العميق في تطبيقات صحية.
يقدم النظام ثلاث وظائف رئيسية من الواجهة الرئيسية:
| الوظيفة | ما تقدمه |
|---|---|
| الكاميرا المباشرة | فتح الكاميرا والتعرف على الطعام أمامها، مع عرض معلوماته الغذائية الرئيسية، والتعرف على عدة أصناف في الإطار نفسه |
| تحميل صورة من الجهاز | اختيار صورة وتحليلها بالنموذج نفسه، ثم عرض معلومات الصنف أو الأصناف المكتشفة |
| واجهة الحميات | اختيار نوع الحمية، مثل حمية مرضى السكري، لعرض قائمة وجبات مخططة لأسبوع كامل تشمل الوجبات الثلاث اليومية |
وتشمل المعلومات المعروضة لكل صنف مكتشف: الدهون، والبروتينات، والسكريات، والألياف، والكربوهيدرات، والسعرات الحرارية، وكلها لكل 100 غرام من الطعام.
| الأداة | دورها في المشروع |
|---|---|
| Python | لغة التطوير الرئيسية |
| Visual Studio Code | بيئة كتابة الأكواد وتنظيمها على نظام Windows |
| Ultralytics | تحميل نموذج YOLO وتشغيل الكشف |
| OpenCV | التقاط الفيديو ومعالجة الصور |
| Tkinter | الواجهة الرسومية لتحميل الصور وعرض النتائج والحميات |
| Roboflow وGoogle Colab | تجهيز البيانات ووسمها وتدريب النموذج |
يعرض الفصل التطبيقي لقطات من النظام العامل تُظهر التعرف على صنف طعام وعرض معلوماته الغذائية عبر الكاميرا المباشرة، والتعرف على عدة أصناف معًا بالكاميرا ومن صورة محمّلة، وواجهة الحميات مع وجبات حمية مرضى السكري. ويخلص المشروع إلى أن النظام أظهر كفاءة في تحديد أنواع الأطعمة وعرض محتواها الغذائي.
لكن الكتاب لا يعرض مقاييس أداء خاصة بالنموذج المدرَّب مثل mAP أو الدقة أو سرعة الكشف، ولا يذكر عدد الصور أو الأصناف في مجموعة البيانات. لذلك تمثل النتائج إثباتًا وظيفيًا لنموذج أولي. والمقاييس التي يشرحها الفصل النظري (مثل IoU وmAP) معروضة بوصفها مفاهيم عامة، كما أن التطبيقات التجارية المذكورة في مراجعة الدراسات السابقة، مثل SnapCalorie وCalorie Mama وCal AI، ليست جزءًا من هذا النظام.
بحسب الآفاق الواردة في المشروع، يمكن تطوير النظام عبر:
إذا كنت تعمل على نظام يعتمد على الرؤية الحاسوبية وتحليل الصور وتحتاج إلى مساعدة تقنية في تطوير الفكرة أو بناء نموذج أولي، يمكن التواصل مع مكتب تكنو إنجاز لمناقشة متطلبات المشروع ونطاق الدعم المناسب.
يوجه المستخدم الكاميرا نحو الطعام أو يحمّل صورة، فيتعرف نموذج YOLO على صنف الطعام، ثم يعرض النظام قيمه الغذائية المخزنة: السعرات والدهون والبروتينات والسكريات والألياف والكربوهيدرات لكل 100 غرام. ولا يقدّر النظام وزن الحصة الفعلي من الصورة.
بُني النظام بلغة Python في بيئة Visual Studio Code على Windows، ويستخدم YOLO عبر مكتبة Ultralytics للكشف، وOpenCV لمعالجة الصور، وTkinter للواجهة. وجُهزت بيانات التدريب ووُسمت ووُسعت على منصة Roboflow، ودُرّب النموذج في Google Colab عبر واجهة API الخاصة بـ Roboflow.
يقدم النظام ثلاث وظائف: التعرف على الطعام عبر الكاميرا المباشرة مع دعم عدة أصناف في الإطار نفسه، وتحليل صورة يحمّلها المستخدم من جهازه، وواجهة حميات تعرض خطة وجبات لأسبوع كامل بثلاث وجبات يومية، منها حمية لمرضى السكري.
يعرض المشروع لقطات من النظام العامل وهو يتعرف على الأطعمة ويعرض معلوماتها، لكنه لا ينشر مقاييس أداء للنموذج مثل mAP أو الدقة، ولا يذكر حجم مجموعة البيانات. لذلك تمثل النتائج إثباتًا وظيفيًا لنموذج أولي، ولا تُنسب للنظام نسبة دقة محددة.
يقتصر النظام على الأطعمة المفردة غير المخلوطة مثل التفاح والبطاطا والطماطم، ويعرض القيم لكل 100 غرام دون تقدير الكمية الفعلية، ولا يراعي طريقة الطهي. ومن التطويرات المقترحة تقدير الأوزان بالقياس البصري، ودعم الوجبات المركبة والمشروبات، ونسخة للهواتف تعمل دون اتصال دائم بالإنترنت.
تواصل مع فريق تكنو إنجاز لمناقشة قابلية التنفيذ العملي، اختيار القطع، وتطوير النموذج الأولي.