Patent Description:
Counterfeit products are, unfortunately, widely available and often hard to spot. When counterfeiters produce fake goods, they typically copy the labeling and barcodes in addition to the actual products. At a superficial level, the labels and barcodes may appear genuine and even yield valid data when scanned (e.g., decode to the appropriate code, such as European Article Number (EAN), Universal Product Code (UPC), Interleaved Two of Five (ITF) code, Quick Response (QR) code, etc.). While there are many technologies currently available to counter such copying, most of these solutions involve the insertion of various types of codes, patterns, microfibers, microdots, and other indicia to help thwart counterfeiting. Such techniques require manufacturers to use additional equipment and material and add a layer of complexity to the production process. Alternatively, some systems may extract information from labels or barcodes that are known to be genuine, for example by processing images of labels or barcodes that are known to be genuine, and may subsequently use this information to authenticate products bearing presumably the same labels or barcodes.

Optical systems sometimes are utilized to obtain images of moving material, for example for quality inspection and defect detection during production of the material and/or to extract useful information from images of the printed materials. Such systems often use line scan technology to obtain images of the moving material. Line scan technology requires accurate tracking of motion of the printed material to obtain images with sufficiently high resolutions, which may not be feasible in high speed image acquisition applications. Line scan systems may also be physically too large to fit in tight areas that may be available for optical systems at sites manufacturing the materials.

Patent document <CIT> refers to a system for capturing images of printed material. This document discloses determining a trigger interval to capture a particular region of interest in the context of a system for capturing images during production of printed material.

In an embodiment, a system for capturing images during production of printed material comprises an optical device comprising a plurality of cameras arranged in an array, wherein adjacent pairs of cameras in the array have overlapping fields of view. The system also comprises an imaging controller device configured to determine a layout of content on printed material, and determine, based on the layout of content on the printed material, an optical system configuration profile. Determining the optical system configuration profile includes i) selecting one or more cameras, among the plurality of cameras, for capturing images of one or more regions of interest on the printed material, the one or more cameras being selected such that each region of interest among the one or more regions of interest fits, in its entirety, in a field of view of a particular camera among the one or more cameras, and ii) determining a trigger interval for triggering the selected one or more cameras. The imaging controller device is further configured to trigger the selected one or more cameras at times determined based on the trigger interval to capture images of the one or more regions of interest on the printed material as the printed material moves in fields of view of the one or more cameras during production of the printed material.

In another embodiment, a method for capturing images of printed material by an optical device equipped with a plurality of cameras arranged in an array, wherein adjacent pairs of cameras in the array have overlapping fields of view. The method includes determining, with a processor of an imaging controller device, a layout of content on printed material. The method also includes determining, with the processor of the imaging controller device based on the layout of content on the printed material, an optical system configuration profile, including i) selecting one or more cameras, among the plurality of cameras, for capturing images of one or more regions of interest on the printed material, the one or more cameras being selected such that each region of interest among the one or more regions of interest fits, in its entirety, in a field of view of a particular camera among the one or more cameras, and ii) determining a trigger interval for triggering the selected one or more cameras. The method additionally includes triggering, with the imaging controller device, the selected one or more cameras at times determined based on the trigger interval to capture images of the one or more regions of interest on the printed material as the printed material moves in fields of view of the one or more cameras during production of the printed material.

While the appended claims set forth the features of the present techniques with particularity, these techniques, together with their objects and advantages, may be best understood from the following detailed description taken in conjunction with the accompanying drawings of which:.

In embodiments described below, an imaging system is utilized to acquire and process images of regions of interest on printed materials during production runs performed in producing the printed materials. For example, as described in more detail below, the imaging system may acquire images of marks on labels during production of the labels, and may process the images of the marks to generate identifiable electronic signatures ("signatures") that may subsequently be utilized for authentication of products presumably bearing the genuine marks. However, the imaging system is generally described herein in the context of printed labels, and generation of signatures for marks on the printed labels, merely for exemplary purposes. In other embodiments, the imaging system may be utilized in other manufacturing application. For example, the imaging system may be utilized for detection of defects in printed materials, or for acquiring and processing images of materials other than printed materials.

The imaging system may include an optical device comprising an imaging array having a plurality of area scan cameras. The imaging array me be arranged such that respective cameras in the array have overlapping fields of view. The optical device may be installed at a manufacturing site that may utilize a production apparatus to produce printed material, such as a label manufacturer that may utilize label printers, label converters, slitters, rewinders, and the like, to produce reels of printed labels, for example. The imaging system may also include a controller device configured to control operation of the optical device during a production run that may be performed by the production apparatus. The controller device may determine a layout of content on the printed material, such as a layout of a web of labels that may be printed on the printed material. Based on the determined layout of content on the printed material, the controller device may generate an optical system configuration profile to be used to control the optical device during the production run performed by the production apparatus in manufacturing of the printed material. For example, the controller device may determine locations of regions of interest on the printed materials, and may select one or more cameras in the imaging array to be used for capturing images of the regions of interest on the printed material. The one or more regions of interest on the printed material may include marks, such as barcodes, <NUM>-D codes (e.g., QR codes), logos, etc., that may be printed on labels, for example. The controller device may also determine a trigger interval for triggering the selected one or more cameras such that the selected cameras are triggered at appropriate times as the printed material moves through cameras' fields of view during production of the printed material to accurately capture images of regions of interest on the printed material.

In operation, as the printed material moves through the fields of view of the cameras during production of the printed material, the controller device may trigger the selected one or more cameras at times at which the one or more regions of interest on the printed material are aligned with the fields of view of the selected cameras. The controller device may be guided by sensor and encoder signals that the controller device may receive from the production apparatus to detect reference points on the printed material and a distance of travel of the printed material to ensure that the images are captured at precise times when the regions of interest are aligned with the fields of view of the cameras, in some embodiments.

The imaging system may process the acquired images, for example to extract signature information from marks that may be depicted in the images. To allow the imaging system to quickly process large volumes of images that may be acquired by the imaging system during the production run, the imaging system may be equipped with a multi-core processor and/or may utilize multi-threading techniques to process the images. In an embodiment, the imaging system may include an interface communicatively coupled to a network, and may be configured to communicate with other devices via the network. For example, upon processing the acquired images, the imaging system may transmit the acquired images and/or information extracted from the acquired images, via the network, to a database and/or to a server device, where the acquired images and/or information extracted from the acquired images may be stored and subsequently utilized for authentication of products presumably bearing the marks that are depicted in the images.

