{"id":73,"date":"2025-02-16T03:38:48","date_gmt":"2025-02-16T03:38:48","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/?p=73"},"modified":"2025-02-23T02:09:01","modified_gmt":"2025-02-23T02:09:01","slug":"jun-weis-status-report-for-feb-10-2025","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/2025\/02\/16\/jun-weis-status-report-for-feb-10-2025\/","title":{"rendered":"Jun Wei&#8217;s Status Report for Feb 9 2025"},"content":{"rendered":"<p><strong>1. Personal accomplishments for the week<\/strong><\/p>\n<p><span style=\"text-decoration: underline\">1.1 Image stitching experimentation<\/span><\/p>\n<p>I experimented with image stitching to explore the feasibility of a one-camera solution. The rationale for the use of image stitching over merely relying on a having a high field of view (FOV) camera was to<\/p>\n<ul>\n<li>Mitigate obstruction\/obscurity from other objects; and<\/li>\n<li>Gather information from different POVs (through multiple images).<\/li>\n<\/ul>\n<p>I made use of the OpenCV library&#8217;s Stitcher_create() function in Python. OpenCV&#8217;s Stitcher class provides a high-level API with a built-in stitching pipeline that performs feature detection and mapping, as well as homography based estimation for image warping. I captured images with my smartphone camera, with both the regular (FOV 85\u02da) and the ultra-wide (FOV 120\u02da) lens. However, I found that image stitching failed on images taken with the latter. As such, I only have outputs from the regular FOV lens:<\/p>\n<p><em>Stitched image outputs:<\/em><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-87\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-content\/uploads\/sites\/335\/2025\/02\/stitched_out_165654758-2-300x167.jpg\" alt=\"\" width=\"785\" height=\"437\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-content\/uploads\/sites\/335\/2025\/02\/stitched_out_165654758-2-300x167.jpg 300w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-content\/uploads\/sites\/335\/2025\/02\/stitched_out_165654758-2-768x427.jpg 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-content\/uploads\/sites\/335\/2025\/02\/stitched_out_165654758-2-1024x570.jpg 1024w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-89\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-content\/uploads\/sites\/335\/2025\/02\/stitched_out_165654758-1-1-300x160.jpg\" alt=\"\" width=\"576\" height=\"307\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-content\/uploads\/sites\/335\/2025\/02\/stitched_out_165654758-1-1-300x160.jpg 300w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-content\/uploads\/sites\/335\/2025\/02\/stitched_out_165654758-1-1-768x411.jpg 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-content\/uploads\/sites\/335\/2025\/02\/stitched_out_165654758-1-1-1024x548.jpg 1024w\" sizes=\"(max-width: 576px) 100vw, 576px\" \/><\/p>\n<p>These were my learning points and takeaways<\/p>\n<ul>\n<li>Image stitching is best suited for cameras with low FOVs as higher FOVs tend to warp features on the extreme end;<\/li>\n<li>Images need some overlap for feature mapping (ideally around 1\/3);<\/li>\n<li>Too much overlap can lead to unwanted warping during stitching\/duplicated features; and<\/li>\n<li>Drastic changes in POV (either due to sparse image intervals or objects being extremely close to the camera, such as the plastic bottle above) can cause object duplication due to diminished feature mapping effectiveness.<\/li>\n<\/ul>\n<p>For comparison, I have the following single high-FOV shot taken from my smartphone:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-94\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-content\/uploads\/sites\/335\/2025\/02\/highFOV-1-300x213.jpg\" alt=\"\" width=\"551\" height=\"391\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-content\/uploads\/sites\/335\/2025\/02\/highFOV-1-300x213.jpg 300w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-content\/uploads\/sites\/335\/2025\/02\/highFOV-1-768x545.jpg 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-content\/uploads\/sites\/335\/2025\/02\/highFOV-1-1024x727.jpg 1024w\" sizes=\"(max-width: 551px) 100vw, 551px\" \/><\/p>\n<p>In all, I believe image stitching does confer significant advantages over a single high FOV shot:<\/p>\n<ul>\n<li>More information captured (apples and blue container) obscured by transparent bottle in high FOV shot)<\/li>\n<li>Reduced object warp\/deformation, which is crucial for accurate object classification<\/li>\n<\/ul>\n<p>Following this, a natural extension would be to explore effective image stitching pipeline implementations on an embedded platform, or even a real-time implementation.<\/p>\n<p><strong style=\"font-size: 1rem\">2. Progress status<\/strong><\/p>\n<p>While I did not fill out the equipment requisition form as early in the week as I had hoped, I was able to get a head start on the imaging stitching algorithm that in turn, better informs decisions on 1) camera placement, and 2) frequency of image capture, and 3) desired camera FOV. I will defer the camera testing and data transmission pipelines to the coming week, which is when I will (hopefully) have received the equipment.<\/p>\n<p><strong>3. Goals for upcoming week<\/strong><\/p>\n<p>For the upcoming week, I would like to<\/p>\n<ul>\n<li>Acquire the equipment outlined in my previous update<\/li>\n<li>Test the camera within the confines of the fridge<\/li>\n<li>Develop data transmission pipeline from the camera to the RPi<\/li>\n<li>Develop transmission pipeline from RPi to cloud server (ownCloud), if time permits<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>1. Personal accomplishments for the week 1.1 Image stitching experimentation I experimented with image stitching to explore the feasibility of a one-camera solution. The rationale for the use of image stitching over merely relying on a having a high field of view (FOV) camera was to Mitigate obstruction\/obscurity from other objects; and Gather information from &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/2025\/02\/16\/jun-weis-status-report-for-feb-10-2025\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Jun Wei&#8217;s Status Report for Feb 9 2025&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1007,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8,5],"tags":[],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-json\/wp\/v2\/posts\/73"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-json\/wp\/v2\/users\/1007"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-json\/wp\/v2\/comments?post=73"}],"version-history":[{"count":7,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-json\/wp\/v2\/posts\/73\/revisions"}],"predecessor-version":[{"id":113,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-json\/wp\/v2\/posts\/73\/revisions\/113"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-json\/wp\/v2\/media?parent=73"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-json\/wp\/v2\/categories?post=73"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teama1\/wp-json\/wp\/v2\/tags?post=73"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}