{"id":148,"date":"2013-12-03T03:28:56","date_gmt":"2013-12-03T01:28:56","guid":{"rendered":"http:\/\/blog.teleranek.org\/?p=148"},"modified":"2025-06-29T12:29:13","modified_gmt":"2025-06-29T10:29:13","slug":"automatic-drawing-recognition-for-android","status":"publish","type":"post","link":"https:\/\/blog.teleranek.org\/?p=148","title":{"rendered":"Automatic drawing recognition for Android"},"content":{"rendered":"<p>I&#8217;ve recently made a little app that recognizes drawings. Like all recognition software, to recognize something it must have some source of information. In case of drawings, I needed drawings of categorized objects drawed by different people. One of the <a href=\"http:\/\/cybertron.cg.tu-berlin.de\/eitz\/projects\/classifysketch\/\">papers<\/a> from SIGGRAPH came to the rescue &#8211; it appears that somebody already made something like that. They have shared different resources that helped them with their work, one of them is an archive with 20 000 categorized images. The images were created using <a href=\"https:\/\/www.mturk.com\">amazon mechanizal turk<\/a>.<br \/>\nInformation in this SIGGRAPH paper was a bit &#8220;sketchy&#8221; so I&#8217;ve created my own database and own interpretation of the recognition engine. My database appears to be 2x smaller than the one from the paper, but its nothing to be proud of because I&#8217;ve already had all these categorized images and the paper that gave me hints.<br \/>\nThe workflow is as follows:<\/p>\n<p>first, you draw an image and see at the bottom buttons what was recognized<\/p>\n<p><a href=\"http:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-56-56.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-56-56-737x1024.png\" alt=\"\" title=\"1st step\" width=\"737\" height=\"1024\" class=\"size-large wp-image-149\" srcset=\"https:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-56-56-737x1024.png 737w, https:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-56-56-216x300.png 216w, https:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-56-56.png 800w\" sizes=\"auto, (max-width: 737px) 100vw, 737px\" \/><\/a><\/p>\n<p>Cool, it was recognized as &#8220;sponge bob&#8221;.<\/p>\n<p><a href=\"http:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-57-13.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-57-13-734x1024.png\" alt=\"\" title=\"2nd step\" width=\"734\" height=\"1024\" class=\"size-large wp-image-150\" srcset=\"https:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-57-13-734x1024.png 734w, https:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-57-13-215x300.png 215w, https:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-57-13.png 800w\" sizes=\"auto, (max-width: 734px) 100vw, 734px\" \/><\/a><\/p>\n<p>Let&#8217;s draw him an apple<\/p>\n<p><a href=\"http:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-57-42.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-57-42-734x1024.png\" alt=\"\" title=\"3rd step\" width=\"734\" height=\"1024\" class=\"size-large wp-image-151\" srcset=\"https:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-57-42-734x1024.png 734w, https:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-57-42-215x299.png 215w, https:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-57-42.png 796w\" sizes=\"auto, (max-width: 734px) 100vw, 734px\" \/><\/a><\/p>\n<p>Now position the apple on spongebob<\/p>\n<p><a href=\"http:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-58-23.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-58-23-734x1024.png\" alt=\"\" title=\"4th step\" width=\"734\" height=\"1024\" class=\"size-large wp-image-152\" srcset=\"https:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-58-23-734x1024.png 734w, https:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-58-23-215x300.png 215w, https:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-58-23.png 800w\" sizes=\"auto, (max-width: 734px) 100vw, 734px\" \/><\/a><\/p>\n<p>Voila :f<\/p>\n<p><a href=\"http:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-58-46.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-58-46-736x1024.png\" alt=\"\" title=\"last step\" width=\"736\" height=\"1024\" class=\"size-large wp-image-153\" srcset=\"https:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-58-46-736x1024.png 736w, https:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-58-46-215x300.png 215w, https:\/\/blog.teleranek.org\/wp-content\/uploads\/2013\/12\/2013-05-16-19-58-46.png 800w\" sizes=\"auto, (max-width: 736px) 100vw, 736px\" \/><\/a><\/p>\n<p>Funny story, I&#8217;ve uploaded this app to Samsung app store, but they have rejected it on the last stage, because the tester said that his drawings shouldn&#8217;t disappear (they are replaced with &#8220;beautified&#8221; versions of your drawings). I guess I should make more idiot-proof app (as all apps and especially games these days) but I don&#8217;t know if I&#8217;m too old for this sh!t.<\/p>\n<p>bz<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve recently made a little app that recognizes drawings. Like all recognition software, to recognize something it must have some source of information. In case of drawings, I needed drawings of categorized objects drawed by different people. One of the papers from SIGGRAPH came to the rescue &#8211; it appears that somebody already made something [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[74,76,75],"class_list":["post-148","post","type-post","status-publish","format-standard","hentry","category-flash-experiments","tag-android","tag-computer-vision","tag-drawing-recognition"],"_links":{"self":[{"href":"https:\/\/blog.teleranek.org\/index.php?rest_route=\/wp\/v2\/posts\/148","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.teleranek.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.teleranek.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.teleranek.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.teleranek.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=148"}],"version-history":[{"count":10,"href":"https:\/\/blog.teleranek.org\/index.php?rest_route=\/wp\/v2\/posts\/148\/revisions"}],"predecessor-version":[{"id":175,"href":"https:\/\/blog.teleranek.org\/index.php?rest_route=\/wp\/v2\/posts\/148\/revisions\/175"}],"wp:attachment":[{"href":"https:\/\/blog.teleranek.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=148"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.teleranek.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=148"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.teleranek.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=148"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}