Cypher AI Detection
Real-time hand, gesture and carton recognition on a live Hikvision IP camera stream.
What Cypher AI Detection is
A computer-vision pipeline that reads the live RTSP stream from a Hikvision IP camera and works on it frame by frame. It tracks up to two hands with MediaPipe’s 21-point landmark model and names the gesture. A second pipeline finds cartons and bags with YOLO11, keeps an id on each one with ByteTrack, and reads the text printed on them. It runs on the GPU through DirectML, with a live HUD and a browser interface.
Cypher AI Detection features
What it actually does.
Hands and gestures
Up to two hands, left or right, how many fingers are up, and eleven named gestures: Fist, Open Palm, Pointing, Peace, Three, Four, Thumbs Up, Call Me, Rock, Pinch and OK.
A stream that keeps up
A background reader keeps only the newest frame, so a slow frame is skipped instead of piling up delay, and it reconnects by itself if the stream drops.
Cartons, bags and text
YOLO11 with ByteTrack finds and follows each box, and OCR reads the text inside it. Tick marks and barcodes are detected too.
GPU through DirectML
ONNX Runtime on DirectML handles a frame in 32 ms, against 211 ms on the CPU, on a GTX 1050 whose driver cannot run CUDA.
Live HUD and web view
FPS, latency, connection state and hand count over the video, or an annotated live stream in a browser page.
Snapshots and clips
One key saves a snapshot, another records an MP4.
How to use Cypher AI Detection
From a fresh install to the thing working.
1 Check the camera first
- check_camera.py tests the address, a ping, the camera’s own API and the RTSP stream, so a failure points at the network, the credentials or the stream path.
- The camera’s credentials live in a .env file that is never committed.
2 Run the detector
- python run.py opens the live view.
- Keys: q quits, s saves a snapshot, r records, k toggles the skeleton, f mirrors, space pauses and h shows the help.
- --channel 102 switches to the camera’s sub stream for lower latency, and --headless logs detections with no window.
3 Use the browser interface
- Start the backend with python -m cypher_detect.server.
- Start the interface with npm start --prefix web and open http://localhost:3000.
- Maximize camera sets every channel to its highest resolution and frame rate.
Built with
Licence
Made by Kencypher. Not open source.
Cypher AI Detection was written by Kencypher. The source is not published and is not licensed for reuse. You have permission to run it — that is the whole of it.
You may
- Run it on as many of your own machines as you like
- Use it for anything, including commercial work
- Pass an unmodified copy to a friend, free
You may not, without asking
- Sell it or charge for access
- Re-upload or mirror it anywhere
- Rebrand it or publish it as your own
- Decompile it or lift its assets
This is enforced. Re-uploading it, repackaging it, stripping the author's name off it or passing it off as your own is copyright infringement — protected without registration under the Berne Convention — and is pursued with DMCA takedowns to the host, CDN, app store and search engine, platform reports for impersonation, and legal proceedings where the infringement is commercial, repeated, or involves falsely claiming authorship.
Asking first is free, and the answer is usually yes — kencypher56@gmail.com. The only official source is this store; a copy from anywhere else is not one Kencypher published.
Good to know
- Finger extension is judged by distance from the wrist, not by up or down in the image, so a hand held sideways to a ceiling camera still reads correctly.
- The stream is forced over TCP, because the default UDP drops packets on a mixed wired and Wi-Fi path and smears the picture.
- It runs from the keyboard while it watches: one key saves a snapshot, another starts and stops recording, and others mirror the view, hide the skeleton or pause the stream.
- The camera offers two streams and the choice matters: the main one is 1920x1080, the sub stream 640x360 and noticeably quicker to react. Inference width is set separately, so you can watch in high definition while detecting on a smaller frame.
- It finds the camera by trying every RTSP path those firmwares are known to use, rather than asking you to know which one this unit wants.
- Cartons are not a class in the stock model, so they are mapped from related classes. A model trained on real stock can replace the mapping.
- It is not published. This page describes it.