# US 8,740,081 B2 · Method and apparatus for ordering code candidates in image for decoding attempts

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,740,081 B2
- Document ID: US8740081B2
- Status: Granted
- Kind: B2
- Application number: 13/288,104
- Filed: 2011-11-03
- Published: 2013-05-09
- Granted: 2014-06-03
- Earliest claimed: 2011-11-03
- Assignees: Cognex Corporation
- Applicants: James Negro; John F. Keating; Michael C. Moed
- Inventors: James Negro; John F. Keating; Michael C. Moed
- Web page: https://patentgrep.com/patent/US8740081B2

## CPC

- G06K 7/1465: {using several successive scans of the optical code}
- G06K 7/10722: {Photodetector array or CCD scanning}
- G06K 7/10762: {Relative movement}
- G06K 7/10871: {randomly oriented data-fields, code-marks therefore, e.g. concentric circles-code}
- G06K 7/1417: {2D bar codes}
- G06K 7/1443: {locating of the code in an image}
- G06K: GRAPHICAL DATA READING (image or video recognition or understanding G06V); PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS

## Abstract

A method and apparatus for decoding codes applied to objects for use with a camera and a conveyor system wherein the camera includes an image sensor having a two dimensional field of view (FOV), the method comprising the steps of providing a processor programmed to perform the steps of obtaining images of the FOV, for each image identifying code candidates in at least portions of the image, ordering at least a subset of the code candidates for decoding in a candidate order wherein the candidate order is determined at least in part as a function of a first direction of travel through the FOV, attempting to decode code candidates in the order specified by the direction of travel and when a new image event occurs, foregoing attempts to decode at least a portion of the identified code candidates.

## Claims

### Claim 1

A method for decoding codes applied to objects for use with a camera and a conveyor system wherein the camera includes an image sensor having a two dimensional field of view (FOV) and the conveyor system moves objects in a first direction of travel through the FOV such that objects enter the FOV along an entry edge and exit the FOV along an exit edge, the method comprising the steps of:
providing a processor programmed to perform the steps of:
obtaining images of the FOV;
for each image:
(i) identifying code candidates in at least portions of the image;
(ii) ordering at least a subset of the code candidates for decoding in a candidate order wherein the candidate order is determined at least in part as a function of the first direction of travel through the FOV;
(iii) attempting to decode code candidates in the order specified by the candidate order; and
(iv) when a new image event occurs, foregoing attempts to decode at least a portion of the identified code candidates.

### Claim 2 (depends on 1)

The method of claim 1 wherein the step of ordering at least a subset of code candidates includes identifying at least first and second regions of interest (ROIs) in the FOV that are adjacent the entry edge and the exit edge of the FOV, respectively, identifying code candidates in each of the at least first and second ROIs, and ordering the code candidates in one of the first and second ROIs for processing prior to the code candidates in the other of the first and second ROIs.

### Claim 3 (depends on 2)

The method of claim 2 wherein the code candidates in the first ROI are ordered prior to the code candidates in the second ROI in the candidate order.

### Claim 4 (depends on 2)

The method of claim 2 wherein the code candidates in the second ROI are ordered prior to the code candidates in the first ROI in the candidate order.

### Claim 5 (depends on 1)

The method in claim 1 wherein the step of ordering at least a subset of the code candidates further includes the step of identifying code candidates that will likely be outside the FOV when a next image is obtained and ordering the code candidates that will likely be outside the FOV when the next image is obtained near the beginning of the candidate order.

### Claim 6 (depends on 5)

The method of claim 5 wherein the step of identifying code candidates that will likely be outside the FOV further includes the step of, for code candidates that will likely be outside the FOV when the next image is obtained, identifying code candidates that have likely been decoded in prior images and code candidates that likely have not been decoded in prior images and ordering the code candidates that likely have not been decoded in prior images prior to the code candidates that have likely been decoded in prior images.

### Claim 7 (depends on 5)

The method of claim 5 wherein the step of ordering at least a subset of the code candidates further includes the steps of identifying code candidates that are likely new to the FOV and identifying code candidates that were likely in a prior image and that will likely be in the FOV when a subsequent image is obtained and ordering the code candidates that were likely in a prior image and that will likely be in the FOV when the subsequent image is obtained near the end of the candidate order and the code candidates that were likely in a prior image generally near the middle of the candidate order.

### Claim 8 (depends on 1)

The method of claim 1 wherein the step of ordering at least a subset of the code candidates includes identifying code candidates that likely are new to the FOV near the beginning of the candidate order.

### Claim 9 (depends on 1)