By triggering the selected cameras at the appropriate times determined based on the trigger interval, the imaging system may acquire images of the regions of interest with a suitably short camera exposures that may be needed to prevent or minimize motion blur from images, particularly in applications with high speed moving printed materials, and to acquire sufficiently clear images that allow extraction of signatures from the images of the regions of interest and/or accurate inspection of the printed materials in the regions of interest. Further, providing cameras with overlapping fields of view, and selecting appropriate cameras for capturing of the images such that each region of interest is captured by a single camera in a single image, allows for fast and efficient processing of the images which, in tum, allows the imaging system to quickly and efficiently process a large volume of images that may be acquired during the production run, in at least some embodiments.

<FIG> is a block diagram of an example system <NUM> in which an imaging system <NUM> may operate to acquire and process images of regions of interest in printed material <NUM> produced by a production apparatus <NUM>, according to an embodiment. The production apparatus <NUM> may be a printer, a label converter, a slitter, a rewinder, or any other equipment that may be used in producing the printed material <NUM>. The printed material <NUM> may be a label web, for example, or may be any other suitable type of printed material. Regions of interest on the printed material <NUM> may include marks that may be printed on labels, for example. A mark may be something that identifies a brand (e.g., a logo), something that bears information, such as a barcode (e.g., a one-dimensional ("1D") barcode, such as such as European Article Number (EAN), Universal Product Code (UPC), Interleaved Two of Five (ITF) code, etc., a two-dimensional ("2D") data matrix barcode as specified in the International Organization for Standardization ("ISO") and the International Electrotechnical Commission ("IEC") standard ISO/IEC <NUM>, a Quick Response (QR) code, etc.), an expiration date, or tracking information such as a serial number), or a decoration. In other embodiments, the printed material <NUM> may include other suitable regions of interest.

The imaging system <NUM> may include an optical device <NUM> and an imaging controller device <NUM>. Although the imaging controller device <NUM> is illustrated in <FIG> as being separate from, and external to, the optical device <NUM>, the imaging controller device <NUM> may be integrated with the optical device <NUM> in other embodiments. The optical device <NUM> may be equipped with an imaging array <NUM> having a plurality of imaging sensors (e.g., cameras) <NUM>. The optical device <NUM> may be positioned in the vicinity of (e.g., above) the production apparatus <NUM> such that the printed material <NUM> moves through fields of view of the cameras <NUM> during a production run that may be performed by the production apparatus <NUM> in producing the printed material <NUM>.

The imaging array <NUM> may include a linear arrangement of eight cameras <NUM>. In other embodiments, the imaging array <NUM> may include other suitable numbers of cameras <NUM> and/or the cameras <NUM> may be arranged in suitable non-linear arrangements. The cameras <NUM> may be area scan cameras configured to capture an image containing a two dimensional (2D) pixel matrix in a single exposure cycle. Multiple ones of the cameras <NUM> may operate in parallel to capture images of wider printed materials as compared to systems where only a single area scan camera is utilized, in at least some embodiments. The cameras <NUM> may comprise imaging sensors of relatively high resolution, such as <NUM>/pixel or higher resolution, in an embodiment. As an example, VCXU-<NUM> model cameras manufactured by Baumer may be utilized as the cameras <NUM>. In other embodiments, other suitable area scan cameras and/or cameras with other suitable resolutions may be utilized as the cameras <NUM>. The cameras <NUM> may be arranged such that respective cameras <NUM> have overlapping fields of view. For example, a field of view of the camera <NUM>-<NUM> may overlap with respective fields of view of the camera <NUM>-<NUM> and <NUM>-<NUM>, the field of view of the camera <NUM>-<NUM> may overlap with respective fields of view of cameras <NUM>-<NUM> and <NUM>-<NUM>, and so on, in an embodiment. Degrees of overlap between the respective fields of view of the cameras <NUM> may vary in various embodiments. For example a <NUM>% overlap may be utilized, in an embodiments. In other embodiments, other suitable degrees of overlap (e.g., <NUM>%, <NUM>%, <NUM>%, <NUM>%, <NUM>%, etc.) may be utilized.

The imaging controller device <NUM> may include an image acquisition controller <NUM>, a processor <NUM> and a computer readable memory <NUM> that stores computer readable instructions executable by processor <NUM>. The computer readable memory <NUM> may include volatile memory to store computer instructions, such as Random Access Memory (RAM), and may also include persistent memory such as, for example, a hard disk, hard-drive or any other stable storage space, e.g. a secure digital ("SD") card, a flash drive, etc., in various embodiments. The computer readable memory <NUM> may store a configuration application <NUM> and an image processing application <NUM>. Although the imaging controller device <NUM> is illustrated in <FIG> as including a single processor <NUM>, the imaging controller device <NUM> may include multiple processors <NUM> in some embodiments. In some embodiments, the one or multiple processors <NUM> may be multi-core processors and/or may utilize multi-threading to perform processing operations. For example, the processor <NUM> may comprise <NUM> cores, <NUM> cores, <NUM> cores, or any other suitable number of cores. Further, in some embodiments, the configuration application <NUM> and/or the image processing application <NUM> may be implemented using hardware components, firmware components, software components, or any combination thereof.

The configuration application <NUM> may obtain information descriptive of specific layout of content on the printed material <NUM>, and may determine an optical system configuration profile based on the specific layout of content on the printed material <NUM>. As an example, in an embodiment in which the printed material is a label web sheet, the configuration application <NUM> may obtain information that indicates a width of the label web sheet, a number of lanes of labels that may run across the width of the label web sheet, a height and width of each label on the label web sheet, a distance between adjacent labels on the web sheet, and a location and size of a region of interest, such as a barcode, in each label on the label web sheet, and the like. In an embodiment, the configuration application <NUM> may determine the specific layout of the content on the printed material <NUM> based on user input. For example, the configuration application <NUM> may provide a user interface that may request information descriptive of the specific layout of the content on the printed material <NUM>. Additionally or alternatively, the imaging controller device <NUM> may determine the specific layout of content on the printed material <NUM> by applying suitable image processing techniques to one or more sample images that may depict the content of the printed material <NUM>. The one or more sample images may be obtained by the imaging controller device <NUM> by suitably controlling operation of the optical device <NUM> during a production run (e.g., during a sample production run or during an initial stage of a real production run) that may be performed by the production apparatus <NUM> in producing the printed material <NUM>. As just an example, the imaging controller device <NUM> may trigger particular cameras <NUM> (e.g., all cameras <NUM> or particular subset or subsets of cameras <NUM>) at one or more sample trigger intervals as the printed material <NUM> moves in the fields of view of the cameras <NUM> during the production run. The imaging controller device <NUM> may process images captured by the particular cameras <NUM> triggered during the production run to determine the layout of content on the printed material <NUM>, in an embodiment. In other embodiments, the imaging controller device <NUM> may obtain the one or more sample images of the content on the printed material <NUM> in other suitable manners and/or may determine the specific layout of content on the printed material <NUM> using suitable techniques other than processing sample images of the content on the printed material <NUM> obtained during a production run performed by the production apparatus <NUM>.

