Back to Guides
    Guide · Datasets compared

    Violence and Aggression Detection Datasets Compared (2026)

    Eight public fight and violence datasets side by side: what they contain, where the footage comes from, how they are labelled, what the licence allows, and what each one will not teach your model.

    By Fredrik Hegardt
    October 24, 2026
    8 min read

    Fight, violence and aggression detection are three different tasks

    Violence detection classifies whether a video clip contains violent content; fight detection localises physical combat between people; aggression detection also catches the build-up before contact.

    Most public datasets were built for the first task. They give one label per clip (violent or not) or per video, sometimes with start and end frames. That is enough to train a clip classifier, but a security product usually needs more: which people are involved, where they are in the frame, and an alert early enough for staff to act. Threats, squaring up, shoving and a raised fist come before the first punch, and they are pose and motion cues, not clip labels.

    The question to ask of any dataset is therefore not only how many clips it has, but what its labels let you train: a clip classifier, a temporal detector, a person-level detector or a pose-based model.

    The public datasets compared

    The table lists the eight datasets engineers ask about most. Numbers come from the papers and project pages listed under Sources; where a licence is not stated, the table says so.

    DatasetClips / sizeSourceLabelsLicenceMain weakness
    RWF-20002,000 clips (≤5 s, 30 fps)Surveillance footage collected from YouTubeClip-level violent / non-violentNo commercial use, modification or redistribution without SMIIP Lab approval; videos by requestTrimmed clips only; no boxes or pose
    Hockey Fights1,000 clips (500 fight / 500 non-fight)Ice hockey match footageClip-levelNo licence stated (Kaggle mirror: Unknown)One sport, one broadcast camera style; does not transfer to CCTV
    Movies Fight200 clips (100 / 100)Action movies; non-fights from action recognition setsClip-levelNo licence statedStaged fights and cinematic framing; tiny
    Surveillance Camera Fight (SCFD)300 clips (150 / 150), 2 s eachFights from YouTube; non-fights from surveillance camerasClip-levelMIT on the GitHub repository; clips are third-party YouTube footageFights and non-fights come from different sources, so a model can learn the source instead of the action
    Real Life Violence Situations2,000 videos (1,000 / 1,000)YouTubeClip-levelKaggle: "Data files © Original Authors"Non-violent class is mostly sport and everyday scenes, few hard negatives
    XD-Violence4,754 untrimmed videos, 217 hMovies and YouTube, incl. CCTV, hand-held and car cameras, gamesWeak video-level labels (6 violence classes); frame-level on 800 test videos; audioNot stated on the project pageMostly movie and web footage; no spatial labels
    UCF-Crime (Fighting, Assault)1,900 untrimmed videos, 128 h; 50 Fighting + 50 AssaultSurveillance videos from YouTube and LiveLeakWeak video-level labels; temporal labels on test anomaliesNot stated on the project pageOnly 100 videos for the two violence classes; low resolution
    UBI-Fights1,000 videos, 80 h (216 fight / 784 normal)Web videos from fixed, moving and rotating cameras; 640×360, 30 fpsFrame-level fight / normalCheck the terms on the UBI project pageTemporal labels only; no person boxes or pose

    How to read the table

    • Trimmed clip benchmarks (RWF-2000, Hockey Fights, Movies Fight, SCFD, Real Life Violence Situations) are short clips with one label each. They are useful for comparing architectures and quick to train on, and they are close to solved: a ConvLSTM model reported 97.1% on Hockey and 100% on Movies back in 2017, so they no longer separate good models from great ones.
    • Untrimmed weakly labelled sets (XD-Violence, UCF-Crime) are long videos where training labels say only that violence happens somewhere. They are built for multiple-instance learning and anomaly scoring, and are the standard benchmarks for that line of work.
    • Frame-level sets (UBI-Fights) tell you when a fight starts and ends, which lets you measure detection delay. They still do not say who is fighting.

    None of the eight ships person bounding boxes or body keypoints for the fighters, which is what a detector such as YOLO-pose or a skeleton-based action model needs.

    Why CCTV-angle fight data is scarce

    CCTV-angle data means footage from a fixed camera mounted high, typically looking down at 30 to 60 degrees, with small people, compression, night IR and wide fields of view.

    Real fights on real security cameras are rare, owned by the camera operator, and show identifiable people in a sensitive situation. Operators cannot publish them, which is why almost every public set scrapes YouTube, LiveLeak or films. The result is a domain mismatch: movie fights are framed at eye level and lit for drama, phone videos shake and zoom, and hockey fights all happen on one white rink. A model trained on them learns cues such as camera shake, a crowd's reaction or the source of the video, and those cues are absent on a ceiling camera in a car park.

    SCFD shows the trap clearly. Its fight clips come from YouTube and its non-fight clips from surveillance cameras, so a classifier can score well by recognising the video source. Before you trust a benchmark number, check that positives and negatives come from the same cameras.

    Hard negatives: hugs, handshakes, high fives and dancing

    A hard negative is a non-violent scene that looks like a fight to the model: fast movement and close body contact without aggression.

    In the public sets, the non-violent class is mostly people walking, playing sport or doing everyday things. That makes the task easier than deployment. In a bar, at a station or outside a stadium, the frequent events are hugs, handshakes, high fives, people dancing, friends pushing each other in jest, someone helping a fallen person up, and loud arguments without contact. Each of these produces the same features a weak model uses for fighting: two people close together, arms raised, fast motion.

    If your training data does not contain these scenes as explicit negatives, your false alarm rate in the field will be set by how often people hug in front of the camera. Collect or generate them deliberately, label them as negatives, and keep a held-out set of them for testing.

    How to evaluate false alarms

    A false alarm rate is the number of alerts on non-violent footage per camera per unit of time, and it is the number operators judge a product by.

    • Run on long normal footage. Take hours of ordinary video from the camera types you sell into, with no fights, and count alerts per camera per day at your chosen threshold.
    • Run on a hard-negative set separately. Report how many hugs, handshakes, high fives and dances trigger an alert. A balanced benchmark hides this because look-alikes are a small share of its negatives.
    • Measure detection delay on positives. With frame-level labels (UBI-Fights, the XD-Violence and UCF-Crime test sets) you can measure how many seconds after the first contact the alert fires.
    • Set the threshold from the false alarm budget. Decide how many false alerts per camera per day a customer accepts, set the threshold to meet it, and then report recall at that threshold, not at the point that maximises F1.
    • Test on the deployment angle. A model that scores well on RWF-2000 can still fail on a 4-metre-high camera at night. Hold out footage from your own camera heights and lighting.

    Licences: research use is the default

    A dataset licence covers what the publisher can grant, and for scraped video that is rarely the footage itself. RWF-2000 explicitly forbids commercial use without approval. XD-Violence, UCF-Crime and the Hockey and Movies sets publish no commercial licence, and their videos belong to broadcasters, film studios and the people who uploaded them. The SCFD repository carries an MIT licence, but the clips inside are YouTube videos. For a commercial model, assume public violence datasets are for research and benchmarking only unless you have written permission.

    Our CCTV Fight & Aggression Detection Dataset

    We built the CCTV Fight & Aggression Detection Dataset to fill the gaps above. It is 1,000 synthetic images from high fixed CCTV positions in streets, car parks, nightlife areas, stations, shops, lobbies and stadium concourses, by day, at dusk, at night and in monochrome IR.

    • Positives cover punches, kicks, shoves, grapples, headlocks, strikes on someone on the ground, threats and group fights.
    • About 28% are look-alike negatives: hugs, handshakes, high fives, dancing, stretching, helping someone up, arguments without contact, running or carrying things together.
    • Every person has a box and COCO-17 pose keypoints, and each group of people in contact gets one fight box.
    • YOLO-pose and COCO labels, a fixed 900 / 100 train-val split and a dataset card.
    • No real people, so no consent or GDPR exposure, and a commercial licence that covers the images.

    It costs $149 with a Research licence or $590 with a Commercial licence; see pricing. It is an image dataset: use it to train the person, pose and fight-box stages, and pair it with a public video set if you need a temporal model. Fight clips from your own camera views are available as custom data, and the False-Positive Stress Test runs your existing detector against our hard negatives.

    Frequently asked questions

    What is the best public dataset for fight detection?

    There is no single best one. RWF-2000 and Real Life Violence Situations are the usual clip-level benchmarks, XD-Violence and UCF-Crime are larger weakly labelled sets for untrimmed video, and UBI-Fights has frame-level labels. None of them gives person boxes or poses from fixed CCTV cameras, and most restrict commercial use.

    Can I use RWF-2000 or XD-Violence in a commercial product?

    RWF-2000 forbids commercial use, modification and redistribution without approval from the SMIIP Lab. XD-Violence and UCF-Crime state no commercial licence on their project pages, and their videos come from YouTube, movies and LiveLeak, so the footage rights belong to third parties. Get written permission or use data you hold the rights to.

    What is the difference between fight detection and aggression detection?

    Fight detection flags physical contact between two or more people. Aggression detection also covers the build-up, such as threats, shoves, raised fists and a person squaring up, so it needs pose or motion cues rather than a single clip-level label.

    Which hard negatives should a fight detection dataset include?

    Scenes with fast, close body contact that are not violent: hugs, handshakes, high fives, dancing, sport, horseplay, helping someone up and heated arguments without contact. Without them a detector learns that two people close together and moving fast means a fight.

    How should I measure false alarms for a violence detector?

    Run it on long stretches of normal footage from your own camera types and count alarms per camera per day, then run it on a hard-negative set and count how many look-alikes fire. Clip-level accuracy or frame-level AUC on a balanced benchmark does not tell you what an operator will see.

    Also on Simuletic

    Sources

    1. RWF-2000 repository and terms (Cheng, Cai, Li, ICPR 2020)
    2. Nievas et al., Violence Detection in Video Using Computer Vision Techniques, CAIP 2011
    3. Sudhakaran and Lanz, Learning to Detect Violent Videos using ConvLSTM (Hockey and Movies descriptions)
    4. Surveillance Camera Fight Dataset (Aktı, Tataroğlu, Ekenel, IPTA 2019)
    5. Real Life Violence Situations Dataset on Kaggle
    6. Real Life Violence Situations Dataset on IEEE DataPort
    7. XD-Violence project page (Wu et al., ECCV 2020)
    8. Wu et al., Not only Look, but also Listen (XD-Violence paper)
    9. UCF-Crime project page (Sultani, Chen, Shah)
    10. Sultani et al., Real-world Anomaly Detection in Surveillance Videos
    11. UBI-Fights project page (Degardin and Proença)
    12. Weakly Supervised Two-Stage Training Scheme for Deep Video Fight Detection (UBI-Fights camera types)

    Train on fights seen from a CCTV camera

    1,000 images with person boxes, COCO-17 poses, fight boxes and look-alike negatives, in YOLO-pose and COCO.