The subject matter described herein relates to a digital detector array.
Sensors, such as X-ray sensors, can be used to detect defects in objects. Sensors, such as X-ray sensors can include arrays of digital detector elements configured to sense the defects within the object. The arrays of digital detector elements, known as digital detector arrays (DDA) can have defective locations at one or more array elements.
In one aspect, a system for correcting a scan produced using a DDA having one or more defective pixels is provided. In some embodiments, the system can include a computing device, including a memory storing computer-executable instructions and at least one data processor communicatively coupled to a digital detector array (DDA) including a plurality of functioning pixels and one or more defective pixels. The at least one data processor can be configured to execute the instructions, which cause the at least one data processor to perform operations including: receiving, from the DDA, first data characterizing the one or more defective pixels within the DDA and their corresponding positions, receiving, from the DDA, second data characterizing a first inspection image of an object scanned using the DDA, wherein the first inspection image includes one or more dark regions aligned with the one or more defective pixels, determining a first shift setting based on the first data and/or the second data, wherein the first shift setting includes a first measure of physical adjustment to be applied to the DDA relative to the object or the object relative to the DDA, providing the first shift setting to a positioning device configured to shift the DDA relative to the object or the object relative to the DDA, receiving, from the DDA, third data characterizing a second inspection image of the object scanned using the DDA, and applying at least a portion of the second inspection image to the first inspection image.
In another embodiment, the at least one data processor can be further configured to perform operations further including: providing the first inspection image including the applied at least a portion of the second image to a user interface display communicatively coupled to the computing device.
In another embodiment, the determining of the first shift setting, by the at least one processor can further include: determining a largest dark region of the one or more dark regions, and determining the first measure of physical adjustment such that the largest dark region is positioned over an area of functioning pixels of the plurality of functioning pixels.
In another embodiment, the determining of the first shift setting, by the at least one processor can further include: determining that one or more dark regions other than the largest dark region are positioned over one or more defective pixels, and determining a second measure of physical adjustment to be applied to the DDA relative to the object or the object relative to the DDA such that the one or more dark regions other than the largest dark region are positioned over an area of functioning pixels of the plurality of functioning pixels.
In another embodiment, the first measure of physical adjustment can include a measure of movement in a first direction and the second measure of physical adjustment further includes a measure of movement in a second direction.
In another embodiment, the first measure of physical adjustment can incldue a first measure of rotation about a first predetermined axis and/or the second measure of physical adjustment includes a second measure of rotation about a second predetermined axis.
In another embodiment, the system can further include the positioning device chosen from any one of a C-arm system, a robotic arm system, and a motorized linear stage.
In another embodiment, the applying can further include: registering the second image to the first image, the registering including replacing the pixel values of the one or more defective pixels in the first inspection image with the corresponding pixel values in the second inspection image.
In another embodiment, the registering can include performing intensity normalization on the second data and/or the third data.
In another aspect, a system for correcting a scan produced using a DDA having one or more defective pixels and one or more gaps is provided. In some embodiments, the system can include: a computing device, including a memory storing computer-executable instructions and at least one data processor communicatively coupled to a plurality of digital detector arrays (DDAs) placed serially next to one another with a gap of a plurality of gaps defined between each DDA in the plurality. Each DDA in the plurality can include a plurality of functioning pixels and one or more defective pixels, and the at least one data processor can be configured to execute the instructions, which cause the at least one data processor to perform operations that can include: receiving, from the plurality of DDAs, first data characterizing the one or more defective pixels of the plurality of pixels of the plurality of DDAs and their corresponding positions, receiving, from the plurality of DDAs, second data characterizing the plurality of gaps between the plurality of DDAs and their corresponding positions, receiving, from the plurality of DDAs, third data characterizing a first inspection image of an object scanned using the plurality of DDAs, wherein the first inspection image includes one or more dark regions aligned with the one or more defective pixels and the plurality of gaps, determining a first shift setting based on the first data, the second data and/or the third data, wherein the first shift setting includes a first measure of physical adjustment to be applied to the plurality of DDAs relative to the object or the object relative to the plurality of DDAs, providing the first shift setting to a positioning device configured to shift the plurality of DDAs relative to the object, receiving, from the plurality of DDAs, fourth data characterizing a second inspection image of the object scanned using the plurality of DDAs, and applying at least a portion of the second inspection image to the first inspection image.
In another embodiment, the determining of the first shift setting, by the at least one processor can further include: determining a largest dark region of the one or more dark regions, and determining the first measure of physical adjustment such that the largest dark region is positioned over an area of functioning pixels of the plurality of functioning pixels.
In another embodiment, the determining of the first shift setting, by the at least one processor can further include: determining that one or more dark regions other than the largest dark region are positioned over one or more defective pixels, and determining a second measure of physical adjustment to be applied to the plurality of DDAs relative to the object or the object relative to the plurality of DDAs such that the one or more dark regions other than the largest dark region are positioned over an area of functioning pixels of the plurality of functioning pixels.
In another aspect, a method for correcting a scan produced using a DDA having one or more defective pixels provided. In some embodiments, the method can include: receiving, by at least one processor of a computing system, first data characterizing one or more defective pixels of a plurality of pixels of a digital detector array (DDA) and their corresponding positions, the DDA including a plurality of functioning pixels and the one or more defective pixels, receiving, by the at least one processor, second data characterizing a first inspection image of an object scanned using the DDA, wherein the first inspection image includes one or more dark regions aligned with the one or more defective pixels, determining, by the at least one processor, a first shift setting based on the first data and/or the second data, wherein the first shift setting includes a first measure of physical adjustment to be applied to the DDA relative to the object or the object relative to the DDA, shifting, by a positioning device, the DDA relative to the object or the object relative to the DDA based on the first shift setting, receiving, from the DDA, third data characterizing a second inspection image of the object scanned using the DDA, and applying at least a portion of the second inspection image to the first inspection image.
In another embodiment, the method can further include: providing the first inspection image including the applied at least a portion of the second image to a user interface display communicatively coupled to the computing device.
In another embodiment, the determining of the first shift setting can further include: determining a largest dark region of the one or more dark regions, and determining the first measure of physical adjustment such that the largest dark region is positioned over an area of functioning pixels of the plurality of functioning pixels.
In another embodiment, the determining of the first shift setting can further include: determining that one or more dark regions other than the largest dark region are positioned over one or more defective pixels, and determining a second measure of physical adjustment to be applied to the DDA relative to the object or the object relative to the DDA such that the one or more dark regions other than the largest dark region are positioned over an area of functioning pixels of the plurality of functioning pixels.
In another embodiment, the first measure of physical adjustment can include a measure of movement in a first direction and the second measure of physical adjustment include a measure of movement in a second direction.
In another embodiment, the first measure of physical adjustment can include a first measure of rotation about a first predetermined axis and/or the second measure of physical adjustment can include a second measure of rotation about a second predetermined axis.
In another embodiment, the applying can further include: registering the second image to the first image, the registering including replacing the pixel values of the one or more defective pixels in the first inspection image with the corresponding pixel values in the second inspection image.
In another embodiment, the registering can further include performing intensity normalization on the second data and/or the third data.
These and other features will be more readily understood from the following detailed description taken in conjunction with the accompanying drawings, in which:
It is noted that the drawings are not necessarily to scale. The drawings are intended to depict only typical aspects of the subject matter disclosed herein, and therefore should not be considered as limiting the scope of the disclosure.
DDAs can include areas of defective array elements often called clusters in which one or more pixels in an area can be inoperable to generate inspection data. These clusters may also extend over full or partial pixel lines or columns of the DDA. Depending on the configuration, these defective pixels may be corrected using neighboring pixels. Defective pixels located inside such clusters may be considered uncorrectable, according to standards (e.g. ASTM E2597) and user specifications. These pixels are also referred to as cluster kernel pixels (CKP). Various industries can be very restrictive in accepting imaging data generated using DDAs with a particular amount of defect pixel clusters and of CKPs in particular. These clusters can be considered as blind spots in the imaging data and thus, can be an important issue for object inspection. In some industries, imaging data associated with even one CKP can be banned or DDAs rejected. As a result, inspection operators may need to acquire additional DDA for replacement, which can result in higher inspection ownership and inspection costs, as well as prolonged inspection times and requalification times when replacement DDAs are reconfigured in an inspection environment.
Clusters and CKPs cannot be corrected within a DDA because the defective array elements at which the CKPs are present have a fixed location within the DDA and with respect to the X-ray tube. As a result, otherwise fully functional DDAs may be excluded from use in an inspection due to a single CKP. This can require pre-selected DDAs, which can increase inspection costs, configuration requirements, and inspection timelines. Over time DDAs can still develop defects of detector array elements and CKPs.
The system and methods described herein can correct clusters and namely CKPs so that DDAs can be used over a longer inspection lifespan. By moving the DDA along the X-axis and/or the Y-axis, image data associated with an area of the DDA affected by the CKP (or another detector defect) can be captured by a different area of the DDA that is functional and is not affected by the CKP. Using image data acquired at two or more positions of the DDA, the CKP (or other detector defect) can be corrected and removed in the inspection image data.
The system and methods described herein can detect defective pixels, namely CKPs in DDAs, characterize types of defect pixels or similar electronic malfunction clusters, adjust a location of the DDA by a defined number of pixels, acquire inspection image data based on the adjusted location, and compile the acquired inspection image data such that defect clusters or CKPs are eliminated.
Embodiments of defect pixel correction are discussed herein in regard to DDA use in object inspection. However, embodiments of the disclosure can be employed for defect pixel correction in regard to DDA use in a variety of application or environment without limitation, such as medical imaging.
The first data can include a position of one or more pixels corresponding to a defective cluster or CKP. Based on the first data, a classification of the one or more pixels and the CKP can be determined. This information may be stored and be re-used for further acquisition and correction cycles (such as in operations 120, 130, 140, 150, 160).
In operation 120, the data processor can receive second data characterizing an inspection image of an object. The inspection image can include X-ray image data acquired during an X-ray inspection of the object. Portions of the inspection image data can be invalid or contain no data due to the portion of the inspection image data being related to a portion of the DDA at which the defective cluster or CKP was present. For example, indications of defects of the object in the inspection image data can be located on CKPs or other defective pixels or other defective pixel clusters. The defect may cover the cluster or CKP partially or fully and vice versa.
In operation 130, the data processor can determine a shift setting of the DDA. The shift setting can be a measure of physical adjustment that can be applied to the DDA. The shift setting can identify a shift of the DDA in a horizontal direction (e.g., along the X-axis), a vertical direction (e.g., along the Y-axis), or a combination of horizontal and vertical directions. In some embodiments, the shift setting can include a rotational shift of the DDA about a predefined axis. The shift setting can be defined as an integer number of pixel. In some embodiments, the shift setting can be determined such that the object defect can be located at non-defective pixel locations instead of locations at which pixels associated with defective clusters or CKPs are present.
In some embodiments, the determining of the shift setting can further include determining a size of a largest defective cluster or CKP based on the first data and shifting the DDA based on the largest defective cluster, as discussed in greater detail below.
In operation 140, the DDA can be shifted relative to the object and/or the object can be shifted relative to the DDA based on the shift setting. In some embodiments, the pixels can be renumbered or re-indexed based on the shift setting. In some embodiments, the shifting can be done by a positioning device such as a C-arm, a robotic arm system, a motorized linear stage, or the like. In some embodiments, the positioning device can be a user configured to move the DDA and/or the scanned object manually.
In operation 150, the data processor can receive third data characterizing a second inspection image acquired based on the DDA that has been shifted by the shift setting determined in operation 130.
At operation 160, the data processor can apply at least a portion of the third data to the first inspection image such that inspection image data associated with the non-defective pixels occurring at the positions of the defective pixels are patched into the known positions of the defective pixels. In some embodiments, the data processor can perform intensity normalization when applying the third data. In some embodiments, the corrected first inspection image can be the same size or a different size in a horizontal direction or a vertical direction.
In some embodiments, operations 130-160 can be iteratively performed with different shift setting measures until all or a predetermine threshold number of CKPs (or relevant defective pixels or pixel clusters) can be corrected. In this way, the data processor can determine a shift setting measure that is optimized to account for all CKPs detected in the DDA.
The locations of the clusters can be determined based on a coordinate system associated with the DDA 200. In this way, a location of each cluster 205 can correspond to a coordinate value pair, such as an X-value, Y-value pair.
As illustrated in
It should be noted that in some severe cases, it may not be possible to shift the DDA 200 in a way such that all of the CKPs 205A-205C or all of the dark regions from the first inspection image are positioned over functional pixels. Accordingly, in this severe case, the computing system can be configured to determine a shift setting that minimizes the number CKPs 205A-205C or dark regions that are positioned over defective pixels when acquiring the second inspection image. The determining of the shift setting in this sever case can be executed similarly to as described above.
As illustrated in
In a case where the one or more gaps 305A and/or 305B have widths of an integer number of pixels, the one or more gaps 305A and/or 305B can be filled with pixel values by moving the detector relative to the object as described above.
Alternatively, in some cases the one or more gaps 305A and/or 305B can have widths that include a fractional number of pixels, or the plurality of DDAs 200 placed next to one another in such a way that the one or more gaps 305A and/or 305B are not uniform in width (e.g. the DDAs are not parallel). In the cases described above, parts, or the entirety of each DDA 200 can be oversampled (e.g. the pixels of the DDA can be divided in to smaller pixels). In this case, the large DDA shift setting can include a shift of a non-integer number of pixels. In this case, the full pixels of the large DDA 300 can be renumbered as described above, and the un-scanned areas defined by the one or more gaps 305A and/or 305B can be interpolated based on the oversampling and resized to the original pixel width.
It should be noted that in some severe cases, it may not be possible to shift the large DDA 300 in a way such that all of the dark regions in the first inspection image resulting from the CKPs and gaps 305A and 305B are positioned over functional pixels. Accordingly, in this severe case, the computing system can be configured to determine a shift setting that minimizes the amount of dark regions resulting from the CKPs and gaps 305A and 305B that are positioned over defective pixels when acquiring the second inspection image. The determining of the shift setting in this sever case can be executed similarly to as described above.
Further, in some cases, the pixels located on the edges of the plurality of DDAs 200 can deviate in from the rest of the pixels in the DDA in radiation detection efficiency, width, and/or proportion. This deviation of the edge pixels can be corrected using the same oversampling technique described above.
In more detail, the processor 950 can be any logic circuitry that processes instructions, e.g., instructions fetched from the memory 970 or cache 960. In many embodiments, the processor 950 is an embedded processor, a microprocessor unit or special purpose processor. The computing system 910 can be based on any processor, e.g., suitable digital signal processor (DSP), or set of processors, capable of operating as described herein. In some embodiments, the processor 950 can be a single core or multi-core processor. In some embodiments, the processor 950 can be composed of multiple processors.
The memory 970 can be any device suitable for storing computer readable data. The memory 970 can be a device with fixed storage or a device for reading removable storage media. Examples include all forms of non-volatile memory, media and memory devices, semiconductor memory devices (e.g., EPROM, EEPROM, SDRAM, flash memory devices, and all types of solid state memory), magnetic disks, and magneto optical disks. A computing device 910 can have any number of memory devices 970.
The cache memory 960 is generally a form of high-speed computer memory placed in close proximity to the processor 950 for fast read/write times. In some implementations, the cache memory 960 is part of, or on the same chip as, the processor 950.
The network interface controller 920 manages data exchanges via the network interface 925. The network interface controller 920 handles the physical, media access control, and data link layers of the Open Systems Interconnect (OSI) model for network communication. In some implementations, some of the network interface controller’s tasks are handled by the processor 950. In some implementations, the network interface controller 920 is part of the processor 950. In some implementations, a computing device 910 has multiple network interface controllers 920. In some implementations, the network interface 925 is a connection point for a physical network link, e.g., an RJ 45 connector. In some implementations, the network interface controller 920 supports wireless network connections and an interface port 925 is a wireless Bluetooth transceiver. Generally, a computing device 910 exchanges data with other network devices 930, such as computing device 930, via physical or wireless links to a network interface 925. In some implementations, the network interface controller 920 implements a network protocol such as LTE, TCP/IP Ethernet, IEEE 802.11, IEEE 802.16, Bluetooth, or the like.
The other computing devices 930 are connected to the computing device 910 via a network interface port 925. The other computing device 930 can be a peer computing device, a network device, a server, or any other computing device with network functionality. For example, a computing device 930 can be a computing device 830 associated with a remote user of the inspection system 800 illustrated in
In some uses, the I/O interface 940 supports an input device and/or an output device (not shown). In some uses, the input device and the output device are integrated into the same hardware, e.g., as in a touch screen. In some uses, such as in a server context, there is no I/O interface 940 or the I/O interface 940 is not used. In some uses, additional other components 980 are in communication with the computer system 910, e.g., external devices connected via a universal serial bus (USB).
The other devices 980 can include an I/O interface 940, external serial device ports, and any additional co-processors. For example, a computing system 910 can include an interface (e.g., a universal serial bus (USB) interface, or the like) for connecting input devices (e.g., a keyboard, microphone, mouse, or other pointing device), output devices (e.g., video display, speaker, refreshable Braille terminal, or printer), or additional memory devices (e.g., portable flash drive or external media drive). In some implementations an I/O device is incorporated into the computing system 910, e.g., a touch screen on a tablet device. In some implementations, a computing device 910 includes an additional device 980 such as a co-processor, e.g., a math co-processor that can assist the processor 950 with high precision or complex calculations.
Exemplary technical effects of the methods, systems, and devices described herein include, by way of non-limiting example improved inspection image data and correction of defect pixel clusters and CKP in DDA. The method of correcting clusters and CKPs present in DDAs can address the technical problem of acquiring sufficient quality inspection image data from DDAs that include one or more defective pixels which can produce erroneous inspection results and further cause the DDA to be deemed unusable in an inspection procedure. As a result, inspection costs, inspection timelines, and need for replacing defective DDAs can be reduced.
The subject matter described herein can be implemented in analog electronic circuitry, digital electronic circuitry, and/or in computer software, firmware, or hardware, including the structural means disclosed in this specification and structural equivalents thereof, or in combinations of them. The subject matter described herein can be implemented as one or more computer program products, such as one or more computer programs tangibly embodied in an information carrier (e.g., in a machine-readable storage device), or embodied in a propagated signal, for execution by, or to control the operation of, data processing apparatus (e.g., a programmable processor, a computer, or multiple computers). A computer program (also known as a program, software, software application, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file. A program can be stored in a portion of a file that holds other programs or data, in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this specification, including the method steps of the subject matter described herein, can be performed by one or more programmable processors executing one or more computer programs to perform functions of the subject matter described herein by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus of the subject matter described herein can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processor of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, (e.g., EPROM, EEPROM, and flash memory devices); magnetic disks, (e.g., internal hard disks or removable disks); magneto-optical disks; and optical disks (e.g., CD and DVD disks). The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
To provide for interaction with a user, the subject matter described herein can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, (e.g., a mouse or a trackball), by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well. For example, feedback provided to the user can be any form of sensory feedback, (e.g., visual feedback, auditory feedback, or tactile feedback), and input from the user can be received in any form, including acoustic, speech, or tactile input.
The techniques described herein can be implemented using one or more modules. As used herein, the term “module” refers to computing software, firmware, hardware, and/or various combinations thereof. At a minimum, however, modules are not to be interpreted as software that is not implemented on hardware, firmware, or recorded on a non-transitory processor readable recordable storage medium (i.e., modules are not software per se). Indeed “module” is to be interpreted to always include at least some physical, non-transitory hardware such as a part of a processor or computer. Two different modules can share the same physical hardware (e.g., two different modules can use the same processor and network interface). The modules described herein can be combined, integrated, separated, and/or duplicated to support various applications. Also, a function described herein as being performed at a particular module can be performed at one or more other modules and/or by one or more other devices instead of or in addition to the function performed at the particular module. Further, the modules can be implemented across multiple devices and/or other components local or remote to one another. Additionally, the modules can be moved from one device and added to another device, and/or can be included in both devices.
The subject matter described herein can be implemented in a computing system that includes a back-end component (e.g., a data server), a middleware component (e.g., an application server), or a front-end component (e.g., a client computer having a graphical user interface or a web browser through which a user can interact with an implementation of the subject matter described herein), or any combination of such back-end, middleware, and front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
Certain exemplary embodiments have been described to provide an overall understanding of the principles of the structure, function, manufacture, and use of the systems, devices, and methods disclosed herein. One or more examples of these embodiments have been illustrated in the accompanying drawings. Those skilled in the art will understand that the systems, devices, and methods specifically described herein and illustrated in the accompanying drawings are non-limiting exemplary embodiments and that the scope of the present invention is defined solely by the claims. The features illustrated or described in connection with one exemplary embodiment may be combined with the features of other embodiments. Such modifications and variations are intended to be included within the scope of the present invention. Further, in the present disclosure, like-named components of the embodiments generally have similar features, and thus within a particular embodiment each feature of each like-named component is not necessarily fully elaborated upon.
Approximating language, as used herein throughout the specification and claims, may be applied to modify any quantitative representation that could permissibly vary without resulting in a change in the basic function to which it is related. Accordingly, a value modified by a term or terms, such as “about,” “approximately,” and “substantially,” are not to be limited to the precise value specified. In at least some instances, the approximating language may correspond to the precision of an instrument for measuring the value. Here and throughout the specification and claims, range limitations may be combined and/or interchanged, such ranges are identified and include all the sub-ranges contained therein unless context or language indicates otherwise.
One skilled in the art will appreciate further features and advantages of the invention based on the above-described embodiments. Accordingly, the present application is not to be limited by what has been particularly shown and described, except as indicated by the appended claims. All publications and references cited herein are expressly incorporated by reference in their entirety.
This application claims priority under 35 U.S.C. § 119(e) to U.S. Provisional Application No. 63/327,511 filed on Apr. 5, 2022, the entire contents of which are hereby expressly incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
63327511 | Apr 2022 | US |