Based on the information descriptive of the specific layout of content on the printed material <NUM>, the configuration application <NUM> may determine an optical system configuration profile to be used for controlling the optical device <NUM> during production of the printed material <NUM> by the production apparatus <NUM>. Determining the optical system configuration may include selecting, based on the layout of the content on the printed material <NUM>, one or more cameras <NUM> to be triggered to obtain images of the regions of interest during movement of the printed material <NUM> as the printed material <NUM> is produced or processed by the production apparatus <NUM>. In an embodiment, for each region of interest across a width of the printed material <NUM>, such as for each barcode (or a respective portion of each barcode) across a width of a label web sheet, the configuration application <NUM> selects a particular camera <NUM> that will have the region of interest, in its entirety, in its field of view during movement of the printed material <NUM> through its field of view. Such camera selection ensures that appropriate cameras <NUM> are triggered during production of the printed material <NUM> so that one or more particular regions of interest (e.g., one or more barcodes) are captured, in their entireties, in a single image by a single camera <NUM>, in an embodiment. Ensuring that each region of interest on the printed material <NUM> is captured, in its entirety, in a single image facilitates processing of the images because the images can be processed independently of each other to extract useful information from the region of interest captured in each image, in at least some embodiments.

Arranging cameras <NUM> in an array with adjacent cameras <NUM> having overlapping fields of view ensures that for various layout of content of printed material <NUM>, such as various layouts of labels and various locations and sizes of regions of interest within the labels on the printed material <NUM>, a single camera <NUM> can be selected to capture each region of interest in its entirety, ensuring that a single image will entirely contain the region of interest, in at least some embodiments. In some situations, for certain layouts of content on the printed material <NUM>, multiple cameras <NUM> among the plurality of cameras <NUM> may be available to capture a region of interest in its entirety as the printed material <NUM> moves through the fields of view of the camera <NUM>. For example, due of the overlap in the fields of view of multiple cameras <NUM>, each of the multiple cameras <NUM> may have a region of interest, in its entirety, in its field of view as the printed material <NUM> moves through the fields of view of the multiple cameras <NUM>. In this case, the configuration application <NUM> may select one of the multiple available cameras <NUM> to be used for capturing the region of interest during the production process as the printed material <NUM> moves through the field of view of the selected camera <NUM>. In an embodiment, the configuration application <NUM> may select a particular camera <NUM> among the multiple available cameras <NUM> based on respective locations of the region of interest within the fields of view of the multiple available cameras <NUM>. For example, the configuration application <NUM> may select a particular camera <NUM> for which the region of interest is closest to the center of its field of view. In other embodiments, the configuration application <NUM> may utilize different selection criteria to select a particular camera <NUM> among the multiple available cameras <NUM>. For example, a user may use a user interface to specify cameras <NUM> to be selected, in an embodiment.

Determining the optical system configuration profile may additionally include determining a trigger interval to be used for triggering the selected cameras <NUM> during the production run on the production apparatus <NUM>. The configuration application <NUM> may determine, for example, a timing or a distance interval with respect to specific reference lines that may run across the width of the printed material <NUM>. As an example, if the regions of interest correspond to barcodes on labels, the configuration application <NUM> may determine a distance interval from a beginning of a row of labels, along a perpendicular line, to a center of the barcode. As another example, the configuration application <NUM> may determine, based on expected speed of movement of the printed material, a time interval for the printed material to travel from a beginning of a row of labels, along a perpendicular line, to a center of the barcode.

The image acquisition controller <NUM> may utilize the optical system configuration profile determined by the configuration application <NUM> to control operation of the optical device <NUM> during a production run performed by the production apparatus <NUM>. In some embodiments, the configuration application <NUM> may store the determined optical system configuration profile in an optical system configuration profile memory (not shown in <FIG>) that may store respective optical system configuration profiles determined for different layouts of the printed material <NUM> that the production apparatus <NUM> may be configured to produce in different production runs, or as parts of a same production run. The imaging controller device <NUM> may be configured to retrieve, from the optical system configuration profile memory, appropriate optical system configuration profiles to be used to control operation of the optical device <NUM> during particular production runs performed by the production apparatus <NUM>. For example, a user may specify, via a user interface, which particular optical system configuration profile is to be retrieved from the memory for particular production run. As an example, the user may utilize the user interface to select, or otherwise specify, a particular job (e.g., a particular print job) to be performed by the production apparatus <NUM> during the production run, where the particular job is associated with a particular layout of content on the printed material <NUM>. In another embodiment, the imaging controller device <NUM> (e.g., the image acquisition controller <NUM> or another component of the imaging controller device <NUM>) may detect the particular layout of content on the printed material <NUM> to be produced during a production run based on information that the imaging controller device may receive from production apparatus <NUM>. For example, the image acquisition controller <NUM> may detect the particular layout of content on the printed material <NUM> based on receiving, from the production apparatus <NUM>, a signal (e.g., an Ethernet internet protocol (IP) command or another suitable signal) indicating that a particular production run associated with a particular layout of content on the printed material <NUM> that is to be produced by the production apparatus <NUM>. In yet another embodiment, the imaging controller device <NUM> may detect the particular layout of content on the printed material <NUM> by processing a code, such as a QR code or another suitable code, that may be printed on an area in the printed material <NUM> (e.g., on a side of a label web printed on the printed material <NUM>). The code that may be printed on an area in the printed material <NUM> may indicate a particular production run (e.g., a particular print job) that may be associated with a particular layout of content on the printed material <NUM> that is to be produced by the production apparatus <NUM>. For example, a camera <NUM> of the imaging array <NUM> may be used to capture images of the area on the printed material <NUM> during an initial stage of a production run to be performed by the production apparatus <NUM>. As another example, a camera (not shown in <FIG>) separate from the imaging array <NUM> may be provided to capture images of the area on the printed material <NUM> during an initial stage of a production run to be performed by the production apparatus <NUM>. One or more images captured by the camera <NUM> of the imaging array <NUM> or by the camera separate from the imaging array <NUM> may be processed by the imaging controller device <NUM> to detect and decode the code that may be printed on the area of the printed material <NUM>. The imaging controller device <NUM> may then retrieve, from the optical system configuration profile memory based on the information indicated by the code, an appropriate optical system configuration profile to be used to control operation of the optical device <NUM> during the production run.

