IP Library Granted Patent US 10,115,031
Granted Patent B1
US 10,115,031 · App. 15/051,936 · Granted Oct 30, 2018

Detecting rectangular page and content boundaries from smartphone video stream

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 10,115,031
App. No.
15/051,936
Granted
Oct 30, 2018
Kind
B1
Abstract

Identifying a page with content in a video frame that is part of a video stream of successive video frames includes receiving the video stream, detecting edge segments in the video frame, where each of the edge segments is a candidate for being at least a part of an edge of the page, filtering the edge segments to discard a first subset of the edge segments based on curvature and based on angles between the edge segments and standard axes of the video frame, and identifying the page with content within a portion of a second subset of the edge segments that remain after filtering in response to the portion having geometric closeness to a rectangle. Edge segments having angles that significantly deviate from coordinate angles of the video frame and edge segments with a relatively high curvature may be discarded. A Canny edge detection algorithm may be used.

Claims (48)

1. A method of identifying a content page in a first video frame, comprising:

receiving a video stream including a plurality of successive video frames, the successive video frames including the first video frame;

detecting a plurality of edge segments in the first video frame, wherein each of the plurality of edge segments is a candidate for being at least a part of an edge of the content page in the first video frame;

filtering the plurality of edge segments to discard a first subset of edge segments from the plurality of edge segments based on a curvature of each edge segment in the first subset and based on one or more angles between each edge segment in the first subset and one or more standard axes of the first video frame, wherein the plurality of edge segments further include a second subset of edge segments each of which is distinct from the first subset of edge segments, and the second subset of edge segments define a region in the first video frame; and

in accordance with a determination that the region defined by the second subset of edge segments has geometric closeness to a rectangle, identifying the content page within the region of the first video frame defined by the second subset of edge segments.

2. The method, according to claim 1 , wherein filtering the edge segments further comprises discarding edge segments having angles that significantly deviate from coordinate angles of the first video frame and edge segments with a relatively high curvature.

3. The method, according to claim 1 , wherein detecting the plurality of edge segments includes using a Canny edge detection algorithm.

4. The method, according to claim 1 , further comprising:

constructing an edge graph using the second subset of edge segments that remain after filtering; and

constructing at least one cycle based on the edge graph, wherein the at least one cycle is used to detect the portion of the second subset of edge segments.

5. The method, according to claim 4 , wherein constructing the edge graph includes determining that a pair of edge segments are connected within the edge graph based on a probability of the pair of edge segments being adjacent.

6. The method, according to claim 4 , wherein identifying the content page includes detecting a presence of page content within a rectangle associated with the at least one cycle and includes determining a likelihood of converting the at least one cycle into a page rectangle with perspective correction corresponding to normal/acceptable view angles in the first video frame.

7. The method, according to claim 1 , wherein the video stream is provided by a camera of a smartphone.

8. A method of identifying a page with content in a video frame that is part of a video stream of successive video frames, comprising:

receiving the video stream;

detecting candidate page boundaries using color differences in the video frame by detecting a first pair of substantially parallel lines being substantially orthogonal to a second pair of substantially parallel lines, including using a median cumulative value of color gradients for color components above and below each of the lines, measured in a vicinity thereof; and

identifying the page in an area defined by an intersection of the candidate page boundaries.

9. The method, according to claim 8 , wherein each of the substantially parallel lines is selected from a plurality of additional lines that include an axis line that is parallel to an axis of the video frame and lines that are one or two degrees different from the axis line and wherein the color gradient values are determined for segments of the plurality of additional lines.

10. The method, according to claim 9 , wherein the color gradient values are decreased for segments of a particular one of the plurality of additional lines in which a function of a color gradient with respect to a distance from the particular one of the plurality of additional lines forms a sinusoidal shape.

11. A method of identifying a page with content in a video frame that is part of a video stream of successive video frames, comprising:

receiving the video stream;

detecting candidate page boundaries based on detecting and subtracting blank rectangular areas from the video frame; and

identifying the page in an area defined by an intersection of the candidate page boundaries.

12. The method, according to claim 11 , wherein blank rectangular areas are filled with a solid color that depends on a scene background.

13. A non-transitory computer-readable medium containing software that identifies a content page in a first video frame, comprising:

executable code that receives a video stream including a plurality of successive video frames, the successive video frames including the first video frame;

executable code that detects a plurality of edge segments in the first video frame, wherein each of the plurality of edge segments is a candidate for being at least a part of an edge of the content page in the first video frame;

executable code that filters the plurality of edge segments to discard a first subset of edge segments from the plurality of edge segments based on a curvature of each edge segment in the first subset and based on one or more angles between each edge segment in the first subset and one or more standard axes of the first video frame, wherein the plurality of edge segments further include a second subset of edge segments each of which is distinct from the first subset of edge segments, and the second subset of edge segments define a region in the first video frame; and

executable code that determines that the region defined by the second subset of edge segments has geometric closeness to a rectangle and identifies the content page within the region of the first video frame defined by the second subset of edge segments.

14. The non-transitory computer-readable medium, according to claim 13 , wherein filtering the edge segments further comprises discarding edge segments having angles that significantly deviate from coordinate angles of the first video frame and edge segments with a relatively high curvature.

