در ادامه آشنایی با مجموعه دادگان، هر عکس جعبه دارای قطعات سنگ بزرگتر از ۱۰ سانتیمتر (`+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>