Patent Description:
During scanning operations, automatic document feeders (ADFs) may feed media past imaging sensors. As the media is moved across the imaging sensors, the imaging sensors may capture images of content on the media. <CIT> discloses an image reading apparatus which detects a position of a leading edge of an original utilizing the shadow thereof, irrespective of the thickness of the original.

SUMMARY: Apparatuses, methods and computer readable media are set out in the appended claims.

Generally, scanners may have a mechanism, such as automatic document feeders (ADFs), to feed media through the scanners. The scanners may be implemented to detect positions of the media as the media is being fed through the scanners. In some scanners, dedicated hardware components may be implemented to detect the positions of media. For instance, hardware components such as optical sensors, PCBs, connectors, harnesses, ferrite cores, and the like may be used in some scanners. However, concerns associated with such hardware-based systems may be relatively high costs associated with the hardware components, including maintenance and replacement costs.

In other examples, the imaging sensors of the scanner may be used to detect the positions of the media, in lieu of the hardware components. However, such implementations may be based on capturing images of components of the scanner, rather than a dedicated pattern for use in media detection, and analyzing properties of the corresponding signal. For instance, such implementations may capture an image of a surface of an automatic document feeder (ADF), and may analyze properties found in the resulting image to make media presence determinations. Concerns associated with such implementations may be that, in some instances, they may be limited to color scans, and as such, detection may be limited to analysis of color parameters such as chroma. These implementations may also have reduced edge detection reliability because accuracy of media detection may be sensitive to the scanner module and the media type. In some instances, these implementations may be limited to certain types of media, such as plain, non-glossy paper, may be sensitive to content of the page being scanned, may require manual tuning of firmware for different media types and scanner modules, and/or the like.

Disclosed herein are apparatuses, systems, methods, and computer-readable media in which an image of a pattern captured by an imaging sensor may be used to determine a position of media in a scanner. By way of particular example and for purposes of illustration, a pattern may be specific arrangement of printed features having specific CIE L*a*b* values, which may be implemented as a sticker. The pattern may be applied to a surface of the scanner, for instance on a white background surface of an ADF that faces an imaging sensor, so that the imaging sensor of the scanner may capture an image of the pattern. The processor may analyze incoming images from the imaging sensor to determine presence of the features in the received images. When the media reaches the imaging sensor, the features of the pattern may be blocked, in which case the processor may make a determination on a position of the media, for instance, that a beginning of the media may be positioned to be scanned by the imaging sensor.

In some examples, the processor may receive a first signal corresponding to an image of a pattern captured by an imaging sensor. The pattern may be positioned at a spaced relation with respect to the imaging sensor. The processor may identify first property values from the first signal along the image of the pattern. In some examples, the processor may identify peak values of the first property values, such as peak grey levels which may correlate to presence of features of the pattern in the captured image. The processor may receive a second signal corresponding to a second image captured by the imaging sensor and may identify, from the second signal, second property values in the second signal, along the second image. The identified second property values may be peak values of the second property values. The processor may determine whether the second property values differ from the first property values, which may indicate that the media is covering the image. In some examples, the processor may determine that the media or a portion of the media, such as a beginning portion or an end portion of the media, is positioned to be imaged by the imaging sensor.

By enabling detection of media using signals corresponding to an image of a pattern captured by an imaging sensor, the disclosed apparatuses, systems, methods, and computer-readable media may reduce costs associated with hardware components that may be dedicated to detect media presence. In some examples, the apparatus may prolong the life of the system by allowing removal of hardware components which may potentially fail, and at no additional costs for replacement of the hardware components that may be removed.

Additionally, when compared to implementations that use an imaging sensor to detect page edges, the apparatuses of the present disclosure may have several benefits including having relatively less limitations on supported scan modes, improved accuracy of page detection, relatively greater number of supported media types, relatively less dependency on document content, a relatively shorter firmware development time, improved power-up paper jam clearing, and/or the like. By improving the performance of page detection as described herein, the apparatuses of the present disclosure may reduce print media and energy consumption by reducing a number of defective scan/print jobs that may be caused by inaccurate detection of media.

