This update is about the general goals of the unsurv framework and what kinds of technologies it uses to better understand offline surveillance. The origins of this project can be traced back to a joint test by German federal police and Deutsche Bahn (the German railway company). Together with three unidentified companies, they tested a biometric video surveillance system. They offered a raffle with €25 Amazon coupons to participants who agreed to carry a Bluetooth beacon to verify the times they entered the railway station and offer high quality images of their face to compare against live images from the train station.
Even in favorable conditions such as a non-representative participant group and high quality sample photographs, which law enforcement often do not have in a criminal investigation, the results were feasible for everyday use. The framework only triggered an alarm when all THREE systems independently found a match at the same time, which created a error rate of 0.67%. With about 90,000 daily passengers entering the train station, the system would, in a best case scenario, produce a false alarm about 600 times a day or every 2.5 minutes. The test successfully concluded by the end of 2018.
The problem is that opposing biometric surveillance from just a performance point of view is an uphill battle. In the near future, or maybe even today, performance of an automatic biometric identification system will outperform a human. Therefore it’s best to argue from a privacy point of view.
Since governments have easy access to biometric information about you (your fingerprint or passport photo) they already have part of what they need to create a biometric tracking network with unknown reach. The main danger comes from an easy upgrade path for every video surveillance system that is currently in use. Without any noticeable changes, every device can be upgraded to a biometric identification system just by analyzing the video stream. Once such a system is created and rolled out it becomes very hard to push back and remove data already gathered. The resulting system of permanent records of movement on everybody destroys any presumption of privacy and has a huge potential for abuse. When abuse or mistakes inevitably happen, responsibility can handily be blamed on faulty algorithms and proprietary systems, which has occurred frequently ("I guess the computer got it wrong.") as reported by The New York Times, CNN and the Associated Press](https://apnews.com/article/artificial-intelligence-algorithm-technology-police-crime-7e3345485aa668c97606d4b54f9b6220).
Because of these developments, unsurv was created and aims to inform its users about how they come in contact with video surveillance systems. To gather the locations of such devices, the first part of the unsurv project was an adapted example Android app from Google. With self-trained surveillance camera detection and a hardware location service, the app can automatically detect and save the locations of surveillance cameras. Just point your phone at the camera while passing by and it will be entered into a local database. There is also a manual option if you prefer not to be seen pointing a phone at surveilannce installations. You can see both features in action in the demo video below:
To map whole cities without relying on volunteers, unsurv is working on a 360° camera object detection paired with a location logger. This approach could also be used on already gathered data like you would find in Google Streetview or similar projects. As with the other parts of this project a focus on minimizing data traces was achieved by using a Google Coral dev board mini for accelerated offline inference of the object detection model. Analysing a 300 x 300 pixel subimage of the 360° image takes just about 25 ms. These subimages are created in regular intervals and shifted in multiple rounds to reliably scan the whole upper part of the image for surveillance cameras.
After gathering surveillance camera locations, unsurv seamlessly integrates with already present OpenStreetMap (OSM) tags to make the data public and useable by everyone.
One of the basic building blocks for OSM is a node. This datapoint has a latitude/longitude value, an id, ands several optional tags to better describe its category. One tag of interest for this project is
man_made=surveillance. It describes "A surveillance camera or other types of surveillance equipment" and has been added to the OSM database in 2008. While regular OSM renders do not include surveillance cameras, there are a few small projects hosted online such as "SurveillanceUnderSurveillance" that visualize the data in a neat way. Sadly, the distribution of data is mostly skewed towards Europe, not because there are naturally more surveillance cameras installed, but rather because there is a lack of community-driven mapping efforts elsewhere. We hope unsurv will change that by making it easier and less time consuming to create new data.
While gathering fitness data for the update last week, I also mapped some surveillance cameras that were not yet in the database. I found it very easy to locate them, indicating that the OSM database has not kept up with the deployment of public surveillance systems in recent years.
If you want to help improve the OSM database on surveillance cameras, check out Vespucci for Android or Go Map!! for iOS. You will need an OpenStreetMap account if you want to use either option. If you need help starting out, please contact us on the Crowd Supply Discord server, Twitter, or via the "ask a technical question" button on the campaign page (also below). We will do our best to help you map your city, since it helps the project as well as the OSM community as a whole.