A missing letter and a wrong letter can come from entirely different stages of an OCR pipeline. A narrow character may disappear during region filtering, while a rounded character may survive detection but receive the wrong label. For engineers adapting an existing inspection to new fonts or images, the fastest approach is to locate the first stage that changes the character. You can then adjust the responsible filter without weakening the whole inspection.
Separate discarded characters from recognition errors
Start with the original image, not the final text string. Follow each troublesome character through candidate detection, geometric filtering, text grouping, crop generation and recognition.
The first checkpoint where the character disappears determines the next test. Do not tune the recognizer when its input crop never contained the missing letter.
| Observation | Likely stage | First test | Corrective direction |
|---|---|---|---|
| Character has no initial candidate | Capture or region detection | Inspect original pixels and candidate masks | Improve contrast or adjust detector scale and polarity |
| Candidate exists but disappears after filtering | Geometric or stroke filtering | Log each rejection reason separately | Revise the responsible rule |
| Candidate survives but no text crop includes it | Grouping or crop construction | Overlay group membership and crop boundaries | Adjust grouping or coordinate handling |
| Complete character reaches OCR but receives another label | Recognition or image quality | Recognize a manually selected crop | Improve input quality or recognition configuration |
| Correct recognition becomes incorrect output | Postprocessing | Compare raw text with the transmitted string | Correct normalization or field validation |
For a related symptom focused on incomplete numeric fields, use the missing-digit diagnosis workflow. Here, the emphasis is on identifying which text-region rules discard valid shapes.
Capture evidence before changing thresholds
Save a fixed set of source images and run every proposed change against those same files. Live acquisition introduces motion, exposure and positioning differences that can hide the effect of a software change.
Record a compact diagnostic package for each image:
- Original pixels, image dimensions and preprocessing settings.
- Candidate masks with persistent identifiers.
- Bounding boxes and measured properties before filtering.
- A separate rejection flag for every rule.
- Group membership and the final crop delivered to OCR.
- Raw recognized text, expected text and any available confidence values.
Keep identifiers stable as candidates move through the pipeline. Deleting array entries and then treating the remaining array index as an original identifier can associate a measurement with the wrong region.
Use a rejection bitmask or a list of reason names rather than one combined pass/fail flag. A candidate might fail both area and eccentricity checks; changing only one would still leave it rejected.
The side-by-side OCR visualization workflow helps organize these checkpoints. Display the original crop beside its mask and recognition result, using the same image identifier throughout.
Test geometric filters against narrow and rounded letters
Filter thresholds are assumptions about the expected font, scale and background. A rule that suppresses scratches can also suppress a narrow capital letter.
Check the definition of aspect ratio before changing its threshold:
For a candidate measuring 4 pixels wide and 40 pixels high, the aspect ratio is 4 / 40 = 0.10. A rule rejecting width-to-height ratios above 3 would not remove it. A minimum-ratio rule could, as could an unrelated shape filter.
The same solid rectangular candidate contains approximately 4 × 40 = 160 foreground pixels. An illustrative minimum-area setting of 250 pixels would reject it before recognition. Real glyphs need their actual foreground area measured; bounding-box area is not a substitute.
Eccentricity deserves particular attention. When defined from a fitted ellipse, it approaches 1 as the shape becomes elongated:
Here, a and b are the major and minor semiaxis lengths. If b / a = 0.05, then e = sqrt(1 - 0.0025) ≈ 0.9987. A rejection threshold above 0.99 would remove that elongated region, even if it were valid text.
Also inspect these common filters:
- Extent: foreground area divided by bounding-box area. A nearly solid narrow letter can have high extent.
- Solidity: foreground area divided by convex-hull area. It can distinguish some irregular shapes, but is not a universal text test.
- Hole count or Euler characteristic: useful for certain glyphs, but sensitive to broken strokes, filled holes and thresholding.
Collect property distributions for valid characters and background clutter. When those distributions overlap, a single hard threshold cannot separate them reliably. Add line context or recognition evidence instead of repeatedly moving the cutoff.
Check stroke filtering and input sampling
A stroke-consistency test often summarizes distances measured along a binary region's skeleton. One possible statistic is the coefficient of variation:
This is a consistency measure, not a guarantee that a region is text. Skeleton branches, corners, antialiasing and attached background pixels can increase variation in legitimate characters.
Verify the mask polarity and padding before interpreting the statistic. Confirm that distances are measured inside the intended foreground. Handle empty samples and a zero mean explicitly; do not allow undefined values to pass silently through a comparison.
Very narrow strokes also expose sampling limits. A one-pixel boundary change is a large fraction of a two-pixel stroke. Enlarging that image afterward does not recreate the missing edge information.
For an illustrative acquisition budget, suppose the scene width is 120 mm and the smallest stroke is 0.30 mm. Choosing an initial target of 4 pixels across that stroke gives:
This is a starting estimate, not an OCR guarantee. Focus, contrast, motion and the recognition method still determine the usable result. Confirm performance using actual characters at the smallest expected size.
If failures correlate with changing exposure or clipped highlights, stabilize acquisition before adjusting shape thresholds. The exposure-feedback troubleshooting article explains why a moving measurement region can make image brightness unstable.
Inspect grouping and crop coordinates
A retained character can still disappear when candidates are assembled into words. Inspect the group labels before merging bounding boxes.
An overlap-only grouping rule may isolate a narrow character because its box never touches a neighbor. A subsequent rule that discards every single-candidate group then removes it, even though detection and geometric filtering succeeded.
Conversely, a graph of overlapping boxes can merge unrelated content through a chain of intermediate regions. Every connected component is not necessarily one text line.
Test grouping using several kinds of evidence:
- Similar character height within the expected font variation.
- Baseline alignment or alignment after geometric rectification.
- Horizontal gaps normalized by text height.
- Expected reading direction and field location.
- Whether neighboring regions belong to different lines.
For a roughly horizontal line with a median character height of 40 pixels, an initial gap allowance of 0.5 times that height equals 20 pixels. Treat that value as an experiment. Widely spaced lettering, punctuation and proportional fonts may need different rules.
Expand boxes relative to their dimensions, not their absolute position within the image. For coordinates with an exclusive right and bottom boundary:
With p = 0.10, a 20-pixel-wide box receives 2 pixels of horizontal padding on each side. Moving the same box elsewhere in the image should not change that padding.
Round outward and clip the expanded box to the image boundaries. Keep inclusive and exclusive coordinate conventions consistent, especially when transferring boxes between libraries.
When the field layout is known, the single-reading segmentation guide provides a useful alternative to unrestricted text grouping.
Diagnose misclassification only after verifying the crop
Once a complete glyph reaches the recognizer, test recognition independently. Select the same word manually from the original image and compare that result with the automatically generated crop.
If the manual crop works, return to preprocessing, padding or grouping. If both crops fail in the same way, examine recognition settings and the source pixels.
For confusion between rounded letters, inspect whether a highlight has erased part of a stroke, a shadow has added a spur, or thresholding has joined the glyph to nearby material. Compare grayscale input with the binary mask rather than assuming thresholding always improves recognition.
Check the expected language, text orientation, segmentation mode and allowed character set where the OCR software supports them. Restricting the alphabet is appropriate only when the field specification genuinely excludes other characters.
Do not replace every suspect letter with its most likely alternative merely to produce a plausible string. Use independent constraints, such as an approved identifier list or a documented field format, and retain the unmodified OCR output for diagnosis.
Confidence scores also need validation against labeled examples. Different recognizers define them differently, and a high score does not prove that every character was captured.
Validate tuning with representative samples
Separate threshold development from final evaluation. Use a development set to inspect failures, then evaluate the selected settings on images that did not guide those changes.
Include narrow letters, rounded letters, punctuation, the smallest text, unusual spacing and distracting background regions. Cover the expected variation in focus, position, contrast and printing quality.
Report more than one metric:
| Metric | What it measures | Why it matters |
|---|---|---|
| Candidate recall | Expected glyph regions retained before recognition | Exposes destructive filtering |
| Exact-field accuracy | Entire fields matching the reference text | Reflects usable inspection output |
| Character error rate | Insertions, deletions and substitutions relative to reference length | Separates partial improvement from complete success |
| False acceptance | Incorrect fields released as acceptable | Captures the most consequential validation failure |
| Processing time | Time spent per image under the intended load | Reveals the cost of retaining more candidates |
For a batch of 200 fields, 190 exact matches give 190 / 200 × 100 = 95% exact-field accuracy. Inspect the remaining fields individually: ten deleted letters call for a different correction than ten retained but misclassified letters.
Document the matching convention for candidate recall. Nested candidate regions and glyphs made of disconnected components can otherwise make that number misleading.
Choose hardware for observability, not an assumed OCR fix
Do not replace the camera merely because a text-region threshold rejects valid letters. First establish whether the original image contains enough stable information.
Smart cameras can support device-side inspection architectures, but confirm the actual OCR tools, supported fonts, licensing and diagnostic access for the proposed configuration. A product category alone does not establish those capabilities.
Consider LS-SMC-0063 as a device-side evaluation candidate. Request confirmation of the intermediate-image access and text-processing controls needed for your workflow.
- Interface
- GigE
- Resolution
- Up to 3 MP
Area scan cameras support an architecture where acquisition and recognition software are selected separately. Compare acquisition options in the camera finder after measuring your sampling and exposure requirements.
LS-CMR-0166 is an acquisition candidate for that evaluation. Confirm its suitability for the scene and motion conditions independently of the OCR software choice.
- Sensor format
- 1/1.7"
- Interface
- USB3
- Resolution
- 12 MP
- Shutter
- Rolling
Where centralized processing is needed, compare vision controllers for camera connectivity and deployment requirements. Verify software compatibility and access to diagnostic outputs before selecting the processing platform.
Checks before deployment
Use this checklist after the proposed settings pass the held-out evaluation:
- Every missing glyph has a traceable cause. Preserve its original candidate identifier and rejection reasons.
- Narrow characters survive geometric filtering. Check actual font examples rather than only synthetic rectangles.
- Text grouping preserves valid isolated content. Review punctuation and single-character fields separately.
- Crops retain complete strokes. Test image borders, padding and coordinate conversions.
- Recognition settings match the field specification. Avoid restrictions that conceal legitimate characters.
- Raw output remains available. Record normalization and validation as separate operations.
- Uncertain readings follow a defined review or rejection path. Do not force every image into an accepted string.
- Runtime is acceptable with diagnostic settings removed. Measure representative processing load, not only one image.
The usual answer—relax a shape threshold—is wrong when the source image has already lost a stroke, the crop is misplaced, or the recognizer receives the wrong text layout. Fix the earliest failing stage, then repeat the complete evaluation.
For a new acquisition setup, start with the camera configurator. For an existing inspection, send representative source images, candidate overlays and expected strings through applications support so the discussion starts with the stage that actually fails.
Questions
Why does OCR miss a narrow letter while reading nearby characters?
First check whether the letter appears among the initial candidates and whether it survives each filtering stage. Narrow letters can fail minimum-area, minimum-aspect-ratio or eccentricity rules. They may also become isolated during grouping. Changing recognition settings will not recover a letter excluded from the final crop.
Should I increase the aspect-ratio threshold to preserve narrow characters?
No. The direction depends on how the ratio is defined and which comparison rejects candidates. For width divided by height, a tall narrow glyph has a small ratio. Log the measured value and the exact rejection condition before changing either limit.
How can I distinguish a rounded-letter recognition error from bad preprocessing?
Compare the original grayscale glyph, its processed mask and the actual recognition crop. Look for missing edges, attached pixels or clipped padding. Then test a manually selected crop with the same recognizer. Persistent confusion on a clean, complete crop points toward recognition configuration or model limitations.
Can I disable all geometric filters to improve OCR?
Retaining more candidates is useful during diagnosis, but it may increase background detections, merge unrelated regions and slow processing. Replace overly broad exclusions with rules validated on representative text and clutter. Measure both character retention and incorrect field acceptance before deploying the revised settings.
How many images are needed to validate revised text filters?
There is no universal sample count. Cover the expected fonts, sizes, spacing, positions and acquisition conditions, and reserve separate images for final evaluation. Report exact-field accuracy alongside deletion and substitution errors. A small collection of easy examples cannot establish performance on difficult production cases.

