{
  "id": 154300,
  "title": "8th Place Solution (Part 1) - Object detection",
  "content": "<p>Thank you to Kaggle and Francois for hosting this awesome competition. \nThank you to my teammates for doing an awesome job.\nThank you to <a href=\"/meaninglesslives\">@meaninglesslives</a> for giving hope in this challenge by breaking the 1.00 submission and shareing it publicy.</p>\n\n<p>Congratulations to every medalist in this competition. It got realy close in the 0.862 region and it was fun to see the top of the LB especially in the last hours in the race for price money.</p>\n\n<p>Congratulations to <a href=\"/icecuber\">@icecuber</a> on winning this competition. </p>\n\n<p>As there are many different approaches needed in this competition our team decided to split our results in 3 parts.</p>\n\n<p>Part 1: \nMy Solution is about simple object detection which solves 6 tasks in public LB.\nI put it together in a kernel (a bit messy - did not spend time yet on cleaning code, but added some visualisation which I hope help in understanding the code; feel free to ask any question):</p>\n\n<p><a href=\"https://www.kaggle.com/jpbremer/very-simple-dsl-solving-up-to-6-tasks\">https://www.kaggle.com/jpbremer/very-simple-dsl-solving-up-to-6-tasks</a></p>\n\n<p>It solves 4 tasks in its current form. With some more properties/ luck it was able to solve 6 tasks in total on LB.</p>\n\n<p>The pipeline is:</p>\n\n<ol>\n<li>evaluate properties from the training outputs (e.g. how many colors in output, symetries, ...)</li>\n<li>random crop input</li>\n<li>check if crop has the same properties as the properties retrieved from training tasks\nif yes: append\nif no: repeat from step 2</li>\n</ol>\n\n<p>I am looking forward to interesting approaches by different competitors and would like to see the test tasks. (especially the one nearly all public kernels solve). </p>\n\n<p>I am proud to become a Kaggle Master in this awesome community. \nKudos to everyone involved in this competition!</p>",
  "comments": [
    {
      "id": 864804,
      "author_name": "Andy Penrose",
      "author_url": "",
      "post_date": "2020-05-28T07:37:14.257000",
      "content": "<p>Congrats on reaching Master status!</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 864329,
      "author_name": "Froggy McFrogson",
      "author_url": "",
      "post_date": "2020-05-28T00:27:01",
      "content": "<p>Oh I see, so if the output consists of a single color 3x3 grid, then this algorithm would sort of search for a 3x3 grid in the input.  Wow, surprised this worked so well. Seems almost too simple!</p>",
      "votes": 0,
      "replies": [
        {
          "id": 864331,
          "author_name": "Jan Bre",
          "author_url": "",
          "post_date": "2020-05-28T00:28:20.450000",
          "content": "<p>Yeah I also was suprised by its simplicity. But works for any grid and has more properties to it not only single color ones. that is just one example i used for visualisation purposes</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 864355,
          "author_name": "Froggy McFrogson",
          "author_url": "",
          "post_date": "2020-05-28T00:48:26.997000",
          "content": "<p>And even if it didn't know the rule it might just get lucky and select the right answer too I suppose. </p>\n\n<p>I think I had a similar function called \"CropShapeByProperty\" and it tried to decide what property of the shape was it trying to look for and then crop round that shape. Guess the simpler idea worked best.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 865254,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-05-28T13:59:22.193000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 872105,
      "author_name": "corochann",
      "author_url": "",
      "post_date": "2020-06-02T23:09:38.837000",
      "content": "<p>Conglats! thanks for sharing.</p>",
      "votes": 0,
      "replies": []
    }
  ],
  "comment_count": 6,
  "messages": [
    {
      "id": 864325,
      "postDate": "2020-05-28T00:21:29.257Z",
      "content": "<p>Thank you to Kaggle and Francois for hosting this awesome competition. \nThank you to my teammates for doing an awesome job.\nThank you to <a href=\"/meaninglesslives\">@meaninglesslives</a> for giving hope in this challenge by breaking the 1.00 submission and shareing it publicy.</p>\n\n<p>Congratulations to every medalist in this competition. It got realy close in the 0.862 region and it was fun to see the top of the LB especially in the last hours in the race for price money.</p>\n\n<p>Congratulations to <a href=\"/icecuber\">@icecuber</a> on winning this competition. </p>\n\n<p>As there are many different approaches needed in this competition our team decided to split our results in 3 parts.</p>\n\n<p>Part 1: \nMy Solution is about simple object detection which solves 6 tasks in public LB.\nI put it together in a kernel (a bit messy - did not spend time yet on cleaning code, but added some visualisation which I hope help in understanding the code; feel free to ask any question):</p>\n\n<p><a href=\"https://www.kaggle.com/jpbremer/very-simple-dsl-solving-up-to-6-tasks\">https://www.kaggle.com/jpbremer/very-simple-dsl-solving-up-to-6-tasks</a></p>\n\n<p>It solves 4 tasks in its current form. With some more properties/ luck it was able to solve 6 tasks in total on LB.</p>\n\n<p>The pipeline is:</p>\n\n<ol>\n<li>evaluate properties from the training outputs (e.g. how many colors in output, symetries, ...)</li>\n<li>random crop input</li>\n<li>check if crop has the same properties as the properties retrieved from training tasks\nif yes: append\nif no: repeat from step 2</li>\n</ol>\n\n<p>I am looking forward to interesting approaches by different competitors and would like to see the test tasks. (especially the one nearly all public kernels solve). </p>\n\n<p>I am proud to become a Kaggle Master in this awesome community. \nKudos to everyone involved in this competition!</p>",
      "rawMarkdown": "Thank you to Kaggle and Francois for hosting this awesome competition. \nThank you to my teammates for doing an awesome job.\nThank you to @meaninglesslives for giving hope in this challenge by breaking the 1.00 submission and shareing it publicy.\n\nCongratulations to every medalist in this competition. It got realy close in the 0.862 region and it was fun to see the top of the LB especially in the last hours in the race for price money.\n\nCongratulations to @icecuber on winning this competition. \n\nAs there are many different approaches needed in this competition our team decided to split our results in 3 parts.\n\nPart 1: \nMy Solution is about simple object detection which solves 6 tasks in public LB.\nI put it together in a kernel (a bit messy - did not spend time yet on cleaning code, but added some visualisation which I hope help in understanding the code; feel free to ask any question):\n\n [https://www.kaggle.com/jpbremer/very-simple-dsl-solving-up-to-6-tasks](https://www.kaggle.com/jpbremer/very-simple-dsl-solving-up-to-6-tasks)\n\nIt solves 4 tasks in its current form. With some more properties/ luck it was able to solve 6 tasks in total on LB.\n\nThe pipeline is:\n\n1. evaluate properties from the training outputs (e.g. how many colors in output, symetries, ...)\n2. random crop input\n3. check if crop has the same properties as the properties retrieved from training tasks\nif yes: append\nif no: repeat from step 2\n\nI am looking forward to interesting approaches by different competitors and would like to see the test tasks. (especially the one nearly all public kernels solve). \n\nI am proud to become a Kaggle Master in this awesome community. \nKudos to everyone involved in this competition!\n",
      "votes": 32
    },
    {
      "id": 864804,
      "postDate": "2020-05-28T07:37:14.257Z",
      "content": "<p>Congrats on reaching Master status!</p>",
      "rawMarkdown": "Congrats on reaching Master status!",
      "votes": 1
    },
    {
      "id": 864329,
      "postDate": "2020-05-28T00:27:01Z",
      "content": "<p>Oh I see, so if the output consists of a single color 3x3 grid, then this algorithm would sort of search for a 3x3 grid in the input.  Wow, surprised this worked so well. Seems almost too simple!</p>",
      "rawMarkdown": "Oh I see, so if the output consists of a single color 3x3 grid, then this algorithm would sort of search for a 3x3 grid in the input.  Wow, surprised this worked so well. Seems almost too simple!",
      "replies": [
        {
          "id": 864331,
          "postDate": "2020-05-28T00:28:20.450Z",
          "content": "<p>Yeah I also was suprised by its simplicity. But works for any grid and has more properties to it not only single color ones. that is just one example i used for visualisation purposes</p>",
          "rawMarkdown": "Yeah I also was suprised by its simplicity. But works for any grid and has more properties to it not only single color ones. that is just one example i used for visualisation purposes",
          "votes": 1
        },
        {
          "id": 864355,
          "postDate": "2020-05-28T00:48:26.997Z",
          "content": "<p>And even if it didn't know the rule it might just get lucky and select the right answer too I suppose. </p>\n\n<p>I think I had a similar function called \"CropShapeByProperty\" and it tried to decide what property of the shape was it trying to look for and then crop round that shape. Guess the simpler idea worked best.</p>",
          "rawMarkdown": "And even if it didn't know the rule it might just get lucky and select the right answer too I suppose. \n\nI think I had a similar function called \"CropShapeByProperty\" and it tried to decide what property of the shape was it trying to look for and then crop round that shape. Guess the simpler idea worked best."
        }
      ]
    },
    {
      "id": 865254,
      "postDate": "2020-05-28T13:59:22.193Z",
      "rawMarkdown": "",
      "isDeleted": true
    },
    {
      "id": 872105,
      "postDate": "2020-06-02T23:09:38.837Z",
      "content": "<p>Conglats! thanks for sharing.</p>",
      "rawMarkdown": "Conglats! thanks for sharing."
    }
  ],
  "complete": true,
  "source": "live",
  "fetched_at": "2026-10-19T22:05:28Z",
  "competition_id": 18329,
  "competition_slug": "abstraction-and-reasoning-challenge",
  "team_id": 4691611,
  "solution_url": "/competitions/abstraction-and-reasoning-challenge/writeups/8th-place-solution-part-1-object-detection"
}