{"id":1343,"date":"2018-11-28T22:19:19","date_gmt":"2018-11-29T03:19:19","guid":{"rendered":"http:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/?p=1343"},"modified":"2018-11-28T22:20:49","modified_gmt":"2018-11-29T03:20:49","slug":"noah-hillman-computer-vision-gestures","status":"publish","type":"post","link":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/nahillman\/noah-hillman-computer-vision-gestures\/","title":{"rendered":"Noah Hillman &#8211; Computer Vision Gestures"},"content":{"rendered":"<p>For my vision controlled gesture, I created a pong game where the user controls their &#8220;paddle&#8221; with their movement.<\/p>\n<p>For easier and more effective tracking I used the color tracking method although point tracking would have worked as well. Because the raw output of the color tracking was very jerky, I filtered and smoothed the output with a running median of the last 5 values. The game also tracks the number of hits and resets with a random starting shot when you miss. For this project I only used a simple AI control that will never miss but this could easily be adapted to fit multiple user inputs to do a player vs player match.<\/p>\n<p>For the demo I put the video tracking feed as a background to make it easy to visualize the motion.<\/p>\n<p><iframe loading=\"lazy\" width=\"1000\" height=\"563\" src=\"https:\/\/www.youtube.com\/embed\/IL9lgsunwns?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1353\" src=\"http:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/wp-content\/uploads\/sites\/8\/2018\/11\/Pong-11_28_2018-10_11_58-PM-800x415.png\" alt=\"\" width=\"800\" height=\"415\" srcset=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/wp-content\/uploads\/sites\/8\/2018\/11\/Pong-11_28_2018-10_11_58-PM-800x415.png 800w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/wp-content\/uploads\/sites\/8\/2018\/11\/Pong-11_28_2018-10_11_58-PM-768x399.png 768w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/wp-content\/uploads\/sites\/8\/2018\/11\/Pong-11_28_2018-10_11_58-PM-1024x532.png 1024w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/wp-content\/uploads\/sites\/8\/2018\/11\/Pong-11_28_2018-10_11_58-PM-578x300.png 578w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/wp-content\/uploads\/sites\/8\/2018\/11\/Pong-11_28_2018-10_11_58-PM.png 1920w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For my vision controlled gesture, I created a pong game where the user controls their &#8220;paddle&#8221; with their movement. For easier and more effective tracking I used the color tracking method although point tracking would have worked as well. Because the raw output of the color tracking was very jerky, I filtered and smoothed the&#8230; <\/p>\n<div class=\"link-more\"><a href=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/nahillman\/noah-hillman-computer-vision-gestures\/\">Read More<\/a><\/div>\n","protected":false},"author":99,"featured_media":1352,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"cybocfi_hide_featured_image":"","footnotes":""},"categories":[19],"tags":[],"class_list":["post-1343","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-computer-vision-gestures"],"jetpack_featured_media_url":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/wp-content\/uploads\/sites\/8\/2018\/11\/phys-ctx-11_28_2018-10_13_57-PM.png","_links":{"self":[{"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/wp-json\/wp\/v2\/posts\/1343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/wp-json\/wp\/v2\/users\/99"}],"replies":[{"embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/wp-json\/wp\/v2\/comments?post=1343"}],"version-history":[{"count":3,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/wp-json\/wp\/v2\/posts\/1343\/revisions"}],"predecessor-version":[{"id":1358,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/wp-json\/wp\/v2\/posts\/1343\/revisions\/1358"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/wp-json\/wp\/v2\/media\/1352"}],"wp:attachment":[{"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/wp-json\/wp\/v2\/media?parent=1343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/wp-json\/wp\/v2\/categories?post=1343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd3200-b18\/wp-json\/wp\/v2\/tags?post=1343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}