15. The non-transitory computer-readable medium, according to claim 13 , wherein detecting the plurality of edge segments includes using a Canny edge detection algorithm.

16. The non-transitory computer-readable medium, according to claim 13 , further comprising:

executable code that constructs an edge graph using the second subset of edge segments that remain after filtering; and

executable code that constructs at least one cycle based on the edge graph, wherein the at least one cycle is used to detect the portion of the second subset of edge segments.

17. The non-transitory computer-readable medium, according to claim 16 , wherein executable code that constructs the edge graph determines that a pair of edge segments are connected within the edge graph based on a probability of the pair of edge segments being adjacent.

18. The non-transitory computer-readable medium, according to claim 16 , wherein executable code that identifies the page detects a presence of page content within a rectangle associated with the at least one cycle and determines a likelihood of converting the at least one cycle into a page rectangle with perspective correction corresponding to normal/acceptable view angles in the first video frame.

19. The non-transitory computer-readable medium, according to claim 13 , wherein the video stream is provided by a camera of a smartphone.

20. A non-transitory computer-readable medium containing software that identifies a page with content in a video frame that is part of a video stream of successive video frames, the software comprising:

executable code that receives the video stream;

executable code that detects candidate page boundaries using color differences in the video frame by detecting a first pair of substantially parallel lines being substantially orthogonal to a second pair of substantially parallel lines, wherein the executable code that detects candidate page boundaries uses a median cumulative value of color gradients for color components above and below each of the lines, measured in a vicinity thereof; and

executable code that identifies the page in an area defined by an intersection of the candidate page boundaries.

21. The non-transitory computer-readable medium, according to claim 20 , wherein each of the substantially parallel lines is selected from a plurality of additional lines that include an axis line that is parallel to an axis of the video frame and lines that are one or two degrees different from the axis line and wherein the color gradient values are determined for segments of the plurality of additional lines.

22. The non-transitory computer-readable medium, according to claim 21 , wherein the color gradient values are decreased for segments of a particular one of the plurality of lines in which a function of a color gradient with respect to a distance from the particular one of the plurality of additional lines forms a sinusoidal shape.

23. A non-transitory computer-readable medium containing software that identifies a page with content in a video frame that is part of a video stream of successive video frames, the software comprising:

executable code that receives the video stream;

executable code that detects candidate page boundaries based on detecting and subtracting blank rectangular areas from the video frame; and

executable code that identifies the page in an area defined by an intersection of the candidate page boundaries.

24. The non-transitory computer-readable medium, according to claim 23 , wherein blank rectangular areas are filled with a solid color that depends on a scene background.

Assignments (10)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2024
From: EVERNOTE CORPORATION
To: BENDING SPOONS S.P.A.
Reel/Frame 066288/0195 →
RELEASE OF SECURITY INTEREST Recorded Mar 17, 2023
From: MUFG BANK, LTD.
To: EVERNOTE CORPORATION
Reel/Frame 063116/0260 →
RELEASE OF SECURITY INTEREST Recorded Oct 8, 2021
From: EAST WEST BANK
To: EVERNOTE CORPORATION
Reel/Frame 057852/0078 →
SECURITY INTEREST Recorded Oct 6, 2021
From: EVERNOTE CORPORATION
To: MUFG UNION BANK, N.A.
Reel/Frame 057722/0876 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT TERMINATION AT R/F 040192/0720 Recorded Oct 22, 2020
From: SILICON VALLEY BANK
To: EVERNOTE CORPORATION
Reel/Frame 054145/0452 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT TERMINATION AT R/F 040240/0945 Recorded Oct 22, 2020
From: HERCULES CAPITAL, INC.
To: EVERNOTE CORPORATION; EVERNOTE GMBH
Reel/Frame 054213/0234 →
SECURITY INTEREST Recorded Oct 19, 2020
From: EVERNOTE CORPORATION
To: EAST WEST BANK
Reel/Frame 054113/0876 →
SECURITY INTEREST Recorded Oct 5, 2016
From: EVERNOTE CORPORATION; EVERNOTE GMBH
To: HERCULES CAPITAL, INC., AS AGENT
Reel/Frame 040240/0945 →
SECURITY AGREEMENT Recorded Sep 30, 2016
From: EVERNOTE CORPORATION
To: SILICON VALLEY BANK
Reel/Frame 040192/0720 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2016
From: PASHINTSEV, ALEXANDER; GORBATOV, BORIS; LIVSHITZ, EUGENE
To: EVERNOTE CORPORATION
Reel/Frame 038188/0629 →
Cited By (38)
US 12,206,829 US 12,219,263 US 12,225,296 US 12,231,610 US 12,249,137 US 12,254,638 US 12,260,657 US 12,266,145 US 12,272,111 US 12,289,531 US 12,294,786 US 12,309,498 US 12,315,126 US 12,315,282 US 12,335,626 US 12,347,221 US 12,387,512 US 12,389,124 US 12,389,125 US 12,444,213 US 12,445,731 US 12,445,732 US 12,445,733 US 12,456,322 US 12,456,323 US 12,462,366 US 12,470,809 US 12,482,286 US 12,525,048 US 12,541,989 US 12,581,062 US 12,581,078 US 12,581,079 US 12,586,402 US 12,587,647 US 12,608,743 US 12,688,667 US 12,718,605