{
  "id": 151800,
  "title": "Cutout Augmentation with handling of bounding boxes",
  "url": "/competitions/global-wheat-detection/discussion/151800",
  "author_name": "",
  "post_date": "2020-05-17T05:37:11.955006300Z",
  "votes": 7,
  "comment_count": 7,
  "views": 0,
  "content": "<p>I've implemented random cutout augmentation which also takes care of bounding boxes and which generates a new augmented dataset. Check it out here: <a href=\"https://www.kaggle.com/kaushal2896/gwd-data-augmentation-tutorial\">https://www.kaggle.com/kaushal2896/gwd-data-augmentation-tutorial</a></p>\n\n<p>Hope this helps!</p>",
  "messages": [
    {
      "id": "850875",
      "postDate": "05/17/2020 05:37:11",
      "content": "<p>I've implemented random cutout augmentation which also takes care of bounding boxes and which generates a new augmented dataset. Check it out here: <a href=\"https://www.kaggle.com/kaushal2896/gwd-data-augmentation-tutorial\">https://www.kaggle.com/kaushal2896/gwd-data-augmentation-tutorial</a></p>\n\n<p>Hope this helps!</p>",
      "rawMarkdown": "I've implemented random cutout augmentation which also takes care of bounding boxes and which generates a new augmented dataset. Check it out here: https://www.kaggle.com/kaushal2896/gwd-data-augmentation-tutorial\n\nHope this helps!",
      "votes": null
    },
    {
      "id": "854672",
      "postDate": "05/20/2020 07:59:43",
      "content": "<p>Using FasterRCNN I was able to get 0.6582 with this cutout augmentation (without pseudo labeling). Without cutout it was 0.6498. </p>",
      "rawMarkdown": "Using FasterRCNN I was able to get 0.6582 with this cutout augmentation (without pseudo labeling). Without cutout it was 0.6498.",
      "votes": null
    },
    {
      "id": "858414",
      "postDate": "05/23/2020 13:13:16",
      "content": "<p><a href=\"/kaushal2896\">@kaushal2896</a> I would like to help you :) could you add parameters num_holes in your cutout implementation?) I believe it can give your model boost and other participants will notice your notebook kernel!</p>\n\n<p>Also you shouldn't create new csv dataset in the end of kernel ;) albumentations should use \"in fly\" during training</p>",
      "rawMarkdown": "kaushal2896 I would like to help you :) could you add parameters num_holes in your cutout implementation?) I believe it can give your model boost and other participants will notice your notebook kernel!\n\nAlso you shouldn't create new csv dataset in the end of kernel ;) albumentations should use \"in fly\" during training",
      "votes": null
    },
    {
      "id": "858594",
      "postDate": "05/23/2020 16:00:01",
      "content": "<p><a href=\"/shonenkov\">@shonenkov</a> thanks for the suggestion! Could you elaborate more about \"num_holes\" parameter? I'll surely add it but I'm not sure which number of holes you are talking about here?</p>\n\n<p>And does creating new larger dataset affect the model adversely? Also I'm not sure how augmenting dataset \"on fly\" is better than creating larger dataset. </p>\n\n<p>Thanks!</p>",
      "rawMarkdown": "shonenkov thanks for the suggestion! Could you elaborate more about \"num_holes\" parameter? I'll surely add it but I'm not sure which number of holes you are talking about here?\n\nAnd does creating new larger dataset affect the model adversely? Also I'm not sure how augmenting dataset \"on fly\" is better than creating larger dataset. \n\nThanks!",
      "votes": null
    },
    {
      "id": "858705",
      "postDate": "05/23/2020 17:55:12",
      "content": "<p><a href=\"https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.Cutout\">In classic Cutout</a>: num_holes (int) – number of regions to zero out </p>",
      "rawMarkdown": "[In classic Cutout](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.Cutout): num_holes (int) – number of regions to zero out",
      "votes": null
    },
    {
      "id": "859892",
      "postDate": "05/24/2020 20:26:11",
      "content": "<p><a href=\"/kaushal2896\">@kaushal2896</a> It is the number of squares or rectangles to cut from an image (8 by default in the albumentation implementation of cutout)</p>",
      "rawMarkdown": "kaushal2896 It is the number of squares or rectangles to cut from an image (8 by default in the albumentation implementation of cutout)",
      "votes": null
    },
    {
      "id": "862951",
      "postDate": "05/27/2020 01:26:24",
      "content": "<p><a href=\"/shonenkov\">@shonenkov</a> I have implemented a custom cutout taking num_holes, max_h_size, max_w_size as inputs in the below notebook. Also I have made it interactive. Please let me know your inputs on this.\n<a href=\"https://www.kaggle.com/shebinscaria/gwd-interactiveaugementations\">https://www.kaggle.com/shebinscaria/gwd-interactiveaugementations</a></p>",
      "rawMarkdown": "shonenkov I have implemented a custom cutout taking num_holes, max_h_size, max_w_size as inputs in the below notebook. Also I have made it interactive. Please let me know your inputs on this.\nhttps://www.kaggle.com/shebinscaria/gwd-interactiveaugementations",
      "votes": null
    },
    {
      "id": "864098",
      "postDate": "05/27/2020 19:38:46",
      "content": "<p><a href=\"/shebinscaria\">@shebinscaria</a> Thank you for your work! But now your custom cutout has some problems:</p>\n\n<ol>\n<li>Didn't use albumentations format - everyone would like to use \"on fly\" with other augs</li>\n<li>You forgot about param \"bbox_removal_threshold\" and remove all intersections with bbox (!). But params \"bbox_removal_threshold\" is really important!</li>\n</ol>\n\n<p>Also I don't recommend add many features in your notebook. If you create only really good custom cutout, it is better: quality is better than quantity. Participants will be able to read easy main idea and appreciate it ;)</p>\n\n<p>Hope it helps you!</p>",
      "rawMarkdown": "shebinscaria Thank you for your work! But now your custom cutout has some problems:\n\n1.  Didn't use albumentations format - everyone would like to use \"on fly\" with other augs\n2. You forgot about param \"bbox\\_removal\\_threshold\" and remove all intersections with bbox (!). But params \"bbox\\_removal\\_threshold\" is really important!\n\nAlso I don't recommend add many features in your notebook. If you create only really good custom cutout, it is better: quality is better than quantity. Participants will be able to read easy main idea and appreciate it ;)\n\nHope it helps you!",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 854672,
      "author_name": "kaushal2896",
      "author_url": "",
      "post_date": "05/20/2020 07:59:43",
      "content": "<p>Using FasterRCNN I was able to get 0.6582 with this cutout augmentation (without pseudo labeling). Without cutout it was 0.6498. </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 858414,
      "author_name": "shonenkov",
      "author_url": "",
      "post_date": "05/23/2020 13:13:16",
      "content": "<p><a href=\"/kaushal2896\">@kaushal2896</a> I would like to help you :) could you add parameters num_holes in your cutout implementation?) I believe it can give your model boost and other participants will notice your notebook kernel!</p>\n\n<p>Also you shouldn't create new csv dataset in the end of kernel ;) albumentations should use \"in fly\" during training</p>",
      "votes": null,
      "replies": [
        {
          "id": 858594,
          "author_name": "kaushal2896",
          "author_url": "",
          "post_date": "05/23/2020 16:00:01",
          "content": "<p><a href=\"/shonenkov\">@shonenkov</a> thanks for the suggestion! Could you elaborate more about \"num_holes\" parameter? I'll surely add it but I'm not sure which number of holes you are talking about here?</p>\n\n<p>And does creating new larger dataset affect the model adversely? Also I'm not sure how augmenting dataset \"on fly\" is better than creating larger dataset. </p>\n\n<p>Thanks!</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 858705,
          "author_name": "shonenkov",
          "author_url": "",
          "post_date": "05/23/2020 17:55:12",
          "content": "<p><a href=\"https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.Cutout\">In classic Cutout</a>: num_holes (int) – number of regions to zero out </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 859892,
          "author_name": "ffares",
          "author_url": "",
          "post_date": "05/24/2020 20:26:11",
          "content": "<p><a href=\"/kaushal2896\">@kaushal2896</a> It is the number of squares or rectangles to cut from an image (8 by default in the albumentation implementation of cutout)</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 862951,
          "author_name": "shebinscaria",
          "author_url": "",
          "post_date": "05/27/2020 01:26:24",
          "content": "<p><a href=\"/shonenkov\">@shonenkov</a> I have implemented a custom cutout taking num_holes, max_h_size, max_w_size as inputs in the below notebook. Also I have made it interactive. Please let me know your inputs on this.\n<a href=\"https://www.kaggle.com/shebinscaria/gwd-interactiveaugementations\">https://www.kaggle.com/shebinscaria/gwd-interactiveaugementations</a></p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 864098,
          "author_name": "shonenkov",
          "author_url": "",
          "post_date": "05/27/2020 19:38:46",
          "content": "<p><a href=\"/shebinscaria\">@shebinscaria</a> Thank you for your work! But now your custom cutout has some problems:</p>\n\n<ol>\n<li>Didn't use albumentations format - everyone would like to use \"on fly\" with other augs</li>\n<li>You forgot about param \"bbox_removal_threshold\" and remove all intersections with bbox (!). But params \"bbox_removal_threshold\" is really important!</li>\n</ol>\n\n<p>Also I don't recommend add many features in your notebook. If you create only really good custom cutout, it is better: quality is better than quantity. Participants will be able to read easy main idea and appreciate it ;)</p>\n\n<p>Hope it helps you!</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "850875": "I've implemented random cutout augmentation which also takes care of bounding boxes and which generates a new augmented dataset. Check it out here: https://www.kaggle.com/kaushal2896/gwd-data-augmentation-tutorial\n\nHope this helps!",
    "854672": "Using FasterRCNN I was able to get 0.6582 with this cutout augmentation (without pseudo labeling). Without cutout it was 0.6498.",
    "858414": "kaushal2896 I would like to help you :) could you add parameters num_holes in your cutout implementation?) I believe it can give your model boost and other participants will notice your notebook kernel!\n\nAlso you shouldn't create new csv dataset in the end of kernel ;) albumentations should use \"in fly\" during training",
    "858594": "shonenkov thanks for the suggestion! Could you elaborate more about \"num_holes\" parameter? I'll surely add it but I'm not sure which number of holes you are talking about here?\n\nAnd does creating new larger dataset affect the model adversely? Also I'm not sure how augmenting dataset \"on fly\" is better than creating larger dataset. \n\nThanks!",
    "858705": "[In classic Cutout](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.Cutout): num_holes (int) – number of regions to zero out",
    "859892": "kaushal2896 It is the number of squares or rectangles to cut from an image (8 by default in the albumentation implementation of cutout)",
    "862951": "shonenkov I have implemented a custom cutout taking num_holes, max_h_size, max_w_size as inputs in the below notebook. Also I have made it interactive. Please let me know your inputs on this.\nhttps://www.kaggle.com/shebinscaria/gwd-interactiveaugementations",
    "864098": "shebinscaria Thank you for your work! But now your custom cutout has some problems:\n\n1.  Didn't use albumentations format - everyone would like to use \"on fly\" with other augs\n2. You forgot about param \"bbox\\_removal\\_threshold\" and remove all intersections with bbox (!). But params \"bbox\\_removal\\_threshold\" is really important!\n\nAlso I don't recommend add many features in your notebook. If you create only really good custom cutout, it is better: quality is better than quantity. Participants will be able to read easy main idea and appreciate it ;)\n\nHope it helps you!"
  },
  "source": "meta"
}