{
  "fetched_at": "2026-10-19T08:01:36Z",
  "source_url": "https://www.kaggle.com/competitions/ai4imaging-hackathon-2023/data",
  "pages": [
    {
      "name": "data-description",
      "content": "The dataset consists of 150 MRI exams from patients, split into training and testing sets. The training set includes 100 patients, and the testing set includes 50 patients. Each patient has two different phases: diastolic and systolic. Each phase includes one original 3D MRI image and one segmentation mask file, which indicates the location of RIOs. Additionally, each patient file in the training file has a label of the disease. If you plan to use Google Colab for training, you can also access the dataset via the link: https://drive.google.com/drive/folders/1Aa4xKJuDOqK_8eDlnye5LDoCgcYtiJjs?usp=drive_link\n\n\n## Task\nYour task is to build a multi-classification deep learning or radiomics model that is able to use two-frame of cardiac MRI to predict the category of heart disease. \n\n\n## Training Files\n(example of subject 'p0001')\n*   **p0001_frame01.nii.gz** - the systolic frame of 3D MRI\n*   **p0001_frame01_gt.nii.gz** - the corresponding segmentation mask of the systolic frame\n*   **p0001_frame06.nii.gz** - the diastolic frame of 3D MRI\n*   **p0001_frame06_gt.nii.gz** - the corresponding segmentation mask of the diastolic frame\n*   **gt.txt** - the classification label, including 'NOR', 'MINF', 'DCM', 'HCM' and 'RV'. You should encode the label into a one-hot representation by yourselves.\n\t\tNOR - Normal subjects\n\t\tMINF - Myocardial infarction\n\t\tDCM - Dilated cardiomyopathy\n\t\tHCM - Hypertrophic cardiomyopathy\n\t\tRV - Abnormal right ventricle\n\n## Testing Files\n(example of subject 'p0101')\n*   **p0101_frame01.nii.gz** - the systolic frame of 3D MRI\n*   **p0101_frame01_gt.nii.gz** - the segmentation mask of the systolic frame\n*   **p0101_frame14.nii.gz** - the diastolic frame of 3D MRI\n*   **p0101_frame014_gt.nii.gz** - the segmentation mask of the diastolic frame\n*   Note: The testing dataset does not include labels\n\n\n## Explanation of the segmentation ROIs\nThe segmentation mask, e.g., p0001_frame01_gt.nii.gz, utilizes non-zero integer (i.e., 1-3) to highlight different anatomical structures of the heart. The numbers 1, 2, and 3 represent the right ventricle, left ventricle, and myocardium, respectively.\n\n## Expected Model Input\nThe model should receive a batch of patient images as input. The input tensor should be in the shape of [batch, channel, height, width, depth]. Please note that the channel number should be set to 2 due to the two-frame input setting. Also, image sizes may vary due to different acquisition settings.\n\n\n## Expected Model Output\nThe model output should be a five-class one-hot prediction after the Softmax layer. \n\n\n## Here are some tips.\n\n- How to read the training image？\n\n```python\n# Please install nibabel by: !pip install nibabel\nimport nibabel as nib\nimage_frame_1 = nib.load(image_frame_1_path).get_fdata()\nimage_frame_1_gt = nib.load(image_frame_1_gt_path).get_fdata()\nimage_frame_2 = nib.load(image_frame_2_path).get_fdata()\nimage_frame_2_gt = nib.load(image_frame_2_gt_path).get_fdata()\n```\n\n- How to input the ROI together with an image？\nDespite there are many ways to integrate images with RIOs, we recommend you multiply or concatenate the image and ROIs.\n\n```python\n# Multiplication\nimage_frame_ROI = image_frame_1 * image_frame_1_gt\n\n# Concatenation\nimport numpy as np\nprint(image_frame_1.shape, image_frame_1_gt.shape)\nimage_frame_ROI = np.stack((image_frame_1, image_frame_1_gt))\nprint(image_frame_ROI.shape)\n```\n\n- What if the sizes of images of different subjects are different?\n\nask chatGPT 🙂\n\n- How to input two frames together?\nYou can put these two frames into two different channels of the input image, or you can build two separate networks and concatenate them later.\n\n```python\nimport numpy as np\n# Concatenate images along the new first axis (channel dimension)\ncombined = np.concatenate((img1, img2), axis=0)\n```\n\n- Which kind of model can we use?\nMONAI package is recommended. e.g., monai.networks.nets.ResNet\n\n```python\n# Please install MONAI by: !pip install monai\nfrom monai.networks.nets import ResNet\nmodel = ResNet(...)\n```\n\n\n\n\n\n\n\n## Citation\n\nO. Bernard, A. Lalande, C. Zotti, F. Cervenansky, et al.\n\"Deep Learning Techniques for Automatic MRI Cardiac Multi-structures Segmentation and\nDiagnosis: Is the Problem Solved ?\" in IEEE Transactions on Medical Imaging,\nvol. 37, no. 11, pp. 2514-2525, Nov. 2018. doi: 10.1109/TMI.2018.2837502",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "Welcome to the AI4I 2023 - Hackathon - Cine Heart MRI Classification Challenge! This competition is a shuffled version of the open-source ACDC dataset. We invite you to develop a deep learning model that can accurately classify heart diseases based on Cine Heart Magnetic Resonance Images (MRI).",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "\nThe evaluation metric for this competition is [Mean F1-Score](https://en.wikipedia.org/wiki/F-score). The F1 score, commonly used in information retrieval, measures accuracy using the statistics precision \\( \\text{p} \\) and recall \\( \\text{r} \\).\n\nPrecision is the ratio of true positives \\(\\text{tp}\\) to all predicted positives \\(\\text{tp} + \\text{fp}\\). Recall is the ratio of true positives \\(\\text{tp}\\) to all actual positives \\(\\text{tp} + \\text{fn}\\). The F1 score is given by:\n\n\\[ \\text{F1} = 2\\frac{\\text{p} \\cdot \\text{r}}{\\text{p}+\\text{r}}\\ \\ \\mathrm{where}\\ \\ \\text{p} = \\frac{\\text{tp}}{\\text{tp}+\\text{fp}},\\ \\ \\text{r} = \\frac{\\text{tp}}{\\text{tp}+\\text{fn}} \\]\n\nThe F1 metric weights recall and precision equally, and a good retrieval algorithm will maximize both precision and recall simultaneously. Thus, moderately good performance on both will be favored over extremely good performance on one and poor performance on the other.\n\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "rules",
      "content": "- Please form a team by yourself, with a maximum of 4 people per team\n- Have fun!",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}