![توضیح تصویر](https://quera.ir/media/public/events/banner/73aab31f04194de0bb7bceca034b000e.png)
سلام
به مسابقه **ماینپرابلم یونیدرو (تحلیل داده)** خوش آمدید.
قبل از شروع مسابقه، ابتدا موارد زیر را مطالعه کنید:
+ هدف این مسابقه استفاده از برنامهنویسی کامپیوتری، روشهای پردازش تصویر، یادگیری ماشین و یادگیری عمیق در تحلیل دادگان مرتبط با صنعت معدن میباشد.
+ محدودیتی برای شما در انتخاب زبان برنامهنویسی وجود نخواهد داشت.
+ برای مطالعه قوانین شرکت در مسابقه به [اینجا](https://quera.ir/course/assignments/2693/problems/33523) مراجعه کنید.
+ در طول زمان مسابقه میتوانید سوالهای خود را از قسمت "سوال بپرسید" مطرح کنید. با توجه به این که زمان این مسابقه ۴ روز میباشد فقط سر ساعتهای ۱۱، ۱۴، ۱۷ و ۱۹ روزهای مسابقه، به سوالاتی که تا آن لحظه دریافت کردهایم، پاسخ خواهیم داد (هر چند ما تمامی تلاش خود را میکنیم تا در ساعات دیگر نیز پاسخگوی سوالات شما باشیم).
+ پیش از پایان زمان مسابقه، کُد سوالات خود را در بخش "بارگذاری کد سوالات" قرار دهید.
+ این مسابقه در مجموع ۱۵۰۰ امتیاز دارد و افراد برتر، آنهایی هستند که بیشترین امتیازها را در مجموع کسب کنند.
+ توجه داشته باشید که جایزه این مسابقه به افرادی تعلق میگیرد که حداقل قسمت "توضیح روش حل مسائل" مرحله **گزارشنویسی** را انجام داده باشند.
+ شاید برای متوجه شدن یک سوال، نیاز باشد که آن را چندبار بخوانید تا تمامی مفاهیم معدنی و ارتباط آنها با یکدیگر برای شما مشخص شود.
+ بعد از پایان زمان مسابقه، امتیاز افرادی که از روشهای غیرمتناسب با هدف مسابقه (مانند تابع تصادفی) استفاده کرده باشند، صفر میشود و این امر تخلف به حساب میآید.
+ بعد از پایان زمان مسابقه، جهت شناسایی دانشجویان رشته **مهندسی معدن** برای اهدای جوایز نفیس به نفرات برتر آنها، یک فُرم برای شما ارسال میشود. لطفا آن را پُر کنید (جوایز اصلی این مسابقه، مستقل از رشته است و برای دانشجویان رشته **مهندسی معدن** جوایز جداگانهای **نیز** در نظر گرفته خواهد شد).
+ شما میتوانید در این مسابقه، از **راهنمایی** و **مشورت** دوستان خود نیز استفاده نمایید. در صورت تمایل، میتوانید اسامی آنها را در سوال آخر (گزارشنویسی) ذکر کنید.
+ مسابقه در ساعت ۱۶ روز سهشنبه ۲ شهریورماه، به پایان میرسد.
+ بعد از پایان زمان مسابقه و داوری سوال آخر (گزارشنویسی) توسط هیئت داوران، نفرات برتر در [سومین جشنواره ایدههای ارزش آفرین معدنی و صنایع معدنی (INNOMINE)](https://innomine.ut.ac.ir) و همچنین [بلاگ کوئرا](https://quera.ir/blog/1400/05/19/%d9%85%d8%b3%d8%a7%d8%a8%d9%82%d9%87-%d9%85%d8%a7%db%8c%d9%86-%d9%be%d8%b1%d8%a7%d8%a8%d9%84%d9%85-%db%8c%d9%88%d9%86%db%8c%d8%af%d8%b1%d9%88/) اعلام خواهند شد.
+ اهداء جوایز در اختتامیه جشنواره اینوماین انجام خواهد شد و شما میتوانید به صورت حضوری یا مجازی در جشنواره شرکت کنید. همچنین از نفرات برتر دعوت میشود تا در این جشنواره، پاسخهای خود را در یک ارائه حداکثر ۲۰ دقیقهای شرح دهند.
+ علاوه بر جوایز، رزومه افراد برتر در **فرآیند جذب و استخدام** یونیدرو برای پروژهها و فعالیتهای آتی این موسسه در حوزه هوش مصنوعی قرار خواهد گرفت.
+ جواب افراد برتر جهت نشر دانش از طریق [مخزن مسابقات داده کوئرا](https://github.com/QueraTeam/data-contests) به اشتراک گذاشته خواهند شد.
+ برای هرگونه استفاده دیگر از دادگان این مسابقه، شما **بایستی** برای کسب مجوزهای لازم با موسسه یونیدرو از [اینجا](https://unidro.ir/%D8%AA%D9%85%D8%A7%D8%B3-%D8%A8%D8%A7-%D9%85%D8%A7/) مکاتبه کنید.
+ یک ساعت پس از اتمام مسابقه، وبینار آموزشی برگزار خواهد شد که ابتدا آمار مسابقه را بررسی میکنیم و در ادامه راه حل سوالات را خواهیم دید. برای شرکت در وبینار، به صورت کاربر *مهمان* از طریق [https://vc.sharif.edu/ch/quera](https://vc.sharif.edu/ch/quera) اقدام به ورود کنید.
+ بعد از برگزاری وبینار آموزشی، یک نظرسنجی در مورد مسابقه برای **شما** ارسال میگردد. لطفا با پُر کردن این نظرسنجی به ما در بهبود کیفیت مسابقات آینده تحلیل داده کمک کنید.
به شما پیشنهاد میشود قبل از شروع به کُد زدن و حل این مسابقه، یک مرتبه همه سوالات آن را مطالعه کنید. سپس، به این صفحه برگردید و موارد لیستشده را دوباره مطالعه کنید تا تمامی ابعاد مسابقه برای شما روشن گردد.
مقدمه
**فرض کنید** که [کاپیتان شپرد](https://en.wikipedia.org/wiki/Commander_Shepard)، فرمانده [سفینه فضایی نرماندی](https://en.wikipedia.org/wiki/Normandy_%28Mass_Effect%29)، **شما** را به عنوان **دانشمند داده** به خدمه سفینه اضافه کردهاست تا بهاو در انجام ماموریتهای اکتشافی در منظومه [هلیوس](https://masseffect.fandom.com/wiki/Heleus_Cluster) کمک کنید.
![سفینه فضایی نرماندی](https://bayanbox.ir/view/4475939435108208580/Normandy.jpg)
در یکی از ماموریتهای اکتشافی، پیام زیر به سفینه مخابره میشود:
> طبق اطلاعات بدست آمده توسط کاوشگران، معادن متعددی در سیاره ایوس وجود دارند. با توجه به نزدیک بودن سفینه به این سیاره، اقدام به بررسی تصاویر حفاریهای آن معادن کرده و نتایج را اعلام کنید. مراحل مختلف انجام این ماموریت به همراه توضیحات مربوطه، به شما ارسال میگردد.
برای آشنایی بیشتر با مفهوم حفاری اکتشافی، [این ویدیو](https://aparat.com/v/6cpmP) را تماشا کنید.
# زیرساخت و نحوه دریافت دادگان
این مسابقه دارای ۳ سوال میباشد و شما میتوانید دادگان این مسابقه (یکسان برای تمامی سوالها) را از **یکی** از لینکهای زیر دانلود کنید:
+ [لینک گوگل درایو ۱](https://drive.google.com/file/d/1fSzUMCJHx3JHwrDpY_Qz6KI1zIUv3BnC)
+ [لینک گوگل درایو ۲](https://drive.google.com/file/d/19p3qtGNlc_p12bi3wnbXtELUAR7CE6p8)
+ [لینک گوگل درایو ۳](https://drive.google.com/file/d/1ERHzuZiE7--FSFJqp181b9sApnOrQTXV)
+ [لینک دراپباکس](https://www.dropbox.com/s/w1ekxxhss6z0u0i)
+ [لینک کوئرا](http://185.231.59.231/data.zip)
پیش از دانلود این دادگان، بایستی که محیط برنامهنویسی لازم برای محاسبات را آماده کنید.
در صورتی که میخواهید با استفاده از زبان برنامهنویسی پایتون و کتابخانههای موجود در آن، در این مسابقه شرکت کنید. میتوانید که از سامانه گوگل کُلَب ([اینجا](https://colab.research.google.com)) استفاده کنید.
بدین صورت نیازی نیست که شما دادگان این مسابقه (حدود ۱.۵ گیگابایت داده) را روی کامپیوتر خود دانلود کنید. همچنین گوگل کُلَب این امکان را به شما میدهد که از قابلیتهای `GPU` و `TPU` آن به رایگان استفاده کرده و سرعت محاسبات خود را به طور قابل ملاحظهای افزایش دهید. **پیشنهاد** میشود که ابتدا کُد خود را در حالت `CPU` توسعه دهید و **فقط** هنگامی که می خواهید شروع به آموزش دادن مُدل خود کنید، قابلیت `GPU` یا `TPU` را فعال کنید، بدین صورت به صورت بهینه از منابع استفاده میشود.
اگر اولین باری است که با گوگل کُلَب آشنا میشوید. پیشنهاد میشود راهنمای فارسی کار با آن را از [اینجا](https://virgool.io/@baran.science/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A8%D8%A7-google-colab-%DA%A9%D8%A7%D8%B1-%DA%A9%D9%86%DB%8C%D9%85-mihfp5n8mdta) به دقت مطالعه کنید. توجه داشته باشید که برای استفاده از گوگل کُلَب، شما نیازمند به داشتن ایمیل `gmail` میباشید و قابلیتهای ارائه شده در نسخه رایگان آن، برای انجام این مسابقه کافی است. همچنین نیازی به استفاده از فیلترشکن برای دسترسی به آن فعلا نیست!
در صورتی که از لینک **گوگل درایو** برای دانلود دادگان در گوگل کُلب استفاده میکنید، دستور `gdown` میتواند به شما کمک زیادی بکند. برای مطالعه بیشتر، [اینجا](https://github.com/wkentaro/gdown) را ببینید.
همچنین برای دانلود دادگان از لینک **دراپباکس** و یا لینک **کوئرا** در گوگل کُلب میتوانید از دستور `wget` استفاده کنید. برای مطالعه بیشتر، [اینجا](https://www.pair.com/support/kb/paircloud-downloading-files-with-wget/) را ببینید.
توجه داشته باشید که داخل گوگل کُلب، باید قبل از اجرای دستور `gdown` یا `wget`، علامت `!` قرار دهید. به مثالهای زیر نگاه کنید.
```
! wget <URL>
```
یا
```
! gdown --id <GID>
```
برای استفاده از دستور `gdown` و تشخیص مقدار `<GID>`، ابتدا یک لینک گوگل درایو، مانند آدرس https://drive.google.com/file/d/1fSzUMCJHx3JHwrDpY_Qz6KI1zIUv3BnC را باز میکنید. سپس مقدار بعد از `d/` تا مقدار قبل از `/` بعدی را به عنوان `<GID>` آن انتخاب کرده (به مثال زیر نگاه کنید):
```
! gdown --id 1fSzUMCJHx3JHwrDpY_Qz6KI1zIUv3BnC
```
همچنین در صورتی که نمی خواهید از گوگل کُلب استفاده کنید و میخواهید محاسبات را در کامپیوتر شخصی خود یا زیرساخت دیگری انجام دهید، میتوانید دادگان را دانلود و از حالت فشرده خارج کنید.
توجه داشته باشید که محدودیتی در زبان برنامهنویسی مورد استفاده برای این مسابقه وجود **ندارد**.
# توضیح دادگان
حفاریهای اکتشافی به چاههایی گفته میشود که برای بررسیهای بیشتر در زمین حفر میشوند. این حفاریها در اندازههای مشخصی انجام شده و مغزههای حاصل از حفاری (گمانه) در جعبههای مشخصی (جعبهمغزه) برای تحلیلهای بعدی قرار میگیرند.
برای مطالعه بیشتر در مورد مفهوم گمانه، ویکیپدیای آن را از [اینجا](https://en.wikipedia.org/wiki/Borehole) مطالعه کنید. همچنین در [این ویدیو](https://aparat.com/v/mlT8S)، یک نمونه واقعی از حفاری اکتشافی و نحوه بدست آمدن گمانه نشان داده شدهاست.
<details class="yellow">
<summary>
**توجه**
</summary>
**حتما** لینکهای مقالات یا ویدیوهایی که در صورت سوالات، برای شما قرار داده شدهاست را به دقت مطالعه و مشاهده کنید. بدین صورت، ابعاد مختلف مسئله برای شما روشن میگردد.
</details>
طول جعبه مغزهها ۱.۱ متر است و هر جعبه دارای تعداد مشخصی ردیف است. بعد از اینکه مغزهها داخل جعبه قرار گرفت، از جعبه مغزهها تصویربرداری شده و از این تصاویر به عنوان شناسنامه معدن یاد میشود (علت این امر طول عمر بالای معدن و سختی نگهداری از جعبه مغزهها میباشد. در نتیجه، تصویربرداری و رجوع به تصاویر سادهتر و کاربردیتر خواهدبود).
![یک نمونه تصویر جعبه مغزه](https://bayanbox.ir/view/2943411491172718264/box-intro.jpg)
هر جعبه دارای اطلاعات مختلفی است که توضیحات بخشهای مورد نیاز آن، در جدول زیر آورده شدهاست.
| نام | توضیح |
|:------------------:|:------------------:|
|Run|حفاریها به صورت مرحلهای انجام میپذیرد و در هر مرحله مقداری از مغزه بعد از حفاری استخراج شده و در ردیفهای جعبه مغزه قرار میگیرد. مغزههای هر `Run` به وسیله یک چوب که به صورت عمودی قرار داده شدهاست از `Run` بعدی در ردیفها جدا میگردد. |
|From|عمق شروع حفاری هر `Run` نسبت به سطح زمین که به متر گزارش شدهاست. توجه داشته باشید که سطح زمین دارای عمق صفر میباشد|
|To|عمق انتهایی هر `Run` حفاری که به متر گزارش شدهاست.|
توجه داشته باشید که حفاری هر گمانه در چند `Run` صورت میگیرد. فرض کنید که قرار است تا عمق ۲۰۰ متری حفاری صورت بپذیرد، در هر `Run` از حفاری، متراژ مشخصی حفر میشود، سپس نتایج حفاری، در اولین ردیف خالی (از بالا به پایین) موجود در جعبه از چپ به راست قرار میگیرند. اگر که نتایج یک `Run` در یک ردیف جا نشد، ادامه آن، در ردیف بعدی (پایین) و از چپ به راست قرار داده میشود. انتهای مغزههای قرار داده شده برای یک `Run` نیز با استفاده از یک چوب عمودی مشخص میشود. نتایج حفاری `Run` بعدی در ادامه همان ردیف و بعد از آن چوب عمودی میآید (به منظور سادهسازی این مسابقه، تمامی چوبهای، تمامی عکسها در تمامی پوشهها با رنگ **بنفش** رنگ آمیزی شدهاند).
<details class="yellow">
<summary>
**توجه**
</summary>
میزان طول حفاری شده در هر `Run` میتواند با یکدیگر متفاوت باشد.
</details>
بعد از دریافت دادگان و `unzip` کردن آن، شما پوشههای زیر را خواهید داشت:
| نام پوشه | توضیح |
|:------------------:|:------------------:|
|train|پوشه حاوی عکس دادگان آموزش |
|test-rqd|پوشه حاوی عکس دادگان آزمایش سوال **سنجش کیفیت** |
هر عکس، با ساختار "شمارهجعبه-شناسهگمانه-شناسهمعدن" نامگذاری شدهاست.
به عنوان مثال عکس `M3-BH130-1.jpg` متعلق به معدن `M3`، گمانه `BH130` و جعبه اول آن است.
# صورت مسئله
در ابتدای کار، شما میخواهید با بررسی اولیه به اکتشاف **فقط** در مجموعه دادگان آموزش (پوشه `train`) بپردازید و به سوالات زیر پاسخ بدهید (مثال خروجی هر سوال، در زیر آن آورده شدهاست).
1. تعداد عکسها چند است؟
```
100
```
2. تعداد گمانهها چند است؟
```
50
```
3. طول بزرگترین `Run` موجود در فایل `from-to-rqd.xlsx`چند است؟ (فقط قسمت عدد صحیح)
```
34
```
4. کدام گمانه موجود در فایل `from-to-rqd.xlsx`، دارای بیشترین عمق (`To`) میباشد؟ (جواب خود را با ساختار "شناسهگمانه-شناسهمعدن" همانند نمونه زیر، قرار دهید)
```
M3-BH130
```
اگر که فایل اکسل `from-to-rqd.xlsx`، به تنهایی برای شما گُنگ است. برای توضیحات بیشتر در مورد این فایل، مرحله بعدی (**سنجش کیفیت**) را نیز مطالعه کنید.
این مرحله در مجموع، شامل ۴ سوال (هر سوال، ۲۵ امتیاز) میباشد. در صورتی که به تمامی سوالات پاسخ صحیح بدهید، بایستی ۱۰۰ امتیاز از این مرحله کسب کنید.
# ارسال پاسخ
برای ارسال پاسخ ، جواب هر سوال را مشابه مثال، در یک سطر از فایل text بنویسید. در نهایت یک فایل text چهار خطی با نام **output.txt** را برای ما بارگذاری کنید (جواب سوال اول در خط اول، سوال دوم در خط دوم، سوال سوم در خط سوم و سوال چهارم در خط چهارم).
**_در صورتی که جواب سوالی را نمیدانید در سطر مربوطه ۱- وارد کنید._**
## نمونه خروجی
```
100
50
34
M3-BH130
```
<details class="green">
<summary>
*توضیحات*
</summary>
در خط *i* ام جواب سوال *i* ام نوشته شده است.
</details>
<details class="yellow">
<summary>
**هشدار**
</summary>
اگر نام فایل شما و ساختار محتویات آن، همانند آنچه در صورت سوال ذکر شدهاست، **نباشد**. سامانه داوری به شما **صفر** امتیاز میدهد.
</details>
شغل جدید
در ادامه آشنایی با مجموعه دادگان، هر عکس جعبه دارای قطعات سنگ بزرگتر از ۱۰ سانتیمتر (`+10cm rock`) و قطعات چوب (`wood`) میباشد.
به عنوان نمونه در شکل زیر، فقط یک مثال از هر نوع شیء برچسبگذاری شده با استفاده از مستطیلهای سفیدرنگ، به شما نشان داده شدهاست.
![برچسبگذاری](https://bayanbox.ir/view/7849503664276063246/box-annotations.jpg)
همچنین در شکل زیر، مشخصات توضیح دادهشده برای یک شیء شناسایی شده، نشان داده شدهاست:
![ابعاد یک شیء](https://bayanbox.ir/view/1876532862312682262/object-dims.jpg)
این اشیاء برای عکسهای موجود در پوشه `train`، برای شما در فایل `label.xlsx` با مشخصات زیر، برچسبگذاری شدهاند:
|نام ستون|توضیح|
|:------:|:---:|
|image_name|شناسه یک عکس (جعبه)|
|label_name|نام شیء تشخیص داده شده|
|xmin|مختصات `x` گوشه سمت چپ-بالا مستطیل شیء|
|ymin|مختصات `y` گوشه سمت چپ-بالا مستطیل شیء|
|width|طول مستطیل شیء (در محور `x`)|
|height|ارتفاع مستطیل شیء (در محور `y`)|
|image_width|عرض عکس به پیکسل|
|image_height|ارتقاع عکس به پیکسل|
طبق توضیحات داده شده در سوال قبل، هر `Run` توسط چوبهایی که به صورت عمودی در جعبه مغزه قرار گرفتهاند، جدا میشود. یک `Run` می تواند در یک جعبه تمام نشود و ادامه آن در جعبه بعدی قرار بگیرد. برای سادهسازی این سوال، **فرض میکنیم** که `Run` ابتدایی و انتهایی هر جعبه، در همان جعبه شروع و به پایان میرسد، بدین شکل، جعبهها از یکدیگر در محاسبه `RQD` برای هر `Run` مستقل میشوند.
برای درک بهتر، میتوانید دوباره به عکس جعبههای توضیح داده شده در ابتدای این صفحه برگردید.
<details class="yellow">
<summary>
**توجه**
</summary>
+ برای راحتی کار شما، مقادیر `image_width` و `image_height` در فایل `label.xlsx` آورده شدهاند. این مقادیر برابر با طول و ارتفاع عکسها به پیکسل هستند که خود شما نیز میتوانستید آنها را محاسبه کنید.
+ باتوجه به فضای محیط، در بعضی از تصاویر، تعداد `Run`های درج شده بر روی جعبه، با تعداد چوبهای موجود در عکس همخوانی ندارند (علت این امر، افتادن یا از بین رفتن چوبها است). لذا در این سوال، معیار اصلی برای جداسازی `Run`ها، وجود چوب میباشد و نه اطلاعات ثبت شده بر روی جعبه آن.
</details>
حال کاپیتان از **شما** میخواهد اقدام به محاسبه شاخص کیفی سنگهای استخراج شده معادن بکنید.
![کاپیتان](https://bayanbox.ir/view/2654708457503392624/Captain.jpg)
*شاخص کیفی سنگ* ([`Rock Quality Designation`](https://en.wikipedia.org/wiki/Core_recovery_parameters)) که به اختصار `RQD` نامگذاری میشود، معیاری تقریبی برای تعیین تعداد شکستگیهای درون توده سنگ محسوب میشود. این "معیار درصدی" به صورت زیر برای هر `Run` محاسبه میگردد:
$$ RQD = \frac{\sum l_{10cm}}{l_t} \times 100 \%$$
که $l_{10cm}$ طول یک قطعه سنگ که حداقل ۱۰ سانتیمتر باشد و $l_{t}$ نیز برابر با طول `Run` حفاری مربوطه است.
به عنوان مثال، در شکل زیر برای `Run` اول این جعبه، تنها دو سنگ بزرگتر از ۱۰ سانتیمتر وجود دارد که در شکل مشخص شدهاست (سطر اول مغزهها)، همچنین چوب مشخص کننده پایان `Run` نیز، نشان داده شدهاست. **مقدار** `RQD` این `Run`، عدد ۸ محاسبه شدهاست.
![نمونه محاسبه rqd](https://bayanbox.ir/view/4976324365534402951/rqd-example.png)
<details class="blue">
<summary>
**توضیحات بیشتر**
</summary>
بهعنوان مثال در شکل بالا، `Run` شماره یک از ردیف اول جعبه (سمت چپ) شروع میشود و تا اولین چوب همان ردیف ادامه پیدا میکند. باتوجه به این که طول این `Run` عدد ۲.۵ متر است و مجموع طول سنگهای برچسبگذاری شده نیز ۰.۲ متر میباشد. مقدار `RQD` آن طبق محاسبات زیر، ۸٪ است:
$$RQD = 100 \times \frac{0.2}{2.5} = 8\%$$
</details>
طبق فصل ۸ کتاب [اکتشافات معدنی](https://www.elsevier.com/books/mineral-exploration/haldar/978-0-12-814022-2)، **گروه** `RQD` برای یک `Run`، طبق جدول زیر محاسبه میشود:
|بازه `RQD` به درصد|گروه|توضیحات|
|:--------------:|:--:|:-----:|
|[0,25]|1|سنگ کاملا هوازده (خرد شده)|
|[25,50)|2|سنگ هوازده|
|[50,75)|3|سنگی با هوازدگی متوسط|
|[75,90)|4|سنگ سخت|
|[90,100)|5|سنگ سالم (بدون هیچ هوازدگی)|
به عنوان مثال، برای `Run` توضیح دادهشده در بالا که مقدار `RQD` آن برابر با ۸ بود، گروه `RQD` برابر با ۱ میشود.
<details class="yellow">
<summary>
**یادآوری**
</summary>
+ طول (محور `x`) جعبهمغزهها در تمامی عکسها، ۱.۱ متر میباشد.
+ همانگونه که در مرحله قبل گفته شد، تمامی چوبها با رنگ **بنفش** به منظور سادهسازی این مسابقه رنگآمیزی شدهاند و شما میتوانید فرض کنید که اگر یک عکس جدید برای شناسایی `RQD` به شما داده شود، حتما چوبهای آن توسط شخص به رنگ **بنفش** باید در آمده باشند.
</details>
برای توضیحات بیشتر در مورد این سوال، میتوانید صفحه بعدی را مطالعه کنید.
# دادگان
برای این سوال، دادگان آموزش در پوشه `train` و دادگان آزمایش در پوشه `test-rqd` قرار دارند. شما به هردوی این پوشهها در دادگان مرحله **شغل جدید** دسترسی پیدا کردید.
شما **بایستی** که مقدار طول ($l_t$) یک `Run` دادگان `test-rqd` را از فایل `from-to-rqd.xlsx` بخوانید و سپس گروه `RQD` آن `Run` را محاسبه کنید. این فایل اکسل، دارای مشخصات زیر میباشد:
|نام ستون|توضیح|
|:------:|:---:|
|RunId|شناسه یک `Run`|
|From|مقدار `From` آن `Run` به متر|
|To|مقدار `To` آن `Run` به متر|
یک `RunId` بر اساس ساختار "شماره`Run`-شمارهعکس-نامگمانه-ناممعدن" تعریف میشود. توجه داشته باشید که "شماره عکس" برای هر گمانه از عدد ۱ شروع میشود و همچنین "شماره `Run`" برای هر عکس از عدد ۱ شروع میشود.
به عنوان مثال یک `RunId` میتواند `M3-BH130-1-3` باشد که نشاندهنده شناسه معدن `M3`، شناسه گمانه `BH130`، عکس اول آن گمانه و `Run` شماره ۳ آن عکس میباشد.
# ارزیابی
برای ارزیابی نتیجه کار شما، از معیار `accuracy` در اعلام **گروه** `RQD` هر `Run` استفاده میشود.
$$accuracy = \frac{Number\:of\:correctly\:identified\:RQD\:groups}{Number\:of\:RunIds}$$
نتیجه این معیار بر روی دادگان آزمایش در عدد ۱۰۰۰ ضرب شده و به عنوان امتیاز این مرحله برای شما در نظر گرفته میشود (بالاترین امتیاز ممکن از این مرحله ۱۰۰۰ و کمترین امتیاز ممکن صفر است).
داوری این سوال قبل از پایان مسابقه، تنها بر اساس ۳۰ درصد از دادگان آزمایش (`test`) خواهد بود. پس از اتمام مسابقه، برای بهروزرسانی نهایی جدول امتیازات از ۱۰۰ درصد دادگان آزمایش استفاده خواهد شد؛ این کار برای جلوگیری از بیشبرازش (`overfit`) روی دادگان آزمایش انجام میشود.
# ارسال پاسخ
پیشبینیهای مدل خود بر روی دادگان آزمایش ( عکس های پوشه `test-rqd`) را در فایلی با نام `output.csv` قرار دهید. این فایل باید دارای دو ستون با نامهای `RunId` و `Prediction` به ترتیب باشد. در هر ردیف، شناسه `Run` در `RunId` و پیشبینی شما از **گروه** `RQD` مربوط به آن `Run` را در ستون `Prediction` قرار دهید (دقت کنید که فایل `CSV` باید حتما دارای `header` باشد). بعد از آمادهسازی فایل `output.csv`، آن را برای ما بارگذاری کنید.
## نمونه خروجی فایل `output.csv` (فقط سه خط اول)
```
RunId,Prediction
M3-BH135-1-1,3
M3-BH135-1-2,1
M3-BH135-1-3,5
```
<details class="blue">
<summary>
**راهنمایی**
</summary>
در اینجا، یک سری راهنماییهایی که **شاید** به شما کمک کنند، آورده میشود:
+ احتمالا میتوانید از الگوریتمهای `object detection` یا `object segmentation` برای شناسایی اشیاء داخل یک عکس استفاده کنید. یک نمونه از نتیجه یکی از این مُدلها در زیر آورده شدهاست (توجه داشته باشید که این مُدل نیز مانند اکثرا مُدلها ۱۰۰٪ دقیق عمل نمیکند و خطا خواهد داشت):
![نمونه خروجی](https://bayanbox.ir/view/2944288073259527413/rqd-final-output.png)
+ احتمالا قبل از شناسایی اشیاء، یک سری پیشپردازشها روی تصاویر مانند سیاه/سفید کردن آنها، بتواند به شما کمک کند.
+ شاید با استفاده از روشهایی بتوانید تعداد عکسها را افزایش دهید.
+ با استفاده از فرمول توضیح داده شده برای محاسبه `RQD`، اطلاعات داده شده در مورد طول هر `Run` و همچنین اشیاء شناسایی شده داخل عکسها، میتوانید گروه `RQD` یک `Run` را محاسبه کنید.
</details>
<details class="yellow">
<summary>
**هشدار**
</summary>
+ افرادی که به صورت دستی (عدم استفاده از برنامهنویسی و مُدل)، اقدام به تعیین گروه `RQD` بکنند، از این مرحله امتیازی کسب نمی کنند.
+ برای حل این سوال، حتما بایستی اقدام به شناسایی اشیاء سنگ و چوب داخل هر عکس کرده و از فرمول توضیح داده شده برای محاسبه `RQD` استفاده کنید.
+ اگر نام فایل شما و ساختار محتویات آن، همانند آنچه در صورت سوال ذکر شده است، **نباشد**. سامانه داوری به شما **صفر** امتیاز میدهد.
</details>
سنجش کیفیت
در زیر، اطلاعات تکمیلی مرتبط با مفاهیم معدنی و نحوه برچسبگذاری سنگها در جعبه مغزهها آورده شدهاست. باتوجه به این توضیحات، **شما** میتوانید که مُدل آموزش داده خود را بهبود ببخشید:
**شکستگی اولیه**:
به شکستگیهایی گفته میشوند که از ابتدا در سنگ وجود داشتهاند. این شکستگیها مبنای بدست آوردن `RQD` و قطعه سنگهای بالاتر از ۱۰ سانتیمتر هستند و معمولا به صورت زاویهدار و در جهتهای مختلف هستند. این شکستگیها، منجر به خردشدن سنگها میشوند.
**شکستگی ثانویه**:
شکستگیهای ثانویه در هنگام خارج کردن گمانه از چاه و قرار دادن آن در جعبه مغزه اتفاق میافتند. این شکستگیها معمولا قائم (عمودی) هستند و اُریب (کج) یا افقی نیستند. شکستگیهای ثانویه، در اغلب مواقع باعث خرد شدن بیش از حد سنگ و پودر شدن آن **نمیشوند**.
با توجه به اینکه، شکستگیهای اولیه حاصل تنشهای موجود در زمین هستند، لذا خردشدگی بیشتری نسبت به شکستگیهای ثانویه در سنگها ایجاد میکنند.
**ریکاوری:**
در هنگام حفاری، معمولا تمام گمانه حفاری شده در یک `Run` به صورت کامل بیرون نمیآید. در اینجا مفهومی به نام `Core Recovery` مطرح میشود که نسبت طول گمانه خارج شده به طول حفاری شدهاست. به همین علت می توان `Run` مشخصی داشت که طول حفاری شده آن بر فرض ۳متر باشد ولی میزان طولی که در جعبه قرار گرفته است، ۱متر باشد.
دقت داشته باشید که در محاسبه `RQD`، طول حفاری ( دادگان موجود در فایل `from-to-rqd.xlsx`) مدنظر هستند. بهعنوان مثال، تصویر `M3-BH300-8` را که در زیر آورده شدهاست، در نظر بگیرید:
![جعبه مغزه](https://bayanbox.ir/view/6941365303708208547/extra-explanations.jpg)
باتوجه به اینکه، دو چوب بنفش در تصویر بالا مشاهده میشوند. در نتیجه، ما سه `Run` خواهیم داشت.
`Run` اول، از ابتدای جعبه تا چوب اول است. در ردیف اول این `Run`، سه قطعه سنگ مشاهده میشوند. باتوجه به این که شکستگی بین قطعه سنگ اول و دوم قائم است، میتوان گفت که این شکستگی موثر نیست (**شکستگی ثانویه است**). لذا لازم نیست که دو برچسب مجزا زده شوند و یک برچسب کُلی برای این دو سنگ کافی است.
قطعه آخر در ردیف اول، زیر ۱۰ سانتیمتر است و در نتیجه در محاسبات لحاظ نمیگردد. در ردیف دوم تا قبل از چوب، سه قطعه سنگ وجود دارد که صرفا قطعه اول بالاتر از ۱۰ سانتیمتر است. در ردیف اول، طول قطعه سنگ بزرگتر از ۱۰ سانتیمتر، تقریبا ۹۵ سانتیمتر و در ردیف دوم، ۲۸ سانتیمتر است. طول این `Run` هم با توجه به شکل، ۳۲.۹۵ - ۳۴.۴۵ است که برابر با ۱.۵متر میشود.
در نتیجه مقدار `RQD` برای `Run` اول، برابر است با ۸۲٪، که آن را در گروه ۴ قرار میدهد.
توضیحات تکمیلی
در این مرحله، کاپیتان انتظار دارد که گزارش مدیریتی در قالب `PDF` (حداکثر ۵ صفحه که میتواند شامل متن، نمودار و عکس باشد) از کار خود به ایشان بدهید و در آن خلاصهای از روش حل سوال **سنجش کیفیت** را توضیح دهید. توجه داشته باشید که در متن گزارش، نام کاربری خود را نیز ذکر کنید!
![گزارش](https://bayanbox.ir/view/6675078963535637770/reports.png)
همچنین در آخر این گزارش، باید به سوالات زیر با تشریح راهحل آنها، پاسخ بدهید.
1. مختصات گمانههای موجود در پوشه `test-rqd` در جدول زیر آمدهاست. با استفاده از مصورسازی مناسب این سه گمانه را ترسیم و `RQD` مربوط به هر `Run` را در آن نمایش دهید.
| شناسه گمانه|مختصات `x`|مختصات `y`|مختصات `z`|
|:----------:|:---------:|:-------:|:--------:|
|M3-BH3299| 20 | 10 | 0 |
|M3-BH3300| 140 | 60 | 0 |
|M3-BH3301 | 10 | 95 | 0|
همچنین با استفاده از تحلیل مناسب بیان کنید که به صورت تقریبی در کدام عمق، **سنگ سالم (بدون هیچ هوازدگی)**، مشاهده میشود؟
<details class="blue">
<summary>
**راهنمایی**
</summary>
به عنوان مثال، یک نمونه بصریسازی **دوبعدی** (محورهای `x` و `z`) از گمانهها را در تصویر زیر مشاهده میکنید. باتوجه به این تصویر، میتوان بیان نمود که در عمق ۳۵ متری، **سنگ سالم (بدون هیچ هوازدگی)** در هر سه گمانه مشاهده میشوند.
![نمونه خروجی](https://bayanbox.ir/view/5514524096602661574/report.jpg)
برای حل این سوال، **شما** میتوانید بصریسازی دو یا سه بعدی انجام دهید.
</details>
2. آیا رابطه معنی داری بین گروه `RQD` و میانگین عمق هر `Run` ($(From + To)/2$) در عکسهای پوشه `test-rqd` وجود دارد؟
# ارزیابی
برای این مرحله، فقط گزارشهای ۲۰ نفر برتر بر اساس مجموع امتیازات نهایی سوالهای قبل از این سوال، بعد از پایان زمان مسابقه مورد داوری قرار خواهند گرفت. در صورتی که شخصی از آن ۲۰ نفر، گزارش خود را ارسال نکرده و یا با تخلف وارد ۲۰ نفر شده باشد، گزارش نفر بعدی طبق جدول امتیازات مورد ارزیابی قرار خواهدگرفت. متاسفانه سایر افراد از این مرحله، امتیازی دریافت نخواهند کرد.
هیئت داوران اقدام به بررسی گزارشها میکنند. باتوجه به این که هر گزارش دارای ۳ بخش (توضیح سوال سنجش کیفیت و سوالهای ۱ و ۲ این صفحه) میباشد، هر بخش، جداگانه بر اساس ۴ ملاک زیر نمرهدهی خواهدشد:
1. کیفیت نگارش گزارش
2. استفاده مناسب از مصورسازی داده (`Data visualization`)
3. خلاقیت و استفاده از ایدههای جدید برای استخراج و ارائه حقایق موجود در داده
4. قدرت استنتاج و داستانسرایی داده
برای هر یک از این ملاکها در یک گزارش، نمره **صفر** (خیلی ضعیف)، نمره ۱ (ضعیف)، ۲ (متوسط)، ۳ (خوب) و یا ۴ (خیلی خوب) میتواند در نظر گرفتهشود. در نتیجه، یک گزارش از سمت یک داور، حداکثر ۴۸ و حداقل ۰ نمره میتواند دریافت کند.
نمره نهایی یک گزارش، بر اساس میانگین نمرات هیئت داوران محاسبه خواهد شد و در آخر سر گزارشها بر اساس این نمرات از بالاترین نمره تا پایینترین نمره رتبهبندی می شوند. نفر اول از این مرحله ۴۰۰ امتیاز، نفر دوم ۳۸۰ امتیاز، نفر سوم ۳۶۰ امتیاز و ... تا نفر آخر که، آن شخص تنها ۲۰ امتیاز کسب می کند.
<details class="yellow">
<summary>
**هشدار**
</summary>
توجه داشتهباشید که در راهحل خود برای این سوال، **حتما** بایستی از مُدلهایی که در این مسابقه، ساختهاید. بهره ببرید. در غیر این صورت، از این مرحله، امتیازی دریافت نخواهید کرد!
</details>
گزارش نویسی
به منظور جلوگیری از هر گونه تقلب و شبهه احتمالی که منجر به ضایع شدن حق شما شود، شما بایستی که فایل کد برنامهنویسی (مثلا برای پایتون فایل `.py` یا برای زبان `R` هم فایل `.R`) **فقط** سوال **سنجش کیفیت** را در قالب یک فایل زیپ در اینجا بارگذاری نمایید. در صورتی که پس از پایان زمان مسابقه، این فایل توسط شما بارگذاری نشده باشد، شما از جدول مسابقات **حذف** خواهید شد.
توجه داشته باشید که اگر از `jupter notebook` استفاده می کنید بایستی همانند توضیح بالا، خروجی مورد نظر را دریافت کنید. به عنوان مثال، شما بایستی که از قسمت `file` و زیرقسمت `Download` خروجی `.py` را دریافت و برای ارسال در نظر بگیرید. ارسال فایلهای `jupyter` همانند `.ipynb` مورد قبول واقع نخواهد شد.
برای هر سوال که جواب دادید، یک پوشه به نام آن سوال (مانند `Step1`) ایجاد و تمامی کدهای خود را در آن قرار دهید. در نهایت، همه پوشهها را در تحت یک پوشه نهایی زیپ کرده و برای ما **فقط یک فایل زیپ** ارسال کنید.
# توجه: از ارسال دادگان بپرهیزید!
با تشکر فراوان
تیم مسابقات داده کوئرا