{"id":8,"date":"2025-05-07T18:31:51","date_gmt":"2025-05-07T18:31:51","guid":{"rendered":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/?page_id=8"},"modified":"2025-12-12T17:34:53","modified_gmt":"2025-12-12T17:34:53","slug":"training-data","status":"publish","type":"page","link":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/training-data\/","title":{"rendered":"Control via Prompts"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Data Availability<\/h2>\n\n\n\n<p>The first roadblock to determining the architecture for this pipeline was the available data. We need to consider 4 key modalities for this:<br><br>                1. Natural Language Prompts<br>                2. Camera Trajectories<br>                3. RGB Video<br>                4. 3D Scene<\/p>\n\n\n\n<p>Based on these considerations, we found 2 main datasets:<\/p>\n\n\n\n<p><strong>The Exceptional Trajectories<\/strong> &#8211; A dataset of 115000 samples with natural language prompts and camera trajectories, along with pose data on human actors in the scene [1]. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"456\" height=\"279\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/Picture1.png\" alt=\"\" class=\"wp-image-164\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/Picture1.png 456w, https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/Picture1-300x184.png 300w\" sizes=\"auto, (max-width: 456px) 100vw, 456px\" \/><figcaption class=\"wp-element-caption\">Fig. 1 &#8211; Exceptional Trajectories Data Sample<\/figcaption><\/figure>\n\n\n\n<p><strong>GenDoP<\/strong> &#8211; A better curated dataset of 27000 samples with natural language prompts, camera trajectories, and RGB video [2].  <\/p>\n\n\n\n<p>With both the datasets, there was no 3D scene data available, necessitating an approach that would separate the grounding and the text-to-trajectory aspects of the pipeline.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">System Architecture<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"379\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/Screenshot-2025-12-11-123556-1024x379.png\" alt=\"\" class=\"wp-image-162\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/Screenshot-2025-12-11-123556-1024x379.png 1024w, https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/Screenshot-2025-12-11-123556-300x111.png 300w, https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/Screenshot-2025-12-11-123556-768x284.png 768w, https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/Screenshot-2025-12-11-123556.png 1451w\" sizes=\"auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><figcaption class=\"wp-element-caption\">Fig. 2 &#8211; Control via Natural-Language Cinematographic Prompts Architecture Diagram<\/figcaption><\/figure>\n\n\n\n<p>The key observation behind the architecture is that the user&#8217;s prompt can be separated into a series of anchors and trajectories. <strong>Anchors <\/strong>are physical keypoints that the camera should focus on, such as actors or objects of interest. <strong>Trajectories<\/strong> are the discrete camera movements that need to be made to go from one anchor to another. <\/p>\n\n\n\n<p>Therefore, an LLM is used to decompose the prompt, as seen in Figure 2, and then smaller prompts for anchors and trajectories are passed into the <strong>Anchor Detector<\/strong> and <strong>Text-To-Trajectory Model<\/strong> respectively.<\/p>\n\n\n\n<p>These are then combined through affine transformations to generate the final, grounded output trajectory, which is then passed into FLAIR Classic to control the robot. A small set of post-processing is done on the trajectory to ensure that the robot can physically execute the trajectory.<\/p>\n\n\n\n<p><strong>More details on the Anchor Detection and Text-to-Trajectory models can be seen on their respective pages.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Results<\/h2>\n\n\n\n<p>We can demonstrate this pipeline by showing results from an input prompt and scene.<\/p>\n\n\n\n<p><strong>Input Prompt:<\/strong> Slow dolly left from the actor to the laptop, then to the water bottle.<\/p>\n\n\n\n<p><strong>Input Scene: <\/strong>Figure 3 below shows the input scene, with Shaurye sitting on his chair and a laptop and water bottle on the table in front of him.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"615\" height=\"457\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/finalPicture2.png\" alt=\"\" class=\"wp-image-165\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/finalPicture2.png 615w, https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/finalPicture2-300x223.png 300w\" sizes=\"auto, (max-width: 615px) 100vw, 615px\" \/><figcaption class=\"wp-element-caption\">Fig. 3 &#8211; Input Scene<\/figcaption><\/figure>\n\n\n\n<p>The anchors are then detected, seen through the detected objects then a screenshot of the 3D anchor points on the pointcloud below. The points are in order red-green-blue, indicating the camera should start far away then move closer to the laptop and water bottle in succession.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"610\" height=\"457\" data-id=\"166\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/finalPicture3.png\" alt=\"\" class=\"wp-image-166\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/finalPicture3.png 610w, https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/finalPicture3-300x225.png 300w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><figcaption class=\"wp-element-caption\">Fig. 4 &#8211; Object Detections<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"509\" height=\"458\" data-id=\"167\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/finalPicture4.ping_.png\" alt=\"\" class=\"wp-image-167\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/finalPicture4.ping_.png 509w, https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/finalPicture4.ping_-300x270.png 300w\" sizes=\"auto, (max-width: 509px) 100vw, 509px\" \/><figcaption class=\"wp-element-caption\"><br>Fig. 5 &#8211; Anchor Points<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<p>The next step is to generate trajectories from the text prompts. Here is a visualization of one of the trajectories:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1024\" style=\"aspect-ratio: 1280 \/ 1024;\" width=\"1280\" autoplay loop muted src=\"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/Media1.mp4\" playsinline><\/video><figcaption class=\"wp-element-caption\">Fig. 6 &#8211; Generated Trajectory for &#8220;Dolly Left&#8221;<\/figcaption><\/figure>\n\n\n\n<p>Finally, the trajectories are transformed to between the anchor points, with camera alignments adjust to view the objects properly, and some extra processing to ensure it is within the robot&#8217;s maximum reach. Below you can see it exported into FLAIR, controlling the simulated robot.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"479\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/ScreenRecording2025-12-12101653-ezgif.com-video-to-gif-converter.gif\" alt=\"\" class=\"wp-image-168\" \/><figcaption class=\"wp-element-caption\">Fig. 7 &#8211; Final Result in FLAIR Classic<\/figcaption><\/figure>\n\n\n\n<p>While there is still significant work to be done in further improving the smoothness and accuracy of both the detected anchors and generated trajectories, this demonstrates that the system is fully functional and can be improved iteratively over time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">References<\/h2>\n\n\n\n<p>[1] Robin Courant, Nicolas Dufour, Xi Wang, Marc Christie, and Vicky Kalogeiton. E.T. the exceptional trajectories: Text-to-camera-trajectory generation with character awareness, 2024.<\/p>\n\n\n\n<p>[2] Mingxuan Zhang, Tianyi Wu, Jingwei Tan, Ziwei Liu, Gordon Wetzstein, and Dahua Lin. GenDoP: Auto-regressive camera trajectory generation as a director of photography, 2025. arXiv. <a href=\"https:\/\/arxiv.org\/abs\/2504.07083\">https:\/\/arxiv.org\/abs\/2504.07083<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Data Availability The first roadblock to determining the architecture for this pipeline was the available data. We need to consider 4 key modalities for this: 1. Natural Language Prompts 2. Camera Trajectories 3. RGB Video 4. 3D Scene Based on these considerations, we found 2 main datasets: The Exceptional Trajectories &#8211; A dataset of 115000 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/training-data\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Control via Prompts&#8221;<\/span><\/a><\/p>\n","protected":false},"author":251,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-8","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Control via Prompts - Computer Vision for Cinematographic Motion Control<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/training-data\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Control via Prompts - Computer Vision for Cinematographic Motion Control\" \/>\n<meta property=\"og:description\" content=\"Data Availability The first roadblock to determining the architecture for this pipeline was the available data. We need to consider 4 key modalities for this: 1. Natural Language Prompts 2. Camera Trajectories 3. RGB Video 4. 3D Scene Based on these considerations, we found 2 main datasets: The Exceptional Trajectories &#8211; A dataset of 115000 &hellip; Continue reading &quot;Control via Prompts&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/training-data\/\" \/>\n<meta property=\"og:site_name\" content=\"Computer Vision for Cinematographic Motion Control\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-12T17:34:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/Picture1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"456\" \/>\n\t<meta property=\"og:image:height\" content=\"279\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2025team1\\\/training-data\\\/\",\"url\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2025team1\\\/training-data\\\/\",\"name\":\"Control via Prompts - Computer Vision for Cinematographic Motion Control\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2025team1\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2025team1\\\/training-data\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2025team1\\\/training-data\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2025team1\\\/wp-content\\\/uploads\\\/sites\\\/133\\\/2025\\\/12\\\/Picture1.png\",\"datePublished\":\"2025-05-07T18:31:51+00:00\",\"dateModified\":\"2025-12-12T17:34:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2025team1\\\/training-data\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2025team1\\\/training-data\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2025team1\\\/training-data\\\/#primaryimage\",\"url\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2025team1\\\/wp-content\\\/uploads\\\/sites\\\/133\\\/2025\\\/12\\\/Picture1.png\",\"contentUrl\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2025team1\\\/wp-content\\\/uploads\\\/sites\\\/133\\\/2025\\\/12\\\/Picture1.png\",\"width\":456,\"height\":279},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2025team1\\\/training-data\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2025team1\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Control via Prompts\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2025team1\\\/#website\",\"url\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2025team1\\\/\",\"name\":\"Computer Vision for Cinematographic Motion Control\",\"description\":\"Shaurye Aggarwal and Kaustav Mukherjee\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2025team1\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Control via Prompts - Computer Vision for Cinematographic Motion Control","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/training-data\/","og_locale":"en_US","og_type":"article","og_title":"Control via Prompts - Computer Vision for Cinematographic Motion Control","og_description":"Data Availability The first roadblock to determining the architecture for this pipeline was the available data. We need to consider 4 key modalities for this: 1. Natural Language Prompts 2. Camera Trajectories 3. RGB Video 4. 3D Scene Based on these considerations, we found 2 main datasets: The Exceptional Trajectories &#8211; A dataset of 115000 &hellip; Continue reading \"Control via Prompts\"","og_url":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/training-data\/","og_site_name":"Computer Vision for Cinematographic Motion Control","article_modified_time":"2025-12-12T17:34:53+00:00","og_image":[{"width":456,"height":279,"url":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/Picture1.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/training-data\/","url":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/training-data\/","name":"Control via Prompts - Computer Vision for Cinematographic Motion Control","isPartOf":{"@id":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/training-data\/#primaryimage"},"image":{"@id":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/training-data\/#primaryimage"},"thumbnailUrl":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/Picture1.png","datePublished":"2025-05-07T18:31:51+00:00","dateModified":"2025-12-12T17:34:53+00:00","breadcrumb":{"@id":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/training-data\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/training-data\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/training-data\/#primaryimage","url":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/Picture1.png","contentUrl":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-content\/uploads\/sites\/133\/2025\/12\/Picture1.png","width":456,"height":279},{"@type":"BreadcrumbList","@id":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/training-data\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/"},{"@type":"ListItem","position":2,"name":"Control via Prompts"}]},{"@type":"WebSite","@id":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/#website","url":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/","name":"Computer Vision for Cinematographic Motion Control","description":"Shaurye Aggarwal and Kaustav Mukherjee","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-json\/wp\/v2\/pages\/8","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-json\/wp\/v2\/users\/251"}],"replies":[{"embeddable":true,"href":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-json\/wp\/v2\/comments?post=8"}],"version-history":[{"count":6,"href":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-json\/wp\/v2\/pages\/8\/revisions"}],"predecessor-version":[{"id":170,"href":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-json\/wp\/v2\/pages\/8\/revisions\/170"}],"wp:attachment":[{"href":"https:\/\/mscvprojects.ri.cmu.edu\/2025team1\/wp-json\/wp\/v2\/media?parent=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}