{
  "fetched_at": "2026-10-20T08:58:04Z",
  "source_url": "https://www.kaggle.com/competitions/ece4250-project-spring-2021/data",
  "pages": [
    {
      "name": "data-description",
      "content": "All data for this project is provided in the following Google Drive link:\n\nhttps://drive.google.com/open?id=1Dtg1CdjRRFHSMBsPHvG_ut1CnhwtRJm4\n\nFolder/File Descriptions:\n\n+ Training : Contains the MRI scans and segmentation images of the 6 training subjects\n+ Validation : Contains the MRI scans and segmentation images of the 2 validation subjects. You can use these subjects for fine-tuning your model and to decide about which algorithm to use for final segmentation of test subjects.\n+ Testing : Contains the MRI scans of the 9 test subjects. You are required to derive the automatic segmentations of the middle coronal slices for these subjects.\n+ sampleSubmission.csv : Sample CSV file for submission\n+ mri_orientation.png/ seg_orientation.png : Sample anatomical/segmentation image for checking the correct orientation",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "In this challenge, you will develop an algorithm that will automatically segment the middle coronal slice of a brain MRI scan into anatomical regions of interest. You will have access to some brain MRIs that have been manually segmented. Please read the 'Final Report and Competition' section in the Project-ReadMe-ECE4250-Spring2021.pdf file on Canvas for more details.\n\nRefer to the Evaluation Section and Data section on this website for details on Kaggle submission format.\n\n## Acknowledgements\nhttp://www.nitrc.org/projects/ibsr",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "The evaluation metric for this competition is Dice. The Dice, commonly used in segmentation, measures the similarity between two segmentations. Given an automatic segmentation A and a manual segmentation M, the Dice coefficient  is given by the following relation: \\[ D = \\frac{2|A \\bigcap M|}{|A| + |M|} \\]\n\nwhere |A| and |M| refers to the number of elements in the sets A and M respectively.\n\n\nNote that the Jaccard  is directly related to the Dice index  by the following relation: \\[J = D/(2-D)\\] \n\nA valid submission for the final project is one that gives you a Jaccard Index of at least 35%. This means you need a Dice of at least approximately 50%.\n\n## Submission Format\nYou'll be submitting the binary segmentation masks for each ROI and each test subject. Note that there are 4 ROIs and 9 test subjects. Therefore, you should submit a CSV file with 36 rows = 9 subjects x 4 ROIs. The file should contain a header and have the following format:\n\n\nThe file should contain a header and have the following format:\n\n```\nId, Predicted\n \n8-left-wm, 11875 3 12130 3 12385 3 12640 3 12665 1 12918 4 \n```\n\n\nThe Id is in the following format: {ID-{left/right}-{wm/cortex}}. The first number reflects the ID of the test subject. Note that you have the following IDs in the test set: {8, 9, 10, 11, 12, 13, 14, 16, 17}. Left/right refers to the side of the brain and wm/cortex represents the two regions of interest in the data, i.e., the white matter and the cerebral cortex respectively. For example, the Id 10-right-wm refers to the automatic binary segmentation mask of the right white-matter region of test subject IBSR_10  .\n\n\n\nThe 'Predicted' column contains the automatic binary segmentation masks in Run-Length Encoding  format.\nYou may use the following function to convert your binary segmentation image to RLE format:\n\n \n```\ndef rle_encode(img):\n    '''\n    img: numpy array, 1 - mask, 0 - background\n    Returns run length as string formated\n    '''\n    pixels = img.flatten()\n    pixels = np.concatenate([[0], pixels, [0]])\n    runs = np.where(pixels[1:] != pixels[:-1])[0] + 1\n    runs[1::2] -= runs[::2]\n    return ' '.join(str(x) for x in runs)\n```\n(Source: https://www.kaggle.com/paulorzp/run-length-encode-and-decode)\n\n\nTo convert all your automatic segmentations to CSV format during submission, you may find the pandas library useful:\n\n```\nimport pandas as pd\n### ids: list containing the 36 IDs as described above  ###\n### data: list containing the 36 binary segmentation masks in RLE format ###\ndf = pd.DataFrame({\"Id\": labels, \"Predicted\": data})\ndf.to_csv('submission.csv', index = False) \n```\n\nFinally, note that the orientation of the predicted segmentation images matters. You should stick with the default orientation of the coronal slice when loading the image using the nibabel library. For reference, see the mriorientation.png and segorientation.png files in the Data section to visualize the correct orientation of the segmentation images.\n\n## You are allowed to submit up to a maximum of 15 entries per day.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "rules",
      "content": "You are only allowed to sign up for this competition from a single account.\n\nYou may submit up to a maximum of 15 entries per day.\n\nYou'll be working individually on this project. Any collaboration must be acknowledged.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}