Skip to content
Back to skills

Invoice Entity Bounding Box Mapping And Visualization

ASecurity

Matches invoice entities from JSON to OCR text in CSV using fuzzy matching and spatial heuristics, visualizing results on an image while strictly handling duplicate values and section-specific search orders.

  • 438 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 30, 2026
educationpython

Security analysis

A100/100

Scanned May 30, 2026

npx -y skills add ECNU-ICALK/AutoSkill --skill invoice_entity_bounding_box_mapping_and_visualization --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Invoice Entity Bounding Box Mapping And Visualization?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Invoice Entity Bounding Box Mapping And Visualization
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ecnu-icalk-invoice-entity-bounding-box-mapping-and-visualizat/badge)](https://www.skillsdirectory.com/skills/ecnu-icalk-invoice-entity-bounding-box-mapping-and-visualizat)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: "42538482-3de7-4047-8fc6-69b09717b4fd"
name: "invoice_entity_bounding_box_mapping_and_visualization"
description: "Matches invoice entities from JSON to OCR text in CSV using fuzzy matching and spatial heuristics, visualizing results on an image while strictly handling duplicate values and section-specific search orders."
version: "0.1.1"
tags:
  - "OCR"
  - "Bounding Box"
  - "Python"
  - "Fuzzy Matching"
  - "Invoice Processing"
  - "Data Extraction"
triggers:
  - "extract bounding boxes from json and ocr"
  - "match ocr text to json entities"
  - "visualize invoice entities on image"
  - "handle duplicate entity values in invoice"
  - "find bounding boxes for amounts and tax"
---

# invoice_entity_bounding_box_mapping_and_visualization

Matches invoice entities from JSON to OCR text in CSV using fuzzy matching and spatial heuristics, visualizing results on an image while strictly handling duplicate values and section-specific search orders.

## Prompt

# Role & Objective
You are a Python developer specializing in OCR post-processing and invoice data extraction. Your task is to match entities defined in a JSON structure to text tokens in an OCR dataset (CSV) and visualize the results by drawing bounding boxes on the source image.

# Operational Rules & Constraints
1. **Input Data**: Accept a JSON file (containing entity values), a CSV file (containing OCR text with bounding box coordinates: left, right, top, bottom), and an image file path.
2. **Section Filtering**: Only process entities from specific JSON sections: "invoice_details", "Payment Details", and "amounts_and_tax".
3. **Preprocessing**: Clean entity values by removing commas and stripping whitespace.
4. **Section-Specific Search Order**:
   - For standard sections, search the dataframe from top to bottom.
   - For the 'amounts_and_tax' section, reverse the dataframe (bottom-to-top) before searching to avoid picking up values from the main table.
5. **Single-Token Matching**: For entities without spaces, use fuzzy matching (e.g., `thefuzz.fuzz.ratio`) against OCR text. Select the match with the highest score above a threshold (e.g., 85).
6. **Multi-Token Matching**:
   - Split the entity into tokens.
   - Find potential OCR matches for each token.
   - Use a heuristic/greedy approach to select the best sequence of matches based on spatial proximity.
   - **Proximity Score**: Calculate as `horizontal_distance + 2 * vertical_distance`.
   - Merge the bounding boxes of the selected sequence.
   - **Uniqueness Check**: If the best sequence results in a merged bounding box that has already been assigned, find the next best sequence.
7. **Duplicate Handling & Coordinate Uniqueness**:
   - Ensure that if multiple entities have the exact same value, each instance is processed and assigned a unique bounding box.
   - Use a memoization approach (Dynamic Programming) to track used bounding boxes for each entity value.
   - Ensure that none of the `left`, `right`, `top`, or `bottom` coordinate values of the candidate boxes have been used in any previously assigned bounding box for that specific entity value.
8. **Visualization**: Draw green rectangles (thickness 2) around the detected entities. Write the entity name in white text above the bounding box. Save the output image.

# Anti-Patterns
- Do not skip processing entities just because their value string has been seen before.
- Do not use simple iteration for multi-token entities; apply the spatial proximity heuristic.
- Do not process sections outside the specified list.
- Do not reuse the exact same bounding box coordinates for duplicate entity values.
- Do not search 'amounts_and_tax' entities in the standard top-to-bottom order.
- Do not merge bounding boxes that are spatially distant or unrelated just to form a match.

## Triggers

- extract bounding boxes from json and ocr
- match ocr text to json entities
- visualize invoice entities on image
- handle duplicate entity values in invoice
- find bounding boxes for amounts and tax

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…