![cover s2.jpg](https://static.wixstatic.com/media/a41a28_138a568a5ac040d083d27bb93cb42c01~mv2.jpg/v1/crop/x_11,y_0,w_973,h_313/fill/w_972,h_312,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/cover%20s2.jpg)
MARK SHEININ
![](https://static.wixstatic.com/media/a41a28_97868e9b497944fdb015167ffe9b1245~mv2.png/v1/fill/w_175,h_35,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/a41a28_97868e9b497944fdb015167ffe9b1245~mv2.png)
Projecting Trackable Thermal Patterns for Dynamic Computer Vision
(CVPR '24)
Mark Sheinin, Aswin Sankaranarayanan, and Srinivasa Narasimhan
The problem: Pattern recognition requires, well, *patterns*
It is no coincidence that "Pattern Recognition" is in the name of the most prominent computer vision conference (i.e., CVPR). This is because the ability to detect and recognize the same pattern from different views is fundamental for dynamic vision tasks, namely for tasks where the observer (i.e., the camera) must navigate and map in a given environment. But what if the environment doesn't have enough good texture to facilitate this task?
Sure, you can always go and find a better room for your Nerf/Gaussian-Splatting demo, but a navigating/mapping robot must operate in any given environment, including navigating long dark roads at night, inside pipelines and long featureless hallways, and scanning textureless objects.
​
​
​
​
​
​
​
But what if we could give our robots the ability to 'paint' auxiliary patterns on textureless environment regions to improve their navigation and mapping?
The solution: Painting light with light
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
But wait, don't heat patterns evaporate with time?
Indeed, they do, and that's actually a problem because it means that a surface pattern imaged now will appear differently when imaged in future frames. This brightness inconsistency is incompatible with various off-the-shelf dynamic vision algorithms and may degrade their performance (as shown below). So, how do we fix this problem?
Answer: We train a neural network to reverse the brightness inconsistency, as explained next.
​
A frame taken at time t+dt differs from a frame taken at time t in two ways: (a) First, points existing at time t have undergone heat diffusion, making them smoother and dimmer frame t+dt, and (b) a bunch of new points were projected on the surface showing up in frame t+dt but not existing in frame t. So, our network performs two functions: it takes the later frame t+dt as input, removes the newly added points appearing only in frame t+dt, and undiffuses the existing points in frame t+dt to match their appearance to frame t. Our network also returns the newly added points, which is useful for tracking initialization (details in the paper).
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
The effect of the UNET correction can be seen in the example below.
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
![image.png](https://static.wixstatic.com/media/a41a28_2848ca5abdc94115a99a1d185750bfbe~mv2.png/v1/fill/w_199,h_142,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/a41a28_2848ca5abdc94115a99a1d185750bfbe~mv2.png)
![image.png](https://static.wixstatic.com/media/a41a28_2da5df1ccffe4f73b037ff5e2641fbfc~mv2.png/v1/fill/w_193,h_142,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/a41a28_2da5df1ccffe4f73b037ff5e2641fbfc~mv2.png)
![image.png](https://static.wixstatic.com/media/a41a28_fe61a20883944c058e1be66af989f488~mv2.png/v1/fill/w_193,h_136,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/a41a28_fe61a20883944c058e1be66af989f488~mv2.png)
environments and objects lacking 'good' texture for feature extraction and matching
![image.png](https://static.wixstatic.com/media/a41a28_127bf669dade49f199c9a400950d435a~mv2.png/v1/fill/w_159,h_159,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/a41a28_127bf669dade49f199c9a400950d435a~mv2.png)
generated with deepai.org
​
Well, we can not equip our robots with buckets of paint. But we can use something very similar to a device that already exists on many of our robots -- like autonomous cars -- and that is the Lidar. Lidars measure depth by scanning a laser at surface environments. But when a laser hits a surface, some light energy gets absorbed by the material, causing a slight increase in the material's surface temperature. While invisible to the naked eye, this increase in surface temperature can be seen by a thermal camera, which images in the infrared domain. So, a robot can use the laser to paint its own tailor-made heat patterns, which it can use to facilitate navigation and mapping, while 'seeing' the pattern with a thermal camera.
![figure_schematic_v4_for_webpage2.png](https://static.wixstatic.com/media/a41a28_9bb82da9a1734f2487ea6700862b8376~mv2.png/v1/fill/w_459,h_186,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/figure_schematic_v4_for_webpage2.png)
![](https://static.wixstatic.com/media/a41a28_08f975a3c3784f468e147b65a2689141f000.jpg/v1/fill/w_217,h_187,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/a41a28_08f975a3c3784f468e147b65a2689141f000.jpg)
![](https://static.wixstatic.com/media/a41a28_536d665ee1064e38ba770167727b23f9f000.jpg/v1/fill/w_212,h_183,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/a41a28_536d665ee1064e38ba770167727b23f9f000.jpg)
imaging system schematic
rotating object
with pattern projection
our laser 'paints' a dot pattern that 'sticks' to the object's surface
we track the heat points to generate point matches between frames
![](https://static.wixstatic.com/media/a41a28_1476b513c17d4ee9b097bd6d3522a6c9f000.jpg/v1/fill/w_440,h_352,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/a41a28_1476b513c17d4ee9b097bd6d3522a6c9f000.jpg)
![](https://static.wixstatic.com/media/a41a28_5651663bbb3a4efeb31f59949b164a28f000.jpg/v1/fill/w_440,h_352,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/a41a28_5651663bbb3a4efeb31f59949b164a28f000.jpg)
![](https://static.wixstatic.com/media/a41a28_71cc7e20993b450eb02a9c5cc4f2570cf000.jpg/v1/fill/w_440,h_319,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/a41a28_71cc7e20993b450eb02a9c5cc4f2570cf000.jpg)
we manually feed the point matches to COLMAP to generate the camera motion and a sparse 3D model of the object
![image.png](https://static.wixstatic.com/media/a41a28_5c1dfb6d0ec1471690a4e0feae529da9~mv2.png/v1/fill/w_248,h_176,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/a41a28_5c1dfb6d0ec1471690a4e0feae529da9~mv2.png)
![image.png](https://static.wixstatic.com/media/a41a28_0a93ed9358374b6ea798f9aedd1e53d9~mv2.png/v1/fill/w_249,h_177,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/a41a28_0a93ed9358374b6ea798f9aedd1e53d9~mv2.png)
![image.png](https://static.wixstatic.com/media/a41a28_07bd2a70140048ad94d800c1266c7c77~mv2.png/v1/fill/w_249,h_177,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/a41a28_07bd2a70140048ad94d800c1266c7c77~mv2.png)
time t
time t+1 (no new points)
heat diffusion causes the surface points to appear smoother and dimmer
time t+1 (with new points)
the system projects new heat points
to constantly reinforce the heat pattern
![image.png](https://static.wixstatic.com/media/a41a28_0bcad0bb7e26421a9f33ba1a371c829d~mv2.png/v1/fill/w_240,h_148,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/a41a28_0bcad0bb7e26421a9f33ba1a371c829d~mv2.png)
frame at time t
![undiffuse_once.gif](https://static.wixstatic.com/media/a41a28_4e0355244f1a4057ab6baaed4e96aa80~mv2.gif)
UNET
corrected frame at time t+1
![image.png](https://static.wixstatic.com/media/a41a28_33e0a1213c954dc48634b94488b09082~mv2.png/v1/fill/w_239,h_148,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/a41a28_33e0a1213c954dc48634b94488b09082~mv2.png)
frame at time t+1
- point existing in both frames.
- new point not existing in frame t.
![image.png](https://static.wixstatic.com/media/a41a28_9e2bb4492a324a079de77f8ca0745ed8~mv2.png/v1/fill/w_264,h_286,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/a41a28_9e2bb4492a324a079de77f8ca0745ed8~mv2.png)
![](https://static.wixstatic.com/media/a41a28_bb3638793c4540f3a8c91362fa6bad71f000.jpg/v1/fill/w_358,h_286,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/a41a28_bb3638793c4540f3a8c91362fa6bad71f000.jpg)
scene object
thermal video with pattern projection
notice how the heat points rapidly diffuse after projection
without correction
![](https://static.wixstatic.com/media/a41a28_7edaa3ce59da4cc8b3ecf052c83b0d08f000.jpg/v1/fill/w_378,h_253,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/a41a28_7edaa3ce59da4cc8b3ecf052c83b0d08f000.jpg)
with correction
![](https://static.wixstatic.com/media/a41a28_a9741f6b41fe4afcba638921b5a0ffddf000.jpg/v1/fill/w_378,h_253,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/a41a28_a9741f6b41fe4afcba638921b5a0ffddf000.jpg)
COLMAP output without heat diffusion correcting
COLMAP out with heat diffusion correction
![](https://static.wixstatic.com/media/a41a28_26a69670f2044aed9a74296c6cde8c5ef000.jpg/v1/fill/w_378,h_253,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/a41a28_26a69670f2044aed9a74296c6cde8c5ef000.jpg)
3D shape without heat diffusion correction
![](https://static.wixstatic.com/media/a41a28_92f02794eeeb49009eb3e052bf8f6194f000.jpg/v1/fill/w_378,h_253,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/a41a28_92f02794eeeb49009eb3e052bf8f6194f000.jpg)
3D shape with heat diffusion correction
Additional applications
Our system is useful for various dynamic vision tasks like:
Object tracking
![image.png](https://static.wixstatic.com/media/a41a28_5b1f96fac54046e0bef24a22ceb497ca~mv2.png/v1/fill/w_252,h_239,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/a41a28_5b1f96fac54046e0bef24a22ceb497ca~mv2.png)
texturless planer object
![](https://static.wixstatic.com/media/a41a28_750121ab469243d3aa84670a54835eb2f000.jpg/v1/fill/w_598,h_239,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/a41a28_750121ab469243d3aa84670a54835eb2f000.jpg)
thermal pattern projection and tracking
superimposed a picture
on the plane’s surface
Optical flow
![image.png](https://static.wixstatic.com/media/a41a28_eae893a15e0843b6a6a3a3c0a1c4f37b~mv2.png/v1/fill/w_252,h_224,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/a41a28_eae893a15e0843b6a6a3a3c0a1c4f37b~mv2.png)
texturless planer object (rotating)
![](https://static.wixstatic.com/media/a41a28_86875ec1cb5b4be0b1fa1bf0849bc58af000.jpg/v1/fill/w_470,h_227,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/a41a28_86875ec1cb5b4be0b1fa1bf0849bc58af000.jpg)
thermal pattern projection
(no explicit point tracking)
optical flow computed between consecutive frame pairs
Indoor localization
![image.png](https://static.wixstatic.com/media/a41a28_3af29fd873094eccb317fa0bea1fceca~mv2.png/v1/fill/w_299,h_209,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/a41a28_3af29fd873094eccb317fa0bea1fceca~mv2.png)
we put the system on a cart, directed at the floor using a mirror. Then, we make a loop around the office desks on the left.
![](https://static.wixstatic.com/media/a41a28_80e765ba9b3945a3b38ead50ea3da64af000.jpg/v1/fill/w_261,h_209,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/a41a28_80e765ba9b3945a3b38ead50ea3da64af000.jpg)
thermal pattern projection and tracking
![image.png](https://static.wixstatic.com/media/a41a28_c2008ecfcd0f443f8438c006a8f57c55~mv2.png/v1/fill/w_283,h_205,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/a41a28_c2008ecfcd0f443f8438c006a8f57c55~mv2.png)
recovered camera (cart) trajectory
Great, now tell me when it doesn't work (limitations)
Our method relies on the laser's ability to heat up surface spots rapidly. However, some materials are not amenable to such an operation. To heat up a surface point 'well,' the surface material must have a low albedo in the laser's wavelength, high emissivity, and low thermal conductivity (so that the absorbed heat does not diffuse too quickly). Therefore, materials such as glass and metals will show degraded performance for our method. Compared to visible-light SfM, our patterns can not facilitate loop closure using temporally distant frames because all the patterns evaporate entirely after some time duration.
BibTex
@inproceedings{Sheinin:2024,
title = {Projecting Trackable Thermal Patterns for Dynamic Computer Vision},
author={Sheinin, Mark and Sankaranarayanan, Aswin and Narasimhan, Srinivasa G.},
booktitle={Proc. IEEE/CVF CVPR},
year={2024},
}