Back to Blog
    New Dataset · ATM Security

    Who's Holding the Knife? Why ATM Robbery Detection Needs More Than "Weapon Yes/No"

    By Simuletic
    May 26, 2026
    7 min read
    Synthetic CCTV frame of an ATM robbery, with bounding boxes labelling 'offender', 'victim', and 'knife' — used to train role-aware security AI.

    One frame, four labels: offender, victim, gun, knife. The whole point of the dataset is that the model knows which is which.

    Almost every weapon-detection demo you've ever watched answers a yes/no question: is there a gun in the frame? It's a fine party trick. It's also nearly useless for the people who actually have to staff a bank's security operations center at three in the morning.

    At a real ATM, the camera doesn't see "a weapon." It sees two people standing close together in the dark, one of them holding something in their hand. That something might be a phone. It might be a wallet. It might be a knife. And even when it is a knife, the model still needs to answer the question that actually matters: who is holding it, and who is about to get hurt.

    That second question — the role question — is what most public datasets quietly refuse to answer. Our new CCTV ATM Robbery Detection Dataset: Gun & Knife is built specifically to fill that gap.

    A weapon detector tells you a knife exists in the scene. A robbery detector tells you a knife is being pointed at someone who came to get cash. Those are very different alerts.

    The Two People at Every ATM

    Look at almost any ATM robbery captured on real CCTV (the heavily redacted clips that occasionally make it into court evidence releases) and you'll notice the same composition again and again. One person stands at the keypad, head down, focused on the screen and the cash slot. A second person stands just behind or to the side, slightly squared up, often hooded, often with a hand reaching forward. The weapon, when there is one, lives in the gap between them — sometimes pressed to the ribs, sometimes held low and out of the camera's clean view.

    That spatial relationship is the entire story of the incident. The offender is the one in motion, the one with the weapon, the one whose body is oriented towards the other person. The victim is the one with their back to the camera, focused on the terminal, almost always carrying a phone or a card. A model that only learns "person + weapon" loses all of that. A model that learns four classes — offender, victim, gun, knife — keeps it.

    Why Real Footage Won't Cut It

    The obvious question: surely banks have plenty of real robbery footage we could just train on? They do. You can't have it. Every clip is either evidence in an active prosecution, sealed under data-protection law, or owned by a private security vendor under contracts that explicitly forbid model training.

    Even when a clip leaks into the public web, it arrives without annotations, without consent for the people in it, and almost always at the wrong resolution. Training a serious detector on YouTube screen-grabs of a 2014 robbery in a city you've never been to is not a research strategy — it's a privacy lawsuit waiting to happen.

    Synthetic data sidesteps the whole problem. Nobody is in the dataset because nobody existed. The "victim" is not anyone's brother. The "offender" is not anyone's son. We can render the same robbery a thousand times — different lighting, different angles, different clothes, different knife — without ever filming a real human, and we can ship pixel-accurate labels because we drew the bounding boxes before we drew the people.

    What's Actually in the Box

    The full package is 3,000 images, rendered from realistic high-angle ATM surveillance perspectives — exterior brick-wall ATMs, vestibule kiosks, drive-up units, and the awkward street-corner machines that always seem to be the ones in incident reports. The open-source sample on Kaggle is 240 images, which is enough to fine-tune an existing YOLO checkpoint and get an honest first benchmark.

    Balanced threat distribution

    Roughly half the scenes involve a handgun, the other half a knife. Both are deliberately rendered at the awkward "low and close to the body" positions that real incidents show, not the over-the-shoulder action poses you see in stock photos.

    Role-aware geometry

    Offender boxes are spatially tied to the weapon — programmatically verified during rendering, not eyeballed by an annotator. The model can learn the proximity signal because the proximity signal is consistent.

    CCTV degradation, on purpose

    Compression artifacts, slight sensor noise, desaturated nocturnal lighting profiles. We are not trying to make pretty images. We are trying to make images that a real Hikvision or Axis camera could plausibly have produced at 02:14 on a Tuesday.

    Class Map

    • 0: offender — initiating the threat, positioned closest to the weapon
    • 1: victim — being confronted at the terminal
    • 2: gun — handguns, pistols, compact firearms
    • 3: knife — blades, pocket knives, kitchen knives

    Practical Notes for Training

    • Don't drop the role classes to "simplify." The temptation to collapse offender+victim into a single "person" class is real and it ruins the dataset. The whole reason to use it is the role signal.
    • Use a higher input resolution. Knives at this distance are small. 1280px input on a YOLOv8s consistently beats 640px on a bigger backbone for the knife class specifically.
    • Weight your alerts on the offender+weapon co-occurrence, not on weapon alone. A "weapon, no offender" detection is almost always a false positive (a worker holding a tool, a customer holding keys). Two boxes, the right way around, is the alert that matters.
    • Mix in real CCTV background-only clips. Hard negatives of ordinary ATM transactions stop the model from interpreting every close-proximity interaction as a threat.

    Who Should Be Training on This

    • Banks and ATM network operators building automated silent-alarm triggers on existing camera infrastructure.
    • Physical security integrators deploying real-time analytics in bank lobbies, vestibules, and 24-hour cash zones.
    • Smart-city programs monitoring vulnerable street-corner kiosks under low light.
    • Researchers working on role-aware action recognition — there is essentially no other open dataset with this annotation structure.

    Get the Data

    The 240-image open-source sample is up on Kaggle now under CC BY 4.0 — enough to validate that the role-aware approach is worth the effort. For the full 3,000-image package, custom storefront backgrounds, specific camera HFOV specifications, or PTZ-style video sequences, get in touch. We render to spec.

    Sample on Kaggle

    240 images, YOLO format, free

    Full Dataset (3,000 images)

    Contact us for licensing

    The fastest alert is the one that knows what kind of incident it's looking at. Anything that only sees "weapon in frame" is going to wake the wrong people up at the wrong time, and miss the times that matter.

    Related reading: Fixing the 'Doritos Effect' and Synthetic Knife Detection.

    Related Articles

    Jun 1, 2026

    The Camera Saw It, the Model Missed It: Training Shoplifting Detection AI That Actually Works in Retail CCTV

    Synthetic CCTV dataset with 5,000+ frames, 100+ videos, YOLO + pose + VLM captions, for retail loss prevention AI.

    Read More
    Apr 26, 2026

    The First 60 Seconds: Why Most Fire-Detection AI Misses the Fires That Matter Most

    Forest-fire datasets won't save a building. Here's how synthetic data finally cracks early-stage CCTV fire detection.

    Read More
    Mar 12, 2026

    How We Document Our AI Systems and Stay Ready for the EU AI Act

    A practical guide to classifying and documenting AI systems under the EU AI Act.

    Read More