The method of claim 1 wherein the step of ordering at least a subset of the code candidates includes:
identifying code candidates that are likely to be outside the FOV when a next image is obtained and that have likely not been decoded in a prior image as a first candidate subset;
identifying code candidates that are likely to be outside the FOV when a next image is obtained and that have likely been decoded in a prior image as a second candidate subset;
identifying code candidates that are likely to be in the FOV when a next image is obtained and that have likely not been decoded in a prior image as a third candidate subset;
identifying code candidates that are likely to be in the FOV when a next image is obtained and that have likely been decoded in a prior image as a fourth candidate subset; and
ordering the subsets so that the first candidate subset occurs prior to the second candidate subset, the second candidate subset occurs prior to the third candidate subset and the third candidate subset occurs prior to the fourth candidate subset.

### Claim 10 (depends on 1)

The method of claim 1 wherein, when a new image is obtained, the method further includes discarding code candidates in the candidate order for which no attempt to decode has occurred.

### Claim 11 (depends on 1)

The method of claim 1 wherein the conveyor system conveys objects in the first direction of travel at a conveyor speed and wherein the candidate order is determined at least in part as a function of the conveyor speed.

### Claim 12 (depends on 1)

The method of claim 1 wherein at least first and second different decode algorithms may be used to attempt to decode any of the code candidates, the method further including the step of assigning one of the first and second decode algorithms to each of at least a subset of the code candidates in the candidate order wherein the algorithm assigned to each candidate is at least in part a function of the candidate order.

### Claim 13 (depends on 12)

The method of claim 12 further including the steps of identifying code candidates that were likely successfully decoded in prior images and code candidates that were likely not successfully decoded in prior images, the step of assigning first and second decode algorithms including assigning the decode algorithms at least in part as a function of whether or not code candidates were likely decoded in a prior image.

### Claim 14 (depends on 12)

The method of claim 12 wherein the first decode algorithm requires more time than the second decode algorithm to complete.

### Claim 15 (depends on 1)

The method of claim 1 wherein a new image event occurs when a new image is obtained.

### Claim 16 (depends on 1)

The method of claim 1 wherein a new image event occurs when an image acquisition period has lapsed.

### Claim 17 (depends on 1)

The method of claim 1 wherein the first ROI is proximate one of the entry and exit edges of the FOV and the second ROI is proximate the other of the entry and exit edges of the FOV.

### Claim 18

A method for decoding codes applied to objects for use with a camera and a conveyor system wherein the camera includes an image sensor having a two dimensional field of view (FOV) and the conveyor system moves objects in a first direction of travel through the FOV such that objects enter the FOV along an entry edge and exit the FOV along an exit edge, the method comprising the steps of:
providing a processor programmed to perform the steps of:
identifying the first direction of travel through the FOV;
obtaining images of the FOV;
for each image, where an image most recently obtained is a current image:
(i) identifying code candidates in at least portions of the image;
(ii) attempting to decode code candidates that are proximate the exit edge of the FOV;
(iii) after attempting to decode code candidates that are proximate the exit edge of the FOV, attempting to decode code candidates that are proximate the entry edge of the FOV; and
(iv) when a new image event occurs, foregoing attempts to decode at least a portion of the identified code candidates.

### Claim 19

A method for decoding codes applied to objects for use with a camera and a conveyor system wherein the camera includes an image sensor having a two dimensional field of view (FOV) and the conveyor system moves objects in a first direction through the FOV such that objects enter the FOV along an entry edge and exit the FOV along an exit edge so that the sensor generates images having at least first and second different regions of interest that are adjacent the entry edge and the exit edge, respectively the method comprising the steps of:
providing a processor programmed to perform the steps of:
obtaining an image of the FOV;
for each image:
(i) identifying code candidates in at least portions of the image;
(ii) identifying at least first and second different regions of interest (ROIs) in the obtained image;
(iii) attempting to decode code candidates in the first ROI a first time;
(iv) after attempting to decode code candidates in the first ROI, attempting to decode code candidates in the second ROI;
(v) after attempting to decode code candidates in the second ROI, attempting a second time to decode code candidates in the first ROI; and
(vi) when a new image event occurs, foregoing attempts to decode at least a portion of the identified code candidates.

### Claim 20 (depends on 19)

The method of claim 19 wherein the step of attempting to decode code candidates in the first ROI a first time includes using a first decode algorithm and the step of attempting to decode code candidates in the first ROI a second time includes attempting to decode the code candidates using a second decode algorithm that is different than the first decode algorithm.

### Claim 21 (depends on 19)

The method of claim 19 further including the step of ordering code candidates within the first ROI in a candidate order, the step of attempting to decode code candidates in the first ROI a first time, including attempting to decode the code candidates in an order prescribed by the candidate order.

### Claim 22 (depends on 21)

