{"id":2236,"date":"2018-04-24T01:54:22","date_gmt":"2018-04-24T05:54:22","guid":{"rendered":"http:\/\/www.rexfeng.com\/blog\/?p=2236"},"modified":"2018-04-24T01:54:22","modified_gmt":"2018-04-24T05:54:22","slug":"intro-to-computer-vision","status":"publish","type":"post","link":"https:\/\/www.rexfeng.com\/blog\/2018\/04\/intro-to-computer-vision\/","title":{"rendered":"Intro to Computer Vision"},"content":{"rendered":"<p>I&#8217;m new to computer vision and a lot of the basic concepts are very interesting. As an iOS developer, my interests comes from using <a href=\"https:\/\/developer.apple.com\/documentation\/coreml\">CoreML<\/a> &amp; Apple&#8217;s <a href=\"https:\/\/developer.apple.com\/documentation\/vision\">Vision<\/a> in apps to improve the user experience.<\/p>\n<p>Two common tasks are\u00a0classification and object detection. Classification allows you to detect dominant objects present in an image. For example, classification can tell you that photo is probably of a car.<\/p>\n<p>Object detection is much more difficult since it not only recognizes what objects are present, but also detects where they are in the image. This means that object detection can tell you that there is probably a car within these bounds of the image.<\/p>\n<p>What&#8217;s important is that the machine learning model runs in an acceptable amount of time. Either\u00a0asynchronous in the background or in real time. Apple provides a listing of sample models for classification at\u00a0<a href=\"https:\/\/developer.apple.com\/machine-learning\/\">https:\/\/developer.apple.com\/machine-learning\/<\/a>.<\/p>\n<p>For real time object detection, <a href=\"https:\/\/pjreddie.com\/darknet\/yolo\/\">TinyYOLO<\/a> is an option, even if the frame rate is not near 60 fps today. Other real time detection models like <a href=\"https:\/\/pjreddie.com\/darknet\/yolo\/\">YOLO<\/a> or\u00a0R-CNN are not going to provide a sufficient experience on mobile devices today.<\/p>\n<p>One other interesting thing I came across is the\u00a0<a href=\"http:\/\/host.robots.ox.ac.uk\/pascal\/VOC\/voc2012\/index.html\">PASCAL\u00a0Visual Object Classes<\/a> (VOC). These are common objects used for benchmarking object classification.<\/p>\n<p>For 2012,\u00a0the twenty object classes that have been selected were:<\/p>\n<ul>\n<li>Person: person Animal: bird, cat, cow, dog, horse, sheep<\/li>\n<li>Vehicle: aeroplane, bicycle, boat, bus, car, motorbike, train<\/li>\n<li>Indoor: bottle, chair, dining table, potted plant, sofa, tv\/monitor<\/li>\n<\/ul>\n<p>These are common objects used to train\u00a0classification models.<\/p>\n<p>Computer vision used with <a href=\"https:\/\/developer.apple.com\/machine-learning\/\">machine learning<\/a> has a tremendous amount of potential. Whether used with AR or other use cases, they can provide a compelling user experience beyond <a href=\"https:\/\/medium.com\/@timanglade\/how-hbos-silicon-valley-built-not-hotdog-with-mobile-tensorflow-keras-react-native-ef03260747f3\">Not Hotdog<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m new to computer vision and a lot of the basic concepts are very interesting. As an iOS developer, my interests comes from using CoreML &amp; Apple&#8217;s Vision in apps to improve the user experience. Two common tasks are\u00a0classification and object detection. Classification allows you to detect dominant objects present in an image. For example, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1029,7],"tags":[380,1346,1386,966,1390,954,1389,1388,1385,1387],"class_list":["post-2236","post","type-post","status-publish","format-standard","hentry","category-programming","category-tech","tag-apple","tag-ar","tag-computervision","tag-ios","tag-machinelearning","tag-ml","tag-pascal","tag-tinyyolo","tag-vision","tag-yolo"],"_links":{"self":[{"href":"https:\/\/www.rexfeng.com\/blog\/wp-json\/wp\/v2\/posts\/2236","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rexfeng.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rexfeng.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rexfeng.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rexfeng.com\/blog\/wp-json\/wp\/v2\/comments?post=2236"}],"version-history":[{"count":4,"href":"https:\/\/www.rexfeng.com\/blog\/wp-json\/wp\/v2\/posts\/2236\/revisions"}],"predecessor-version":[{"id":2240,"href":"https:\/\/www.rexfeng.com\/blog\/wp-json\/wp\/v2\/posts\/2236\/revisions\/2240"}],"wp:attachment":[{"href":"https:\/\/www.rexfeng.com\/blog\/wp-json\/wp\/v2\/media?parent=2236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rexfeng.com\/blog\/wp-json\/wp\/v2\/categories?post=2236"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rexfeng.com\/blog\/wp-json\/wp\/v2\/tags?post=2236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}