IP Library Patent Application 18920767
Patent Application
App. No. 18/920,767

IDENTIFYING AND REMOVING CHARACTER OVERLAPS FOR OPTICAL CHARACTER RECOGNITION PROCESSING

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
18/920,767
Abstract

Techniques for identifying and eliminating overlaps of characters in an image that are to be processed for character recognition involve selecting a line of contours within the image, generating a line boundary around the line, identifying respective starting edgepoints on each edge of a contour that intersects the line boundary, and tracing a section of the contour by following each edge of the contour until a stopping point indicating an end to the tracing of the section of the contour is reached. The stopping point may comprise a determination that either (i) an end of the section of the contour is reached, or (ii) the section of the contour comprises a first sub-contour, and an intersection between the first sub-contour and a second sub-contour is reached. Based on the determination, the tracing of the section of the contour is completed, and the traced section is deleted from the image.

Claims (86)

1 . A computing platform comprising:

at least one processor;

at least one non-transitory computer-readable medium; and

program instructions stored on the at least one non-transitory computer-readable medium that, when executed by the at least one processor, cause the computing platform to:

identify, in an image, a line of contours that are to be processed for textual character recognition;

generate a line boundary around the line of contours;

identify a first edgepoint of a first edge of a contour that intersects the line boundary;

identify a second edgepoint of a second edge of the contour;

based on the first and second edgepoints, follow each edge of the contour and thereby begin tracing a section of the contour;

while tracing the section of the contour, make a determination that the section of the contour comprises a first sub-contour of the contour and that an intersection between the first sub-contour and a second sub-contour of the contour is reached;

based on the determination, complete tracing the section of the contour comprising the first sub-contour; and

cause the first sub-contour to be deleted from the image.

2 . The computing platform of claim 1 , wherein the program instructions that, when executed by the at least one processor, cause the computing platform to generate the line boundary around the line of contours comprise program instructions that, when executed by the at least one processor, cause the computing platform to:

sort contours in the image by size into at least medium contours and large contours, wherein the line of contours comprises a plurality of medium contours and at least one large contour; and

generate the line boundary by adding a padding distance around a bounding box that surrounds the medium contours in the line of contours.

3 . The computing platform of claim 2 , wherein the padding distance is five pixels.

4 . The computing platform of claim 1 , wherein the program instructions that, when executed by the at least one processor, cause the computing platform to follow each edge of the contour and thereby begin tracing the section of the contour comprise program instructions that, when executed by the at least one processor, cause the computing platform to:

for the first edge of the contour, iteratively add a next adjacent edgepoint to the first edge, starting from the first edgepoint; and

for the second edge of the contour, iteratively add a next adjacent edgepoint to the second edge, starting from the second edgepoint.

5 . The computing platform of claim 4 , further comprising program instructions that, when executed by the at least one processor, cause the computing platform to:

compare (i) a first distance between a next potential edgepoint on a given edge of the contour and a nearest edgepoint on the other edge of the contour and (ii) a second distance between a current edgepoint on the given edge of the contour and a nearest edgepoint on the other edge of the contour; and

based on comparing the first and second distances:

if the first distance is greater than the second distance, add a next edgepoint on the other edge; or

if the first distance is less than the second distance, add a next edgepoint on the given edge.

6 . The computing platform of claim 4 , further comprising program instructions stored on the at least one non-transitory computer-readable medium that, when executed by the at least one processor, cause the computing platform to:

for each edgepoint that is iteratively added to an edge, determine (i) a respective edgepoint angle and (ii) a respective edgepoint width,

wherein the determination that the intersection between the first sub-contour and the second sub-contour is reached comprises a determination that either (i) a difference between the respective edgepoint angle of a current edgepoint on the first edge and the respective edgepoint angle of a current edgepoint on the second edge is greater than a maximum angle threshold or (ii) a respective edgepoint width of the current edgepoint on either the first edge or the second edge is greater than a maximum width threshold.

7 . The computing platform of claim 6 , wherein an edgepoint angle comprises an angle of a line of best fit between a given edgepoint on a given edge and one or more preceding edgepoints on the given edge.

8 . The computing platform of claim 6 , wherein the maximum angle threshold is fifteen degrees.

9 . The computing platform of claim 6 , wherein an edgepoint width comprises a distance between a given edgepoint on a given edge of the contour and a nearest edgepoint on the other edge of the contour, and wherein the maximum width threshold is derived based on an average of respective edgepoint widths for all edgepoints on the section of the contour.

10 . The computing platform of claim 4 , further comprising program instructions stored on the at least one non-transitory computer-readable medium that, when executed by the at least one processor, cause the computing platform to:

after making the determination that the intersection between the first sub-contour and the second sub-contour is reached, determine whether a third sub-contour that is a continuation of the first sub-contour extends beyond the intersection by:

(i) determining a direction of travel for traversing the intersection;

(ii) iteratively traversing the intersection in the direction of travel; and

(iii) for each iteration of traversing the intersection, determining whether any points outside the contour are found within a given distance perpendicular to the direction of travel.

11 . The computing platform of claim 10 , wherein:

(i) determining the direction of travel for traversing the intersection comprises:

identifying a last edgepoint on a given edge that has a respective edgepoint angle that differs from a corresponding last edgepoint on the other edge by less than the maximum angle threshold and a respective edgepoint width less than the maximum width threshold;

