On April 5, 2025, protesters across the US marched in opposition to Donald Trump's multiple offenses against the constitution. Media reports of the event contained participation estimates that varied wildly.
"While crowd sizes are difficult to estimate, organizers said that more than 600,000 people had signed up to participate and that events also took place in U.S. territories and a dozen locations across the globe." Shaila Dewan, Minho Kim and Katie Benner Mass Protests Across the Country Show Resistance to Trump
April 5, 2025
New York Times
"CNN has not been able to independently verify how many people attended Saturday’s demonstrations, but 'Hands Off!' organizers say that 'millions' of people turned up from coast to coast."
Alaa Elassar, Shania Shelton and Mina Allen
‘Hands Off!’ protesters across US rally against President Donald Trump and Elon Musk
April 6, 2025
CNN
"Yesterday was incredible. The official count is in — 5.2 million people joined the #HandsOff protest nationwide. So many are asking: what’s next? Mark your calendars: 4/19 is the next nationwide day of protest." Alt National Park Service
April 6, 2025
Bluesky
Uncertainty in these estimates provides an opportunity for people who want to minimize the scale of participation or invent conspiracy theories about paid protestors. Conversely, confident estimates can help recruit new supporters who are emboldened to join a broad and growing coalition of citizens who are speaking out.
This project aims to collect a set of data and tools to make rapid, reliable crowd size estimates in the open.
There are a number of methods for estimating the size of large crowds at a protest. A few of them are:
- Jacob's method
- Organizers divide the event area into sections, estimate the average number of people per section, and multiply that by the total number of sections occupied.
- Cell phone data analysis
- A large technology company with an application with location permissions installed on a large sample of phones can produce crowd size estimates by counting the number of phones observed at the protest location during the protest time. These estimates can be weighted by known biases in the population running the app compared to the overall population.
- Analysis of event photographs
- Photos taken at the event which capture large portions of the event space can be used to count participants after the fact. This process can be scaled by using computer vision algorithms designed to estimate the number of people present in an image.
This project will focus on collecting and organizing aerial photographs of the protests and applying computer vision techniques to produce crowd size estimates. This will include attempting to verify the authenticity of photographs (i.e. that they were captured at the correct time and location for a known protest), as well as attempting to avoid double counting by mapping photographs to unique geographic extents.
These resources contain useful information for getting up to speed on crowd counting, which are methods of estimating crowd size from imagery.
Deep Learning in Crowd Counting: A Survey
A survey of crowd counting methodologies from June 2023. This source helpfully includes a summary of academic test datasets used to train and evaluate new models. Following is an excerpt from the table including all of the "hyperscale" datasets. These are datasets whose images include > 1000 subjects.
Dataset | Number | H | W | Total | Min | Average | Max | APO | Years | Scale of dataset |
---|---|---|---|---|---|---|---|---|---|---|
JHU-CROWD | 4250 | 900 | 1450 | 1114785 | - | 262.3 | 7286 | 70.6 | 2019 | Hyper |
GTA head | 5098 | 1080 | 1920 | 1732505 | - | 340 | - | 78.1 | 2022 | Hyper |
JHU-CROWD++ | 4372 | 910 | 1430 | 1515005 | - | 346.5 | 25791 | 61.3 | 2020 | Hyper |
NWPU-crowd | 5109 | 2311 | 3383 | 2133238 | 0 | 418.5 | 20033 | 136.8 | 2020 | Hyper |
Crowd-saliency | 107 | 576 | 720 | 45000 | 58 | 421.6 | 2201 | 31.4 | 2016 | Hyper |
CrowdX | 24000 | 768 | 1024 | 2400 | - | 500 | - | 39.7 | 2022 | Hyper |
ShanghaiTech part A | 482 | 589 | 868 | 241677 | 33 | 501.3 | 3139 | 31.9 | 2016 | Hyper |
GCC | 15211 | 1080 | 1920 | 7625843 | 0 | 501.4 | 3995 | 64.3 | 2019 | Hyper |
UCF-QNRF | 1535 | 2013 | 2902 | 1251642 | 49 | 815.4 | 12865 | 84.7 | 2018 | Hyper |
UCF_CC_50 | 50 | 2888 | 2101 | 63974 | 94 | 1280.5 | 4543 | 68.9 | 2013 | Hyper |
DLR-ACD | 33 | - | - | 226291 | 285 | 6857.3 | 24368 | - | 2019 | Hyper |
Awesome Crowd Counting
A leaderboard showing a large number of models across various test data sets. As of 2025-4-7 CrowdDiff
has the best performance across many test categories, including the hyperscale test sets we're interested in.
CrowdDiff code | paper
Code and instructions for executing the CrowdDiff model. Unfortunately, this code differs from the methodology described in the related paper, and the link to pre-trained weights is broken as of writing.
TinyCount code | weights | paper
Crowd Counting: A Survey
A more accessible overview of crowd counting techniques.