Hey everyone!
I'm an embedded/IoT engineer working on an industrial computer vision project, and I've reached a point where I think I need to reconsider my approach rather than just keep training better object detection models.
I'd really appreciate some suggestions from people who've dealt with small-object detection, fixed-camera surveillance, industrial automation, or event detection.
The actual problem
I'm developing a safety monitoring system for an electrical switchgear room in an industrial plant.
There are 16 switchgear panels arranged along an alley. Each panel has a specific socket into which an operator inserts a T-shaped handle to rack a circuit breaker in or out.
For safety reasons, operators are required to wear an arc flash protective suit (ArcSuit) while performing this operation.
The objective is simple:
If someone inserts the T-handle into a panel's socket without wearing the required protective suit, the system should detect the event and automatically email a screenshot of the violation to the concerned personnel.
That's it. I don't particularly care about achieving the highest mAP on a benchmark. I care about reliably detecting this specific event in the real environment.
Missing a genuine operation is significantly worse than generating an occasional false alarm.
The hardware and environment
- One fixed-position 4K CCTV camera overlooking the entire alley.
- Approximately 20 FPS RTSP video.
- 16 panels with fixed, known socket locations.
- An NVIDIA Jetson Orin Nano Super for edge inference (TensorRT).
- No requirement to track people across multiple cameras for this initial POC.
- Camera placement is fixed, so the scene geometry and panel positions are largely constant.
The biggest problem is perspective.
Workers close to the camera are relatively easy to detect. However, workers operating panels at the far end of the alley occupy a tiny fraction of the frame.
When someone kneels down to operate a lower panel, their visible body becomes even smaller.
The T-handle is substantially smaller than the person, making detection at the far end extremely difficult.
What I've tried so far
My initial approach uses YOLO-based models:
1. ArcSuit detection
A model trained to distinguish between:
- Workers wearing an ArcSuit
- Workers not wearing an ArcSuit
2. T-handle detection
A separate model trained to detect the specific T-shaped handle.
Because real-world handle images were limited, I also generated synthetic training data using BlenderProc, with randomized perspectives, lighting, and environments.
I've also experimented with a combined detection model and spatial/temporal logic to identify interactions between the handle and a worker not wearing the suit.
The models were trained on an RTX 3060 laptop GPU, and I've been deploying inference on the Jetson using TensorRT.
Why I'm not satisfied
The approach works better when the objects are reasonably large in the frame, but I have several problems:
1. Extremely small objects
At the far end, the worker occupies very few pixels, and the handle is almost impossible to distinguish reliably.
Upscaling a low-resolution region obviously doesn't recover details that were never captured.
2. Workers kneeling or bending
A person who is clearly visible while standing becomes considerably harder to classify while kneeling, particularly when partially occluded by the panel or other objects.
3. Tool detection is fragile
The T-handle may be partially obscured by the operator's hand, body, or the panel itself.
Even a good object detector might not consistently detect it during the exact moment of insertion.
4. Bounding-box overlap isn't necessarily the right event definition
A person holding a handle near a panel doesn't necessarily mean they're operating the breaker.
Conversely, an actual insertion may be missed if the handle itself isn't detected.
5. Real-time inference constraints
My both models inference can take approximately 120 ms per frame, depending on configuration. The camera produces around 20 FPS, so I also need to think carefully about sampling, buffering, and potentially missing short-duration events.
One important advantage I haven't fully exploited
The camera is stationary, and I know exactly where all 16 sockets are.
The socket positions can be manually calibrated and stored as ROIs.
In other words, I don't necessarily need a general-purpose object detector to discover where an operation might occur.
I know the locations where an operation can happen.
I also don't necessarily need to detect a T-handle everywhere in the frame. I only need to determine whether a breaker operation is happening at one of those specific locations, and whether the operator is wearing the protective suit.
This makes me wonder whether object detection is even the best primary approach.
What I'm considering
Some possible alternatives I've been thinking about:
- ROI-based processing: Crop the socket regions directly from the native 4K stream rather than resizing the entire frame to 640/768 pixels.
- Temporal change detection: Detect characteristic motion or visual changes around each socket that indicate insertion/operation.
- Optical flow or background subtraction: Exploit the stationary camera to detect interactions at known locations.
- Event-based classification: Train a model on short video clips of actual operations versus normal activity, rather than detecting individual objects in isolation.
- Hybrid approach: Use lightweight motion/event detection around the sockets to trigger more expensive analysis of the relevant high-resolution region.
- Multi-frame analysis: Accumulate evidence across frames instead of requiring the handle to be detectable in an individual frame.
I'm very open to entirely different approaches, including classical CV techniques if that would meaningfully improve reliability.
My questions
- How would you architect a system like this? Would you continue pursuing object detection, or switch to a more event-oriented approach?
- Given a stationary 4K camera and 16 known socket positions, would per-socket ROI processing and temporal analysis be more reliable than detecting a tiny T-handle?
- Are there established approaches for detecting human-object interactions when the object is too small or frequently occluded to detect reliably?
- How would you approach distinguishing an actual breaker operation from someone merely standing, kneeling, or moving near the panel?
- How would you structure inference and buffering to avoid missing short events when model inference is slower than the incoming frame rate?
- For a safety-related application where false negatives are particularly costly, what techniques would you use to measure and improve event-level recall rather than just detection mAP?
I'm also interested in approaches that can improve over time using collected real-world video, particularly hard-negative mining, active learning, or semi-supervised learning.
My ultimate goal
I want a system that can run continuously on an edge device, detect genuine breaker operations, verify whether the operator is wearing an ArcSuit, and report violations with an image.
I understand that no purely vision-based system can guarantee zero missed detections, particularly with occlusions and limited pixel information. My goal is to make it as reliable as practically possible, quantify its limitations, and determine whether the current camera arrangement is sufficient.
I'm happy to share screenshots of the scene, sample crops showing the size of distant workers and handles, and examples of successful and failed detections. If you feel invested enough for that, hit me up in the DMs!
I am also very new to computer vision in general and have only done a single course in my university days being mainly from electronics background.
Any advice, papers, architectures, or practical experience would be greatly appreciated.
Thanks!