Reference is made to <FIG>, <FIG>, <FIG>, <FIG>, and <FIG>. <FIG> depicts a block diagram of an example apparatus <NUM> that may determine that a media is positioned to be imaged by an imaging sensor. <FIG> depicts a block diagram of an example system <NUM> within which the example apparatus <NUM> depicted in <FIG> may be implemented. <FIG> depict diagrams of an example scanner <NUM> that the processor in the example apparatus <NUM> depicted in <FIG> and <FIG> may manage. <FIG> depicts a diagram of example scan windows <NUM> correlating to respective positions of a plurality of features included in a pattern and an example graph of property values that may correlate to the scan windows <NUM>. <FIG> depicts a graph of example waveforms <NUM> of property values according to different types of signal processing, including a raw scan signal waveform, a photo-response non-uniformity processed waveform, and a moving window average applied waveform. It should be understood that the apparatus <NUM> depicted in <FIG>, the system <NUM> depicted in <FIG>, the scanner <NUM> depicted in <FIG>, the scan windows <NUM> depicted in <FIG>, and waveforms <NUM> depicted in <FIG> may include additional features and that some of the features described herein may be removed and/or modified without departing from the scopes of the apparatus <NUM>, the system <NUM>, the scanner <NUM>, the scan windows <NUM>, and/or the waveforms <NUM>.

In some examples, the apparatus <NUM> may be implemented in a scanner, an ADF of a scanner, a printer (such as an inkjet printer, a laser printer, a photo printer, or the like), a computing device, and/or the like. As shown, the apparatus <NUM> may include a processor <NUM> and a non-transitory computer-readable medium, e.g., a memory <NUM>. The processor <NUM> may be a semiconductor-based microprocessor, a central processing unit (CPU), an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and/or other hardware device. Although the apparatus <NUM> is depicted as having a single processor <NUM>, it should be understood that the apparatus <NUM> may include additional processors and/or cores without departing from a scope of the apparatus <NUM> and/or system <NUM>. In this regard, references to a single processor <NUM> as well as to a single memory <NUM> may be understood to additionally or alternatively pertain to multiple processors <NUM> and/or multiple memories <NUM>. As depicted in <FIG>, the apparatus <NUM> may be implemented in a system <NUM>, which may include a server <NUM> with which the apparatus <NUM> may be in communication via a network <NUM>.

The memory <NUM> may be an electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. The memory <NUM> may be, for example, Read Only Memory (ROM), flash memory, solid state drive, Random Access memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, or the like. The memory <NUM> may be a non-transitory computer-readable medium. The term "non-transitory" does not encompass transitory propagating signals.

As shown in <FIG>, the processor <NUM> may execute instructions <NUM>-<NUM> to determine a presence of a media relative to an imaging sensor. The instructions <NUM>-<NUM> may be computer-readable instructions, e.g., non-transitory computer-readable instructions. In other examples, the apparatus <NUM> may include hardware logic blocks or a combination of instructions and hardware logic blocks to implement or execute functions corresponding to the instructions <NUM>-<NUM>.

In some examples, the processor <NUM> may calibrate for a pattern <NUM> based on a first signal <NUM> corresponding to an image of the pattern <NUM>. The processor <NUM> may receive the first signal <NUM> corresponding to the image of the pattern <NUM> captured by an imaging sensor <NUM>. In some examples, the pattern <NUM> may be a printed pattern that may be applied to a surface <NUM> of a scanner <NUM>, a molded pattern that may be formed integrally on the surface <NUM>, and/or the like. As depicted in <FIG>, the pattern <NUM> may be positioned at a spaced relation with respect to the imaging sensor <NUM>. By way of particular example and for purposes of illustration, an ADF <NUM> may be positioned adjacent to the imaging sensor <NUM> such that the imaging sensors <NUM> may be aligned to face a surface <NUM> of the ADF <NUM>. The ADF <NUM> may have a white background, which may provide relatively higher contrast for the pattern <NUM>. In this example, the pattern <NUM> may be applied to the surface <NUM> on the ADF <NUM>, such as a surface of a scroll bar, such that the imaging sensor <NUM> may capture an image of the pattern <NUM>. In this regard, the scroll bar may be a device that aids in proper scanning of the media <NUM>, for instance, by applying pressure to the media <NUM> against a glass that may be positioned over the imaging sensor <NUM>. The scroll bar may also be referred to as a pressure bar.

