IP Library Granted Patent US 9,792,895
Granted Patent B2
US 9,792,895 · App. 14/863,512 · Granted Oct 17, 2017

System and method for using prior frame data for OCR processing of frames in video sources

View Patent ↗
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 9,792,895
App. No.
14/863,512
Granted
Oct 17, 2017
Kind
B2
Abstract

Disclosed are systems, methods and computer program products for using prior frame data for OCR processing of frames in video sources to detect natural language text therein. An example includes receiving a frame from a video source and retrieving prior frame data associated with the video source. The OCR-processing includes using prior frame data to detect blobs similar to blobs described in the prior frame data; using detected similar blobs to detect in the frame character candidates similar to character candidates described in the prior frame data; using detected similar character candidates to detect in the frame text candidates similar to text candidates described in the prior frame data; and using detected similar text candidates to detect in the frame text strings similar to text strings described in the prior frame data.

Claims (147)

1. A method for OCR-processing of a current frame in a video source, the method comprising:

receiving, by a hardware processor, the current frame from the video source;

retrieving, from a memory, prior frame data of a prior frame associated with the video source;

detecting, by the hardware processor in at least a portion of the current frame, at least one current frame blob similar to at least one prior frame blob identified in the prior frame data;

designating, by the hardware processor, the at least one current frame blob as at least one current character candidate without performing character candidate detection operations; and

identifying, in the at least a portion of the current frame, at least one current text string using the at least one current frame blob.

2. The method of claim 1 , further comprising at least one of:

translating the at least one current text string into another language; or

converting the at least one current text string to audio.

3. The method of claim 1 , wherein the at least one current frame blob is similar to the at least one prior frame blob based on at least one of:

similarity in position within a respective frame,

similarity in orientation within a respective frame,

similarity in shape, or

similarity in content.

4. The method of claim 1 , wherein identifying, in the at least a portion of the current frame, at least one current text string using the at least one current frame blob, comprises:

grouping the at least one current frame blob designated as the at least one current character candidate and one or more other current character candidates into at least one current cluster of character candidates;

determining whether the at least one current cluster of character candidates is similar to at least one prior cluster of character candidates identified in the prior frame data;

in response to determining that the at least one current cluster of character candidates is similar to the at least one prior cluster of character candidates identified in the prior frame data, designating the at least one current cluster of character candidates as at least one current text candidate, without performing text candidate detection operations;

determining whether current text candidates comprising the at least one current cluster of character candidates designated as the at least one current text candidate are similar to prior text candidates identified in the prior frame data;

in response to determining that the current text candidates comprising the at least one current cluster of character candidates designated as the at least one current text candidate are similar to the prior text candidates identified in the prior frame data, designating the current text candidates as at least one current text string candidate, without performing text string candidate detection operations; and

determining that the current text candidates designated as the at least one current text string candidate is similar to at least one prior text string candidate identified in the prior frame data.

5. The method of claim 1 , wherein the detecting of the at least one current frame blob similar to the at least one prior frame blob identified in the prior frame data is based on at least one blob description in the prior frame data that comprises:

position of the at least one prior frame blob within the prior frame;

orientation of the at least one prior frame blob within the prior frame; and

shape of the at least one prior frame blob.

6. The method of claim 4 , wherein determining that the at least one current cluster of character candidates is similar to the at least one prior cluster of character candidates identified in the prior frame data is based on at least one character candidate description in the prior frame data that comprises:

position of the at least one prior cluster of character candidates within the prior frame;

orientation of the at least one prior cluster of character candidates within the prior frame; and

shape of the at least one prior cluster of character candidates.

7. The method of claim 4 , wherein determining that the current text candidates comprising the at least one current cluster of character candidates designated as the at least one current text candidate are similar to the prior text candidates identified in the prior frame data is based on at least one text candidate description in the prior frame data that comprises:

position of the prior text candidates within the prior frame;

orientation of the prior text candidates within the prior frame; and

shape of the prior text candidates.

8. The method of claim 4 , wherein determining that the current text candidates designated as the at least one current text string candidate is similar to the at least one prior text string candidate identified in the prior frame data is based on at least one text string description in the prior frame data that comprises:

position of the at least one prior text string within the prior frame;

orientation of the at least one prior text string within the prior frame; and

content of the at least one prior text string.

9. The method of claim 1 , wherein the hardware processor used for OCR-processing of the at least a portion of the current frame and at least one hardware processor used to generate the prior frame data are different processors.

10. The method of claim 1 , wherein the hardware processor used for OCR-processing of the at least a portion of the current frame and at least one hardware processor used to generate the prior frame data are different cores of a single multi-core processor.

11. The method of claim 4 further comprising storing in the memory new frame data comprising at least one of:

the at least one current frame blob;

the at least one current character candidate;

the at least one current text candidate; or

the at least one current text string.

12. The method of claim 4 , further comprising at least one of:

detecting in the at least a portion of the current frame at least one blob not similar to blobs described in the prior frame data;

