{"id":2674,"date":"2016-12-26T00:00:35","date_gmt":"2016-12-26T08:00:35","guid":{"rendered":"http:\/\/192.168.3.4\/?p=2674"},"modified":"2021-11-24T06:40:44","modified_gmt":"2021-11-24T14:40:44","slug":"instantiating-the-invisible","status":"publish","type":"post","link":"https:\/\/www.cloudacm.com\/?p=2674","title":{"rendered":"Instantiating the Invisible"},"content":{"rendered":"<p>My initial intent for this post was to elaborate on a concept that I found inspiring.\u00a0 J\u00f6rn Loviscach (<a href=\"http:\/\/www.j3l7h.de\/about.html\">http:\/\/www.j3l7h.de\/about.html<\/a>) had posted a demonstration of a &#8220;Poor Man&#8217;s Thermographic Camera&#8221; that consisted of low cost parts.\u00a0 It scans a scene and processes the visual data to create a thermographic image.\u00a0 The thermo cam consists of a pyrometer sensor (aka non contact ir thermometer), two servos that tilt mirrors, and mounting hardware.\u00a0 It acquires images from the reflection of heat by tilting &#8220;mirrors&#8221; and redirecting the heat source to the sensor.\u00a0 More importantly, it then applies filtering to the field sweeps.\u00a0 These motion blur filters clear out the noise.\u00a0 Lastly, the field scans are done horizontal and vertical with the filter results from each combined to yield an accurate thermographic image.<\/p>\n<p><iframe loading=\"lazy\" title=\"Poor Man&#039;s Thermographic Camera 2\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/R-6b2pCTJsw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p>Here is another example using a single pixel thermopile sensor<\/p>\n<p><iframe loading=\"lazy\" title=\"Arduino Based Thermal Camera\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/iSTZ0l0vfvE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p>Not to fault <a href=\"http:\/\/www.centralnexus.com\/thermal\/\">the above<\/a> authors for leaving out the semantics, but there was still a disappointing lack of detail in how the images were acquired, processed, and presented.\u00a0 As a result I set about to do the same using a Melexis MLX90621 sensor.\u00a0 However, I soon realized that the effort and results were not as cost effective had I just used a Lipton FLIR Module.\u00a0 My Melexis project was set with a $200 budget.\u00a0 If I doubled my budget to $400, I could achieve 10 times the quality with a Lipton sensor.<\/p>\n<p>You can see an example of resolution differences and FOV between a source, Lipton, and Melexis sensor below.\u00a0 The FOV of each sensor is the orange square.<\/p>\n<p><a href=\"https:\/\/www.cloudacm.com\/wp-content\/uploads\/2016\/12\/Default-Project_14-1.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3882 size-full\" src=\"https:\/\/www.cloudacm.com\/wp-content\/uploads\/2016\/12\/Default-Project_14-1.gif\" alt=\"\" width=\"768\" height=\"432\" \/><\/a><\/p>\n<p>You can see that the Melexis would never achieve the results of the Lipton.\u00a0 The Lipton sensor would also require fewer samples per sweep.\u00a0 This resulted in me abandoning my initial intent of creating a field sweep device using the MLX90621.\u00a0 Instead, I&#8217;ll attempt to cover the theory behind the imaging methods used.\u00a0 First, lets look at the sensors.<\/p>\n<p>One of the challenges with early sensors was their low angular pixel resolution.\u00a0 You were out of luck if you wanted to clearly see an object that was smaller than your pixel resolution.\u00a0 At best, the smaller object would appear as a shaded pixel.\u00a0 Image processing has extended the sensors data gathering ability and transformed digital imaging and data acquisition.\u00a0 Here is an example of the idea.<\/p>\n<p><a href=\"https:\/\/www.cloudacm.com\/wp-content\/uploads\/2016\/12\/Example1_PixelGradient.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3884 size-full\" src=\"https:\/\/www.cloudacm.com\/wp-content\/uploads\/2016\/12\/Example1_PixelGradient.gif\" alt=\"\" width=\"352\" height=\"129\" \/><\/a><\/p>\n<p>As the pixel and object align, the value in the pixel changes slightly.\u00a0 Although the pixel angular resolution is fixed, it&#8217;s angular position is not.\u00a0 The slight changes in angular position detect the value changes of the smaller object.\u00a0 This is the key behind a basic function of image processing.<\/p>\n<p>Returning to ImageMagick, this webpage (<a href=\"http:\/\/www.fmwconcepts.com\/imagemagick\/fourier_transforms\/fourier.html\">http:\/\/www.fmwconcepts.com\/imagemagick\/fourier_transforms\/fourier.html<\/a>) contains some extensive details about fourier transforms.\u00a0 Fourier transforms are the cornerstone of the image processing methods presented on that page.\u00a0 In it, you will find a section titled &#8220;Motion Blur&#8221;.\u00a0 This technique is how we can attain details the sensor is unable to provide natively.<\/p>\n<p>I can&#8217;t say definitively that this is how the &#8220;Poor Man&#8217;s Thermographic Imager&#8221; works.\u00a0 However, I strongly suspect this could be one possibility.\u00a0 Image processing is central to any imaging technology.\u00a0 Without it, much of our science would be speculation.\u00a0 It is a vast field of study.\u00a0 I could spend several years with weekly posts solely covering the topic.<\/p>\n<p>If you have further interests in the subject material I&#8217;ve attempted to cover the past two months, please check out this course offered by Duke University, <a href=\"https:\/\/online.duke.edu\/projects\/image-video-processing\/\">https:\/\/online.duke.edu\/projects\/image-video-processing\/<\/a>.\u00a0 There are more resources on the topic as well, I just can&#8217;t type endlessly.<\/p>\n<p><strong>Remembering Joe Summers<\/strong><\/p>\n<p>On December 11th, 2016 our family suffered a devastating loss with the passing of Joe Summers.\u00a0 He was a young admirable man at the threshold of life.\u00a0 The sudden and senseless tragedy is a harsh reminder how finite our stay is.\u00a0 We will not be afforded with knowing what his life would have become.\u00a0 All that can be done is to learn and love one another.\u00a0 Taking this step forward is the most difficult without him.\u00a0 His spirit lives in those that have had the joy to experience his wit, honesty, laughter, and smile.\u00a0 The only comfort we can find is the sharing of that spirit through our stories and memories of this wonderful son, brother, nephew, and friend.\u00a0 We all carry your light in us Joe.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>My initial intent for this post was to elaborate on a concept that I found inspiring.\u00a0 J\u00f6rn Loviscach (http:\/\/www.j3l7h.de\/about.html) had posted a demonstration of a &#8220;Poor Man&#8217;s Thermographic Camera&#8221; that consisted of low cost parts.\u00a0 It scans a scene and processes the visual data to create a thermographic image.\u00a0 The thermo cam consists of a pyrometer sensor (aka non contact ir thermometer), two servos that tilt mirrors, and mounting hardware.\u00a0 It acquires images from the reflection of heat by tilting&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/www.cloudacm.com\/?p=2674\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,3],"tags":[],"class_list":["post-2674","post","type-post","status-publish","format-standard","hentry","category-computer-vision","category-rd"],"_links":{"self":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts\/2674","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2674"}],"version-history":[{"count":19,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts\/2674\/revisions"}],"predecessor-version":[{"id":3885,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts\/2674\/revisions\/3885"}],"wp:attachment":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2674"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2674"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2674"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}