By way of particular example and for purposes of illustration, the pattern <NUM> may include a pattern of features <NUM>. In some examples, the features <NUM> may extend along a scan direction in which the media <NUM> may be fed, as depicted by the arrow <NUM> in <FIG>. The features <NUM> may be arranged to be parallel to the scan direction <NUM>. Alternatively or additionally, the features <NUM> may be arranged at predetermined angles relative to the scan direction <NUM>.

The pattern <NUM> may include a plurality of features 214a to 214n as depicted in <FIG>, in which the variable "n" may represent a value greater than one. In some examples, the features <NUM> may be arranged in pairs, such as the pair of features, e.g., lines, 214a and 214b and the pair of features, e.g., lines, 214c and 214n. The features 214a to 214n in the pattern <NUM> may be positioned at predetermined distances relative to each other. In some examples, the pattern <NUM> may include a single feature 214a.

The features <NUM> may have a predetermined color. By way of particular example and for purposes of illustration, the features <NUM> may be CIE L*a*b* controlled grey line pairs. In these instances, the features <NUM> may have a predetermined level of gray. The predetermined color of the features <NUM> may be determined to prevent bleed-through, for instance, in cases where the media <NUM> is positioned over the features <NUM> to block the features <NUM> from view of the imaging sensor <NUM>. In some examples, the surface <NUM> of the scanner <NUM> to which the pattern <NUM> is applied may have a predetermined color that may provide sufficient contrast to the color of the features <NUM>. In some examples, the surface <NUM> of the scanner <NUM> may be white and may provide a white background for the pattern <NUM>. It should be understood that, while the pattern <NUM> is described in the present disclosure as being a pattern of grey line pairs, the pattern <NUM> may include various types of patterns, which may be formed using different shapes, colors, characteristics, and/or the like.

The processor <NUM> may fetch, decode, and execute the instructions <NUM> to identify first property values <NUM> along the image of the pattern <NUM>. The first property values <NUM> may be based on a first signal <NUM> corresponding to the image of the pattern <NUM>. In some examples, the processor <NUM> may identify the first property values <NUM> based on the first signal <NUM> received from the imaging sensor <NUM>. Alternatively or additionally, the processor <NUM> may identify the first property values <NUM> based on information stored on the memory <NUM>, the server <NUM>, and/or the like, corresponding to the image of the pattern <NUM> captured by the imaging sensor <NUM>. The first property values <NUM> may be values of certain properties associated with the features <NUM> in the pattern <NUM> of the captured image. As such, the first property values <NUM> may be used to generate learned data, which may form reference values for a property of the features <NUM> for later comparison with other received signals. In some examples, the first property values <NUM> may be grey levels along the image of the pattern <NUM>, which may be identified from the first signal <NUM>. It should be understood that, while grey levels are used herein as an example for purposes of description, other types of properties of the captured image may be used.

In some examples, in order to identify the first property values <NUM>, the processor <NUM> may identify scan windows in the first signal <NUM>, such as scan windows <NUM> depicted in <FIG>. The processor <NUM> may analyze data from portions of the first signal <NUM> corresponding to the identified scan windows <NUM> rather than the entire first signal <NUM>, which may reduce the load on processing resources and improve the efficiency and speed in processing the first signal <NUM>.

The scan windows <NUM> may include a plurality of scan windows 400a to <NUM>, in which the variable may represent a value greater than one. Each of the scan windows 400a to <NUM> may correlate to respective positions of the plurality of features 214a to 214n included in the pattern <NUM>. For instance, each of the scan windows 400a to <NUM> may be sections of the first signal <NUM> correlating to respective positions of the plurality of features 214a to 214n included in the pattern <NUM>. The processor <NUM> may extract a section of the first signal <NUM> as a corresponding scan window 400a to <NUM> for further processing. The first property values <NUM> may include peak values within respective scan windows 400a to <NUM> corresponding to areas around the plurality of features 214a to 214n in the pattern <NUM>.

