Multimodal inspection / Guide 95
Furniture Assembly Video Cannot Prove a Hidden Fastener Is Secure
Validate furniture assembly video with versioned instructions, visible joint evidence, calibrated gap measurements, and explicit unknowns for human review.
Illustrative engineering guide. Examples are not client deployments, production-ready integrations, or evidence of measured results. Validate the design with your domain and security owners.

A hypothetical customer records a cabinet assembly and asks whether it is finished. The video shows four cam locks inserted, then cuts to the upright cabinet. An assistant says assembly is complete because the final silhouette matches the instruction drawing. One cam was never rotated, and the wall attachment is outside the frame. The silhouette answers neither question. A responsible workflow identifies missing evidence instead of converting a plausible sequence into a safety assurance.
The useful output is a joint-by-joint review packet: observed action, supporting time interval, visible final state, and unresolved requirement. It is not certification that furniture is safe to load or use. Instructions from the actual manufacturer remain the procedural authority, and a qualified support person or installer resolves ambiguity. Videos must not be repurposed for worker identity or productivity judgments.
Match the Instructions First
Bind the product SKU, hardware kit variant, instruction revision, and uploaded clip digest. Similar cabinets may use different cam orientations or attachment systems. A model can propose a product match from the packaging, but the user or authenticated order record must confirm it before the comparison becomes specific. Packaging text is untrusted evidence, not an instruction to alter the workflow.
Retain source timestamps, frame provenance, rotation metadata, and any edits or pauses reported by the uploader. FFprobe documentation explains how stream and frame information can be inspected. A clip’s nominal frame rate is not enough to reconstruct events after a speed change or edit. Missing time is a coverage gap, not proof that the expected step happened off camera.
Index findings by named joint and instruction step rather than by the person’s hands. A hand moving toward a cam is only a candidate action. The required final evidence might be a visible alignment mark or another manufacturer-approved check. Do not invent a universal visual test for secure joints; different hardware systems require different verification methods.
Measure Only What the View Supports
Use top-left pixel coordinates for annotated crops, preserving their mapping to the original frame. If a seam gap is measured, require an in-plane reference or calibrated capture setup. OpenCV’s calibration tutorial explains object coordinates, image coordinates, and distortion. A ruler lying on the floor cannot automatically calibrate a joint several centimeters above it in an oblique camera view.
For a spatial scan, define a right-handed cabinet frame in millimeters, with the origin at a specified base corner. Registration to nominal geometry should expose calibration and alignment uncertainty. Open3D’s ICP tutorial describes alignment refinement; it does not establish fastener engagement or load capacity. Symmetrical panels can align convincingly even when an internal bracket is reversed.
A specialist measurement adapter should return seam gap, uncertainty, visibility, and source interval. Keep temporal order separate: the panel may look flush before tightening and open afterward. Request evidence of the final relevant state, not whichever frame produces the smallest gap. An occluded lock remains unknown even if its neighboring seam appears normal.
A Joint Evidence Fixture
The following self-contained Python example tests the HARNESS using synthetic metadata and measurements. It does not test a trained vision model, camera, CAD engine, assembly strength, or real inspection performance. The illustrative gap budget is one millimeter and applies only to this demonstration, not to any manufacturer’s product.
from math import isfinite
base = dict(manual="cabinet-r3", joint="cam-A", visible=True,
inserted_s=2.0, locked_s=4.0, final_s=6.0,
timing_bound_s=0.1, gap_mm=0.3, gap_bound_mm=0.2)
def joint_evidence(row):
if row["manual"] != "cabinet-r3" or not row["visible"]:
return "unknown"
values = [row[k] for k in ("inserted_s", "locked_s", "final_s",
"timing_bound_s", "gap_mm", "gap_bound_mm")]
if not all(isfinite(v) and v >= 0 for v in values):
return "unknown"
t = row["timing_bound_s"]
if not (row["inserted_s"] + t < row["locked_s"] - t
and row["locked_s"] + t < row["final_s"] - t):
return "sequence-review"
if row["gap_mm"] + row["gap_bound_mm"] > 1:
return "joint-review"
return "supported-for-review"
assert joint_evidence(base) == "supported-for-review"
assert joint_evidence(dict(base, visible=False)) == "unknown"
assert joint_evidence(dict(base, locked_s=1)) == "sequence-review"
assert joint_evidence(dict(base, gap_mm=0.9)) == "joint-review"
assert joint_evidence(dict(base, manual="cabinet-r2")) == "unknown"
assert joint_evidence(dict(base, timing_bound_s=2)) == "sequence-review"
print("six synthetic joint checks passed")
The timing comparisons require distinct event intervals even after accounting for the declared bound. They do not prove the events were recognized correctly. The gap comparison merely determines whether a supplied interval stays within the example budget. A production adapter must validate units, identify the joint, authenticate the instruction source, and establish how its timing and spatial uncertainty were measured.
Define completeness over required checks, including attachments that never appear in the main assembly clip. If the instruction calls for wall attachment, its absence from the video is unresolved coverage. Do not tell a customer to load the cabinet while waiting for a more confident model answer. Support should follow the manufacturer’s relevant instructions and escalation process.
Ask for Better Evidence Safely
A reviewer can request a still of a visible alignment mark or a wider view showing the named attachment location, provided capture itself is safe. Never ask someone to climb on furniture, remove a load-bearing element, or perform an improvised stability test for the camera. When verification would require unsafe access, route to qualified assistance rather than extending the automated checklist.
For privacy, crop unrelated household details and limit retention. Server-side authorization must scope clips to the correct support case; a shared object URL is not an entitlement. Do not infer residents’ identities or personal circumstances from the room. Provide a way to complete support without uploading video when users cannot or do not wish to record it.
An approved service request should carry the product, unresolved joint, instruction revision, and evidence references. Deduplicate by case and finding, reconcile unknown ticket-write outcomes, and preserve prior evidence when a replacement clip arrives. Field service dispatch covers assigning the right technician after a bounded inspection request exists; this harness should not promise a repair appointment by itself.
Acceptance Tests and Evaluation
- Omit the wall attachment from every frame; completeness remains unresolved even when all panels are present.
- Insert a cut between cam insertion and final assembly; the missing locking evidence stays unknown.
- Use instructions from a similar SKU; prevent joint-specific approval until identity is resolved.
- Supply a seam photograph without valid scale; suppress the millimeter measurement and request appropriate evidence.
- Repeat the same locking frame twenty times; support for the joint must not increase through duplication.
- Show household or worker identifiers; exclude them from quality judgments and minimize their retention.
Build the baseline from independent support reviewers using the same manufacturer-approved checklist. Measure correctly identified unresolved checks divided by all adjudicated unresolved checks, false completion claims divided by all completion claims, and reviewer time per case. Report required checks with usable evidence divided by all required checks. Cases, not frames, are the independent evaluation unit; stratify by product and recording conditions.
Start with one hardware family and a short list of visible checks. Automotive assembly verification shows how authenticated tool receipts can add evidence unavailable in home assembly. The smallest useful AI systems implementation is a versioned checklist and targeted evidence request, not an assistant that pronounces every finished-looking object complete.