Privacy-Preserving Structureless Visual Localization via Image Obfuscation
Organizations: Faculty of Electrical Engineering, Czech Technical University (CTU) in Prague · Czech Institute of Informatics, Robotics and Cybernetics, CTU in Prague · Visual Recognition Group, Faculty of Electrical Engineering, CTU in Prague
Abstract
Visual localization is the task of estimating the camera pose of an image relative to a scene representation. In practice, visual localization systems are often cloud-based. Naturally, this raises privacy concerns in terms of revealing private details through the images sent to the server or through the representations stored on the server. Privacy-preserving localization aims to avoid such leakage of private details. However, the resulting localization approaches are significantly more complex, slower, and less accurate than their non-privacy-preserving counterparts. In this paper, we consider structureless localization methods in the context of privacy preservation. Structureless methods represent the scene through a set of reference images with known camera poses and intrinsics. In contrast to existing methods proposing representations that are as privacy-preserving as possible, we study a simple image obfuscation approach based on common image operations, e.g., replacing RGB images with (semantic) segmentations. We show that existing structureless pipelines do not need any special adjustments, as modern feature matchers can match obfuscated images out of the box. The results are easy-to-implement pipelines that can ensure both the privacy of the query images and the scene representations. Detailed experiments on multiple datasets show that the resulting methods achieve state-of-the-art pose accuracy for privacy-preserving approaches.
Figures & tables
| day | night | |
| original images | 84.7 / 93.3 / 98.2 | 67.5 / 88.5 / 98.4 |
| easy-anon - single | 85.2 / 93.1 / 98.1 | 67.0 / 86.9 / 98.4 |
| SAM1 - fine borders | 74.0 / 84.5 / 93.9 | 60.2 / 81.7 / 95.8 |
| LDP-FEAT [ 80 ] | 76.1 / 85.0 / 90.4 | 24.6 / 29.8 / 34.0 |
| Hloc [ 84 ] (SP+LG) | 88.1 / 95.4 / 99.0 | 71.7 / 89.0 / 97.9 |
| Aachen v1.1 | Aachen v1.1 | Bedroom | Liv. Room | Liv. Room | Office | |||||||
| day | night | Table | Pillows | Sofa | Chairs | |||||||
| method | E5+1 | LT | E5+1 | LT | E5+1 | LT | E5+1 | LT | E5+1 | LT | E5+1 | LT |
| original images | 82.4 / 93.9 / 99.2 | 84.7 / 93.3 / 98.2 | 70.7 / 89.0 / 98.4 | 67.5 / 88.5 / 98.4 | 93.5 | 96.5 | 94.6 | 95.9 | 98.5 | 97.7 | 89.4 | 90.3 |
| easy-anon - single | 82.8 / 93.8 / 99.2 | 85.2 / 93.1 / 98.1 | 72.8 / 87.4 / 98.4 | 67.0 / 86.9 / 98.4 | 94.2 | 95.8 | 94.6 | 96.4 | 98.5 | 9 8.5 | 88.5 | 88.5 |
| easy-anon - inpaint | 82.4 / 93.8 / 99.0 | 85.1 / 93.7 / 98.1 | 73.3 / 88.0 / 98.4 | 68.1 / 88.0 / 97.9 | 94.2 | 96.2 | 94.6 | 95.9 | 98.5 | 98.5 | 89.4 | 89.7 |
| SAM2 - coarse masks | 28.6 / 46.8 / 77.7 | 40.7 / 58.6 / 80.0 | 17.8 / 34.0 / 70.2 | 28.3 / 44.0 / 74.3 | 46.2 | 51.5 | 66.1 | 75.6 | 56.8 | 50.8 | 47.6 | 60.3 |
| Great Court | King’s College | Old Hospital | Shop Façade | St Mary’s Church | avg. (4 scenes) | avg. (5 scenes) | |||||||||
| MPE | MOE | MPE | MOE | MPE | MOE | MPE | MOE | MPE | MOE | MPE | MOE | MPE | MOE | ||
| method | [m] | [°] | [m] | [°] | [m] | [°] | [m] | [°] | [m] | [°] | [m] | [°] | [m] | [°] | |
| E5+1 | original images | 0.32 | 0.15 | 0.22 | 0.31 | 0.27 | 0.53 | 0.07 | 0.27 | 0.11 | 0.35 | 0.17 | 0.37 | 0.20 | 0.32 |
| SAM1 - fine borders | 0.40 | 0.18 | 0.22 | 0.32 | 0.30 | 0.54 | 0.08 | 0.35 | 0.13 | 0.40 | 0.18 | 0.40 | 0.23 | 0.36 | |
| LT | original images | 0.33 | 0.14 | 0.21 | 0.32 | 0.26 | 0.51 | 0.07 | 0.27 | 0.11 | 0.35 | 0.22 | 0.31 | 0.20 | 0.32 |
| SAM1 - fine borders | 0.39 | 0.18 | 0.21 | 0.30 | 0.29 | 0.53 | 0.08 | 0.37 | 0.13 | 0.39 | 0.31 | 0.35 | 0.22 | 0.35 | |
| scene1 | scene2a | scene3 | scene4a | scene5 | scene6 | average | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | ||
| method | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | |
| E5+1 | easy-anon - single | 0.01 | 0.18 | 92.4 | 0.01 | 0.12 | 93.0 | 0.01 | 0.13 | 96.2 | 0.01 | 0.21 | 93.0 | 0.01 | 0.20 | 87.5 | 0.01 | 0.13 | 94.1 | 0.01 | 0.16 | 92.7 |
| easy-anon - inpaint | 0.01 | 0.17 | 92.0 | 0.01 | 0.12 | 91.4 | 0.01 | 0.13 | 96.5 | 0.01 | 0.20 | 96.8 | 0.01 | 0.20 | 89.9 | 0.01 | 0.12 | 95.0 | 0.01 | 0.16 | 93.6 | |
| SAM1 - fine masks | 0.02 | 0.42 | 75.8 | 0.02 | 0.24 | 79.0 | 0.02 | 0.32 | 77.8 | 0.02 | 0.51 | 72.2 | 0.03 | 0.41 | 68.4 | 0.01 | 0.28 | 80.8 | 0.02 | 0.36 | 75.7 | |
| SAM1 - fine borders | 0.02 | 0.34 | 78.0 | 0.02 | 0.21 | 79.8 | 0.01 | 0.27 | 85.7 | 0.02 | 0.46 | 74.1 | 0.02 | 0.41 | 71.9 | 0.01 | 0.21 | 88.2 | 0.02 | 0.32 | 79.6 | |
| obfuscation | filtered | day | night | |
|---|---|---|---|---|
| original images | ✗ | 77.9 / 90.5 / 98.2 | 64.9 / 88.5 / 98.4 | |
| SAM1 | fine masks | ✗ | 63.6 / 80.5 / 94.9 | 42.4 / 73.8 / 96.9 |
| ✓ | 63.1 / 79.0 / 94.2 | 47.1 / 76.4 / 96.3 | ||
| fine borders | ✗ | 71.7 / 83.1 / 96.1 | 53.9 / 80.1 / 97.4 | |
| ✓ | 70.1 / 84.2 / 95.5 | 53.4 / 78.5 / 96.9 | ||
| Great | King’s | Old | Shop | St Mary’s | avg. | avg. | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Court | College | Hospital | Façade | Church | (4 scenes) | (5 scenes) | |||||||||||
| ref. poses | MPE | MOE | MPE | MOE | MPE | MOE | MPE | MOE | MPE | MOE | MPE | MOE | MPE | MOE | |||
| method | [m] | [°] | [m] | [°] | [m] | [°] | [m] | [°] | [m] | [°] | [m] | [°] | [m] | [°] | |||
| SP+LG | E5+1 | easy-anon - single | obf. | 2.30 | 1.35 | 0.37 | 0.52 | 0.35 | 0.63 | 0.11 | 0.47 | 0.13 | 0.38 | 0.24 | 0.50 | 0.65 | 0.67 |
| easy-anon - single | g.t. | 0.38 | 0.17 | 0.17 | 0.27 | 0.23 | 0.45 | 0.06 | 0.23 | 0.10 | 0.31 | 0.14 | 0.32 | 0.19 | 0.29 | ||
| SAM1 - fine borders | obf. | 2.44 | 1.73 | 0.63 | 0.94 | 0.42 | 0.79 | 0.15 | 0.51 | 0.30 | 1.04 | 0.37 | 0.82 | 0.79 | 1.00 | ||
| query | ref. | matching | day | night | ||
|---|---|---|---|---|---|---|
| images | orig. | images | orig. | RoMa | 82.4 / 93.9 / 99.2 | 70.7 / 89.0 / 98.4 |
| SP+LG | 78.8 / 92.2 / 98.7 | 65.4 / 83.2 / 97.4 | ||||
| ALIKED+LG | 79.4 / 92.8 / 98.9 | 67.0 / 81.2 / 97.9 | ||||
| MASt3R | 82.8 / 95.3 / 99.6 | 64.4 / 84.3 / 97.9 | ||||
| masks | SAM1 f. | masks | SAM1 f. | RoMa | 63.6 / 80.5 / 94.9 | 42.4 / 73.8 / 96.9 |
| SP+LG | 51.9 / 69.1 / 87.7 | 30.4 / 51.8 / 88.0 | ||||
Appendix figures & tables18 assets
Supplementary material from the paper’s appendix.
Appendix
| Great Court | King’s College | Old Hospital | Shop Façade | St Mary’s Church | ||||||||||||
| MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | ||
| method | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | |
| E5+1 | original images | 0.29 | 0.13 | 43.2 | 0.19 | 0.30 | 60.6 | 0.24 | 0.48 | 51.6 | 0.06 | 0.28 | 95.1 | 0.10 | 0.31 | 86.8 |
| blur - 41 px | 0.41 | 0.24 | 32.6 | 0.21 | 0.31 | 56.3 | 0.29 | 0.51 | 45.1 | 0.07 | 0.31 | 95.1 | 0.13 | 0.36 | 81.1 | |
| blur - 81 px | 1.12 | 0.94 | 7.4 | 0.43 | 0.76 | 22.2 | 0.52 | 1.06 | 17.0 | 0.19 | 0.66 | 68.0 | 0.44 | 1.34 | 24.5 | |
| pixelization - 10x | 0.65 | 0.39 | 22.5 | 0.37 | 0.63 | 31.5 | 0.61 | 1.11 | 24.2 | 0.10 | 0.42 | 87.4 | 0.15 | 0.50 | 75.7 | |
| Bedroom | Living Room (1) | Living Room (2) | Office | |||||||||
| Table | Pillows | Sofa | Chairs | |||||||||
| MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | |
| obfuscation method | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] |
| original images | 0.01 | 0.42 | 93.5 | 0.01 | 0.37 | 94.6 | 0.01 | 0.22 | 98.5 | 0.01 | 0.26 | 89.4 |
| blur - 41 px | 0.04 | 0.93 | 60.0 | 0.02 | 0.55 | 83.3 | 0.02 | 0.51 | 75.4 | 0.03 | 0.51 | 70.0 |
| blur - 81 px | 0.10 | 2.20 | 19.2 | 0.05 | 1.37 | 53.8 | 0.06 | 1.55 | 45.8 | 0.09 | 1.61 | 26.7 |
| obfuscation | centroid | day | night | |
|---|---|---|---|---|
| SAM1 | fine masks | coord. avg. | 63.0 / 80.6 / 94.1 | 49.7 / 73.8 / 96.3 |
| fine masks | quad. center | 63.1 / 80.6 / 94.1 | 48.7 / 73.8 / 95.8 | |
| fine borders | coord. avg. | 68.6 / 84.1 / 95.3 | 54.5 / 82.2 / 95.8 | |
| fine borders | quad. center | 68.9 / 84.1 / 95.3 | 54.5 / 81.7 / 95.8 | |
| obfuscation | refined | day | night | |
|---|---|---|---|---|
| original images | ✗ | 77.9 / 90.5 / 98.2 | 64.9 / 88.5 / 98.4 | |
| SAM2 | coarse masks | ✗ | 28.6 / 46.8 / 77.7 | 17.8 / 34.0 / 70.2 |
| ✓ | 31.3 / 47.3 / 75.0 | 18.3 / 36.6 / 67.0 | ||
| coarse borders | ✗ | 36.2 / 50.1 / 78.2 | 20.9 / 36.1 / 70.7 | |
| ✓ | 35.3 / 51.1 / 76.9 | 21.5 / 37.7 / 67.5 | ||
| fine masks | ✗ | 52.1 / 69.8 / 90.5 | 30.9 / 56.0 / 85.9 | |
| scene1 | scene2a | scene3 | scene4a | scene5 | scene6 | ||||||||||||||
| MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | ||
| method | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | |
| E5+1 | original images | 0.01 | 0.16 | 92.9 | 0.01 | 0.11 | 94.2 | 0.01 | 0.12 | 97.1 | 0.01 | 0.17 | 96.8 | 0.01 | 0.19 | 92.7 | 0.01 | 0.12 | 95.7 |
| blur - 41 px | 0.02 | 0.27 | 84.7 | 0.02 | 0.19 | 85.2 | 0.01 | 0.21 | 92.1 | 0.01 | 0.31 | 91.8 | 0.03 | 0.42 | 75.0 | 0.01 | 0.19 | 93.5 | |
| blur - 81 px | 0.04 | 0.70 | 63.1 | 0.05 | 0.53 | 51.4 | 0.03 | 0.63 | 69.8 | 0.03 | 0.81 | 63.3 | 0.07 | 1.08 | 36.1 | 0.02 | 0.42 | 82.4 | |
| pixelization - 10x | 0.02 | 0.31 | 87.4 | 0.02 | 0.26 | 76.3 | 0.01 | 0.27 | 90.5 | 0.02 | 0.41 | 84.8 | 0.03 | 0.50 | 73.3 | 0.01 | 0.23 | 91.0 | |
| scene1 | scene2a | scene3 | scene4a | scene5 | scene6 | average | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ref. poses | MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | ||
| method | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | ||
| E5+1 | easy-anon - single | obf. | 0.03 | 0.51 | 73.1 | 0.03 | 0.36 | 66.5 | 0.04 | 0.70 | 59.7 | 0.02 | 0.68 | 79.1 | 0.04 | 0.61 | 61.6 | 0.02 | 0.39 | 84.8 | 0.03 | 0.54 | 70.80 |
| SAM1 - fine borders | obf. | 0.05 | 1.14 | 49.7 | 0.07 | 0.56 | 31.1 | 0.04 | 0.68 | 63.2 | 0.03 | 0.77 | 60.8 | 0.05 | 0.87 | 48.6 | 0.04 | 0.94 | 56 | 0.05 | 0.83 | 51.57 | |
| LT | easy-anon - single | obf. | 0.04 | 0.56 | 64.2 | 0.04 | 0.35 | 65.4 | 0.05 | 0.82 | 55.2 | 0.05 | 1.14 | 51.3 | 0.05 | 0.88 | 48.8 | 0.02 | 0.45 | 78.3 | 0.04 | 0.70 | 60.5 |
| SAM1 - fine borders | obf. | 0.06 | 1.34 | 38.3 | 0.07 | 0.58 | 30.0 | 0.05 | 1.02 | 50.2 | 0.06 | 1.37 | 43.7 | 0.07 | 1.16 | 36.6 | 0.05 | 1.10 | 44.9 | 0.06 | 1.09 | 40.6 | |
| method | retr. | day | night |
|---|---|---|---|
| original images | orig. | 82.4 / 93.9 / 99.2 | 70.7 / 89.0 / 98.4 |
| easy-anon | orig. | 82.8 / 93.8 / 99.2 | 72.8 / 87.4 / 98.4 |
| - single | obf. | 82.5 / 93.7 / 99.0 | 71.7 / 89.0 / 98.4 |
| easy-anon | orig. | 82.4 / 93.8 / 99.0 | 73.3 / 88.0 / 98.4 |
| - inpaint | obf. | 81.7 / 93.8 / 99.0 | 71.2 / 89.5 / 98.4 |
| SAM2 | orig. | 52.1 / 69.8 / 90.5 | 30.9 / 56.0 / 85.9 |
| matcher | day | night |
|---|---|---|
| original images | ||
| RoMa | 77.9 / 90.5 / 98.2 | 64.9 / 88.5 / 98.4 |
| RoMa v2 | 83.0 / 94.9 / 99.5 | 71.2 / 88.0 / 99.0 |
| Tiny RoMa | 77.3 / 88.6 / 97.1 | 56.0 / 74.9 / 97.4 |
| XFeat | 55.7 / 75.6 / 94.3 | 18.8 / 42.9 / 87.4 |
| Disk + LG | 80.0 / 92.6 / 98.8 | 68.1 / 85.9 / 97.9 |
| obfuscation | ms per image |
|---|---|
| pixelization - 20x | 19 |
| pixelization - 10x | 20 |
| Canny | 32 |
| blur - 81 px | 56 |
| blur - 41 px | 133 |
| easy-anon - single | 255 |
| Bedroom | Living Room (1) | Living Room (2) | Office | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Table | Pillows | Sofa | Chairs | |||||||||||||
| MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | MPE | MOE | rec. | |||||
| query | ref. | matching | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | [m] | [°] | [%] | ||
| images | orig. | images | orig. | RoMa | 0.01 | 0.42 | 93.5 | 0.01 | 0.37 | 94.6 | 0.01 | 0.23 | 98.5 | 0.02 | 0.26 | 89.4 |
| SP+LG | 0.02 | 0.40 | 91.2 | 0.01 | 0.37 | 94.1 | 0.01 | 0.27 | 92 | 0.02 | 0.32 | 82.1 | ||||
| ALIKED+LG | 0.02 | 0.44 | 86.2 | 0.01 | 0.40 | 90 | 0.01 | 0.27 | 89.4 | 0.02 | 0.36 | 73 | ||||
| obfuscation | runtime | |
|---|---|---|
| E5+1 | original images | 24:29 |
| SAM1 - fine borders | 1:08:51 | |
| LT | original images | 1:36:00 |
| SAM1 - fine borders | 3:41:57 |
| type | value / unit | |
| original images | orig. | 380 kB / image |
| PNG (q=75) | 1058 kB / image | |
| JPG (q=80) | 392 kB / image | |
| SAM1 - fine masks | PNG (q=75) | 366 kB / image |
| JPG (q=80) | 416 kB / image | |
| SAM1 - fine borders | PNG (q=75) | 257 kB / image |
Camera Pose Estimation
Camera pose estimation recovers a camera’s position and orientation from images, visual features, scene geometry, and sometimes sensor measurements.
See all 241 papers