{
  "id": 670664,
  "title": "Synthetic dataset",
  "url": "/competitions/csiro-biomass/discussion/670664",
  "author_name": "",
  "post_date": "2026-01-29T03:29:30.777140400Z",
  "votes": 31,
  "comment_count": 14,
  "views": 0,
  "content": "<p>This is the synthetic dataset I generated from the training set using <a href=\"https://github.com/QwenLM/Qwen-Image\" target=\"_blank\">Qwen-Image-Edit</a>: </p>\n<p><a href=\"https://www.kaggle.com/datasets/quan0095/csiro-synthetic-dataset\" target=\"_blank\">https://www.kaggle.com/datasets/quan0095/csiro-synthetic-dataset</a></p>\n<p>One of the main challenges in using synthetic datasets for image regression is the ground truth issue; when an image is modified, the biomass value of each target changes accordingly. To address this, I employed a pseudo-labeling strategy: I used a model trained on the original training set to generate labels for the synthetic dataset, and subsequently trained the final model on the combined dataset (original training set + synthetic dataset).</p>\n<ul>\n<li>The synthetic dataset was generated by simulating seasonal weather changes and adding artifacts such as gravel and rocks.</li>\n<li>I removed all grass vegetation from the images, retaining only the bare soil, and set the target values for clover, dead, and green to 0. These images were then combined with the training dataset to help the model discriminate between biomass-containing regions and non-biomass regions.</li>\n</ul>",
  "messages": [
    {
      "id": "3398373",
      "postDate": "01/29/2026 03:29:30",
      "content": "<p>This is the synthetic dataset I generated from the training set using <a href=\"https://github.com/QwenLM/Qwen-Image\" target=\"_blank\">Qwen-Image-Edit</a>: </p>\n<p><a href=\"https://www.kaggle.com/datasets/quan0095/csiro-synthetic-dataset\" target=\"_blank\">https://www.kaggle.com/datasets/quan0095/csiro-synthetic-dataset</a></p>\n<p>One of the main challenges in using synthetic datasets for image regression is the ground truth issue; when an image is modified, the biomass value of each target changes accordingly. To address this, I employed a pseudo-labeling strategy: I used a model trained on the original training set to generate labels for the synthetic dataset, and subsequently trained the final model on the combined dataset (original training set + synthetic dataset).</p>\n<ul>\n<li>The synthetic dataset was generated by simulating seasonal weather changes and adding artifacts such as gravel and rocks.</li>\n<li>I removed all grass vegetation from the images, retaining only the bare soil, and set the target values for clover, dead, and green to 0. These images were then combined with the training dataset to help the model discriminate between biomass-containing regions and non-biomass regions.</li>\n</ul>",
      "rawMarkdown": "This is the synthetic dataset I generated from the training set using [Qwen-Image-Edit](https://github.com/QwenLM/Qwen-Image): \n\nhttps://www.kaggle.com/datasets/quan0095/csiro-synthetic-dataset\n\nOne of the main challenges in using synthetic datasets for image regression is the ground truth issue; when an image is modified, the biomass value of each target changes accordingly. To address this, I employed a pseudo-labeling strategy: I used a model trained on the original training set to generate labels for the synthetic dataset, and subsequently trained the final model on the combined dataset (original training set + synthetic dataset).\n\n- The synthetic dataset was generated by simulating seasonal weather changes and adding artifacts such as gravel and rocks.\n- I removed all grass vegetation from the images, retaining only the bare soil, and set the target values for clover, dead, and green to 0. These images were then combined with the training dataset to help the model discriminate between biomass-containing regions and non-biomass regions.",
      "votes": null
    },
    {
      "id": "3398383",
      "postDate": "01/29/2026 03:41:19",
      "content": "<p>Wow, that's genius. I totally missed that approach.</p>",
      "rawMarkdown": "Wow, that's genius. I totally missed that approach.",
      "votes": null
    },
    {
      "id": "3398391",
      "postDate": "01/29/2026 04:01:43",
      "content": "<p>very interesting, i did try pseudo-labeling on these datasets: <a href=\"https://www.kaggle.com/datasets/usharengaraju/grassclover-dataset\" target=\"_blank\">https://www.kaggle.com/datasets/usharengaraju/grassclover-dataset</a>, <a href=\"https://www.kaggle.com/datasets/amirmmahdavikia/irish-grass-clover/data\" target=\"_blank\">https://www.kaggle.com/datasets/amirmmahdavikia/irish-grass-clover/data</a>. But not very successful</p>",
      "rawMarkdown": "very interesting, i did try pseudo-labeling on these datasets: https://www.kaggle.com/datasets/usharengaraju/grassclover-dataset, https://www.kaggle.com/datasets/amirmmahdavikia/irish-grass-clover/data. But not very successful",
      "votes": null
    },
    {
      "id": "3398392",
      "postDate": "01/29/2026 04:04:58",
      "content": "<p>I attempted to pretrain on this dataset, but the results were unsatisfactory. There is a significant domain gap between the two datasets: they differ in crop size and grass types, and the labeling protocols may also vary.</p>",
      "rawMarkdown": "I attempted to pretrain on this dataset, but the results were unsatisfactory. There is a significant domain gap between the two datasets: they differ in crop size and grass types, and the labeling protocols may also vary.",
      "votes": null
    },
    {
      "id": "3398396",
      "postDate": "01/29/2026 04:20:26",
      "content": "<p>Its crazy how good the text to image models are these days. I made Australia <strong>snow</strong> in my training dataset as an augmentation 🤣 (and that's the only augmentation I used)</p>\n<p><a href=\"https://www.kaggle.com/datasets/yeoyunsianggeremie/csiro-snow-augmentations\" target=\"_blank\">https://www.kaggle.com/datasets/yeoyunsianggeremie/csiro-snow-augmentations</a></p>",
      "rawMarkdown": "Its crazy how good the text to image models are these days. I made Australia **snow** in my training dataset as an augmentation 🤣 (and that's the only augmentation I used)\n\nhttps://www.kaggle.com/datasets/yeoyunsianggeremie/csiro-snow-augmentations",
      "votes": null
    },
    {
      "id": "3398435",
      "postDate": "01/29/2026 06:27:26",
      "content": "<p>I used Banana Pro to convert all green in the images into dead, then to ensure correct targets i just set green = clover = gdm = 0, and dead = total = dead+green+clover\nbut it didn't work :)</p>",
      "rawMarkdown": "I used Banana Pro to convert all green in the images into dead, then to ensure correct targets i just set green = clover = gdm = 0, and dead = total = dead+green+clover\nbut it didn't work :)",
      "votes": null
    },
    {
      "id": "3398490",
      "postDate": "01/29/2026 08:17:31",
      "content": "<p>We need to limit the ratio of zero labels to avoid distorting the original distribution. I only introduced roughly 10 images with a label of 0 (totaling ~10/357).</p>",
      "rawMarkdown": "We need to limit the ratio of zero labels to avoid distorting the original distribution. I only introduced roughly 10 images with a label of 0 (totaling ~10/357).",
      "votes": null
    },
    {
      "id": "3398497",
      "postDate": "01/29/2026 08:22:46",
      "content": "<p>Applying synthetic data to biomass estimation presents more challenges than classification. In classification, the class is invariant to augmentation (e.g., a cat remains a cat), whereas in image regression, visual modifications inherently alter the target values. I initially attempted to train using synthetic data with the original labels, but this led to a decrease in LB performance.</p>",
      "rawMarkdown": "Applying synthetic data to biomass estimation presents more challenges than classification. In classification, the class is invariant to augmentation (e.g., a cat remains a cat), whereas in image regression, visual modifications inherently alter the target values. I initially attempted to train using synthetic data with the original labels, but this led to a decrease in LB performance.",
      "votes": null
    },
    {
      "id": "3398498",
      "postDate": "01/29/2026 08:22:59",
      "content": "<p>Wow, great idea for create synthetic dataset</p>",
      "rawMarkdown": "Wow, great idea for create synthetic dataset",
      "votes": null
    },
    {
      "id": "3398500",
      "postDate": "01/29/2026 08:25:21",
      "content": "<p>Lol 😂 did snowing improve cv lb though?</p>",
      "rawMarkdown": "Lol 😂 did snowing improve cv lb though?",
      "votes": null
    },
    {
      "id": "3398523",
      "postDate": "01/29/2026 09:06:46",
      "content": "<p>Aahhh, Pseudo labelling. \nJust as I had predicted. \nGreat approach. \nI actually thought of using Nano banana for this, but then thought like how many samples will I make one by one online. May I know how did you use Qwen? Like installing it on local machine or on colab, and was there any pipeline involved?</p>",
      "rawMarkdown": "Aahhh, Pseudo labelling. \nJust as I had predicted. \nGreat approach. \nI actually thought of using Nano banana for this, but then thought like how many samples will I make one by one online. May I know how did you use Qwen? Like installing it on local machine or on colab, and was there any pipeline involved?",
      "votes": null
    },
    {
      "id": "3398532",
      "postDate": "01/29/2026 09:26:35",
      "content": "<p>I’m using a local setup, and in the dataset I’ve attached the scripts that I used to generate the data</p>",
      "rawMarkdown": "I’m using a local setup, and in the dataset I’ve attached the scripts that I used to generate the data",
      "votes": null
    },
    {
      "id": "3398535",
      "postDate": "01/29/2026 09:32:01",
      "content": "<p>I tried using Nano banana to generate images with very good quality, but Qwen is a better choice when you need a local setup and to generate a large number of images.</p>",
      "rawMarkdown": "I tried using Nano banana to generate images with very good quality, but Qwen is a better choice when you need a local setup and to generate a large number of images.",
      "votes": null
    },
    {
      "id": "3399324",
      "postDate": "01/30/2026 16:45:08",
      "content": "<p>CV -0.05x </p>\n<p>Public LB -0.02x</p>\n<p>Private LB +0.013</p>\n<p>CV is GroupKFold by month of sampling date</p>",
      "rawMarkdown": "CV -0.05x \n\nPublic LB -0.02x\n\nPrivate LB +0.013\n\nCV is GroupKFold by month of sampling date",
      "votes": null
    },
    {
      "id": "3400902",
      "postDate": "02/02/2026 15:19:42",
      "content": "<p>After performing image enhancement for snowfall, should we still train using the original data, such as Dry_Green_g?</p>",
      "rawMarkdown": "After performing image enhancement for snowfall, should we still train using the original data, such as Dry_Green_g?",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 3398383,
      "author_name": "cudacoding",
      "author_url": "",
      "post_date": "01/29/2026 03:41:19",
      "content": "<p>Wow, that's genius. I totally missed that approach.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 3398391,
      "author_name": "llkh0a",
      "author_url": "",
      "post_date": "01/29/2026 04:01:43",
      "content": "<p>very interesting, i did try pseudo-labeling on these datasets: <a href=\"https://www.kaggle.com/datasets/usharengaraju/grassclover-dataset\" target=\"_blank\">https://www.kaggle.com/datasets/usharengaraju/grassclover-dataset</a>, <a href=\"https://www.kaggle.com/datasets/amirmmahdavikia/irish-grass-clover/data\" target=\"_blank\">https://www.kaggle.com/datasets/amirmmahdavikia/irish-grass-clover/data</a>. But not very successful</p>",
      "votes": null,
      "replies": [
        {
          "id": 3398392,
          "author_name": "quan0095",
          "author_url": "",
          "post_date": "01/29/2026 04:04:58",
          "content": "<p>I attempted to pretrain on this dataset, but the results were unsatisfactory. There is a significant domain gap between the two datasets: they differ in crop size and grass types, and the labeling protocols may also vary.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 3398396,
      "author_name": "yeoyunsianggeremie",
      "author_url": "",
      "post_date": "01/29/2026 04:20:26",
      "content": "<p>Its crazy how good the text to image models are these days. I made Australia <strong>snow</strong> in my training dataset as an augmentation 🤣 (and that's the only augmentation I used)</p>\n<p><a href=\"https://www.kaggle.com/datasets/yeoyunsianggeremie/csiro-snow-augmentations\" target=\"_blank\">https://www.kaggle.com/datasets/yeoyunsianggeremie/csiro-snow-augmentations</a></p>",
      "votes": null,
      "replies": [
        {
          "id": 3398497,
          "author_name": "quan0095",
          "author_url": "",
          "post_date": "01/29/2026 08:22:46",
          "content": "<p>Applying synthetic data to biomass estimation presents more challenges than classification. In classification, the class is invariant to augmentation (e.g., a cat remains a cat), whereas in image regression, visual modifications inherently alter the target values. I initially attempted to train using synthetic data with the original labels, but this led to a decrease in LB performance.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 3398500,
          "author_name": "paritoshtripathi5",
          "author_url": "",
          "post_date": "01/29/2026 08:25:21",
          "content": "<p>Lol 😂 did snowing improve cv lb though?</p>",
          "votes": null,
          "replies": [
            {
              "id": 3399324,
              "author_name": "yeoyunsianggeremie",
              "author_url": "",
              "post_date": "01/30/2026 16:45:08",
              "content": "<p>CV -0.05x </p>\n<p>Public LB -0.02x</p>\n<p>Private LB +0.013</p>\n<p>CV is GroupKFold by month of sampling date</p>",
              "votes": null,
              "replies": []
            }
          ]
        },
        {
          "id": 3400902,
          "author_name": "cfs123",
          "author_url": "",
          "post_date": "02/02/2026 15:19:42",
          "content": "<p>After performing image enhancement for snowfall, should we still train using the original data, such as Dry_Green_g?</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 3398435,
      "author_name": "mohammad2012191",
      "author_url": "",
      "post_date": "01/29/2026 06:27:26",
      "content": "<p>I used Banana Pro to convert all green in the images into dead, then to ensure correct targets i just set green = clover = gdm = 0, and dead = total = dead+green+clover\nbut it didn't work :)</p>",
      "votes": null,
      "replies": [
        {
          "id": 3398490,
          "author_name": "quan0095",
          "author_url": "",
          "post_date": "01/29/2026 08:17:31",
          "content": "<p>We need to limit the ratio of zero labels to avoid distorting the original distribution. I only introduced roughly 10 images with a label of 0 (totaling ~10/357).</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 3398498,
      "author_name": "kongpasom",
      "author_url": "",
      "post_date": "01/29/2026 08:22:59",
      "content": "<p>Wow, great idea for create synthetic dataset</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 3398523,
      "author_name": "komilparmar",
      "author_url": "",
      "post_date": "01/29/2026 09:06:46",
      "content": "<p>Aahhh, Pseudo labelling. \nJust as I had predicted. \nGreat approach. \nI actually thought of using Nano banana for this, but then thought like how many samples will I make one by one online. May I know how did you use Qwen? Like installing it on local machine or on colab, and was there any pipeline involved?</p>",
      "votes": null,
      "replies": [
        {
          "id": 3398532,
          "author_name": "quan0095",
          "author_url": "",
          "post_date": "01/29/2026 09:26:35",
          "content": "<p>I’m using a local setup, and in the dataset I’ve attached the scripts that I used to generate the data</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 3398535,
          "author_name": "quan0095",
          "author_url": "",
          "post_date": "01/29/2026 09:32:01",
          "content": "<p>I tried using Nano banana to generate images with very good quality, but Qwen is a better choice when you need a local setup and to generate a large number of images.</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "3398373": "This is the synthetic dataset I generated from the training set using [Qwen-Image-Edit](https://github.com/QwenLM/Qwen-Image): \n\nhttps://www.kaggle.com/datasets/quan0095/csiro-synthetic-dataset\n\nOne of the main challenges in using synthetic datasets for image regression is the ground truth issue; when an image is modified, the biomass value of each target changes accordingly. To address this, I employed a pseudo-labeling strategy: I used a model trained on the original training set to generate labels for the synthetic dataset, and subsequently trained the final model on the combined dataset (original training set + synthetic dataset).\n\n- The synthetic dataset was generated by simulating seasonal weather changes and adding artifacts such as gravel and rocks.\n- I removed all grass vegetation from the images, retaining only the bare soil, and set the target values for clover, dead, and green to 0. These images were then combined with the training dataset to help the model discriminate between biomass-containing regions and non-biomass regions.",
    "3398383": "Wow, that's genius. I totally missed that approach.",
    "3398391": "very interesting, i did try pseudo-labeling on these datasets: https://www.kaggle.com/datasets/usharengaraju/grassclover-dataset, https://www.kaggle.com/datasets/amirmmahdavikia/irish-grass-clover/data. But not very successful",
    "3398392": "I attempted to pretrain on this dataset, but the results were unsatisfactory. There is a significant domain gap between the two datasets: they differ in crop size and grass types, and the labeling protocols may also vary.",
    "3398396": "Its crazy how good the text to image models are these days. I made Australia **snow** in my training dataset as an augmentation 🤣 (and that's the only augmentation I used)\n\nhttps://www.kaggle.com/datasets/yeoyunsianggeremie/csiro-snow-augmentations",
    "3398435": "I used Banana Pro to convert all green in the images into dead, then to ensure correct targets i just set green = clover = gdm = 0, and dead = total = dead+green+clover\nbut it didn't work :)",
    "3398490": "We need to limit the ratio of zero labels to avoid distorting the original distribution. I only introduced roughly 10 images with a label of 0 (totaling ~10/357).",
    "3398497": "Applying synthetic data to biomass estimation presents more challenges than classification. In classification, the class is invariant to augmentation (e.g., a cat remains a cat), whereas in image regression, visual modifications inherently alter the target values. I initially attempted to train using synthetic data with the original labels, but this led to a decrease in LB performance.",
    "3398498": "Wow, great idea for create synthetic dataset",
    "3398500": "Lol 😂 did snowing improve cv lb though?",
    "3398523": "Aahhh, Pseudo labelling. \nJust as I had predicted. \nGreat approach. \nI actually thought of using Nano banana for this, but then thought like how many samples will I make one by one online. May I know how did you use Qwen? Like installing it on local machine or on colab, and was there any pipeline involved?",
    "3398532": "I’m using a local setup, and in the dataset I’ve attached the scripts that I used to generate the data",
    "3398535": "I tried using Nano banana to generate images with very good quality, but Qwen is a better choice when you need a local setup and to generate a large number of images.",
    "3399324": "CV -0.05x \n\nPublic LB -0.02x\n\nPrivate LB +0.013\n\nCV is GroupKFold by month of sampling date",
    "3400902": "After performing image enhancement for snowfall, should we still train using the original data, such as Dry_Green_g?"
  },
  "source": "meta"
}