Each scan window 400a to <NUM> may have a predetermined width <NUM>. In some examples, the imaging sensor <NUM> may be made up of a series of sensors, each of which may correlate with a pixel in the captured image. The processor <NUM> may identify groups of the sensors, correlated to areas around the features 214a to 214n, according to the predetermined width <NUM> of the scan windows 400a to <NUM>. By way of particular example and for purposes of illustration, the predetermined width <NUM> of the scan windows 400a to <NUM> may be <NUM> pixels wide, and the processor <NUM> may identify <NUM> pixels centered around respective features 214a to 214n in the respective scan windows 400a to <NUM>. The widths of the scan windows <NUM> may be user-defined, or may be based on testing, modeling, simulations, and/or the like.

In some examples, the processor <NUM> may adjust positions of the identified scan windows 400a to <NUM> to center the identified scan windows 400a to <NUM> on peak values of the first property values 212a to 212p correlated to respective features 214a to 214n of the plurality of features <NUM>. The processor <NUM> may adjust the positions of the identified scan windows 400a to <NUM> based on the relative positions of each of the identified scan windows 400a to <NUM> to each other.

In this regard, the position of the pattern <NUM> may shift or change in the scanner <NUM>. That is, the position of the pattern <NUM> relative to a position of the imaging sensor <NUM> may not be fixed and may shift from scan job to scan job, for instance, due to lateral mechanical movements of the scanner components. As such, the processor <NUM> may calibrate the positions of the scan windows 400a to <NUM> to correlate with the positions of the features 214a to 214n. In some examples, the absolute positions of the peaks of the first property values <NUM> in each of the scan windows 400a to <NUM> may be individually calibrated throughout the scan job. However, such methods to individually calibrate positions of each scan window 400a to <NUM> may be processing resource intensive and time consuming.

As such, in some examples, the processor <NUM> may adjust the positions of the identified scan windows 400a to <NUM> based on relative positions of each of the identified scan windows 400a to <NUM> to each other. For instance, since the distances between each of the features 214a to 214n in the pattern <NUM> may be predetermined and known, the processor <NUM> may determine a position error for one scan window 400a and may apply the determined position error to the remaining scan windows 400b to <NUM> based on the known relative positions of each of the scan windows 400a to <NUM>. By way of particular example, based on a determination that the distance <NUM> of the peak of the first property value 212a should be increased by <NUM> pixels, the processor <NUM> may shift each of the scan windows 400a to <NUM> by <NUM> pixels from their respective relative positions to each other.

In some examples, the processor <NUM> may process the first signal <NUM> to improve a quality of a waveform <NUM> of the first signal <NUM> prior to using the first signal <NUM> to identify the first property values <NUM>. The processor <NUM> may apply a photo response non-uniformity (PRNU) algorithm, a horizontal moving window average (MWA) algorithm, a vertical MWA algorithm, and/or the like. PRNU may describe a gain or ratio between optical power on a pixel versus an electrical signal output, and may address differences in sensitivity of individual sensors that make up the imaging sensor <NUM>. By way of particular example, in some instances, PRNU compensation may be applied to raw scan data in hardware within an ASIC. However, in cases where the data for media detection is available before the hardware component in which PRNU compensation may be performed, PRNU may be applied in firmware. In some examples, the processor <NUM> may apply the PRNU algorithm to process the first signal <NUM> to compensate for the differences in sensitivity of the individual sensors in the imaging sensor <NUM>. As depicted in <FIG>, the processor <NUM> may apply the PRNU algorithm to a raw scan waveform <NUM>, such as the incoming first signal <NUM>, to generate a PRNU applied waveform <NUM>.

