Your geometric matcher finds the part when you search the sub-inspection alone, then answers “no item found” — or “outside search area” — when the same image runs through the parent inspection model. On a near-symmetric part this is almost never a software bug. The matcher is holding two strong candidates, one of them rotated 180 degrees, and the two search contexts break the tie differently. This walkthrough gives the symptom, a two-minute test that proves the cause, the tolerance settings that remove the flip, and the search-region arithmetic that stops the parent from clipping the hit. The worked example sizes everything for a 60 mm syringe on a 100 mm field of view, with the arithmetic shown at every step.
The symptom: found in the sub-model, lost in the parent
A geometric sub-inspection trained on its own accepts the image. The parent model that calls it fails on the same picture, either with “no item found” or with the hit reported outside the search area. The verdicts disagree because the two searches are not identical: the parent runs the sub-model's matcher inside its own region, its own angle limits and its own acceptance logic, while the standalone dialog searches with the region and limits stored in the model itself.
When the winning candidate is a 180-degree rotated false hit sitting near the edge of the parent's region, the parent clips it and reports nothing. When sub-pixel refinement or tie-break order shifts a few score points, the dialogs can even swap which candidate wins. None of this is version-specific, and a software upgrade will not change it; the fix lives in the model's tolerances and regions.
Why a near-symmetric part rotates onto itself
A geometric matcher scores how well the trained model's edge gradients agree with the image. A part that is close to 180-degree symmetric — a syringe barrel whose only tell is a small flange or print at one end — has two honest minima in that score surface. The true orientation wins by only the contrast the tell contributes, and once that margin falls inside run-to-run score noise, the matcher flips.
Scale tolerance makes this worse, never better. The rotated candidate is at full scale — the same size as the model — so a scale window accepts both orientations equally and only widens the set of marginal geometry that can score. Turning scale tolerance up to chase a wrong-angle symptom feeds the very problem it was meant to cure. Elasticity is the parameter that helps: it lets individual edges shift a little without accepting a global size change. The same contrast-margin thinking behind color pattern matching for reliable part localization applies here — a matcher is only as decisive as its weakest distinguishing feature.
Prove it in two minutes
- Load the failing image in the parent inspection and in the sub-inspection, with identical angle limits in both.
- Drop the acceptance threshold far enough that the tool logs a second candidate, or open the candidate list. One hit sits at nominal pose, the other at +180 degrees.
- Read both scores. If they sit within about 5 points of each other, this is the flip.
- Narrow the angle window to ±10 degrees around nominal and re-run both dialogs. Both now agree, because the rotated candidate is excluded outright.
If step 4 clears the symptom, the tolerances are the cause and the next section is your fix. If it does not, measure the search region before suspecting the software.
The fix: lock scale, add elasticity, narrow the angle
For a machined part that is the same size every time, set scale tolerance to 0 — on most geometric matchers the parameter runs 0 to 50 percent and defaults to 0. Add elasticity of 1 to 3 percent, starting at 2, so lighting drift and small focus changes do not cost score. Keep elasticity under about 5 percent: beyond that the matcher starts tolerating genuine size and shape differences, and the ambiguity returns through the same door.
Set the angle window to what the fixture really delivers: ±5 degrees for an indexed nest, ±10 degrees for loose but guided placement. A full 0 to 360 degree range belongs only on parts that truly arrive in any rotation, gated by a second asymmetric feature as described below.
| Parameter | Tempting setting | Setting that holds | Why |
|---|---|---|---|
| Scale tolerance | 5-10% | 0% | The rotated hit is full scale too; the window only widens acceptance |
| Elasticity | 0% | 1-3% | Absorbs local edge drift without accepting a different size |
| Angle range | 0-360° | ±5° to ±10° | Excludes the rotated candidate before scoring |
| Search region | Outline + 5 mm | Outline + rotated footprint | A rotated hit must still fit inside the parent region |
Size the search region to the rotated footprint
The “outside search area” half of the symptom has its own arithmetic. A part at its worst allowed angle does not sit inside its nominal outline: the tips sweep sideways by half the part length times the sine of the angle, on top of placement repeatability. Draw the parent region for where the part can be, not where it nominally sits.
Then make the sub-model's region the same size, so both dialogs clip identically and the verdicts cannot disagree. If your regions move between runs rather than clipping a rotated hit, that is a different fault — ROI image source binding: fix inspection region errors covers it. Search limits bite in other tools as well: contrast autofocus troubleshooting: ROI and search limits shows the same clipping behavior when an autofocus window is the constraint.
Worked example: 60 mm syringe at ±5 degrees on a 100 mm field
Inputs, all typical for a syringe barrel in an indexed nest:
- Part 60 mm long, 10 mm wide; the only 180-degree tell is a 1.5 mm flange near one end.
- Placement repeatability ±3 mm; angle repeatability ±5 degrees.
- A 2.5 MP camera on a 100 mm horizontal field of view.
Sampling check. A 2.5 MP sensor in 4:3 format is about 1830 × 1370 pixels, so 100 mm / 1830 px = 0.055 mm per pixel. The flange then spans 1.5 / 0.055 ≈ 27 pixels, comfortably above the 4-5 pixel floor for the smallest distinguishing feature. Resolution is not the problem: 2.5 MP already samples the tell well, and the flip is a tolerance problem.
Region. Half-length 30 mm × sin 5° = 30 × 0.087 = 2.6 mm of tip sweep. Extra per side = 2.6 + 3 + 2 = 7.6 mm, rounded to 8. Region = (60 + 16) × (10 + 16) = 76 × 26 mm; set 80 × 30 mm. That fits the 100 mm field with at least 10 mm to spare on each long side, and the worst-case rotated part stays inside the parent region instead of clipping it.
Tolerances. Scale tolerance 0, elasticity 2 percent. A machined width tolerance of ±0.1 mm on a 60 mm part is ±0.17 percent — far inside 2 percent local elasticity, so the true part keeps its score while a wrong-size part fails outright.
Margin. Run 50 images, log the top two scores, and accept only runs where the winner leads by at least 3 points; raise the gate if your run-to-run spread exceeds 2 points. With these settings the 180-degree candidate can only win on the flange, and 27 pixels of flange hold that lead above the noise. Decision: scale 0, elasticity 2 percent, ±5 degrees, an 80 × 30 mm region — the flip is gone.
Hardware that holds the settings
Where the matcher runs decides how stable the score is. On a smart camera or vision sensor, the whole toolchain — region, tolerances, lighting — lives in one device, which is why these false-hit problems are usually tuned out on the sensor itself. The MV-SC6050C-08M-XBN is a 5 MP smart camera with a global shutter, an 8 mm focal length M12-mount lens and a multi-color light source, so you can pick the wavelength mix that puts maximum contrast on the tell.
- Interface
- GigE
- Resolution
- 5 MP
- Sensor format
- 1/1.45"
- Shutter
- Global
In multi-camera, PC-based cells, put the matcher on a vision controller and strobe the light from its built-in channels so every frame sees identical illumination — score noise shrinks when the light repeats. The MV-VC3301H-128G66 offers 4 built-in light channels, 8 GB of memory and an Intel Core i3 processor, with the vision software license bundled.
- LAN ports
- 5+ LAN ports
- USB 3 ports
- 3-4 USB 3 ports
- Light outputs
- 4 built-in channels
- Memory
- 8 GB
If the part moves, use a global-shutter camera from the area scan cameras range. A rolling shutter skews a moving part by speed × frame readout time: at 200 mm/s and a 30 ms readout that is 200 × 0.030 = 6 mm of top-to-bottom displacement, double the ±3 mm placement budget and enough to push a measured angle past a ±5 degree window — feeding the very false rotation you are hunting. The MV-CU020-90GC covers this job at 2.5 MP; when the tell is smaller, the MV-CH120-11UC gives 12 MP, both with global shutter.
| Specification | MV-CU020-90GC | MV-CH120-11UC |
|---|---|---|
| Sensor model | GMAX4002 | Sony® IMX304 |
| Pixel size | 4 μm × 4 μm | 3.45 μm × 3.45 μm |
| Sensor size | 1/1.7" | 1.1" |
| Resolution | 2048 × 1200 | 4096 × 3000 |
| Max. frame rate | 49 fps @ 2048 × 1200 Bayer GB 8 | 30.3 fps @ 4096 × 3000 Bayer RG 8 |
| Dynamic range | 66.9 dB | 72.2 dB |
| SNR | 40.8 dB | 40.2 dB |
| Gain | 0 dB to 11.1 dB | 0 dB to 24 dB |
| Exposure time | 4 μs to 10 sec | UltraShort exposure mode: 1 μs to 14 μs; Standard exposure mode: 15 μs to 10 sec |
| Pixel format | Bayer GB 8/10/10Packed/12/12Packed | Mono 8/10/12; Bayer RG 8/10/10Packed/12/12Packed; YUV422Packed, YUV422_YUYV_Packed; RGB 8, BGR 8 |
| Reverse image | Supports horizontal and vertical reverse image output | Supports horizontal and vertical reverse image output |
| Data interface | Gigabit Ethernet (1000 Mbit/s), compatible with Fast Ethernet (100 Mbit/s) | USB 3.0, compatible with USB 2.0 |
| Price | $309.00 | $2,339.00 · quoted |
All 2 share: Sensor type CMOS, global shutter; Exposure mode Off/Once/Continuous exposure mode; Binning Supports 1 × 1, 2 × 2, 4 × 4; Decimation Supports 1 × 1, 2 × 2, 4 × 4; Lens mount C-mount; Weight Approx. 100 g (0.2 lb.); Certification CE, RoHS, KC; Mono/color Color. Values as printed in each product's data sheet; open a part for its drawing and full specifications.
More options are in the camera finder, and if you are still deciding between a rule-based matcher and a learned model, AI vs rule-based smart camera inspection: how to choose lays out that decision with the same margin logic.
When the usual fix is wrong
Exactly symmetric part. If the part has no 180-degree tell at all, no tolerance setting can separate the orientations — the information is not in the image. Orient the part in the fixture, add a fiducial, or light it off-axis so one end reflects differently. Round parts are the extreme case; small round part inspection: planning views and measurements covers planning around full rotational symmetry.
Parts that truly arrive in any rotation. Do not narrow the angle window here. Match the symmetric central feature for position with a wide range, then gate orientation on a second, asymmetric feature — a print, a notch, a color mark.
Flip only on moving parts. If the matcher is stable with the part static but flips whenever the line runs, rolling-shutter skew is the cause. Swap to a global-shutter camera before touching a single tolerance.
Still flipping after all of it. Scale 0, 2 percent elasticity, a ±5 degree window, a clear asymmetric tell — and the flip persists. That is the one case worth a support ticket: send the model, the failing image and both candidate scores.
Checks before you call it solved
- Run 50 to 100 images including the worst-case offset and both hand orientations of the part; the winner must lead the runner-up by at least 3 points everywhere.
- Place a golden part rotated 180 degrees by hand: the matcher must report no confident hit.
- Zero “outside search area” events at the worst offset, in both the parent and the sub-inspection.
- Both dialogs return identical verdicts on the same image set.
- Lighting strobed from a controller channel, with scores repeating within 1-2 points run to run.
Quick checklist
- Scale tolerance 0 on machined parts.
- Elasticity 1-3 percent, never above 5.
- Angle window equal to real fixture repeatability: ±5 degrees indexed, ±10 degrees guided.
- Region = outline + 2 × (half-length × sin θ + repeatability + 2 mm).
- Sub-model region matched to the parent region.
- Winner leads by at least 3 points across 50 images.
- A 180-degree rotated golden part is rejected.
- Global shutter whenever the part moves.
When the margin holds across your image set, run the vision system configurator to lock camera, lens and light in one pass, or browse the applications topic page for more field fixes.
Questions
Why does the sub-inspection find the part but the parent inspection reject it?
The two dialogs do not run the same search. The parent wraps the sub-model in its own region and tolerance stack, so a marginal 180-degree candidate that wins in one context is clipped or outranked in the other. Set the same angle limits in both, then log both hit scores: when the winner leads by less than about 5 points, you are seeing tie-break behavior, not a bug.
How much elasticity should I use instead of scale tolerance?
Start at 2 percent. One to three percent absorbs the local edge shifts that lighting drift and focus cause on a machined part, without accepting a genuinely different size. Above roughly 5 percent the matcher begins to tolerate real shape variation and the ambiguity comes back. Pair it with scale tolerance at zero whenever the part is the same size every time.
Is a 180 degree false hit a software bug?
No. A near-symmetric part produces two genuine minima in the score surface, and any matcher will find both. Treat it as a defect only after scale tolerance is zero, elasticity is 1-3 percent, the angle window is narrowed and the part has a clear asymmetric tell, and the flip still persists. Then send the vendor the model, the failing image and both candidate scores.
Does a higher resolution camera stop the flip?
Not on its own. Resolution only helps when the distinguishing feature is under-sampled: keep at least 4-5 pixels across the smallest tell. Beyond that, the margin comes from how much contrast that feature carries, so lighting and tolerance settings decide. In the worked example a 2.5 MP camera put 27 pixels on a 1.5 mm flange, and the flip was still a settings problem.
How large should the parent search region be?
Size it to where the part can actually be, not to its nominal outline: add half the part length times the sine of the angle tolerance, plus placement repeatability, plus 2 mm of margin, on every side. For a 60 mm part at ±5 degrees with ±3 mm repeatability that is 30 × 0.087 + 3 + 2, about 8 mm per side, so 76 mm of total length. Then match the sub-model region to it.

