Computer vision answers · Manufacturing
How do I use computer vision to detect when a part has stopped moving before inspecting it?
So every inspection runs on a sharp, settled frame.
Short answer
Train a detection model to find the part with Roboflow for free, then track it across video frames and inspect only once its position has held still for a set number of frames. Waiting for the part to settle gives the inspection a sharp image with the part in the same place every time. Set the stop threshold in pixels just above the camera's jitter, and require several still frames in a row, so a brief pause on a moving conveyor does not trigger an inspection.
Skip the setup. Describe your images.
Describe your images and what you need to find. The agent sets up labeling, training and deployment with you.
Key facts
- What you need
- A fixed camera on the station and a model that finds the part
- What you get
- A trigger the moment each part settles, ready to inspect
- Image sources
- IP, RTSP, USB and machine vision cameras
- Runs on
- Cloud API, or an edge device or server running Docker

How to build stopped-part detection, step by step
Six steps from a camera on the station to an inspection that waits for each part to settle.
Connect Roboflow to your coding agent, ChatGPT or Codex
Record video of parts arriving at the station
Label the part in frames from that video
Train a detection model
Track each part and wait until it stops
Pythonimport numpy as np import supervision as sv from inference import get_model from trackers import ByteTrackTracker model = get_model("your-project/1") tracker = ByteTrackTracker() last_center, still_frames = {}, {} for frame in sv.get_video_frames_generator("station.mp4"): detections = tracker.update(sv.Detections.from_inference(model.infer(frame, confidence=0.4)[0])) for track_id, center in zip(detections.tracker_id, detections.get_anchors_coordinates(sv.Position.CENTER)): moved = np.linalg.norm(center - last_center.get(track_id, center)) still_frames[track_id] = still_frames.get(track_id, 0) + 1 if moved < 2 else 0 last_center[track_id] = center if still_frames[track_id] == 15: print(f"part {track_id} stopped, inspect now") # part 4 stopped, inspect nowRather not write code? Ask the Roboflow agent to set this up for you
Build the stop check into a Workflow
Why 2 million engineers build on Roboflow
Label faster
Auto-label with SAM 3 or your own model, then fix the misses instead of drawing every box.
RF-DETR
Roboflow’s open-source real-time detection model, built for accuracy (opens in a new tab) on small objects.
Logic built in
Counting, zones, tracking and alerts are ready-made Workflow blocks, so there is less code to write.
Your model, your weights
Use your trained weights on every plan, including free, through the open-source Inference package.
Run it anywhere
Self-host on a workstation, Docker, an on-prem GPU or an edge device, or call the cloud API.