{"id":602,"date":"2011-05-26T23:19:10","date_gmt":"2011-05-26T22:19:10","guid":{"rendered":"http:\/\/pkmital.com\/home\/?p=602"},"modified":"2011-05-26T23:19:10","modified_gmt":"2011-05-26T22:19:10","slug":"facial-appearance-modelingtracking","status":"publish","type":"post","link":"https:\/\/pkmital.com\/home\/facial-appearance-modelingtracking\/","title":{"rendered":"Facial Appearance Modeling\/Tracking"},"content":{"rendered":"<p><a href=\"https:\/\/pkmital.com\/home\/wp-content\/uploads\/2011\/05\/stasm_fit.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/pkmital.com\/home\/wp-content\/uploads\/2011\/05\/stasm_fit.png\" alt=\"\" title=\"stasm_fit\" width=\"402\" height=\"322\" class=\"aligncenter size-full wp-image-608\" \/><\/a><br \/>\nI&#8217;ve been working on developing a method for automatic head-pose tracking, and along the way have come to model facial appearances.  I start by initializing a facial bounding box using the Viola-Jones detector, a well known and robust detector used for training objects.  This allows me to centralize the face.  Once I know where the 2D plane of the face is in an image, I can register an Active Shape Model like so:<br \/>\n<a href=\"https:\/\/pkmital.com\/home\/wp-content\/uploads\/2011\/05\/asm-fit.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/pkmital.com\/home\/wp-content\/uploads\/2011\/05\/asm-fit.png\" alt=\"\" title=\"asm-fit\" width=\"328\" height=\"266\" class=\"aligncenter size-full wp-image-603\" \/><\/a><br \/>\nAfter multiple views of the possible appearance variations of my face, including slight rotations, I construct an appearance model.<br \/>\n<a href=\"https:\/\/pkmital.com\/home\/wp-content\/uploads\/2011\/05\/aam-fit.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/pkmital.com\/home\/wp-content\/uploads\/2011\/05\/aam-fit.png\" alt=\"\" title=\"aam-fit\" width=\"328\" height=\"266\" class=\"aligncenter size-full wp-image-607\" \/><\/a><br \/>\nThe idea I am working with is using the first components of variations of this appearance model for determining pose.  Here I show the first two basis vectors and the images they reconstruct:<br \/>\n<a href=\"https:\/\/pkmital.com\/home\/wp-content\/uploads\/2011\/05\/face-horizontal1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/pkmital.com\/home\/wp-content\/uploads\/2011\/05\/face-horizontal1-300x34.png\" alt=\"\" title=\"face-horizontal\" width=\"300\" height=\"34\" class=\"aligncenter size-medium wp-image-606\" \/><\/a><a href=\"https:\/\/pkmital.com\/home\/wp-content\/uploads\/2011\/05\/face-vertical.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/pkmital.com\/home\/wp-content\/uploads\/2011\/05\/face-vertical-300x36.png\" alt=\"\" title=\"face-vertical\" width=\"300\" height=\"36\" class=\"aligncenter size-medium wp-image-604\" \/><\/a><br \/>\nAs you may notice, these two basis vectors very neatly encode rotation.  By looking at the eigenvalues of the model, you can also interpret pose.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been working on developing a method for automatic head-pose tracking, and along the way have come to model facial appearances. I start by initializing a facial bounding box using&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,16],"tags":[32,84,138,139,140,262,360,365],"class_list":["post-602","post","type-post","status-publish","format-standard","hentry","category-computer-vision","category-technology","tag-appearance-modeling","tag-computer-vision","tag-eye-movements","tag-face-recognition","tag-face-tracking","tag-opencv","tag-video","tag-vision"],"acf":[],"_links":{"self":[{"href":"https:\/\/pkmital.com\/home\/wp-json\/wp\/v2\/posts\/602","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pkmital.com\/home\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pkmital.com\/home\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pkmital.com\/home\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/pkmital.com\/home\/wp-json\/wp\/v2\/comments?post=602"}],"version-history":[{"count":0,"href":"https:\/\/pkmital.com\/home\/wp-json\/wp\/v2\/posts\/602\/revisions"}],"wp:attachment":[{"href":"https:\/\/pkmital.com\/home\/wp-json\/wp\/v2\/media?parent=602"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pkmital.com\/home\/wp-json\/wp\/v2\/categories?post=602"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pkmital.com\/home\/wp-json\/wp\/v2\/tags?post=602"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}