{"id":179,"date":"2024-11-17T04:44:31","date_gmt":"2024-11-17T04:44:31","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama0\/?p=179"},"modified":"2024-11-29T13:58:25","modified_gmt":"2024-11-29T13:58:25","slug":"codys-status-report-for-11-16","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama0\/2024\/11\/17\/codys-status-report-for-11-16\/","title":{"rendered":"Cody&#8217;s status report for 11\/16"},"content":{"rendered":"<p>After trying another OCR library which ended up also being more inaccurate than I would like, I decided to implement my own character recognition. To do this, I added a small database of characters and I perform nearest-neighbor on each isolated character. This seems to result in high accuracy in the testing I&#8217;ve done. I also made the logic for mapping characters onto the board more robust, accounting for if fewer than all 4 corner characters are identified (we still need at least 2). The mapping appears pretty accurate but if a tile is close to the edge, it sometimes gets mapped to the adjacent tile. I will try to improve this as much as I can. For the demo, I plan to show the pipeline of image -&gt; preprocessing -&gt; contour recognition and filtering -&gt; individual classification -&gt; mapping onto board.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After trying another OCR library which ended up also being more inaccurate than I would like, I decided to implement my own character recognition. To do this, I added a small database of characters and I perform nearest-neighbor on each isolated character. This seems to result in high accuracy in the testing I&#8217;ve done. I &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama0\/2024\/11\/17\/codys-status-report-for-11-16\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Cody&#8217;s status report for 11\/16&#8221;<\/span><\/a><\/p>\n","protected":false},"author":991,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[4],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama0\/wp-json\/wp\/v2\/posts\/179"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama0\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama0\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama0\/wp-json\/wp\/v2\/users\/991"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama0\/wp-json\/wp\/v2\/comments?post=179"}],"version-history":[{"count":1,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama0\/wp-json\/wp\/v2\/posts\/179\/revisions"}],"predecessor-version":[{"id":180,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama0\/wp-json\/wp\/v2\/posts\/179\/revisions\/180"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama0\/wp-json\/wp\/v2\/media?parent=179"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama0\/wp-json\/wp\/v2\/categories?post=179"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama0\/wp-json\/wp\/v2\/tags?post=179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}