{"id":8310,"date":"2012-10-03T18:32:29","date_gmt":"2012-10-03T15:32:29","guid":{"rendered":"http:\/\/hgpu.org\/?p=8310"},"modified":"2012-10-03T18:32:29","modified_gmt":"2012-10-03T15:32:29","slug":"shape-modeling-and-gpu-based-image-warping","status":"publish","type":"post","link":"https:\/\/hgpu.org\/?p=8310","title":{"rendered":"Shape Modeling and GPU Based Image Warping"},"content":{"rendered":"<p>This project addresses the problems of manually placing facial landmarks on a portrait and finding a fast way to warp the annotated image of a face. While there are many approaches to automatically find facial landmarks, most of them provide insufficient results in uncontrolled environments. Thus I introduce a method to manually adjust a non-rigid shape on a portrait. This method utilizes a statistical shape model based on point distribution models. With these manually placed landmarks the image of a face can be warped into another shape. To warp the image I use a piecewise affine transformation. This way of transforming, however, tends to be computationally intense and therefore slow. Thus in the second part of the project I introduce a way to perform a piecewise affine transformation with enhanced performance using shaders in OpenGL. This project is made in collaboration with the Pedagogical University of Berne, Switzerland and will be part of a system for diversity research named chic-o-mat. Eventually the system will run on an iPhone as an application available to the public. Therefore, the provided solutions are based on iPhone programming using the multi-touch screen for the shape adjustment and the GPU of the latest iPhone 4S. A test application demonstrates up to 20X speedup performing piecewise warping using the GPU.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This project addresses the problems of manually placing facial landmarks on a portrait and finding a fast way to warp the annotated image of a face. While there are many approaches to automatically find facial landmarks, most of them provide insufficient results in uncontrolled environments. Thus I introduce a method to manually adjust a non-rigid [&hellip;]<\/p>\n","protected":false},"author":351,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[11,73,3],"tags":[1238,1782,1791,182,390],"class_list":["post-8310","post","type-post","status-publish","format-standard","hentry","category-computer-science","category-computer-vision","category-paper","tag-arm","tag-computer-science","tag-computer-vision","tag-opengl","tag-thesis"],"views":2398,"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/8310","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/users\/351"}],"replies":[{"embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8310"}],"version-history":[{"count":0,"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/8310\/revisions"}],"wp:attachment":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8310"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8310"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}