The processor <NUM> may apply horizontal MWA and vertical MWA to the PRNU applied waveform <NUM> to further compensate the first signal <NUM> to generate the MWA applied waveform <NUM>, as depicted in <FIG>. In this regard, the horizontal MWA may help to smooth out the first signal <NUM>, and the vertical MWA may help to remove glitches in the signal, such as due to electro-static discharge (ESD). The processor <NUM> may use the compensated waveforms to determine the peaks in the first property values 212a to 212p, which may improve the accuracy and reliability of the peak value detection.

In the present disclosure, the initial processes to generate the learned data, which may define baseline values of the first property values <NUM> used for comparison at later phases, may be referred to as the learning phase. Once the peak values of the first property values <NUM> in the scan windows <NUM> are determined, the processor <NUM> may apply additional algorithms in the learning phase to improve the accuracy and the reliability of the first property values <NUM>. These algorithms may include identification of skip windows, average of N samples, and generation of learned data for use as a reference set of values for the first property values <NUM>.

As to identification of skip windows, in some examples, dust may accumulate in any of the scan windows <NUM>, which may result in inaccurate detection of peaks in the first property values <NUM>. To protect against such errors, the processor <NUM> may identify as a skip window any scan window that has a relatively high difference in the position of the peak as compared to other scan windows <NUM>. The processor <NUM> may skip over such identified scan windows during processing in the learning phase.

As to average of N samples, the processor <NUM> may generate the learned data for the first property values <NUM> based on an averaged output of a predetermined number of scan lines from the imaging sensor <NUM>. As such, the processor <NUM> may avoid potential errors associated with using only one scan line during the learning phase.

As to generation of learn data, the processor <NUM> may generate the learned data for the first property values <NUM> based on the positions of peaks and peak values of the first property values <NUM>, such as the grey levels at the peaks. The processor <NUM> may store the learned data for the first property values <NUM> for comparison with data identified during a scanning phase. In the present disclosure, the period that occurs after the learning phase, during which the media <NUM> is scanned, may be referred to as the scanning phase.

The processor <NUM> may identify the first property values <NUM> during the learning phase, prior to initiation of a scan job to scan the media <NUM>. In some examples, the processor <NUM> may identify the first property values <NUM> at predetermined times, for instance, prior to each scan job, prior to each instance that the media <NUM> reaches the imaging sensor <NUM>, and/or at predetermined intervals prior to scan jobs, such as every second, minute, day, and/or the like. In instances in which the processor <NUM> identifies the first property values <NUM> at predetermined intervals prior to scan jobs, the first property values <NUM> may be stored in the memory <NUM> at the apparatus <NUM>, on the server <NUM>, and/or the like, and may be retrieved during the scanning phase for media detection.

The processor <NUM> may fetch, decode, and execute the instructions <NUM> to receive a second signal <NUM> corresponding to a second image captured by the imaging sensor <NUM>. The second signal <NUM> may be a signal received during the scanning phase. The processor <NUM> may begin receiving the second signal <NUM> before the media <NUM> reaches the imaging sensor <NUM>. In some examples, the processor <NUM> may continuously receive the second signal <NUM> beginning prior to the media <NUM> reaching the imaging sensor <NUM>, and continuing until after the media <NUM> is determined to have passed the imaging sensor <NUM>.

The processor <NUM> may fetch, decode, and execute the instructions <NUM> to identify, from the second signal <NUM>, second property values <NUM> along the second image. The second image is an image captured by the imaging sensor <NUM> at the same location as the first image for the first signal <NUM>. The processor <NUM> may determine whether the second signal <NUM> includes the second property values <NUM> along the second image. The processor <NUM> may determine peak values of the second property values <NUM>. The process to detect the peak values of the second property values <NUM> may be the same as to detect the peak values in the first property values <NUM>, as previously described. For instance, to process the second signal <NUM>, the processor <NUM> may identify scan windows, apply a PRNU algorithm, and/or apply a horizontal MWA and a vertical MWA, as previously described with respect to the first signal <NUM>.