calculating an average of the respective edgepoint angles of the last edgepoints; and

determining the direction of travel based on the average of the respective edgepoint angles;

(ii) iteratively traversing the intersection in the direction of travel comprises:

identifying a middle point between the last edgepoint on the given edge and the corresponding last edgepoint on the other edge; and

based on the middle point, perform one or more iterations of traversing the intersection in the direction of travel, wherein each iteration comprises an iteration distance that is derived based on a distance between the last edgepoint on the given edge and a current edgepoint on the given edge; and

(iii) determining whether any points outside the contour are found within a given distance perpendicular to the direction of travel comprises:

determining a maximum width of the first sub-contour, wherein the given distance comprises the maximum width; and

for each iteration, determining (a) if a point outside the contour is found in a first lateral direction perpendicular to the direction of travel and (b) if a point outside the contour is found in a second lateral direction perpendicular to the direction of travel.

12 . The computing platform of claim 1 , wherein the contour is a first contour, the computing platform further comprising program instructions that, when executed by the at least one processor, cause the computing platform to:

identify a first edgepoint of a first edge of a second contour that intersects the line boundary;

identify a second edgepoint of a second edge of the second contour;

based on the first and second edgepoints, follow each edge of the second contour and thereby begin tracing a section of the second contour;

while tracing the section of the second contour, make a determination that an end of the second contour is reached;

based on the determination, complete tracing the section of the second contour; and

cause the second contour to be deleted from the image.

13 . The computing platform of claim 12 , wherein:

the program instructions that, when executed by the at least one processor, cause the computing platform to follow each edge of the second contour and thereby begin tracing the section of the second contour comprise program instructions that, when executed by the at least one processor, cause the computing platform to:

for the first edge of the second contour, iteratively add a next adjacent edgepoint to the first edge, starting from the first edgepoint; and

for the second edge of the second contour, iteratively add a next adjacent edgepoint to the second edge, starting from the second edgepoint; and

the determination that the end of the second contour is reached comprises a determination that a next potential edgepoint on a given edge would overlap an existing edgepoint on the other edge.

14 . The computing platform of claim 1 , wherein the program instructions that, when executed by the at least one processor, cause the computing platform to cause the section of the contour to be deleted from the image comprise program instructions that, when executed by the at least one processor, cause the computing platform to:

update a respective color of each pixel in the section of the contour to match a background color of the image.

15 . The computing platform of claim 1 , wherein each contour comprises a respective set of contiguous pixels identified in image data corresponding to the image.

16 . The computing platform of claim 1 , wherein the line of contours comprises a set of contours having a substantially similar y-axis value or x-axis value within the image.

17 . A non-transitory computer-readable medium, wherein the non-transitory computer-readable medium is provisioned with program instructions that, when executed by at least one processor, cause a computing platform to:

identify, in an image, a line of contours that are to be processed for textual character recognition;

generate a line boundary around the line of contours;

identify a first edgepoint of a first edge of a contour that intersects the line boundary;

identify a second edgepoint of a second edge of the contour;

based on the first and second edgepoints, follow each edge of the contour and thereby begin tracing a section of the contour;

while tracing the section of the contour, make a determination that the section of the contour comprises a first sub-contour of the contour and that an intersection between the first sub-contour and a second sub-contour of the contour is reached;

based on the determination, complete tracing the section of the contour comprising the first sub-contour; and

cause the first sub-contour to be deleted from the image.

18 . The non-transitory computer-readable medium of claim 17 , wherein the program instructions that, when executed by at least one processor, cause the computing platform to generate the line boundary around the line of contours comprise program instructions that, when executed by at least one processor, cause the computing platform to:

sort contours in the image by size into at least medium contours and large contours, wherein the line of contours comprises a plurality of medium contours and at least one large contour; and

generate the line boundary by adding a padding distance around a bounding box that surrounds the medium contours in the line of contours.

19 . The non-transitory computer-readable medium of claim 17 , wherein the program instructions that, when executed by at least one processor, cause the computing platform to follow each edge of the contour and thereby begin tracing the section of the contour comprise program instructions that, when executed by at least one processor, cause the computing platform to:

for the first edge of the contour, iteratively add a next adjacent edgepoint to the first edge, starting from the first edgepoint; and

for the second edge of the contour, iteratively add a next adjacent edgepoint to the second edge, starting from the second edgepoint.

20 . A method carried out by a computing platform, the method comprising:

identifying, in an image, a line of contours that are to be processed for textual character recognition;

generating a line boundary around the line of contours;

identifying a first edgepoint of a first edge of a contour that intersects the line boundary;

identifying a second edgepoint of a second edge of the contour;

based on the first and second edgepoints, following each edge of the contour and thereby begin tracing a section of the contour;

while tracing the section of the contour, making a determination that the section of the contour comprises a first sub-contour of the contour and that an intersection between the first sub-contour and a second sub-contour of the contour is reached;

based on the determination, completing tracing the section of the contour comprising the first sub-contour; and

causing the first sub-contour to be deleted from the image.

Assignments (1)
MERGER Recorded Jul 2, 2025
From: DISCOVER FINANCIAL SERVICES
To: CAPITAL ONE FINANCIAL CORPORATION
Reel/Frame 071784/0903 →