The method of claim 21 further including the step of identifying code candidates in the first ROI that have likely been previously decoded in at least one prior image, the step of ordering the code candidates including order the code candidates at least in part as a function of which candidates have likely been previously decoded in at least one prior image.

### Claim 23

A method for decoding codes applied to objects for use with a camera and a conveyor system wherein the camera includes an image sensor having a two dimensional field of view (FOV) and the conveyor system moves objects in a first direction of travel through the FOV such that objects enter the FOV along an entry edge and exit the FOV along an exit edge, the method comprising the steps of:
providing a processor programmed to perform the steps of:
obtaining images of the FOV;
for each image, where an image most recently obtained is a current image:
(i) identifying code candidates in at least portions of the image;
(ii) ordering the code candidates in a candidate order where the order is determined at least in part as a function of at least one of the locations of the code candidates in the FOV, the first direction of travel, the likelihood that code candidates were decoded in a prior image and the speed of travel of the objects through the FOV; and
(iii) when a new image event occurs, foregoing attempts to decode at least a portion of the identified code candidates.

### Claim 24

An apparatus for decoding codes applied to objects for use with a camera and a conveyor system wherein the camera includes an image sensor having a two dimensional field of view (FOV) and the conveyor system moves objects in a first direction of travel through the FOV such that objects enter the FOV along an entry edge and exit the FOV along an exit edge, the apparatus comprising:
a processor programmed to perform the steps of:
obtaining images of the FOV;
for each image:
(i) identifying code candidates in at least portions of the image;
(ii) ordering at least a subset of the code candidates for decoding in a candidate order wherein the candidate order is determined at least in part as a function of the first direction of travel through the FOV;
(iii) attempting to decode code candidates in the order specified by the direction of travel; and
(iv) when a new image event occurs, foregoing attempts to decode at least a portion of the identified code candidates.

### Claim 25 (depends on 24)

The apparatus of claim 24 wherein the processor is programmed to perform the step of ordering at least a subset of code candidates by identifying at least first and second regions of interest (ROIs) in the FOV that are adjacent the entry edge and the exit edge of the FOV, respectively, identifying code candidates in each of the at least first and second ROIs, and ordering the code candidates in one of the first and second ROIs for processing prior to the code candidates in the other of the first and second ROIs.

### Claim 26 (depends on 24)

The apparatus in claim 24 wherein the processor is programmed to perform the step of ordering at least a subset of the code candidates by identifying code candidates that will likely be outside the FOV when a next image is obtained and ordering the code candidates that will likely be outside the FOV when the next image is obtained near the beginning of the candidate order.

### Claim 27 (depends on 24)

The apparatus of claim 24 wherein the processor is programmed to perform the step of ordering at least a subset of the code candidates by identifying code candidates that likely are new to the FOV near the beginning of the candidate order.

### Claim 28

An apparatus for decoding codes applied to objects for use with a camera and a conveyor system wherein the camera includes an image sensor having a two dimensional field of view (FOV) and the conveyor system moves objects in a first direction of travel through the FOV such that objects enter the FOV along an entry edge and exit the FOV along an exit edge, the apparatus comprising: a processor programmed to perform the steps of:
identifying the first direction of travel through the FOV;
obtaining images of the FOV;
for each image, where an image most recently obtained is a current image:
(i) identifying code candidates in at least portions of the image;
(ii) attempting to decode code candidates that are proximate the exit edge of the FOV;
(iii) after attempting to decode code candidates that are proximate the exit edge of the FOV, attempting to decode code candidates that are proximate the entry edge of the FOV; and
(iv) when a new image event occurs, foregoing attempts to decode at least a portion of the identified code candidates.

### Claim 29

An apparatus for decoding codes applied to objects for use with a camera and a conveyor system wherein the camera includes an image sensor having a two dimensional field of view (FOV) and the conveyor system moves objects in a first direction through the FOV such that objects enter the FOV along an entry edge and exit the FOV along an exit edge so that the sensor generates images having at least first and second different regions of interest that are adjacent the entry edge and the exit edge, respectively, the apparatus comprising:
a processor programmed to perform the steps of:
obtaining an image of the FOV;
for each image:
(i) identifying code candidates in at least portions of the image;
(ii) identifying at least first and second different regions of interest (ROIs) in the obtained image;
(iii) attempting to decode code candidates in the first ROI a first time;
(iv) after attempting to decode code candidates in the first ROI, attempting to decode code candidates in the second ROI;
(v) after attempting to decode code candidates in the second ROI, attempting a second time to decode code candidates in the first ROI; and
(vi) when a new image event occurs, foregoing attempts to decode at least a portion of the identified code candidates.