The processor <NUM> may fetch, decode, and execute the instructions <NUM> to determine whether the second property values <NUM> differ from the first property values <NUM>. In this regard, the processor <NUM> may compare the relative positions and/or peak values of the second property values <NUM> with the relative positions and/or peak values of the first property values <NUM> determined during the learning phase. In some examples, the processor <NUM> may determine whether the second property value <NUM> is within predetermined thresholds for the relative positions and/or the peak values compared to those of the first property values <NUM>. Based on the comparison of the second property values <NUM> and the first property values <NUM>, the processor <NUM> may determine whether the media <NUM> is positioned to be scanned by the imaging sensor <NUM>, for instance, in a "media present" state, or whether the media <NUM> is not positioned to be scanned by the imaging sensor <NUM>, for instance, in a "media not present" state.

In this regard, based on a determination that the second property values <NUM> include second positions and/or peak values that match the positions and/or peak values of the first property values <NUM>, the processor <NUM> may determine that the media <NUM> is not positioned to be imaged by the imaging sensor <NUM>, as media <NUM> may not be blocking the pattern <NUM> applied to the surface <NUM> of the scanner <NUM>. Alternatively, based on a determination that the second positions and/or peak values of the second property values <NUM> do not match positions and/or peak values of the first property values <NUM>, the processor <NUM> may determine that the media <NUM> is present, as the media <NUM> may be blocking the pattern <NUM> from the imaging sensor <NUM>.

The processor <NUM> may fetch, decode, and execute the instructions <NUM> to determine that a beginning <NUM> (e.g., top) of a media <NUM> may be positioned to be imaged by the imaging sensor <NUM> based on a determination that the second property values <NUM> differ from the first property values <NUM>. In some examples, the processor <NUM> may determine that the beginning <NUM> of the media <NUM> has reached a position to be scanned by the imaging sensor <NUM> based on a transition from the "media present" state to the "media not present" state. In some examples, based on a determination that the media <NUM> is positioned to be imaged by the imaging sensor <NUM>, the processor <NUM> may output an instruction, for instance, to the imaging sensor <NUM>, an imaging subsystem (not shown), and/or the like, to begin scanning the media <NUM>.

The processor <NUM> may apply filters to reduce a number of false positive triggers for media detection. In some examples, dust accumulation in the scanner <NUM> may trigger false detection of the beginning <NUM> of the media <NUM>, in which case the processor <NUM> may incorrectly detect a non-match state between the second property value <NUM> and the first property value <NUM>. In these instances, the processor <NUM> may apply a dust filter, in which the processor <NUM> may identify a predetermined number of scan windows <NUM> that fail the matching condition before the processor <NUM> makes a determination that a transition has occurred from a "media not present" state to a "media present" state. As such, the processor <NUM> may reduce a number of occurrences of false detections of the beginning <NUM> of the media, which may be caused by dust accumulation. In some examples, the processor <NUM> may apply a skip window filter, in which the scan windows <NUM> identified as skip windows, for instance in the learning phase as previously described, may be skipped over in subsequent scanning phases.

In some examples, the processor <NUM> may detect an end <NUM> (e.g., bottom) of the media <NUM>. The processor <NUM> may determine third property values (not shown) corresponding to a third image captured by the imaging sensor <NUM>. The processor <NUM> may determine whether the third property values match the first property values <NUM>, identified during the learning phase. In some examples, the processor <NUM> may determine whether a position and/or a peak value of the third property values correlating to the scan windows <NUM> match the position and/or peak values of the first property values <NUM>. In this regard, when the third property values match the first property values, the processor <NUM> may determine that a transition has occurred from the "media present" state to the "media not present" state. Based on the third property values matching the first property values <NUM>, the processor <NUM> may determine that an end <NUM> of the media <NUM> has passed the imaging sensor <NUM>. In some examples, based on a determination that the end <NUM> of the media <NUM> has passed the imaging sensor <NUM>, the processor <NUM> may output an instruction, for instance, to the imaging sensor <NUM>, an imaging subsystem, and/or the like, to stop scanning the media <NUM>.

In some examples, the processor <NUM> may apply a decision glitch filter, which may filter false determinations that the end <NUM> of the media <NUM> has passed the imaging sensor <NUM>. For instance, determinations based on samples from a relatively small number of scan lines may increase changes for false positives. As such, the processor <NUM> may make the determination that the end <NUM> of the media <NUM> has passed the imaging sensor <NUM> based on data from a predetermined number of scan lines.