detecting in the at least a portion of the current frame at least one character candidate not similar to character candidates described in the prior frame data;

detecting in the at least a portion of the current frame at least one text candidate not similar to text candidates described in the prior frame data; or

detecting in the at least a portion of the current frame at least one text string not similar to text strings described in the prior frame data.

13. A system for OCR-processing of a current frame in a video source, the system comprising:

a computer processor configured to receive the current frame from the video source; and

a memory coupled to the processor configured to:

store a prior frame data of a prior frame associated with the video source; detect, in at least a portion of the current frame, at least one current frame blob similar to at least one prior frame blob identified in the prior frame data;

designate at least one current frame blob as at least one current character candidate without performing character candidate detection operations; and

identify, in the at least a portion of the current frame, at least one current text string using the at least one current frame blob.

14. The system of claim 13 , wherein the processor is further configured to perform at least one of:

translating the at least one current text string into another language; or

converting the at least one current text string to audio.

15. The system of claim 13 , wherein the at least one current frame blob is similar to the at least one prior frame blob based on at least one of:

similarity in position within a respective frame,

similarity in orientation within a respective frame,

similarity in shape, or

similarity in content.

16. The system of claim 13 , wherein to identify, in the at least a portion of the current frame, at least one current text string using the at least one current frame blob, the processor is to:

group the at least one current frame blob designated as the at least one current character candidate and one or more other current character candidates into at least one current cluster of character candidates;

determine whether the at least one current cluster of character candidates is similar to at least one prior cluster of character candidates identified in the prior frame data;

in response to determining that the at least one current cluster of character candidates is similar to the at least one prior cluster of character candidates identified in the prior frame data, designate the at least one current cluster of character candidates as at least one current text candidate, without performing text candidate detection operations;

determine whether current text candidates comprising the at least one current cluster of character candidates designated as the at least one current text candidate are similar to prior text candidates identified in the prior frame data;

in response to determining that the current text candidates comprising the at least one current cluster of character candidates designated as the at least one current text candidate are similar to the prior text candidates identified in the prior frame data, designate the current text candidates as at least one current text string candidate, without performing text string candidate detection operations; and

determine that the current text candidates designated as the at least one current text string candidate is similar to at least one prior text string candidate identified in the prior frame data.

17. The system of claim 13 , wherein at least one blob description in the prior frame data comprises:

position of the blob within the prior frame;

orientation of the blob within the prior frame; and

shape of the blob.

18. The system of claim 16 , wherein the processor is to detect the at least one current frame blob similar to the at least one prior frame blob identified in the prior frame data based on at least one blob description in the prior frame data that comprises:

position of the at least one prior frame blob within the prior frame;

orientation of the at least one prior frame blob within the prior frame; and

shape of the at least one prior frame blob.

19. The system of claim 16 , wherein the processor is to determine that the at least one current cluster of character candidates is similar to the at least one prior cluster of character candidates identified in the prior frame data based on at least one character candidate description in the prior frame data that comprises:

position of the at least one prior cluster of character candidates within the prior frame;

orientation of the at least one prior cluster of character candidates within the prior frame; and

shape of the at least one prior cluster of character candidates.

20. The system of claim 16 , wherein the processor is to determine that the current text candidates comprising the at least one current cluster of character candidates designated as the at least one current text candidate are similar to the prior text candidates identified in the prior frame data based on at least one text candidate description in the prior frame data that comprises:

position of the prior text candidates within the prior frame;

orientation of the prior text candidates within the prior frame; and

shape of the prior text candidates.

21. The system of claim 13 , wherein the hardware processor used for OCR-processing of the at least a portion of the current frame and at least one hardware processor used to generate the prior frame data are different processors.

22. The system of claim 13 , wherein the hardware processor used for OCR-processing of the at least a portion of the current frame and at least one hardware processor used to generate the prior frame data are different cores of a single multi-core processor.

23. The system of claim 16 , wherein the processor is further configured to store in the memory new frame data comprising at least one of:

the at least one current frame blob;

the at least one current character candidate;

the at least one current text candidate; or

the at least one current text string.

24. The system of claim 13 wherein the processor is further configured to perform at least one of:

detecting in the at least a portion of the current frame at least one blob not similar to blobs described in the prior frame data;

detecting in the at least a portion of the current frame at least one character candidate not similar to character candidates described in the prior frame data;

detecting in the at least a portion of the current frame at least one text candidate not similar to text candidates described in the prior frame data; or

detecting in the at least a portion of the current frame at least one text string not similar to text strings described in the prior frame data.

25. A non-transitory computer-readable storage medium, comprising computer-executable instructions, which when executed by a processor cause the processor to perform operations comprising:

receiving the current frame from a video source;

retrieving, from a memory, prior frame data of a prior frame associated with the video source;

detecting, by the processor in at least a portion of the current frame, at least one current frame blob similar to at least one prior frame blob identified in the prior frame data;

designating, by the processor, the at least one current frame blob as at least one current character candidate without performing character candidate detection operations; and