In some embodiments and/or scenarios, the imaging controller device <NUM> may retrieve appropriate optical system configuration profiles from the optical system configuration profile memory dynamically during operation of the production apparatus <NUM>, for example in scenarios in which a layout of the content on the printed material <NUM> may dynamically change during the production run performed by the production apparatus <NUM>. In an embodiment, the imaging controller device <NUM> (e.g., the image acquisition controller <NUM> or another component of the imaging controller device <NUM>) may detect particular layouts of content on the printed material <NUM> at particular times during the production run, for example based on receiving, from the production apparatus <NUM>, signals (e.g., an Ethernet internet protocol (IP) command or another suitable signals) indicating a change to a new layout of content on the printed material <NUM> during the production run. As another example, the printed material <NUM> may include a code, such as a QR code or another suitable code, that may be printed on an area of the printed material <NUM> (e.g., on a side of a label web printed on the printed material <NUM>) as described above, immediately preceding or concurrently with a change to a new layout of content on the printed material <NUM>. The imaging controller device <NUM> may process one or more images of the area on the printed material <NUM> that may be captured by a camera <NUM> of the imaging array <NUM> or by a camera spate from the imaging array <NUM> as described above to detect the switch to the new layout on the printed material <NUM>. By detecting particular layouts of content on the printed material <NUM> at particular times during the production run, the imaging controller device <NUM> (e.g., the image acquisition controller <NUM> or another component of the imaging controller device <NUM>) may determine which particular optical system configuration profiles are to be retrieved from the optical system configuration profile memory "on the fly" during a production run, and may retrieve the system configuration profiles to be used to control operation of the optical device <NUM> at the appropriate times during the production run that produces printed material <NUM>.

Based on the optical system configuration profile, the image acquisition controller <NUM> may trigger the one or more cameras <NUM> selected by the configuration application <NUM> at times that may be determined by the trigger interval determined by the configuration application <NUM> so that the selected cameras <NUM> are triggered at appropriate times to capture images of the regions of interest on the printed material <NUM> during movement of the printed material <NUM> through the fields of view of the selected one or more cameras <NUM>. In some embodiments, the optical device <NUM> may also include one or more light sources (not shown in <FIG>), which may be high intensity light emitting devices, such as light emitting diodes (LEDs), for example. In such embodiments, the image acquisition controller <NUM> may trigger the light sources of the optical device <NUM> at least substantially simultaneously with triggering the cameras <NUM> of the optical device <NUM> to provide short, high intensity, flashes of light during capture of images by the cameras <NUM> in order to obtain sufficiently clear images of the regions of interest on the printed material <NUM>, for example.

The production apparatus <NUM> may be equipped with a sensor <NUM> and an encoder <NUM>. The sensor <NUM> may be configured to detect certain points of reference on the printed material <NUM> as the printed material <NUM> moves during operation of the production apparatus <NUM>, and to generate sensor signals indicating the points of reference on the printed material <NUM>. The encoder <NUM> may track motion of the printed material <NUM>, and to generate encoder signals that indicate the movement of the printed material <NUM>. The image acquisition controller <NUM> may receive sensor signals generated by the sensor <NUM> and encoder signals generated by the encoder <NUM> during operation of the production apparatus <NUM>, and may be guided by the signals to implement precise triggering of the selected cameras <NUM> based on the triggering interval determined by the configuration application <NUM>. As an example, the sensor <NUM> may detect a label edge in a row of labels, and the sensor signal provided to the image acquisition controller <NUM> may indicate that a label edge of a row of labels has passed a reference point. The encoder signal provided to the image acquisition controller <NUM> by the encoder <NUM> may, in turn, indicate a distance that the printed material <NUM> has traveled from the reference point. Based on the sensor signal provided by the sensor <NUM> and the encoder signal provided by the encoder <NUM>, the image acquisition controller <NUM> may trigger the cameras <NUM> at a point when the printed material <NUM> has progressed from the reference point by a distance (or time) that corresponds to the trigger interval determined by the configuration application <NUM>. Once triggered, the selected cameras <NUM> may, in parallel, capture images of the regions of interest on each label in the row of labels. This process may be repeated as each row of labels on the printed material <NUM> passes the reference point by a distance (or time) that corresponds to the trigger interval determined by the configuration application <NUM>.

By triggering the selected cameras <NUM> at the appropriate times determined based on the trigger interval, the image acquisition controller <NUM> may acquire images of the regions of interest on the printed material <NUM> with suitably short camera exposures (e.g., <NUM> exposure times or other suitable short exposure times) that may be needed to prevent or minimize motion blur from the images, for example in application with high speed moving printed materials (e.g., moving at <NUM>/sec or moving at other relatively high speeds), and to acquire sufficiently clear images that allow extraction of signatures from the images of the regions of interest on the printed material <NUM>.

The image acquisition controller <NUM> may provide the images acquired from the optical device <NUM> to the processor <NUM> for processing of the images by the processor <NUM>. The images may be processed by the processor <NUM> as the images are acquired during the production run performed by the production apparatus <NUM>, and processed images may be discarded so that new images can be acquired and processed by the processor <NUM>, in an embodiment. The processor <NUM> may implement the image processing application <NUM> to process the images. Processing the images may include using unintentionally-produced artifacts within a mark depicted in the image to define an identifiable electronic signature ("signature") that may subsequently be used to authenticate a candidate mark that presumably corresponds to the mark depicted in the image. The term "artifact" as used herein is a feature of a mark that was produced by the machine or process that created the mark, but not by design or intention (i.e., an irregularity). Examples of artifacts include: (a) deviation in average color of a subarea (e.g., a cell of a 2D barcode) from an average derived from within the mark (which may be an average for neighboring cells of the same nominal color), (b) bias in the position of a subarea relative to a best-fit grid of neighboring subareas, (c) areas of a different one of at least two colors from a nominal color of the cells, (d) deviation from a nominal shape of a continuous edge within the mark, and (e) imperfections or other variations resulting from the mark being printed. In some embodiments, an artifact is not controllably reproducible. Processing the images may further include extracting certain features of the signature in order to enhance the ease and speed with which numerous genuine signatures can be searched and compared with signatures of candidate marks.

In some embodiments, the processor <NUM> utilizes multiple cores and/or implements multi-threading techniques to more quickly process the images acquired during production of the printed material <NUM>. For example, multiple cores of the processor <NUM> and/or multiple threads implemented by the processor <NUM> may operate in parallel to perform processing of respective regions of interest on the printed material <NUM> captured in respective images by respective cameras <NUM>. As an example, multiple cores of the processor <NUM> and/or multiple threads implemented by processor <NUM> may operate in parallel to process respective barcodes that may be captured, in their entireties, by respective cameras <NUM>. Additionally or alternatively, multiple cores of the processor <NUM> and/or multiple threads implemented by processor <NUM> may operate in parallel to process portions of a single barcode that may be split into respective portions (e.g., respective halves of an EAN code that may be separated by a central guard on the EAN code) to enable parallel processing of the respective portions of the barcode. In an embodiment, the respective portions of the barcode may be captured in different images by different cameras <NUM> during production of the printed material <NUM>. In another embodiment, an entire barcode captured in a single image by a single camera <NUM> during production of the printed material <NUM> may be pre-processed by the processor <NUM> to parse out portions of the barcode for parallel processing by multiple cores of the processor <NUM> and/or using multiple threads implemented by the processor <NUM>. In an embodiment, parallel processing of the respective portions of the barcode may include generating, by respective cores and/or using multiple threads, respective signatures for the respective portions of the barcode. The respective signatures generated for the respective portions of the barcode may then be combined into a single signature corresponding to the barcode and, in some embodiments, an HID may then be generated for the single signature corresponding to the barcode.

