Please note: The algorithm descriptions in English have been automatically translated. Errors may have been introduced in this process. For the original descriptions, go to the Dutch version of the Algorithm Register.

Public Eye

Amsterdam is a busy city. This can sometimes lead to unsafe traffic situations. By collecting data on pedestrian numbers, it is possible to take measures to manage the crowds effectively. If a situation becomes unsafe due to excessive crowds, the local authority can intervene.
Last change on 2nd of July 2026, at 15:56 (CET) | Publication Standard 1.0
Publication category
Impactful algorithms
Impact assessment
Privacy Quickscan
Status
Out of use

General information

Theme

  • Organisation and business operations
  • Economy
  • Space and Infrastructure

Begin date

2019-01

End date

2021-01

Contact information

Algoritmen@amsterdam.nl

Responsible use

Goal and impact

Amsterdam is a busy city. This can sometimes lead to unsafe traffic situations. By collecting data on pedestrian numbers, it is possible to take measures to manage the crowds effectively. This ensures that the city remains comfortable, accessible and safe for road users. If a situation becomes unsafe due to excessive crowds, the council can intervene. This might involve, for example, installing digital information boards so that people know which routes to take. Alternatively, one-way traffic may be introduced.


Using the ‘Public Eye’ crowd monitoring system, we monitor crowd levels at a few locations in Amsterdam. In the past, the system was operational on Arena Boulevard, at the Marineterrein and on Dam Square. Cameras are installed at these locations, linked to a municipal server. On the server, an algorithm analyses how many people are visible in the footage. The information on the number of people present is forwarded to municipal staff, who can use the count to better regulate the flow of people. The footage itself is not shown; only the numbers are displayed. Residents and visitors to the city can also view the information on the number of people present via https://druktebeeld.amsterdam.nl/. At present, this is only available for the Marineterrein location. The aim is to extend this to all Public Eye locations.


The video footage is deleted immediately once the algorithm has counted the number of people present.


At each new location where Public Eye is installed, a small amount of footage is recorded, from which approximately 300 frames are randomly selected and annotated to train the algorithm. This allows the crowd levels at that location to be analysed effectively. After all, every location is unique and has, for example, slightly different lighting conditions or camera heights.

Considerations

A balance between citizens’ right to privacy, on the one hand, and the promotion of traffic flow and safety, on the other.

Human intervention

Based on the training data, the quality and accuracy of the algorithm are periodically assessed by a small number of council staff who are authorised to view the images. They check whether the algorithm correctly recognises people as people.

Risk management

The video footage used by Public Eye is deleted as soon as the algorithm has counted the number of people present. Only a small number of video frames (approximately 300 per location) are retained for the purpose of training the model.


