{
  "id": 6711,
  "title": "Newcomer seeking wisdom",
  "url": "/competitions/dogs-vs-cats/discussion/6711",
  "author_name": "ebeckm",
  "post_date": "2013-12-29T15:01:51.683000",
  "votes": 0,
  "comment_count": 0,
  "views": 1701,
  "content": "<p>I am new to image recognition and would be interested to hear what others with more experience think about the following approach.</p>\n<p><strong>1. Define what it means to &quot;look like&quot; a cat</strong></p>\n<ul>\n<li><span style=\"line-height: 1.4\">Build a 3D set shaped like a cat's head using a finite union of polyhedron. One may be able to do this with autocad or some similar tool.</span></li>\n<li><span style=\"line-height: 1.4\">Define a parametric class of transformations that&nbsp;scale, rotate, and translate the 3D set.</span></li>\n<li><span style=\"line-height: 1.4\">For a given transformation, project the 3D set down into two dimensions. Because the 3D set is the finite union of polyhedron, the task is not hard. See here: http://www.mit.edu/~parrilo/cdc03_workshop/05_linear_elimination_2003_12_07_02_screen.pdf.</span></li>\n<li><span style=\"line-height: 1.4\">For each transformation (index transformations by \\theta) define the edge of the projected set as E(\\theta).</span></li>\n</ul>\n<p><br><strong>2. Determine how much each image &quot;looks like&quot; a cat.</strong></p>\n<ul>\n<li><span style=\"line-height: 1.4\">Run edge detection on each photo and define the edge set for photo i to be E_i.</span></li>\n<li><span style=\"line-height: 1.4\">For each transformation \\theta, define the a goodness of fit criterion. For example, \\int_{E(\\theta)} min ||x, E_i || dx</span></li>\n<li><span style=\"line-height: 1.4\">Define \\theta_i as the minimizer of the above criterion in image i, and define Q_i as the size of the criterion at \\theta_i in image i</span></li>\n</ul>\n<p><strong>3. Use the training data to classify based on Q_i</strong></p>\n<ul>\n<li><span style=\"line-height: 1.4\">Perhaps one could choose a threshold Q_hat to minimize some combination of type I and type II error in the training data.</span></li>\n<li><span style=\"line-height: 1.4\">If Q_i is less than Q_hat, classify as a &quot;cat&quot; and if Q_i is greater than Q_hat classify as &quot;not cat&quot;</span></li>\n</ul>\n<p><strong>4. Repeat steps 1 to 3 for dogs</strong></p>",
  "messages": [
    {
      "id": 36803,
      "postDate": "2013-12-29T15:01:51.683Z",
      "content": "<p>I am new to image recognition and would be interested to hear what others with more experience think about the following approach.</p>\n<p><strong>1. Define what it means to &quot;look like&quot; a cat</strong></p>\n<ul>\n<li><span style=\"line-height: 1.4\">Build a 3D set shaped like a cat's head using a finite union of polyhedron. One may be able to do this with autocad or some similar tool.</span></li>\n<li><span style=\"line-height: 1.4\">Define a parametric class of transformations that&nbsp;scale, rotate, and translate the 3D set.</span></li>\n<li><span style=\"line-height: 1.4\">For a given transformation, project the 3D set down into two dimensions. Because the 3D set is the finite union of polyhedron, the task is not hard. See here: http://www.mit.edu/~parrilo/cdc03_workshop/05_linear_elimination_2003_12_07_02_screen.pdf.</span></li>\n<li><span style=\"line-height: 1.4\">For each transformation (index transformations by \\theta) define the edge of the projected set as E(\\theta).</span></li>\n</ul>\n<p><br><strong>2. Determine how much each image &quot;looks like&quot; a cat.</strong></p>\n<ul>\n<li><span style=\"line-height: 1.4\">Run edge detection on each photo and define the edge set for photo i to be E_i.</span></li>\n<li><span style=\"line-height: 1.4\">For each transformation \\theta, define the a goodness of fit criterion. For example, \\int_{E(\\theta)} min ||x, E_i || dx</span></li>\n<li><span style=\"line-height: 1.4\">Define \\theta_i as the minimizer of the above criterion in image i, and define Q_i as the size of the criterion at \\theta_i in image i</span></li>\n</ul>\n<p><strong>3. Use the training data to classify based on Q_i</strong></p>\n<ul>\n<li><span style=\"line-height: 1.4\">Perhaps one could choose a threshold Q_hat to minimize some combination of type I and type II error in the training data.</span></li>\n<li><span style=\"line-height: 1.4\">If Q_i is less than Q_hat, classify as a &quot;cat&quot; and if Q_i is greater than Q_hat classify as &quot;not cat&quot;</span></li>\n</ul>\n<p><strong>4. Repeat steps 1 to 3 for dogs</strong></p>"
    }
  ],
  "comments": [],
  "raw_markdown_by_id": {
    "36803": ""
  }
}