Various manners in which the processor <NUM> may operate are discussed in greater detail with respect to the method <NUM> depicted in <FIG> depicts a flow diagram of an example method <NUM> for receiving a signal corresponding to an image of a pattern <NUM> of features <NUM> captured by an imaging sensor <NUM> and, based on property values along the pattern of features <NUM> identified in the received signal, determine that a media <NUM> may be positioned to be imaged by the imaging sensor <NUM>. It should be understood that the method <NUM> depicted in <FIG> may include additional operations and that some of the operations described therein may be removed and/or modified without departing from the scope of the method <NUM>. The description of the method <NUM> is made with reference to the features depicted in <FIG>, <FIG>, <FIG>, <FIG>, and <FIG> for purposes of illustration.

At block <NUM>, the processor <NUM> may receive a first signal <NUM> corresponding to an image of a pattern <NUM> of features <NUM>, for instance, as depicted in <FIG>, captured by an imaging sensor <NUM>. The pattern <NUM> of features <NUM> may be positioned at a spaced relation with respect to the imaging sensor <NUM> and the features <NUM> in the pattern <NUM> of features <NUM> may be positioned at predetermined distances relative to each other. At block <NUM>, the processor <NUM> may identify first property values <NUM> along the pattern <NUM> of features <NUM>.

At block <NUM>, the processor <NUM> may receive a second signal corresponding to a second image captured by the imaging sensor. At block <NUM>, the processor <NUM> may identify, from the second signal <NUM>, second property values <NUM> along the second image.

At block <NUM>, the processor <NUM> may determine whether the second property values <NUM> differ from the first property values <NUM>. At block <NUM>, based on a determination that the second property values <NUM> differ from the first property values <NUM>, the processor <NUM> may determine that a beginning <NUM> of a media <NUM> may be positioned to be imaged by the imaging sensor <NUM>.

In some examples, the processor <NUM> may identify scan windows <NUM> in the first signal <NUM>. The identified scan windows <NUM> may be sections of the first signal <NUM> correlating to respective positions of a plurality of features included in the pattern <NUM> of features <NUM>. The processor <NUM> may adjust positions of the identified scan windows <NUM> to center the identified scan windows <NUM> on peak values of the first property values <NUM> correlated to the plurality of features in the pattern <NUM> of features <NUM>. The positions of the identified scan windows <NUM> may be adjusted based on relative positions of each of the identified scan windows <NUM> to each other.

The processor <NUM> may determine a presence of the media <NUM> relative to the imaging sensor <NUM> based on comparison of the first property values <NUM> and the second property values <NUM>. Based on a determination that the media <NUM> is positioned to be imaged by the imaging sensor <NUM>, the processor <NUM> may output an instruction, for instance, to the imaging sensor <NUM>, an imaging subsystem, and/or the like, to begin scanning the media <NUM>.

The processor <NUM> may determine third property values (not shown) corresponding to a third image captured by the imaging sensor <NUM>. The processor <NUM> may receive a third signal for the third image after detection of the beginning <NUM> of the media <NUM>. The processor <NUM> may determine whether the third property values match the first property values <NUM>.

Based on the third property values matching the first property values <NUM>, the processor <NUM> may determine that an end <NUM> of the media <NUM> has passed the imaging sensor <NUM>. In some examples, based on a determination that the end <NUM> of the media <NUM> has passed the imaging sensor <NUM>, the processor <NUM> may output an instruction, for instance, to the imaging sensor <NUM>, an imaging subsystem, and/or the like, to stop scanning the media <NUM>.

Some or all of the operations set forth in the method <NUM> may be included as utilities, programs, or subprograms, in any desired computer accessible medium. In addition, the method <NUM> may be embodied by computer programs, which may exist in a variety of forms both active and inactive. For example, they may exist as computer-readable instructions, including source code, object code, executable code or other formats. Any of the above may be embodied on a non-transitory computer-readable storage medium.