The footage is stored on the local authority’s infrastructure, which complies with the Government Information Security Baseline (https://www.informatiebeveiligingsdienst.nl/project/baseline-informatiebeveiliging-overheid). Even if the footage were to fall into the wrong hands in a non-anonymised form, the risk of a privacy breach is relatively low: the camera is mounted at such a great height that it is difficult to recognise individuals in the footage. In addition, data minimisation is practised: the cameras in the ArenA area are switched on only from two hours before an event begins until the event has ended. At other times, Public Eye’s cameras in the ArenA area are switched off. Work is underway to ensure that Public Eye’s cameras at other locations are also switched off at times when they are not necessary, for example at night.


To keep Amsterdam residents as well informed as possible, a sticker with a unique ID code is attached to each camera, so that you can find out what the camera is used for at maps.amsterdam.nl/privacy. In this case, they are solely counting cameras. The City of Amsterdam’s privacy policy can also be found on this website: https://www.amsterdam.nl/privacy/.

Legal basis

The objective of public CCTV surveillance is primarily based on Section 151c of the Local Government Act, the Police Act and the Police Data Act. The public viewing of CCTV footage is based on the statutory duty of the (local) authorities to maintain public order.

Links to legal bases

Section 151C of the Local Government Act: https://wetten.overheid.nl/BWBR0005416/2017-07-01

Elaboration on impact assessments

Public Eye flowchart: https://open.amsterdam/woo-zoeken/detail/32919a79-a5aa-446d-96f6-b90994eaab9b

Impact assessment

Privacy Quickscan

Operations

Data

Using training data, the algorithm ‘learns’ how many people are in an image. 


In this dataset, we have manually indicated (or ‘annotated’) where people’s heads are located in the image. These annotations were created in several stages, meaning that each annotation was checked once or several times and adjusted where necessary. In this way, we have minimised the risk of errors during annotation. The aim is to measure how busy it is, not to identify who is in the images. Only a limited number of municipal staff have access rights to this data. 


Training data: Marineterrein


This dataset contains footage from four cameras in the Marineterrein area. There are several hundred clips per camera. The number of people in the images varies from 0 to around 200. The cameras used to capture these images were mounted at heights of between 3 and 15 metres at the Marineterrein during data collection.


Training data: Arena


This dataset contains images from four cameras in the Arena area. It comprises approximately 300 annotated images per camera. The number of people in the images varies from 0 to 100. The cameras used for these images were mounted at a height of 10 to 15 metres around the Amsterdam Arena during data collection.


Training data: Dam dataset


This dataset contains approximately 1,000 images of Dam Square in Amsterdam. All these images were captured from the same location at the same angle. They are ‘stitched’ images: the images from four different cameras have been merged into a single image. These images show between 0 and 200 people, and the conditions vary greatly from one image to the next. Consider, for example: weather conditions, lighting, time of day, and reflections in the lens caused by sunlight.


Training data: Shanghaitech Crowd Counting


These datasets contain annotations indicating the locations of people’s heads in the image.


‘Shanghaitech Part A’ This dataset contains 482 images of large groups of people (an average of 501.4 per image). These images were collected at random from the internet.


‘Shanghaitech Part B’ This dataset contains 716 images of groups of people (an average of 123.6 per image), captured by various cameras in the city of Shanghai, from different angles.


The City of Amsterdam did not collect the images in the Shanghaitech Crowd Counting dataset itself. They are freely available on the internet. This dataset is used solely for training purposes.

Links to data sources

Kaggle: https://www.kaggle.com/tthien/shanghaitech

Technical design

Description of the system architecture


A camera captures video footage of a specific area. The video footage is sent – secured by end-to-end encryption – to a local server. The algorithm analyses how many people are visible in the footage. This figure is sent to a dashboard for the council’s operational staff, so that they have an accurate picture of the current footfall. At present, only the footfall at the Marineterrein location is displayed; in future, this will also include the other Public Eye locations. The video footage does not leave the server and is not stored. Only a very limited number of images are retained for training purposes; these are encrypted.


Personal data is processed in accordance with applicable legislation and regulations (GDPR) and the guidelines on transparency (TADA). A specific privacy statement accompanies this project. The locations and functions of the cameras are recorded in the City of Amsterdam’s camera register.


Performance


The algorithm must be approximately 70 per cent accurate in order to derive relevant insights for regulating traffic. In practice, the algorithm achieves an accuracy of around 90 per cent. We derive this from the training images.


In addition to its operational functioning, this project is characterised by constant innovation. We are continually seeking new functionalities that can improve the system:

One of our ambitions is to make the system even more privacy-friendly, and we are doing this by adding a model that makes it possible to train the algorithm using fewer images per camera. This is known as the ViCCT model.

We want the analysis to be carried out on the sensor itself (the ‘on-edge’ technique).

Link to code base

https://github.com/Amsterdam/public-eye

Similar algorithm descriptions

  • The environmental zones for cars, trucks, vans, taxis, buses and mopeds and motorcycles in the municipality of Amsterdam have been set up to keep out the most polluting vehicles.
    Last change on 3rd of February 2026, at 13:57 (CET) | Publication Standard 1.0
    Publication category
    Impactful algorithms
    Impact assessment
    Privacy Quickscan, Privacy Statement
    Status
    In use
  • To correctly determine when and where sweepers operate in the city, we ensure that relatively little waste is visible in public spaces and contribute to a cleaner city.
    Last change on 31st of October 2025, at 13:37 (CET) | Publication Standard 1.0
    Publication category
    Impactful algorithms
    Impact assessment
    Uthiek, DPIA
    Status
    In use
  • DUO reports to the City of Amsterdam on debtors who are (beginning to) fall behind with their repayments to DUO. The City of Amsterdam uses this information as part of the ‘Amsterdam early warning approach’, which enables the city to help citizens at risk of falling into poverty as early as possible, so that any (early) arrears do not increase.
    Last change on 23rd of June 2026, at 11:44 (CET) | Publication Standard 1.0
    Publication category
    Impactful algorithms
    Impact assessment
    DPIA, IAMA
    Status
    In use
  • To keep Amsterdam liveable and accessible, only a limited number of cars are allowed to park in the city.
    Last change on 13th of July 2026, at 11:25 (CET) | Publication Standard 1.0
    Publication category
    Impactful algorithms
    Impact assessment
    Privacy Quickscan, DPIA, The Ethical Guide
    Status
    In use
  • By understanding crowds, it becomes visible where problems may arise so that involved parties together determine what, when should be done by whom to keep the city safe with large groups of people.
    Last change on 2nd of December 2025, at 14:50 (CET) | Publication Standard 1.0
    Publication category
    Other algorithms
    Impact assessment
    Field not filled in.
    Status
    In use