## آموزش اتصال به سرور با SSH
\**توضیح کوتاه:** در این راهنما روش اتصال از ترمینال با `ssh` با نام کاربری/پسورد، روش امنتر با کلید (SSH key) برای ورود بدون پسورد، و روش اتصال از داخل Visual Studio Code با افزونه *Remote - SSH* را بهصورت مرحلهبهمرحله آموزش دادهام. همهچیز را با مثال و فرمانها آوردهام؛ مقادیر `<USERNAME>`, `<IP_ADDRESS>`, `<PORT>` را با مقادیر واقعی جایگزین کنید.
---
## ۱) پیشنیازها
- دسترسی به یک دستگاه (Windows / macOS / Linux) با ترمینال (Windows: PowerShell یا Windows Terminal؛ یا Git Bash؛ یا WSL).
- یوزرنیم (`<USERNAME>`) و آدرس آیپی سرور (`<IP_ADDRESS>`) و در صورت غیرپیشفرض، پورت SSH (`<PORT>`؛ پیشفرض 22).
- (اختیاری اما پیشنهاد شده) نصب VS Code.
---
## ۲) اتصال از ترمینال با یوزرنیم و پسورد (روش ساده)
1. ترمینال را باز کنید.
2. فرمان زیر را اجرا کنید (پورت اگر 22 است نیاز به `-p` نیست):
3.
ssh <USERNAME>@<IP_ADDRESS>
# یا اگر پورت متفاوت است:
ssh -p <PORT> <USERNAME>@<IP_ADDRESS>
3. اولین بار ممکن است پیام «The authenticity of host ...» بیاید — `yes` تایپ کنید و Enter بزنید.
4. وقتی از شما **Password:** پرسیده شد، پسورد را وارد کنید (هنگام تایپ چیزی نمایش داده نمیشود؛ طبیعی است) و Enter بزنید.
5. اگر اطلاعات درست باشد، به shell سرور متصل میشوید.
\**نکته امنیتی:** هرگز پسورد را در فایلهای متنی یا پیست عمومی قرار ندهید.
---
## ۳) اگر خطا دریافت کردید — چکهای سریع
- خطا: `Permission denied` → نامکاربری یا رمز اشتباه است.
- خطا: `Connection timed out` → آیپی یا پورت اشتباه است یا دیوارآتش سرور (firewall) یا شبکهتان دسترسی را بلاک کرده.
- خطا: `No route to host` → بررسی کنید آیپی و اتصال اینترنت.
- برای دیباگ بیشتر، از `ssh -v <USERNAME>@<IP_ADDRESS>` استفاده کنید تا لاگ جزئیات را ببینید.
---
---
## ۴) اتصال از VS Code با افزونه Remote - SSH
(روش پیشنهادی: با استفاده از SSH key وارد شوید؛ اما VS Code از وارد کردن پسورد هم پشتیبانی میکند و موقع اتصال از شما میپرسد)
### ۴.۱ نصب افزونه
1. VS Code را باز کنید.
2. به بخش Extensions (یا `Ctrl+Shift+X`) بروید.
3. جستجو کنید: `Remote - SSH` (توسعهدهنده: Microsoft) و نصب کنید.
### ۵.۲ افزودن یک Host (روش ساده — ویرایش فایل config)
1. از منوی Command Palette (`Ctrl+Shift+P` یا `F1`) دستور زیر را اجرا کنید:
Remote-SSH: Open SSH Configuration File...
2. اگر چند فایل نشان داده شد، معمولاً `~/.ssh/config` را انتخاب کنید.
3. یک ورودی جدید بهصورت زیر اضافه کنید (مثال):
Host my-server
HostName <IP_ADDRESS>
User <USERNAME>
Port 22 # اگر پورت فرق میکند مقدارش را تغییر دهید
4. فایل را ذخیره کنید.
### ۴.۳ اتصال
1. دوباره Command Palette را باز کنید و:
Remote-SSH: Connect to Host...
2. از لیست `my-server` (یا همان اسمی که گذاشتهاید) را انتخاب کنید.
3. اگر از کلید استفاده میکنید و passphrase گذاشتهاید، VS Code از شما passphrase را خواهد خواست. اگر از پسورد استفاده میکنید، پنجرهای باز میشود و از شما پسورد را میپرسد؛ وارد کنید.
4. پس از اتصال، پنجره جدیدی از VS Code باز میشود که در نوار پایین نوشته `SSH: my-server` — حالا شما روی سرور کار میکنید (میتوانید فایلها را باز، ویرایش و ترمینال را اجرا کنید).
### ۴.۴ باز کردن ترمینال داخل VS Code
- از منوی بالا: `Terminal` → `New Terminal` یا `Ctrl+``
- این ترمینال روی سرور باز میشود و میتوانید دستوراتی مثل `ls`, `htop`, `systemctl` و غیره اجرا کنید.
### ۴.۵ اگر اتصال ناموفق بود (تست و رفع مشکل)
- در VS Code: View → Output → انتخاب `Remote - SSH` از لیست کشویی برای دیدن لاگهای اتصال و خطاها.
- معمولترین مشکلات: نامکاربری/پسورد اشتباه، پورت بسته، فایل `~/.ssh/authorized_keys` مجوزهای ناصحیح، یا آدرس آیپی نادرست.
---
## 6) خلاصهٔ سریع — فقط کپی و جایگزین کن
# اتصال ساده با پسورد
ssh <USERNAME>@<IP_ADDRESS>
# یا با پورت غیرپیشفرض
ssh -p <PORT> <USERNAME>@<IP_ADDRESS>
# ایجاد SSH key (کلاینت)
ssh-keygen -t ed25519 -C "<USERNAME>@<HOST>"
# کپی کلید (اگر ssh-copy-id هست)
ssh-copy-id -i ~/.ssh/id_ed25519.pub -p <PORT> <USERNAME>@<IP_ADDRESS>
# یا دستی: در کلاینت
cat ~/.ssh/id_ed25519.pub
# خروجی را کپی کن و در سرور اضافه کن:
# در سرور:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "PASTE_PUBLIC_KEY_HERE" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# نمونه entry برای ~/.ssh/config برای استفاده با VS Code
Host my-server
HostName <IP_ADDRESS>
User <USERNAME>
Port 22
آموزش اتصال به سرور با SSH
| فایل اولیهی پروژه را میتوانید از این [لینک](https://drive.google.com/drive/folders/1H4DaaJjEEDJLMJAp-eZmrnKTxs5B4In9?usp=sharing) دانلود کنید.|
| :--: |
به مرحلهی نهایی رقابتهای **المپیک پردازش تصویر و بینایی کامپیوتر کوئرا** خوش آمدید!
جایی که پیکسلها معنا پیدا میکنند، مدلها تصمیم میگیرند و شما فرماندهی یک مأموریت علمی بزرگ هستید.
در این مرحله با یک **پروژهی چندبخشی** روبهرو میشوید؛ مأموریتی که هوش، دقت و خلاقیت شما را در **قطعهبندی، دستهبندی و تحلیل تصاویر پزشکی** به چالش میکشد. اکنون زمان آن رسیده است که دید ماشین را به نمایش بگذارید. به دنیایی خوش آمدید که در آن **هر تصویر، رازی پنهان دارد و هر مدل، کلیدی برای کشف آن است.**
شما آزادید تا در طول مسابقه **مدلهای خود را آموزش دهید، آزمایش کنید و بهبود ببخشید.**
همچنین استفاده از **مدلهای زبانی بزرگ (LLMs)** بهعنوان ابزار کمکی برای ایدهپردازی یا توسعهی کد **کاملاً مجاز** است.
توجه: شما باید **راهحل نهایی خود را برای داوران ارائه دهید**. ساختار پروژه علاوه بر صحت عملکرد و نتایج موفق، باید **قابل ارائه و تحلیل برای داوران** باشد.

------------------------------------------------------------------------
## مجموعه داده
در این مجموعهداده، تصاویر **X-ray** قرار دارند که شامل تصاویر بدون توده، تودههای خوشخیم و تودههای بدخیم هستند. بخشی از تصاویر هیچ تودهای ندارند. هدف، بررسی این تصاویر و انجام دو وظیفه اصلی بر روی مجموعهداده است:
1. **دستهبندی تصاویر:** تصاویر را به کلاسهایی که در ادامه معرفی خواهیم کرد، انتساب دهید..
2. **قطعهبندی تصاویر:** مشخص کردن ناحیه توده سرطانی به صورت **سفید** و سایر اجزا به صورت **سیاه**.
این مجموعه شامل تصاویر با **میانگین ابعاد ۵۰۰×۵۰۰ پیکسل** است. تمام تصاویر در قالب **PNG** ذخیره شده و برای هر تصویر، **تصویر مرجع (Ground Truth)** نیز در دسترس است.
تصاویر در سه دسته اصلی طبقهبندی شدهاند:
+ **عادی (Normal)**
+ **خوشخیم (Benign)**
+ **بدخیم (Malignant)**
برای **دادههای آموزش**، تمامی تصاویر همراه با تصاویر قطعهبندی شده در اختیار شما قرار گرفتهاند. **تصاویر تست** نیز در دسترس هستند، اما شما مسئول قطعهبندی و دستهبندی آنها خواهید بود.
### ساختار مجموعهداده
ساختار پوشههای این مجموعهداده بهگونهای طراحی شده است که در دو بخش **train** و **test** تقسیم شده. مجموعه آموزش شامل سه کلاس **benign**، **malignant** و **normal** است. درون هر کلاس دو پوشهی جداگانه به نامهای **images** و **masks** وجود دارد؛ پوشهی images شامل تصاویر اصلی سونوگرافی است و پوشهی masks شامل ماسکهای قطعهبندی شده متناظر با همان تصاویر میباشد. نام فایل ماسکها دقیقاً با نام تصویر اصلی یکسان است و تنها عبارت `_mask` به انتهای نام آن افزوده شده است (مثلاً تصویر `benign (1).png` دارای ماسک `benign (1)_mask.png` است). این ساختار باعث میشود که بتوانید بهراحتی به تصاویر و ماسکهای مربوط به هر کلاس در مجموعههای آموزشی دسترسی پیدا کنید و از آنها برای آموزش و ارزیابی مدلهای دستهبندی یا قطعهبندی استفاده نمایند.
ساختار فایلها به شرح زیر است:
```php
└── initial/
├── train/
│ ├── benign/
│ │ ├── images/
│ │ └── masks/
│ │
│ ├── malignant/
│ │ ├── images/
│ │ └── masks/
│ │
│ │ ├── normal/
│ │ ├── images/
│ │ └── masks/
│ │
│ └── train.csv
│
└── test/
├── images/
└── test.csv
```
<details class="yellow">
<summary>
\**توجه**
</summary>
در مجموعه آزمایش شما فقط به تصاویر دسترسی دارید. در ادامه باید مدلهایی آموزش دهید که تصاویر این مجموعهداده را دستهبندی کنید و سپس آنها را قطعهبندی کنید. در ادامه با شیوه ارائه نتایج آشنا خواهید شد.
</details>
------------------------------------------------------------------------
## دستهبندی با استفاده از مدلهای زبانی-تصویری
در مرحله اول، لازم است تصاویر را **دستهبندی** کنید. هدف این است که مشخص شود آیا هر تصویر شامل **توده سرطانی** است یا خیر. در صورتی که تصویر دارای توده باشد، باید نوع آن نیز مشخص شود: **خوشخیم (Benign)** یا **بدخیم (Malignant)**. هدف نهایی، توسعه یک سیستم دقیق و قابل اعتماد برای **دستهبندی تصاویر X-ray** است که توانایی تشخیص تودههای خوشخیم و بدخیم را داشته باشد و بتواند در کاربردهای بالینی یا تحقیقاتی مورد استفاده قرار گیرد.
در این مسابقه، ما انتظار داریم که شما **یک مدل زبانی-تصویری (Vision-Language Model)** یا به اختصار **VLM** طراحی و پیادهسازی کنید که بتواند اطلاعات تصویری و متنی مرتبط را برای دستهبندی تودهها به کار گیرد. استفاده از ویژگیها یا مکانیزمهای پیشرفته برای مقابله با نابرابری توزیع کلاسها و بهبود عملکرد مدل بسیار اهمیت دارد.
علاوه بر این، ضروری است که **فرآیند مدلسازی و روشهای مورد استفاده** در طراحی و آموزش مدل، **پس از پایان مسابقه** به صورت کامل ارائه شود. این شامل جزئیات پیشپردازش دادهها، معماری مدل، استراتژیهای مقابله با عدم تعادل دادهها، و روشهای اعتبارسنجی خواهد بود.
### معیار ارزیابی
برای ارزیابی مدل شما از معیار `F1 Score` استفاده میشود. برای نمرهگیری در این سوال مدل شما باید دارای `F1 Score` حداقل ۰.۷ باشد و در این حالت نمرهی نهایی بر اساس فرمول زیر محاسبه میگردد:
$$round(f1 score, 3) \times 100$$
اگر مدل شما به حدنصاب نرسد، نمرهی دریافتی **صفر** خواهد بود.
<details class="red">
<summary>
\**توجه**
</summary>
در طول مسابقه امتیازی که مشاهده میکنید، فقط نتیجهی ارزیابی مدل شما روی ۳۰ درصد از دادههای آزمون است. بعد از پایان زمان مسابقه، **امتیاز نهایی** شما روی ۷۰ درصد مابقی محاسبه میشود.
این کار به منظور جلوگیری از بیشبرازش (`overfitting`) و حفظ عمومیت مدل انجام میشود تا مطمئن شویم مدلهایی که دچار بیشبرازش شدهاند، در امتیازدهی نهایی، افت میکنند.
</details>
### ثبت پاسخ
پس از طی کردن فرآیند ساختن مدل متنی-زبانی، نوبت به ارائه نتایج تست میباشد. شما باید تشخص دهید که هر تصاویر به کدام کلاس تعلق دارد. نام تصاویر در فایل **submission.csv** قرار دارند. در این فایل باید دسته هر تصویر را مشخص کنید و به شکل `One-Hot` آن را تعیین کنید. برای مثال جدول زیر میتوانید بخشی از فایل پیشبینی شما باشد:
| **image** || **class_benign** || **class_malignant** || **class_normal** |
|:---------:||:---------:||:---------:||:---------:|
|image1.png||0||1||0|
|image2.png||1||0||0|
|image3.png||0||0||1|
------------------------------------------------------------------------
## قطعهبندی مبتنی بر یادگیری عمیق
در این مرحله، باید با استفاده از **شبکههای عصبی عمیق**، مدلی طراحی و آموزش دهید تا بتواند تصاویر را **قطعهبندی (Segmentation)** کند. هدف اصلی این مرحله، مشخص کردن دقیق نواحی توده در تصاویر X-ray است.
در صورتی که تصویر **هیچ تودهای نداشته باشد**، مدل باید **ماسکی کاملاً سیاه** تولید کند که هماندازه تصویر اصلی باشد. این ماسک نشاندهنده عدم وجود توده در تصویر است.
در مقابل، اگر تصویر شامل **توده خوشخیم (Benign)** یا **توده بدخیم (Malignant)** باشد، مدل باید **تمام مساحت مربوط به توده را سفید** کند و سایر نواحی تصویر را **سیاه** نگه دارد. بدین ترتیب، ماسک تولید شده به وضوح محدوده توده را از سایر بخشهای تصویر تفکیک میکند.

### معیار ارزیابی
برای ارزیابی این سوال از معیار **Intersection of Union** یا به اختصار **IoU** استفاده میشود. این معیار بین ماسک ساخته شده بوسیله مدل شما و ماسکهای واقعی بررسی خواهد شد. این معیار، نشان میدهد که مدل تا چه حد نواحی موردنظر را به درستی شناسایی کرده است و به طور گسترده در مسائل **قطعهبندی تصاویر پزشکی و بینایی ماشین** استفاده میشود. این معیار به شکل زیر محاسبه میشود:
\[
\text{IoU} = \frac{|\text{Prediction} \cap \text{Ground Truth}|}{|\text{Prediction} \cup \text{Ground Truth}|}
\]
معیار `IOU` یک معیار استاندارد برای سنجش دقت **قطعهبندی تصاویر** است. این معیار، نسبت **مساحت اشتراک** بین ماسک پیشبینی شده و ماسک واقعی به **مساحت اتحاد** آنها را اندازهگیری میکند. مقدار `IoU` بین ۰ تا ۱ قرار دارد:
+ **۰**: هیچ همپوشانی بین ماسک پیشبینی و واقعی وجود ندارد.
+ **۱**: همپوشانی کامل بین ماسکها وجود دارد.
برای ارزیابی مدل شما از معیار `IOU` استفاده میشود. برای نمرهگیری در این سوال مدل شما باید دارای `IOU` حداقل ۰.۶ باشد و در این حالت نمرهی نهایی بر اساس فرمول زیر محاسبه میگردد:
$$round(IOU, 3) \times 100$$
اگر مدل شما به حدنصاب نرسد، نمرهی دریافتی **صفر** خواهد بود.
### ثبت پاسخ
تمامی تصاویر موجود در پوشه `test/images` را قطعهبندی کنید و در پوشهای به نام `segmentation` قرار دهید. دقت کنید که نام تصاویر و ابعاد آنها باید دقیقا مشابه با نام آنها در مجموعه `test/images` باشد.
توجه داشته باشید که **تمامی تصاویر مجموعهداده تست** باید قطعهبندی شوند و خروجیها در همین پوشه ذخیره شوند. همچنین دقت کنید که اگر تصویر فاقد توده باشد، مدل شما باید یک تصویر تماما سیاه هماندازه با تصویر ورودی را در خروجی خود تحویل دهد.
------------------------------------------------------------------------
## ثبتنهایی
در نهایت پس از اتمام هر دو بخش مسابقه، در یک پوشه به نام `result` نتایج را قرار دهید و بصورت `zip` در کوئرا ارسال کنید. فایل پاسخ شما باید شامل دو مورد زیر باشد:
+ **فایل submission.csv**: طبق قالب تعریف شده، در این فایل باید نتایج دستهبندی شما قرار بگیرد.
+ **پوشه segmentation**: محتویات این پوشه، تصاویر قطعهبندی شده هستند. دقت کنید که تمام آزمایش را باید قطعهبندی کنید و در این پوشه قرار دهید.
ساختار پوشه نهایی به شکل زیر است:
```php
result/
├── submission.csv
├── notebook.ipynb
└── segmentation/
├── test_0001.png
├── test_0002.png
...
├── test_0156.png
```
| فایل اولیهی تمرین را میتوانید از [این لینک](/contest/assignments/91552/download_problem_initial_project/310516/) دانلود کنید. |
| :--: |
شهر ما در حال هوشمندتر شدن است و ما در مرکز این تحول، وظیفه تحلیل الگوهای پیچیده ترافیکی و رفتاری شهروندان را بر عهده داریم. هدف ما درک دقیق جریان حرکت در شهر است. اما سیستمهای فعلی ما با یک چالش اساسی روبرو هستند: آنها در درک تفاوت میان **سکون موقت** و **حضور دائمی** دچار مشکل هستند. برای الگوریتمهای ما، عابری که منتظر سبز شدن چراغ راهنمایی است، با یک مجسمه در کنار خیابان تفاوتی ندارد و پس از چند ثانیه به عنوان بخشی از پسزمینه نادیده گرفته میشود.
هدف این سوال، توسعه یک سیستم بینایی ماشین است که بتواند اشیاء متحرک در سکانسهای ویدیویی را با دقت بالا شناسایی، جداسازی (*Segment*) و ردیابی (*Track*) کند. سیستم شما باید قادر به تفکیک چندین شیء متحرک از یکدیگر و همچنین تشخیص وضعیت سکون موقت آنها باشد.
این سوال برای ارزیابی عملکرد الگوریتمها در شرایط چالشبرانگیز دنیای واقعی طراحی شده است. الگوریتم شما باید بتواند بر مشکلاتی مانند تغییرات ناگهانی نور، لرزش دوربین، پسزمینههای پویا (مانند حرکت شاخ و برگ درختان) و مهمتر از همه، **اشیاء متحرک که به طور موقت متوقف میشوند**، غلبه کند. حفظ هویت و تشخیص صحیح وضعیت هر شیء در طول ویدیو، معیار اصلی موفقیت شما خواهد بود.
----------
درون فایل دیتاست، مجموعهای از ویدیوهای چالشبرانگیز به عنوان **مجموعه داده تست (Test Dataset)** قرار داده شده است. شما باید برای هر یک از این ویدیوها، یک «ماسک تحلیل حرکت» تولید کنید که به ما امکان درک دقیق رویدادهای صحنه را بدهد.
برای هر ویدیوی ورودی، شما باید یک ویدیوی ماسک خروجی با همان ابعاد و تعداد فریم تولید کنید. در این ویدیوی خروجی، هر پیکسل باید بر اساس قوانین زیر به دقت رنگآمیزی شده باشد:
+ **پیکسلهای سیاه (0,0,0):** معرف پسزمینه (Background) هستند و تمام عناصر ثابت یا بیاهمیت صحنه هستند.
+ **پیکسلهای قرمز (255,0,0):** معرف شیء متحرک با برچسب ۱ در طول سکانس.
+ **پیکسلهای سبز (0,255,0):** معرف شیء متحرک با برچسب ۲ در طول سکانس.
+ **پیکسلهای زرد (255,255,0):** معرف شیء متحرک با برچسب ۳ در طول سکانس.
+ **پیکسلهای سفید (255,255,255):** معرف اشیاء متحرکی که در حالت سکون باقی ماندهاند.


#### **دادههای آموزشی**
ما به توانایی و استراتژی شما ایمان داریم. به همین دلیل، هیچ مجموعه داده آموزشی از پیشتعیینشدهای وجود ندارد. **انتخاب مدل، معماری و مجموعه داده آموزشی برای تعلیم سیستمتان کاملاً به عهده شماست.** شما آزاد هستید تا از هر منبع داده عمومی، مدل از پیش آموزشدیده یا تکنیکی که فکر میکنید بهترین نتیجه را در زمان محدود مسابقه به ارمغان میآورد، استفاده کنید. این بخشی از چالش است: انتخاب هوشمندانه ابزار مناسب برای کار.
#### **برخی از نکات کلیدی و قوانین**
+ **ثبات هویت:** برچسب (و در نتیجه رنگ) یک شیء خاص باید در تمام طول ویدیو تا زمانی که در حال حرکت است، **ثابت** بماند.
+ **بازیابی وضعیت:** هنگامی که یک شیء ردیابیشده (مثلاً قرمز) متوقف میشود، باید به رنگ سفید درآید و به محض حرکت مجدد، باید بلافاصله به همان رنگ قبلی خود (قرمز) بازگردد.
----------
#### **معیار ارزیابی**
ارزیابی پاسخهای ارسالی بر اساس معیار استاندارد **میانگین اشتراک بر روی اجتماع (Mean Intersection over Union - mIoU)** انجام خواهد شد. این فرآیند به صورت خودکار و بر اساس مقایسه پیکسل به پیکسل فریمهای ارسالی شما با فریمهای مرجع (*Ground Truth*) صورت میگیرد.
\**منطق امتیازدهی هر فریم:**
+ **اگر فریم مرجع حاوی شیء باشد:** امتیاز آن فریم بر اساس **mIoU** محاسبه میشود که میانگین میزان همپوشانی (IoU) برای تمام کلاسهای رنگی موجود در فریم است.
+ **اگر فریم مرجع خالی (سیاه) باشد اما فریم ارسالی شما حاوی شیء باشد:** این یک خطای بزرگ (*False Positive*) محسوب شده و امتیاز آن فریم **صفر** خواهد بود.
+ **اگر هم فریم مرجع و هم فریم ارسالی شما هر دو خالی باشند:** این فریم در محاسبه امتیاز نهایی **نادیده گرفته میشود**.
در نهایت امتیاز نهایی به شکل زیر محاسبه میشود:
\[
FinalScore = mean IoU_{on all frames} * 100
\]
#### **فرمت ارسال پاسخ**
در نهایت شما باید با توجه ویدئوهای قرار داده شده را با سگمنت کنید و فریمهای سگمنت شده را دقیقا با توجه به پوشهبندی اعلام شده و ابعاد و اسامی یکسان ارسال کنید. برای اینکه سیستم داوری بتواند پاسخ شما را به درستی ارزیابی کند، لطفاً ساختار فایل ارسالی خود را دقیقاً مطابق با دستورالعمل زیر آماده کنید.پاسخ خود را باید در قالب یک فایل فشرده (با فرمت **.zip**) ارسال نمایید. ساختار داخلی این فایل باید به شکل زیر باشد:
```
submission.zip
└── notebook.ipynb
└── submission/
├── I_BS_01/
│ ├── I_BS_01_1.png
│ ├── I_BS_01_2.png
│ └── ... (rest of the frames)
│
├── I_SM_03/
│ ├── I_SM_03_1.png
│ ├── I_SM_03_2.png
│ └── ... (rest of the frames)
│
└── ... (and the other folders)
```
#### **نکات بسیار مهم**
+ ابعاد فریمهای ارسالی باید با ابعادی که فریمهای سازنده ویدئو دارد یکسان باشد.
+ حتماً باید یک پوشه اصلی به نام `submission` وجود داشته باشد و ۲۹ پوشه دیگر درون آن قرار گیرند.
+ تعداد فریمهای موجود در هر یک از پوشههای ارسالی شما باید **دقیقاً** با تعداد فریمهای پوشه مرجع متناظر آن برابر باشد.
+ هرگونه عدم تطابق در نامگذاری پوشهها یا فریمها منجر به خطای داوری و کسب امتیاز صفر خواهد شد.