{"id":26,"date":"2026-05-06T17:06:57","date_gmt":"2026-05-06T17:06:57","guid":{"rendered":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/?page_id=26"},"modified":"2026-05-07T01:43:22","modified_gmt":"2026-05-07T01:43:22","slug":"approach","status":"publish","type":"page","link":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/approach\/","title":{"rendered":"Approach"},"content":{"rendered":"\n<p>We first evaluate current SOTA zero-shot metric and relative depth models directly on NEA&#8217;s data suite, quantifying where and how these failure modes manifest in the Firefly&#8217;s specific operational environment. This evaluation drives our approach down one of two paths:<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\"><em><strong>Path 1 \u2014 No Existing Model Generalizes Sufficiently<\/strong><\/em><\/h2>\n\n\n\n<p>We deploy a learning-based framework that treats sparse LiDAR points as geometric anchors. We can fuse through the following steps:<\/p>\n\n\n\n<p><strong>Step 1- LiDAR Projection into Image Plane<\/strong><\/p>\n\n\n\n<p><math display=\"block\"><semantics><mrow><mrow><mo fence=\"true\">[<\/mo><mtable rowspacing=\"0.16em\" columnalign=\"center\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>u<\/mi><mi>i<\/mi><\/msub><\/mstyle><\/mtd><\/mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>v<\/mi><mi>i<\/mi><\/msub><\/mstyle><\/mtd><\/mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>d<\/mi><mi>i<\/mi><\/msub><\/mstyle><\/mtd><\/mtr><\/mtable><mo fence=\"true\">]<\/mo><\/mrow><mo>=<\/mo><mi mathvariant=\"bold\">K<\/mi><mo stretchy=\"false\">[<\/mo><mi mathvariant=\"bold\">R<\/mi><mi mathvariant=\"normal\">\u2223<\/mi><mi mathvariant=\"bold\">t<\/mi><mo stretchy=\"false\">]<\/mo><mrow><mo fence=\"true\">[<\/mo><mtable rowspacing=\"0.16em\" columnalign=\"center\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>X<\/mi><mi>i<\/mi><\/msub><\/mstyle><\/mtd><\/mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>Y<\/mi><mi>i<\/mi><\/msub><\/mstyle><\/mtd><\/mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msub><mi>Z<\/mi><mi>i<\/mi><\/msub><\/mstyle><\/mtd><\/mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mn>1<\/mn><\/mstyle><\/mtd><\/mtr><\/mtable><mo fence=\"true\">]<\/mo><\/mrow><mo separator=\"true\">,<\/mo><mspace width=\"1em\"><\/mspace><mo stretchy=\"false\">(<\/mo><msub><mi>u<\/mi><mi>i<\/mi><\/msub><mo separator=\"true\">,<\/mo><msub><mi>v<\/mi><mi>i<\/mi><\/msub><mo stretchy=\"false\">)<\/mo><mo>=<\/mo><mrow><mo fence=\"true\">(<\/mo><mfrac><msub><mi>u<\/mi><mi>i<\/mi><\/msub><msub><mi>d<\/mi><mi>i<\/mi><\/msub><\/mfrac><mo separator=\"true\">,<\/mo><mfrac><msub><mi>v<\/mi><mi>i<\/mi><\/msub><msub><mi>d<\/mi><mi>i<\/mi><\/msub><\/mfrac><mo fence=\"true\">)<\/mo><\/mrow><\/mrow><annotation encoding=\"application\/x-tex\">\\begin{bmatrix} u_i \\\\ v_i \\\\ d_i \\end{bmatrix} = \\mathbf{K} [\\mathbf{R} | \\mathbf{t}] \\begin{bmatrix} X_i \\\\ Y_i \\\\ Z_i \\\\ 1 \\end{bmatrix}, \\quad (u_i, v_i) = \\left(\\frac{u_i}{d_i}, \\frac{v_i}{d_i}\\right)<\/annotation><\/semantics><\/math><\/p>\n\n\n\n<p><strong>Step 2 &#8211; Anchor Correspondence<\/strong><\/p>\n\n\n\n<p><math display=\"block\"><semantics><mrow><mi mathvariant=\"script\">A<\/mi><mo>=<\/mo><mo stretchy=\"false\">{<\/mo><mo stretchy=\"false\">(<\/mo><msubsup><mi>d<\/mi><mi>i<\/mi><mi>r<\/mi><\/msubsup><mo separator=\"true\">,<\/mo><mtext>&nbsp;<\/mtext><msubsup><mi>d<\/mi><mi>i<\/mi><mi>L<\/mi><\/msubsup><mo stretchy=\"false\">)<\/mo><mo stretchy=\"false\">}<\/mo><mspace width=\"1em\"><\/mspace><mtext>where<\/mtext><mspace width=\"1em\"><\/mspace><msubsup><mi>d<\/mi><mi>i<\/mi><mi>r<\/mi><\/msubsup><mo>=<\/mo><msup><mi>D<\/mi><mi>r<\/mi><\/msup><mo stretchy=\"false\">(<\/mo><msub><mi>u<\/mi><mi>i<\/mi><\/msub><mo separator=\"true\">,<\/mo><msub><mi>v<\/mi><mi>i<\/mi><\/msub><mo stretchy=\"false\">)<\/mo><\/mrow><annotation encoding=\"application\/x-tex\">\\mathcal{A} = \\{(d^r_i,\\ d^L_i)\\} \\quad \\text{where} \\quad d^r_i = D^r(u_i, v_i)<\/annotation><\/semantics><\/math><\/p>\n\n\n\n<p><strong>Step 3 &#8211; Affine Calibration via Least Squares<\/strong><\/p>\n\n\n\n<p><math display=\"block\"><semantics><mrow><munder><mrow><mi>min<\/mi><mo>\u2061<\/mo><\/mrow><mrow><mi>s<\/mi><mo separator=\"true\">,<\/mo><mtext>\u2009<\/mtext><mi>t<\/mi><\/mrow><\/munder><munder><mo>\u2211<\/mo><mi>i<\/mi><\/munder><msup><mrow><mo fence=\"true\">(<\/mo><mi>s<\/mi><mo>\u22c5<\/mo><msubsup><mi>d<\/mi><mi>i<\/mi><mi>r<\/mi><\/msubsup><mo>+<\/mo><mi>t<\/mi><mo>\u2212<\/mo><msubsup><mi>d<\/mi><mi>i<\/mi><mi>L<\/mi><\/msubsup><mo fence=\"true\">)<\/mo><\/mrow><mn>2<\/mn><\/msup><mspace width=\"1em\"><\/mspace><mo>\u21d2<\/mo><mspace width=\"1em\"><\/mspace><mo stretchy=\"false\">[<\/mo><mi>s<\/mi><mo separator=\"true\">,<\/mo><mtext>&nbsp;<\/mtext><mi>t<\/mi><msup><mo stretchy=\"false\">]<\/mo><mi mathvariant=\"normal\">\u22a4<\/mi><\/msup><mo>=<\/mo><mo stretchy=\"false\">(<\/mo><msup><mi mathvariant=\"bold\">A<\/mi><mi mathvariant=\"normal\">\u22a4<\/mi><\/msup><mi mathvariant=\"bold\">A<\/mi><msup><mo stretchy=\"false\">)<\/mo><mrow><mo>\u2212<\/mo><mn>1<\/mn><\/mrow><\/msup><msup><mi mathvariant=\"bold\">A<\/mi><mi mathvariant=\"normal\">\u22a4<\/mi><\/msup><mi mathvariant=\"bold\">b<\/mi><\/mrow><annotation encoding=\"application\/x-tex\">\\min_{s,\\, t} \\sum_{i} \\left( s \\cdot d^r_i + t &#8211; d^L_i \\right)^2 \\quad \\Rightarrow \\quad [s,\\ t]^\\top = (\\mathbf{A}^\\top \\mathbf{A})^{-1} \\mathbf{A}^\\top \\mathbf{b}<\/annotation><\/semantics><\/math><\/p>\n\n\n\n<p><strong>Step 4 &#8211; Dense Calibrated Depth Map<\/strong><\/p>\n\n\n\n<p><math display=\"block\"><semantics><mrow><msub><mi>D<\/mi><mtext>cal<\/mtext><\/msub><mo stretchy=\"false\">(<\/mo><mi>u<\/mi><mo separator=\"true\">,<\/mo><mi>v<\/mi><mo stretchy=\"false\">)<\/mo><mo>=<\/mo><mi>s<\/mi><mo>\u22c5<\/mo><msup><mi>D<\/mi><mi>r<\/mi><\/msup><mo stretchy=\"false\">(<\/mo><mi>u<\/mi><mo separator=\"true\">,<\/mo><mi>v<\/mi><mo stretchy=\"false\">)<\/mo><mo>+<\/mo><mi>t<\/mi><\/mrow><annotation encoding=\"application\/x-tex\">D_{\\text{cal}}(u, v) = s \\cdot D^r(u, v) + t<\/annotation><\/semantics><\/math><\/p>\n\n\n\n<p><strong>Step 5 &#8211; Total Fusion<\/strong><\/p>\n\n\n\n<p><math display=\"block\"><semantics><mrow><msub><mi>D<\/mi><mtext>fused<\/mtext><\/msub><mo stretchy=\"false\">(<\/mo><mi>u<\/mi><mo separator=\"true\">,<\/mo><mi>v<\/mi><mo stretchy=\"false\">)<\/mo><mo>=<\/mo><mrow><mo fence=\"true\">{<\/mo><mtable rowspacing=\"0.36em\" columnalign=\"left left\" columnspacing=\"1em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><msubsup><mi>d<\/mi><mi>i<\/mi><mi>L<\/mi><\/msubsup><\/mstyle><\/mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><mtext>if&nbsp;<\/mtext><mo stretchy=\"false\">(<\/mo><mi>u<\/mi><mo separator=\"true\">,<\/mo><mi>v<\/mi><mo stretchy=\"false\">)<\/mo><mo>\u2208<\/mo><mi mathvariant=\"script\">A<\/mi><\/mrow><\/mstyle><\/mtd><\/mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mrow><msub><mi>D<\/mi><mtext>cal<\/mtext><\/msub><mo stretchy=\"false\">(<\/mo><mi>u<\/mi><mo separator=\"true\">,<\/mo><mi>v<\/mi><mo stretchy=\"false\">)<\/mo><\/mrow><\/mstyle><\/mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"false\"><mtext>otherwise<\/mtext><\/mstyle><\/mtd><\/mtr><\/mtable><\/mrow><\/mrow><annotation encoding=\"application\/x-tex\">D_{\\text{fused}}(u, v) = \\begin{cases} d^L_i &amp; \\text{if } (u, v) \\in \\mathcal{A} \\\\ D_{\\text{cal}}(u, v) &amp; \\text{otherwise} \\end{cases}<\/annotation><\/semantics><\/math><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"950\" height=\"748\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/wp-content\/uploads\/sites\/154\/2026\/05\/Screenshot-2026-05-06-at-6.35.47-PM.png\" alt=\"\" class=\"wp-image-132\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/wp-content\/uploads\/sites\/154\/2026\/05\/Screenshot-2026-05-06-at-6.35.47-PM.png 950w, https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/wp-content\/uploads\/sites\/154\/2026\/05\/Screenshot-2026-05-06-at-6.35.47-PM-300x236.png 300w, https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/wp-content\/uploads\/sites\/154\/2026\/05\/Screenshot-2026-05-06-at-6.35.47-PM-768x605.png 768w\" sizes=\"auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center has-small-font-size\">Example showcasing a partial image showcasing LiDAR data overlaid the RBG frame.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\"><strong>Ransac Optimization<\/strong><\/h3>\n\n\n\n<p>While total fusion recovers a dense metric map, the global least squares solve in Step 3 can become a bottleneck at runtime. RANSAC offers a robust, faster alternative by operating over a sampled subset of anchors.<\/p>\n\n\n\n<p>One particular way we can improve runtime efficiency, is by solving a least squares optimization and fitting an affine model via RANSAC, such that at each iteration, we sample k-anchor pairs per iteration to find the best scale <em>s<\/em> and shift <em>t<\/em> values. Using anchor set A from Steps 1\u20132:<\/p>\n\n\n\n<p class=\"has-text-align-left\"><strong>Step 3 &#8211; Affine Model per RANSAC Iteration<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-left\"><math display=\"block\"><semantics><mrow><msup><mi>d<\/mi><mi>L<\/mi><\/msup><mo>=<\/mo><mi>s<\/mi><mo>\u22c5<\/mo><msup><mi>d<\/mi><mi>r<\/mi><\/msup><mo>+<\/mo><mi>t<\/mi><mspace width=\"1em\"><\/mspace><mo>\u21d2<\/mo><mspace width=\"1em\"><\/mspace><mo stretchy=\"false\">[<\/mo><mi>s<\/mi><mo separator=\"true\">,<\/mo><mtext>&nbsp;<\/mtext><mi>t<\/mi><msup><mo stretchy=\"false\">]<\/mo><mi mathvariant=\"normal\">\u22a4<\/mi><\/msup><mo>=<\/mo><msubsup><mi mathvariant=\"bold\">A<\/mi><mi>k<\/mi><mrow><mo>\u2212<\/mo><mn>1<\/mn><\/mrow><\/msubsup><mtext>\u2009<\/mtext><msub><mi mathvariant=\"bold\">b<\/mi><mi>k<\/mi><\/msub><\/mrow><annotation encoding=\"application\/x-tex\">d^L = s \\cdot d^r + t \\quad \\Rightarrow \\quad [s,\\ t]^\\top = \\mathbf{A}_k^{-1}\\, \\mathbf{b}_k<\/annotation><\/semantics><\/math><\/p>\n\n\n\n<p class=\"has-text-align-left\">where <math><semantics><mrow><msub><mi mathvariant=\"bold\">A<\/mi><mi>k<\/mi><\/msub><\/mrow><annotation encoding=\"application\/x-tex\">\\mathbf{A}_k<\/annotation><\/semantics><\/math>\u200b and <math><semantics><mrow><msub><mi mathvariant=\"bold\">b<\/mi><mi>k<\/mi><\/msub><\/mrow><annotation encoding=\"application\/x-tex\">\\mathbf{b}_k<\/annotation><\/semantics><\/math>\u200b are constructed from <math><semantics><mrow><mi>k<\/mi><\/mrow><annotation encoding=\"application\/x-tex\">k<\/annotation><\/semantics><\/math> sampled anchor pairs per iteration.<\/p>\n\n\n\n<p><strong>Step 4 &#8211; Inlier Scoring<\/strong><\/p>\n\n\n\n<p><math display=\"block\"><semantics><mrow><msup><mi mathvariant=\"script\">I<\/mi><mo>\u2217<\/mo><\/msup><mo>=<\/mo><mi>arg<\/mi><mo>\u2061<\/mo><munder><mrow><mi>max<\/mi><mo>\u2061<\/mo><\/mrow><mrow><mi>s<\/mi><mo separator=\"true\">,<\/mo><mtext>\u2009<\/mtext><mi>t<\/mi><\/mrow><\/munder><mrow><mo fence=\"true\">\u2223<\/mo><mrow><mo fence=\"true\">{<\/mo><mi>i<\/mi><mo>\u2208<\/mo><mi mathvariant=\"script\">A<\/mi><mo>:<\/mo><mrow><mo fence=\"true\">\u2223<\/mo><mi>s<\/mi><mo>\u22c5<\/mo><msubsup><mi>d<\/mi><mi>i<\/mi><mi>r<\/mi><\/msubsup><mo>+<\/mo><mi>t<\/mi><mo>\u2212<\/mo><msubsup><mi>d<\/mi><mi>i<\/mi><mi>L<\/mi><\/msubsup><mo fence=\"true\">\u2223<\/mo><\/mrow><mo>&lt;<\/mo><mi>\u03f5<\/mi><mo fence=\"true\">}<\/mo><\/mrow><mo fence=\"true\">\u2223<\/mo><\/mrow><\/mrow><annotation encoding=\"application\/x-tex\">\\mathcal{I}^* = \\arg\\max_{s,\\,t} \\left|\\left\\{ i \\in \\mathcal{A} : \\left| s \\cdot d^r_i + t &#8211; d^L_i \\right| &lt; \\epsilon \\right\\}\\right|<\/annotation><\/semantics><\/math><\/p>\n\n\n\n<p><strong>Step 5 &#8211; Calibrated Depth Map<\/strong><\/p>\n\n\n\n<p><math display=\"block\"><semantics><mrow><msub><mi>D<\/mi><mtext>cal<\/mtext><\/msub><mo stretchy=\"false\">(<\/mo><mi>u<\/mi><mo separator=\"true\">,<\/mo><mi>v<\/mi><mo stretchy=\"false\">)<\/mo><mo>=<\/mo><msup><mi>s<\/mi><mo>\u2217<\/mo><\/msup><mo>\u22c5<\/mo><msup><mi>D<\/mi><mi>r<\/mi><\/msup><mo stretchy=\"false\">(<\/mo><mi>u<\/mi><mo separator=\"true\">,<\/mo><mi>v<\/mi><mo stretchy=\"false\">)<\/mo><mo>+<\/mo><msup><mi>t<\/mi><mo>\u2217<\/mo><\/msup><\/mrow><annotation encoding=\"application\/x-tex\">D_{\\text{cal}}(u, v) = s^* \\cdot D^r(u, v) + t^*<\/annotation><\/semantics><\/math><\/p>\n\n\n\n<p>This yields a calibrated depth map recovering accurate absolute metric depth across the full scene without the payload and cost overhead of a dense LiDAR system.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\"><strong>Potential Further Optimization<\/strong><\/h3>\n\n\n\n<p>We can also go with a structure-aware approach over the image, where we first determine interest points (places where depth changes greatly), and sample any points from said regions. From there, can we pass k-anchor pairs to our RANSAC algorithm. This may have the RANSAC algorithm converge faster, at a cost of prior sampling of interest points.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\"><em><strong>Path 2 \u2014 Candidate Model Exists<\/strong><\/em><\/h2>\n\n\n\n<p>If a strong candidate model<sup data-fn=\"dc6c474b-d5db-438f-9738-0c56d22d759a\" class=\"fn\"><a href=\"#dc6c474b-d5db-438f-9738-0c56d22d759a\" id=\"dc6c474b-d5db-438f-9738-0c56d22d759a-link\">1<\/a><\/sup> exists, then we can natively run the model as is. However, it is very likely (and confirmed through our tests) that the model suffers from a domain shift. To rectify, we fine-tune it directly on NEA&#8217;s data suite. This path explores whether domain adaptation alone can close the performance gap \u2014 potentially eliminating the need for LiDAR at runtime time altogether.<\/p>\n\n\n\n<p>Both paths are evaluated against the same NEA ground truth benchmark. The benchmark is provided by a posterior scene reconstruction, from LiDAR data. This enables a principled, data-driven decision about which approach best balances accuracy, hardware constraints, and deployment feasibility for the Firefly system. The cons of this approach would be potential lack of fine-grained details, as well as a potential need for modeling trees (the unstructured objects that dominate the scenery).<br><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" \/>\n\n\n\n<p>Footnotes<\/p>\n\n\n<ol class=\"wp-block-footnotes\"><li id=\"dc6c474b-d5db-438f-9738-0c56d22d759a\">A strong candidate model is defined as one with strong metric depth estimation relative to the LiDAR ground truth, or a model with structurally sound relative depth estimation (in other words, we allow for scale ambiguity). Ideally, the candidate model runs inference without utilizing too much GPU memory, and is computationally fast enough to avoid hindering downstream tasks. <a href=\"#dc6c474b-d5db-438f-9738-0c56d22d759a-link\" aria-label=\"Jump to footnote reference 1\">\u21a9\ufe0e<\/a><\/li><\/ol>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We first evaluate current SOTA zero-shot metric and relative depth models directly on NEA&#8217;s data suite, quantifying where and how these failure modes manifest in the Firefly&#8217;s specific operational environment. This evaluation drives our approach down one of two paths: Path 1 \u2014 No Existing Model Generalizes Sufficiently We deploy a learning-based framework that treats &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/approach\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Approach&#8221;<\/span><\/a><\/p>\n","protected":false},"author":290,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":"[{\"id\":\"dc6c474b-d5db-438f-9738-0c56d22d759a\",\"content\":\"A strong candidate model is defined as one with strong metric depth estimation relative to the LiDAR ground truth, or a model with structurally sound relative depth estimation (in other words, we allow for scale ambiguity). Ideally, the candidate model runs inference without utilizing too much GPU memory, and is computationally fast enough to avoid hindering downstream tasks.\"}]"},"class_list":["post-26","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Approach - Monocular Vision for Obstacle Detection in Autonomous Aircraft Operations<\/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\/2026teamf12\/approach\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Approach - Monocular Vision for Obstacle Detection in Autonomous Aircraft Operations\" \/>\n<meta property=\"og:description\" content=\"We first evaluate current SOTA zero-shot metric and relative depth models directly on NEA&#8217;s data suite, quantifying where and how these failure modes manifest in the Firefly&#8217;s specific operational environment. This evaluation drives our approach down one of two paths: Path 1 \u2014 No Existing Model Generalizes Sufficiently We deploy a learning-based framework that treats &hellip; Continue reading &quot;Approach&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/approach\/\" \/>\n<meta property=\"og:site_name\" content=\"Monocular Vision for Obstacle Detection in Autonomous Aircraft Operations\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-07T01:43:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/wp-content\/uploads\/sites\/154\/2026\/05\/Screenshot-2026-05-06-at-6.35.47-PM.png\" \/>\n\t<meta property=\"og:image:width\" content=\"950\" \/>\n\t<meta property=\"og:image:height\" content=\"748\" \/>\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=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2026teamf12\\\/approach\\\/\",\"url\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2026teamf12\\\/approach\\\/\",\"name\":\"Approach - Monocular Vision for Obstacle Detection in Autonomous Aircraft Operations\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2026teamf12\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2026teamf12\\\/approach\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2026teamf12\\\/approach\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2026teamf12\\\/wp-content\\\/uploads\\\/sites\\\/154\\\/2026\\\/05\\\/Screenshot-2026-05-06-at-6.35.47-PM.png\",\"datePublished\":\"2026-05-06T17:06:57+00:00\",\"dateModified\":\"2026-05-07T01:43:22+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2026teamf12\\\/approach\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2026teamf12\\\/approach\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2026teamf12\\\/approach\\\/#primaryimage\",\"url\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2026teamf12\\\/wp-content\\\/uploads\\\/sites\\\/154\\\/2026\\\/05\\\/Screenshot-2026-05-06-at-6.35.47-PM.png\",\"contentUrl\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2026teamf12\\\/wp-content\\\/uploads\\\/sites\\\/154\\\/2026\\\/05\\\/Screenshot-2026-05-06-at-6.35.47-PM.png\",\"width\":950,\"height\":748},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2026teamf12\\\/approach\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2026teamf12\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Approach\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2026teamf12\\\/#website\",\"url\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2026teamf12\\\/\",\"name\":\"Monocular Vision for Obstacle Detection in Autonomous Aircraft Operations\",\"description\":\"Students: Aditya Tummala, Yu-An Su | Advisor: Aswin Sankaranarayanan | Sponsor: Near Earth Autonomy\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2026teamf12\\\/?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":"Approach - Monocular Vision for Obstacle Detection in Autonomous Aircraft Operations","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\/2026teamf12\/approach\/","og_locale":"en_US","og_type":"article","og_title":"Approach - Monocular Vision for Obstacle Detection in Autonomous Aircraft Operations","og_description":"We first evaluate current SOTA zero-shot metric and relative depth models directly on NEA&#8217;s data suite, quantifying where and how these failure modes manifest in the Firefly&#8217;s specific operational environment. This evaluation drives our approach down one of two paths: Path 1 \u2014 No Existing Model Generalizes Sufficiently We deploy a learning-based framework that treats &hellip; Continue reading \"Approach\"","og_url":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/approach\/","og_site_name":"Monocular Vision for Obstacle Detection in Autonomous Aircraft Operations","article_modified_time":"2026-05-07T01:43:22+00:00","og_image":[{"width":950,"height":748,"url":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/wp-content\/uploads\/sites\/154\/2026\/05\/Screenshot-2026-05-06-at-6.35.47-PM.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/approach\/","url":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/approach\/","name":"Approach - Monocular Vision for Obstacle Detection in Autonomous Aircraft Operations","isPartOf":{"@id":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/approach\/#primaryimage"},"image":{"@id":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/approach\/#primaryimage"},"thumbnailUrl":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/wp-content\/uploads\/sites\/154\/2026\/05\/Screenshot-2026-05-06-at-6.35.47-PM.png","datePublished":"2026-05-06T17:06:57+00:00","dateModified":"2026-05-07T01:43:22+00:00","breadcrumb":{"@id":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/approach\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/approach\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/approach\/#primaryimage","url":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/wp-content\/uploads\/sites\/154\/2026\/05\/Screenshot-2026-05-06-at-6.35.47-PM.png","contentUrl":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/wp-content\/uploads\/sites\/154\/2026\/05\/Screenshot-2026-05-06-at-6.35.47-PM.png","width":950,"height":748},{"@type":"BreadcrumbList","@id":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/approach\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/"},{"@type":"ListItem","position":2,"name":"Approach"}]},{"@type":"WebSite","@id":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/#website","url":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/","name":"Monocular Vision for Obstacle Detection in Autonomous Aircraft Operations","description":"Students: Aditya Tummala, Yu-An Su | Advisor: Aswin Sankaranarayanan | Sponsor: Near Earth Autonomy","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/?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\/2026teamf12\/wp-json\/wp\/v2\/pages\/26","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/wp-json\/wp\/v2\/users\/290"}],"replies":[{"embeddable":true,"href":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/wp-json\/wp\/v2\/comments?post=26"}],"version-history":[{"count":25,"href":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/wp-json\/wp\/v2\/pages\/26\/revisions"}],"predecessor-version":[{"id":146,"href":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/wp-json\/wp\/v2\/pages\/26\/revisions\/146"}],"wp:attachment":[{"href":"https:\/\/mscvprojects.ri.cmu.edu\/2026teamf12\/wp-json\/wp\/v2\/media?parent=26"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}