Referring still to <FIG>, the system <NUM> may include a server device <NUM> and/or one or more user devices <NUM>. The imaging controller device <NUM> may include an interface <NUM> for communicatively coupling the imaging controller device <NUM> to the server device <NUM> and/or the one or more user devices <NUM> via a communication network <NUM>. The communication network <NUM> may be a wide area network (WAN) such as the Internet, a local area network (LAN), or any other suitable type of network. The communication network <NUM> may be single network or may be made up of multiple different networks, in some embodiments. The system <NUM> may include a database <NUM>, in some embodiments. The database <NUM> may be communicatively coupled to the imaging controller device <NUM> and/or the server device <NUM> via the communication network <NUM>, as illustrated in <FIG>, or may be directly or indirectly coupled to the imaging controller device <NUM> and/or the server device <NUM> in other suitable manners. For example, the database <NUM> may be directly connected to the server device <NUM>, or may be included as part of the server device <NUM>, in some embodiments. The database <NUM> may be a single database or may include multiple different databases. The user devices <NUM> may include, for example, personal computers, tablet computers, cellular phones, smart phones, and other suitable web-enabled devices.

The server device <NUM> is illustrated in <FIG> as including a processor <NUM> and a computer readable memory <NUM> that stores instructions executable by the processor <NUM>. The computer readable memory <NUM> may store an authentication application <NUM>. The computer readable memory <NUM> may include volatile memory to store computer instructions, such as Random Access Memory (RAM), and may also include persistent memory for example, a hard disk, hard-drive or any other stable storage space, e.g. a SD card, a flash drive, etc., in various embodiments. In some embodiments, the server device <NUM> includes multiple processors <NUM>. Further, in some embodiments, the authentication application <NUM> may be implemented using hardware components, firmware components, software components, or any combination thereof. The imaging controller device <NUM> may be configured to transmit, via the interface <NUM> and the communication network <NUM>, the images acquired from the optical device <NUM> and/or the signatures and/or other information extracted from the images to the server device <NUM> and/or the database <NUM>. In an embodiment, the interface <NUM> may include a Google Remote Procedure Call (gRPC) service that may be used, for example, for transferring the images acquired from the optical device <NUM> and/or the signatures and/or other information extracted from the images via the communication network <NUM> to the server device <NUM> and/or the database <NUM>. In other embodiments, other suitable interfaces may be utilized. The authentication application <NUM> may subsequently receive images of candidate marks that may be obtained, for example, by the user devices <NUM>, and may determine whether the marks are genuine by generating a signature for the candidate marks, comparing the signature of the candidate mark with the signatures of the genuine marks that may be stored in the database <NUM>, for example.

Users of the imaging system <NUM> may provide printed material layout information to the configuration application <NUM> via a user interface that may be provided to the user via a user device <NUM>. Users of the imaging system <NUM> may also monitor progress of image capture and processing performed by the imaging system <NUM> via a monitor interface that may be provided to the user via a user device <NUM>, in some embodiments. In some embodiments, a secure (e.g., encrypted) communication channel may be established, via the communication network <NUM>, between a user device <NUM> and the imaging system <NUM>, for example to allow the user device <NUM> to securely control configuration and operation of the imaging system <NUM>. In some embodiments, a user device <NUM> may be used to capture images of candidate marks and, in some cases, to generate signature information for the candidate marks. The user device <NUM> may then transmit the captured images of the candidate marks and/or signature information extracted from the candidate marks, to the server device <NUM> for authentication of the candidate mark by the authentication application <NUM> of the server device <NUM>.

Some example signature generation techniques (e.g., that may be implemented by the image processing application <NUM> of the imaging controller device <NUM> to extract signatures from marks captured in images, in an embodiment) and some example authentication techniques (e.g., that may be implemented by the authentication application <NUM> of the server device <NUM>, in an embodiment) are described in the <CIT>, and entitled "Methods and a Computing Device for Determining Whether a Mark is Genuine," which is hereby incorporated by reference herein in its entirety.

<FIG> is a block diagram of an example layout of content on printed material <NUM>, according to an embodiment. The printed material <NUM> may correspond to the printed material <NUM> of <FIG>, and the printed material <NUM> is described in the context of <FIG> for exemplary purposes. The printed material <NUM> is illustrated in <FIG> as comprising a label web sheet <NUM> having a plurality of lanes <NUM> that run across the direction of travel of the printed material <NUM> during production of the printed material <NUM>, each lane <NUM> having a plurality of labels <NUM> that run along the direction of travel of the printed material <NUM> during production of the printed material <NUM>. Each label <NUM> may include a mark <NUM>. The mark <NUM> may be something that identifies a brand (e.g., a logo), something that bears information, such as a barcode a QR code, an expiration date, tracking information such as a serial number, etc., or a decoration.

Referring now to <FIG> and <FIG>, the configuration application <NUM> may be configured to determine a layout of the label web sheet on the printed material <NUM>. For example, the configuration application <NUM> may determine the following layout information: i) a number of lanes of labels on the web sheet, ii) a horizontal distance between corresponding left sides of two horizontally adjacent labels <NUM>, iii) a vertical distance between corresponding bottom edges of two vertically adjacent labels, iv) a horizontal distance between a left edge of the web sheet and a center of a mark <NUM> in a left-most lane <NUM>, and v) a vertical distance between a bottom edge of a label <NUM> and a center of a mark <NUM> on the label <NUM>. Referring briefly to <FIG>, an example user interface <NUM> may be provided by the imaging controller device <NUM> to obtain such layout information from a user. The user may enter the requested information via the user interface <NUM> that may be displayed to the user on a user device <NUM> or on a local display (not shown) that may be provided with the imaging system <NUM>. Additionally or alternatively, the imaging controller device <NUM> may determine the specific layout of content on the printed material <NUM> by applying suitable image processing techniques to one or more sample images that may depict the content of the printed material <NUM>. For example, the imaging controller device <NUM> may acquire sample images of the printed material <NUM> that may be captured by the cameras <NUM> during a production run (e.g., during a sample production run or during an initial stage of a real production run) that may be performed by the production apparatus <NUM>. The sample images may capture the entire area of printed material <NUM>, for example. The imaging controller device <NUM> may process the sample images of the printed material <NUM> using suitable image processing and recognition techniques, for example to recognize that the printed material <NUM> is a label web sheet, to identify the labels <NUM> and the marks <NUM> on the label web sheet, and to determine the layout information (e.g., such as the layout information (i) - (v) described above or other suitable information) of the label web sheet.