identifying, in the at least a portion of the current frame, at least one current text string using the at least one current frame blob.

26. The non-transitory computer-readable storage medium of claim 25 wherein the operations further comprise at least one of:

translating the at least one current text string into another language; or

converting the at least one current text string to audio.

27. The non-transitory computer-readable storage medium of claim 25 , wherein the at least one current frame blob is similar to the at least one prior frame blob based on at least one of:

similarity in position within a respective frame,

similarity in orientation within a respective frame,

similarity in shape, or

similarity in content.

28. The non-transitory computer-readable storage medium of claim 25 , wherein identifying, in the at least a portion of the current frame, at least one current text string using the at least one current frame blob, comprises:

grouping the at least one current frame blob designated as the at least one current character candidate and one or more other current character candidates into at least one current cluster of character candidates;

determining whether the at least one current cluster of character candidates is similar to at least one prior cluster of character candidates identified in the prior frame data;

in response to determining that the at least one current cluster of character candidates is similar to the at least one prior cluster of character candidates identified in the prior frame data, designating the at least one current cluster of character candidates as at least one current text candidate, without performing text candidate detection operations;

determining whether current text candidates comprising the at least one current cluster of character candidates designated as the at least one current text candidate are similar to prior text candidates identified in the prior frame data;

in response to determining that the current text candidates comprising the at least one current cluster of character candidates designated as the at least one current text candidate are similar to the prior text candidates identified in the prior frame data, designating the current text candidates as at least one current text string candidate, without performing text string candidate detection operations; and

determining that the current text candidates designated as the at least one current text string candidate is similar to at least one prior text string candidate identified in the prior frame data.

29. The non-transitory computer-readable storage medium of claim 25 , wherein the detecting of the at least one current frame blob similar to the at least one prior frame blob identified in the prior frame data is based on at least one blob description in the prior frame data that comprises:

position of the at least one prior frame blob within the prior frame;

orientation of the at least one prior frame blob within the prior frame; and

shape of the at least one prior frame blob.

30. The non-transitory computer-readable storage medium of claim 28 , wherein determining that the at least one current cluster of character candidates is similar to the at least one prior cluster of character candidates identified in the prior frame data is based on at least one character candidate description in the prior frame data that comprises:

position of the at least one prior cluster of character candidates within the prior frame;

orientation of the at least one prior cluster of character candidates within the prior frame; and

shape of the at least one prior cluster of character candidates.

31. The non-transitory computer-readable storage medium of claim 28 , wherein determining that the current text candidates comprising the at least one current cluster of character candidates designated as the at least one current text candidate are similar to the prior text candidates identified in the prior frame data is based on at least one text candidate description in the prior frame data that comprises:

position of the prior text candidates within the prior frame;

orientation of the prior text candidates within the prior frame; and

shape of the prior text candidates.

32. The non-transitory computer-readable storage medium of claim 28 , wherein determining that the current text candidates designated as the at least one current text string candidate is similar to the at least one prior text string candidate identified in the prior frame data is based on at least one text string description in the prior frame data that comprises:

position of the at least one prior text string within the prior frame;

orientation of the at least one prior text string within the prior frame; and

content of the at least one prior text string.

33. The non-transitory computer-readable storage medium of claim 25 , wherein the processor used for processing of the at least a portion of the current frame and at least one processor used to generate the prior frame data are different processors.

34. The non-transitory computer-readable storage medium of claim 25 , wherein the processor used for processing of the at least a portion of the current frame and at least one processor used to generate the prior frame data are different cores of a single multi-core processor.

35. The non-transitory computer-readable storage medium of claim 28 , wherein the operations further comprise storing in the memory new frame data comprising at least one of:

the at least one current frame blob;

the at least one current character candidate;

the at least one current text candidate; or

the at least one current text string.

36. The non-transitory computer-readable storage medium of claim 28 , wherein the operations further comprise at least one of:

detecting in the at least a portion of the current frame at least one blob not similar to blobs described in the prior frame data;

detecting in the at least a portion of the current frame at least one character candidate not similar to character candidates described in the prior frame data;

detecting in the at least a portion of the current frame at least one text candidate not similar to text candidates described in the prior frame data; or

detecting in the at least a portion of the current frame at least one text string not similar to text strings described in the prior frame data.

Assignments (4)
SECURITY INTEREST Recorded Aug 14, 2023
From: ABBYY INC.; ABBYY USA SOFTWARE HOUSE INC.; ABBYY DEVELOPMENT INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 064730/0964 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2022
From: ABBYY PRODUCTION LLC
To: ABBYY DEVELOPMENT INC.
Reel/Frame 059249/0873 →
MERGER Recorded Dec 31, 2018
From: ABBYY DEVELOPMENT LLC
To: ABBYY PRODUCTION LLC
Reel/Frame 047997/0652 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2015
From: KHINTSITSKIY, IVAN; ISAEV, ANDREY; FEDOROV, SERGEY
To: ABBYY DEVELOPMENT LLC
Reel/Frame 036833/0504 →