In short
We wanted two things from the existing CCTV cameras: check attendance at the gate (is the person who punched in really the person on camera?) and follow each person inside the plant with the same name on every camera.
Working well: naming people at the gate from the punch machine, and following them
through the door into the plant.
Not yet good enough: keeping a person's name for a long time once they walk into areas
between cameras.
1. Attendance check at the gate
When someone punches in, the system looks at the gate camera at that exact moment, finds the person reaching for the machine, and gives them the name from the punch. Where the face is visible, it is compared with the employee's registered photo as a second check.
| What we checked (5 minutes at shift change) | Result |
|---|---|
| Punches matched to a person on camera | 14 of 14 |
| Also confirmed by face | 9 |
| Face showed a different person | 0 |
| People seen at the gate in total | 30, of whom 16 named. Most of the rest waited at the gate without entering, or punched just before this recording started. |
2. Following people into the plant
From the gate, people walk through a door to the plant-entry camera and then on to the walkway, the aisle and the machine area. We use the time it takes to walk between cameras, the camera layout, and how the person looks.
| Step | How well it worked |
|---|---|
| Gate → plant entry (through the door) | Reliable: about 8 in 10 right; the misses were groups walking through together |
| Plant entry → walkway, aisle, machine area | 38 hand-offs checked by eye: 17 right, 4 wrong, 17 too unclear to judge |
3. Remembering people across recordings
The cameras save 5-minute recordings. We added a memory so a person keeps the same name from one recording to the next, and tested it over 30 minutes (six recordings in a row).
- Only people who came through the gate are followed. Everyone else already inside is counted per camera (thin grey boxes), not chased. This kept the memory small and stopped mistakes from spreading: from about 150 uncertain entries per recording down to none.
- Decisions became clean. In almost every case there was only one sensible candidate, and never two strong look-alikes competing.
4. What we learned
Conclusion
- The gate is solid. Punch-to-person matching works, with the face as a cross-check. This alone can catch someone punching for a colleague.
- Following people is the weak part. Over 30 minutes no named person was found again by the floor cameras once they left camera
view (two were recognised again only because they came back through the gate). Two reasons:
- Gaps in coverage: large parts of the plant are not seen by any camera.
- Appearance matching is not strong enough: from high, distant cameras, workers in similar clothes look alike. We made it strict to avoid wrong names, so it now misses people it should find.
- Almost half of the people named at the gate that morning (14 of 32) were leaving (night shift going out), so losing them was correct.
5. How we plan to fix it
- A stronger appearance-matching model. We will switch the part that recognises a person from how they look to a newer, stronger one and compare it on the same recordings. This is the change most likely to improve following people across the floor.
- Find people again after a gap. When a named person reappears on any camera, match them again against the small list of people who came in, with a high bar so names are not given wrongly.
- A short accuracy check with your team. Someone who knows the workers labels 20–30 people on the recordings, so we can give real accuracy numbers instead of our own visual checks.
- Sync the punch machine's clock with the camera system once. This removes the name swaps when several people punch at the same moment.
- Cover the gaps. A few cameras at the points where people disappear (between the walkway and the machine areas) would help as much as any software change.
- Then a full-shift test on live footage, and only after that, more cameras.