<FIG> is a block diagram of an example imaging controller device <NUM>, according to an embodiment. In an embodiment, the imaging controller device <NUM> corresponds to the imaging controller device <NUM> of <FIG>, and the imaging controller device <NUM> includes like-numbered elements with the imaging controller device <NUM> that are not discussed for brevity. For example, the imaging controller device <NUM> includes an image acquisition controller <NUM>, a processor <NUM>, a memory <NUM> and an interface <NUM> that correspond, respectively, to the image acquisition controller <NUM>, the processor <NUM>, the memory <NUM>, and the interface <NUM>, in an embodiment. The memory <NUM> includes a configuration application <NUM> that corresponds to the configuration application <NUM> and an image processing application <NUM> that corresponds to the image processing application <NUM>, in an embodiment. The memory <NUM> additionally includes a user interface module <NUM>, a job training module <NUM> and a job management module <NUM>.

In some embodiments, the job training module <NUM> may determine the specific layout of content on the printed material <NUM> by applying suitable image processing techniques to one or more sample images that may depict the content of the printed material <NUM>. For example, the job training module <NUM> may control operation of the optical device <NUM> during a production run (e.g., during a sample production run or during an initial stage of a real production run) that may be performed by the production apparatus <NUM>, and may acquire sample images of the printed material <NUM> that may be captured by the cameras <NUM> during the production run performed by the production apparatus <NUM>. The sample images may capture the entire area of printed material <NUM>, for example. The job training module <NUM> may process the sample images of the printed material <NUM> using suitable image processing and recognition techniques, for example to recognize type of content on the printed material <NUM>, and to identify locations of regions of interest on the printed material <NUM>. In some embodiments, the job training module <NUM> may be omitted from the imaging controller device <NUM>, and the imaging controller device <NUM> may instead determine information descriptive of the layout of content on the printed material <NUM> based on user input.

The job management module <NUM> may be configured to manage various configurations that the imaging controller device <NUM> may utilize, for example to operate during production runs with different printed material layouts that may be performed by the production apparatus <NUM>. The job management module <NUM> may store optical system configuration profiles determined based on the different printed material layouts in a job configuration database <NUM> and may subsequently retrieve appropriate system configuration profiles to configure the imaging controller device <NUM> for operation during corresponding production runs that may be subsequently performed by the production apparatus <NUM>.

The user interface module <NUM> may provide various user interfaces for configuring the imaging controller device <NUM> and/or for monitoring operation of the imaging controller device <NUM>. For example, the user interface module <NUM> may provide a user interface for obtaining information descriptive of a layout of content on the printed material <NUM>, such as, for example, the user interface <NUM> of <FIG>. In some embodiments, the user interface module <NUM> may provide a user interface that allows the user to select or otherwise specify a particular production run so that a corresponding optical system configuration profile can be retrieved from the job configuration database <NUM>. Additionally or alternatively, the user interface module <NUM> may provide a user interface for monitoring operation of the imaging controller device <NUM> during production of the printed material <NUM>, such as monitoring progress of acquiring and processing images by the imaging controller device <NUM>, informing users of any corrupted images acquired by the imaging controller device <NUM> during production of the printed material, providing alarms to the user, and the like.

The image acquisition controller <NUM> may include or be directly or indirectly coupled to a trigger device <NUM> configured to provide control signals to the optical device <NUM> to control operation of the optical device <NUM> as described herein. The image acquisition controller <NUM> may be configured to utilize a camera software development kit (SDK) <NUM> to communicate with the cameras <NUM> of the optical device <NUM> and to acquired images captured by the cameras <NUM>. The image acquisition controller <NUM> may temporarily store the images acquired from the optical device <NUM> in an image database <NUM>. The images may then be queued in an image pool <NUM> for processing by the processor <NUM>. The processor <NUM> may process the images, and may temporarily store processed images and/or information (e.g., signatures) extracted from the images in a database <NUM>, also referred to herein as a signature database <NUM>. The processed images and/or the information extracted from the images may then be queued in a transfer queue <NUM> for subsequent transmission via the transfer interface <NUM>.

<FIG> is a diagram of an example optical device <NUM> that may be utilized as the optical device <NUM> of <FIG>, according to an embodiment. The optical device <NUM> includes a imaging array <NUM> positioned over a hood <NUM>. The imaging array <NUM> includes eight cameras <NUM> that are placed in a linear arrangement, with adjacent pairs of cameras <NUM> having overlapping fields of view, in the illustrated embodiment. In other embodiments, the optical device <NUM> includes other suitable numbers of cameras <NUM> and/or the cameras <NUM> are arranged in other suitable manners. The optical device <NUM> additionally includes a plurality of light sources <NUM>, including a first light source <NUM>-<NUM> and a second light source <NUM>-<NUM>. The light sources <NUM> may be high intensity light emitting devices, such as strips of light emitting diodes (LEDs), for example. The light sources <NUM> may be positioned at <NUM> degree angles with respect to the surface of the hood <NUM>, with light emitting surfaces pointing towards the fields of view of the cameras <NUM>.

In an embodiment, the imaging controller device <NUM> control operation of the optical device <NUM> to trigger the cameras <NUM> to capture images of the printed material <NUM> and to acquire images captured by the cameras <NUM> as described herein. In an embodiment, each time the imaging controller device triggers the cameras <NUM> to capture an image, the imaging controller device <NUM> also triggers the light sources <NUM> to provide a high intensity flash during capture of the images by the cameras <NUM>.

<FIG> is a diagram of an example optical device <NUM> that may be utilized as the optical device <NUM> of <FIG>, according to another embodiment. The optical device <NUM> is generally the same as the optical device <NUM> of <FIG>, except that the optical device <NUM> includes a component <NUM> (e.g., a mirror) having a reflective surface that may be positioned to bend the optical paths of the cameras <NUM>. Because the optical path of the cameras <NUM> is bent in the optical device <NUM>, the height of the optical device <NUM> is reduced with respect to the height of the optical device <NUM>, in at least some embodiments. The height reduction may allow use of the optical device <NUM> in tight areas where limited space may be available in the vicinity of the production apparatus <NUM>, for example, in an embodiment.

