IP Library Granted Patent US 10,586,321
Granted Patent B2
US 10,586,321 · App. 15/854,500 · Granted Mar 10, 2020

Automatic detection, counting, and measurement of lumber boards using a handheld device

Inventors: Marius Leordeanu (Bucharest, RO); Vlad Licaret (Bucharest, RO); Tudor Buzu (Bacau, RO); Iulia-Adriana Muntianu (Bacau, RO); Catalin Mutu (Bucharest, RO)
Assignee: Fordaq SA
G06T7/0004G06T7/12G06T7/13G06T7/60G06T2207/30068G06T2207/30161G06T2207/30242
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,586,321
App. No.
15/854,500
Granted
Mar 10, 2020
Kind
B2
Abstract

An image processing system receives an image depicting a bundle of boards. The bundle of boards has a front face that is perpendicular to a long axis of boards and the image is captured at an angle relative to the long axis. The image processing system applies a homographic transformation to estimate a frontal view of the front face and identifies a plurality of divisions between rows in the estimate. For each adjacent pair of the plurality of divisions between rows, a plurality of vertical divisions is identified. The image processing system identifies a set of bounding boxes defined by pairs of adjacent divisions between rows and pairs of adjacent vertical divisions. The image processing system may filter and/or merge some bounding boxes to better match the bounding boxes to individual boards. Based on the bounding boxes, the image processing system determines the number of boards in the bundle.

Claims (84)

1. A computer-implemented method for an image processing system to analyze a bundle of boards, the bundle of boards having a front face that is perpendicular to a long axis of boards in the bundle, the method comprising:

receiving an image, a portion of the image depicting the bundle of boards, the image captured at an angle relative to the long axis of boards in the bundle;

applying a homographic transformation to the image to estimate a frontal view of the front face, the frontal view being an appearance of the front face if viewed from a perspective parallel to the long axis of boards in the bundle;

identifying a plurality of divisions between rows in the estimate of the frontal view;

identifying a plurality of vertical divisions for each adjacent pair of the plurality of divisions between rows, identifying the plurality of vertical divisions comprising:

generating a vertical projection from a row, the vertical projection comprising a plurality of peaks; and

identifying a peak of the plurality of peaks as a vertical division responsive to a size of the peak exceeding a vertical division threshold;

identifying a set of bounding boxes, each bounding box defined by a pair of adjacent divisions between rows and a pair of adjacent vertical divisions disposed between the pair of adjacent divisions between rows; and

determining a number of boards in the bundle based on the set of bounding boxes.

2. The method of claim 1 , wherein identifying the plurality of divisions between rows comprises:

generating a horizontal projection from the estimate of the frontal view, the horizontal projection comprising a plurality of peaks; and

identifying a peak of the plurality of peaks as corresponding to a division between rows responsive to a size of the peak exceeding a horizontal division threshold.

3. The method of claim 1 , wherein identifying the plurality of vertical divisions for the row further comprises:

generating a histogram of the plurality of peaks, the vertical division threshold dividing the plurality of peaks into two groups;

setting the vertical division threshold based on a total difference between each peak and other peaks in the same group.

4. The method of claim 1 , further comprising filtering the set of bounding boxes, the filtering comprising:

identifying a bounding box with a total area less than a minimum area threshold; and

removing the bounding box as corresponding to a gap between boards based on a color distribution of pixels encompassed by the bounding box.

5. The method of claim 1 , further comprising:

identifying a bounding box with a total area less than a minimum area threshold;

calculating, for each of a plurality of adjacent bounding boxes, a total area of a merged bounding box that would result from merging the bounding box and the adjacent bounding box;

selecting one of the plurality of adjacent bounding boxes based on a comparison of the total areas and a median area of bounding boxes already determined to correspond to a board; and

merging the bounding box with the selected adjacent bounding box.

6. The method of claim 1 , further comprising:

determining a mapping between a size in pixels in the estimate of the frontal view and a physical size in the real world; and

estimating a physical size of boards depicted in the estimate of the frontal view based on the mapping.

7. An image processing system configured to analyze a bundle of boards, the bundle of boards having a front face that is perpendicular to a long axis of boards in the bundle, the image processing system comprising:

a processor; and

a non-transitory computer-readable media comprising stored instructions that, when executed, cause the processor to:

receive an image, a portion of the image depicting the bundle of boards, the image captured at an angle relative to the long axis of boards in the bundle;

apply a homographic transformation to the image to estimate a frontal view of the front face, the frontal view being an appearance of the front face if viewed from a perspective parallel to the long axis of boards in the bundle;

identify a plurality of divisions between rows in the estimate of the frontal view;

identify a plurality of vertical divisions for each adjacent pair of the plurality of divisions between rows, the instructions that cause the processor to identify the plurality of vertical divisions comprising instructions that cause the processor to:

generate a vertical projection from a row, the vertical projection comprising a plurality of peaks; and

identify a peak of the plurality of peaks as a vertical division responsive to a size of the peak exceeding a vertical division threshold;

identify a set of bounding boxes, each bounding box defined by a pair of adjacent divisions between rows and a pair of adjacent vertical divisions disposed between the pair of adjacent divisions between rows; and

determine a number of boards in the bundle based on the set of bounding boxes.

8. The image processing system of claim 7 , wherein the instructions to identify the plurality of divisions between rows comprise instructions that cause the processor to:

