A project that uses optical flow and machine learning to detect aimhacking in video clips.

Overview

waldo-anticheat

A project that aims to use optical flow and machine learning to visually detect cheating or hacking in video clips from fps games. Check out this video discussing the purpose and vision of WALDO.

Notes

  • This project is still under development.

The What

A new market for cheats that are visually indistinguishable to the human eye have lead to a rise in "closet hacking" among streamers and professionals. This form of cheating is extremely hard to detect. In some cases it is impossible to detect, even with today's most advanced anti-cheat software.

We will combat this new kind of cheating by creating our own deep learning program to detect this behavior in video clips.

The How

Because of the advanced technology used, the only reliable way to detect this form of cheating is by observing the cheating behavior directly from the end result- gameplay. Our goal is to analyze the video directly using deep learning to detect if a user is receiving machine assistance.

Phase 1 focuses primarily on humanized aim-assist. Upon completion of phase 1, WALDO's main function will be vindication and clarity to many recent "hackusations."

Skills needed:

  1. Machine learning / neural networks / AI
  2. Visualizations and graphics
  3. Data analysis
  4. General python
  5. Website design / programming
  6. Game graphics / video analysis
  7. Gamers
  8. Current closet hackers you can help ( ͡° ͜ʖ ͡°)
Comments
  • ill give u a dollar if this ever succeeds

    ill give u a dollar if this ever succeeds

    to me this looks like a project started by people who act like they know what they're talking about but actually don't.... lol.

    like i don't want to write a lot cause im too lazy... but everyone moves their mouse differently, and aim assist that is created to by cheat developers is made the appear as though it is human, so i'm not sure how this would even work.

    ur video's blowing up, that's awesome... but how plausible is this actually, and how capable are you of even creating it.

    opened by srgantmoomoo 4
  • Doesn't success of this project screw itself over?

    Doesn't success of this project screw itself over?

    Let’s assume this project succeeds in detecting which patterns of movement are “human” and which ones aren’t. What’s to say that the hackers can’t just use this program to make their bots follow exactly what’s “human”. (I don’t know anything about machine learning so I have no idea whether this is trivial)

    opened by iMplode-nZ 4
  • Feature API for CV methods with contenerisation.

    Feature API for CV methods with contenerisation.

    Added API for CV methods. Added docker-compose for rapid building and starting container. Added pipenv for better local development. Updated gitignore. Added validation schemas. Updated instructions in README. Updated cv algorithms for using them as methods. Added settings.

    opened by WolfusFlow 2
  • Introduce myself to the team!

    Introduce myself to the team!

    1. What name do you prefer? Also, include your current Discord ID. Guillaume/ Boutdebatte#1483
    2. What relevant experience or skills do you have? If you don't have any, we still want you! Previously, I did a lot of Html/CSS/JavaScript websites for high school projects. Also, I learned c++ and python languages (all in my free time).
    3. Why do you want to contribute to this project? I want to contribute to this project because I want to learn more about js language. I have a good base with Html and CSS, but improving my capacities in both languages won't hurt. Also, I want to do something about hackers who are destroying videos games right now, and the best I can do is help you build this website.
    opened by BoutdeBatte 2
  • Introduce Yourself!

    Introduce Yourself!

    Discussed in https://github.com/waldo-vision/optical-flow-demo/discussions/6

    Originally posted by jaredb1011 October 20, 2021

    Introduce yourself to the team here!

    Make a post with the following information:

    1. What name do you prefer? Also include your current Discord ID. Jess/Koda - 240786290600181761

    2. What relevant experience or skills do you have? If you don't have any, we still want you! I have in-depth experience with Discord.js, NodeJs and ExpressJs. I mostly work in backend with API's integrating Discord, Steam etc. into websites as an example. Usually I work around server automation with game servers and other services. I have some projects that I work on but most code is private as it is a part of small products I am working on. My largest project is Horizons which includes my website at https://www.horizons.gg (This is developed in ExpressJs) and my Discord for further bot development at https://discord.gg/horizons

    3. Why do you want to contribute to this project? I would like to attempt contributing to a public GitHub project that I would be somewhat useful in as I have never had the opportunity to do so as most public projects are out of my league or just don't peak my interest, this is something that peaks my interest and is fairly new so I may have a chance to help out in an area that hasn't been touched too much as of right now.

