LiftSense
A camera watches a lift lobby, works out who is waiting, and suggests which lift to send. It does not send anything yet.
I was moving cargo with my dad in a building that had a freight lift for exactly that. The wrong one kept arriving.
Calling a lift for the wrong reason is a safety problem, so the system sends nothing until it is sure. Even then it only advises. The certified controller still makes the call.
Facts
- Tells the difference between people, cargo, a mix of the two, and an empty lobby, using one ordinary USB camera
- Everything runs on a small computer next to the camera. No video leaves the building and no images are ever saved
- It ships switched off. Out of the box it watches, decides what it would have done, and writes that down without sending anything
- It will not call a passenger lift for a pallet. Cargo only goes to lifts rated to carry it
- If it is not confident enough about what it is looking at, it does nothing
- Written so it can talk to more than one lift manufacturer. KONE was the first one wired up
- 41 tests passing
Stack
- Python
- TypeScript
- RF-DETR
- TensorRT
- NVIDIA Jetson Orin
- Postgres
- Mosquitto MQTT
- Grafana
- Docker Compose
I used RF-DETR rather than the more common YOLO detectors, for a licensing reason rather than an accuracy one. It is Apache-2.0, and something that might one day sit inside a building’s lift controller cannot carry AGPL obligations.
Between the camera and the lift there is a tracker, a smoother so one bad frame cannot move a decision, a vote across the signals, and then a row of checks that can each stop it. Sending is off by default, so the honest description of the first release is that it watches, decides, writes down what it would have done, and sends nothing.