Develop · Build
How it came together.
- 01
Rebuild rather than patch, so the result can be checked
There was already a curated register to compare against, which made it tempting to correct the existing list. It was rebuilt from scratch instead, because a patched list cannot tell you whether the method works, only whether the corrections landed. The rebuild and the curated version disagreed. That disagreement was written down as a finding rather than quietly reconciled, since a register nobody can audit is worth very little in a safety context.
Research - 02
One object, not a dozen sightings of it
The same extinguisher shows up in frame after frame, so each detection is really a vote on a position rather than a separate asset. Consolidating those votes is what turns detections into entities, and how strict that consolidation is became the main accuracy control: loosen it and the register inflates with duplicates and ghosts, tighten it and the count converges on what had been verified by hand on the floor.
Data Pipelines - 03
The class that was tested and cut
Emergency lights never worked, and establishing why took longer than the four classes that did. Several ways of asking for them were compared, and the most promising one looked clearly better judged on its own: more confident, far less noise. Run end to end it turned out to be finding every round fixture on the ceiling, producing dozens of times more locations than the building actually has emergency lights. It had traded scattered mistakes for confident ones, which is worse, because confident mistakes survive review.
AI & Machine Learning - 04
Proving it was recognition, not positioning
Before blaming recognition, the positioning was tested as the alternative culprit, since a good detector fed by bad geometry fails the same way from the outside. It was not the geometry: filtering on how clean each position was never separated the bad results from the good ones, and pushing that filter harder destroyed the classes that already worked without recovering a single emergency light. The positions were sound and pointed at the wrong objects, which located the fault in recognition and meant no amount of refinement downstream would have rescued it.
3D & Spatial