generate a horizontal projection from the estimate of the frontal view, the horizontal projection comprising a plurality of peaks; and

identify a peak of the plurality of peaks as corresponding to a division between rows responsive to a size of the peak exceeding a horizontal division threshold.

9. The image processing system of claim 7 , wherein the instructions to identify the plurality of vertical divisions for a row further comprise instructions that cause the processor to:

generate a histogram of the plurality of peaks, the vertical division threshold dividing the plurality of peaks into two groups;

set the vertical division threshold based on a total difference between each peak and other peaks in the same group.

10. The image processing system of claim 7 , wherein the instructions further comprise instructions that cause the processor to:

identify a bounding box with a total area less than a minimum area threshold; and

remove the bounding box as corresponding to a gap between boards based on a color distribution of pixels encompassed by the bounding box.

11. The image processing system of claim 7 , wherein the instructions further comprise instructions that cause the processor to:

identify a bounding box with a total area less than a minimum area threshold;

calculate, for each of a plurality of adjacent bounding boxes, a total area of a merged bounding box that would result from merging the bounding box and the adjacent bounding box;

select one of the plurality of adjacent bounding boxes based on a comparison of the total areas and a median area of bounding boxes already determined to correspond to a board; and

merge the bounding box with the selected adjacent bounding box.

12. The image processing system of claim 7 , wherein the instructions further comprise instructions that cause the processor to:

determine a mapping between a size in pixels in the estimate of the frontal view and a physical size in the real world; and

estimate a physical size of boards depicted in the estimate of the frontal view based on the mapping.

13. A non-transitory computer-readable medium configured to store instructions, the instructions when executed by a processor causing the processor to:

receive an image, a portion of the image depicting a bundle of boards, the bundle of boards having a front face that is perpendicular to a long axis of boards in the bundle, the image captured at an angle relative to the long axis of boards in the bundle;

apply a homographic transformation to the image to estimate a frontal view of the front face, the frontal view being an appearance of the front face if viewed from a perspective parallel to the long axis of boards in the bundle;

identify a plurality of divisions between rows in the estimate of the frontal view;

identify a plurality of vertical divisions for each adjacent pair of the plurality of divisions between rows, the instructions that cause the processor to identify the plurality of vertical divisions comprising instructions that cause the processor to:

generate a vertical projection from a row, the vertical projection comprising a plurality of peaks; and

identify a peak of the plurality of peaks as a vertical division responsive to a size of the peak exceeding a vertical division threshold;

identify a set of bounding boxes, each bounding box defined by a pair of adjacent divisions between rows and a pair of adjacent vertical divisions disposed between the pair of adjacent divisions between rows; and

determine a number of boards in the bundle based on the set of bounding boxes.

14. The non-transitory computer readable medium of claim 13 , wherein the instructions to identify the plurality of divisions between rows comprise instructions that cause the processor to:

generate a horizontal projection from the estimate of the frontal view, the horizontal projection comprising a plurality of peaks; and

identify a peak of the plurality of peaks as corresponding to a division between rows responsive to a size of the peak exceeding a horizontal division threshold.

15. The non-transitory computer readable medium of claim 13 , wherein the instructions to identify the plurality of vertical divisions for a row comprise instructions that cause the processor to:

generate a vertical projection from the row, the vertical projection comprising a plurality of peaks;

generate a histogram of the plurality of peaks, a vertical division threshold dividing the plurality of peaks into two groups;

set the vertical division threshold based on a total difference between each peak and other peaks in the same group; and

identify a peak of the plurality of peaks as a vertical division responsive to a size of the peak exceeding the vertical division threshold.

16. The non-transitory computer readable medium of claim 13 , wherein the instructions further comprise instructions that cause the processor to:

identify a bounding box with a total area less than a minimum area threshold; and

remove the bounding box as corresponding to a gap between boards based on a color distribution of pixels encompassed by the bounding box.

17. The non-transitory computer readable medium of claim 13 , wherein the instructions further comprise instructions that cause the processor to:

identify a bounding box with a total area less than a minimum area threshold;

calculate, for each of a plurality of adjacent bounding boxes, a total area of a merged bounding box that would result from merging the bounding box and the adjacent bounding box;

select one of the plurality of adjacent bounding boxes based on a comparison of the total areas and a median area of bounding boxes already determined to correspond to a board; and

merge the bounding box with the selected adjacent bounding box.

18. The non-transitory computer readable medium of claim 13 , wherein the instructions further comprise instructions that cause the processor to:

determine a mapping between a size in pixels in the estimate of the frontal view and a physical size in the real world; and

estimate a physical size of boards depicted in the estimate of the frontal view based on the mapping.

19. The method of claim 1 , further comprising refining the homographic transformation based on the identified plurality of divisions between rows and the identified plurality of vertical divisions.

20. The image processing system of claim 7 , wherein the instructions further comprise instructions that cause the processor to refine the homographic transformation based on the identified plurality of divisions between rows and the identified plurality of vertical divisions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2018
From: LEORDEANU, MARIUS; LICARET, VLAD; BUZU, TUDOR; MUNTIANU, IULIA-ADRIANA; MUTU, CATALIN
To: FORDAQ SA
Reel/Frame 046717/0008 →
Continuity (3)
Provisional Application 62439437 · Dec 27, 2016
Provisional Application 62576442 · Oct 24, 2017
Related Publication 20180182088A1 · Jun 28, 2018