<FIG> is a flow diagram of a method <NUM> for capturing images of printed material that may be implemented in the system of <FIG>, according to an embodiment. The method <NUM> may be implemented by the imaging controller device <NUM> (e.g., the processor <NUM>) or the imaging controller device <NUM> (e.g., the processor <NUM>), in example embodiments. For ease of explanation, the method <NUM> is described in the context of the imaging controller device <NUM> of <FIG>. In other embodiments, the method <NUM> is implemented by suitable devices different from the imaging controller device <NUM> of <FIG>.

At block <NUM>, the imaging controller device <NUM> determines a layout of content on printed material to be produced during production of the printed material by a production apparatus, such as the production apparatus <NUM>. For example, the configuration application <NUM> determines the layout of the content on the printed material. In an embodiment, the printed material corresponds to the printed material <NUM> produced by the production apparatus <NUM> of <FIG>. In an embodiment, the layout of content on the printed material corresponds to the layout of the label web sheet <NUM> of <FIG>, and determination of the layout of the content on the printed material at block <NUM> is performed as described above with reference to <FIG>. In other embodiments, determining the layout of content on printed material at block <NUM> comprises determining layouts of other suitable types of printed material and/or using other suitable determination techniques.

At block <NUM>, the imaging controller device <NUM> determines, based on the layout of content on the printed material determined at block <NUM>, an optical system configuration profile to be used for controlling an optical device (e.g., the optical device <NUM>, the optical device <NUM>, the optical device <NUM>, or another suitable optical device) during production of the printed material by the production apparatus. In an embodiment, determining the optical system configuration profile at block <NUM> may include selecting one or more cameras, among the plurality of cameras, for capturing images of one or more regions of interest on the printed material. The one or more cameras may be selected such that each region of interest among the one or more regions of interest fits, in its entirety, in a field of view of a particular camera among the one or more cameras. Determining the optical system configuration profile at block <NUM> may also determining a trigger interval for triggering the selected one or more cameras.

At block <NUM>, the imaging controller device <NUM> controls operation of the optical device during production of the printed material by the production apparatus. Controlling operation of the optical device at block <NUM> includes triggering the one or more cameras selected at block <NUM> at times determined based on the trigger interval determined at block <NUM> to capture images of the one or more regions of interest on the printed material as the printed material moves in fields of view of the one or more cameras during production of the printed material, in an embodiment.

The method <NUM> may additionally include processing the images captured during the production run, for example to generate signature and, in some embodiments HIDs, for marks that may be captured in the images. In an embodiment, an example process for processing the images is described in more detail below with reference to <FIG>. In other embodiments, other suitable processes are implemented to process the images. In some embodiments, multiple cores and/or multi-threading techniques are utilized to perform parallel processing of the images. In an embodiment, capturing each region of interest on the printed material <NUM> by a single camera <NUM> in a single image facilitates parallel processing of images by respective ones of multiple cores and/or using multiple threads because each core and/or thread may independently process a respective entire region of interest captured in a respective image.

<FIG> is a flow diagram of an example process <NUM> implemented to process captured images in the system of <FIG>, according to an embodiment. The image processing application <NUM> implements the process <NUM> to process images acquired by the image acquisition controller <NUM> from the optical device <NUM> during a production run performed by the production apparatus <NUM>, in an example embodiment.

At block <NUM>, the image processing application <NUM> may receive an image acquired by the image acquisition controller <NUM> and may use the acquired image to measure various characteristics of a mark that may be captured in the image. Measuring the various characteristics of the mark may result in a set of metrics that include data regarding artifacts of the mark (e.g., the mark <NUM>). The set of metrics may be one of several sets of metrics that the image processing application <NUM> generates about the mark. The image processing application <NUM> may carry out the measurements in different locations on the mark. In doing so, the image processing application <NUM> can divide the mark into multiple subareas (e.g., in accordance with an industry standard). In an embodiment, if the mark is a 2D barcode, the image processing application <NUM> carries out measurements on all of or a subset of the total number of subareas (e.g., all of or a subset of the total number of cells) of the mark. Examples of characteristics of the mark that the imaging controller device <NUM> may measure include: (a) feature shape, (b) feature aspect ratios, (c) feature locations, (d) feature size, (e) feature contrast, (f) edge linearity, (g) region discontinuities, (h) extraneous marks, (i) printing defects, (j) color (e.g., lightness, hue, or both), (k) pigmentation, and (l) contrast variations. In some embodiments, the image processing application <NUM> takes measurements on the same locations from mark to mark for each characteristic, but on different locations for different characteristics. For example, the image processing application <NUM> might measure the average pigmentation on a first set of locations of a mark, and on that same first set of locations for subsequent marks, but measure edge linearity on a second set of locations on the mark and on subsequent marks. The two sets of locations (for the different characteristics) may be said to be "different" if there is at least one location that is not common to both sets. In an embodiment, the results of characteristic measuring by the image processing application <NUM> include a set of metrics. There may be one or more sets of metrics for each of the measured characteristics.

At block <NUM>, the image processing application <NUM> may analyze the set of metrics measured at block <NUM> and, based on the analysis, may generate a signature that is based on the set of metrics. Because the set of metrics includes data regarding an artifact (or multiple artifacts) of the mark, the signature will be indirectly based on the artifact. If the mark carries data (as in the case of a 2D barcode), the image processing application <NUM> may also include such data as part of the signature. Put another way, in some embodiments, the signature may be based on both artifacts of the mark and on the data carried by the mark.

In an embodiment, in order to generate the signature, for each measured characteristic of the mark, the image processing application <NUM> ranks the metrics associated with the characteristic by magnitude and uses only those metrics that reach a predetermined threshold as part of the signature. For example, the image processing application <NUM> might refrain from ranking those metrics that are below the predetermined threshold. In an embodiment, there is a different predetermined threshold for each characteristic being measured. One or more of the predetermined thresholds may be based on a noise threshold and on the resolution of the camera <NUM> that was used to capture the image.

In an embodiment, the image processing application <NUM> obtains one hundred data points for each characteristic and collects six groups of measurements: one set of measurements for pigmentation, one set of measurements for deviation from a best-fit grid, one set of measurements for extraneous markings or voids, and three separate sets of measurements for edge linearity.

As part of the ranking process, the image processing application <NUM> may group together metrics that are below the predetermined threshold regardless of their respective locations (i.e., regardless of their locations on the mark). Also, the image processing application <NUM> may order the metrics (e.g., by magnitude) in each characteristic category as part of the ranking process. Similarly, the image processing application <NUM> might simply discount the metrics that are below the predetermined threshold. Also, the process of ranking may simply constitute separating metrics that are above the threshold from those that are below the threshold.

