434 karma · joined November 19, 2020
Graduate Tutor and PhD student in the Sensing, Embedded, and Network Security Group at the National University of Singapore.
My personal website: https://sriramsami.com
However there is a clear bottleneck with the Google AR team for features that the community really wants. While it's understandable, perhaps the open source libraries aren't the priority or there's short staffing, there are issues like this one - https://github.com/google-ar/arcore-android-sdk/issues/153 - that have been open since Jan 2018. This one asks that we can use the smartphone flashlight simultaneously with ARCore, but there's no visibility on how close we are at the moment. This feature would have likely improved our work's performance greatly, but even in general, many other AR developers are asking for it.
Re: overcoming it, there's not much we can do in this case. We just didn't implement the feature.
However, if the camera reflection is always within a larger reflection for all possible distances and angles, then I doubt this will work.
Separately, Lubos, the creator of ToF Viewer, is very helpful to the ToF community and constantly answers any questions about APIs or sample code. I'd recommend talking to him if anyone wants to get started with ToF-based applications.
As you say though, extra heat is a physical guarantee, so maybe a smarter technique exists to separate signal from noise in the thermal domain that I don't know of yet.
Most other ToF sensors use "indirect" ToF, where they measure the phase difference between incoming and outgoing signals to derive distance.
However, it gets murky as cheap 2D LIDARs on say, robot vacuum cleaners, use geometric techniques to find distance (basically return angle of a reflection). I explored this in a previous work.
TLDR: I would recommend not taking any naming at face value and reading the actual datasheet or more commonly, technical marketing materials, since few ToF manufacturers that I see have a public datasheet.
- No automated detection, so lots of human subjectiveness on whether a bright spot should be investigated
- Background lighting can be an issue, so the view through the detector can be filled with bright reflections
- When I tried this for longer than 30 seconds, there's really some eye strain involved
The idea is that the smartphone has more than this one purpose, and the detection system can improve with software updates, whereas you get what you see with the detector and nothing more.
This is something we'd have to separately test, and ultimately make a wholly different app for if it's feasible on iOS.
If you want to spend some money and don't mind carrying an extra device: probably any of the "hidden camera detectors" on the market will be at least somewhat useful. K18, CC308+, etc.
We're trying with our work to get better or at least equivalent results without having to use external devices.
Regarding using the app to check, I guess that applies for the existing handheld detectors as well. It's definitely something that intelligent attackers can try to plan for, but we havent tested the adversarial robustness of the system right now. That would be a very interesting direction for us as well.
For the applications you suggest, there are some existing military-looking devices out there that use multiple lasers to find sniper scopes, for example. My basic searching shows at least https://www.ldsystems.us/product/sniper-optics-detector/#, though I'm sure there's more.
I think the easier way would be to hide the cameras in much harder-to-reach places so that it's inconvenient for the user to get their smartphone near. This might reduce the kind of videos that can be taken, but maybe an attacker will find that a reasonable tradeoff.
They're basically for augmented reality applications because they sense depth. Placing objects at the right size and scale in the augmented view is much easier and more accurate with the ToF sensors, for instance.
While this work operates on ToF sensors that are already present in smartphones (e.g., Samsung S20+/Ultra), a Microsoft/Azure Kinect should also be a valid option because it has a depth camera as well. It has a higher resolution and bit-depth as well.
We initially intended to compare against the Kinect, but it doesn't fit the use case (something that you can have on you at all times). However, it could be a cheap choice for a different kind of deployment (automated hidden camera detection with robots, perhaps?)