opened by ItsKodas 1
  • Implementation of Canny Edge Detection Algorithm

    Implementation of Canny Edge Detection Algorithm

    Hey Guys, I saw Homeless's vid and was instantly hooked by the idea and I love it that you're are making this a community, open source project. During the past days I did my best to implement the Canny Edge Detection Algorithm because I thought it would improve motion tracking. I also included example vids to see the difference and in my opinnion this seems to have worked. I don't know at all if this is the best way of doing it and I'm sure the result can be further improved and espacially stabilized by tweaking the Canny and the OpticalFlow algorithm. Also I focused on the LucasKanadeOpticalFlow algorithm because it seems to work better but I don't know how you guys want to train the ai. Greetings from Germany, Daniel

    opened by Dabemuc 1
  • Extra

    Extra "." appended to "savepath" in lucasKanadeOpticalFlow.py

    This is just something small, but the output path in "lucasKanadeOpticalFlow.py" appends and extra "." at the beginning of the path.

    I don't know if this a setup is for some future implementation, or just a typo, but in its current state, savepath = '.'+ vidpath.split('.')[-2] + '_LK_FLOW' + '.mp4' creates an invalid output path.

    Either savepath = pathparts[-2] + '_LK_FLOW' + '.mp4' or savepath = vidpath.split('.')[-2] + '_LK_FLOW' + '.mp4' will fix it for now.

    https://github.com/jaredb1011/waldo-anticheat/blob/d634f4ca27a38436e620f63177a9f3dbffbd62dc/opticalFlow/lucasKanadeOpticalFlow.py#L87

    I really like the idea for this project and I hope this takes off!

    opened by hilletc7 1
  • Grammatical error in README

    Grammatical error in README

    Line 9 of the readme file should use the word "led", not "lead". Unlike the past tense of "read", which is spelled the same way, the past tense of "lead" is indeed "led".

    have lead to a rise -> have led to a rise

    opened by PeterNjeim 0
  • added optical flow scripts

    added optical flow scripts

    Lucas-Kanade Optical Flow & Farneback Optical Flow initial demonstration scripts added.

    These need more refinement, but they get the idea of how we might be able to detect movement/aim

    opened by jaredb1011 0
  • Docs: Readme: Ambiguity

    Docs: Readme: Ambiguity "Current closet hackers you can help ( ͡° ͜ʖ ͡°)"

    "Current closet hackers you can help ( ͡° ͜ʖ ͡°)"

    reads to me as

    "You, person who is not a closet hacker, can "help" (nudge, nudge, wink, wink) current closet hackers"

    But a plausible interpretation is

    "Current closet hackers: you can help ( ͡° ͜ʖ ͡°)"

    Which addresses current closet hackers

    opened by Jonta 1
  • Engagement Isolation

    Engagement Isolation

    • Creating Engagement Isolation script which autonomously edits videos down to engagements only
    • Adds .gitignore

    The script scrubs through a cropped-down version of the video (focused on the cross-hair) and records for (n) seconds whenever it detects a human on screen.

    For detection of enemy players, the script uses the HOGDescriptor PeopleDetector with OpenCV. This could likely be improved upon later as it's an out-of-the-box detector that isn't specifically trained for CS:GO.

    Dependencies:

    • MoviePy
    • Numpy
    • OpenCV
    opened by Shazambom 0
  • general questions and thoughts (not in faq obv)

    general questions and thoughts (not in faq obv)

    Hello, I am a dev who has some questions and general thoughts I'd like to talk about/ask here.

    First things first - I disagree with everyone who says this is not possible. It's definitely possible from a technical standpoint and not a bad idea! However, that is not the same thing as saying this is feasible. There are many things that could get in the way of this getting accomplished from a real-world standpoint. The biggest central problem I see is a lack of experience regarding ML and treating it like a silver bullet. Having worked with ML quite a bit, I can tell you it can be very finicky; a real-world application like this requires more than just a general understanding of TensorFlow. Again, this is a technical problem that obviously can be solved, but this is more of a research problem, not a software engineering one.

    People have brought up lots of valid concerns regarding things like cheat software being able "fake" being a human - but I disagree with this since that's exactly what ML would be good at. Detecting things not obvious to humans. However, it is not as simple as just giving it good data. You need people experienced with the models themselves, and very importantly, the math behind them. Everyone I've seen interested in helping doesn't have the necessary depth or experience for this kind of task. Basically, I think your main problem isn't a technical one like everyone is saying - it's a matter of finding the properly experienced data scientists and researchers willing to contribute (notice how I didn't say software developers :D). Sure, you can have people contribute things, but you need experienced people at the head to drive things. I have no idea who you guys are, but I don't think you have that kind of background (please correct me if I'm wrong). 2 months of research is fine for coming up with concepts, but nothing in terms of actually conducting research projects, which is really what this project is.

    It worries me when I see statements like: "ML shouldn’t be underestimated" and "If you don't have any [experience], we still want you!" This is just not true - I think ML could be a good solution to this problem, but it is definitely not an easy problem. Second, you shouldn't just be accepting any and all developers. While a nice thought, it just isn't practical from an organizational standpoint. You certainly should be open to everyone, but it's not about just finding people to work on this - you need to find the right people. Otherwise, you will be overwhelmed with just managing people's PR's - a particular problem among junior devs and students (of who I see many...). Again, I think your central problem is that you have software engineers interested (which is part of the work) when your central issue is finding ML-experienced people. To be clear, I'm not against more inexperienced people helping, generally it's a win-win (experience for them and work done for you) - but I'm ONLY seeing these types of people (eg students), which is a problem.

    TLDR; you need to focus on finding experienced ML researchers/engineers - not software engineers


    Regarding the idea itself, I think it is a good one. However, I wanted to address some things regarding the longevity of the idea. Let's say it works fabulously, you are at a point where you can identify cheat software with great accuracy. Inevitably GAN's will be made for new cheating methods to avoid detection (eg an AI network designed to cheat while avoiding detection by being trained against yours). You will end up in a constant battle of catchup to defeat them. This is nothing new - Deepfake is experiencing this currently and it is a constant problem with cybersecurity. I bring this up to simply make the point that this doesn't magically fix the cheating problem. It simply will change the attack methods. To be clear - I still think this is a good solution because they will face the same challenges as you. However, it will inevitably come up if you are successful; it would be prudent to plan ahead for this.


    Lastly, I just want to mention that this is a cool idea and has interesting problems. You need to have a better plan regarding setting up your project and organization. If you have a large number of people working on the project (as it looks like you might) this is critical to do BEFORE you start working on it.

    I think this could be cool to work on - but I don't really have the time right now to be a central dev. Instead, I'd be happy to keep giving feedback and advice if you guys want. Hope this raised some thoughts on how you'll handle things moving forward.

    opened by idraper 2
  • Added a barebones GUI file selector

    Added a barebones GUI file selector

    Just wanted to get the ball rolling with the GUI file selector. You mentioned that you wanted to eventually replace it in response the issue #16. I included here; it's pretty basic but it gets the job done.

    I also was getting a error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor' when running "farnebackOpticalFlow.py" so I went ahead a made some tweaks to fix the error.

    Hope this helps.

    opened by hilletc7 2
  • Demo code for paper "Learning optical flow from still images", CVPR 2021.

    Depthstillation Demo code for "Learning optical flow from still images", CVPR 2021. [Project page] - [Paper] - [Supplementary] This code is provided t

    null 130 Dec 25, 2022
    Learning Optical Flow from a Few Matches (CVPR 2021)

    Learning Optical Flow from a Few Matches This repository contains the source code for our paper: Learning Optical Flow from a Few Matches CVPR 2021 Sh

    Shihao Jiang (Zac) 159 Dec 16, 2022
    Unsupervised Learning of Multi-Frame Optical Flow with Occlusions

    This is a Pytorch implementation of Janai, J., Güney, F., Ranjan, A., Black, M. and Geiger, A., Unsupervised Learning of Multi-Frame Optical Flow with

    Anurag Ranjan 110 Nov 2, 2022
    UnFlow: Unsupervised Learning of Optical Flow with a Bidirectional Census Loss

    UnFlow: Unsupervised Learning of Optical Flow with a Bidirectional Census Loss This repository contains the TensorFlow implementation of the paper UnF

    Simon Meister 270 Nov 6, 2022
    Video-Captioning - A machine Learning project to generate captions for video frames indicating the relationship between the objects in the video

    Video-Captioning - A machine Learning project to generate captions for video frames indicating the relationship between the objects in the video

    null 1 Jan 23, 2022
    This is a Machine Learning Based Hand Detector Project, It Uses Machine Learning Models and Modules Like Mediapipe, Developed By Google!

    Machine Learning Hand Detector This is a Machine Learning Based Hand Detector Project, It Uses Machine Learning Models and Modules Like Mediapipe, Dev

    Popstar Idhant 3 Feb 25, 2022
    A lightweight deep network for fast and accurate optical flow estimation.

    FastFlowNet: A Lightweight Network for Fast Optical Flow Estimation The official PyTorch implementation of FastFlowNet (ICRA 2021). Authors: Lingtong

    Tone 161 Jan 3, 2023
    Traditional deepdream with VQGAN+CLIP and optical flow. Ready to use in Google Colab

    VQGAN-CLIP-Video cat.mp4 policeman.mp4 schoolboy.mp4 forsenBOG.mp4

    null 23 Oct 26, 2022
    Pytorch implementation of FlowNet 2.0: Evolution of Optical Flow Estimation with Deep Networks

    flownet2-pytorch Pytorch implementation of FlowNet 2.0: Evolution of Optical Flow Estimation with Deep Networks. Multiple GPU training is supported, a

    NVIDIA Corporation 2.8k Dec 27, 2022
    a reimplementation of Optical Flow Estimation using a Spatial Pyramid Network in PyTorch

    pytorch-spynet This is a personal reimplementation of SPyNet [1] using PyTorch. Should you be making use of this work, please cite the paper according

    Simon Niklaus 269 Jan 2, 2023
    A fast model to compute optical flow between two input images.

    DCVNet: Dilated Cost Volumes for Fast Optical Flow This repository contains our implementation of the paper: @InProceedings{jiang2021dcvnet, title={

    Huaizu Jiang 8 Sep 27, 2021
    Demo code for ICCV 2021 paper "Sensor-Guided Optical Flow"

    Sensor-Guided Optical Flow Demo code for "Sensor-Guided Optical Flow", ICCV 2021 This code is provided to replicate results with flow hints obtained f

    null 10 Mar 16, 2022
    MMFlow is an open source optical flow toolbox based on PyTorch

    Documentation: https://mmflow.readthedocs.io/ Introduction English | 简体中文 MMFlow is an open source optical flow toolbox based on PyTorch. It is a part

    OpenMMLab 688 Jan 6, 2023
    [CVPR 2022] Deep Equilibrium Optical Flow Estimation

    Deep Equilibrium Optical Flow Estimation This is the official repo for the paper Deep Equilibrium Optical Flow Estimation (CVPR 2022), by Shaojie Bai*

    CMU Locus Lab 136 Dec 18, 2022
    Time-stretch audio clips quickly with PyTorch (CUDA supported)! Additional utilities for searching efficient transformations are included.

    Time-stretch audio clips quickly with PyTorch (CUDA supported)! Additional utilities for searching efficient transformations are included.

    Kento Nishi 22 Jul 7, 2022
    Just Go with the Flow: Self-Supervised Scene Flow Estimation

    Just Go with the Flow: Self-Supervised Scene Flow Estimation Code release for the paper Just Go with the Flow: Self-Supervised Scene Flow Estimation,

    Himangi Mittal 50 Nov 22, 2022
    Uses OpenCV and Python Code to detect a face on the screen

    Simple-Face-Detection This code uses OpenCV and Python Code to detect a face on the screen. This serves as an example program. Important prerequisites

    Denis Woolley (CreepyD) 1 Feb 12, 2022
    A program that uses computer vision to detect hand gestures, used for controlling movie players.

    HandGestureDetection This program uses a Haar Cascade algorithm to detect the presence of your hand, and then passes it on to a self-created and self-

    null 2 Nov 22, 2022
    The Face Mask recognition system uses AI technology to detect the person with or without a mask.

    Face Mask Detection Face Mask Detection system built with OpenCV, Keras/TensorFlow using Deep Learning and Computer Vision concepts in order to detect

    Rohan Kasabe 4 Apr 5, 2022