In an embodiment, the image processing application <NUM> orders the measured characteristics according to how sensitive the characteristics are to image resolution issues. For example, if the cameras <NUM> of the optical device <NUM> do not have the capability to capture an image in sufficiently high resolution, it might be difficult for the image processing application <NUM> to identify non-linearities of edges. However, the image processing application <NUM> may have no problem identifying deviations in pigmentation. Thus, the image processing application <NUM> might, on this basis, prioritize pigmentation over edge non-linearities. According to an embodiment, image processing application <NUM> orders the measured characteristics in reverse order of resolution-dependence as follows: subarea pigmentation, subarea position bias, locations of voids or extraneous markings, and edge non-linearities.

According to an embodiment, the image processing application <NUM> weights the measured characteristics of the mark based on one or more of the resolution of the cameras <NUM> of the optical device <NUM> and the resolution of the captured image of the mark. For example, if the resolution of the cameras <NUM> is low, then the image processing application <NUM> may give more weight to the average pigmentation of the various subareas of the mark. If the resolution of cameras <NUM> is high, then the image processing application <NUM> may give measurements of the edge irregularities of various subareas higher weight than other characteristics. If the mark includes error-correcting information, such as that set forth by ISO/IEC <NUM>, then the image processing application <NUM> may use the error-correcting information to weight the measured characteristics. For example, the image processing application <NUM> could read the error-correcting information, use the error-correcting information to determine which subareas of the mark have errors, and under-weight the measured characteristics of such subareas.

At block <NUM>, the image processing application <NUM> may use location identifiers corresponding to a subset of the metrics of the signature to derive a hash identifier (HID). In one embodiment, the image processing application <NUM> uses index numbers corresponding to a subset of the highest-magnitude metrics of the signature to derive an HID. In some embodiments, the image processing application <NUM> may, in deriving the HID, use index numbers corresponding to a subset of each set of metrics as a block within an overall HID.

The imaging controller device <NUM> may transmit the signature and the HID via the interface <NUM> and the communication network <NUM> to the server device <NUM> and/or the database <NUM> such that the HID is associated with the signature. In some embodiments, the HID can also be used to look up the signature (e.g., the server device <NUM> uses a database program to set the HID as an index key for the signature).

<NUM> is a block diagram of a computer system <NUM> suitable for implementing one or more components of the system of <FIG>, according to an embodiment. In its most basic configuration, the computer system <NUM> may include at least one processor <NUM> and at least one memory <NUM>. The computer system <NUM> may also include a bus (not shown) or other communication mechanism for communicating information data, signals, and information between various components of computer system <NUM>. Components may include an input component <NUM> that processes a user action, such as selecting keys from a keypad/keyboard, selecting one or more buttons or links, etc., and sends a corresponding signal to the at least one processor <NUM>. Components may also include an output component, such as a display, <NUM> that may display, for example, results of operations performed by the at least one processor <NUM>. A transceiver or network interface <NUM> may transmit and receive signals between the computer system <NUM> and other devices, such as user devices that may utilize results of processes implemented by the computer system <NUM>. In one embodiment, the transmission is wireless, although other transmission mediums and methods may also be suitable.

The at least one processor <NUM>, which can be a micro-controller, digital signal processor (DSP), or other processing component, processes these various signals, such as for display on the computer system <NUM> or transmission to other devices via a communication link <NUM>. The at least one processor <NUM> may also control transmission of information, such as cookies or IP addresses, to other devices. The at least one processor <NUM> may execute computer readable instructions stored in the memory <NUM>. The computer readable instructions, when executed by the at least one processor <NUM>, may cause the at least one processor <NUM> to implement processes associated with video frame processing and/or recognition of a subject based on a plurality of video frames.

Components of the computer system <NUM> may also include at least one static storage component <NUM> (e.g., ROM) and/or at least one disk drive <NUM>. Computer system <NUM> may perform specific operations by processor <NUM> and other components by executing one or more sequences of instructions contained in system the memory <NUM>. Logic may be encoded in a computer readable medium, which may refer to any medium that participates in providing instructions to the at least one processor <NUM> for execution. Such a medium may take many forms, including but not limited to, non-transitory media, non-volatile media, or volatile media, and transmission media. In various implementations, non-volatile media includes optical or magnetic disks, volatile media includes dynamic memory, such as system memory component <NUM>, and transmission media includes coaxial cables, copper wire, and fiber optics. In one embodiment, the logic is encoded in non-transitory computer readable medium. In one example, transmission media may take the form of acoustic or light waves, such as those generated during radio wave, optical, and infrared data communications.

Where applicable, various embodiments provided by the present disclosure may be implemented using hardware, software, or combinations of hardware and software. Also, where applicable, the various hardware components and/or software components set forth herein may be combined into composite components comprising software, hardware, and/or both without departing from the spirit of the present disclosure. Where applicable, the various hardware components and/or software components set forth herein may be separated into sub-components comprising software, hardware, or both without departing from the scope of the present disclosure. In addition, where applicable, it is contemplated that software components may be implemented as hardware components and vice-versa.

Software, in accordance with the present disclosure, such as program code and/or data, may be stored on one or more computer readable mediums. It is also contemplated that software identified herein may be implemented using one or more general purpose or specific purpose computers and/or computer systems, networked and/or otherwise. Where applicable, the ordering of various steps described herein may be changed, combined into composite steps, and/or separated into sub-steps to provide features described herein.

When implemented in hardware, the hardware may comprise one or more of discrete components, an integrated circuit, an application-specific integrated circuit (ASIC), a programmable logic device (PLD), etc..

While various operations have been described herein in terms of "modules" or "components," it is noted that that terms are not limited to single units or functions. Moreover, functionality attributed to some of the modules or components described herein may be combined and attributed to fewer modules or components. Further still, while the present disclosure refers to specific examples, those examples are intended to be illustrative only, and are not intended to be limiting in scope. It will be apparent to those of ordinary skill in the art that changes, additions and/or deletions may be made to the disclosed embodiments without departing from the scope of the appended claims.

Claim 1:
A system for capturing images during production of printed material, the system comprising:
an optical device comprising a plurality of cameras arranged in an array, wherein adjacent pairs of cameras in the array have overlapping fields of view; and
characterized by:
an imaging controller device configured to:
determine a layout of content on printed material,
determine, based on the layout of content on the printed material, an optical system configuration profile, including i) selecting one or more cameras, among the plurality of cameras, for capturing images of one or more regions of interest on the printed material, the one or more cameras being selected such that each region of interest among the one or more regions of interest fits, in its entirety, in a field of view of a particular camera among the one or more cameras, and ii) determining a trigger interval for triggering the selected one or more cameras, and
trigger the selected one or more cameras at times determined based on the trigger interval to capture images of the one or more regions of interest on the printed material as the printed material moves in fields of view of the one or more cameras during production of the printed material.