The First Place Solution of iMaterialist (Fashion) 2019: A Step-by-Step Guide

Mar 21, 2024 | Data Science

Welcome to an insightful journey about how to implement a winning solution in the iMaterialist (Fashion) 2019 competition! Building on the techniques established by the COCO challenge 2018 winners, this blog will break down the complex process into easily digestible bites. Let’s embark on this expedition to conquer instance segmentation using advanced models!

What You Need

Before you dive in, make sure you have the following:

  • Python Environment
  • Access to GPU (e.g., NVIDIA Tesla V100)
  • Required Python packages (e.g., TensorFlow, PyTorch)
  • Data from the iMaterialist Fashion 2019 competition

Key Components of the Solution

This solution leverages a model called Hybrid Task Cascade with ResNeXt-101-64x4d-FPN backbone, which has achieved outstanding results in the COCO dataset, boasting a Mask mAP of 43.9. Here’s how we can break it down:

Data Preprocessing

First, we need to prepare our data with light augmentations:

  • Utilize the albumentations library for image augmentations.
  • Employ multi-scale training to enhance the model’s robustness by randomly sampling the scale of the short edge from 600 to 1200.

Training the Model

Training involves several critical components, and the process can be visualized through an analogy: think of training your model like training an athlete for a competition. Just as an athlete needs to prepare with a specific regimen, so does your model.

Here’s the regimen for the model:

  • Pre-training: Starts from COCO dataset.
  • Optimizer: Use SGD with a learning rate of 0.03, momentum of 0.9, and weight decay of 0.0001.
  • Batch Size: 16, utilizing 8 GPUs (2 images per GPU).
  • Learning Rate Scheduler: Adjustments based on epochs to optimize performance.
  • Training Time: Approximately 3 days.

Fine-tuning and Postprocessing

Posttraining is crucial for ensuring your athlete performs their best. Just as the last minute adjustments can lead to a better performance in sports, fine-tuning the model can drastically improve outcomes.

  • Tuning postprocessing thresholds to optimize metrics.
  • Implementing a mask postprocessing algorithm to prevent overlapping instances.
  • Deleting small objects that might skew the results.

Model Inference

To test the model’s competency, the approach of using Test Time Augmentation (TTA) is employed. Think of this like having multiple warm-up routines before the big performance to identify the strongest approach!

  • Apply three different scales and a horizontal flip to the test images to gather inclusive results.
  • Ensemble the results from multiple checkpoints to maximize metric improvements.

How to Run This Solution

Ready to implement this solution? Here are the crucial steps:

  1. Build the Docker:
    bash make build
    bash make run-[server-name]
    bash make exec
  2. Build the mmdetection environment:
    bash cd mmdetection
    bash compile.sh
    python setup.py develop
  3. Prepare pretrained weights:
    bash prepare_weights.sh
  4. Prepare annotations for mmdetection and train the model.
    bash cd scripts
    bash create_mmdetection_train.sh
    bash create_mmdetection_test.sh
    bash split.sh
  5. Train the model and test it with the following commands:
    bash CUDA_VISIBLE_DEVICES=[list of gpus] bash dist_train.sh [config] [gpus] [--validate]
    bash CUDA_VISIBLE_DEVICES=[list of gpus] bash dist_test_ensemble.sh [config] [gpus]

Troubleshooting

If you run into trouble during the execution, consider the following troubleshooting tips:

  • Ensure all dependencies are correctly installed and up to date.
  • If you encounter issues with data preparation, follow the links provided in the README to fix errors in train.csv.zip.
  • For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.

Final Thoughts

At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

With the tools and techniques outlined here, you’re now equipped to tackle the iMaterialist (Fashion) 2019 challenge. Embrace the learning journey and let’s revolutionize the world of instance segmentation together!

Stay Informed with the Newest F(x) Insights and Blogs

Tech News and Blog Highlights, Straight to Your Inbox