دسته‌بندی خوراکی


با اپلیکیشن اسنپ‌‌فود به راحتی می‌توانید با چند کلیک ساده، رستوران‌ها، کافه‌ها و شیرینی‌فروشی‌های نزدیک خودتان را جست‌و‌جو و از تجربه سفارش آسان اسنپ‌فود لذت ببرید. 😋

توضیح تصویر

فروشندگان می‌توانند اقلام خوراکی خود را در اسنپ‌فود قرار دهند تا کاربران با بررسی قیمت و عکس خوراکی‌ها و نظرات کاربران دیگر، خوراکی مورد نظر خود را انتخاب کنند.

با بررسی تصاویری که مردم در شبکه‌های اجتماعی به اشتراک می‌گذارند، می‌توان ترتیب قرار گرفتن خوراکی‌ها را ارتقا داد. برای مثال، خوراکی‌هایی که در شبکه‌های اجتماعی مورد توجه قرار گرفته‌اند را در ابتدای سایت یا اپلیکیشن قرار داد. همچنین برای هر کاربر، یک لیست شخصی‌سازی شده از خوراکی‌های مورد علاقه‌اش را پیشنهاد داد.

برای استقاده از این امکانات، در قدم اول باید بتوانیم نوع غذای موجود در یک عکس را شناسایی کنیم و این دقیقا کاری است که ما انتظار داریم شما در این سوال انجام دهید.

دادگان🔗

در این سوال شما به دادگان عکس خوراکی‌ها دسترسی دارید. در این مجموعه، بیش از ۱۷ هزار عکس از ۲۱ نوع خوراکی وجود دارند که تعدادی از آنها را در عکس زیر می‌بینید:

توضیح تصویر

برای دریافت دادگان این سوال، از اینجا اقدام کنید. بعد از unzip کردن آن، داخل پوشه food بروید و دادگان آموزش را در پوشه train، پیدا کنید. داخل این پوشه، برای هر نوع خوراکی، یک پوشه جدا وجود دارد که شامل تصاویر آن می‌باشد. همچنین تصاویر دادگان آزمایش این سوال، در پوشه test قرار دارند. روی هم رفته حجم کل عکس‌ها حدود یک گیگابایت می‌باشد.

راهنمایی

شاید یکی از روش‌های زیر (یا ترکیب آنها)، بتواند به شما در حل این مسئله کمک بکند:

  • استفاده از روش‌های یادگیری عمیق مانند transfer learning و ‍‍CNNs
  • استفاده از روش‌های افزایش تعداد عکس (data augmentation)
  • استفاده از هر روش مرتبط با بینایی ماشین، یادگیری ماشین و عمیق
توجه

در هنگام کار با این دادگان، به نکات زیر توجه داشته باشید:

  • هر عکس، تنها شامل یک نوع خوراکی می‌باشد.
  • ابعاد عکس‌ها یکسان نیستند و طول و عرض هر عکس حداکثر ۵۱۲ پیکسل می‌باشد.
  • برچسب‌های دادگان آموزش، توسط نیروی انسانی انجام شده‌است. به همین دلیل، شاید تعدادی از عکس‌های هر نوع غذا، به اشتباه برچسب خورده باشند. مدیریت این مسئله، جزوی از چالش این سوال و بر عهده شما می‌باشد.

ارزیابی🔗

برای ارزیابی نتیجه کار، از معیار دقت (accuracy) در اعلام نوع خوراکی موجود در یک عکس استفاده می‌شود. یعنی تعداد عکس‌های درست پیش‌بینی شده تقسیم بر تعداد کل تصاویر موجود می‌شود.

امتیاز نهایی مدل شما نیز، طبق رابطه زیر محاسبه می‌شود: score=((accuracy×100)20)×2.5 score = ((accuracy\times100)-20)\times2.5

توضیحات

با استفاده از رابطه بالا، افرادی که دقت مدلشان، ۲۰ درصد و یا کمتر از آن است، از این سوال، امتیازی کسب نمی‌کنند. توجه داشته باشید که بیشترین امتیاز ممکن از این سوال ۲۰۰ و کمترین امتیاز ممکن، صفر است.

ارسال پاسخ🔗

پیش‌بینی‌های مدل خود بر روی دادگان آزمایش را در فایلی با نام output.csv قرار دهید. این فایل باید دارای دو ستون با نام‌های file و prediction به ترتیب باشند. در هر ردیف، نام فایل را در file و پیش‌بینی خود از نوع خوراکی را در ستون prediction قرار دهید (دقت کنید که فایل CSV باید حتما دارای header باشد).

بعد از آماده‌سازی فایل output.csv، آن را برای ما بارگذاری کنید.

نمونه خروجی فایل output.csv (فقط سه خط اول به همراه نام ستون‌ها)🔗

file,prediction
005YYST06V93A.jpg,ice_cream
011VG8PFN3W2W.jpg,spaghetti
014XUHGNX7Z1M.jpg,spaghetti
Plain text
توجه

حتما فایل output.csv باید دارای ۴,۲۷۶ سطر (بدون در نظر گرفتن header) و دو ستون باشد.

همچنین نام ستون‌ها بایستی بدون space در قبل و بعد از نام آن، باشند. در غیر این صورت، سیستم داوری نمره‌ای به شما نخواهد داد.

هشدار 😱

فراموش نکنید که قبل از پایان زمان مسابقه، بایستی تمامی کد‌های این مسابقه را از قسمت بارگذاری کُد برای ما ارسال کنید. در غیر این صورت، شما از این مسابقه، امتیازی کسب نمی ‌کنید.

توجه داشته باشید که اگر از jupter notebook استفاده می کنید بایستی همانند توضیحات قسمت بارگذاری کُد، خروجی .py را دریافت و برای ارسال در نظر بگیرید. ارسال فایل‌های jupyter همانند ‍‍.ipynb مورد قبول واقع نخواهند شد.

ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.