refine: clarify rotation analysis to account for text orientation + tilt
Previous prompt only measured text baseline angle from horizontal (-45° to +45°), missing that text can be vertical/sideways, requiring larger rotations (up to ±180°). New guidance: - Measure TOTAL rotation needed to make text horizontal and readable - Account for both chassis tilt AND text orientation (horizontal vs vertical) - Example: 22° tilt + 90° vertical text = 112° total rotation - Allows full -180° to +180° range instead of limiting to ±45° No changes to item identification fields, OCR rules, or crop bounds analysis.
This commit is contained in:
@@ -90,29 +90,30 @@
|
||||
- Include minimal padding (10-15 pixels) around item edges
|
||||
- Ignore background clutter, other items, hands, reflections
|
||||
|
||||
### Rotation Analysis (CRITICAL - PRECISE TEXT ANGLE MEASUREMENT)
|
||||
### Rotation Analysis (CRITICAL - ROTATION TO HORIZONTAL TEXT)
|
||||
|
||||
**IMPORTANT: Return SMALL angles (typically -45 to +45). Large angles (60°+) indicate measurement error.**
|
||||
**IMPORTANT: Return the TOTAL ROTATION ANGLE needed to make text perfectly horizontal and readable (left-to-right, top-to-bottom, standard reading position).**
|
||||
|
||||
**Algorithm:**
|
||||
1. Locate the PRIMARY text/label on the item (part number, manufacturer, specs)
|
||||
2. Imagine a perfectly horizontal line (0°)
|
||||
3. Measure how many degrees the text baseline is rotated FROM horizontal:
|
||||
- Count degrees counter-clockwise = POSITIVE value to return
|
||||
- Count degrees clockwise = NEGATIVE value to return
|
||||
- LIMIT: Most items need -45° to +45°. If you calculate ±60° or more, re-examine your measurement.
|
||||
2. Analyze BOTH the text orientation AND tilt:
|
||||
- Is the text currently horizontal or vertical/sideways?
|
||||
- Is the text tilted/rotated relative to its baseline?
|
||||
3. Calculate TOTAL rotation to standard horizontal reading:
|
||||
- Chassis/image tilt: e.g., item tilted 22° → needs -22° or +22° correction
|
||||
- Text orientation: if vertical → add ±90° to the tilt correction
|
||||
- Combine both to get final rotation angle
|
||||
|
||||
4. **Return exactly this value as `rotation_degrees`**
|
||||
- SMALL adjustments: 0° to ±30° (most common)
|
||||
- LARGE adjustments: ±31° to ±45° (rare, carefully verify)
|
||||
- EXTREME values (±60°+): Likely error — recalculate or return 0
|
||||
4. **Return exactly this value as `rotation_degrees`** (range: -180° to +180°)
|
||||
- Counter-clockwise rotation needed = POSITIVE value
|
||||
- Clockwise rotation needed = NEGATIVE value
|
||||
|
||||
**Measurement examples** (measure the TEXT BASELINE angle only):
|
||||
- Text reads horizontally → `0`
|
||||
- Text tilted slightly left (counter-clockwise), ~15-25° → `+15` to `+25` (NOT higher)
|
||||
- Text tilted slightly right (clockwise), ~10-20° → `-10` to `-20` (NOT lower)
|
||||
- Text perfectly vertical pointing left → `90` (only if TRULY vertical)
|
||||
- Text perfectly vertical pointing right → `-90` (only if TRULY vertical)
|
||||
**Measurement examples** (TOTAL rotation to make text horizontal):
|
||||
- Text already horizontal → `0`
|
||||
- Item tilted 22° clockwise, text horizontal → `+22` (counter-clockwise to level)
|
||||
- Text vertical (pointing left), ~90° rotation needed → `+90`
|
||||
- Item tilted 22° clockwise AND text vertical → `+112` (22° + 90°)
|
||||
- Text pointing right (180° rotated) → `-180` or `+180` (equivalent)
|
||||
- If uncertain or mixed angles → `0` (safe default)
|
||||
|
||||
### Confidence Score
|
||||
|
||||
Reference in New Issue
Block a user