Examples of non-transitory computer-readable storage media include computer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disks or tapes. It is therefore to be understood that any electronic device capable of executing the above-described functions may perform those functions enumerated above.

Turning now to <FIG>, there is shown a block diagram of a non-transitory computer-readable medium <NUM> that may have stored thereon computer-readable instructions to receive a signal corresponding to an image of a pattern <NUM> captured by an imaging sensor <NUM>, identify scan windows <NUM> in the received signal, and, based on property values along the image of the pattern <NUM> in the identified scan windows <NUM>, determine that a media <NUM> is positioned to be imaged by the imaging sensor <NUM>. It should be understood that the computer-readable medium <NUM> depicted in <FIG> may include additional instructions and that some of the instructions described herein may be removed and/or modified without departing from the scope of the computer-readable medium <NUM> disclosed herein. The computer-readable medium <NUM> may be a non-transitory computer-readable medium. The term "non-transitory" does not encompass transitory propagating signals.

The computer-readable medium <NUM> may have stored thereon computer-readable instructions <NUM>-<NUM> that a processor, such as the processor <NUM> depicted in <FIG>, may execute. The computer-readable medium <NUM> may be an electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. The computer-readable medium <NUM> may be, for example, Random-Access memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, or the like.

The processor may fetch, decode, and execute the instructions <NUM> to receive a first signal <NUM> corresponding to an image of a pattern <NUM> captured by an imaging sensor <NUM>. The pattern <NUM> may be positioned at a spaced relation with respect to the imaging sensor <NUM> as discussed herein.

The processor may fetch, decode, and execute the instructions <NUM> to identify first scan windows, such as the scan windows <NUM> depicted in <FIG>, in the first signal <NUM>. The first scan windows may be sections of the first signal <NUM> correlating to respective positions of objects included in the pattern <NUM>.

The processor may fetch, decode, and execute the instructions <NUM> may identify, from the first signal <NUM> in the first scan windows, first property values <NUM> along the image of the pattern <NUM>.

The processor may fetch, decode, and execute the instructions <NUM> to receive a second signal <NUM> corresponding to a second image captured by the imaging sensor <NUM>. The processor may fetch, decode, and execute the instructions <NUM> to identify second scan windows, such as the scan windows <NUM> depicted in <FIG>, in the second signal <NUM>. The second scan windows may be sections of the second signal <NUM> correlating to the respective positions of the objects included in the pattern <NUM>.

The processor may fetch, decode, and execute the instructions <NUM> to identify, from the second signal <NUM> in the second scan windows, second property values <NUM> along the second image. In some examples, the first signal <NUM> may be received during a learning phase prior to scanning, and the second signal <NUM> may be received during a scanning phase, which may occur after the learning phase. In some examples, the scanning phase may include periods before and after the imaging sensor <NUM> is controlled to scan the media <NUM>.

The processor may fetch, decode, and execute the instructions <NUM> to determine whether the second property values <NUM> differ from the first property values <NUM>. Based on a determination that the second property values <NUM> differ from the first property values <NUM>, the processor may determine that a beginning <NUM> of the media <NUM> may be positioned to be imaged by the imaging sensor <NUM>.

Claim 1:
An apparatus (<NUM>) comprising:
a processor (<NUM>); and
a memory (<NUM>) on which are stored machine-readable instructions that when executed by the processor, cause the processor to:
identify (<NUM>) first property values (<NUM>) along an image of a pattern of features (<NUM>), the first property values being based on a first signal (<NUM>) corresponding to an image of the pattern captured by an imaging sensor (<NUM>), the pattern being positioned at a spaced relation with respect to the imaging sensor;
receive (<NUM>) a second signal (<NUM>) corresponding to a second image captured, at the same location as the first image, by the imaging sensor;
identify (<NUM>), from the second signal, second property values (<NUM>) along the second image;
determine (<NUM>) whether the second property values differ from the first property values; and
based on a determination that the second property values differ from the first property values, determine (<NUM>) that a beginning of a media is positioned to be imaged by the imaging sensor.