Systems and methods for visualizing digitized slides
The system generates virtual slides from digitized microscope slides, addressing inefficiencies in existing methods by aligning and arranging serial sections for enhanced machine learning and ergonomic observation.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- PRAMANA INC
- Filing Date
- 2024-02-01
- Publication Date
- 2026-04-23
AI Technical Summary
Existing methods for digitizing and visualizing microscope slides are inefficient for large-scale analysis and do not facilitate ergonomic observation or efficient data extraction for machine learning applications.
A system and method for visualizing digitized slides using a processor and memory to generate virtual slides based on visualization components, aligning and arranging serial sections, and enabling user-configurable options for enhanced display.
Facilitates efficient data extraction for machine learning and ergonomic observation by aligning and arranging serial sections, allowing for customizable visualization and improved analysis of digitized slides.
Smart Images

Figure 2026513220000001_ABST
Abstract
Description
Technical Field
[0001] Cross - reference to related applications
[0002] This non - provisional application claims priority to Indian Patent Application No. 202341021543, filed on March 25, 2023, titled "SYSTEMS AND METHODS FOR VISUALIZATION OF DIGITIZED SLIDES" with the Indian Patent Office in New Delhi / Kolkata / Chennai / Mumbai, U.S. Non - provisional Patent Application No. 18 / 229,812, filed on August 3, 2023, titled "APPARATUS AND METHOD FOR VISUALIZATION OF DIGITIZED GLASS SLIDES BELONGING TO A PATIENT CASE", and U.S. Non - provisional Patent Application No. 18 / 428,823, filed on January 31, 2024, titled "SYSTEM AND METHOD FOR VISUALIZATION OF DIGITIZED SLIDES", both of which are incorporated herein by reference in their entirety.
[0003] The present invention generally relates to the field of digital processing. In particular, the present invention relates to systems and methods for the visualization of digitized slides.
Background Art
[0004] By examining slides containing biomedical samples such as tissue samples under a microscope, data that can be used for various biomedical applications is provided. For example, a physician or other qualified individual may be able to diagnose a pathological condition or detect microorganisms. In many cases, a physician can directly observe the slide under a microscope.
[0005] However, digitizing microscope slides for downstream analysis is becoming increasingly desirable. For example, slide digitization facilitates the use of machine learning for large-scale analysis of slide images. Thus, slide digitization can be useful in clinical and academic contexts, providing healthcare providers with the opportunity to deliver enhanced patient care in a faster and more efficient manner.
[0006] Therefore, it is desirable to develop improved techniques for digitizing and visualizing slides. [Overview of the project]
[0007] In one embodiment, a device for visualizing digitized slides may include at least a processor and at least a memory communicably connected to the processor, wherein the memory stores instructions, and the instructions are configured to cause at least the processor to retrieve a digitized slide, determine one or more visualization components of the digitized slide, generate a virtual slide corresponding to the digitized slide based on the one or more visualization components, and display a visualization of the virtual slide.
[0008] In another embodiment, memory stores instructions that configure at least a processor to determine, based on metadata associated with the digitized slide, that the digitized slide is a member of a set of digitized slides associated with at least one of a patient case or tissue block.
[0009] In another embodiment, displaying a virtual slide includes displaying a set of virtual slides, each containing a virtual slide, that corresponds to a set of digitized slides.
[0010] In another embodiment, one or more visualization components may include at least one of a tissue section, artifact, or annotation.
[0011] In another embodiment, memory stores instructions that configure at least the processor to determine one or more user-configurable options related to a virtual slide based on one or more visualization components.
[0012] In another embodiment, one or more user-configurable options are determined by accessing a lookup table indexed by one or more visualization components.
[0013] In another embodiment, the visualization is displayed via a full slide image viewer, and one or more user-configurable options are presented to the user via the user interface of the full slide image viewer.
[0014] In another embodiment, memory stores at least instructions that configure the processor to receive requests to customize visualizations.
[0015] In another embodiment, memory stores instructions that configure at least the processor to receive a request to display a second visualization of a different virtual slide.
[0016] In another embodiment, memory stores instructions that configure at least the processor to determine a recommended set of visualization components to include in the visualization, and a modified set of visualization components to include in the visualization based on user selection.
[0017] In another embodiment, memory stores instructions that cause at least the processor to determine, based on the presence of multiple consecutive sections in the digitized slide, that the digitized slide corresponds to a slide within a consecutive section, classify the multiple consecutive sections into a reference consecutive section and one or more remaining consecutive sections, align one or more remaining consecutive sections with the reference consecutive section to generate multiple aligned consecutive sections, and configure the visualization of the virtual slide to include multiple aligned consecutive sections.
[0018] In another embodiment, one or more remaining serial sections are aligned with the reference serial section by independently calculating one or more alignment transformations relative to the reference serial section for each of the one or more remaining serial sections.
[0019] In another embodiment, one or more alignment transformations are calculated based on macro images of digitized slides, the macro images being acquired using a macro camera and having a field of view covering each of a plurality of serial sections.
[0020] In another embodiment, memory stores instructions that configure at least the processor to store one or more alignment transformations in a non-volatile storage medium, acquire a whole slide image (WSI) at a higher magnification than the macro image, compute one or more corresponding higher magnification alignment transformations applicable to the WSI based on the stored one or more alignment transformations, apply one or more higher magnification alignment transformations to a plurality of consecutive sections in the WSI to generate a virtual WSI having a plurality of aligned consecutive sections, and display a visualization of the virtual slide, which includes displaying a visualization of the virtual WSI.
[0021] In another embodiment, multiple aligned serial sections are displayed in the same order in which the corresponding serial sections appear on the digital slide.
[0022] In another embodiment, multiple aligned serial sections are spatially arranged within the visualization based on a configuration selected by the user.
[0023] In another embodiment, multiple aligned serial sections are spatially arranged in a compact manner so that they appear closer to each other in visualization than they would in a digitized slide.
[0024] In another aspect, one or more visualization components can include at least one annotation, at least one annotation is included in the visualization based on a user-configurable filter, and aligning one or more remaining consecutive sections to a reference consecutive section includes aligning at least one annotation to the reference consecutive section.
[0025] In another aspect, a method for visualizing digitized slides can include searching for digitized slides by one or more computer processors, determining one or more visualization components of the digitized slides by one or more computer processors, generating a virtual slide corresponding to the digitized slides based on the one or more visualization components by one or more computer processors, and displaying a visualization of the virtual slide by one or more computer processors.
[0026] In another aspect, the method can further include determining by one or more computer processors that the digitized slide is a member of a set of digitized slides related to at least one of a patient case or a tissue block based on metadata related to the digitized slide.
[0027] In another aspect, displaying the virtual slide can include displaying a plurality of virtual slides including the virtual slide corresponding to the set of digitized slides.
[0028] In another aspect, one or more visualization components can include at least one of a tissue section, an artifact, or an annotation.
[0029] In another embodiment, the method may further include using one or more computer processors to determine one or more user-configurable options related to a virtual slide based on one or more visualization components.
[0030] In another embodiment, one or more user-configurable options are determined by accessing a lookup table indexed by one or more visualization components.
[0031] In another embodiment, the visualization is displayed via a full slide image viewer, and one or more user-configurable options are presented to the user via the user interface of the full slide image viewer.
[0032] In another embodiment, the method may further include receiving requests to customize visualizations by one or more computer processors.
[0033] In another embodiment, the method may further include receiving a request from one or more computer processors to display a second visualization of a different virtual slide.
[0034] In another embodiment, the method may further include determining a recommended set of visualization elements to be included in the visualization using one or more computer processors, and determining a modified set of visualization elements to be included in the visualization based on user selection using one or more computer processors.
[0035] In another embodiment, the method may further include: determining, by one or more computer processors, that a digitized slide corresponds to a slide within a sequence based on the presence of multiple sequences within the digitized slide; classifying the multiple sequences into a reference sequence and one or more remaining sequences by one or more computer processors; and aligning one or more remaining sequences with the reference sequence by one or more computer processors to generate a plurality of aligned sequences, wherein the visualization of the virtual slide includes a plurality of aligned sequences.
[0036] In another embodiment, one or more remaining serial sections are aligned with the reference serial section by independently calculating one or more alignment transformations relative to the reference serial section for each of the one or more remaining serial sections.
[0037] In another embodiment, one or more alignment transformations are calculated based on macro images of digitized slides, the macro images being acquired using a macro camera and having a field of view covering each of a plurality of serial sections.
[0038] In another embodiment, the method may include storing one or more alignment transformations in a non-volatile storage medium using one or more computer processors; acquiring a whole slide image (WSI) at a higher magnification than the macro image using one or more computer processors; calculating one or more corresponding high-magnification alignment transformations applicable to the WSI based on one or more stored alignment transformations using one or more computer processors; and applying one or more high-magnification alignment transformations to a plurality of consecutive sections in the WSI using one or more computer processors to generate a virtual WSI having a plurality of aligned consecutive sections, wherein displaying a visualization of the virtual slide includes displaying a visualization of the virtual WSI.
[0039] In another embodiment, multiple aligned serial sections are displayed in the same order in which the corresponding serial sections appear on the digital slide.
[0040] In another embodiment, multiple aligned serial sections are spatially arranged within the visualization based on a configuration selected by the user.
[0041] In another embodiment, multiple aligned serial sections are spatially arranged in a compact manner so that they appear closer to each other in visualization than they would in a digitized slide.
[0042] In another embodiment, one or more visualization components include at least one annotation, the at least one annotation is included in the visualization based on a user-configurable filter, and aligning one or more remaining serial sections to a reference serial section includes aligning at least one annotation to a reference serial section.
[0043] 1. Some additional typical embodiments relate to a typical apparatus for visualizing digitized slides belonging to a patient case. The typical apparatus may include a processor and a memory communicably connected to the processor. The memory may store instructions that configure the processor to receive an image dataset containing multiple images of one or more samples and metadata of the multiple images of one or more samples, to identify one or more component visualization elements for each image of the multiple images in the image dataset, to determine the relationships between the one or more component visualization elements as a function of the image dataset, to construct multiple virtual images as a function of the relationship between the image dataset and one or more virtual component elements, each of the multiple virtual images containing at least one virtual component element, to generate an integrated virtual image as a function of the multiple virtual images, and to display the integrated virtual image.
[0044] 2. In some embodiments of a typical device, constructing multiple virtual images as a function of the relationship between an image dataset and one or more virtual consistency components may further include receiving input via a user interface and generating multiple virtual images as a function of the input.
[0045] 3. In some embodiments of a typical apparatus, determining the relationships between one or more component visualization elements may include modifying at least one of the one or more component visualization elements and determining the relationships between the one or more component visualization elements in accordance with the modification.
[0046] 4. In some embodiments of a typical apparatus, determining the relationships between one or more component visualization elements may further include classifying one or more component visualization elements into one or more sample classifications, each sample classification comprising a reference component visualization element and one or more remaining component visualization elements; receiving orientations of each reference component visualization element and one or more remaining component visualization elements of one or more sample classifications; and reorienting one or more remaining component visualization elements as a function of the classification and orientation of each of the one or more reference component visualization elements. In some versions of a typical apparatus, receiving an image dataset may include acquiring at least one macro image of a sample using a macro camera; constructing multiple virtual images as a function of the relationships between the image dataset and one or more virtual component elements may include generating multiple virtual images as a function of the reorientation of one or more component visualization elements; and generating a unified virtual image as a function of multiple virtual images may include generating a unified macro image as a function of multiple virtual images. In some versions of a typical apparatus, constructing multiple virtual images may further include receiving multiple high-resolution images, each of which is related to each image in the image dataset, and generating multiple virtual images as a function of the multiple high-resolution images and the reorientation of one or more remaining component visualization elements. In some versions of a typical apparatus, constructing multiple virtual images as a function of the image dataset may further include determining the spatial distance between each reference component visualization and one or more remaining virtual component elements for each of the multiple images, and constructing at least one virtual image of the multiple virtual images as a function of the spatial distance.In some versions of a typical device, constructing multiple virtual images as a function of an image dataset may further include identifying one or more annotations on at least one of the multiple images, receiving one or more configurable parameters for the multiple images, and removing one or more annotations as a function of one or more configurable parameters. In some cases, one or more configurable parameters are received as a function of user input.
[0047] 5. In some embodiments of a typical apparatus, determining the relationships between one or more component visualization elements may include identifying one or more component visualization elements using an image processing module.
[0048] 6. Some typical embodiments relate to typical methods for visualizing digitized slides belonging to a patient case. In some embodiments, a typical method may include: receiving an image dataset containing multiple images of one or more samples and metadata for the multiple images of one or more samples, at least by a processor; identifying one or more component visualization elements for each of the multiple images in the image dataset, at least by a processor; determining the relationships between one or more component visualization elements as a function of the image dataset, at least by a processor; constructing a plurality of virtual images as a function of the image dataset and the relationships between one or more virtual component elements, wherein each of the plurality of images contains at least one virtual component element; generating an integrated virtual image as a function of the plurality of virtual images, at least by a processor; and displaying the integrated virtual image, at least by a processor.
[0049] 7. In some embodiments of a typical method, constructing multiple virtual images as a function of the relationship between an image dataset and one or more virtual consistency components, at least by a processor, may further include receiving input via a user interface and generating multiple virtual images as a function of the input.
[0050] 8. In some embodiments of a typical method, determining the relationship between one or more component visualization elements by at least a processor may include modifying at least one of the one or more component visualization elements and determining the relationship between one or more component visualization elements as a function of the modification.
[0051] 9. In some embodiments of a typical method, determining the relationships between one or more component visualization elements by at least a processor may further include classifying one or more component visualization elements into one or more sample categories, each sample category comprising a reference component visualization element and one or more remaining component visualization elements; receiving orientations for each reference component visualization element and one or more remaining component visualization elements of one or more sample categories; and reorienting one or more remaining component visualization elements as a function of the categorization and orientation of each of the one or more reference component visualization elements. In some versions of a typical method, receiving an image dataset by at least a processor may further include acquiring at least one macro image of a sample using a macro camera; constructing a plurality of virtual images as a function of the relationships between the image dataset and one or more virtual component elements by at least a processor may further include generating a plurality of virtual images as a function of the reorientation of one or more component visualization elements; and generating a unified virtual image as a function of the plurality of virtual images may include generating a unified macro image as a function of the plurality of virtual images. In some versions of a typical embodiment, constructing a plurality of virtual images by at least one processor may further include receiving a plurality of high-resolution images, each of which high-resolution images relates to each image in the image dataset, and generating a plurality of virtual images as a function of the plurality of high-resolution images and the reorientation of one or more remaining component visualization elements. In some versions of a typical method, constructing a plurality of virtual images as a function of the image dataset by at least one processor may further include determining, for each of the plurality of images, the spatial distance between each reference component visualization and one or more remaining virtual component elements, and constructing at least one virtual image of the plurality of virtual images as a function of the spatial distance.At least by a processor, some versions of a typical method for constructing multiple virtual images as a function of an image dataset may further include identifying one or more annotations on at least one of the multiple images, receiving one or more configurable parameters for the multiple images, and removing one or more annotations as a function of one or more configurable parameters. In some cases, one or more configurable parameters are received as a function of user input.
[0052] In some embodiments of a typical method, determining the relationships between one or more component visualization elements by at least a processor may include identifying one or more component visualization elements using an image processing module.
[0053] Details of one or more variations of the subject matter described herein are given in the accompanying drawings and the following description. Other features and advantages of the subject matter described herein will become apparent from the description and drawings, as well as the claims.
[0054] For the purpose of illustrating the present invention, the drawings illustrate aspects of one or more embodiments of the present invention. However, it should be understood that the present invention is not limited to the exact arrangements and means shown in the drawings. [Brief explanation of the drawing]
[0055] [Figure 1] This is a block diagram showing methods for visualizing digitized slides. [Figure 2] This is a block diagram of a typical machine learning process. [Figure 3] This is a diagram of a typical embodiment of a neural network. [Figure 4] This is a diagram of a typical embodiment of a neural network node. [Figure 5] A simplified diagram of a set of digitized slides and corresponding visualizations, according to several embodiments. [Figure 6] This is a simplified diagram of a digitized slide having multiple sections and a corresponding compact virtual slide, according to several embodiments. [Figure 7] This is a simplified diagram of a digitized slide having multiple serial sections and a corresponding virtual slide having realigned sections, according to several embodiments. [Figure 8] This is a simplified diagram of a digitized slide having multiple serial sections and a corresponding compact virtual slide having realigned sections, according to several embodiments. [Figure 9] This is a simplified diagram of an annotated digitized slide having multiple serial sections and a corresponding compact virtual slide having realigned sections, according to several embodiments. [Figure 10] This is a flowchart illustrating methods for visualizing digitized slides. [Figure 11] This is a block diagram of a typical embodiment of an apparatus for visualizing digitized microscope slides. [Figure 12] This flowchart illustrates a typical embodiment of a method for visualizing digitized microscope slides. [Figure 13] This is a block diagram of a computing system that may be used to implement any one or more of the methods disclosed herein and any one or more parts thereof. [Modes for carrying out the invention]
[0056] Drawings are not necessarily to scale and may be represented by dashed lines, schematics, and partials. In some cases, details not necessary for understanding the embodiment, or details that would make it difficult to perceive other details, may be omitted. Similar reference numerals in different drawings indicate similar elements.
[0057] At a higher level, aspects of the present disclosure relate to a method for visualizing digitized slides, comprising: searching for the digitized slides using one or more computer processors; determining one or more visualization components of the digitized slides using one or more computer processors; generating virtual slides corresponding to the digitized slides based on one or more visualization components using one or more computer processors; and displaying the visualization of the virtual slides using one or more computer processors. In one embodiment, digitizing slides refers to processing and combining one or more slides to capture and align the information contained therein, and to combine a plurality of individual digitized slides into a single virtual slide as necessary.
[0058] Referring here to Figure 1, a block diagram is shown illustrating an apparatus 100 and method for visualizing digitized slides. The apparatus 100 may include a processor 104 which is communicatively connected to and constituted by memory 108. The processor 104 may include a computer processor 104. The apparatus 100 may include, but is not limited to, any computing devices described in this disclosure, including, microcontrollers, microprocessors, digital signal processors (DSPs), and / or system-on-a-chip (SoCs) described herein. The apparatus 100 may include, be contained in, and / or communicate with mobile devices, including mobile phones or smartphones. The apparatus 100 may include a single computing device operating independently, or two or more computing devices operating in coordination, in parallel, sequentially, etc., and two or more computing devices may be included together in a single computing device or two or more computing devices. The apparatus 100 may interface with or communicate with one or more additional devices via a network interface device, as described in more detail below. Network interface devices can be used to connect device 100 to one or more networks and one or more devices. Examples of network interface devices include, but are not limited to, network interface cards (e.g., mobile network interface cards, LAN cards), modems, and any combination thereof. Examples of networks include, but are not limited to, wide area networks (e.g., the Internet, corporate networks), local area networks (e.g., networks associated with offices, buildings, campuses, or other relatively small geographical spaces), telephone networks, data networks associated with telephone / voice providers (e.g., mobile communications provider data and / or voice networks), direct connections between two computing devices, and any combination thereof.The network can use wired and / or wireless communication modes. In general, any network topology can be used. Information (e.g., data, software, etc.) can be communicated between computers and / or computing devices. Device 100 may include, for example, a computing device or cluster of computing devices at a first location and a second computing device or cluster of computing devices at a second location, but is not limited to these. Device 100 may include one or more computing devices dedicated to data storage, security, traffic distribution for load balancing, etc. Device 100 can distribute one or more computing tasks, as described below, across multiple computing devices of computing devices that can operate in parallel, serial, redundantly, or in any other way used for distributing tasks or memory between computing devices. In a non-limiting example, Device 100 may be implemented using a “no-share” architecture.
[0059] Continuing with reference to Figure 1, the processor 104 may be designed and / or configured to execute any method, process, or sequence of process steps in any embodiment of the disclosure in any order and at any degree of iteration. The processor 104 may be configured to execute instructions, including processes encoded in memory 108. For example, the processor 104 may be configured to repeatedly execute a single process or sequence until a desired or instructed result is achieved, and the iteration of a process or series of processes is performed iteratively and / or recursively using the output of the previous iteration as input to the subsequent iteration, and the inputs and / or outputs of the iterations can be aggregated to produce an aggregated result, decrease or decrement one or more variables, such as global variables, and / or divide a larger processing task into a set of iteratively addressed smaller processing tasks. The processor 104 may execute any process or series of processes described in the disclosure in parallel, such as executing a process simultaneously and / or substantially simultaneously multiple times using two or more parallel threads, processor cores, etc., and task division between parallel threads and / or processes can be performed according to any protocol suitable for task division between iterations. Those skilled in the art will, upon reviewing the entirety of this disclosure, recognize a variety of ways in which processes, sequences of processes, processing tasks, and / or data can be subdivided, shared, or otherwise processed using iterative, recursive, and / or parallel processing.
[0060] Continuing to refer to Figure 1, the processor 104 can retrieve digitized slides 112a-c. As used in this disclosure, “digitized slide” is a digital image representing at least a portion of a slide or at least a section of tissue. In some cases, digitized slides 112a-c may include representations of sections (i.e., histological sections) of tissue 113a. Alternatively or additionally, digitized slides 112a-c may include multiple tissue sections 113a-c, which may be sectioned from spatially adjacent tissue, for example, within a tissue block 114. As used in this disclosure, “tissue section” is a slice of material that enables two-dimensional imaging of the material. In some cases, a tissue section may include a section of a biological material, such as human soft tissue. For example, tissue sections 113a-c can be considered as two-dimensional representations of tissue in, for example, the XY plane, and adjacent tissue sections can be considered as two-dimensional slices at different but adjacent positions along a third dimension, for example, the Z-axis. As used in this disclosure, “tissue block” may include a certain volume of material. In some cases, a tissue block may be considered in three dimensions, while a tissue section may be considered only in two dimensions. In some cases, a tissue section may be sliced from a tissue block. In some cases, a tissue block may contain biomaterial. For example, a tissue block may contain human soft tissue from a biopsy. In some cases, a tissue block may be solid, and alternatively or additionally, a tissue block may contain fluid.
[0061] Referring further to Figure 1, a digitized slide may include a digital representation of the slide glass on which the biomedical specimen is mounted, in addition to a digital image of the slide, typically obtained using a scanning process. The image may be associated with, or include, metadata indicating, for example, the location of the pathological specimen on the slide, as well as information about the presence and location of components such as annotations, bubbles, and debris. As used in this disclosure, “metadata” refers to information about information, such as information about a digitized slide, a virtual slide, a tissue section, and / or a tissue block. Metadata may include information about tissue, patient, slide, etc. As described above, retrieving a digitized slide can be achieved via network-connected communication, connecting a digital storage device containing the digitized slide, directly capturing the digitized slide by a local scanning operation, or any other mechanism for transporting the digitized slide.
[0062] Referring further to Figure 1, in some embodiments, the processor 104 can determine that the digitized slide 112a is associated with at least one member of a set of digitized slides 112a-c. In some cases, the processor 104 can determine, based on metadata associated with the digitized slide 112a, that the digitized slide 112a is a member of a set of digitized slides 112a-c associated with at least one of a patient case 115 or a tissue block 114. As used in this disclosure, “patient case” refers to information related to a patient. For example, a patient case may include diagnosis, prognosis, or other medical records or health data. A patient case may also include demographic information.
[0063] Continuing to refer to Figure 1, the processor 104 can determine at least 116 visualization components of the digitized slides 112a-c. As used herein, “visual components” refers to classifiable characteristics of the digitized slides, such as tissue sections, individual artifacts of associated metadata, or annotations contained in the initial digitized slides. Visualization components can be evaluated and processed using a visualization component evaluation module. This evaluation of the visualization components 116 can be performed by analyzing and determining the visualization components using a machine learning process 120. In non-limiting embodiments, the processor 104 can automatically identify commonalities between the digitized slides, such as similarities between the same source patient, the same type of biopsy material, the same timing, or any other available metadata. Alternatively or additionally, the processor 104 can intentionally combine non-common visualization components if it can exemplify visualizations that are targeted to highlight differences.
[0064] Referring further to Figure 1, in some embodiments, at least one visualization component 116 may include a representation of at least one of a tissue section, an artifact, or an annotation. As used in this disclosure, “artifact” is an element of an image or object being imaged that does not exist naturally or organically. For example, an artifact may include an image of a slide (or material on a slide) rather than a tissue slide having a slide.
[0065] The processor 104 can determine one or more visualization components of a digitized slide using one or more computer processors.
[0066] Referring further to Figure 1, the processor 104 can generate a virtual slide 124a corresponding to the digitized slide 112a. In some cases, the processor 104 can generate the virtual slide 124a based on at least the visualization component 116. As used in this disclosure, “virtual slide” is a digital slide that is at least partially virtual and represents at least a portion of a slide or at least a section of tissue. For example, a virtual slide may include a virtual image. A virtual image may include a portion of a digital slide to correct, for example, dust, artifacts, and / or annotations. A virtual image may include an entire virtual slide or digital representation of a tissue section, for example, when an image representing slide tissue within a serial section is transformed by a re-alignment transformation.
[0067] Views of digitized slides can be customized to remove elements such as annotations, debris, and bubbles. In some embodiments, virtual slides can be created by rearranging (e.g., transforming) pathological specimens within the image to enable ergonomic observation. This rearrangement can be achieved using affine transformations, homographic transformations, etc. Using affine transformations allows for transformations of angles between lines or distances between points, while maintaining the relative ratio of distances between points on a straight line. Affine transformations can be achieved via affine transformation matrices, where extended vectors and matrices are used to represent translations and linear maps of the digitized slides. Then, using matrix multiplication, the affine transformation matrix is transformed by multiplying the initial finite-dimensional representation by an invertible matrix A, the transformation is performed by adding vector b, and the final affine transformation matrix y is created, as shown below.
[0068] y = f(x) = Ax + b
[0069] Affine transformations intentionally preserve collinearity between points, parallelism between lines, convexity of sets, and length ratios while changing orientation, size, or both.
[0070] As an example, and referring further to Figure 1, a simple two-dimensional translational transformation can be described using a vector (V) with two components Vx, Vy that describe the displacement of blocks and / or pixels in an image. More complex transformations, such as rotation, zoom, and warping, can be described using affine transformations. Some typical affine transformations use 4-parameter or 6-parameter affine models.
[0071] For example, a 6-parameter affine transformation can be written as follows:
[0072] x' = ax + by + c
[0073] y' = dx + ey + f
[0074] A four-parameter affine transformation can be written as follows:
[0075] x' = ax + by + c
[0076] y' = -bx + ay + f
[0077] Here, (x, y) and (x', y') are the pixel positions before and after the transformation, respectively. a, b, c, d, e, and f are parameters of the affine motion model.
[0078] Referring further to Figure 1, the processor 104 can display a visualization 125 of the virtual slide 124a. As used herein, “visualization,” when used as a noun, refers to a displayed representation. As used herein, “visualization,” when used as a verb, refers to the process of representation and display. For example, the visualization 125 of the virtual slide 124a may include the presentation of digitized images (e.g., digitized slides and / or virtual slides) on a display. These changes can be made using the virtual slide generator 124 module. In a non-limiting embodiment, the machine learning process 120 can identify a series of individual slide scans that have common characteristics across slides, such as originating from the same patient, the same tissue type, or the same visible lesion. The virtual slide generator 124 can then, relying on the machine learning process 120, combine those slides in a grid format so that the user can see all the common characteristics of the slides in a single view. Special options can be enabled for tissue slides that are part of the same patient case. When slides are for the same patient and originate from the same tissue block, these slides are called sequential section slides. Specific order and layout can be modified by user selection, machine learning training data, or default numerical or time series organization methods. Training data supporting the display format may be supplied from previous user engagements in which a particular layout has been confirmed to be valid by the user. Training data and machine learning are generally described in detail with reference to Figure 2 below. In some cases, the processor 104 may display multiple virtual slides 124a-c, including, for example, virtual slide 124a, which correspond to a set of digitized slides 112a-c.
[0079] Referring further to Figure 1, the processor 104 may be configured to determine at least user-configurable options 126 related to virtual slides 124a-c based on at least the visualization components 116. As used in this disclosure, “user-configurable options” are parameters that can be controlled by the user. For example, in some cases, user-configurable options may include parameters related to at least the visualization components, digitized slides, virtual slides, and a full slide image viewer. In some cases, at least user-configurable options 126 may be determined by accessing a lookup table 127. As used in this disclosure, “lookup table” is a corpus of indexable data. In some cases, the lookup table may include data organized into a table. Alternatively or additionally, the lookup table may include a database or any other data structure. In some versions, the lookup table 127 may be indexed by at least the visualization components 116. In some cases, the processor 104 may be configured to display the visualization 125 using a user display 128. In some cases, the processor 104 may be configured to display the visualization via a full slide image viewer 129. Where used in this disclosure, “whole slide image viewer” is a system, device, and / or module configured to display a whole slide image. In some cases, the whole slide image viewer may include software for viewing digital images of slides and / or tissue sections. In some cases, the whole slide image viewer may be configured to display virtual slides. A typical whole slide image viewer includes QuPath, open-source software available at qupath.github.io. Some versions may present at least user-configurable options 126 to the user via a user display 128 and / or the whole slide image viewer 129.In some cases, the user interface 130 can be used to input, modify, select, etc., at least one user-configurable option 126. The user interface may include, but is not limited to, any user interface described in this disclosure, including, a keyboard, mouse, other peripherals, and remote devices such as smartphones, tablets, and remote computing devices.
[0080] Referring further to Figure 1, in some embodiments, the processor 104 may be further configured to receive requests to customize the visualization 125. In some embodiments, the processor 104 may be further configured to receive requests to display a second visualization 125 with different virtual slides 124b. The second virtual slides 124b may include any virtual slides described herein. In some embodiments, the processor 104 may be configured to determine a recommended set of visualization components 116 to include in the visualization 125. In some cases, the processor 104 may be configured to determine a modified set of visualization components 116 to include in the visualization 125 based on user selection. User selection may include user configuration options 126 or any other user input from, for example, a user interface 130.
[0081] Referring further to Figure 1, in some embodiments, the processor 104 may be configured to determine that the digitized slides 112a-c correspond to slides within a serial section. As used in this disclosure, “slides within a serial section” is a slide on which multiple serial sections are mounted. In some cases, the processor 104 can determine the correspondence between the digitized slides 112a-c and the slides within a serial section based on the presence of multiple serial sections 113a-b within the digitized slide. As used in this disclosure, “serial section” is a tissue section from a single tissue block. In some cases, serial sections may include tissue sections from adjacent locations within the tissue block. Alternatively or additionally, serial sections may include tissue sections taken from locations within the tissue block separated at depths such as 0.01 mm, 0.02 mm, 0.05 mm, 0.1 mm, etc. In some cases, finding a correspondence between digitized slides 112a-c and slides within serial sections may involve the processor 104 classifying multiple serial sections into a reference serial section and at least the remaining serial sections, and the processor 104 aligning at least the remaining serial sections to the reference serial section, resulting in multiple aligned serial sections. In some versions, the visualization 125 of virtual slides 124a-c may include multiple aligned serial sections. In some cases, at least the remaining serial sections can be aligned with the reference serial section by calculating at least an alignment transformation relative to the reference serial section for each of the remaining serial sections independently. As used in this disclosure, “alignment transformation” is a transformation that registers a digital image to a reference digital image, such as an affine transformation. For example, in some cases, an alignment transformation may reorient the data within the digitized slides within serial sections so that the image representing the first serial section is oriented to coincide with the image representing the reference serial section. The alignment transformation may include any transformation described in this disclosure.In some cases, multiple aligned serial sections may be displayed (e.g., using a user display 128) in the same order in which the corresponding serial sections appear on the digital slide. In some cases, multiple aligned serial sections may be spatially arranged within the visualization 125 based on a user-selected configuration 126. In some versions, multiple aligned serial sections may be spatially arranged in a compact representation so that they appear closer to each other in the visualization 125 than they do in the digitized slides 112a-c. In some cases, at least one visualization component 116 may include at least one annotation. In some versions, at least one annotation can be included in the visualization 125 based, for example, a user-configurable filter 126. In some cases, aligning at least the remaining serial sections to a reference serial section may include aligning at least one annotation to a reference serial section.
[0082] Referring further to Figure 1, in some cases, at least an alignment transformation can be calculated based on macro images 131 of, for example, digitized slides 112a-c. As used in this disclosure, “macro image” is a representation of an object, e.g., a slide, at a relatively lower magnification than a non-macro image. For example, in some cases, a macro image can be generated using a macro lens with a lower magnification that allows optical imaging of a substantial portion of the entire slide, e.g., the entire slide. The macro image may be acquired using a macro camera. In some versions, the macro camera and / or macro image 131 may have a field of view covering the entire digitized slides 112a-c and / or each serial section of a plurality of serial sections.
[0083] Referring further to Figure 1, in some embodiments, the processor 104 may be configured to store at least the alignment transformations in a non-volatile storage medium. The processor 104 may be configured to acquire a whole slide image (WSI) 132 via any means described in this disclosure (e.g., a camera, sensor, data communication, network, etc.). As used in this disclosure, “whole slide image” is an image representing at least half of the entire slide. For example, in some cases, the whole slide image 132 may represent the entire slide. In some cases, the whole slide image 132 may include a macro image 131. In some cases, the whole slide image 132 may be generated by aggregating (e.g., stitching) images of a plurality of digitized slides 112a-c. Typically, the whole slide image 132 may have a higher magnification than the macro image 131. The processor 104 may be configured to calculate at least a corresponding high-magnification alignment transformation applicable to the WSI 132 based on at least the stored alignment transformations. The processor 104 may be configured to apply at least a high-magnification alignment transformation to multiple serial sections in the WSI 132 to generate a virtual WSI having multiple aligned serial sections. As used in this disclosure, “virtual whole slide image” represents a whole slide image and is a digital slide that is at least partially virtual. For example, a virtual whole slide image may include a virtual image. A virtual image may include a portion of a digital slide to correct, for example, dust, artifacts, and / or annotations. A virtual image may include a virtual whole slide image or a digital representation of a tissue section, for example, if all representations of all serial sections on the slide have undergone an alignment transformation. In some cases, displaying a visualization 125 of a virtual slide may include displaying a visualization 125 of a virtual WSI.
[0084] Referring further to Figure 1, a slide with multiple serial sections attached may be referred to as a serial section-in-a-slide. Serial sections of tissue include serial sections or neighboring sections of tissue taken from the same tissue block, and the tissue samples are expected to be of the same (or similar) shape, unless the process of attaching them to the slide glass significantly deforms the serial sections. The visualization techniques presented herein facilitate the pathological evaluation of tissue on serial section-in-a-slides and can make the evaluation of such slides less burdensome. In some embodiments, the processor 104 can create a virtual slide with respect to the arrangement of serial sections with altered orientation. In some embodiments, alignment capabilities may be provided, for example, by aligning portions of the virtual slide corresponding to the serial section-in-a-slides with respect to each other so that the serial sections are displayed with the same orientation.
[0085] Referring further to Figure 1, the processor 104 can enable magnification changes within the virtual slide 124. As used herein, “magnification change” refers to adjustments made to the magnification. For example, magnification changes may include adjustments to the relative size of the digital slide images while preserving all proportional and parallel relationships of the digital slide images. In general, magnification can refer to the ability to zoom in or zoom out on a given digital slide image to improve the user's visibility of identified key characteristics. The implementation of these magnification changes may be achieved by the virtual slide generator 124 module relying on the machine learning process 120 to identify and implement appropriate transformation algorithms. These magnification changes may be performed independently of any orientation changes, or they may be combined to align orientation and size simultaneously. In accordance with such embodiments, one or more transformations used to reorient serial sections relative to a reference serial section can be computed using a low-magnification image (e.g., a macro image with a slide glass in a single field of view of a macro camera). The transformation can then be adapted from the low magnification to be used with a higher-magnification image from which a whole slide image (WSI) of higher resolution (e.g., gigapixel units) is captured. In this way, macro virtual images (e.g., low resolution) or WSI virtual images (e.g., high resolution) may be created.
[0086] Referring further to Figure 1, the processor 104 can enable filtering of noise or other undesirable components before generating the virtual slide. For example, a machine learning process 120 or a user can identify and filter components such as annotations, bubbles, and debris during the creation of the virtual slide. To reduce or remove noise in the digital slide image, filtering can be achieved by various adaptive processing methods. In non-limiting embodiments, the adaptive processing may rely on least-squares filters, column filters, Wiener filters, or Kalman filters to perform the noise filtering process.
[0087] Referring further to Figure 1, the processor 104 can use a machine learning process 120 to identify and reduce or remove distortion in the digital slide image. In a non-limiting embodiment, the distortion removal process can transform any lenticular distortion by correcting the identified bends via a digital transformation mechanism. The processor 104 can further enable occlusion correction when desired information is blocked or lost. In a non-limiting embodiment, the processor 104 may rely on the machine learning process 120 to perform generative interpolation, and the training data supporting distortion removal and the occlusion correction machine learning process can be taken up from any communicably connected machine learning device having distortion removal history data, particularly within the field of the digital scan image.
[0088] Referring further to Figure 1, the processor 104 can implement one or more embodiments of “Generative Artificial Intelligence (AI),” a type of AI that uses machine learning algorithms to create, establish, or generate data such as virtual slides in any data structure described herein (e.g., text, images, videos, etc.), similar to one or more provided training examples. In one embodiment, the machine learning process 120 can generate one or more generative machine learning models trained on one or more sets of historical virtual slide generation. One or more generative machine learning models can be configured to generate new examples that are similar to, but not exact replicas of, the training data of one or more generative machine learning models. For example, the data quality or attributes of the generated examples may have similarity to the training data provided to one or more generative machine learning models, and the similarity may relate to underlying patterns, features, or structures found in the provided training data.
[0089] Referring further to Figure 1, a generative machine learning model may, in some cases, include one or more generative models. As described herein, “generative model” refers to a statistical model of a joint probability distribution P(X, Y) on a given observable variable x representing a feature or data that can be directly measured or observed (e.g., a scanned digital slide) and a target variable y representing an outcome or label (e.g., an image noise distribution) that one or more generative models aim to predict or generate. In some cases, a generative model may rely on Bayes’ theorem to find joint probabilities. For example, a naive Bayes classifier may be used by the processor 104 to classify input data, such as scanned slide images, into different classes, such as very noisy, slightly discolored, or visually coherent scanned slide images.
[0090] In a non-restrictive example, further referring to Figure 1, one or more generative machine learning models may include one or more naive Bayes classifiers produced by processor 104 using a naive Bayes classification algorithm. A naive Bayes classification algorithm produces classifiers by assigning class labels to problem instances, which are represented as vectors of element values. The class labels are drawn from a finite set. A naive Bayes classification algorithm may include producing a family of algorithms that, given class variables, assume that the values of certain elements are independent of the values of any other elements. A naive Bayes classification algorithm can be based on Bayes' theorem, expressed as P(A / B) = P(B / A)P(A)÷P(B), where P(A / B) is the probability of hypothesis A given data B, also known as the posterior probability; P(B / A) is the probability of data B assuming hypothesis A is true; P(A) is the probability that hypothesis A is true regardless of the data, also known as the prior probability of A; and P(B) is the probability of data unrelated to the hypothesis. The naive Bayes algorithm can first be generated by converting the training data into a frequency table. The processor 104 can then compute a likelihood table by calculating the probabilities of different data entries and classification labels. The processor 104 can then use the naive Bayes equation to compute the posterior probability of each class. The class with the highest posterior probability is the prediction result.
[0091] Referring further to Figure 2, the naive Bayes classifier may be primarily known as a probabilistic classification algorithm. However, it can also be considered a generative model as described herein due to its ability to model a joint probability distribution P(X, Y) over an observable variable X and a target variable Y. In one embodiment, the naive Bayes classifier is configured to make the assumption that features X are conditionally independent given a class label Y, allowing the generative model to estimate the joint distribution as P(X, Y) = P(Y)ΠiP(Xi|Y), where P(Y) can be the prior probability of the class, and P(X)i |Y) is the conditional probability that each feature is a given class. One or more generative machine learning models, including a naive Bayes classifier, can be trained on labeled training data to estimate the conditional probability P(Xi|Y) and the prior probability P(Y) for each class. Techniques such as, for example, maximum likelihood estimation (MLE) can be used. One or more generative machine learning models, including a naive Bayes classifier, can select a class label y according to the prior distribution P(Y), and for each feature Xi, can sample at least one value according to the conditional distribution P(Xi|y). The sampled feature values can then be combined to form one or more new data instances having the selected class label y. In an unrestricted example, one or more generative machine learning models may include one or more naive Bayes classifiers for generating new examples of virtual slides based on visually coherent historical virtual slides, and the models can be trained on training data that includes multiple labeled classes, e.g., multiple features correlated with a highly noisy virtual slide corrected to a visually coherent level as an output, e.g., user-identified typical visually coherent virtual slide features.
[0092] Referring further to Figure 1, in some cases, one or more generative machine learning models may include a generative adversarial network (GAN). As used in this disclosure, a “generative adversarial network” is a type of artificial neural network having at least two submodels (e.g., neural networks), a generator, and a discriminator that compete with each other in the process by which the generator will eventually learn to generate new data samples, the “generator” being a component of the GAN that learns to create virtual data by incorporating feedback from a “discriminator” configured to distinguish real data from virtual data. In some cases, the generator may learn to cause the discriminator to classify its output as real. In one embodiment, as will be described in more detail with reference to Figure 2, the discriminator may include a supervised machine learning model and the generator may include an unsupervised machine learning model.
[0093] Referring further to Figure 1, the processor 104 can be enabled to combine one or more digitized slide images to create an enhanced image. Using a machine learning process 120, the processor 104 can identify images of the same sample using common metadata and / or unique image properties, and then combine the images to create a more exemplary virtual slide. Various techniques are available for this form of image stacking. In a non-limiting embodiment, the processor 104 can use extended depth of field (EDoF) techniques to determine the size of the collected image stack to improve the focus of the final virtual slide. The processor 104 can further increase the contrast in the digitized slide by classifying each pixel in the image based on its contrast level. After classification, the processor 104 can then perform edge discovery operations to enhance the image by identifying boundaries, making the boundaries sharper, and making any enclosed shapes sharper. In some implementations, contrast improvement can be performed using interpolation filters, such as sub-pixel prediction filters. Interpolation filters can include, as non-limiting examples, any filters described above, and low-pass filters can be used by an upsampling process, without limitation, to initialize pixels between pixels in the pre-scaling block and / or frame to zero, and then capture the output of the low-pass filter. Alternatively or additionally, any lumar sample interpolation filtering can be used. Luminance sample interpretation may include calculating an interpolated value in a half-sample interpolation filter index that falls between two consecutive sample values of the unscaled sample array. The calculation of the interpolated value may be performed by looking up coefficients and / or weights from a lookup table, without limitation. The selection of the lookup table may be performed as a function of the coding unit motion model and / or scaling ratio, as determined, for example, using scaling constants as described above.The calculation may involve performing a weighted sum of adjacent pixel values, the weights of which are retrieved from a lookup table. The calculated values may be shifted alternatively or additionally. Those skilled in the art will recognize, upon reviewing the entirety of this disclosure, various alternative or additional embodiments that may be used for interpolation filters.
[0094] Continuing to refer to Figure 1, in one embodiment, the classifier may include one or more discriminative models, i.e., models of the conditional probability P(Y|X=x) of a target variable Y given an observed variable X. In one embodiment, the discriminative model may learn the boundaries between classes or labels in a given training data. In an unrestricted example, the classifier may include one or more classifiers, as further described below with reference to Figure 2, that can distinguish between true and false in the context of generated data, such as a generated virtual slide, for example, without limitation. In some cases, the computing device may implement one or more classification algorithms, such as support vector machines (SVMs), logistic regression, or decision trees, to define the decision boundary.
[0095] In a non-limiting example, and referring further to Figure 1, the GAN's generator could play a role in creating synthetic data that resembles an actually generated virtual slide. In some cases, the GAN may be configured to take scanned digital slides, such as images of a kidney biopsy, as input and generate corresponding virtual slides that align the kidney biopsy with information that describes or evaluates the performance of one or more clarity aspects of the images, particularly with respect to diseases that can only be perceived with visually consistent clarity. Meanwhile, the GAN's classifier could evaluate the reliability of the generated content by comparing it to past user-rated successful kidney biopsies. For example, the classifier could distinguish between real content and generated content and provide feedback to the generator to improve model performance.
[0096] Continuing to refer to Figure 1, in other embodiments, one or more generative models may also include variational autoencoders (VAEs). As used in this disclosure, a “variational autoencoder” is an autoencoder (i.e., an artificial neural network architecture) whose coding distribution is normalized during the model training process to ensure that its latent space contains desired properties that enable the generation of new data samples. In one embodiment, the VAE may include, but is not limited to, pre- and noise distributions trained using expectation-maximizing meta-algorithms such as stochastic PCA, sparse coding, etc., respectively. In an unrestricted example, the VAE may use a neural network as an amortized technique to jointly optimize across input data and output a set of parameters of the corresponding variational distribution when mapping from a known input space to a lower-dimensional latent space. In addition to, or instead of, the VAE may include a second neural network, for example, a decoder, which is configured to map from the latent space to the input space.
[0097] In a non-limiting example, further referring to Figure 1, the VAE may be used by processor 104 to model complex relationships between various types of digital scans or associated metadata. In some cases, the VAE can encode the input data into a latent space and capture a visually clear virtual slide. Such an encoding process may include learning one or more probabilistic mappings from observed digital slide scans to low-dimensional latent representations. The latent representations can then be decoded back into the original data space, and thus the digital slide scan can be reconstructed. In some cases, such a decoding process may allow the VAE to generate new examples or variations that match the learned distribution, including digital slide scan outputs of improved clarity.
[0098] Referring further to Figure 1, the processor 104 may be configured to configure a generative machine learning model to analyze input data, such as noisy digital slide scans, into one or more predetermined templates, such as visually clear, user-facilitated virtual slides, that represent the correct virtual slide format and clarity as described above, thereby enabling the processor 104 to identify inconsistencies or deviations from virtual slide layout, format, focus, or other visibility characteristics. In some cases, the processor 104 may be configured to identify specific errors in the received digitized slides 112. In a non-limiting example, the processor 104 may be configured to implement a generative machine learning model to incorporate additional models for aligning and assembling virtual slides that include multiple digital slide sources as input. In some cases, errors may be categorized into different categories or severity levels. In a non-limiting example, some errors may be considered minor, and a generative machine learning model, such as a GAN, may be configured to generate virtual slides with only minor adjustments, while others may be more significant and require more substantial corrections. In some embodiments, the processor 104 may be configured to flag or highlight blurred or distorted virtual slide images and to modify the level of magnification and / or noise filtering implemented to be presented directly on the input digitized slide 112 using one or more generative machine learning models described herein. In some cases, one or more generative machine learning models may be configured to generate and output indicators such as visual indicators and / or any other indicators described herein. Such indicators may be used to signal detected errors as described herein.
[0099] Referring further to Figure 1, the processor 104 may, in some cases, be configured to identify and rank common defects (e.g., blurring, glare, discoloration, misalignment, orientation, etc.) detected across multiple digitized slide 112 storage locations. Such a ranking process can enable prioritization of the most common problems and allow the user or processor 104 to address issues in virtual slide display. In a non-limiting example, detected glare appearing only in locations of digitized slide 112 that do not interfere with biopsy analysis may be ranked as less important compared to detected blurred or obscured biopsy images caused by image pixelation that interfere with effective user analysis of the slide.
[0100] Referring further to Figure 1, in some cases, one or more generative machine learning models may be applied by the processor 104 to edit, modify, or manipulate existing data or data structures. In one embodiment, the output of training data used to train one or more generative machine learning models, such as GANs described herein, may include modifications in the analysis of previous digitized slides 112 declared correct and valid by previous users, such as interpolating image data to improve clarity, to visually demonstrate the modified digitized slides 112. In some cases, for example, if a particular user prefers a specific layout and grouping method for a given biopsy type, a specific type of virtual slide can be synchronized with a given digitized slide 112, and the processor 104 can automatically bias the digitized slides 112 to match the given biopsy type.
[0101] Continuing to refer to Figure 1, other typical embodiments of generative machine learning models may include, but are not limited to, long-short-term memory networks (LSTMs), (generative pre-trained) transformer (GPT) models, mixed density networks (MDNs), and the like. Those skilled in the art will recognize, upon reviewing the entirety of this disclosure, a variety of generative machine learning models that can be used to generate formatted virtual slide outputs based on the input of retrieved digitized slides 112.
[0102] Continuing to refer to Figure 1, in further non-limiting embodiments, the machine learning process 120 may be further configured to generate a multi-model neural network combining various neural network architectures described herein. In some cases, the multi-model neural network may also include a hierarchical multi-model neural network, which may include multiple layers of integration. For example, different models may be combined at different stages of the network. A convolutional neural network (CNN) may be used for image feature extraction, followed by an LSTM for sequential pattern recognition, and finally an MDN for probabilistic modeling. Other typical embodiments of multi-model neural networks may include, but are not limited to, ensemble-based multi-model neural networks, cross-modal fusion, adaptive multi-model networks, and the like. Those skilled in the art will, upon reviewing the entirety of this disclosure, recognize various generative machine learning models that may be used to modify the digitized slide 112 described herein. Those skilled in the art will, upon reviewing the entirety of this disclosure, recognize various multi-model neural networks and combinations thereof that may be implemented by the processor 104 consistent with this disclosure.
[0103] Referring further to Figure 1, if the processor 104 detects that the digitized slide 112 may contain some degree of blurring, the processor 104 may implement one or more correction mechanisms to improve clarity. In a non-limiting embodiment, the processor 104 may use a Fast Fourier Transform (FFT) algorithm to compute the Discrete Fourier Transform (DFT) of the sequence. Using this frequency-domain transformation, the processor 104 may first transform the blurred digitized slide image into a DFT simplification matrix, and then apply the FFT to generate a resulting image with improved clarity. As will be explained with reference to Figures 3 and 4 below, clarity improvement can also be performed using a convolutional neural network.
[0104] Referring further to Figure 1, in summary, generating and displaying virtual slides using the techniques of the present disclosure includes, but is not limited to, (1) ease of visualization of serial sections placed on the same slide, (2) removal or reduction of artifacts such as dust, bubbles, and background smudges (or otherwise, allowing adjustment of how such artifacts appear relative to the rest of the image), (3) the ability to change the relative placement of serial sections while creating virtual slides, (4) reduced cognitive load when evaluating morphological differences resulting from different orientations between serial sections within a slide, and (5) ease of visualization of serial sections within and between slides derived from the same paraffin block stained with different stains for comparative evaluation of morphological features across stains.
[0105] Referring here to Figure 2, a typical embodiment of a machine learning module 200 capable of performing one or more machine learning processes described herein is shown. The machine learning module 200 can use the machine learning processes to perform decision, classification, and / or analysis steps, methods, processes, etc., as described herein. As used herein, “machine learning process” is a process that automatically uses training data 204 to generate algorithms instantiated with hardware or software logic, data structures, and / or functions, which are executed by a computing device / module to produce an output 208 that produces given data provided as input 212. This is in contrast to non-machine learning software programs, where the commands to be executed are predetermined by the user and written in a programming language.
[0106] Referring further to Figure 2, as used herein, “training data” is data containing correlations that can be used by a machine learning process to model relationships between two or more categories of data elements. For example, but not limited to, training data 204 may contain multiple data entries, also known as “training examples,” where each entry represents a set of data elements recorded, received, and / or generated together, and the data elements may be correlated by the presence of common elements in a given data entry, proximity in a given data entry, etc. Multiple data entries within training data 204 may exhibit one or more tendencies of correlations between categories of data elements. For example, but not limited to, higher values of a first data element belonging to a first category of data elements may tend to correlate with higher values of a second data element belonging to a second category of data elements, showing a possible proportional or other mathematical relationship linking values belonging to the two categories. Multiple categories of data elements can be associated with training data 204 according to various correlations. Correlation can indicate causal and / or predictive links between categories of data elements, which can be modeled as relationships such as mathematical relationships by a machine learning process, as will be described in more detail below. The training data 204 can be formatted and / or organized by categories of data elements, for example, by associating data elements with one or more descriptors corresponding to categories of data elements. As a non-limiting example, the training data 204 may include data entered in a standardized format by a person or process, such that entries of a given data element in a given field in a form can be mapped to one or more descriptors of categories. Elements within the training data 204 may be linked to category descriptors by tags, tokens, or other data elements.For example, but not limited to, the training data 204 can be provided in a fixed-length format, a format that links the data location to categories such as CSV (Comma-Separated Value) format, and / or a self-describing format such as Extensible Markup Language (XML), JavaScript® Object Notation (JSON), allowing a process or device to discover the data categories.
[0107] Alternatively or additionally, continuing to refer to Figure 2, the training data 204 may include one or more unclassified elements. That is, the training data 204 may not be formatted, or may not contain descriptors for some elements of the data. Machine learning algorithms and / or other processes can sort the training data 204 according to one or more classifications, for example, using natural language processing algorithms, tokenization, or detection of correlation values in the raw data. Categories can be generated using correlation and / or other processing algorithms. As a non-limiting example, in a corpus of text, phrases constituting a number "n" of compound words, such as nouns modified by other nouns, may be identified according to the statistically significant frequency of n-grams containing such words in a particular order. Such n-grams may be classified as elements of language, such as "words," which are tracked as well as single words, and new categories can be generated as a result of statistical analysis. Similarly, in a data entry containing some text data, people's names may be identified by referring to lists, dictionaries, or glossaries, enabling ad-hoc classification by machine learning algorithms and / or automated association of data in the data entry with descriptors or a given format. The ability to automatically classify data entries makes it possible to apply the same training data 204 to two or more different machine learning algorithms, as will be described in more detail below. The training data 204 used by the machine learning module 200 can correlate any input data, as described in this disclosure, to any output data, as described in this disclosure. As a non-limiting exemplary example, a set of retrieved digitized slide inputs used in a past virtual slide generation effort can be used as training data to generate subsequent virtual slides more efficiently and accurately based on similar inputs. In certain non-limiting embodiments, subsequent lung tissue virtual slides can be generated using pre-generated lung tissue virtual slides, particularly if the machine learning module 204 can identify a common disease or condition based on past efforts that have shown their descriptors to be productive and accurate.
[0108] Referring further to Figure 2, one or more supervised and / or unsupervised machine learning processes and / or models can be used to filter, sort, and / or select the training data, and such models may include, but are not limited to, a training data classifier 216. The training data classifier 216 may include the “classifier” as used in this disclosure, which is a machine learning model as defined below, such as a mathematical model, neural network, or data structure that represents and / or uses a program, generated by a machine learning algorithm known as a “classification algorithm,” which is described further below, that classifies an input into a category or bin of data and outputs the category or bin of data and / or a label associated therewith. The classifier may be configured to output at least data that labels or identifies datasets, etc., that have been clustered together and found to be close under a distance metric, as described below. The distance metric may include, but are not limited to, any norm, such as the Pythagorean norm. The machine learning module 200 may generate a classifier using a classification algorithm, which is defined as a process by which a computing device and / or any module and / or component operating therein derives a classifier from the training data 204. Classification can be performed using, but is not limited to, linear classifiers such as logistic regression and / or Naive Bayes classifiers, nearest neighbor classifiers such as k-nearest neighbor classifiers, support vector machines, least squares support vector machines, Fisher's linear discriminant, quadratic classifiers, decision trees, boost trees, random forest classifiers, learning vector quantization, and / or neural network-based classifiers. As a non-limiting example, the training data classifier 216 can classify elements of the training data into a specific type of digitized slide biopsy sample, where a particular subpopulation of biopsy slides clearly identifies a specific hematological disorder that distinguishes a particular biopsy slide from a multitude of liquid biopsies.
[0109] Referring further to Figure 2, training examples for use as training data may be selected from a population of potential examples according to a cohort related to the analytical problem or classification task to be solved. Alternatively or additionally, training data may be selected to span a set of possible situations or inputs for the machine learning model and / or process encountered during deployment. For example, for each category of input data to a machine learning process or model that may exist within a range of values in a population of phenomena such as images, user data, process data, and physical data, a computing device, processor, and / or machine learning model may select training examples that represent each possible value and / or a representative sample of values in such a range. The selection of representative samples may include, for example, selecting training examples in proportion to a statistically determined and / or predicted distribution of values according to relative frequency, such that values that are encountered more frequently in the population of data thus analyzed are represented by more training examples than values that are encountered less frequently. Alternatively or additionally, the set of training examples may be compared against a set of representative values in a database and / or presented to the user, so that the process can automatically or via user input detect one or more values that are not included in the set of training examples. The processor can automatically generate missing training examples. This can be done by receiving or searching for missing input and / or output values and correlating the missing input and / or output values with the corresponding output and / or input values collated within the data record, provided by the user and / or other devices.
[0110] Referring further to Figure 2, the processor may be configured to sanitize the training data. As used in this disclosure, “sanitizing” training data is a process from which training examples that hinder the convergence of a machine learning model and / or processing to useful results are removed. For example, but not limited to, training examples may include input and / or output values that deviate from values typically encountered, so that a machine learning algorithm using the training examples fits less likely quantities as input and / or output. For example, values exceeding a threshold number of standard deviations from the mean, mean, or expected value may be removed. Alternatively or additionally, one or more training examples may be identified as having low-quality data, “low-quality” being defined as having a signal-to-noise ratio below a threshold.
[0111] As a non-limiting example, referring further to Figure 2, images used to train an image classifier or other machine learning model, and / or processes that take images as input or produce images as output, may be rejected if the image quality falls below a threshold. For example, but not limited to, computing devices, processors, and / or modules can perform blur detection and reject one or more blur detections, as a non-limiting example, by performing an approximation such as a Fourier transform or fast Fourier transform (FFT) of the image and analyzing the distribution of low and high frequencies in the frequency domain depiction of the resulting image, where the number of high-frequency values below a threshold level may indicate blur. As a further non-limiting example, blur detection may be performed by convolving the image or the channels of the image etc. with a Laplacian kernel. This can produce a numerical score that reflects some rapid changes in intensity shown in the image, such that a high score indicates clarity and a low score indicates blur. Blur detection can be performed using gradient-based operators, which measure the operator based on the gradient or first derivative of an image, based on the hypothesis that abrupt changes indicate sharp edges in the image and therefore indicate a lower degree of blur. Blur detection can also be performed using wavelet-based operators, which take advantage of the ability of discrete wavelet transform coefficients to describe the frequency and spatial content of an image. Blur detection can be performed using statistics-based operators, which take advantage of several image statistics, such as texture descriptors, to calculate the focus level. Blur detection can also be performed by using discrete cosine transform (DCT) coefficients to calculate the focus level of an image from its frequency content.
[0112] Continuing to refer to Figure 2, the processor may be configured to presuppose one or more training examples. For example, if a machine learning model and / or process has one or more inputs and / or outputs that send, or receive, which require a certain number of bits, samples, or other data units, then the elements of one or more training examples used as inputs and / or outputs, or compared to them, can be modified to have such a number of data units. For example, the processor can convert a smaller number of units, such as in a low-pixel-count image, into a desired number of units, for example, by upsampling and interpolation. As a non-limiting example, a low-pixel-count image may have 100 pixels, but the desired number of pixels may be 128. The processor can interpolate the low-pixel-count image to convert 100 pixels into 128 pixels. It should also be noted that those skilled in the art will know, upon reading this disclosure, various methods for interpolating a smaller number of data units, such as samples, pixels, or bits, into a desired number of such units. In some cases, a set of interpolation rules may be trained by a set of very detailed inputs and / or outputs, as well as a corresponding set of inputs and / or outputs downsampled to fewer units, and a neural network or other machine learning model trained to predict interpolated pixel values using the training data. As a non-limiting example, sample inputs and / or outputs, such as a sample picture with sample augmented data units (e.g., pixels added between the original pixels), can be input to a neural network or machine learning model and output a pseudo-replica sample picture with dummy values assigned to the pixels between the original pixels based on the set of interpolation rules. As a non-limiting example, in the context of an image classifier, a machine learning model may have a set of interpolation rules trained by a set of very detailed images and images downsampled to fewer pixels, and a neural network or other machine learning model trained using those examples to predict interpolated pixel values in a face image context.As a result, an input having sample-expanded data units (added between the original data units and containing dummy values) may be passed through a trained neural network and / or model, which may fill in values to replace the dummy values. Alternatively or additionally, processors, computing devices, and / or modules may utilize sample-expanding methods, low-pass filters, or both. As used in this disclosure, a “low-pass filter” is a filter that allows signals below a selected cutoff frequency to pass through and attenuates signals above a cutoff frequency. The exact frequency response of the filter depends on the filter design. Computing devices, processors, and / or modules may use averaging, such as luma or chroma averaging in the image, to fill in the data units between the original data units.
[0113] In some embodiments, continuing with reference to Figure 2, a computing device, processor, and / or module can downsample elements of a training example to a desired number of fewer data elements. As a non-limiting example, a high-pixel-count image may have 256 pixels, but the desired number of pixels may be 128. A processor can downsample a high-pixel-count image to convert 256 pixels to 128 pixels. In some embodiments, a processor may be configured to perform downsampling on data. Downsampling, also known as decimation, can involve removing every Nth entry in a set of samples, all entries except the Nth, and so on, a process known as "compression," which can be performed, for example, by an N-sample compressor implemented using hardware or software. Anti-aliasing and / or anti-imaging filters and / or low-pass filters can be used to remove the side effects of compression.
[0114] Referring further to Figure 2, the machine learning module 200 may be configured to perform a lazy learning process 220 and / or protocol, which may alternatively be called a “lazy loading” or “invoke on demand” process and / or protocol, and may be a process in which machine learning is performed upon receiving an input that will be transformed into an output by combining the input and training set to derive an algorithm used to generate an output on demand. For example, an initial set of simulations may be performed to cover an initial heuristic and / or “first guess” on the output and / or relationships. As a non-limiting example, the initial heuristic may include ranking the associations between the input and elements of the training data 204. The heuristic may include selecting some of the highest-ranking associations and / or elements of the training data 204. Lazy learning can implement any suitable lazy learning algorithm, including but not limited to the K-nearest neighbor algorithm and the lazy naive Bayes algorithm. Those skilled in the art will recognize, upon considering the entirety of this disclosure, a variety of lazy learning algorithms that can be applied to produce the output described herein, including but not limited to lazy learning applications of machine learning algorithms, as described in more detail below.
[0115] Alternatively or additionally, referring again to Figure 2, a machine learning model 224 can be generated using a machine learning process such as those described in this disclosure. As used in this disclosure, “machine learning model” is a data structure that represents and / or instantiates a mathematical and / or algorithmic representation of a relationship between inputs and outputs, which is generated and stored in memory using any machine learning process, including but not limited to any process such as those described above. Inputs are submitted to the generated machine learning model 224, and the machine learning model generates outputs based on the derived relationships. For example, a linear regression model generated using a linear regression algorithm may compute a linear combination of the input data using coefficients derived during the machine learning process to compute the output data. As a further non-limiting example, the machine learning model 224 may be generated by creating an artificial neural network, such as a convolutional neural network, which includes an input layer of nodes, one or more hidden layers, and an output layer of nodes. The connections between nodes can be created through a "training" process, where elements from a set of 204 training data are applied to the input nodes, and then, using an appropriate training algorithm (e.g., Levenberg-Marquardt, conjugate gradient, simulated annealing, or other algorithms), the connections and weights between nodes in adjacent layers of the neural network are adjusted to produce the desired values in the output nodes. This process is sometimes called deep learning.
[0116] Referring further to Figure 2, the machine learning algorithm may include at least a supervised machine learning process 228. At least a supervised machine learning process 228 as defined herein includes an algorithm that receives a training set relating some inputs to some outputs and attempts to generate one or more data structures that represent and / or instantiate one or more mathematical relationships relating the inputs to the outputs, each of which is optimal according to some criteria specified for the algorithm using some scoring function. For example, the supervised learning algorithm may include, as input, digitized slides retrieved as described above, and as output, virtual slides formatted as described above, and a scoring function that represents a desired form of the relationship to be detected between the inputs and outputs. The scoring function may, for example, attempt to maximize the probability that a given combination of inputs and / or elemental inputs is related to a given output and minimize the probability that a given input is not related to a given output. The scoring function may be expressed as a risk function representing the algorithm's "expected loss" with respect to the relationship between inputs and outputs, the loss is calculated as an error function representing the degree to which the predictions generated by the relationship are inaccurate compared to a given input-output pair provided to the training data 204. Those skilled in the art will recognize, upon examining the entirety of this disclosure, various possible variations of at least the supervised machine learning process 228 that can be used to determine the relationship between inputs and outputs. The supervised machine learning process may include the classification algorithm defined above.
[0117] Referring further to Figure 2, training a supervised machine learning process may include, but are not limited to, iteratively updating coefficients, biases, and weights based on an error function, expected loss, and / or risk function. For example, the output generated by the supervised machine learning model using the input examples in the training examples may be compared to the output examples from the training examples. An error function can be generated based on the comparison, which may include any error function suitable for use in any machine learning algorithm described herein, such as squaring the difference between one or more sets of comparison values. Such an error function may be used to update one or more weights, biases, coefficients, or other parameters of the machine learning model via any suitable process, including, but are not limited to, a gradient descent process, a least-squares process, and / or other processes described herein. This may be done iteratively and / or recursively to gradually adjust such weights, biases, coefficients, or other parameters. The updates may be performed in a neural network using one or more backpropagation algorithms. The iterative and / or recursive updates of weights, biases, coefficients, or other parameters described above can be performed until the currently available training data is exhausted and / or until a convergence check is passed, where “convergence check” is a check of a condition selected as indicating that the model and / or its weights, biases, coefficients, or other parameters have reached a certain degree of accuracy. A convergence check can, for example, compare the difference between two or more consecutive error or error function values, where a difference below a threshold amount can be employed to indicate convergence. Alternatively or additionally, one or more error and / or error function values evaluated in a training iteration can be compared to a threshold.
[0118] Referring further to Figure 2, the processor may be configured to execute the methods, process steps, sequences of process steps and / or algorithms described with reference to this figure in any order and in any number of iterations. For example, the processor may be configured to repeatedly execute a single process, sequence and / or algorithm until a desired or instructed result is achieved. Iterations of a process or sequence of processes are executed iteratively and / or recursively using the output of the previous iteration as input to the subsequent iteration, aggregating the inputs and / or outputs of the iterations to produce an aggregated result, decreasing or decrementing one or more variables such as global variables, and / or dividing a larger processing task into a set of smaller iteratively addressed processing tasks. The processor may execute any process, sequence of processes, or algorithm in parallel, such as executing a process two or more times simultaneously and / or substantially simultaneously using two or more parallel threads, processor cores, etc. Task division between parallel threads and / or processes can be performed according to any protocol suitable for task division between iterations. Those skilled in the art will, upon reviewing the entirety of this disclosure, recognize a variety of ways in which processes, sequences of processes, processing tasks, and / or data can be subdivided, shared, or otherwise processed using iterative, recursive, and / or parallel processing.
[0119] Referring further to Figure 2, the machine learning process may include at least an unsupervised machine learning process 232. As used herein, the unsupervised machine learning process is a process that derives inferences within a dataset regardless of labels. As a result, the unsupervised machine learning process is free to discover any structures, relationships, and / or correlations provided to the data. The unsupervised process 232 may not even require a response variable. The unsupervised process 232 can be used to find patterns and / or inferences between variables of interest, determine the degree of correlation between two or more variables, and so on.
[0120] Referring further to Figure 2, the machine learning module 200 can be designed and configured to create a machine learning model 224 using techniques for developing linear regression models. Linear regression models can include ordinary least squares regression, which aims to minimize the square of the difference between the predicted and actual results according to a suitable norm for measuring such differences (e.g., the vector space distance norm). To improve minimization, the coefficients of the resulting linear equation can be modified. Linear regression models can include ridge regression, where the function to be minimized includes a least squares function and a term that multiplies the square of each coefficient by a scalar quantity to penalize large coefficients. Linear regression models can include least absolute contraction and selection operator (LASSO) models, where ridge regression is combined with multiplying the least squares term by a coefficient obtained by dividing 1 by twice the number of samples. Linear regression models can include multitask LASSO models, where the norm applied to the least squares term of the LASSO model is the Frobenius norm, which corresponds to the square root of the sum of the squares of all terms. The linear regression model may include elastic net models, multitask elastic net models, minimum angle regression models, LARS lasso models, orthogonal matching tracking models, Bayesian regression models, logistic regression models, stochastic gradient descent models, perceptron models, passive attack algorithms, robust regression models, Huber regression models, or any other suitable model that a person skilled in the art could conceive of when considering the entire disclosure. In one embodiment, the linear regression model can be generalized to a polynomial regression model, thereby finding a polynomial (e.g., a quadratic, cubic, or higher-order equation) that provides the best predictive / actual output fit. As will be apparent to a person skilled in the art when considering the entire disclosure, similar methods as described above can be applied to minimize the error function.
[0121] Continuing to refer to Figure 2, machine learning algorithms can include, but are not limited to, linear discriminant analysis. Machine learning algorithms can include quadratic discriminant analysis. Machine learning algorithms can include kernel ridge regression. Machine learning algorithms can include support vector machines (including, but not limited to, support vector classification-based regression processes). Machine learning algorithms can include stochastic gradient descent algorithms, including classification and regression algorithms based on stochastic gradient descent. Machine learning algorithms can include nearest neighbor algorithms. Machine learning algorithms can include various forms of latent space regularization, such as variational regularization. Machine learning algorithms can include Gaussian processes, such as Gaussian process regression. Machine learning algorithms can include cross-decomposition algorithms, including partial least squares and / or canonical correlation analysis. Machine learning algorithms can include naive Bayes methods. Machine learning algorithms can include decision tree-based algorithms, such as decision tree classification or regression algorithms. Machine learning algorithms can include ensemble methods, such as bagging meta-estimators, randomized tree forests, AdaBoost, gradient tree boosting, and / or voting classifier methods. Machine learning algorithms can include neural network algorithms, including convolutional neural network processes.
[0122] Referring further to Figure 2, machine learning models and / or processes can be deployed or instantiated by being incorporated into programs, devices, systems, and / or modules. For example, but not limited to, machine learning models, neural networks, and / or some or all of their parameters can be stored and / or deployed in any memory or circuit. Parameters such as coefficients, weights, and / or biases may be stored as circuit-based constants, such as arrays of wires and / or binary inputs and / or outputs set to logical "1" and "0" voltage levels in a logic circuit to represent numbers in any suitable encoding system, including two's complement, or they may be stored in any volatile and / or non-volatile memory. Similarly, mathematical operations and inputs and / or outputs of data to and from models, neural network layers, etc., can be instantiated in the form of machine code such as instructions, binary arithmetic code instructions, assembly language, or any higher-order programming language in hardware circuits and / or firmware. Machine learning processes and / or models can be instantiated using any technology for hardware and / or software instantiation of memory, instructions, data structures, and / or algorithms, which includes, but not limited to, the manufacture and / or configuration of non-reconfigurable hardware elements, circuits, and / or modules such as ASICs, but not limited to, the manufacture and / or configuration of reconfigurable hardware elements, circuits, and / or modules such as FPGAs, but not limited to, non-reconfigurable and / or non-configurable non-rewritable memory elements, circuits, and / or modules such as non-rewritable ROMs, reconfigurable and / or rewritable memory elements, circuits, and / or modules such as other memory technologies described in this disclosure, and / or any combination of the manufacture and / or configuration of any computing devices and / or components described in this disclosure.Such deployments and / or instantiated machine learning models and / or algorithms can receive input from any other processes, modules, and / or components described in this disclosure and generate outputs to any other processes, modules, and / or components described in this disclosure.
[0123] Continuing to refer to Figure 2, any process of training, retraining, deploying, and / or instantiating any machine learning model and / or algorithm can be performed and / or repeated after initial deployment and / or instantiation to modify, improve, and / or enhance the machine learning model and / or algorithm. Such retraining, deployment, and / or instantiation may be performed as a periodic or regular process, such as retraining, deployment, and / or instantiation in a periodic elapsed period, after some measure of quantity, such as the number of bytes of data processed or other measures, the number of uses or executions of the processes described herein, and / or according to a software, firmware, or other update schedule. Alternatively or additionally, retraining, deployment, and / or instantiation may be event-based, but not limited to, triggered by user input exhibiting suboptimal or other problematic performance, and / or by automated field inspection and / or audit processes, and the output of the machine learning model and / or algorithm, and / or its error and / or error function may be compared to any threshold, convergence check, etc., and / or the output of the processes described herein may be compared to similar threshold, convergence check, etc. Event-based retraining, deployment, and / or instantiation may, alternatively or additionally, be triggered by the receipt and / or generation of one or more new training examples. Several new training examples can be compared to a pre-configured threshold, and exceeding this threshold can trigger retraining, deployment, and / or instantiation.
[0124] Referring further to Figure 2, retraining and / or additional training can be performed using any current or previously deployed version of the machine learning model and / or algorithm as a starting point, and using any process for training described above. Training data for retraining may be collected, preprocessed, sorted, classified, sanitized, or otherwise processed in accordance with any process described herein. Training data may include, but is not limited to, training examples that include inputs and correlated outputs used, received, and / or generated from any version of any system, module, machine learning model or algorithm, apparatus, and / or method described herein. Such examples may be modified and / or labeled according to user feedback or other processes to show desired results and / or have actual or measured results from processes modeled and / or predicted by the system, module, machine learning model or algorithm, apparatus, and / or method as “desired” results compared to the output of the training process as described above. Reconfiguration can be performed using any reconfiguration and / or rewriting of reconfigurable and / or rewritable circuitry and / or memory elements. Alternatively, the rearrangement may be carried out by generating new hardware and / or software components, circuits, instructions, etc., which may be added to and / or replace existing hardware and / or software components, circuits, instructions, etc.
[0125] Referring further to Figure 2, one or more of the processes or algorithms described above can be performed by at least one dedicated hardware unit 236. For the purposes of this figure, “dedicated hardware unit” refers to hardware components, circuits, etc. other than the main control circuit and / or processor that perform the method steps described herein, which are specifically designated or selected to perform one or more particular tasks and / or processes described with reference to this figure, such as pre-conditioning and / or sanitizing training data, and / or training machine learning algorithms and / or models. The dedicated hardware unit 236 may include, but is not limited to, a hardware unit that can perform iterative or high-volume computations, such as matrix-based computations for updating or adjusting parameters, weights, coefficients, and / or biases of machine learning models and / or neural networks, using pipelined, parallel processing, etc., efficiently. Such a hardware unit may be optimized for such processes by including dedicated circuits for matrix and / or signal processing operations, which include, for example, multiple arithmetic and / or logic circuit units, such as multipliers and / or adders, that can operate concurrently and / or in parallel. Such dedicated hardware units 236 may include, but are not limited to, a graphical processing unit (GPU), a dedicated signal processing module, an FPGA, or other reconfigurable hardware configured to instantiate parallel processing units for one or more specific tasks, and a computing device, processor, apparatus, or module may be configured to instruct one or more dedicated hardware units 236 to perform one or more operations described herein, such as evaluating model and / or algorithm outputs, one-time or iterative updates to parameters, coefficients, weights, and / or biases, and / or any other operations such as vector and / or matrix operations described herein.
[0126] Referring here to Figure 3, a typical embodiment of the neural network 300 is shown. The neural network 300, also known as an artificial neural network, is a network of “nodes,” or data structures having one or more inputs, one or more outputs, and functions that determine the output based on the input. Such nodes can be organized into a network such as a convolutional neural network, which includes, but is not limited to, an input layer of node 304, one or more hidden layers 308, and an output layer of node 312. In an indefinite embodiment, the input layer of node 304 may include any remote display to which a user input may be provided, while the output layer of node 312 may include a local device if it has the processing power to support the required machine learning process, or the output layer of node 312 may refer to a centralized network-connected processor capable of remotely executing the machine learning process described herein. Connections between nodes can be created through a “training” process in which elements from a training dataset are applied to input nodes, and then, using an appropriate training algorithm (e.g., Levenberg-Marquardt, conjugate gradient, simulated annealing, or other algorithms), the connections and weights between nodes in adjacent layers of the neural network are adjusted to produce desired values in the output nodes. Connections may be made only from input nodes to output nodes in a “feedforward” network, or the output of one layer may be fed back to the inputs of the same or different layers in a “recurrent network.” As a further non-limiting example, a neural network may include a convolutional neural network having an input layer of a node, one or more hidden layers, and an output layer of a node. As used in this disclosure, a “convolutional neural network” is a neural network in which at least one hidden layer is a convolutional layer that convolves the input to that layer with a subset of inputs known as a “kernel,” along with one or more additional layers such as a pooling layer, a fully connected layer, etc.
[0127] Referring here to Figure 4, a typical embodiment of node 400 of a neural network is shown. A node may contain multiple inputs xi that can receive inputs to the neural network containing the node and / or numerical values from other nodes. A node may perform one or more activation functions to produce its output given one or more inputs, which may include, but are not limited to, a binary step function that compares the input to a threshold and outputs either a logical 1 or logical 0 output or equivalent, a linear activation function whose output is directly proportional to the input, and / or a nonlinear activation function whose output is not proportional to the input. A nonlinear activation function may, but is not limited to, the form given an input x Sigmoid function and format of JPEG2026513220000002.jpg927 The tanh (hyperbolic tangent) function of JPEG2026513220000003.jpg916. The tanh derivative of JPEG2026513220000004.jpg529, etc. Normalized linear unit function such as JPEG2026513220000005.jpg531, For a “leaky” and / or “parametric” normalized linear unit function such as JPEG2026513220000006.jpg434, for some value of α (this function may be replaced and / or weighted by its own derivative in some embodiments) Exponential linear unit function such as JPEG2026513220000007.jpg1052, input to instantaneous layer is x i When Softmax function for JPEG2026513220000008.jpg1023, Swish functions can be included for several values of a, b, and r, such as JPEG2026513220000009.jpg539. Gaussian error linear unit function such as JPEG2026513220000010.jpg663, and / or It may include scaled exponential linear unit functions such as JPEG2026513220000011.jpg1054. Essentially, the input x can be used as the activation function. i There are no restrictions on the properties of the function. As an unrestrictive and illustrative example, the node is defined by each input x i The weights multiplied by w i The weighted sum of the inputs can be performed using . Additionally or alternatively, a bias b may be added to the weighted sum of the inputs so that an offset is added to each unit in the neural network layer, which is independent of the input to the layer. The weighted sum can then be input to the function φ, which can generate one or more outputs y. The weights w applied to the input xi i The weight w can indicate whether an input is "excitatory" and / or "inhibitory." "Excitatory" means, for example, that the input strongly influences one or more outputs y by having a large corresponding weight, while "inhibitory" means, for example, that the input weakly influences another input y by having a small corresponding weight. i The value of can be determined by training a neural network using training data, and this training can be performed using any appropriate process as described above.
[0128] Figure 5 is a simplified diagram of a set of digitized slides 500 and a corresponding visualization 510 according to several embodiments. In some embodiments, the digitized slides 500 are associated with metadata 505, some of which can help identify whether a given set of slides originates from the same tissue block, and the metadata can help identify component elements of the digitized slides (e.g., tissue-containing areas, annotations, artifacts, etc.). For example, as shown in Figure 5, for a slide with metadata "S2" and "Block A", the metadata can also indicate that the handwritten text "pos" is an annotation. Similarly, for a slide with metadata "S1" and "Block B", the metadata can also indicate that the component indicated by the dotted line is an artifact (e.g., a bubble).
[0129] Referring to the right portion of Figure 5, a visualization 510 of the set of virtual slides corresponding to the digitized slides 510 is shown. As shown in the figure, virtual slides corresponding to each of the four slides from "Case 1" are shown, with the tissue-containing areas centered on the virtual slides. Annotations and artifacts are also removed from the virtual slides.
[0130] Figure 6 is a simplified diagram of a digitized slide 600 having multiple sections and a corresponding compact virtual slide 610 according to several embodiments. As shown in Figure 6, the multiple sections of the digitized slide 600 are rearranged near the center of the virtual slide 610 to facilitate visualization. The compact representation can be user-configured. For example, the user may provide user input that formed the basis for the generation of the virtual slide 610.
[0131] Figure 7 is a simplified diagram of a digitized slide 700 having multiple serial sections and a corresponding virtual slide 710 having realigned sections, according to several embodiments. The digitized slide 700 shows a glass slide having three serial sections 702-706, each having a similar shape but different orientations (e.g., alignment differences resulting from the mounting process). As shown in Figure 7, the serial sections 702-706 are annotated with an overlay envelope indicating the orientation detected using appropriate image alignment techniques. Serial section 702 is used as the reference serial section and is annotated with an envelope having a solid line boundary. The remaining serial sections 704 and 706 are annotated with envelopes having dashed line boundaries. In the corresponding virtual slide 710, the reference serial section 712 retains the original orientation of serial section 702, while the remaining serial sections 714 and 716 are reoriented relative to the corresponding sections 704 and 706. In particular, sections 714 and 716 are aligned to have the same orientation as the reference serial section 712.
[0132] Figure 8 is a simplified diagram of a digitized slide 800 having multiple serial sections and a corresponding compact virtual slide 810 having realigned sections, according to several embodiments. In some embodiments consistent with Figures 6 and 7, the compact virtual slide 810 can be created by a combination of rearranging serial sections as described in Figure 6 and realigning serial sections as described in Figure 7. One or both of the rearrangement and realignment may be user-configurable and based on user input.
[0133] Figure 9 is a simplified diagram of an annotated digitized slide 900 having multiple serial sections, and a corresponding compact virtual slide 910 having realigned sections, according to several embodiments. In some embodiments consistent with Figure 9, the compact virtual slide 910 can be generated using a rearrangement and realignment process similar to that described in Figure 8. Furthermore, annotations 905 are transferred from the digitized slide 900 to the virtual slide 910, and the user can choose to exclude or display annotations 905 when visualizing the virtual slide 910. The placement of annotations 905 on the corresponding serial sections is preserved when creating the virtual slide 910.
[0134] Referring here to Figure 10, a flowchart of a typical method 1000 for visualizing digitized slides is shown. In step 1005, method 1000 includes retrieving the digitized slides using at least a processor. This can be carried out as described with reference to Figures 1-9.
[0135] Referring further to Figure 10, in step 1010, method 1000 includes determining the visualization components associated with the retrieved digitized slides. This can be carried out as described with reference to Figures 1-9.
[0136] Referring further to Figure 10, in step 1015, method 1000 includes generating a corresponding virtual slide using at least a processor. This can be carried out as described with reference to Figures 1-9.
[0137] Referring further to Figure 10, in step 1020, method 1000 includes displaying a visualization of the virtual slide using at least a processor. This can be carried out as described with reference to Figures 1-9.
[0138] Referring here to Figure 11, a typical embodiment of the apparatus 1100 for visualizing a slide glass belonging to a patient case is described. In one or more embodiments, the apparatus 1100 may include optical instruments. For example, but not limited to these, the apparatus 1100 may include a microscope. In one or more embodiments, the apparatus 1100 may include an application-specific integrated circuit (ASIC). The ASIC may be communicatively connected to memory, such as memory 1108. The memory may include read-only memory (ROM) and / or rewritable ROM, FPGA, or other combinations and / or sequentially synchronous or asynchronous digital circuits for storing parameters further described in this disclosure. In one or more embodiments, the memory may include one or more memory devices for storing data and information, such as parameters or metrics. The one or more memory devices may include various types of memory, including, but not limited to, volatile and non-volatile memory devices such as ROM (Read-Only Memory), EEPROM (Electrically Erasable Read-Only Memory), RAM (Random Access Memory), and flash memory. In one or more embodiments, the processor 1104 is adapted to execute software stored in memory to perform various methods, processes, and modes of operation in the manner described in this disclosure. In other embodiments, the device 1100 may include circuitry. For example, but not limited to, the device 1100 may include programming in software and / or hardware circuitry design. In one or more embodiments, the device 1100 may include a processor 1104. The processor 1104 may include, but is not limited to, any processor 1104 described in this disclosure.Processor 1104 includes, or may include, any computing device described in this disclosure, including, but not limited to, microcontrollers, microprocessors, digital signal processors (DSPs), and / or system-on-a-chip (SoCs) described herein. A computing device may include, be included in, and / or communicate with a mobile device, such as a mobile phone or smartphone. Processor 1104 may include a single computing device operating independently, or two or more computing devices operating in coordination, in parallel, sequentially, etc. Two or more computing devices may be included together in a single computing device or two or more computing devices. Processor 1104 may interface with or communicate with one or more additional devices via a network interface device, as described in more detail later. A network interface device may be used to connect Processor 1104 to one or more networks and one or more devices. Examples of network interface devices include, but are not limited to, network interface cards (e.g., mobile network interface cards, LAN cards), modems, and any combination thereof. Examples of networks include, but are not limited to, wide area networks (e.g., the internet, corporate networks), local area networks (e.g., networks associated with offices, buildings, campuses, or other relatively small geographical spaces), telephone networks, data networks associated with telephone / voice providers (e.g., mobile communications provider data and / or voice networks), direct connections between two computing devices, and any combination thereof. Networks can use wired and / or wireless communication modes. In general, any network topology can be used.Information (e.g., data, software, etc.) can be communicated to and from a computer and / or computing devices. The processor 1104 may include, for example, a computing device or cluster of computing devices at a first location and a second computing device or cluster of computing devices at a second location. The processor 1104 may include one or more computing devices dedicated to data storage, security, traffic distribution for load balancing, etc. The processor 1104 can distribute one or more computing tasks, as described below, across multiple computing devices of computing devices that can operate in parallel, serial, redundantly, or in any other way used for distributing tasks or memory between computing devices. The processor 1104 may be implemented using a non-shared architecture in which data is cached on workers, which in one embodiment may enable scalability of the device 1100 and / or computing devices.
[0139] Continuing to refer to Figure 11, the processor 1104 may be designed and / or configured to execute any method, process, or sequence of process steps in any embodiment of the disclosure in any order and at any degree of iteration. For example, the processor 1104 may be configured to repeatedly execute a single process or sequence until a desired or instructed result is achieved. Iterations of a process or sequence of processes are executed iteratively and / or recursively using the output of the previous iteration as input to the subsequent iteration, aggregating the inputs and / or outputs of the iterations to produce an aggregated result, decreasing or reducing one or more variables such as global variables, and / or dividing a larger processing task into a set of iteratively addressed smaller processing tasks. The processor 1104 may execute any process or sequence of processes described in the disclosure in parallel, such as executing a process simultaneously and / or substantially simultaneously multiple times using two or more parallel threads, the cores of the processor 1104, etc. Task division between parallel threads and / or processes may be performed according to any protocol suitable for task division between iterations. Those skilled in the art will, upon reviewing the entirety of this disclosure, recognize a variety of ways in which processes, sequences of processes, processing tasks, and / or data can be subdivided, shared, or otherwise processed using iterative, recursive, and / or parallel processing.
[0140] Continuing to refer to Figure 11, the apparatus 1100 includes a memory 1108. The memory 1108 is communicatively connected to a processor 1104. The memory may include instructions that configure the processor 1104 to perform tasks disclosed in this disclosure. Communicatively connected may mean connected by a connection, attachment, or link between two or more relata that enables the reception and / or transmission of information between them. For example, but not limited to, such a connection may be wired or wireless, direct or indirect, and enable the reception and / or transmission of data and / or signals between two or more components, circuits, devices, systems, imaging devices, etc. The data and / or signals between them may include, but are not limited to, electrical, electromagnetic, magnetic, video, audio, radio, and microwave data and / or signals, or combinations thereof. The communication connection may be achieved, for example, directly or through one or more intervening devices or components via wired or wireless electronic, digital, or analog communication. Furthermore, a communication connection may include electrically coupling or connecting at least the output of one device, component, or circuit to at least one input of another device, component, or circuit, for example, via a bus or other equipment for communication between elements of a computing device, for example, but not limited to. A communication connection may also include indirect connections via, for example, but not limited to, wireless connections, radio communications, low-power wide-area networks, optical communications, magnetic coupling, capacitive coupling, or optical coupling. In some cases, the term “communicatively coupled” may be used in this disclosure instead of “communicatively connected.”
[0141] Referring further to Figure 11, the apparatus 1100 may include one or more sensors for capturing an image signal representing an image of a scene (e.g., a scene including a sample). For example, but not limited to, the sensors may include a light sensor, an image sensor (more described below), a focal plane array, and the like. In various embodiments, the sensors may provide a representation and / or conversion of the captured image signal of the scene into digital data. For example, but not limited to, the sensors may include an analog-to-digital converter. In one or more embodiments, the processor 1104 may be adapted to receive an image signal from the apparatus 1100 (e.g., an image sensor), process the image signal to provide processed image data, store the image signal and / or image data in memory 1108, and / or retrieve the stored image signal and / or image data from memory 1108 (e.g., for compilation or combination as further described in this disclosure). In one or more embodiments, the processor 1104 may be configured to process the image signal stored in memory 1108 to provide image data to be displayed for viewing by the user and / or operator.
[0142] Referring further to Figure 11, in one or more embodiments, the device 1100 may include and / or be communicatively connected to a display, as further described in Figure 110. In one or more embodiments, the display may be configured to display image data and any other information described herein, such as annotations or text. In one or more embodiments, the processor 1104 may be configured to retrieve image data and information from memory 1108 and to display such image data and information on the display. In other embodiments, the display may directly receive image data from an optical system, such as an optical system (e.g., a light sensor).
[0143] Referring further to Figure 11, the device 1100 may include user input 1116 and / or a user interface 1120. User input can refer to data received as a function of interaction between the user and the computing device. For example, user input 1116 may include mouse clicks, key selections on a keyboard, and any other interactions within an input device that may be connected to the computing device. The user interface is a means by which the user interacts with the computer system. For example, but not limited to, user interface 1120 may include one or more user-operated components such as one or more push buttons, joysticks, sliders, rotary knobs, mice, keyboards, touchscreens, etc., which can be configured to generate one or more input control signals, which may include signals for capturing images from a scene, combining images and / or image data, editing images and / or image data, changing the operating mode of the imaging device, changing zoom and / or zoom level, changing focus, etc. The user input 1116 signal is generated using the user interface 1120 and transmitted to the processor 1104, memory 1108, display, optical system, and / or any other components, and / or may be communicably connected to the device 1100. In one or more embodiments, the processor 1104 may be configured to change or set the operating modes of the imaging device, such as autofocus, contrast, gain (e.g., variable gain), field of view (FOV), brightness, offset, menu activation and selection, spatial settings, and time settings, but is not limited to these.
[0144] Continuing to refer to Figure 11, in some embodiments, the apparatus 1100 can be used to generate one or more images of the sample 1124. The sample may be a sample of organic material used for testing or observation purposes. In one or more embodiments, the sample 1124 may include a pathological sample. For example, but not limited to, the sample 1124 may include a sample of interest containing tissue, plasma, or bodily fluids from an individual. For example, but not limited to, the sample 1124 may include tissue from an organ such as the kidney of an individual (e.g., a patient). In some embodiments, the sample 1124 may include a tissue sample. In some embodiments, the sample 1124 may be frozen. In some embodiments, the sample 1124 may be fresh or recently collected. In one or more embodiments, the sample 1124 may have a variable thickness. For example, but not limited to, the sample 1124 may have different thicknesses or depths at various locations along the sample 1124. For example, though not limited to, sample 1124 may have a first thickness t at a first position x, a second thickness t' at a second position x', and a third thickness t' at a third position x''.
[0145] Continuing to refer to Figure 11, in one or more embodiments, the sample 1124 can be placed on a slide. The slide may be a container or surface for holding the sample 1124. In some embodiments, the slide may include a formalin-fixed paraffin-embedded slide. In some embodiments, the sample 1124 on the slide may be stained. In some embodiments, the slide may be substantially transparent. In some embodiments, the slide may include a glass slide. In some embodiments, the slide may include a thin, flat, substantially transparent glass slide. In some embodiments, a cover, such as a transparent cover, may be applied to the slide so that the sample 1124 is positioned between the slide and the cover. For example, but not limited to, the sample 1124 may be compressed between the slide and the corresponding cover.
[0146] Referring further to Figure 11, in some embodiments, the slide and / or sample on the slide can be illuminated. In some embodiments, the apparatus 1100 can include a light source. The light source may be any device configured to emit electromagnetic radiation. In some embodiments, the light source may emit light having substantially one wavelength. In some embodiments, the light source may emit light having a wavelength range. The light source may, but is not limited to, ultraviolet light, visible light, and / or infrared light. In non-limiting examples, the light source may include light-emitting diodes (LEDs), organic LEDs (OLEDs), and / or any other light-emitting devices. Such a light source may be configured to illuminate the slide and / or sample 1124 on the slide. In non-limiting examples, the light source may illuminate the slide and / or sample 1124 on the slide from below. In non-limiting examples, the light source may illuminate the slide and / or sample 1124 on the slide from above.
[0147] Referring further to Figure 11, in some embodiments, the apparatus 1100 may include at least an optical system. The optical system may be an arrangement of one or more components that act together with or use electromagnetic radiation, such as light. The light may include visible light, infrared light, UV light, etc. The optical system may include, but is not limited to, one or more optical elements, such as lenses, mirrors, windows, filters, etc. The optical system may form an optical image corresponding to an optical object. For example, but is not limited to, the optical system may capture an optical image, for example, in a light sensor that can digitize it, or form an optical image on a light sensor. In some cases, the optical system may have at least magnification. For example, but is not limited to, the optical system may include an objective lens (e.g., a microscope objective lens) and one or more reimaging optical elements that together produce optical magnification. In some cases, optical magnification may be referred to herein as zoom. The light sensor may be a device that measures light and converts the measured light into one or more signals. The one or more signals may include, but is not limited to, one or more electrical signals. In some embodiments, the light sensor may include at least a photodetector. A photodetector may be a device that is sensitive to light and is thereby capable of detecting light. In some embodiments, the photodetector may include a photodiode, photoresistor, light sensor, photovoltaic chip, etc. In some embodiments, the light sensor may include multiple photodetectors. The light sensor may include, but is not limited to, a camera. The light sensor may communicate electronically with at least one processor 1104 of the device 1100. The electronic communication may be a shared data connection between two or more devices. In some embodiments, the device 1100 may include two or more light sensors.
[0148] Continuing to refer to Figure 11, in some embodiments the optical system may include a camera. In some cases, the camera may include one or more optical systems. Typical and non-limiting optical systems include spherical lenses, aspherical lenses, reflectors, polarizers, filters, windows, aperture diaphragms, etc. In some embodiments, and non-limiting examples, one or more optical systems associated with the camera may be adjusted to change the camera's zoom, depth of field, and / or focal length. In some embodiments, one or more such settings may be configured to detect features of a sample on a slide. In some embodiments, one or more such settings may be configured based on a set of parameters, as described below. In some embodiments, the camera may capture an image at a low depth of field. In non-limiting examples, the camera may capture an image so that it is in focus at a first sample depth and out of focus at a second sample depth. In some embodiments, an autofocus mechanism may be used to determine the focal length. In some embodiments, the focal length may be set by a set of parameters. In some embodiments, the camera may be configured to capture multiple images at different focal lengths. In non-limiting examples, a camera may capture multiple images at different focal lengths, resulting in at least one image being in focus at each depth of field of the sample. In some embodiments, the camera may include at least an image sensor. Typical non-limiting image sensors include, but are not limited to, digital image sensors such as charge-coupled device (CCD) sensors and complementary metal-oxide-semiconductor (CMOS) sensors. In some embodiments, the camera may be sensitive to electromagnetic radiation in the invisible range, such as infrared radiation.
[0149] Referring further to Figure 11, in some embodiments, the apparatus 1100 may include a machine vision system. The machine vision system may include an optical system, or may be communicably connected to an optical system, a processor 1104, a memory 1108, etc. In some embodiments, the machine vision system may include at least a camera. The machine vision system may use images, such as images from at least a camera, to make decisions about a scene, space, and / or objects. For example, the machine vision system may be used for world modeling or alignment of objects in space. In some cases, alignment may include, but are not limited to, image processing such as object recognition, feature detection, and edge / corner detection. Non-exclusive examples of feature detection may include scale-invariant feature transformation (SIFT), Canny edge detection, and C-Tomasi corner detection. In some cases, alignment may include one or more transformations for orienting a camera frame (or image or video stream) to a three-dimensional coordinate system. Typical transformations include, but are not limited to, homography and affine transformations. In one embodiment, the alignment of the first frame to a coordinate system can be verified and / or corrected using object recognition and / or computer vision, as described above. For example, an initial alignment to two dimensions, expressed as, for example, alignment to x and y coordinates, may be performed using a two-dimensional projection of a three-dimensional point onto the first frame. A third dimension of alignment, representing depth and / or the z-axis, can be detected by comparing two frames. For example, if the first frame includes a pair of frames captured using a pair of cameras (e.g., stereoscopic cameras, also referred to in this disclosure as stereo cameras), image recognition and / or edge detection software can be used to detect a pair of stereoscopic images of an object. By comparing the two stereoscopic images, z-axis values of points on the object can be derived, and further z-axis points inside and / or around the object can be derived using interpolation, for example.This can be repeated with multiple objects in the field of view, including, but not limited to, environmental features of objects identified by an object classifier and / or indicated by an operator. In one embodiment, the x and y axes can be selected to span a plane common to two cameras used for capturing the stereoscopic image and / or the xy-plane of the first frame. As a result, the x and y translation components and φ can be pre-inputted into the translation and rotation matrices for the affine transformation of the object's coordinates, as also described above. Estimation of the initial x and y coordinates and / or transformation matrices may be performed between the first and second frames, as alternatively or additionally, as described above. As described above, for multiple points on an object and / or edges of an object and / or each point on an edge, the x and y coordinates of the first stereoscopic frame can be filled in with initial estimates of the z coordinate based on assumptions about the object, such as the assumption that the ground is substantially parallel to the xy-plane, as selected above. Next, the Z-coordinate and / or x, y, and z-coordinates registered using the image capture and / or object recognition process described above can be compared with the predicted coordinates using the initial inference in the transformation matrix. An error function can be calculated by comparing two sets of points, and new x, y, and / or z-coordinates can be iteratively estimated and compared until the error function falls below a threshold level. In some cases, the machine vision system may use a classifier such as any classifier described throughout this disclosure. The z-axis used in this disclosure is the axis orthogonal to the xy-plane, and therefore to the top surface of the slide.
[0150] Continuing to refer to Figure 11, the optical system may be configured to capture an image of a region of interest. For example, but not limited to, a camera in the optical system may be configured to capture an image of a region of interest. The region of interest may be a line of sight, and therefore a region of a scene or environment selected or desired to be located within the field of view of the optical components of the optical system. The line of sight may be a line having a field of view that is not obstructed to the observer or lens. The field of view may be an angle and / or region in which the optical components detect electromagnetic radiation. For example, but not limited to, the FOV may indicate a region of a scene that can be captured by the optical components within a defined boundary of an image (e.g., a frame). For example, but not limited to, a region of interest within the FOV of an optical system may include a scene that is desired to be captured in an image by being located within the line of sight of the lens of the optical system so that an image can be captured. The FOV may include vertical and horizontal angles projected onto the surface of the lens of the optical component. In one or more embodiments, the line of sight may include the optical access of the FOV. In various embodiments, the region of interest may include at least a portion of the sample 1124. In some embodiments, the region of interest may include a portion of the sample 1124 and a portion of the slide.
[0151] Referring further to Figure 11, in one or more embodiments, an image may include image data. The image data may include information representing at least a physical scene, space, and / or objects. The image data may include, for example, information representing a sample, slide, or area of a sample or slide. In some cases, the image data may be generated by a camera. "Image data" may be used interchangeably with "image" throughout this disclosure, and "image" is used as a noun. An image may be optical, but not limited to cases where an optical element is used to generate an image of an object. An image may be digital, but not limited to cases where it is represented as a bitmap. Alternatively, an image may consist of any medium that can represent a physical scene, space, and / or objects. Or, where "image" is used as a verb, this disclosure refers to the generation and / or formation of an image.
[0152] Continuing to refer to Figure 11, the apparatus 1100 is configured to receive an image dataset 1128. For the purposes of this disclosure, “image dataset” is, for example, a collection of images representing one or more captured samples 1124. In some cases, the image dataset may include one or more images of one or more samples 1124 to be examined. In some cases, the images may depict one or more samples 1124 on a slide. In some cases, the image dataset 1128 may further include metadata 1132 for multiple images. For the purposes of this disclosure, “metadata” is information used to describe other data. For example, metadata 1132 may include information about one or more images. In some cases, metadata 1132 may include the date and time the images were taken, information about one or more sensors or cameras used to capture the images, the location of the images, and various image compression formats used on the images. In some cases, metadata 1132 may further include information about a particular sample 1124 in the images. This may include, but is not limited to, the type of sample 1124, e.g., the tissue from which sample 1124 was taken, the date on which sample 1124 was taken, the location of sample 1124 on the tissue (e.g., on an Xy coordinate system), the boundaries of sample 1124 (e.g., on an Xy coordinate system), specific boundaries that may contain sample 1124 (e.g., the region containing sample 1124), whether sample 1124 is associated with other samples 1124 taken from the same tissue block (e.g., one of many samples 1124 taken from a particular tissue block such as a heart), the location of sample 1124 on the tissue block (e.g., A1, where "A" can represent the first row, "1" can represent the first column, and vice versa), and storage conditions (e.g., required refrigeration, one or more required preservatives, etc.). In some cases, metadata 1132 may include information such as collection notes for a specific sample 1124 in the image, the order in which the images were received (for example, metadata 1132 indicating that a particular image was the first image taken).In some cases, metadata 1132 may include the size of sample 1124, etc. In some cases, image dataset 1128 may include information about one or more samples 1124. In some cases, image data may include captured slides of one or more samples 1124. In some cases, image dataset 1128 may include digitized slides. For the purposes of this disclosure, “digitized slide” is a slide that has been captured using one or more input sensors and / or optical sensors and converted into a digital format.
[0153] Continuing to refer to Figure 11, in some cases, each image in the image dataset 1128 may include an image of a slide, where a slide is a thin rectangular piece of glass containing a sample 1124. In some cases, a slide may contain multiple samples 1124. In some cases, multiple samples 1124 on each slide can be associated with one another. For example, multiple samples 1124 may be obtained from the same tissue block, and a first sample 1124 on a slide can be associated with a first layer, a second sample 1124 on a slide can be associated with a second layer, and so on. In some cases, metadata 1132 may include the location of the sample 1124 on the glass block.
[0154] Continuing to refer to Figure 11, in some cases, the apparatus 1100 may receive the image dataset 1128 using one or more optical sensors and / or optical systems, as described above. In some cases, the apparatus 1100 may be configured to receive the image dataset 1128 from a macro camera 1136. For the purposes of this disclosure, “macro camera” is a dedicated camera used for close-up photography. The macro camera 1136 may allow an individual to capture images of smaller objects, such as a sample 1124, in very high detail. The macro camera 1136 may use one or more macro lenses, which allow an individual to focus on an object that is close by. In some cases, the macro lenses have a magnification of 1:1 or greater. In some cases, the macro lenses may allow capture or imaging from a distance of 12 inches or less. In some cases, the image captured by the macro camera 1136 may be larger than the captured object. In some cases, macro cameras 1136s may be used to capture high-resolution images, such as a sample 1124, which may be used to inspect the sample 1124. In some cases, the device 1100 may be communicably connected to a camera, such as a macro camera 1136. In some cases, the macro camera 1136 may include a standard camera with a macro lens. In some cases, the image dataset 1128 may be received by the macro camera 1136, which may be configured to capture at least one macro image of a specific slide of the sample 1124 used for examination. In some cases, the metadata 1132 may include information about one or more images captured by the macro camera 1136.
[0155] Referring further to Figure 11, in some embodiments, the device 1100 may include a user interface 1120, as previously described in this disclosure. The user interface 1120 may include an output interface and an input interface. In some embodiments, the output interface may include one or more elements on which the device 1100 can communicate information to a user. In an indefinite example, the output interface may include a display. The display may include a high-resolution display. The display may output images, videos, etc., to the user. In another indefinite example, the output interface may include a speaker. The speaker may output sound to the user. In yet another indefinite example, the output interface may include a haptic device. The speaker may output haptic feedback to the user.
[0156] Referring further to Figure 11, in some embodiments, the input interface may include a control device for operating the device 1100 and / or inputting data into the device 1100. Such control may be operated by a user. In non-limiting examples, the input interface may include a camera, microphone, keyboard, touchscreen, mouse, joystick, foot pedal, buttons, dial, etc. In non-limiting examples, the input interface may accept machine input, voice input, visual input, text input, etc. In some embodiments, voice input to the input interface may be interpreted using an automatic voice recognition function, enabling the user to control the imaging device 1100 via voice. In some embodiments, the input interface may approximate the control of a microscope. In some cases, an image dataset 1128 may be received via the input interface. For example, a user may input one or more images via a user interface 1120. In some cases, the device 1100 may be configured to receive an image dataset 1128 from an imaging device, as described in US. Non-provisional application No. 18 / 226,058, filed on 25 July 2023, titled "IMAGING DEVICE AND A METHOD FOR IMAGE GENERATION OF A SPECIMEN," is incorporated herein by reference in its entirety. In some cases, one or more images may be received from the imaging device and received as elements of an image dataset 1128.
[0157] Referring further to Figure 11, in one or more embodiments, the apparatus 1100 may be configured to create a multilayer scan, which includes multiple, for example, a series of images combined into a single image. The multilayer scan may include an integrated image. For example, but not limited to, the multilayer scan includes editing a sequence of images taken at different levels along the z-axis or depth axis at a specific position (x, y) of the sample 1124. For example, but not limited to, as will be further described below, the multilayer scan may include multiple images, such as an image taken at depth of focus A, an image taken at depth of focus B, and an image taken at depth of focus C.
[0158] Continuing to refer to Figure 11, the apparatus 1100 and / or processor 1104 are configured to determine, for each image, the membership of multiple images in the image dataset 1128, the set of images for visualization as a function of the image dataset 1128. For the purposes of this disclosure, “membership” is any commonality that may be shared between one or more samples 1124 in an image or between one or more images. For example, membership may include the determination of two images containing a sample 1124 from the same block. Similarly, membership may include the determination of similarity or commonality between two samples 1124 captured in a single photograph. For example, two samples 1124 from the same photograph may share the commonality of being found from the same block. Alternatively, two samples 1124 do not have to share the commonality of being found from the same tissue block. In some cases, each slide may contain multiple samples 1124. In some cases, membership may include images taken within similar time frames, similarly classified samples 1124 (e.g., classifications such as cardiac tissue sample 1124, lung tissue sample 1124, etc.). In some cases, membership may include numerical membership where a particular image was taken before another image.
[0159] Continuing to refer to Figure 11, the apparatus 1100 and / or processor 1104 can be configured to determine the membership of a set of images, the set of images may include images that share certain commonalities. In some cases, the image dataset 1128 may include multiple sets of images, each set of images may share certain memberships. In some cases, each set of images may include images of samples 1124 taken from the same tissue block. In some cases, the processor 1104 can determine the membership of a set of images as a function of metadata 1132. In some cases, each image in the image dataset 1128 may include metadata 1132, the metadata 1132 may include information about a particular sample 1124, and the processor 1104 may be configured to classify each sample 1124. In some cases, the metadata 1132 may include the order in which the images were taken, and the processor 1104 can create an order for the images in the image dataset 1128, where the first image is associated with the first image captured, and the last image is associated with the last image captured. In some cases, the processor 1104 can determine, for each image, the membership between one or more images for visualization. In some cases, the processor 1104 can classify images for visualization, allowing a particular set of images to be viewed sequentially. In some cases, determining membership may allow visualization of multiple images related to the same similar sample 1124. In some cases, determining membership may allow viewing one or more images simultaneously via a display, as described in this disclosure.
[0160] Continuing to refer to Figure 11, the device 1100 may be configured to determine relationships between one or more component visualization elements 1140 as a function of the image dataset 1128. In some cases, the device 1100 may determine relationships by determining whether two samples 1124 originate from the same class (e.g., both samples 1124 contain cardiac tissue). In some cases, the device 1100 may determine relationships between two samples 1124 originating from the same tissue block. In some cases, the device 1100 may determine, based on user input 1116, that two samples 1124 should be observed relative to each other. In some cases, the processor 1104 may identify one or more component visualization elements 1140 in an image and determine relationships between them. In some cases, the device 1100 and / or the processor 1104 may be configured to identify one or more component visualization elements 1140 in a particular image or a set of images, and the device 1100 may be configured to determine relationships between two or more samples 1124. In some cases, relationships may be determined based on metadata 1132 or any other information in the image dataset 1128. In some cases, metadata 1132 may indicate that an image contains multiple samples 1124 and sources of samples 1124. In some cases, the device 1100 may be configured to pair and / or classify related samples 1124, such as samples 1124 containing layers of a particular tissue.
[0161] Continuing to refer to Figure 11, determining a relationship may include identifying one or more component visualization elements 1140 within the image dataset 1128. The apparatus 1100 and / or processor 1104 may be configured to identify one or more component visualization elements 1140 within the image dataset 1128. For the purposes of this disclosure, “component visualization element” is an object represented within each image, for example, within the image dataset 1128. For example, a component visualization element 1140 may include a sample 1124 placed on a slide. In some cases, a component visualization element 1140 may further include dust, annotations, bubbles, undesirable visible particles captured within the image, adhesive used to bond two slides together, and so on. In some cases, a component visualization element 1140 may include an object within a particular image. In some cases, a user may annotate a particular sample 1124, and the processor 1104 may identify the annotation as a component visualization element 1140. In some cases, the image may capture sample 1124 and debris, and the sample 1124 and debris are identified as virtual component elements. In some cases, the processor 1104 may be configured to use metadata 1132 to identify one or more component visualization elements 1140 in the image. In one or more embodiments, a particular image may include metadata 1132 of the location and / or boundary of a particular sample 1124. In one or more embodiments, the metadata 1132 may include information indicating the presence of one or more samples 1124 in the image. In one or more embodiments, the metadata 1132 may indicate the boundary and / or location of one or more samples 1124. In some cases, the metadata 1132 may include information related to annotations, debris, and other component visualization elements 1140. In some cases, a separate computing device distinct from the apparatus 1100 may be configured to generate the metadata 1132, which may include information about one or more virtual component elements.
[0162] Continuing to refer to Figure 11, in some cases, identifying one or more component visualization elements 1140 involves determining the light intensity of one or more portions of an image. For the purposes of this disclosure, “light intensity” is a value indicating the amount of light in a particular pixel. In some cases, the light intensity may range from 0 to 255, where a score of 0 indicates that the pixel contains no light and can therefore be visualized as black, and a score of 255 indicates the maximum light in which the pixel can be visualized as white. In one or more embodiments, a particular sample 1124 can be captured against a white or illuminated surface, and the presence of pixels with lower light intensity may indicate the presence of sample 1124 or other component visualization elements 1140. In one embodiment, the image in the image dataset 1128 may be captured in front of an illuminated surface, such as a white surface or a transparent surface with light-emitting elements beneath the surface. In one embodiment, the image may include lower light intensity in areas containing component visualization elements 1140. Alternatively, the image may be captured behind a low-light-intensive surface such as a black surface, and the presence of light intensity may indicate the presence of a specific component visualization element 1140. In one or more embodiments, each image in the image dataset 1128 may contain multiple pixels, and each pixel may contain a pixel value. The pixel value may indicate the light intensity of a pixel in a particular part of the image. In some cases, the image may be grayscale, and each pixel may contain a value from 0 to 255, where a value of 0 indicates that the pixel represents a completely black part of the image, and a value of 255 indicates that the pixel represents a completely white part of the image. In some cases, the image may contain a color image, and the image may be represented by red, green, and blue (RGB) values, and a specific color may be visualized on the display using a specific value for red, a specific value for green, and a specific value for blue. For example, a color such as yellow may contain an RGB value of (255, 255, 0), where the first 255 indicates the intensity of red, the second 255 indicates the intensity of green, and 0 indicates the intensity of blue.In some cases, the processor 1104 may be configured to determine the light intensity of an image via RGB values, where an RGB value of (0,0,0) indicates that a portion of the image is white and therefore contains high light intensity, and an RGB value of (255,255,255) indicates that a portion of the image is black and therefore contains lower light intensity. In some cases, the image may include Hugh, saturation, and value (known as "HSL" or alternatively "HSL"), where the value or lightness can be used to determine the intensity of a particular pixel in the image.
[0163] Continuing to refer to Figure 11, in some cases, identifying one or more component visualization elements 1140 may include determining the light intensity of one or more images. In some cases, the presence of a particular light intensity or range may indicate the presence of one or more component visualization elements 1140. In some cases, a particular range of light intensity may indicate the presence of one or more component visualization elements 1140. For example, the processor 1104 may determine the presence of one or more light intensities on an image with a white background. In some cases, the presence of a particular light intensity below a certain threshold may indicate that a particular part of the image contains a particular component visualization element 1140. In some cases, identifying one or more component visualization elements 1140 may include identifying one or more parts of an image that contain a higher or lower light intensity compared to the background of the image. In some cases, a computing device may distinguish between two component visualization elements 1140 by the relative size or range of light intensity. For example, a particular part of an image may contain a light intensity within a given range, and another part of the image may contain a light intensity within a different given range, and the processor 1104 may determine that the two parts of the image are different component visualization elements 1140. In some cases, the processor 1104 can determine the size of a particular grouping of pixels in an image, the size being determined by pixels grouped close together and having different light intensities. For example, a particular part of an image may include a group of pixels having lower light intensities, and the length (indicated in the x-direction on the XY axis) or height (indicated in the Y-direction on the XY axis) of the component visualization element 1140 can be measured from the first pixel on a plane containing different light intensities to the last pixel on a plane containing different light intensities. For example, the length of the component visualization element 1140 may be determined by identifying the first pixel on a particular XY axis having a particular light intensity and identifying the last pixel on the same Y axis along the X axis containing the same or similar light intensity.In one embodiment, the boundaries of a particular component visualization element 1140 can be identified based on the change in light intensity between the boundary of the component visualization element 1140 and the corresponding background of the image. In some cases, the processor 1104 can determine the relative size of each component visualization element 1140 by measuring the maximum length within a group of pixels, the maximum height within a group of pixels, and / or the area of a group of pixels. In some cases, the size may be measured relative to the overall size of the photograph, and each pixel may represent a specific unit (for example, using 100x100 pixels in a photograph containing metadata 1132 representing a 4-inch x 4-inch scene, it may be indicated that each pixel represents 4 / 100 of an inch). In some cases, the processor 1104 can determine the difference between component visualization elements 1140 based on their respective sizes within the image. For example, a small group of pixels may indicate that component visualization elements 1140 are dust or dirt, and a large group of pixels may indicate that component visualization elements 1140 could be sample 1124. In some cases, the processor 1104 can distinguish component visualization elements 1140 using light intensity, and a particular range of light intensity can indicate a particular component visualization element 1140. For example, a sample 1124 can be represented by a grouping of pixels having lower light intensity, and bubbles can be visualized by pixels having higher light intensity. In some cases, the processor 1104 can distinguish two or more component visualization elements 1140 based on the presence of a particular range of light intensity between two groups of pixels having similar light intensity. For example, a first grouping of pixels containing lower light intensity may be separated from a second grouping of pixels with lower light intensity by a plurality of pixels having higher light intensity between the first and second groupings of pixels. In one embodiment, the presence of a particular size or group of pixels having higher light intensity can indicate separation between a first component visualization element 1140 and a second component visualization element 1140.In some cases, the processor 1104 may be configured to ignore variations in light intensity within a given region of an image, such as an image boundary, where the boundary may contain different light intensities due to image capture issues.
[0164] Continuing to refer to Figure 11, the apparatus 1100 may include an image processing module 1144. Where used in this disclosure, “image processing module” is a component designed to process digital images. For example, but not limited to, an image processing module may be configured to compile multiple images from a multi-layer scan to create an integrated image. In one embodiment, the image processing module 1144 may include multiple software algorithms that can analyze, manipulate, or otherwise enhance images, such as, but not limited to, multiple image processing techniques described below. In another embodiment, the image processing module 1144 may include, but not limited to, one or more hardware components such as graphics processing units (GPUs) that can accelerate the processing of a large number of images. In some cases, the image processing module 1144 may be implemented with, but not limited to, one or more image processing libraries such as OpenCV, PIL / Pillow, or ImageMagick. The image processing module 1144 may include, or may be contained in, or communicately connected to, an optical system, a processor 1104, and / or memory.
[0165] Referring further to Figure 11, the image processing module 1144 may be configured to receive images from the processor 1104 and / or any other input method described herein. In an indefinite example, the image processing module 1144 may be configured to receive images by generating a first image capture parameter, sending a command to the optical system to capture a first image of a plurality of images using the first image capture parameter, generating a second image capture parameter, sending a command to the optical system to capture a second image of a plurality of images using the second image capture parameter, and receiving the first and second images from the optical system. In another indefinite example, multiple images may be captured by the optical system using the same image capture parameter. The image capture parameter can be generated as a function of user input 1116 or the processor 1104.
[0166] Referring further to Figure 11, multiple images from the image dataset 1128 can be sent from the processor 1104 to the image processing module 1144 via any suitable electronic communication protocol, including, but not limited to, packet-based protocols such as the Transfer Control Protocol—Internet Protocol (TCP-IP) and File Transfer Protocol (FTP). Receiving images may involve searching for images from a data store containing the images, as described below. For example, images may be searched using a query that specifies a timestamp that the image may need to match.
[0167] Referring further to Figure 11, the image processing module 1144 can be configured to process images. In one embodiment, the image processing module 1144 can be configured to compress and / or encode images to reduce file size and storage requirements while maintaining essential visual information necessary for further processing steps, as described below. In one embodiment, compressing and / or encoding multiple images can facilitate faster transmission of images. In some cases, the image processing module 1144 can be configured to perform lossless compression on images, which can maintain the original image quality of the images. In non-limiting examples, the image processing module 1144 may, but is not limited, utilize one or more lossless compression algorithms such as Huffman coding, Lempel-Ziv-Welch (LZW), or Run-Length Encoding (RLE) to identify and remove redundancy in each of multiple images without loss of information. In such embodiments, compressing and / or encoding each of multiple images may include converting the file format of each image to PNG, GIF, lossless JPEG2000, etc. In one embodiment, an image compressed via lossless compression can be completely reconstructed to its original form (e.g., original image resolution, dimensions, color representation, format, etc.). In other cases, the image processing module 1144 may be configured to perform lossy compression on multiple images, where lossy compression may sacrifice some image quality to achieve a higher compression ratio. In non-limiting examples, the image processing module 1144 may utilize one or more lossy compression algorithms, such as, but not limited to, the discrete cosine transform (DCT) of JPEG or the wavelet transform of JPEG2000, to discard less important information in the image, resulting in a smaller image file size but a slight decrease in image quality. In such embodiments, compressing and / or encoding each image of multiple images may include converting the file format of each image to JPEG, WebP, lossy JPEG2000, etc.
[0168] Referring further to Figure 11, in one embodiment, image processing may include determining the degree of depiction of a region of interest in an image or a group of images. In one embodiment, the image processing module 1144 can determine the degree of blurring in an image. In an unrestricted example, the image processing module 1144 may perform blur detection by performing an approximation such as a Fourier transform or Fast Fourier transform (FFT) of the image and analyzing the low-frequency and high-frequency distribution in the frequency-domain depiction of the resulting image. For example, but not limited to, the number of high-frequency values below a threshold level may indicate blurring. In another unrestricted example, blur detection may be performed by convolving the image, image channels, etc., with a Laplacian kernel. For example, but not limited to, this may generate a numerical score that reflects the number of abrupt changes in intensity shown in each image, such that a high score indicates clarity and a low score indicates blurring. In some cases, blur detection may be performed using a gradient-based operator that measures the operator based on the gradient or first derivative of the image, based on the hypothesis that abrupt changes indicate sharp edges in the image and therefore indicate a lower degree of blurring. In some cases, blur detection can be performed using wavelet-based operators that leverage the ability of discrete wavelet transform coefficients to describe the frequency and spatial content of an image. In other cases, blur detection can be performed by using statistics-based operators that utilize several image statistics as texture descriptors to calculate the focus level. In other cases, blur detection can be performed by using discrete cosine transform (DCT) coefficients to calculate the focus level of an image from its frequency content. Additionally or alternatively, the image processing module 1144 may be configured to rank images according to the quality of depiction of the area of interest and select the highest-ranked image from multiple images.
[0169] Referring further to Figure 11, image processing may include enhancing at least areas of interest through multiple image processing techniques to improve image quality (or degree of depiction quality) for better processing and analysis, as further described in this disclosure. In one embodiment, the image processing module 1144 may be configured to perform a noise reduction operation on the image, which can remove or minimize noise (resulting from various causes such as sensor limitations, insufficient lighting conditions, and image compression) to result in a cleaner, visually coherent image. In some cases, the noise reduction operation may be performed using one or more image filters. For example, but not limited to, the noise reduction operation may include Gaussian filtering, median filtering, bilateral filtering, and the like. The noise reduction operation may be performed by the image processing module 1144 by averaging neighboring pixel values of each pixel in the image to reduce random fluctuations, or by filtering them out.
[0170] Referring further to Figure 11, in another embodiment, the image processing module 1144 may be configured to perform a contrast enhancement operation on the image. In some cases, an image may exhibit low contrast, which can make it difficult, for example, to distinguish features from the background. A contrast enhancement operation can improve the contrast of an image by stretching the intensity range of the image and / or redistributing intensity values (i.e., the degree of brightness of pixels in the image). In non-limiting examples, the intensity values can represent the gradation or color of each pixel, a scale from 0 to 255 in the intensity range for an 8-bit image, and a scale from 0 to 16,777,215 for a 24-bit color image. In some cases, the contrast enhancement operation may include, but is not limited to, histogram equalization, adaptive histogram equalization (CLAHE), contrast stretching, etc. The image processing module 1144 may be configured to adjust the brightness levels in the image to make features more distinguishable (i.e., to improve the degree of depiction quality). In addition, or instead, the image processing module 1144 may be configured to perform a luminance normalization operation to compensate for variations in lighting conditions (i.e., non-uniform luminance levels). In some cases, the image may contain a consistent luminance level across the region after the luminance normalization operation performed by the image processing module 1144. In a non-limiting example, the image processing module 1144 may perform whole or local mean normalization to calculate an average intensity value for the entire image or a region of the image, which can then be used to adjust the luminance levels.
[0171] Referring further to Figure 11, in other embodiments, the image processing module 1144 may be configured to perform color space conversion operations to enhance the quality of depiction. In a non-limiting example, for a color image (i.e., an RGB image), the image processing module 1144 may be configured to convert the RGB image to grayscale or HSV color space. Such a conversion can highlight the difference in intensity values between the area or feature of interest and the background. The image processing module 1144 may be further configured to perform image sharpening operations, such as unsharp masking, Laplacian sharpening, and high-pass filtering, but is not limited to these. The image processing module 1144 can use image sharpening operations to highlight edges and details with respect to the area or feature of interest in the image by emphasizing the high-frequency components in the image.
[0172] Referring further to Figure 11, processing an image may include isolating a region or feature of interest from the rest of the image as a function of multiple image processing techniques. The image may include the highest-ranked image selected by the image processing module 1144 as described above. In one embodiment, the multiple image processing techniques may include one or more morphological operations, which are techniques developed based on set theory, lattice theory, topology, and random functions used to process geometric structures using structured elements. For the purposes of this disclosure, “structured elements” are small matrices or kernels that define the shape and size of the morphological operation. In some cases, the structured elements may be used to determine the output pixel value at each pixel of the image, with that position as the center. In a non-limiting example, isolating a region or feature of interest from an image may include applying an augmentation operation, which is a basic morphological operation configured to extend or expand the boundaries of objects (e.g., cells, dust particles, etc.) in the image. In another non-limiting example, isolating a region or feature of interest from an image may include applying a shrink operation, which is a basic morphological operation configured to shrink or erode the boundaries of objects in an image. In yet another non-limiting example, isolating a region or feature of interest from an image may include applying an open operation, which is a basic morphological operation configured to remove small objects or thin structures from an image while preserving larger structures. In yet another non-limiting example, isolating a region or feature of interest from an image may include applying a closure operation, which is a basic morphological operation configured to fill small gaps or holes in objects in an image while preserving the overall shape and size of the objects. These morphological operations may be performed by the image processing module 1144 to enhance the edges of objects, remove noise, or fill gaps in the region or feature of interest before further processing.
[0173] Referring further to Figure 11, in one embodiment, separating a region or feature of interest from an image may involve utilizing an edge detection technique that can detect one or more shapes defined by edges. In one or more embodiments, the feature or region of interest includes one or more component visualization elements 1140. In some cases, each component visualization element 1140 may include a region or feature of interest. The “edge detection technique” as used in this disclosure includes a mathematical method for identifying points in a digital image where the brightness of the image changes abruptly and / or has discontinuities. In one embodiment, such points may be organized into straight and / or curved segments that can be called “edges”. The edge detection technique may be performed by the image processing module 1144 using any suitable edge detection algorithm, including, but not limited to, Canny edge detection, Sobel operator edge detection, Prewitt operator edge detection, Laplacian operator edge detection, and / or difference edge detection. The edge detection technique may include phase-matching based edge detection, which finds all locations in the image where all sine waves in the frequency domain generated using, for example, Fourier decomposition, can have matching phases that indicate the location of an edge. Edge detection techniques can be used to detect the shape of features of interest, such as cells, that represent cell membranes or walls. In one embodiment, edge detection techniques can be used to find closed shapes formed by edges.
[0174] Referring to Figure 11, in a non-limiting example, identifying one or more component visualization elements 1140 may include isolating one or more features of interest using one or more edge detection techniques. Features of interest may include specific regions within a digital image that contain information relevant to further processing, such as one or more component visualization elements 1140. In a non-limiting example, image data located outside of features of interest may contain irrelevant or non-essential information. Such portions of the image containing irrelevant or non-essential information may be ignored by the image processing module 1144, thereby allowing resources to be focused on features of interest. In some cases, features of interest may vary in size, shape, and / or location within the image. In a non-limiting example, features of interest may be presented as a circle around a cell nucleus. In some cases, features of interest may specify one or more coordinates, distances, etc., such as the center and radius of a circle around a cell nucleus in the image. The image processing module 1144 can then be configured to isolate features of interest from the image based on the features of interest. In a non-restrictive example, the image processing module 1144 can crop an image according to a bounding box around a feature of interest.
[0175] Referring further to Figure 11, the image processing module 1144 may be configured to perform connected component analysis (CCA) on the image for the separation of features of interest. “Connected component analysis (CCA),” also known as connected component labeling when used in this disclosure, is an image processing technique used to identify and label connected regions within a binary image (i.e., an image in which each pixel has only two possible values: 0 or 1, black or white, or foreground and background). “Connected region” as described herein is a group of neighboring pixels that share the same value and are connected based on a given adjacency system, such as 4-connected or 8-connected adjacency. In some cases, the image processing module 1144 may convert the image to a binary image via a thresholding process, which may include setting a threshold for separating pixels in the image corresponding to features of interest (foreground) from pixels corresponding to the background. Pixels with intensity values above the threshold may be set to 1 (white), and pixels below the threshold may be set to 0 (black). In one embodiment, CCA can be used to detect and extract features of interest by identifying multiple connected regions that exhibit specific characteristics or properties of the feature of interest. The image processing module 1144 can then filter the multiple connected regions by analyzing multiple connected region characteristics, such as area, aspect ratio, height, width, and perimeter, but is not limited to these characteristics. In an indefinite example, connected components that closely resemble the dimensions and aspect ratio of the feature of interest may be retained by the image processing module 1144 as features of interest, while other components may be discarded. The image processing module 1144 can be further configured to extract features of interest from the image for further processing, as described below.
[0176] Continuing to refer to Figure 11, the processor 1104 and / or the image processing module 1144 may, in some cases, be configured to use an image classifier to identify one or more component visualization elements 1140. The processor 1104 may use the image classifier to classify images or parts thereof in the image dataset 1128. As used in this disclosure, “image classifier” is a machine learning model, such as a mathematical model, a neural network, or a program generated by a machine learning algorithm known as a “classification algorithm,” which classifies image information inputs into categories or bins of data and outputs categories or bins of data and / or labels associated therewith, as will be described in more detail below. The image classifier may be configured to output at least one data that labels or identifies a set of images, such as clustered together and found to be close under a distance metric, as will be described later. The processor 1104 and / or another computing device may generate an image classifier using a classification algorithm, which is defined as the process by which the processor 1104 derives the classifier from training data. Classification can be performed using, but is not limited to, linear classifiers such as logistic regression and / or naive Bayes classifiers, nearest neighbor classifiers such as k-nearest neighbor classifiers, support vector machines, least squares support vector machines, Fisher's linear discriminant, quadratic classifiers, decision trees, boost trees, random forest classifiers, learned vector quantization, and / or neural network-based classifiers. In some cases, the processor 1104 may use an image classifier to identify one or more key images in any data described herein. As used herein, “key image” is an element of visual data used to identify and / or match elements with one another. The image classifier may be trained on already classified binarized visual data to determine key images in any other data described herein. For the purposes of this disclosure, “binarized visual data” is visual data described in binary format.For example, the binarized visual data of a photograph may consist of 1s and 0s, and a specific sequence of 1s and 0s can be used to represent the photograph. The binarized visual data can be used for image recognition, and a specific sequence of 1s and 0s can indicate products present in the image. The image classifier can be any classifier as described herein. The image classifier can receive the input data described herein (e.g., image dataset 1128) and output one or more key images in the data. As used herein, “key image” is an element of the visual data used to identify and / or match elements with one another. As used herein, “classifier” is a machine learning model such as a mathematical model, neural network, or program generated by a machine learning algorithm known as a “classification algorithm,” which is described in more detail below, that sorts the input into categories or bins of data and outputs categories or bins of data and / or labels associated therewith. A classifier as described throughout this disclosure may be configured to output at least one data set that labels or otherwise identifies, for example, datasets that are clustered together and found to be close under a distance metric as described below.
[0177] Continuing to refer to Figure 11, the processor 1104 may be configured to generate a classifier as described throughout this disclosure using a K-Nearest Neighbors (KNN) algorithm. The “K-Nearest Neighbors Algorithm” used in this disclosure includes a classification method that utilizes feature similarity to analyze how similar outlier features are to the training data and classifies the input data into one or more clusters and / or feature categories as represented in the training data. This may be performed by representing both the training and input data in vector form, using one or more measures of vector similarity to identify classifications in the training data and determine the classification of the input data. The K-Nearest Neighbors Algorithm may include specifying a K value, or a number that instructs the classifier to select the k most similar entry training data for a given sample, determining the most common classifier among the entries in the database 1116, and classifying known samples. This may be performed recursively and / or iteratively to generate classifiers that can be used to classify the input data as further samples. For example, an initial set of samples may be run to cover initial heuristics and / or “first inferences” in the output and / or relationships, which may, but are not limited to, seeded with expert input received according to any process for the purposes of this disclosure. As a non-limiting example, the initial heuristics may include ranking the associations between elements of the input and the training data. The heuristics may include selecting some of the highest-ranking associations and / or training data elements.
[0178] Continuing to refer to Figure 11, the algorithm for generating k nearest neighbors generates a first vector output containing the data input cluster, a second vector output containing the input data, and can calculate the distance between the first and second vector outputs using any appropriate norm, such as cosine similarity or Euclidean distance measure. Each vector output can be represented as an n-tuple of values, for the purposes of this disclosure, for the purposes of this disclosure, for the purposes of this disclosure, for the purposes of this disclosure, for the purposes of this disclosure, for the purposes of this disclosure, for the purposes of this disclosure, for the purposes of this disclosure, for the purposes of this disclosure, for the purposes of this disclosure, for the purposes of this disclosure, for the purposes of this disclosure, for the purposes of this disclosure, for the purposes of this disclosure, for the purposes of this disclosure, the n-tuple of values can be represented using a per-category axis of the values represented in the n-tuple of values, for the purposes of this disclosure, for the purposes of this disclosure, for the purposes of this disclosure, for the purposes of this disclosure, the n-tuple of values has a geometric direction that characterizes the relative amounts of the attributes in the n-tuple compared to each other. Two vectors can be considered equivalent if their directions and / or the relative amounts of the values in each vector compared to each other are the same. Thus, as a non-restrictive example, the vector represented as [5, 10, 15] can be treated as equivalent to the vector represented as [1, 2, 3]. Vectors may be more similar if their directions are more similar, and more different if their directions diverge more; however, vector similarity may alternatively or additionally be determined by the average of similarities between similar attributes, or any other measure of similarity suitable for the values of any n-tuple, or by an aggregation of numerical similarities for the purposes of a loss function as described in more detail below. Any vectors for the purposes of this disclosure may be scaled so that each vector represents each attribute along a scale of equivalent values. Each vector may be “normalized,” or Pythagorean norm: JPEG2026513220000012.jpg1922(a iThe vector may be divided by a "length" attribute, such as the length attribute l, which is derived using the vector's attribute number i. Scaling and / or normalization can function to perform vector comparisons independently of the absolute amount of attributes, while preserving any dependence on attribute similarity. This may be advantageous, for example, when the instances represented in the training data are represented by different amounts of samples, resulting in proportionally equivalent vectors with divergent values.
[0179] Continuing to refer to Figure 11, in one embodiment, an image classifier can be used to compare visual data in a dataset, such as an image dataset 1128, with visual data in another dataset. The visual data in the other dataset may include multiple visual data retrieved from a database. In some cases, the image classifier can classify one or more portions of images in the image dataset 1128. In some cases, the image classifier can identify one or more component visualization elements 1140 in one or more images in the image dataset 1128. In some cases, the image classifier can determine the relationship between two or more component visualization elements 1140. For example, the image classifier can be used to determine that two component visualization elements 1140 contain samples 1124 retrieved from the same block. In some cases, the image classifier can identify two related component visualization elements 1140 and their corresponding orientations 1148 from one another. For example, a particular sample 1124 may be oriented at a specific angle relative to another sample 1124. In some cases, the image classifier can be used to distinguish a sample 1124 from other component visualization elements 1140 of no interest. In some cases, an image classifier can be used to determine the edges or boundaries of one or more component visualization elements 1140.
[0180] Continuing to refer to Figure 11, the apparatus 1100 and / or processor 1104 can identify one or more component visualization elements 1140 and determine the relationships between them. Optionally, the image processing module 1144 can classify the component visualization elements 1140 into one or more classes, each class containing component visualization elements 1140 having similar relationships. Optionally, each class can contain categorization, such as any categorization described in this disclosure. Optionally, the image processing module 1144 can determine the orientation 1148 of one or more component visualization elements 1140. For example, the image processing module 1144 may determine the orientation 1148 of a first component visualization element 1140 in a class and, with reference to the first component element, determine the subsequent orientations 1148 of component visualization elements 1140 in the class. Optionally, determining the relationships between one or more component visualization elements 1140 includes determining the spatial distance 1152 between two or more component visualization elements 1140 in an image. For example, a particular image may include multiple samples 1124 that are close to or far apart from each other. In some cases, the processor 1104 can determine the spatial distance 1152 on a pixel-by-pixel basis and / or any other unit of measurement between two or more pixels. In some cases, multiple samples 1124 may be placed in a single image, and each sample 1124 may be placed at a distance from each other. In some cases, the processor 1104 can determine the relationship between one or more samples 1124 in the image by determining the spatial distance 1152 between them.
[0181] Continuing to refer to Figure 11, the apparatus 1100 can modify at least one of one or more component visualization elements 1140. In some cases, the modification may include resizing a particular component visualization element 1140 in the image. In some variations, this may include moving a particular component visualization element 1140 in the image. For example, a particular component visualization element 1140 may be positioned near the bottom of the image, and the apparatus 1100 and / or the image processing module 1144 may move the component visualization element 1140 toward the center of the image. In some cases, the apparatus 1100 may identify the component visualization elements 1140 using one or more techniques as described in this disclosure. In some cases, the image processing module 1144 may isolate one or more component visualization elements 1140 as described above. In some cases, one or more component visualization elements 1140 may be isolated and cropped from the image. In some cases, the component visualization elements 1140 may be positioned on a blank image, such as an image with a white background or a uniform color background. In some cases, the component visualization elements 1140 may be positioned equidistant from each other or within a specific region of the image. In one or more embodiments, modifying the component visualization elements 1140 may include positioning the component visualization elements 1140 within or near the center of the image. In some cases, modifying the component visualization elements 1140 may include separating the component visualization elements 1140 and moving them closer to each other within the image. In one or more embodiments, two or more component visualization elements 1140 may be positioned relatively far apart from each other, resulting in a relatively large amount of unrelated space separating the component visualization elements 1140. In some cases, the image processing module 1144 may separate one or more component visualization elements 1140 and position them closer together or further apart based on a predetermined configuration set. For the purposes of this disclosure, a “configuration set” is a set of information indicating the position and orientation 1148 of one or more component visualization elements 1140 within the image.In some cases, the configuration set may further include a specific size of the image, a specific orientation 1148 of the component visualization elements 1140, and so on. In some cases, the spatial distance 1152 can be calculated by referring to one or more component visualization elements 1140. In one or more embodiments, the distance can be calculated by referring to the size of the image. In some cases, the processor 1104 may be configured to isolate a specific component visualization element 1140 and fill its region with surrounding pixel values. For example, a specific intercept of the isolated component visualization element 1140 may be filled with pixels having similar color values to the surrounding region. Subsequently, the specific region may be filled within the RGB values (255,255,255), where the surrounding values include similar pixel color values. In some cases, the original position of the component visualization element 1140 may be filled with one or more predetermined values, such that the original position resembles the corresponding background of the Image. In some cases, the image processing module 1144 can isolate the component visualization element 1140 and transfer the corresponding pixel values to another location on the image. In some cases, the component visualization component 1140 can be moved across the image by changing the position of the pixel corresponding to the component visualization component 1140. For example, by changing the position to (3, 0), the component visualization component 1140 may be moved in the positive direction along the X-axis. Similarly, by changing the position to (-9, 12), the component visualization component 1140 can be moved in the negative direction of 9 pixels along the X-axis and in the positive direction of 12 pixels along the Y-axis.
[0182] Continuing to refer to Figure 11, modifications to one or more component visualization elements 1140 may include the removal of empty regions in an image. For the purposes of this disclosure, “empty region” refers to a portion of an image of no interest. For example, a particular segment of an image that does not contain a component visualization element 1140 or any part thereof may be referred to as “empty region.” In some cases, the processor 1104 may be configured to reserve a certain amount of empty region or range between two or more component visualization elements 1140. In one or more embodiments where a particular row or column of pixels in an image contains only empty region, the processor 1104 may remove the row or column. In some cases, the processor 1104 may trim one or more regions of a particular image corresponding to the empty region. In some cases, the parameter set defined above may define a certain amount of empty region that may exist between a component visualization element 1140 and the boundary of the image, and between two component visualization elements 1140. In some cases, the processor 1104 may remove the corresponding empty region using one or more image processing techniques as described above to fit a particular image to a particular parameter set. In some cases, the processor 1104 may be configured to use a modified component visualization component 1140 for further processing. In some cases, modifications to the component visualization component 1140 may allow the image to contain a lower number of pixels, thereby enabling easier and faster processing, which can be configured to analyze the image more quickly.
[0183] Continuing to refer to Figure 11, the device 1100 can modify one or more component visualization components 1140 in response to user input 1116. In one or more embodiments, the user interface 1120 can visualize the image with the identified component visualization components 1140. In some cases, the user can select a specific component visualization component 1140 and input a specific position for the component visualization component 1140. In some cases, the user interface 1120 can be configured so that the user can select a specific component visualization component 1140 by clicking a mouse or button. In some cases, the user can drag a specific component visualization component 1140 and "drop" it at a relative position on the image. In some cases, the processor 1104 can associate the release of a mouse click with a drop. In some cases, the mouse position at the time of release can indicate the position of the component visualization component 1140. In some cases, the processor 1104 can isolate the component visualization component 1140 and move it to another location in response to drag and drop. In some cases, user input 1116 may include a keyboard and any other device described herein, and the user may indicate to the device 1100 that a specific component visualization component 1140 has been selected and a specific position has been entered for the new position of the component visualization component 1140. In some cases, the user may further crop the image after modification and crop the empty area surrounding the image.
[0184] Continuing to refer to Figure 11, the apparatus 1100 can classify one or more component visualization components 1140 using an image classifier or any classifier described herein. In some cases, the apparatus 1100 can classify the component visualization components 1140 based on their presence in a particular image, based on the class of their samples 1124 indicated by metadata 1132, based on whether the samples 1124 originate from the same block, etc. In some cases, one or more component visualization components 1140 can be classified into one or more sample classifications 1156. For the purposes of this disclosure, “sample classification” is a grouping of related samples 1124. In some cases, a sample classification 1156 is a grouping of related samples 1124 from the same tissue block, a grouping of samples 1124 is a grouping of the same tissue class (e.g., heart, lung) of samples 1124 contained in each image, etc. In some cases, a particular sample classification 1156 may include serial sections in which each sample 1124 in the classification corresponds to a specific layer of one or more layers retrieved from the tissue block. In some cases, component visualization components 1140 within a particular sample classification 1156 may include similar shapes in that they include sliced layers of a larger tissue block. In some cases, the apparatus 1100 and / or processor 1104 may select a component visualization component 1140 within each classification to be selected as a reference component visualization component 1160. In some cases, each sample classification 1156 may include layers of a tissue block, and each layer includes a sample 1124 or a component visualization component 1140. In some cases, two component visualization components 1140 may include similar features such as similarity, edges, boundaries, and points, resulting from a situation where the two component visualization components 1140 include continuous layers on a tissue block. In some cases, sample 1124 may be identified as belonging to the same tissue block via metadata 1132. A “reference component visualization component” is a component visualization component 1140 that is referenced (e.g., with respect to size, orientation 1148, etc.) in comparison to other component visualization components 1140 having the same classification.The reference component visualization component 1160 may be selected by selecting a first sample 1124 within a tissue block, as indicated by metadata 1132. The reference component component may additionally or alternatively be selected based on the presence of component visualization components 1140 located in the highest part of the image. The remaining component visualization components 1156 in a class or classification may be referred to as “remaining component visualization components 1156”. In one embodiment, the apparatus 1100 and / or processor 1104 may classify the component visualization components 1140, with each classification containing one reference component visualization component 1160 and one or more remaining component visualization components 1156. In one or more embodiments, the image processing module 1144 may receive orientation 1148 of the reference component visualization component 1160 in each class or classification or of each reference component visualization component 1160. In some cases, the orientation 1148 can be determined using keypoint matching, and the relative orientation 1148 of the reference component visualization element 1160 can be determined using corners, edges, boundaries, etc. In some cases, the orientation 1148 of the reference component visualization element 1160 may be calculated to be 0. In some cases, the orientation 1148 of each reference component visualization element 1160 may be input by the user, and the user may select the orientation 1148 of the reference component visualization element 1160. In some cases, the processor 1104 can determine the similarity between two component visualization elements 1140, such as corners, edges, boundaries, etc., and determine the orientation 1148 of the remaining component visualization elements 1164 relative to the reference component visualization element 1160. In one or more embodiments, two consecutive layers of sample 1124 may contain similar corners, edges, boundaries, or any other characteristic features, and the processor 1104 may receive a reference component visualization element 1160 and compare it with a consecutive component visualization element 1140 that contains similar edges, boundaries, etc. In some cases, the edges, boundaries, etc. of each component visualization element 1140 can be determined using a machine vision system as described above.In some cases, consecutive visualization elements may be given an orientation 1148 relative to a reference component visualization element 1160 based on the orientation 1148 of a matching keypoint. In some cases, consecutive layers within a block may contain similar keypoints, while discontinuous layers may not. In some cases, the orientation 1148 of consecutive layers in an tissue block may be determined by using the reference component visualization element 1160 as a reference for the maintenance component visualization element 1140, and using the consecutive component visualization element 1140 for the next consecutive component visualization element 1140. For example, a first slide can be considered a reference, with the second slide measured against a reference, and the third slide measured against the second slide, with the angle determined against the first slide. As a result, the orientation 1148 of each remaining component visualization element 1164 can be determined based on the previously determined component visualization element 1140.
[0185] Continuing to refer to Figure 11, the processor may perform one or more image alignment techniques, such as one or more image alignment techniques as described above, to determine the orientation of each component visualization element 1140. The processor 1104 may generate multiple alignments that match each frame of multiple frames (each frame may be correlated to an image) of the image dataset 1128 to a field coordinate system. As used herein, “field coordinate system” refers to a coordinate system of the field of view, such as a Cartesian coordinate system or a polar coordinate system. In other words, the position of an object in a field coordinate system is static unless the object moves. The field coordinate system may include a three-dimensional coordinate system. The origin of the field coordinate system may be selected for the selection of pixels on a frame, such as the first frame described below, for computational convenience, for example, the origin on the coordinate system of the first frame, for example, for computational convenience, for example, the origin on the coordinate system of the first frame.
[0186] Continuing to refer to Figure 11, generating multiple alignments involves defining a first alignment of a first frame to a field coordinate system. As used in this disclosure, “aligning” a frame to a coordinate system means identifying the position of each pixel in the frame within the coordinate system by directly identifying the position of each pixel, and / or by identifying the positions of a sufficient number of pixels, such as corner pixels of the frame, to mathematically enable the mathematical determination of the positions of all other pixels. Alignment may involve identifying the coordinates of several extra pixels up to the minimum number required to identify their positions within the coordinate system, e.g., one extra pixel, twice as many, or ten times as many pixels, and the extra pixels can be used to perform error detection and / or correction, for example, as will be described in more detail below. Alignment of a frame to a field coordinate system can be characterized as a map relating each pixel in the frame and / or its coordinates in the frame coordinate system to pixels in the field coordinate system. Such a mapping may result in a two-dimensional projection of corresponding three-dimensional coordinates on one or more two-dimensional images. The first frame can be selected based on a command received from memory 1108 at the time of initial vehicle detection, at the start of a predetermined process, and / or as the frame generated when such command is received, if the object of interest is within the first frame of the image. The first frame may include two frames from which two frames are captured for the stereoscopic image. In this case, each such frame can be registered separately, and the corresponding subsequent frame can be registered with respect to the corresponding original first frame. In the following description, it should be assumed that each process described can be performed in parallel with respect to two families or streams of frames that form the stereoscopic image.
[0187] Continuing to refer to Figure 11, the processor 1108 can generate an affine motion transformation as a function of the detected change and calculate the second alignment of the second frame to the field coordinate system. As used in this disclosure, “affine motion transformation” can include any mathematical description usable to describe the affine motion of pixels in a display relative to the field coordinate system, and “affine motion” is motion in a space such as three-dimensional space that maintains the ratio of the lengths of parallel line segments. For example, a three-dimensional affine transformation can be represented by a 4x4 matrix, for instance. For example, the translation by the vector [x, y, z] in the x, y, and z components of motion in Cartesian coordinates can be represented by a 4x4 matrix:
[0188] JPEG2026513220000013.jpg1724
[0189] Three-dimensional rotations can also generally be represented by a 4x4 matrix. For example, a rotation can be represented by multiplying each set of coordinates by a matrix calculated using Euler angles ψ, θ, and φ, which represent rotations limited to the yz, zx, and xy planes. These angles can be called roll, yaw, and pitch, respectively. In general, a rotation can be represented by a matrix M calculated as follows:
[0190] JPEG2026513220000014.jpg14135
[0191] Affine transformations can be represented using any alternative or additional mathematical representation and / or process, but are not limited to those described above. The calculation and derivation of linear transformations can be performed using an FPGA, ASIC, or other dedicated hardware module designed to perform high-speed computations, but are not limited to those described above. Trigonometric functions may, as an unrestricted example, be implemented as a lookup table stored, for example, in read-only memory (ROM). Alternatively or additionally, one or more such storage and / or processes may be performed by a microprocessor, microcontroller, etc., for example, in assembly language or a higher-order language. The lookup tables, transformation calculations, and / or the storage of vector and / or matrix values may be performed redundantly for use in error detection and / or correction, as will be described in more detail below. The processor 1108 can repeat the processes described above to align multiple frames and / or each frame of multiple frames based on the alignment of a first frame.
[0192] Continuing to refer to Figure 11, the processor 1104 can reorient one or more remaining component visualization components 1164 in accordance with the categorization of component visualization components 1140 and the orientation 1148 of each reference component visualization component 1160. In some cases, the processor 1104 may be configured to rotate the remaining component visualization components 1164 based on the orientation 1148. In one or more embodiments, the remaining component visualization components 1164 may be oriented to a "0" degree angle or relative to the reference component visualization component 1160. In one or more embodiments, the processor 1104 may utilize one or more alignment transformation techniques to rotate the reference component visualization component 1152 and the remaining component visualization components 1164. The alignment transformation technique may include matching one or more keypoints, which are oriented until the component visualization component 1140 is oriented to the same angle as the reference component visualization component 1160. In some cases, the alignment transformation may include the use of one or more transformation matrices in which a specific component visualization element 1140 is placed in a matrix and the processor 1104 transforms the matrix into a resulting matrix that takes into account the angle of orientation 1148. In some cases, the alignment transformation technique may include one or more matrix transformation techniques in which a specific grouping of pixels of the component visualization element 1140 is transformed using matrix transformations. In some cases, the remaining component visualization elements 1164 may be “re-oriented,” where “re-orientation” indicates that the reference component visualization element 1152 and the remaining component visualization elements 1164 are oriented at the same angle.
[0193] Continuing to refer to Figure 11, the processor 1104 may generate a configuration set. The configuration set may include any processing techniques as described herein. For example, the configuration set may include the original orientation 1148 and the corresponding new orientation 1148 for each component visualization component 1140. Similarly, the configuration set may include a specific spatial distance 1152 generated between two component visualization components 1140. In some cases, the configuration set may include a specific annotation and / or component visualization component 1140 that has been removed in the image. In some cases, the configuration set may include any modifications to multiple images and component visualization components 1140, as described above.
[0194] Continuing to refer to Figure 11, the processor 1104 is configured to generate a plurality of virtual images 1168 depending on the relationship between the image dataset 1128 and one or more virtual component elements. For the purposes of this disclosure, “virtual image” is an image modified by the apparatus 1100. In some cases, each of the plurality of virtual images 1168 may correspond to each image in the image dataset 1128. In one or more embodiments, each image may include a component visualization element 1140 that contains only the sample 1124 of interest. In some cases, each virtual image 1168 may include the removal of one or more component visualization elements 1140, such as annotations, bubbles, debris, glue, and any other undesirable component visualization elements 1140 in one or more images in the image dataset 1128. In some cases, generating one or more virtual images 1168 includes changing the position and / or orientation 1148 of the component visualization elements 1140 and positioning the component visualization elements 1140 within a particular area of the image. In some cases, the virtual image 1168 may include a white or uniformly colored background, and each component visualization element 1140 may be cropped and overlaid on a white background. In one or more embodiments, the virtual image 1168 may include only the component visualization elements 1140 of interest. For example, the processor 1104 may remove one or more annotations, bubbles, etc., that are not important to the sample 1124. In some cases, the virtual image 1168 may include component visualization elements 1140, etc., that are equidistant from each other and oriented relative to each other. In some cases, the virtual image 1168 may include any modifications made to one or more images using one or more image processing techniques as described above.
[0195] Continuing to refer to Figure 11, the processor 1104 can generate multiple virtual images 1168 using the image processing module 1144, in which specific component visualization elements 1140 are selected and placed in different areas of the image. In some cases, the processor 1104 can generate a virtual image 1168 by orienting one or more component visualization elements 1140 in the image, as described above. In some cases, the processor 1104 can generate one or more virtual images 1168 via one or more image transformation techniques and / or alignment transformation techniques, as described above. In some cases, each virtual image 1168 may contain one or more samples 1124 associated with a specific sample classification 1156. In some cases, the processor 1104 can crop component visualization elements 1140 within the same category and place them in a single image. In some cases, the processor 1104 can further orient the component visualization elements 1140 so that all of them are oriented in the same direction.
[0196] Continuing to refer to Figure 11, in some cases, multiple virtual images 1168 may be generated based on the configured settings. In one embodiment, the configuration set may include instructions for generating one or more images. In one embodiment, the virtual images 1168 can be generated based on the configuration set, and a particular configuration set can be shown to demonstrate how the virtual images 1168 can be generated.
[0197] Continuing to refer to Figure 11, the processor 1104 may, in some cases, determine the spatial distance 1152 between one or more component visualization elements 1140 on the image and modify the positions of the elements so that they are equidistant from each other. In some cases, the processor 1104 may, as described above, determine the spatial distance 1152 between each component visualization element 1140 in accordance with the identification of each component visualization element 1140 and modify one or more images so that the component visualization elements 1140 are arranged at equal intervals. For example, the first sample 1124 may be equally spaced from the second element, and the second element may be equally spaced from the third element. In some cases, the specific position of each component visualization element 1140 may be equidistant from each boundary of the image along the X-axis. In one embodiment, the outermost edge of each component visualization element 1140 may be equidistant from the boundary on the image along the X-axis. In some cases, each component visualization element 1140 can be viewed as a uniform column, with the first component visualization element 1140 positioned above the second component visualization element 1140, and the second component visualization element 1140 positioned above the third component visualization element 1140. In some cases, one or more component visualization elements 1140 may be positioned within substantially the same range along a particular axis. For example, one or more component visualization elements 1140 may be positioned within substantially the same region along the Y-axis, and each component visualization element 1140 can be viewed from top to bottom. In one embodiment, the specific arrangement of each component visualization element 1140 on the image can enable appropriate comparison between two or more component visualization elements 1140 positioned on the image. This may include, but is not limited to, comparisons of size (length and width), color, shape, etc. In some cases, each virtual image 1168 may include reoriented component visualization elements 1140 and their adjusted positions within the image. In some cases, each virtual image 1168 within a group of virtual images 1168 may be similar in size, and this size can enable the proper integration of one or more images.For example, multiple virtual images 1168 may have similar heights, and the virtual images 1168 can be merged to create a larger image (containing multiple virtual images 1168) with a uniform height. Similarly, in some cases, multiple virtual images 1168 may have similar dimensions to ensure uniformity between one or more virtual images 1168. In some cases, each virtual image 1168 can be generated using a specific size template, which includes information about the length and width of the image. In some cases, each sample classification 1156 may contain virtual images 1168 of similar size. In some cases, multiple virtual images 1168 may contain images of similar size. As described above, the image processing module 1144 can rearrange one or more component visualization components 1140 within the image to ensure that the component visualization components 1140 are properly positioned within the resized image.
[0198] Continuing to refer to Figure 11, each virtual image 1168 may include at least one virtual component component. For the purposes of this disclosure, a “virtual component visualization component” is a component visualization component 1140 modified by one or more modification techniques as described above. For example, a virtual component visualization component 1172 may include a rotated component visualization component 1140, a component visualization component 1140 repositioned to a different region of the image, and so on. In some cases, a component visualization component 1140 may be partially obscured by dust, bubbles, etc. As a result, a virtual component visualization component 1172 may include a modified component visualization component 1140 that is no longer obstructed by bubbles and dust, etc. In some cases, the image processing module 1144 may use one or more “content recognition” techniques such that a particular region to be filled can be filled with surrounding pixels of that region. For example, annotations or dust on a sample 1124 may be removed using the image processing module 1144, and the resulting region may be filled with surrounding pixels of that region. In some cases, the image processing module 1144 may use a machine learning model to infer and / or determine an obscured intercept of a particular component visualization element 1140. The process and / or image processing module 1144 may, for the purposes of this disclosure, use a machine learning module, such as a visualization machine learning module, to implement one or more algorithms or generate one or more machine learning models, such as a visualization machine learning model, to generate one or more virtual component visualization elements 1172. However, the machine learning modules are typical, and it may not be necessary to generate one or more machine learning models and perform any machine learning described herein. In one or more embodiments, training data may be used to generate one or more machine learning models. The training data may include inputs and corresponding predetermined outputs so that the machine learning model can develop algorithms and / or relationships using the correlation between typical inputs and outputs provided, and then enable the machine learning model to determine its own output for the inputs.The training data may include correlations that a machine learning process can use to model the relationships between two or more categories of data elements. Typical inputs and outputs may be derived from a database, such as any database described herein, or provided by a user. In other embodiments, a machine learning module may obtain a training set by querying a communicably connected database containing historical inputs and outputs. The training data may include inputs from various types of databases, resources, and / or user inputs 1116, and outputs correlated to each of those inputs, so that a machine learning model can determine the outputs. The correlations may indicate causal and / or predictive links between data that can be modeled by a machine learning model as relationships, such as mathematical relationships, as will be described in more detail below. In one or more embodiments, the training data may be formatted and / or organized by the categories of data elements, for example, by associating data elements with one or more sample classifications 1156 corresponding to the categories of the data elements. As a non-limiting example, the training data may include data input in a standardized format by a person or process so that inputs of a given data element in a given field in a form can be mapped to one or more categories. Elements within the training data may be linked to categories by tags, tokens, or other data elements. A machine learning module, such as the Visualization Machine Learning Module, can be used to generate a Visualization Machine Learning Model and / or any other machine learning models described herein using the training data. The Visualization Machine Learning Model can be trained with correlated inputs and outputs of the training data. The training data may be a dataset already transformed from raw data, whether manually, mechanically, or by any other method. The Visualization Training Data can be stored in a database. The Visualization Training Data may also be retrieved from the database.In some cases, visualization training data can enable the processor 1104 and / or the image processing module 1144 to compare two data items, sort them efficiently, and / or improve the accuracy of the analysis method. In some cases, visualization training data can be used to improve the accuracy of generating one or more virtual component visualization elements 1172. In some cases, the training data may include classified inputs and classified outputs, and the outputs may include higher accuracy by outputting elements that have similar classifications.
[0199] Continuing to refer to Figure 11, in one or more embodiments, a machine learning module may be generated using training data. The training data may include inputs and corresponding predetermined outputs so that the machine learning module can develop algorithms and / or relationships using correlations between typical inputs and outputs provided, and then enable the machine learning module to determine its own output for an input. The training data may include correlations that the machine learning process can use to model relationships between two or more categories of data elements. Typical inputs and outputs may come from a database, such as any database described herein, or may be provided by a user, such as a prospective employee, lab technician, physician, and / or employer. In other embodiments, a visualization machine learning module may obtain a training set by querying a communicably connected database containing historical inputs and outputs. The training data may include inputs from various types of databases, resources, and / or user inputs, and outputs that correlate to each of those inputs, so that the machine learning module can determine an output. Correlations can indicate causal and / or predictive links between data that can be modeled by the machine learning process as relationships, such as mathematical relationships, as will be described in more detail below. In one or more embodiments, the training data may be formatted and / or organized by categories of data elements, for example, by associating data elements with one or more sample classifications 1156 corresponding to categories of data elements. As a non-limiting example, the training data may include data entered in a standardized format by a person or process, such that the input of a given data element in a given field in the format can be mapped to one or more categories. Elements in the training data may be linked to categories by tags, tokens, or other data elements.
[0200] Continuing to refer to Figure 11, the visualization training data may include multiple component visualization components 1172 associated with multiple samples 1124 and / or multiple virtual component visualization components 1140. In one embodiment, specific inputs can be used to fill the occluded regions of the component visualization component 1140 and generate the virtual component visualization component 1172. In some cases, the training data may show that specific inputs correlate with other inputs, and the image processing module 1144 can remove obstacles and fill the regions with correlated outputs. In one or more embodiments, visualization training data can be created using past inputs that correlate with past outputs. In some cases, the visualization training data may include multiple samples 1124 input by the user and retrieved from a database or the like. In one or more embodiments, the visualization machine learning model may be trained by the visualization machine learning model. In one or more embodiments, the virtual component visualization component 1172 can be generated as a function of the machine learning model. In some cases, the machine learning model may be generative, and portions of the component visualization component 1140 may be filled using one or more generative machine learning techniques, as described below. In some cases, training data can be classified by sample classification 1156, and each sample classification 1156 may include inputs and outputs that fall into the same classification. In one embodiment, the classified training data can improve the accuracy of the machine learning model. In one embodiment, similar-looking samples 1124 belonging to different sample classifications 1156 can be classified, and the machine learning model can appropriately apply the correct correlation output.
[0201] Continuing to refer to Figure 11, in some cases, generating multiple virtual images 1168 may include receiving input via the user interface 1120. In one embodiment, the user can input desired parameters for the virtual image 1168, and the virtual image 1168 can be generated based on the desired parameters. For example, the user may want to space each component visualization element 1140 by a specific distance, and the virtual image 1168 may include virtual component visualization elements 1172 spaced by that specific distance. In some cases, a particular component visualization element 1140 or part thereof may not be identifiable, and the user can use input 1116 to select a part of the image to be used as the component visualization element 1140. In some cases, the user may select various parts of the image that contain undesirable component visualization elements 1140, and the image processing module 1144 can crop and remove the component visualization elements 1140 from the image. For example, dust on a captured slide can be removed. In some cases, the user may want to rotate a specific component visualization component 1160, such as a reference component visualization component 1140, and the remaining component visualization components 1164 can be rotated relative to the reference. In some cases, the user may want to retain a specific component visualization component 1140, and the user can input this component visualization component 1140 via a usage interface. In some cases, the processor 1104 and / or the image processing module 1144 can generate a specific virtual component visualization component 1172, and the user can instead attempt to view the original component visualization component 1140. In some cases, the user may input a specific set of images to be viewed sequentially, and multiple virtual images 1168 can be generated in the corresponding order. For example, user input 1116 may indicate that a particular virtual image 1168 should be the first in the list of images, and a second virtual image 1168 should be the second in the list of images, so that they can be viewed properly later. In some cases, user input 1116 may further include the dimensions of each image.For example, the user may input that each image should have the same aspect ratio as paper, 8.5 x 11. In another non-limiting example, the user may input that each virtual image 1168 should be in a specific format that allows multiple virtual images 1168 to be viewed simultaneously on a single display. In some cases, the component visualization component 1140 may include annotations, which may include writing, parts thereof, or any other markings or indications made by the individual. In some cases, the processor 1104 may be configured to receive one or more configurable parameters 1176 that include instructions on how a particular virtual image 1168 should be created. For example, the configurable parameter 1176 may include any of the above user inputs 1116, such as user input 1116 regarding the rotation of the component visualization component 1140. In some cases, each element of a configuration set may include a configurable parameter 1176, and multiple configurable parameters 1176 may constitute a particular configuration set. In some cases, the configurable parameter 1176 may include user input to retain or remove specific annotations on the image. For example, a particular annotation may partially obstruct a particular component visualization element 1140. In some cases, the processor 1104 and / or the image processing module 1144 may be automatically configured to remove annotations that do not have user input 1116. In some cases, a configurable parameter 1176 may indicate that a virtual component visualization element 1140 will retain a particular annotation on a component visualization element 1172 that also includes the annotation. In some cases, the annotation may be seen as part of the component visualization element 1140, and rotation of the component visualization element 1140 will also rotate the annotation. In some cases, the processor 1104 and / or the image processing module 1144 may be configured to remove one or more annotations based on one or more configurable parameters 1176. For example, if a particular configurable parameter 1176 indicates that an annotation should remain, the image processing module 1144 and / or the processor 1104 may leave the annotation in the image.In some cases, the processor 1104 may receive one or more configurable parameters 1176 as a function of user input 1116. In some cases, the processor 1104 may receive one or more configurable parameters 1176 from a database or storage.
[0202] Continuing to refer to Figure 11, in some cases, a configuration set as described above may be presented to the user, the user may modify the configuration set, and modification of the configuration set may cause modification of the virtual image 1168. For example, a change in a particular orientation 1148 in the configuration set may cause an orientation 1148 of a particular component visualization element 1140 in one or more virtual images 1168. In one embodiment, a particular configuration set may be presented to the user before the generation of one or more images, and the virtual images 1168 may be generated after the acceptance or modification of the configuration set. In some cases, the user may modify the configuration set generated in response to the modification of multiple virtual images 1168. In some cases, the configuration set may include information related to each image in the image dataset 1128, as well as related configurations and / or configurable parameters 1176 of a particular image.
[0203] Continuing to refer to Figure 11, in some cases, the images in the image dataset 1128 may include images with lower pixel density and / or quality. In some cases, images with lower pixel density may allow for faster processing of each image. In some cases, images with lower pixel density and / or smaller size may allow for faster processing of each image in the image dataset 1128. In some cases, the processor 1104 and / or processing module may generate a configuration set, which can be used on a higher-quality image to enable faster processing. In some cases, each image in the image dataset 1128 may be associated with a similar image of higher quality. In some cases, the processor 1104 may generate a configuration set based on the image dataset 1128 and use the configuration set to generate a virtual image 1168 based on a higher-quality image. In some cases, the configuration set may include alignment transformations and other information related to the orientation 1148 of the component visualization components 1140, and the processor 1104 may be configured to apply the configuration set to a higher-quality image. In some cases, the processor 1104 may use pyramid processing techniques. "Pyramid processing" involves processing low-resolution images to obtain a specific set of results, which can then be applied to high-resolution images. In some cases, the processor 1104 may perform one or more decisions and / or calculations, as described herein, on images in the image dataset 1128 and store the results as a configuration set. The configuration set can then be used to perform one or more decisions and / or modifications on high-resolution photographs containing the same images. In some cases, the processor 1104 may "upsample" the results so that the results are applied to higher-resolution images. Upsampling is the process of extending a particular calculation or signal and applying it to a higher signal. For example, an image may be upsampled to include a higher resolution. An image may be upsampled by adding pixels to the image via one or more interpolation techniques.In some cases, calculations performed on low-resolution images may be upsampled so that they can be applied to high-resolution images. In some cases, a particular signal or calculation may be scaled up by a factor of two, in situations where a higher signal is twice as large. With respect to images, calculations performed on lower-resolution images may be upsampled by the difference in the ratio of the smaller image to the larger image. In some cases, the configuration set may be upsampled using one or more upsampling techniques such as bilinear interpolation or bicubic interpolation. In some cases, the processor may be configured to receive a classified portion of each image in the image dataset and apply the classified portion to a higher image. In some cases, the processor may be configured to receive a bounding box for each classified portion of an image and use the bounding box to identify one or more component visualization elements in a high-resolution image. In some cases, the configuration set may include bounding boxes, and the bounding boxes may include reference points for object detection. In some cases, the processor may be configured to calculate the ratio of the smaller image to the higher resolution in the image dataset 1128 and perform appropriate upsampling of calculations in the configuration set. In some cases, the processor may be configured to perform one or more image alignment processes as described in this disclosure, in which various features such as edges and boundaries are analyzed, and these processes are applied to a higher resolution image. In some cases, the configuration set may be configured to receive parameters describing the relationship between a reference component 1160 and the remaining component components 1164, and to apply them to a higher resolution image using one or more upsampling methods.
[0204] Continuing to refer to Figure 11, the processor 1104 can receive multiple high-resolution images, each high-resolution image being associated with an image from an image dataset 1128. In some cases, the multiple high-resolution images can be captured using a macro camera 1136, an automated microscope, an imaging device, a high-resolution imaging device, and other devices described herein. In some cases, the processor 1104 can use a configuration set to modify one or more high-resolution images and generate one or more virtual images 1168. In one embodiment, a particular virtual image 1168 may include a high-resolution image modified based on the generated configuration set. In one embodiment, each high-resolution image is associated with a particular image in the image dataset 1128, and configurable parameters 1176 of the image in the image dataset 1128 can be transferred to the high-resolution image. In some cases, generating a configuration set can enable modification of high-resolution images in faster processing times. In one embodiment, a particular image with a lower pixel density may be processed faster than an image with a higher pixel density. In one embodiment, the processor 1104 can use an image processing module 1144 to detect keypoints in the high-resolution images and compare those keypoints with the low-resolution images. In one embodiment, the processor 1104 can then modify one or more component visualization components 1140 in the image dataset 1128 using configuration parameters. In some cases, component visualization components 1140 in high-resolution images may be reoriented based on a configuration set or based on the reorientation of images in the image dataset 1128 as described above. In some cases, any of the modifications described above and / or any modifications described within the configuration set can be used to modify one or more high-resolution images.
[0205] Continuing to refer to Figure 11, the processor 1104 is configured to generate a combined virtual image 1180 as a function of multiple virtual images 1168. In some cases, the combined virtual image 1180 may be further generated as a function of an image dataset 1128. For the purposes of this disclosure, “combined virtual image 1180” is a processed image composed of multiple images. In some cases, the combined virtual image 1180 may include images of multiple virtual images 1168 that have been stitched together. For example, a first virtual image 1168 and a second virtual image 1168 may be stitched together to create one large image. In some cases, generating the combined virtual image 1180 may include matching the edges of the first virtual image 1168 and the second virtual image 1168 with each other via one or more commonly known stitching techniques used in one or more computing devices. In some cases, the combined virtual image 1180 may include one or more images that have been stitched together with each other, such that the boundaries of the first image can be connected to the boundaries of the second image. In some cases, the processor 1104 may overlay one or more images together using one or more positioning techniques. In some cases, each virtual image 1168 may have a similar height, including an unknown height in the integrated virtual image 1180. In some cases, each virtual image 1168 may further include an unshaped length, and the length of the integrated image may consist of four images of equal length. In some cases, each image in the integrated image may be separated by a boundary. In some cases, the integrated image may consist of a template, and each virtual image 1168 may be placed within the template. In some cases, the processor 1104 may be configured to retrieve one or more templates from a database that can generate one or more integrated images using a particular template. In some cases, each integrated image may include multiple virtual images 1168 that have been captured sequentially, such as images captured one after another, as indicated by metadata 1132 in the image dataset 1128.In some cases, each integrated image may include multiple virtual images 1168 belonging to a specific classification, such as sample classification 1156. In some cases, each integrated image may include virtual images 1168 associated with images captured from the same stack. In one embodiment, the integrated image can enable ergonomic observation in which multiple samples 1124 can be viewed simultaneously. In one embodiment, the integrated virtual image 1180 can enable ergonomic observation in which each virtual image 1168 is aligned, allowing for the proper placement of one or more samples 1124 in the image. In some cases, the processor 1104 may use one or more image stitching techniques to create the integrated virtual image 1180. In some cases, the processor 1104 may receive a specific image template configured to receive one or more virtual images 1168 having specific size requirements. In some cases, each virtual image 1168 may be of non-shape size, and the specific template may be configured to receive a specific image. In some cases, each template may be configured to receive a virtual image 1168. In some cases, each image template may include one or more sections, and each section may be configured to receive a specific image. In some cases, generating an integrated image may include receiving a high-resolution image, such as an image acquired from a macro camera 1136, and the integrated image may consist of multiple macro images. In some cases, the processor 1104 may be configured to generate an integrated macro image, which may coincide with an integrated virtual image 1180, but the images within the integrated macro image may consist of macro images and / or high-resolution images. In some cases, the processor 1104 may be further configured to display the integrated virtual image 1180 to a user using one or more displays and / or display devices, as described in this disclosure.
[0206] Referring here to Figure 12, a method 1200 for visualizing digitized class slides belonging to a patient case is preferred. In step 1205, method 1200 includes receiving an image dataset having multiple images of one or more samples and metadata of the multiple images of one or more samples, at least by a processor. Optionally, receiving the image dataset by at least a processor includes acquiring at least one macro image of the sample via a macro camera. This may be carried out with reference to Figures 1 to 11, but is not limited thereto.
[0207] Continuing to refer to Figure 12, in step 1210, method 1200 includes, at least by a processor, identifying one or more component visualization elements for each image of a plurality of images in the image dataset. In some cases, method 1200 may further include, at least by a processor, determining, for each image of a plurality of images in the image dataset, the membership of the set of images to be visualized as a function of the image dataset. This can be done with reference to Figures 1 to 11, but is not limited thereto.
[0208] Continuing to refer to Figure 12, in step 1215, method 1200 includes, at least by a processor, determining the relationships between one or more component visualization elements as a function of an image dataset. Optionally, determining the relationships between one or more component visualization elements by at least a processor includes identifying one or more component visualization elements, modifying at least one of the one or more component visualization elements, and determining the relationships between one or more component visualization elements as a function of the modifications. Optionally, determining the relationships between one or more component visualization elements by at least a processor further includes classifying one or more component visualization elements into one or more sample categories, each sample category comprising a reference component visualization element and one or more remaining component visualization elements, receiving orientations for each reference component visualization element and one or more remaining component visualization elements of the one or more sample categories, and reorienting one or more remaining component visualization elements in accordance with the categorization and orientation of each reference component visualization element of the one or more reference component visualization elements. In some cases, determining the relationships between one or more component visualization elements by at least a processor involves identifying one or more component visualization elements using an image processing module. This may be done with reference to Figures 1 to 11, but is not limited thereto.
[0209] Continuing to refer to Figure 12, in step 1220, method 1200 includes, at least by a processor, constructing a plurality of virtual images in accordance with the relationships between an image dataset and one or more virtual component elements, each of the plurality of images including at least one virtual component element. Optionally, constructing a plurality of virtual images as a function of the relationships between an image dataset and one or more virtual component elements by at least a processor further includes receiving input via a user interface and generating a plurality of virtual images as a function of the input. Optionally, constructing a plurality of virtual images as a function of the relationships between an image dataset and one or more virtual component elements by at least a processor further includes generating a plurality of virtual images as a function of the reorientation of one or more component visualization elements. Optionally, constructing a plurality of virtual images by at least one processor further includes receiving a plurality of high-resolution images, each of which is related to each image in the image dataset, and generating a plurality of virtual images as a function of the high-resolution images and one or more remaining component visualization elements. In some cases, constructing multiple virtual images as a function of an image dataset, at least by a processor, further includes determining the spatial distance between each reference component visualization and one or more remaining virtual component components for each of the multiple images, and constructing at least one virtual image of the multiple virtual images as a function of the spatial distance. In some cases, constructing multiple virtual images as a function of an image dataset, at least by a processor, further includes identifying one or more annotations on at least one of the multiple images, receiving one or more configurable parameters for the multiple images, and removing one or more annotations as a function of one or more configurable parameters. In some cases, one or more configurable parameters are received as a function of user input. This can be done with reference to Figures 1 to 11, but is not limited thereto.
[0210] Continuing to refer to Figure 12, in step 1225, method 1200 includes generating an integrated virtual image as a function of multiple virtual images, at least by a processor. In some cases, generating an integrated virtual image as a function of multiple virtual images includes generating an integrated macro image as a function of multiple virtual images. This can be done with reference to Figures 1 to 11, but is not limited thereto.
[0211] Continuing with Figure 12, in step 1230, method 1200 includes displaying an integrated virtual image by at least a processor. This can be carried out with reference to Figures 1 to 11, but is not limited thereto.
[0212] It should be noted that any one or more of the embodiments and models described herein can be conveniently implemented using one or more machines programmed according to the teachings herein (e.g., one or more computing devices used as a user computing device for electronic documents, one or more server devices such as a document server, etc.), as will be obvious to those skilled in the art. Appropriate software coding can be readily produced by programmers skilled in the art based on the teachings of this disclosure. The above embodiments and implementations using software and / or software modules may also include appropriate hardware to assist in the implementation of machine-executable instructions of the software and / or software modules.
[0213] Such software may be a computer program product that uses a machine-readable storage medium. The machine-readable storage medium may be any medium capable of storing and / or encoding a set of instructions for execution by a machine (e.g., a computing device), causing the machine to execute any one of the methods and / or embodiments described herein. Examples of machine-readable storage media include, but are not limited to, magnetic disks, optical disks (e.g., CDs, CD-Rs, DVDs, DVD-Rs, etc.), magneto-optical disks, read-only memory "ROM" devices, random access memory "RAM" devices, magnetic cards, optical cards, solid-state memory devices, EPROMs, EEPROMs, and any combination thereof. As used herein, machine-readable media are intended to include a single medium, as well as a collection of physically separate media, such as a compact disk combined with computer memory or a collection of one or more hard disk drives. As used herein, machine-readable storage media do not involve transient forms of signal transmission.
[0214] Such software may also include information (e.g., data) that is carried as a data signal on a data carrier, such as a carrier wave. For example, machine-executable information may be included as a data-carrying signal embodied on a data carrier, where the signal encodes a sequence or part of instructions for execution by a machine (e.g., a computing device), and any relevant information (e.g., data structures and data) that causes the machine to execute any one of the methods and / or embodiments described herein.
[0215] Examples of computing devices include, but are not limited to, e-book readers, computer workstations, terminal computers, server computers, handheld devices (e.g., tablet computers, smartphones, etc.), web appliances, network routers, network switches, network bridges, any machine capable of executing a set of instructions that specify the actions it should take, and any combination thereof. In one example, a computing device may include and / or be contained within a kiosk.
[0216] Figure 13 shows a schematic diagram of one embodiment of a typical computing device of computer system 1300, in which a set of instructions can be executed to cause a control system to execute any one or more aspects and / or methodologies of the present disclosure. It is also conceivable that multiple computing devices could be used to implement a specially configured set of instructions on one or more of the devices to execute any one or more aspects and / or methodologies of the present disclosure. Computer system 1300 includes a processor 1304 and memory 1308 that communicate with each other and with other components via a bus 1312. The bus 1312 may include any of several types of bus structures, including but not limited to a memory bus, a memory controller, a peripheral bus, a local bus, and any combination thereof, using any of various bus architectures.
[0217] Processor 1304 may include, but is not limited to, any suitable processor, such as a processor incorporating logic circuits for performing arithmetic and logical operations, such as an arithmetic logic unit (ALU), which may be coordinated by a state machine and directed by operational inputs from memory and / or sensors, and processor 1304 may, as an unrestricted example, be organized according to Von Neumann and / or Harvard architectures. Processor 1304 may include, and / or be incorporated into, microcontrollers, microprocessors, digital signal processors (DSPs), field-programmable gate arrays (FPGAs), complex-programmable logic devices (CPLDs), graphical processing units (GPUs), general-purpose GPUs, tensor processing units (TPUs), analog or mixed-signal processors, trusted platform modules (TPMs), floating-point units (FPUs), system-on-modules (SOMs), and / or system-on-chip (SoCs).
[0218] Memory 1308 may include a variety of components (e.g., machine-readable media) including, but not limited to, random-access memory components, read-only components, and any combination thereof. For example, a basic input / output system 1316 (BIOS) containing basic routines that help transfer information between elements within the computer system 1300 during startup, etc., may be stored in memory 1308. Memory 1308 may also include instructions (e.g., software) 1320 (e.g., stored in one or more machine-readable media) that embody any one or more aspects and / or methodologies of this disclosure. In another example, memory 1308 may further include any number of program modules, including, but not limited to, an operating system, one or more application programs, other program modules, program data, and any combination thereof.
[0219] The computer system 1300 may also include a storage device 1324. Examples of storage devices (e.g., storage device 1324) include, but are not limited to, hard disk drives, magnetic disk drives, optical disk drives combined with optical media, solid-state memory devices, and any combination thereof. The storage device 1324 may be connected to the bus 1312 by a suitable interface (not shown). Exemplary interfaces include, but are not limited to, SCSI, Advanced Technology Attachment (ATA), Serial ATA, Universal Serial Bus (USB), IEEE 1394 (FIREWIRE®), and any combination thereof. In one example, the storage device 1324 (or one or more components thereof) may be detachably interfaced with the computer system 1300 (e.g., via an external port connector (not shown)). In particular, the storage device 1324 and associated machine-readable media 1328 can provide non-volatile and / or volatile storage for machine-readable instructions, data structures, program modules, and / or other data for the computer system 1300. In one example, the software 1320 may reside entirely or partially within a machine-readable medium 1328. In another example, the software 1320 may reside entirely or partially within a processor 1304.
[0220] Computer system 1300 may also include an input device 1332. For example, a user of computer system 1300 may input commands and / or other information to computer system 1300 via the input device 1332. Examples of input devices 1332 include, but are not limited to, alphanumeric input devices (e.g., keyboards), pointing devices, joysticks, gamepads, audio input devices (e.g., microphones, voice response systems, etc.), cursor control devices (e.g., mice), touchpads, optical scanners, video capture devices (e.g., still cameras, video cameras), touchscreens, and any combination thereof. Input device 1332 may interface to bus 1312 via any of a variety of interfaces (not shown) including, but not limited to, serial interfaces, parallel interfaces, game ports, USB interfaces, FireWire interfaces, direct interfaces to bus 1312, and any combination thereof. Input device 1332 may include a touchscreen interface, which may be part of or separate from display 1336, as will be further described below. As described above, the input device 1332 can be used as a user selection device for selecting one or more graphical representations within the graphical interface.
[0221] The user can also input commands and / or other information into the computer system 1300 via a storage device 1324 (e.g., a removable disk drive, flash drive, etc.) and / or a network interface device 1340. Network interface devices such as network interface device 1340 can be used to connect the computer system 1300 to one or more of various networks, such as network 1344, and one or more remote devices 1348 connected to them. Examples of network interface devices include, but are not limited to, network interface cards (e.g., mobile network interface cards, LAN cards), modems, and any combination thereof. Examples of networks include, but are not limited to, wide area networks (e.g., the Internet, corporate networks), local area networks (e.g., networks associated with offices, buildings, campuses, or other relatively small geographical spaces), telephone networks, data networks associated with telephone / voice providers (e.g., mobile communications provider data and / or voice networks), direct connections between two computing devices, and any combination thereof. Networks such as network 1344 can use wired and / or wireless communication modes. In general, any network topology can be used. Information (for example, data, software 1320, etc.) can be communicated to and from the computer system 1300 via the network interface device 1340.
[0222] The computer system 1300 may further include a video display adapter 1352 for communicating displayable images to a display device such as a display device 1336. Examples of display devices include, but are not limited to, liquid crystal displays (LCDs), cathode ray tubes (CRTs), plasma displays, light-emitting diode (LED) displays, and any combination thereof. The display adapter 1352 and the display device 1336 may be used in combination with a processor 1304 to provide a graphical representation of an aspect of the disclosure. In addition to the display devices, the computer system 1300 may include one or more other peripheral output devices, including, but are not limited to, audio speakers, printers, and any combination thereof. Such peripheral output devices may be connected to the bus 1312 via a peripheral interface 1356. Examples of peripheral interfaces include, but are not limited to, serial ports, USB connections, FireWire connections, parallel connections, and any combination thereof.
[0223] The above has been a detailed description of exemplary embodiments of the present invention. Various modifications and additions can be made without departing from the spirit and scope of the invention. Each feature of the various embodiments described above can be combined as needed with features of other described embodiments to provide a number of feature combinations in relevant new embodiments. Furthermore, although several distinct embodiments have been described above, those described herein are merely illustrative of the application of the principles of the present invention. Furthermore, certain methods herein may be illustrated and / or described as being performed in a particular order, but the order is highly variable among those skilled in the art to achieve the methods, systems, and software according to this disclosure. Therefore, this description is intended to be construed as illustrative only and is not intended to limit the scope of the invention.
[0224] Typical embodiments are disclosed above and shown in the accompanying drawings. Those skilled in the art will understand that various modifications, omissions, and additions can be made to those specifically disclosed herein without departing from the spirit and scope of the invention.
Claims
1. A device for visualizing digitized slides, At least a processor, A memory that is at least communicably connected to the processor, wherein the memory stores instructions, and the instructions cause the at least the processor to Search for digitized slides, Determine one or more visualization components of the digitized slide, Based on the one or more visualization components, a virtual slide corresponding to the digitized slide is generated. A device configured to display a visualization of the aforementioned virtual slide.
2. The apparatus according to claim 1, wherein the memory stores instructions that configure the at least processor to determine, based on metadata associated with the digitized slide, that the digitized slide is a member of a set of digitized slides associated with at least one of a patient case or a tissue block.
3. The apparatus according to claim 2, wherein displaying the virtual slides includes displaying a plurality of virtual slides, including the virtual slides, that correspond to the set of digitized slides.
4. The apparatus according to claim 1, wherein the one or more visualization components include at least one of a tissue section, an artifact, or an annotation.
5. The apparatus according to claim 1, wherein the memory stores instructions that configure at least the processor to determine one or more user-configurable options related to the virtual slide based on the one or more visualization components.
6. The apparatus according to claim 5, wherein the one or more user-configurable options are determined by accessing a lookup table indexed by the one or more visualization components.
7. The apparatus according to claim 5, wherein the visualization is displayed via a full slide image viewer, and one or more user-configurable options are presented to the user via the user interface of the full slide image viewer.
8. The apparatus according to claim 1, wherein the memory stores instructions that constitute the processor for receiving requests to customize the visualization.
9. The apparatus according to claim 1, wherein the memory stores instructions that constitute the at least processor to receive a request to display a second visualization of a different virtual slide.
10. The memory provides at least the processor, Determine a recommended set of visualization components to include in the aforementioned visualization. The apparatus according to claim 1, which stores instructions configured to determine a modified set of visualization components to be included in the visualization based on user selection.
11. The memory provides at least the processor, Based on the presence of multiple serial sections within the digitized slide, it is determined that the digitized slide corresponds to a serial section slide. The aforementioned multiple serial sections are classified into a reference serial section and one or more remaining serial sections. The one or more remaining serial sections are aligned with the reference serial section to generate a plurality of aligned serial sections. The apparatus according to claim 1, which stores an instruction to configure the visualization of the virtual slide to include the plurality of aligned serial sections.
12. The apparatus according to claim 11, wherein the one or more remaining serial sections are aligned with the reference serial section by independently calculating one or more alignment transformations with respect to the reference serial section for each of the one or more remaining serial sections.
13. The apparatus according to claim 12, wherein the one or more alignment transformations are calculated based on macro images of the digitized slides, the macro images are acquired using a macro camera and have a field of view covering each of the plurality of serial sections.
14. The memory provides at least the processor, The one or more alignment conversions are stored in a non-volatile storage medium. A full slide image (WSI) with a higher magnification than the aforementioned macro image is obtained. Based on the one or more stored alignment transformations, one or more corresponding high-magnification alignment transformations applicable to the WSI are calculated. Applying one or more high-magnification alignment transformations to the multiple consecutive sections within the WSI generates a virtual WSI having multiple aligned consecutive sections. The apparatus according to claim 13, which stores an instruction configured to include displaying the visualization of the virtual slide, which includes displaying the visualization of the virtual WSI.
15. The apparatus according to claim 11, wherein the plurality of aligned serial sections are displayed in the order in which the corresponding plurality of serial sections appear on the digital slide.
16. The apparatus according to claim 11, wherein the plurality of aligned serial sections are spatially arranged within the visualization based on a configuration selected by the user.
17. The apparatus according to claim 11, wherein the plurality of aligned serial sections are spatially arranged in a compact manner such that the plurality of aligned serial sections appear closer to each other in the visualization than the digitized slides.
18. The apparatus according to claim 11, wherein the one or more visualization components include at least one annotation, the at least one annotation is included in the visualization based on a user-configurable filter, and aligning the one or more remaining serial sections to the reference serial section includes aligning the at least one annotation to the reference serial section.
19. A method for visualizing digitized slides, At the very least, a processor is needed to search through digitized slides, The computer processor determines at least the visualization components of the digitized slide, The computer processor generates virtual slides corresponding to the digitized slides based on the visualization components, A method comprising displaying the visualization of the virtual slide using at least a computer processor and at least a display.
20. The method according to claim 19, further comprising determining, by at least the computer processor, that the digitized slide is a member of a set of digitized slides relating to at least one of a patient case or a tissue block, based on metadata relating to the digitized slide.
21. The method according to claim 20, wherein displaying the virtual slides includes displaying a plurality of virtual slides, including the virtual slides, that correspond to the set of digitized slides.
22. The method according to claim 19, wherein the at least visualization component includes at least one of a tissue section, an artifact, or an annotation.
23. The method according to claim 19, further comprising determining at least user-configurable options related to the virtual slide based on the at least visualization components using the at least computer processor.
24. The method according to claim 23, wherein the at least user-configurable options are determined by accessing a lookup table indexed by the at least visualization component.
25. The method according to claim 23, wherein the visualization is displayed via a full slide image viewer, and the at least user-configurable options are presented to the user via the user interface of the full slide image viewer.
26. The method according to claim 19, further comprising receiving a request to customize the visualization by at least the computer processor.
27. The method according to claim 19, further comprising receiving a request by at least the computer processor to display a second visualization of a different virtual slide.
28. The computer processor determines a recommended set of visualization components to be included in the visualization, The computer processor determines, based on user selection, a modified set of visualization components to be included in the visualization, The method according to claim 19, further comprising:
29. The computer processor determines, based on the presence of multiple consecutive sections within the digitized slide, that the digitized slide corresponds to a slide within a consecutive section. The above-mentioned computer processor classifies the plurality of serial sections into a reference serial section and at least the remaining serial sections, The process involves aligning at least the remaining serial sections with the reference serial section using at least the computer processor to generate a plurality of aligned serial sections, wherein the visualization of the virtual slide includes the plurality of aligned serial sections. The method according to claim 19, further comprising:
30. The method according to claim 29, wherein at least the remaining serial sections are aligned with the reference serial section by independently calculating at least an alignment transformation with respect to the reference serial section for each of the at least remaining serial sections.
31. The method according to claim 30, wherein the at least alignment transformation is calculated based on a macro image of the digitized slide, the macro image is acquired using a macro camera and has a field of view covering each of the plurality of serial sections.
32. The computer processor stores the alignment conversion in a non-volatile storage medium, The above-mentioned computer processor acquires a whole slide image (WSI) with a higher magnification than the macro image, The computer processor calculates at least a corresponding high-magnification alignment transformation applicable to the WSI based on the at least stored alignment transformations, The process involves applying at least the high-magnification alignment transformation to the plurality of consecutive sections within the WSI using at least the computer processor to generate a virtual WSI having a plurality of aligned consecutive sections, and displaying the visualization of the virtual slide includes displaying the visualization of the virtual WSI. The method according to claim 31, further comprising:
33. The method according to claim 32, wherein the plurality of aligned serial sections are displayed in the order in which the corresponding plurality of serial sections appear on the digital slide.
34. The method according to claim 29, wherein the plurality of aligned serial sections are spatially arranged within the visualization based on a configuration selected by the user.
35. The method according to claim 29, wherein the plurality of aligned serial sections are spatially arranged in a compact representation such that the plurality of aligned serial sections appear closer to each other in the visualization than the digitized slides.
36. The method according to claim 29, wherein the at least visualization component includes at least one annotation, the at least one annotation is included in the visualization based on a user-configurable filter, and aligning the at least remaining serial sections to the reference serial section includes aligning the at least one annotation to the reference serial section.
37. A device for visualizing digitized slides belonging to patient cases, Processor and The processor comprises a memory that is communicably connected to the processor, wherein the memory stores instructions, and the instructions cause at least the processor to A set of images is received that includes multiple images of one or more samples and metadata of the multiple images of the one or more samples. For each of the multiple images in the image dataset, one or more component visualization elements are identified. The relationship between the one or more component visualization elements is determined as a function of the image dataset. Multiple virtual images are constructed as a function of the relationship between the image dataset and one or more virtual component elements, and each of the multiple virtual images includes at least one virtual component element. A unified virtual image is generated as a function of the aforementioned multiple virtual images, A device configured to display the aforementioned integrated virtual image.
38. Constructing the plurality of virtual images as a function of the relationship between the image dataset and the one or more virtual consistent components is Receiving input through a user interface, The apparatus according to claim 37, further comprising generating the plurality of virtual images as a function of the input.
39. Determining the relationships between the one or more component visualization elements is Modifying at least one of the one or more component visualization elements, The apparatus according to claim 37, comprising determining the relationship between one or more component visualization elements as a function of the modification.
40. Determining the relationships between one or more component visualization elements is The process involves classifying the one or more component visualization components into one or more sample classifications, wherein each sample classification includes a reference component visualization component and one or more remaining component visualization components. Receiving orientations for each reference component visualization component and the one or more remaining component visualization components of the one or more sample classifications, The apparatus according to claim 37, further comprising reorienting the one or more remaining component visualization components as a function of the classification of the one or more reference component visualization components and the orientation of each reference component visualization component.
41. Receiving the aforementioned image dataset includes acquiring at least one macro image of the sample using a macro camera, Constructing the plurality of virtual images as a function of the relationship between the image dataset and the one or more virtual component elements, The method further includes generating a plurality of virtual images as a function of reorienting one or more component visualization elements, Generating an integrated virtual image as a function of the aforementioned multiple virtual images includes generating an integrated macro image as a function of the aforementioned multiple virtual images. The apparatus according to claim 40.
42. Constructing the aforementioned multiple virtual images Receiving multiple high-resolution images, wherein each of the multiple high-resolution images is related to each of the images in the image dataset, The apparatus according to claim 40, further comprising generating a plurality of virtual images as a function of the plurality of high-resolution images and the reorientation of one or more remaining component visualization elements.
43. Constructing the multiple virtual images as a function of the aforementioned image dataset is For each of the aforementioned plurality of images, the spatial distance between each reference component visualization and one or more remaining virtual component elements is determined. The apparatus according to claim 40, further comprising constructing at least one virtual image from among the plurality of virtual images as a function of the spatial distance.
44. Constructing multiple virtual images as a function of the aforementioned image dataset is Identifying one or more annotations on at least one of the aforementioned multiple images, Receiving one or more configurable parameters of the aforementioned plurality of images, The apparatus according to claim 40, further comprising removing one or more annotations as a function of one or more configurable parameters.
45. The apparatus according to claim 44, wherein one or more configurable parameters are received as a function of user input.
46. The apparatus according to claim 17, wherein determining the relationships between one or more component visualization elements includes identifying one or more component visualization elements using an image processing module.
47. A method for visualizing digitized slides belonging to a patient case, The processor receives an image dataset which includes multiple images of one or more samples and metadata for the multiple images of the one or more samples. The processor identifies one or more component visualization elements for each of the multiple images in the image dataset, The processor determines, as a function of the image dataset, the relationship between the one or more component visualization elements. The process involves constructing a plurality of virtual images as a function of the image dataset and the relationship between one or more virtual component elements, wherein each of the plurality of images includes at least one virtual component element. The above-mentioned processor generates an integrated virtual image as a function of the multiple virtual images, A method comprising displaying the integrated virtual image using at least the aforementioned processor.
48. The above-mentioned processor constructs the plurality of virtual images as a function of the image dataset and the relationship between one or more virtual consistency components, Receiving input through a user interface, The method according to claim 47, further comprising generating the plurality of virtual images as a function of the input.
49. The aforementioned processor determines the relationships between the one or more component visualization elements. Modifying at least one of the one or more component visualization elements, The method according to claim 47, comprising determining the relationship between one or more component visualization elements as a function of the modification.
50. The aforementioned processor determines the relationships between the one or more component visualization elements. The process involves classifying the one or more component visualization components into one or more sample classifications, wherein each sample classification includes a reference component visualization component and one or more remaining component visualization components. Receiving orientations for each reference component visualization component and the one or more remaining component visualization components of the one or more sample classifications, The method according to claim 47, further comprising reorienting the one or more remaining component visualization elements as a function of the classification of the one or more reference component visualization elements and the orientation of each reference component visualization element.
51. Receiving the image dataset by at least the processor includes acquiring at least one macro image of the sample using a macro camera, The above-mentioned processor constructs the plurality of virtual images as a function of the image dataset and the relationship between the one or more virtual component elements, The method further includes generating a plurality of virtual images as a function of reorienting one or more component visualization elements, Generating an integrated virtual image as a function of the aforementioned multiple virtual images includes generating an integrated macro image as a function of the aforementioned multiple virtual images. The method according to claim 50.
52. The plurality of virtual images are constructed by at least the aforementioned processor. Receiving multiple high-resolution images, wherein each of the multiple high-resolution images is related to each of the images in the image dataset, The method according to claim 50, further comprising generating a plurality of virtual images as a function of the plurality of high-resolution images and the reorientation of one or more remaining component visualization elements.
53. The above-mentioned processor constructs the plurality of virtual images as a function of the image dataset, For each of the aforementioned plurality of images, the spatial distance between each reference component visualization and one or more remaining virtual component elements is determined. The method according to claim 50, further comprising constructing at least one virtual image from among the plurality of virtual images as a function of the spatial distance.
54. The above-mentioned processor constructs multiple virtual images as functions of the image dataset, Identifying one or more annotations on at least one of the aforementioned multiple images, Receiving one or more configurable parameters of the aforementioned plurality of images, The method according to claim 50, further comprising removing one or more annotations as a function of one or more configurable parameters.
55. The method according to claim 54, wherein the one or more configurable parameters are received as a function of user input.
56. The method according to claim 55, wherein determining the relationships between one or more component visualization elements by at least the processor includes identifying one or more component visualization elements using an image processing module.