Method and apparatus for adaptive slide imaging using a selected scan profile
The apparatus and method for adaptive slide imaging automate the selection of scanning profiles based on metadata analysis, addressing inefficiencies in manual profile selection and enabling optimized, automated scanning across diverse slide types and protocols.
Patent Information
- Application Number
- JP2025120688
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-07-16
- Filing Date
- 2025-07-17
- Publication Date
- 2026-02-03
AI Technical Summary
Scanning medical slides with different magnifications requires manual selection of scanning profiles, which is time-consuming and inefficient, especially when switching profiles for each slide.
An apparatus and method for adaptive slide imaging that uses a scanner to capture a macro-image, extracts metadata, determines a classification category, and applies a scanning profile based on that category to automate the imaging process, allowing for customized scanning without hardware or software modifications.
Enables efficient and automated switching of scanning profiles between slides, optimizing the imaging process by adapting to different slide types and protocols, and facilitating seamless integration across multiple scanners.
Smart Images

Figure 2026016336000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates generally to the field of slide imaging. In particular, the present invention is directed to a method and apparatus for adaptive slide imaging using a selected scanning profile. [Background technology]
[0002] In some embodiments, when scanning medical slides, it may be desirable to select a particular scanning profile or processing pipeline to optimize the scanning of the slide. For example, some applications may require imaging at different magnifications. However, it is time-consuming and inefficient for a user to manually select a scanning profile for each slide or set of slides. If the user must switch profiles for each slide in the set, the process becomes even more time-consuming. Summary of the Invention [Means for solving the problem]
[0003] In one aspect, an apparatus for adaptive slide imaging using a selected scanning profile is disclosed. The apparatus includes a scanner configured to capture a macro-image of a slide. The scanner includes a stage configured to hold the slide, an optical sensor configured to convert the image into one or more electrical signals, and an optical system configured to form an image of the slide on the optical sensor, the stage configured to move the slide relative to the optical system. The apparatus further includes at least one processor and a memory, the memory containing instructions to configure the at least one processor to receive the macro-image of the slide from the scanner, extract metadata from the macro-image of the slide, determine a classification category of the slide as a function of the metadata, obtain a scanning profile as a function of the classification category of the slide, and image the slide as a function of the scanning profile using the optical system and the optical sensor of the scanner.
[0004] In another aspect, a method for adaptive slide imaging using a selected scanning profile is disclosed. The method includes capturing a macro-image of a slide using a scanner. The scanner includes a stage configured to hold the slide, an optical sensor configured to convert an image into one or more electrical signals, and an optical system configured to form the image of the slide on the optical sensor, the stage configured to move the slide relative to the optical system. The method further includes receiving the macro-image of the slide from the scanner using at least one processor; extracting metadata from the macro-image of the slide using at least one processor; determining a classification category of the slide as a function of the metadata using at least one processor; obtaining a scanning profile as a function of the classification category of the slide using at least one processor; and imaging the slide as a function of the scanning profile using the optical system and the optical sensor of the scanner.
[0005] These and other aspects and features of non-limiting embodiments of the present invention will become apparent to those skilled in the art upon review of the following description of specific non-limiting embodiments of the present invention in conjunction with the accompanying drawings.
[0006] For the purpose of illustrating the invention, the drawings show aspects of one or more embodiments of the invention. It should be understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown in the drawings. The drawings are not necessarily to scale and may include phantom lines, schematic representations, and partial views. In certain instances, details that are not necessary for understanding the embodiments or that obscure other details may be omitted. [Brief explanation of the drawings]
[0007] [Figure 1]FIG. 1 is a box diagram of an exemplary apparatus for adaptive slide imaging using a selected scanning profile. [Figure 2] FIG. 2 is a diagram of an exemplary scan profile. [Figure 3] FIG. 10 is an exemplary diagram of macro image analysis automatic profile selection. [Figure 4] FIG. 2 is an exemplary diagram of components of a scan profile. [Figure 5] FIG. 1 is a diagram of an exemplary machine learning module. [Figure 6] FIG. 1 is a diagram of an exemplary neural network. [Figure 7] FIG. 2 is a diagram of an exemplary node of a neural network. [Figure 8] FIG. 1 is a flow diagram of an exemplary method using a selected scan profile, or adaptive slide imaging. [Figure 9] FIG. 1 is a block diagram of a computing system that can be used to implement any one or more of the methodologies disclosed herein and any one or more portions thereof. DETAILED DESCRIPTION OF THE INVENTION
[0008] At a high level, aspects of the present disclosure are directed to systems and methods for adaptive slide imaging using a selected scanning profile. In one embodiment, metadata can be used to determine a classification category for a slide. A scanning profile for each slide may be determined using the classification category. In some embodiments, the scanning profile may be used to configure a scanner. The scanner may scan the slide using the scanning profile. In some embodiments, a scanning profile may be determined for each slide, thereby allowing the scanner to improve the likelihood of imaging each slide.
[0009] The present invention has several advantages. For example, the use of scanning profiles allows the scanner's behavior to be customized according to the application's requirements. This does not require any modifications to the scanner's hardware or software. The system also allows for the development and deployment of multiple profiles. Profiles can be automatically switched between slides as needed. Furthermore, the system allows scanning profiles to be portable between scanners. For example, a scanning profile can be developed on one scanner and deployed to multiple scanners. In some embodiments, the system may handle different slide preparation protocols. For example, a scanning profile may handle multiple different slide preparation protocols on a single scanner. In some embodiments, the system may scan a batch of slides belonging to different applications or prepared using different protocols. By dynamically assigning the appropriate scanning profile, the scanner can optimally handle slides from different batches or slides with different protocols.
[0010] Referring now to FIG. 1 , an exemplary embodiment of an apparatus 100 for adaptive slide imaging using a selected scanning profile is shown. The apparatus 100 includes a processor 104. In some embodiments, the processor 104 may be consistent with aspects of a computing device described in this disclosure. The computing device includes a processor communicatively connected to memory. As used in this disclosure, "communicatively connected" means connected by a connection, attachment, or coupling that allows for the reception and / or transmission of information between two or more entities. For example, but not limited to, this connection may be wired or wireless, direct or indirect, and between two or more components, circuits, devices, systems, etc., allowing for the reception and / or transmission of data and / or signals. The data and / or signals therebetween may include, but are not limited to, electrical, electromagnetic, magnetic, visual, audio, radio and microwave data and / or signals, combinations thereof, and the like, among others. The communicative connection may be achieved, for example, but not limited to, by wired or wireless electronic, digital, or analog communication, directly or through one or more intervening devices or components. Additionally, a communicative connection may include electrically coupling or connecting at least one output of one device, component, or circuit to at least one input of another device, component, or circuit, for example, but not limited to, via a bus or other facility for intercommunication between elements of computing devices. A communicative connection may also include an indirect connection, for example, but not limited to, via a wireless connection, wireless communication, a low-power wide area network, optical communication, magnetic coupling, capacitive coupling, optical coupling, etc. In some cases, the term "communicatively coupled" may be used in place of "communicatively connected" in this disclosure.
[0011] Continuing with reference to FIG. 1 , processor 104 may include any computing device described in this disclosure, including, without limitation, a microcontroller, microprocessor, digital signal processor (DSP), and / or system-on-chip (SoC) described in this disclosure. Processor 104 may include, be included in, and / or communicate with a mobile device, such as a mobile phone or smartphone. Processor 104 may include a single computing device operating independently, or may include two or more computing devices operating in cooperation, parallel, serial processing, etc. Two or more computing devices may be included together in a single computing device, or may be included in two or more computing devices. Processor 104 may interface or communicate with one or more additional devices via a network interface device, as described in more detail below. A network interface device may be utilized to connect processor 104 to one or more of various networks and to one or more devices. Examples of network interface devices include, but are not limited to, a network interface card (e.g., a mobile network interface card, a LAN card), a modem, and any combination thereof. Examples of networks include, but are not limited to, wide area networks (e.g., the Internet, enterprise networks), local area networks (e.g., networks associated with an office, building, campus, or other relatively small geographic space), telephone networks, data networks associated with a telephone / voice provider (e.g., a mobile communications provider's data and / or voice network), a direct connection between two computing devices, and any combination thereof. Networks may employ wired and / or wireless communication modes. In general, any network topology may be used.Information (e.g., data, software, etc.) may be communicated to and / or from computers and / or computing devices. Processor 104 may include, for example, but not limited to, 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. Processor 104 may include one or more computing devices specialized for data storage, security, traffic distribution for load balancing, etc. Processor 104 may distribute one or more computing tasks, as described below, across multiple computing devices that may operate in parallel, serially, redundantly, or any other manner used to distribute tasks or memory among computing devices. Processor 104 may be implemented using a “shared nothing” architecture, as a non-limiting example.
[0012] Continuing to refer to FIG. 1 , processor 104 may be designed and / or configured to perform any method, method step, or sequence of method steps in any embodiment described in this disclosure, in any order, and with any degree of iteration. For example, processor 104 may be configured to repeatedly perform a single step or sequence until a desired or ordered result is achieved. The repetition of a step or sequence of steps may be performed iteratively and / or recursively using the output of a previous iteration as input to a subsequent iteration, aggregating the inputs and / or outputs of an iteration to generate an aggregate result, decreasing or decrementing one or more variables, such as global variables, and / or dividing a large processing task into a set of smaller processing tasks that are addressed iteratively. Processor 104 may perform any step or sequence of steps described in this disclosure in parallel, such as performing a step two or more times simultaneously and / or nearly simultaneously, using two or more parallel threads, processor cores, etc. The division of tasks among parallel threads and / or processes may be performed according to any protocol suitable for dividing tasks among iterations. Those skilled in the art will recognize, upon reviewing this disclosure in its entirety, various ways in which steps, sequences of steps, processing tasks, and / or data may be subdivided, shared, or otherwise processed using iterative, recursive, and / or parallel processing.
[0013] Continuing with reference to FIG. 1 , device 100 further includes memory 108. Memory 108 may include instructions that configure processor 104 to perform the tasks disclosed in this disclosure. As used in this disclosure, "communicatively connected" means connected by a connection, attachment, or coupling that allows for the reception and / or transmission of information between two or more entities. For example, but not limited to, the connection may be a wired or wireless connection, a direct or indirect connection, and a connection between two or more components, circuits, devices, systems, devices 100, etc., that allows for the reception and / or transmission of data and / or signals therebetween. The data and / or signals therebetween may include, but are not limited to, electrical, electromagnetic, magnetic, visual, audio, radio and microwave data and / or signals, combinations thereof, and the like, among others. A communicative connection may be achieved, for example, but not limited to, by wired or wireless electronic, digital, or analog communication, directly or through one or more intervening devices or components. Additionally, a communicative connection may include electrically coupling or connecting at least one output of one device, component, or circuit to at least one input of another device, component, or circuit, for example, but not limited to, via a bus or other facility for intercommunication between elements of a computing device. A communicative connection may also include an indirect connection, for example, but not limited to, via a wireless connection, wireless communication, a low-power wide area network, optical communication, magnetic coupling, capacitive coupling, optical coupling, etc. In some cases, the term "communicatively coupled" may be used in place of "communicatively connected" in this disclosure.
[0014] Continuing with reference to FIG. 1 , device 100 includes scanner 109. As described in this disclosure, a “scanner” is a device configured to capture visual information in the form of an image or a sequence of images. In one embodiment, scanner 109 converts an optical image into an electronic signal, which can be processed, stored, or displayed, as described in more detail below. For example, but not limited to, imaging devices such as those described herein may in some cases be specifically used for medical diagnostics in a clinical setting, such as a microscope configured to capture detailed, high-resolution images of a microscopic object to enable accurate diagnosis, disease monitoring, and other biological studies. In a non-limiting example, the scanner 109 may be compatible with any imaging device such as those described in U.S. Patent Application No. 18 / 226,058, filed July 25, 2023 (Attorney Docket No. 1519-102USU1), entitled "IMAGING DEVICE AND A METHOD FOR IMAGE GENERATION OF A SPECIMEN," which is incorporated herein by reference in its entirety.
[0015] With continued reference to FIG. 1 , the scanner 109 includes a stage 111 configured to receive and hold a slide 112. As used in this disclosure, a "stage" refers to a flat platform on which a slide 112 or sample is placed for examination. In some embodiments, the stage 111 is a uniform surface without significant irregularities, depressions, or curvatures. In some cases, the stage may include a slide port with one or more alignment features, which, as described herein, are physical features that secure the received slide 112 in place and / or help align the slide with other components of the scanner 109. In some embodiments, the alignment features may include components that secure the slide 112, such as clamps, latches, clips, recesses, or other fasteners. In some embodiments, the stage 111 may facilitate the removal or insertion of the slide 112. In some embodiments, the stage 111 may include a transparent surface through which light can pass. In some embodiments, the slide 112 may be placed on such a transparent surface of the stage and / or illuminated by light traveling through such a transparent surface. In some embodiments, the stage 111 may be mechanically coupled to an actuator mechanism, as described below. In some embodiments, the stage 111 is configured to move the slide 112 relative to the optical system 110. As a non-limiting example, the stage 111 may move the slide 112 toward or away from the optical system 110. As a non-limiting example, the stage 111 may move the optical system 119 toward or away from the slide 112.
[0016] Still referring to FIG. 1 , in some cases, the scanner 109 may include an actuator mechanism. As used herein, a scanner “actuator mechanism” is a mechanical component configured to change the position of the slide relative to the optical system 110. In a non-limiting example, the actuator mechanism can be configured to precisely move the stage in the X, Y, and / or Z directions, allowing for detailed inspection of different portions of the specimen. In one or more embodiments, the actuator mechanism may be used to change the line of sight so that an image of the slide 112 can be captured, as discussed further in this disclosure. In some embodiments, the actuator mechanism may be mechanically connected to the slide 112, such as the slide 112 within a slide port. In some embodiments, the actuator mechanism may be mechanically connected to the slide port. For example, the actuator mechanism can move the slide port to move the slide 112. For example, but not by way of limitation, the actuator mechanism can move the slide port to change the distance D between the top surface of the slide 112 and the optical components described below.
[0017] 1 , in some embodiments, the actuator mechanism can also change the angle between the top surface (e.g., the surface that the slide 112 and / or specimen contacts, facing the optics or facing the optics 110) and the ground. In some embodiments, the actuator mechanism can be mechanically connected to a movable element (i.e., any movable or portable object, component, or device) within the scanner 109, such as, but not limited to, the slide 112, the slide port, the stage, or the optics 110, as described in more detail below. In some embodiments, the actuator mechanism can be configured to change the relative position of the slide 112 and the optics 110 by moving the stage, slide 112, and / or the optics 110 in the X, Y, and / or Z directions during the slide scanning and / or rescanning process, as described in more detail below.
[0018] Still referring to FIG. 1 , in some embodiments, the actuator mechanism may include a hydraulic actuator. A hydraulic actuator may be comprised of a cylinder or fluid motor that uses hydraulic power to facilitate mechanical movement. The output of the hydraulic actuator mechanism may include mechanical motion, such as, but not limited to, linear, rotary, or oscillatory motion. In some embodiments, the hydraulic actuator may employ hydraulic fluid. Because liquids are potentially incompressible, hydraulic actuators can exert large forces. Furthermore, because force is equal to pressure multiplied by area, hydraulic actuators can function as force transducers with changes in area (e.g., the cross-sectional area of the cylinder and / or piston). An exemplary hydraulic cylinder may be comprised of a hollow cylindrical tube through which a piston can slide. In some cases, a hydraulic cylinder may be considered single-acting. The term "single-acting" may be used when fluid pressure is applied substantially only to one side of the piston. Thus, a single-acting piston can move in only one direction. In some cases, a spring may be used to provide a return stroke for the single-acting piston. In some cases, a hydraulic cylinder may be double-acting. "Double acting" may be used when pressure is applied to substantially both sides of the piston. The force difference between the two sides of the piston causes the piston to move.
[0019] Still referring to FIG. 1 , in some embodiments, the actuator mechanism may include a pneumatic actuator mechanism. In some cases, pneumatic actuators can generate large forces from relatively small changes in gas pressure. In some cases, pneumatic actuators can respond more quickly than other types of actuators, such as hydraulic actuators. Pneumatic actuators can use compressible fluids (e.g., air). In some cases, pneumatic actuators can operate with compressed air. Operation of hydraulic and / or pneumatic actuators includes control of one or more valves, circuits, fluid pumps, and / or fluid manifolds.
[0020] Still referring to FIG. 1 , in some cases, the actuator mechanism may include an electric actuator. The electric actuator mechanism may include either an electromechanical actuator, a linear motor, or the like. In some cases, the actuator mechanism may include an electromechanical actuator. An electromechanical actuator can convert the rotational force of an electric rotary motor into linear motion and generate linear motion through a mechanism. Exemplary mechanisms include, but are not limited to, a belt, a screw, a crank, a cam, a linkage, a scotch yoke, and the like, which are rotary-to-translational converters. In some cases, control of the electromechanical actuator may include control of an electric motor; for example, a control signal may control one or more electric motor parameters to control the electromechanical actuator. Exemplary, non-limiting electric motor parameters include rotational position, input torque, speed, current, and potential. The electric actuator mechanism may include a linear motor. A linear motor may differ from an electromechanical actuator in that power from a linear motor is output directly as translational motion rather than being output as rotational motion and converted to translational motion. In some cases, a linear motor may incur less friction loss than other devices. Linear motors may be designated into at least three different categories, such as flat linear motors, U-channel linear motors, and tubular linear motors. Linear motors may be directly controlled by control signals that control one or more linear motor parameters. Exemplary linear motor parameters include, but are not limited to, position, force, velocity, potential, and current.
[0021] Still referring to FIG. 1 , in some embodiments, the actuator mechanism may include a mechanical actuator mechanism. In some cases, the mechanical actuator mechanism may function to perform motion by converting one type of motion, such as rotary motion, into another type of motion, such as linear motion. An exemplary mechanical actuator includes a rack and pinion. In some cases, a mechanical power source, such as a power take-off, may function as a power source for the mechanical actuator. The mechanical actuator may employ any number of mechanisms, including, for example, but not limited to, gears, rails, pulleys, cables, linkages, etc.
[0022] 1 , in some cases, apparatus 100 may include a transport component, and a “transport component” as described herein according to some embodiments refers to a device or system configured to move, transport, or position an object (e.g., a slide 112, or any slide of the plurality of slides 112 in at least one slide storage component described above) from one location to another. In some cases, the transport component can be disposed between at least one slide storage component and scanner 109 or any other processing device and configured to automate the process of retrieving, positioning, and / or returning slides, ensuring that each slide of the plurality of slides 112 is efficiently moved between at least one slide storage component and scanner 109.
[0023] Still referring to FIG. 1 , in a non-limiting example, the transport component may include a programmable robotic arm configured to pick up, move, and place slides 112. In some cases, the transport component may include one or more joints, each of which may allow at least a portion of the transport component to move within a predetermined range in the X, Y, and / or Z directions. The transport component may also include a gripping element disposed at a distal end of the transport component, which may be configured to securely hold and release one or more slides. Such gripping elements may be fabricated from a soft, non-abrasive material to avoid damaging the held slides during slide transfer. In some cases, the transport component may employ a pinch or suction mechanism to pick up and release slides. In other cases, the transport component may be integrated with the actuator mechanism described above, for example, but not limited to, a mechanism for converting rotational motion into linear motion, which can then be utilized to precisely move or position one or more slides on the stage of the scanner 109. In a non-limiting example, such a mechanism may include any mechanism that converts rotary motion into linear motion, such as those described in U.S. Patent Application No. 18 / 382,386, filed October 20, 2023 (Attorney Docket No. 1519-109USU1), entitled "APPARATUS AND METHOD OF USE OF A MECHANISM THAT CONVERTS ROTARY MOTION INTO LINEAR MOTION," which is incorporated herein by reference in its entirety.
[0024] 1 , the transport component can include one or more sensors as described herein, such as, but not limited to, proximity sensors or force sensors, configured to detect the precise position of the transported slide so that it is accurately positioned for imaging or storage. In some cases, such information may be received from other devices within apparatus 100; for example, the transport component may be in communication with scanner 109, and one or more sensors (e.g., one or more pressure sensors) integrated into scanner 109 may be configured to detect the positioning of slide 112. Scanner 109 may send a signal to the transport component upon successful positioning of the slide (i.e., when the slide is correctly positioned on the stage within the registration features).
[0025] Still referring to FIG. 1 , in some cases, the transport components and / or actuator mechanisms may include one or more cushioning components to minimize vibration or shock during slide transport. The cushioning components may be configured to ensure that the transported slides remain undamaged and in their intended position at the end of the process. One or more computing devices, as described in detail below, may be configured to control the transport components, as well as the actuator mechanisms, as described herein, to follow a predefined path for transporting slides between at least one slide storage location and the scanner 109. Additionally or alternatively, safety features (e.g., collision detection) may be implemented in the transport components to stop or back up if an obstacle is detected. Other exemplary embodiments of the transport mechanisms described herein include, but are not limited to, belt conveyor systems, linear actuators, rotary tables (i.e., rotating platforms / stages that hold multiple slides), and the like.
[0026] Continuing with reference to FIG. 1 , the scanner 109 includes an optical system 110. As used in this disclosure, an “optical system” is an arrangement of one or more components that operates on or employs electromagnetic radiation, such as light (e.g., visible light, infrared light, ultraviolet light, etc.). The optical system 110 may include one or more optical components, and each “optical component” described herein refers to any device or portion of a device that manipulates, interacts with, or is affected by light. In non-limiting examples, optical components may include lenses, mirrors, windows, filters, etc. In some cases, the optical system 110 can form an optical image corresponding to an optical object. For example, but not limited to, the optical system 110 can form an optical image at or on an optical sensor 113, which can capture (e.g., digitize) the optical image, as described in more detail below. In some cases, the optical system 110 can have at least one magnification. For example, without limitation, optical system 110 may include an objective lens (e.g., a microscope objective lens) and one or more reimaging optics that together produce optical magnification as described in more detail below. In some cases, the degree of optical magnification may be referred to as zoom.
[0027] Still referring to FIG. 1 , in some cases, the optical system 110 includes a light source. As used in this disclosure, a “light source” is 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 range of wavelengths. Light emitted by the light sources described herein may include, but is not limited to, ultraviolet, visible, and / or infrared light. In a non-limiting example, the light source may include a light-emitting diode (LED), an organic LED (OLED), and / or other light emitter. Such a light source may be configured to illuminate the slide 112 and / or a slide port and / or a specimen on the stage. In a non-limiting example, the light source may illuminate the slide 112 and / or a slide port and / or a specimen on the stage from below, as illustrated in FIG. 1 . In another non-limiting example, the light source may illuminate the slide 112 and / or a specimen from above.
[0028] Continuing with reference to FIG. 1 , in some cases, the light source may be connected to one or more optical components described herein, such as, but not limited to, a collection lens (i.e., an optical component used to collect and focus light emitted by the light source onto the slide 112 and / or specimen). In some cases, the collection lens may be configured to collect and evenly distribute light so that the slide 112 and / or specimen is uniformly illuminated, thereby improving image resolution and contrast. In a non-limiting example, an optical component such as a collection lens may focus light emitted from the light source into a cone of light that illuminates the slide 112 and / or specimen with a uniform intensity across the entire visible range. In some cases, the collection lens may include an aperture stop (e.g., a variable aperture that can be adjusted to control the amount of light reaching the slide 112 and / or specimen). In some cases, adjusting such an aperture can affect the contrast and depth of field of the image.
[0029] Continuing with reference to FIG. 1 , in some cases, the optical components may also include an objective lens. As used in this disclosure, an “objective lens” refers to an optical component that collects light from the slide 112 and / or specimen and focuses the light to generate an optical image within the scanner 109. In some embodiments, the generated optical image may be magnified by an eyepiece for viewing by a human operator or captured by an optical sensor 113, as described in detail below, for slide scanning and / or digital imaging. In some embodiments, the optical system 110 may include three objective lenses, each of which may include various magnifications ranging from 4x to 100x or more. In some cases, the magnification may be marked on the casing of the optical component. In some embodiments, the optical components may have different numerical apertures (NA), which measure the lens's ability to collect light at a fixed subject distance and resolve details on the slide 112 and / or specimen. For example, but not by way of limitation, a higher NA indicates a higher resolving power. Exemplary types of objective lenses include, but are not limited to, dry objective lenses, immersion objective lenses, water immersion objective lenses, and the like.
[0030] Still referring to FIG. 1 , in some embodiments, one or more optical components in the optical system 110 can be mounted on a nosepiece of the scanner 109. As used in this disclosure, a “nosepiece” is a portion of the scanner 109 that holds multiple optical components (e.g., multiple objective lenses), as shown in FIG. 1 . In some cases, the nosepiece may include a rotating nosepiece (also known as a turret), which may include a rotatable component located in the head portion of the scanner 109 and configured to hold multiple objective lenses. Optical components can be quickly and efficiently swapped for one another using the rotating nosepiece during imaging of multiple slides 112. In some embodiments, the optical system 110 may be parfocal. In this case, for example, but not limited to, when a first objective lens is focused, switching to a second or third objective lens may require minimal refocusing. In some cases, multiple optical components may be spaced at regular intervals on the rotating nosepiece, with each optical component being at a fixed distance from the stage.
[0031] It should be noted that the number of optical components in the optical system 110 described above is exemplary and should not be considered limiting. The actual number of optical components is variable, and the optical system 110 can incorporate more or fewer optical components as desired. Those skilled in the art will recognize, upon reviewing this disclosure in its entirety, various modifications, variations, and alternative configurations that may be applicable to the optical system 110 and optical components described herein.
[0032] Continuing with reference to FIG. 1 , as used herein, an “optical sensor 113” refers to a device that measures light and converts the measured light into one or more signals, which may include, but are not limited to, one or more electrical signals. The scanner 109 includes the optical sensor 113. In some embodiments, the optical sensor 113 may include at least one photodetector. As used herein, a “photodetector” refers to a device that is sensitive to light and can thereby detect light. In some embodiments, the photodetector may include a photodiode, a photoresistor, a photosensor, a photovoltaic chip, or the like. In some embodiments, the optical sensor 113 may include multiple photodetectors. The optical sensor 113 may include, but is not limited to, a camera. The optical sensor 113 may electronically communicate with a computing device, as described in detail throughout this disclosure. As used herein, “electronic communication” refers to a shared data connection between two or more devices. In some embodiments, the optical system 110 may include two or more optical sensors 113. In some cases, the optical sensor 113 may be positioned adjacent to the optical component. In a non-limiting example, the optical sensor 113 may be mounted on the nosepiece as described above. In another non-limiting example, the optical sensor 113 may be located inside the head portion of the scanner 109, above the optics.
[0033] Still referring to FIG. 1 , in some embodiments, the at least one optical sensor 113 may include a camera. In some cases, the camera may include one or more optical systems described herein, such as, but not limited to, a spherical lens, an aspherical lens, a reflecting mirror, a polarizer, a filter, a window, an aperture stop, etc. In some embodiments, 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, by way of non-limiting example. In some embodiments, one or more such settings may be configured to detect features of a specimen on the slide 112. In some embodiments, one or more such settings may be configured based on any set of parameters (i.e., a set of values, such as, but not limited to, quantitative and / or numerical values, that identify how an image is captured), such as those disclosed in U.S. Patent Application Publication No. 18 / 226,058. In some embodiments, the camera may capture images with a shallow depth of field. In some embodiments, the scanner 109 may be compatible with any imaging device disclosed in U.S. Patent Application No. 18 / 660,687, filed May 10, 2024 (Attorney Docket No. 1519-111USC1), entitled "A SYSTEM AND METHOD FOR HOT-SWAPPING OF SCANNER ENTITIES INTO A CLUSTER," which is incorporated herein by reference in its entirety.
[0034] Continuing with reference to FIG. 1 , scanner 109 is configured to capture image 114 of slide 112. For purposes of this disclosure, an "image" refers to a visual representation of a subject. Scanner 109 is configured to capture a macro image 116 of slide 112. For purposes of this disclosure, a "macro image" refers to an image captured of a subject at a close-up magnification of less than 5x. Macro image 116 can be captured using a macro lens. For purposes of this disclosure, a "macro lens" is a lens configured to capture a subject at a close-up magnification of less than 5x. In some embodiments, the macro image can characterize the subject at a 1:1 magnification. In some embodiments, the macro lens may be configured to capture the subject at a 1:1 magnification.
[0035] With continued reference to FIG. 1 , scanner 109 may be configured to capture a high magnification image 118 of slide 112. For purposes of this disclosure, a "high magnification image" refers to an image at a magnification of greater than 5x. The high magnification image 118 may be captured using a high magnification lens. For purposes of this disclosure, a "high magnification lens" refers to a lens configured to capture a subject at a magnification of 5x or greater. In some embodiments, the high magnification image may include an image at a magnification of greater than 10x. In some embodiments, the high magnification image may include an image at a magnification of greater than 15x. In some embodiments, the high magnification image may include an image at a magnification of 20x or greater.
[0036] Continuing to refer to FIG. 1 , slide 112 may comprise a glass slide. In some embodiments, slide 112 may comprise label 120. For purposes of this disclosure, a "label" is a portion of a slide that contains metadata. In some embodiments, label 120 may be adhered to slide 112 using an adhesive. In some embodiments, label 120 may be printed on slide 112.
[0037] Continuing with reference to FIG. 1 , in some embodiments, label 120 may include a unique identifier 122. For purposes of this disclosure, a “unique identifier” refers to data that uniquely identifies an object. For example, unique identifier 122 may identify a slide 112 from among multiple slides 112 (e.g., using a slide number). For example, unique identifier 122 may identify a particular patient (e.g., a patient number, an identification number, etc.). Unique identifier 122 may identify a patient or a clinician responsible for the slide. Unique identifier 122 may include a numeric code. Unique identifier 122 may include an alphanumeric code. In some embodiments, unique identifier 122 may include a visually unique identifier. A “visually unique identifier” is one that uses a particular orientation of visual information to encode a unique identifier. For example, a visually unique identifier may include a barcode. Non-limiting examples of barcodes include Code 69, UPC, and Code 128. In some embodiments, a visually unique identifier may include a matrix code. Matrix codes include, by way of non-limiting example, QR Code, Data Matrix, PDF417, Codabar, Aztec, and the like.
[0038] Continuing with reference to FIG. 1 , slide 112 may include a pathology specimen 124. For purposes of this disclosure, a "pathology specimen" refers to a portion of tissue, fluid, cells, or other biological material removed from a patient. In some embodiments, slide 112 may include various slices of a single tissue, cell, or biological material. For example, multiple slides 112 may include different slices of a tumor.
[0039] Continuing with reference to FIG. 1 , the memory 108 includes instructions further configuring the at least one processor 104 to receive the macro image 116 of the slide 112 from the scanner 109. In some embodiments, the processor 104 can receive the macro image 116 of the slide 112 using wired communication. In some embodiments, the processor 104 can receive the macro image 116 of the slide 112 using wireless communication. Wireless communication includes WiFi, Bluetooth, cellular communication, 3G, 4G, LTE, 5G, etc. In some embodiments, the macro image 116 of the slide 112 can be stored in a slide database. The slide database can be communicatively connected to the scanner 109 and / or the processor 104. In some embodiments, the processor 104 can be configured to retrieve the macro image 116 from the slide database. The slide database can be implemented as a key-value database, such as, but not limited to, a relational database, a NOSQL database, or any other format or structure for use as a database that one of ordinary skill in the art would recognize as suitable upon reviewing the entirety of this disclosure. The slide database may alternatively or additionally be implemented using a distributed data storage protocol and / or data structure, such as a distributed hash table. The slide database may include multiple data entries and / or records, as described above. Data entries in the database may be flagged or linked to one or more additional information elements, which may be reflected in data entry cells and / or in linked tables, such as tables related by one or more indexes in a relational database. Upon reviewing this disclosure in its entirety, one of ordinary skill in the art will recognize various ways in which data entries in a database, as used herein, may store, search, organize, and / or reflect data and / or records, as well as categories and / or populations of data consistent with this disclosure.
[0040] Continuing to refer to FIG. 1 , memory 108 includes instructions that further configure processor 104 to extract metadata 126 from macro image 116 of slide 112. For purposes of this disclosure, “metadata” refers to data that describes other data. In some embodiments, metadata 126 may describe slide 112 and / or image 114. In some embodiments, metadata 126 may describe pathology specimen 124. In some embodiments, metadata 126 may include content of slide 112 and / or image 114. In some embodiments, metadata 126 may include information about the patient from whom the pathology specimen was obtained. In some embodiments, metadata 126 may include slide preparation procedures.
[0041] Continuing with reference to FIG. 1 , extracting metadata 126 from macro image 116 of slide 112 may include determining circularity 128 of pathological specimen 124. In some embodiments, metadata 126 may include circularity 128. For purposes of this disclosure, "circularity" is a measure of the circularity of an object. In some embodiments, circularity can be calculated by comparing the area of an object (e.g., the area of pathological specimen 124) to the area of a circle having the same perimeter as the object. In some embodiments, circularity can be calculated using the following formula: Circularity = 4π * (sample area) / (sample perimeter) 2
[0042] Continuing with reference to FIG. 1 , determining the circularity 128 of the pathological specimen 124 includes using an image processing algorithm 130. In some embodiments, the image processing algorithm 130 may include multiple image processing algorithms 130. In some embodiments, the device 100 may include an image processing module, which is configured to execute one or more image processing algorithms 130. As used in this disclosure, an “image processing module” refers to a component designed to process digital images. The component may include a software component or a hardware component. In one embodiment, the image processing module may include multiple software algorithms that can analyze, manipulate, or otherwise enhance the image 114, such as, but not limited to, multiple image processing techniques as described below. In another embodiment, the image processing module may include hardware components, such as, but not limited to, one or more graphics processing units (GPUs) that can accelerate the processing of large numbers of images. In some cases, the image processing module may be implemented using one or more image processing libraries, such as, but not limited to, OpenCV, PIL / Pillow, ImageMagick®, etc. The image processing module may include, be contained within, and / or be communicatively connected to the scanner 109, the processor 104, and / or the memory 108. The image processing module may include, but is not limited to, image enhancement and restoration, feature segmentation based on regions of interest, multi-modality image registration and fusion, classification of image features by structural properties, quantitative measurement of image features, any combination thereof, etc. The image processing module may include any image processing technique used in various fields, including, but not limited to, healthcare, remote sensing, surveillance, entertainment, robotics, etc.
[0043] 1, the image processing module may be configured to receive images from the processor 104 and / or any other input means as described herein. In non-limiting examples, the image processing module may be configured to receive images from the processor 104, the scanner 109, and / or an image database.
[0044] Continuing with reference to FIG. 1 , the image processing module and / or image processing algorithms 130 may be configured to process images. In one embodiment, the image processing module and / or image processing algorithms 130 may be configured to compress and / or encode the 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 may facilitate high-speed transmission of images. In some cases, the image processing module and / or image processing algorithms 130 may be configured to perform lossless compression on the images, which can maintain the original image quality of the image. In non-limiting examples, the image processing module and / or image processing algorithms 130 may use techniques such as, but not limited to, Huffman coding, Lempel-Ziv-Welch (LZW), Run-Length Compression (RLC), and the like. The image processing module and / or algorithm 130 may utilize one or more lossless compression algorithms, such as Regression Level Encoding (RLE), to identify and remove redundancy in each image of the plurality of images without losing information. In such embodiments, compressing and / or encoding each image of the plurality of images may include converting the file format of each image to PNG, GIF, lossless JPEG2000, or the like. In one embodiment, an image compressed via lossless compression may be fully reconstructed to the image's original form (e.g., the original image's resolution, dimensions, color representation, format, etc.). In other cases, the image processing module and / or algorithm 130 may be configured to perform lossy compression on the plurality of images, which may sacrifice some image quality to achieve a higher compression ratio. In a non-limiting example, the image processing module and / or algorithm 130 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 file size with only a small loss in image quality.In such embodiments, compressing and / or encoding each image of the plurality of images may include converting the file format of each image to JPEG, WebP, lossy JPEG2000, or the like.
[0045] Continuing with reference to FIG. 1 , in one embodiment, processing the images may include determining a measure of the quality of the depiction of a region of interest in the image or multiple images. In some embodiments, the measure of the quality of the depiction of the region of interest may form part of the metadata 126. In one embodiment, the image processing module and / or image processing algorithm 130 may determine the blurriness of the image. In a non-limiting example, the image processing module and / or image processing algorithm 130 may perform blur detection by taking a Fourier transform, or an approximation such as a fast Fourier transform (FFT), of the image and analyzing the distribution of low and high frequencies in the resulting frequency domain depiction of the image. This may indicate, for example, but not by way of limitation, that the number of high frequency values below a threshold level may indicate blurriness. In another non-limiting example, blur detection may be performed by convolving the image, a channel of the image, or the like, with a Laplacian kernel, which may generate a numerical score reflecting the number of abrupt changes in intensity present in each image, such that a high score indicates sharpness and a low score indicates blurriness. In some cases, blur detection can be performed using a gradient-based operator that measures an 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 a low degree of blur. In some cases, blur detection may be performed using a wavelet-based operator that exploits the ability of discrete wavelet transform coefficients to describe the frequency and spatial content of an image. In some cases, blur detection may be performed using a statistics-based operator that utilizes several image statistics as texture descriptors to calculate the focus level. In other cases, blur detection may be performed 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 and / or image processing algorithm 130 may be configured to rank images according to the degree of quality of their depiction of the region of interest and select the highest-ranked image from the plurality of images.
[0046] Continuing with reference to FIG. 1 , processing the image may include enhancing at least one region of interest through a number of image processing techniques to improve the quality (or degree of quality of depiction) of the image for better processing and analysis, as described further in this disclosure. In one embodiment, the image processing module and / or image processing algorithms 130 may be configured to perform a noise reduction operation on the image, which may remove or minimize noise (caused by various causes, such as sensor limitations, poor lighting conditions, image compression, etc.), resulting in a cleaner, more visually consistent 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, etc. The noise reduction process may be performed by the image processing module and / or image processing algorithms 130 by averaging or filtering neighboring pixel values of each pixel in the image to reduce random fluctuations.
[0047] Continuing with reference to FIG. 1 , in another embodiment, the image processing module and / or image processing algorithms 130 may be configured to perform a contrast enhancement operation on the image. In some cases, an image may exhibit low contrast, e.g., features may be difficult to distinguish from the background. A contrast enhancement operation may improve the contrast of the image by expanding the intensity range of the image and / or redistributing intensity values (i.e., the degree of brightness of pixels in the image). In a non-limiting example, the intensity values represent the gray level or color of each pixel and may scale from an intensity range of 0 to 255 for an 8-bit image and 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 and / or image processing algorithms 130 may be configured to adjust the brightness and darkness levels in the image to make features more distinguishable (i.e., to enhance the degree of rendering quality). Additionally or alternatively, the image processing module and / or image processing algorithm 130 may be configured to perform a brightness normalization operation to correct for variations in lighting conditions (i.e., uneven brightness levels). In some cases, an image may contain consistent brightness levels across an entire region after a brightness normalization operation performed by the image processing module and / or image processing algorithm 130. In a non-limiting example, the image processing module and / or image processing algorithm 130 may perform global normalization or local mean normalization, where an average intensity value for the entire image or a region of the image is calculated and used to adjust the brightness level.
[0048] Continuing with reference to FIG. 1 , in other embodiments, the image processing module and / or image processing algorithm 130 may be configured to perform color space conversion operations to enhance the degree of rendering quality. In a non-limiting example, in the case of a color image (i.e., an RGB image), the image processing module and / or image processing algorithm 130 may be configured to convert the RGB image to grayscale or HSV color space. Such conversion may enhance the difference in intensity values between the region or feature of interest and the background. The image processing module and / or image processing algorithm 130 may further be configured to perform image sharpening operations, such as, but not limited to, unsharp masking, Laplacian sharpening, and high-pass filtering. The image processing module and / or image processing algorithm 130 may use image sharpening operations to enhance edges and fine details associated with the region or feature of interest in the image by emphasizing high-frequency components in the image.
[0049] Continuing with reference to FIG. 1 , in one embodiment, isolating a region or feature of interest from an image may include utilizing an edge detection technique that may detect one or more shapes defined by edges. As used in this disclosure, “edge detection technique” includes mathematical methods for identifying points in a digital image where the image brightness changes abruptly and / or discontinuities occur. In one embodiment, such points may be organized into straight and / or curved line segments called “edges.” Edge detection techniques may be performed by the image processing module and / or image processing algorithm 130 using any suitable edge detection algorithm, including, without limitation, Canny edge detection, Sobel operator edge detection, Prewitt operator edge detection, Laplacian operator edge detection, and / or derivative edge detection. Edge detection techniques may include edge detection based on phase congruency, which locates all locations in an image where all sinusoids in the frequency domain, generated using, for example, Fourier decomposition, have a consistent phase, which may indicate the location of an edge. Edge detection techniques may be used to detect the shape of features of interest, such as cells, indicating cell membranes or cell walls. In one embodiment, edge detection techniques may be used to find closed shapes formed by edges.
[0050] Referring to FIG. 1 , in a non-limiting example, identifying one or more features from the image 114 may include isolating one or more regions of interest using one or more edge detection techniques. A region of interest may include a specific region within a digital image that contains information relevant for further processing, such as one or more image features. In a non-limiting example, image data located outside the region of interest may contain irrelevant or redundant information. Such portions of the image 114 containing irrelevant or redundant information can be ignored by the image processing module and / or image processing algorithm 130, thereby allowing resources to be focused on the region of interest of interest. In some cases, the region of interest may vary in size, shape, and / or location within the image 114. In a non-limiting example, the region of interest may be depicted as a circle surrounding a cell nucleus. In some cases, the region of interest may specify one or more coordinates, distances, etc., such as the center and radius of a circle surrounding a cell nucleus in the image. The image processing module and / or image processing algorithm 130 may then be configured to isolate the region of interest from the image 114 based on the specific features. In a non-limiting example, the image processing module and / or image processing algorithm 130 may crop the image according to a bounding box that encloses the region of interest.
[0051] With continued reference to FIG. 1 , the image processing module and / or image processing algorithm 130 may be configured to perform connected component analysis (CCA) on the image for feature-of-interest isolation. As used in this disclosure, “connected component analysis (CCA),” also known as connected component labeling, 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 or background). A “connected region,” as described herein, is a group of adjacent pixels that share the same value and are connected based on a predefined neighborhood system, such as, but not limited to, a 4-connected neighborhood or an 8-connected neighborhood. In some cases, the image processing module and / or image processing algorithm 130 can convert the image to a binary image by thresholding, which may involve setting a threshold that separates pixels of the image corresponding to the feature 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 may be employed to detect and extract features of interest by identifying connected regions that exhibit specific characteristics or features of the feature of interest. The image processing module and / or algorithm 130 may then filter the connected regions by analyzing their characteristics, such as, but not limited to, area, aspect ratio, height, width, and perimeter. In a non-limiting example, the image processing module and / or algorithm 130 may retain connected components that closely resemble the dimensions and aspect ratio of the feature of interest as features of interest, while discarding other components. The image processing module and / or algorithm 130 may be further configured to extract features of interest from the image for further processing, as described below.The image processing algorithm 130 may be consistent with any of the image processing algorithms 130 disclosed in U.S. patent application Ser. No. 18 / 647,138, filed April 26, 2024 (Attorney Docket No. 1519-145USU1), entitled "APPARATUS FOR CONTROL OF IMAGE PROCESSING ALGORITHMS IN A GRAPHICAL INTERFACE," which is incorporated herein by reference in its entirety.
[0052] 1 , any of the image processing techniques described above can be used to determine the circularity 128 of the pathological specimen 124. In some embodiments, edge detection and / or CCA can be used to detect the location and / or shape of the pathological specimen 124. The location and / or shape of the pathological specimen 124 can be used by the processor 104 to determine the circularity 128 of the pathological specimen 124. In some embodiments, the processor 104 can use the location and / or shape of the pathological specimen 124 to determine the area of the pathological specimen, the diameter of the pathological specimen, the radius of the pathological specimen, etc. to determine the circularity 128.
[0053] 1 , memory 108 may include instructions that further configure processor 104 to extract text data 132 from labels 120 of slide 112 using optical character recognition 134. In some embodiments, processor 104 may be configured to extract text data 132 from non-label areas of slide 112. In some embodiments, extracting text data 132 from non-label areas of slide 112 may include recognizing handwriting on slide 112 and converting it to text data 132 using handwriting recognition, as described below.
[0054] Still referring to FIG. 1 , in some embodiments, optical character recognition or optical character reading (OCR) involves automatically converting an image of written (e.g., typed, handwritten, or printed) text into machine-coded text. In some cases, recognizing at least one keyword from an image component may include one or more processes, including without limitation optical character recognition (OCR), optical word recognition, intelligent character recognition, intelligent word recognition, etc. In some cases, OCR may recognize written text one glyph or one character at a time. In some cases, optical word recognition may recognize written text one word at a time, for example, in languages that use spaces as word separators. In some cases, intelligent character recognition (ICR) may recognize written text one glyph or one character at a time, for example, by employing a machine learning process. In some cases, intelligent word recognition (IWR) may recognize written text one word at a time, for example, by employing a machine learning process.
[0055] Still referring to FIG. 1, in some cases, OCR may be an "offline" process that analyzes static documents or static image frames. In some cases, handwriting motion analysis may be used as input for handwriting recognition. For example, rather than simply using glyph or word shapes, this technique may capture motions such as the order in which segments are drawn, the direction, and pen down and up patterns. This additional information can result in more accurate handwriting recognition. In some cases, this technique is also referred to as "online" character recognition, dynamic character recognition, real-time character recognition, and intelligent character recognition.
[0056] Still referring to FIG. 1 , in some cases, the OCR process may employ preprocessing of image components. Preprocessing processes may include, but are not limited to, deskew, despeckle, binarization, line removal, layout analysis or “zoning,” line and word detection, script recognition, character separation or “segmentation,” and normalization. In some cases, the deskew process may include applying a transformation (e.g., a homography or affine transformation) to the image components to align text. In some cases, despeckle processing may include removing positive and negative spots and / or smoothing edges. In some cases, the binarization process may include converting the image from color or grayscale to black and white (i.e., a binary image). Binarization may be performed as a simple technique to separate text (or any other desired image component) from the background of the image component. In some cases, binarization may be required, for example, when the OCR algorithm being employed only supports binary images. In some cases, a line removal process may include removing glyphs and non-character images (e.g., boxes and lines). In some cases, a layout analysis or "zoning" process may identify columns, paragraphs, captions, etc. as separate blocks. In some cases, a line and word detection process may establish baseline values for word and character shapes and separate words as needed. In some cases, a script recognition process may identify scripts, for example, in multilingual documents, allowing the selection of an appropriate OCR algorithm. In some cases, a character separation or "segmentation" process may separate signal characters, for example, in a character-based OCR algorithm. In some cases, a normalization process may normalize the aspect ratio and / or scale of image components.
[0057] Still referring to FIG. 1 , in some embodiments, the OCR process includes an OCR algorithm. Exemplary OCR algorithms include a matrix matching process and / or a feature extraction process. Matrix matching may involve comparing an image to stored glyphs on a pixel-by-pixel basis. In some cases, matrix matching is also known as “pattern matching,” “pattern recognition,” and / or “image correlation.” Matrix matching may depend on whether the input glyph is properly separated from the rest of the image components. Matrix matching may also depend on the stored glyph being in a similar font and at the same scale as the input glyph. Matrix matching may work best with typed text.
[0058] Still referring to FIG. 1 , in some embodiments, the OCR process may include a feature extraction process. In some cases, feature extraction may decompose a glyph into features. Exemplary, non-limiting features may include corners, edges, lines, closed loops, line direction, line intersections, etc. In some cases, feature extraction can reduce the dimensionality of the representation, making the recognition process computationally more efficient. In some cases, the extracted features can be compared to an abstract, vector-like representation of the character, resulting in one or more glyph prototypes. Common techniques for feature detection in computer vision can be applied to this type of OCR. In some embodiments, a machine learning process, such as a nearest neighbor classifier (e.g., a k-nearest neighbor algorithm), can be used to compare image features with stored glyph features and select the closest match. The OCR can employ any machine learning process described in this disclosure, such as the machine learning processes described with reference to FIGS. 5-7. Exemplary, non-limiting OCR software includes Cuneiform® and Tesseract®. Cuneiform® is a multilingual, open-source optical character recognition system originally developed by Cognitive Technologies, Moscow, Russia. Tesseract® is free OCR software originally developed by Hewlett-Packard, Palo Alto, California, USA.
[0059] Still referring to FIG. 1 , in some cases, OCR may employ a two-pass approach to character recognition. The second pass may include adaptive recognition, using glyphs that were reliably recognized in the first pass to better recognize the remaining characters in the second pass. In some cases, a two-pass approach may be advantageous for special fonts or low-quality image components that may distort the visual linguistic content. Another exemplary OCR software tool is OCRopus. Development of OCRopus is led by the German Research Center for Artificial Intelligence (DFKI) in Kaiserslautern, Germany. In some cases, the OCR software may employ neural networks, such as those taught with reference to FIGS. 5-7 below.
[0060] Still referring to FIG. 1 , in some cases, OCR may include post-processing. For example, in some cases, OCR accuracy can be improved if the output is constrained by a lexicon (dictionary). A lexicon may include a list or set of words that are allowed to appear in a document. In some cases, the lexicon may include, for example, all words in the English language, or a more specialized lexicon for a particular domain. In some cases, the output stream may be a plain text stream or a file of characters. In some cases, the OCR process may preserve the original layout of the visual linguistic content. In some cases, nearest neighbor analysis can utilize co-occurrence frequency to correct errors by noting that certain words frequently appear together. For example, "Washington, DC" is typically much more common in English than "Washington DOC." In some cases, the OCR process can utilize a priori knowledge of the grammar of the language being recognized. For example, grammar rules may be used to help determine whether a word is a verb or a noun. A distance conceptualization may be employed for recognition and classification. For example, the Levenshtein distance algorithm can be used in post-processing of the OCR to further optimize the results.
[0061] Continuing with reference to FIG. 1 , in some embodiments, memory 108 may include instructions that configure at least one processor 104 to extract metadata 126 from the slide and / or image using the unique identifier 122. As a non-limiting example, processor 104 may extract the unique identifier from text data 132 (for example, if the unique identifier 122 is a numeric code). Processor 104 may then look up the unique identifier in a look-up table (LUT) or database to obtain data associated with the unique identifier 122, which can be stored as metadata 126 for the slide 112. In some embodiments, processor 104 and / or scanner 109 may scan the unique identifier 122. Scanning the unique identifier 122 may include one or more image processing algorithms, such as those described above. For example, the image processing algorithm may enable processor 104 to determine a code from the unique identifier 122, such as a barcode, a QR code, or the like. The code may include an alphanumeric or numeric code that the processor 104 can use to retrieve information related to the slide 112 from a database or lookup table. In some embodiments, the code may include a URL, IP address, or other means of locating content on the web. The processor 104 may be configured to scrape the URL and / or IP address for information related to the slide 112. This information related to the slide 112 may be stored as metadata 126 for the slide 112.
[0062] Continuing with reference to FIG. 1 , in some embodiments, memory 108 may include instructions that further configure processor 104 to identify one or more fiducials 136 on macro image 116 using pattern recognition. In some embodiments, memory 108 may include instructions that further configure processor 104 to identify one or more printed fiducials 136 on slide 112 using pattern recognition. In some embodiments, memory 108 may include instructions that further configure processor 104 to identify one or more hand-drawn fiducials 136 on slide 112 using pattern recognition. In some embodiments, memory 108 may include instructions that further configure processor 104 to identify one or more hand-drawn fiducials 136 on unlabeled areas of slide 112 using pattern recognition. For purposes of this disclosure, a “fiducial” refers to a fixed reference point on a slide. In some embodiments, a fiducial is indicated by a marking such as a dot, an X, a star, a circle, a rectangle, an arrow, a wedge, or the like. For purposes of this disclosure, a “printed fiducial” refers to a fiducial that is printed or otherwise placed on a slide using an electronic printing mechanism. For purposes of this disclosure, "hand-drawn fiducials" refer to fiducials printed or otherwise placed on a slide by a human hand. In some embodiments, the fiducials may be on the label 120 of the slide 112. For example, the fiducials may include a check or an X indicating label options. In some embodiments, the fiducials may be placed on an unlabeled portion of the slide 112. For example, this may include markings around the pathological specimen 124.
[0063] Continuing with reference to FIG. 1 , using pattern recognition to identify fiducials 136 may include one or more image processing algorithms 130, as described above. In some embodiments, fiducials 136 may be identified using a fiducial machine learning model. The fiducial machine learning model may be trained with fiducial training data, which may include images labeled to identify the fiducials. The fiducial machine learning model may be trained with fiducial training data, which may include images labeled to identify the fiducials, including the fiducial type. The fiducial machine learning model may be trained with fiducial training data, which may include macro images labeled to identify the fiducials. The fiducial machine learning model may be trained with fiducial training data, which may include macro images labeled to identify the fiducials, including the fiducial type. The fiducial machine learning model may be configured to take the image 114 or the macro image 116 as input and, in some embodiments, output the identified fiducials 136, which may include the fiducial type. The fiducial machine learning model may be consistent with any machine learning model of the present disclosure. The baseline machine learning model can be created using the machine learning module 500 disclosed with reference to FIG.
[0064] 1, memory 108 may include instructions that further configure processor 104 to determine a classification category 138 for slide 112 as a function of metadata 126. For purposes of this disclosure, a "classification category" refers to an associative grouping of slides.
[0065] 1 , in some embodiments, determining the classification category 138 of the slide 112 as a function of the metadata 126 may include using an image processing algorithm 130 to identify markings of one or more criteria 136 on the slide 112, including any of the criteria identification methods described above.
[0066] Continuing with reference to FIG. 1 , in some embodiments, determining the classification category 138 of the slide 112 as a function of the metadata 126 may include determining the classification category 138 of the slide 112 as a function of one or more criteria 136. As a non-limiting example, detection of the criteria 136 may be used as a determining factor for determining the classification category 138. In some embodiments, detection of the type of criteria 136 may be used as a determining factor for determining the classification category 138. For example, in some cases, the processor 104 may search for multiple classification rules. The classification rules may instruct the processor 104 to select a particular classification category 138 for the type of detected criteria 136. In some embodiments, the classification category 138 may be determined based on the criteria 136 using a category classifier 140, described below. In some embodiments, the category classifier 140 may be trained using training data that correlates criteria to classification categories.
[0067] Continuing with reference to FIG. 1 , in some embodiments, determining the classification category 138 of the slide 112 as a function of the metadata 126 may include determining the classification category 138 as a function of the circularity 128 of the pathological specimen 124. In some embodiments, the processor 104 may be configured to assign the classification category 138 according to the circularity 128. In some embodiments, the processor 104 may be configured to look up the circularity 128 in a lookup table to retrieve the classification category 138. The lookup table may include circularities mapped to classification categories 138. In some embodiments, the processor 104 may determine the classification category 138 based on the circularity 128 according to one or more classification rules, which may be, for example, that slides 112 having a circularity 128 between 0.95 and 1.05 are assigned to category A, slides 112 having a circularity 128 between 0.8 and 0.95 and between 1.05 and 1.2 are assigned to category B, and the remaining slides 112 are assigned to category C. In some embodiments, the category threshold is user-configurable. In some embodiments, the classification category 138 may be determined based on the circularity 128 using a category classifier 140, described below. In some embodiments, the category classifier 140 may be configured to determine the classification category as a function of the circularity 128. In some embodiments, the training data for the category classifier 140 may include example circularities of slides that correlate to the classification categories of the slides.
[0068] Continuing with reference to FIG. 1 , determining the classification category 138 of the slide 112 as a function of the metadata 126 may include determining the classification category 138 of the slide 112 as a function of the text data 132. In some embodiments, this may include extracting one or more keywords 144 from the text data 132 using a natural language processing 142 algorithm. In some embodiments, a language processing module can be used to perform the natural language processing algorithm. The language processing module may include any hardware and / or software module. The language processing module may be configured to extract one or more words from one or more documents. The one or more words may include one or more strings of characters, including, but not limited to, one or more sequences of letters, numbers, punctuation, phonetic symbols, engineering symbols, geometric dimensioning and tolerance (GD&T) symbols, chemical symbols and formulas, spaces, whitespace, and other symbols (including any symbols usable as text data as described above). The text data may be parsed into tokens, which may include simple words (strings of characters separated by whitespace) or, more generally, strings of characters, as described above. As used herein, the term "token" refers to smaller, individual groupings of text from a larger source of text. Tokens may be divided into words, word pairs, sentences, or other segments. These tokens may be analyzed in various ways. Text data may be parsed into words or sequences of words, which may also be considered words. Text data may be parsed into "n-grams," in which all n consecutive strings of characters are considered. All possible token or word sequences may be saved as "chains," for use, for example, as Markov chains or hidden Markov models.
[0069] Still referring to FIG. 1 , the language processing module may operate to generate a language processing model. In some embodiments, the natural language processing 142 algorithm may include a language processing model. The language processing model may be automatically generated by the computing device and / or the language processing module to generate associations between one or more words extracted from at least a document and include a program that detects associations (including, without limitation, mathematical associations) between such words. Associations between linguistic elements (for purposes of this specification, linguistic elements include extracted words, relationships between such categories and other such terms) may include mathematical associations, including, but not limited to, statistical correlations, between any linguistic element and any other linguistic element and / or linguistic elements. The statistical correlations and / or mathematical associations may include, for example, probabilistic formulas or relationships indicating the likelihood that a given extracted word exhibits a given semantic meaning category. As a further example, the statistical correlations and / or mathematical associations may include probabilistic formulas or relationships indicating positive and / or negative associations between at least extracted words and / or given semantic meanings. A positive or negative indicator may include an indication that a given document does or does not exhibit the semantic meaning of a category. Whether a phrase, sentence, word, or other text element within a document or corpus of documents constitutes a positive or negative indicator may be determined, in one embodiment, by mathematical associations between detected words, comparison with phrases and / or words that exhibit positive and / or negative indicators stored in the memory of a computing device, etc.
[0070] Still referring to FIG. 1 , the language processing module and / or diagnosis engine can generate the language processing model by any suitable method, including, without limitation, a natural language processing classification algorithm, which may include a natural language process classification model that enumerates and / or derives statistical relationships between input and output phrases. Algorithms for generating the language processing model include stochastic gradient descent algorithms. Stochastic gradient descent algorithms may include methods that iteratively optimize an objective function, such as an objective function that represents a statistical estimate of relationships between phrases, including relationships between input and output phrases, in the form of a sum of relationships to be estimated. In an alternative or additional approach, consecutive tokens may be modeled as chains and serve as observations in a hidden Markov model (HMM). As used herein, an HMM is a statistical model with an inference algorithm that can be applied to the model. In such models, the inferred hidden states may include associations between extracted words, phrases, and / or other semantic units. The number of categories to which an extracted word may belong may be finite. HMM inference algorithms, such as forward-backward and Viterbi algorithms, can be used to estimate the most likely discrete states given a word or sequence of words. The language processing module may combine two or more approaches. For example, but not by way of limitation, a machine learning program may use a combination of Naive Bayes (NB), Stochastic Gradient Descent (SGD), and parameter grid search classification techniques. The results may include a classification algorithm that returns ranked associations.
[0071] Continuing with reference to FIG. 1 , generating a language processing model may include generating a vector space. A vector space can be defined as a set of mathematical objects that can be added by an additive operation and multiplied by a scalar value by a scalar multiplication operation that is compatible with field multiplication, following the properties of associativity, commutativity, existence of an identity element, and existence of an inverse element for each vector. The vector space is a set of vectors that have an identity element, are distributive with respect to vector addition, and are distributive with respect to field addition. Each vector in the n-dimensional vector space can be represented by n sets of numerical values. Each unique word and / or linguistic element extracted as described above can be represented by a vector in the vector space. In one embodiment, each unique linguistic element and / or other linguistic elements extracted can be represented by a dimension of the vector space. As a non-limiting example, each element of a vector may include a numerical value representing an enumeration of co-occurrences of the word and / or linguistic element represented by the vector with other words and / or linguistic elements. The vectors may be normalized and scaled according to relative frequency of occurrence or file size. In one embodiment, associating linguistic elements with each other as described above may include calculating vector similarity between a vector representing each linguistic element and a vector representing another linguistic element. Vector similarity may be measured according to any criterion of proximity and / or similarity between two vectors, including, without limitation, cosine similarity, which measures the similarity of two vectors by evaluating the cosine of the angle between the vectors, and may be calculated using the dot product of the two vectors divided by their lengths. Similarity may include a geometric measure of the distance between vectors.
[0072] Still referring to FIG. 1 , the language processing module may use a corpus of documents to generate associations between linguistic elements within the language processing module, and the diagnostic engine may then use such associations to analyze words extracted from one or more documents and determine that the one or more documents indicate category importance. In one embodiment, the language module and / or processor 104 may perform this analysis using a selected set of important documents, such as documents identified by one or more experts as representing good information. The experts may identify such documents or enter them via a graphical user interface, or may communicate the identification of the important documents according to other suitable methods of telecommunication, or may communicate the identification of the important documents by providing such identification information to another person who can enter such identification information into processor 104. Documents may be entered into the computing device by being uploaded by the experts or another person using, without limitation, File Transfer Protocol (FTP) or other suitable methods for transmitting and / or uploading documents. Alternatively or additionally, if a document is identified by a citation, a Uniform Resource Identifier (URI), a Uniform Resource Locator (URL), or other data that allows for unambiguous identification of the document, the diagnosis engine may automatically retrieve the document using such identifier by sending a request to a database or compendium of documents, such as JSTOR, provided by Ithaka Harbors, Inc. of New York.
[0073] Continuing with reference to FIG. 1 , for purposes of this disclosure, a “keyword” refers to one or more tokens assigned a particular importance. In some embodiments, determining the classification category 138 may be a function of one or more keywords 144. In some embodiments, the processor 104 may look up the keywords 144 in a lookup table to determine the one or more classification categories 138, where the lookup table may associate keywords with classification categories. In some embodiments, the processor 104 may be configured to assign the classification category 138 as a function of detecting a classification category name in the slide keywords 144. In some embodiments, the category classifier 140 may be configured to determine the classification category 138 as a function of the keywords 144. The category classifier 140 may be trained using training data that associates one or more keywords with classification categories.
[0074] Continuing with reference to FIG. 1 , the category classifier 140 may be configured to classify the slides 112 into classification categories 138 based on one or more elements of the metadata 126. This was discussed above. In some embodiments, the category classifier 140 may be configured to classify the slides 112 into classification categories 138 as a function of multiple types of metadata 126. By way of non-limiting example, the multiple types of metadata 126 may include one or more of circularity, text data, a unique identifier, a criterion, and the like. In some embodiments, the category classifier 140 may include multiple classifier components, each of which may be trained to classify a particular type of metadata 126 into a classification category 138. For example, one classifier component may be trained to classify circularity into a classification category, and another classifier component may be trained to classify text data into a classification category. The entire category classifier 140 may be trained using a loss function that attempts to minimize the loss from classifying individual types of metadata 126. In some embodiments, the training data for the category classifier 140 may include example metadata that correlates to example classification categories. In some embodiments, the category classifier 140 may include a clustering algorithm such as K-means or other clustering algorithms disclosed throughout this disclosure. In some embodiments, the category classifier may be compatible with any classifier disclosed using this disclosure. In some embodiments, the category classifier 140 may be created using the machine learning module 500 disclosed with reference to FIG. 5.
[0075] Continuing with reference to FIG. 1 , in some embodiments, the processor 104 may be configured to obtain a selected scan profile 146 as a function of the classification category 138 of the slide 112. In some embodiments, the processor 104 may be configured to obtain the selected scan profile 146 from a lookup table, which may include classification categories 138 that correlate to the scan profile. For purposes of this disclosure, a “scan profile” is a set of parameters that can be used to configure a scanner. The selected scan profile 146 may include a magnification parameter. For purposes of this disclosure, a “magnification parameter” is a parameter that defines a magnification level for imaging a slide using a scanner. For example, the magnification parameter may be 1x, 2x, 5x, 10x, 20x, or 40x. In some embodiments, the selected scan profile 146 may include a Z-stack layer parameter. The Z-stack layer parameter may include information regarding a Z-stack to be used for the slide 112. For example, the Z-stack parameter may include one or more Z levels or focuses to be used to scan the slide 112.
[0076] 1 , the memory 108 may include instructions that further configure the at least one processor 104 to image the slide 112 using the scanner 109 as a function of the magnification parameter and the Z-stack layer parameter. For example, as a function of the magnification parameter, the processor 104 may control the scanner 109 to change the lens, objective, or optical system 110. For example, as a function of the magnification parameter, the processor 104 may control the scanner 109 to adjust the lens distance to change the magnification of the slide 112. For example, as a function of the Z-stack layer parameter, the processor 104 may control the scanner 109 to change the focal length of the scanner 109.
[0077] Continuing with reference to FIG. 1 , in some embodiments, the selected scan profile 146 may be communicated to the scanner 109. For example, this may include wired or wireless communication. In some embodiments, the scanner 109 may configure itself to scan according to the selected scan profile 146 in response to receiving the selected scan profile 146. In some embodiments, the processor 104 may be configured to configure the scanner 109 as a function of the selected scan profile 146. In some embodiments, the multiple scan profiles 148 may be obtained from a profile lookup table, which may include classification categories 138 that correlate to one or more scan profiles. In some embodiments, the processor 104 may generate one or more control commands to control the scanner 109 in response to the selected scan profile 146.
[0078] Continuing with reference to FIG. 1 , in some embodiments, selecting the selected scan profile 146 from the plurality of scan profiles as a function of the classification category 138 may include selecting the selected scan profile 146 from the plurality of scan profiles 148 as a function of the classification category 138 as a function of a plurality of selection weights 150. A “selection weight” is a parameter for selecting a scan profile. In some embodiments, the processor 104 may find multiple scan profiles 148 associated with the classification category 138. In that scenario, the selected scan profile 146 may be determined to be the scan profile with the highest selection weight 150. In some embodiments, if the slide 112 has been classified into multiple classification categories 138, the processor 104 may determine a scan profile for each of the classification categories and select the scan profile with the highest selection weight 150.
[0079] Continuing with reference to FIG. 1 , in some embodiments, a utilization datum 152 may be incremented for a selected scanning profile 146. For purposes of this disclosure, a “utilization datum” is a numerical value indicating the amount to which a particular scanning profile is selected as the selected scanning profile. For example, when a selected scanning profile 146 is selected, its utilization datum 152 may be incremented from 0 to 1, from 1 to 2, etc. In some embodiments, a selection weight 150 may be updated as a function of the utilization datum 152. For example, if the utilization datum is incremented, the selection weight 150 may increase. In some embodiments, the selection weight 150 may be normalized with respect to the utilization datum 152 to represent the relative usage between the profiles. In some embodiments, a selected scanning profile may be selected from multiple scanning profiles as a function of the selection weight 150.
[0080] Continuing with reference to FIG. 1 , in some embodiments, the plurality of scan profiles 148 and / or the selected scan profile 146 may be retrieved from a scan profile database 154. The scan profile database 154 may be implemented as a key-value database, such as, but not limited to, a relational database, a NOSQL database, or any other format or structure for use as a database that one of ordinary skill in the art would recognize as suitable after reviewing the entirety of this disclosure. The scan profile database 154 may alternatively or additionally be implemented using a distributed data storage protocol and / or data structure, such as a distributed hash table. The scan profile database 154 may include multiple data entries and / or records, as described above. Data entries in the database may be flagged or linked to one or more additional information elements, which may be reflected in data entry cells and / or in linked tables, such as tables related by one or more indexes in a relational database. Those skilled in the art will recognize, upon review of this disclosure in its entirety, the various ways in which data entries in a database, as used herein, can store, search, organize, and / or reflect data and / or records, as well as categories and / or populations of data consistent with this disclosure.
[0081] 1 , memory 108 includes instructions that configure processor 104 to image slide 112 using optics 110 and optical sensor 113 of scanner 109 as a function of a selected scan profile 146. In some embodiments, imaging slide 112 as a function of a selected scan profile 146 may include controlling scanner 109 using one or more control commands. Control comments, in some embodiments, may be determined as a function of selected scan profile 146. In some embodiments, selected scan profile 146 may include one or more control commands or control command parameters.
[0082] 1 , in some embodiments, imaging with the scanner 109, slides 112 as a function of the selected scan profile 146 may include training a regional machine learning model 158 using regional training data, which may include slide images correlating with labeled regions. The labeled regions may include, for example, by way of non-limiting example, regions or grids labeled according to the presence or absence of pathological specimens 124, fiducials 136, notes, etc.
[0083] Continuing with reference to FIG. 1 , in some embodiments, using the scanner 109 and the slide 112 as a function of the selected scan profile 146 may include detecting a region of interest 156 on the slide 112 using a region machine learning model 158. In some embodiments, detecting the region of interest 156 on the slide may include detecting fiducials 136 around the pathological specimen. In some embodiments, the region machine learning model 158 may include a classifier trained on images having labels identifying the pathological specimen 124 and the fiducials 136. In some embodiments, detecting the region of interest 156 may include segmenting the image 114 into a plurality of grids. The classifier may then be used to label each grid of the plurality of grids and a function of whether it contains the pathological specimen 124 or the fiducials 136. In some embodiments, a grid determined to contain the pathological specimen 124 or the fiducials 136 may be determined to be part of the region of interest 156. In some embodiments, this may include a grid expansion algorithm or any of the methods for identifying regions of interest disclosed in U.S. Patent Application No. 18 / 736,818, filed June 7, 2024 (Attorney Docket No. 1519-163USU1), entitled "APPARATUS AND METHOD FOR DETECTING CONTENT OF INTEREST ON A SLIDE USING MACHINE LEARNING," which is incorporated herein by reference in its entirety. In some embodiments, a region machine learning model 158 is used to detect a region of interest 156 on the slide 112, the region of interest 156 encompassing the pathological specimen 124 and one or more criteria 136 that bound the pathological specimen.
[0084] Continuing with reference to FIG. 1 , in some embodiments, the regional machine learning model may include a classifier model configured to classify content of interest as accepted grids or rejected grids using at least probe points from the macro image 116. In some embodiments, accepted grids are portions of the image 114 and / or slide 112 that are part of the region of interest 156. Rejected grids are portions of the image 114 and / or slide 112 that are not part of the region of interest 156 or that have been removed from the region of interest 156. As used in this disclosure, a “grid” refers to a small or segmented region of an image. As used in this example, a “classifier model” refers to a model designed to classify elements with similar characteristics into specific groups. In a non-limiting example, the classifier model may be trained on a labeled dataset, where each input is associated with a corresponding class label, and the classifier model may learn patterns and features that distinguish one class from another. In a non-limiting example, the classifier model may classify at least grids within a plurality of grids of the image 114 as either accepted grids or rejected grids. The classifier model may first analyze multiple grids of the macro image 116 .
[0085] With continued reference to FIG. 1 , device 100 may include a machine learning model trained using a plurality of macro images 114 and / or high magnification images 114 and a labeled dataset for classifying content of interest as accepted grids or rejected grids. In some embodiments, the training set may include labeled high magnification images. In some embodiments, the training set may include labeled macro images. In some embodiments, the training set may include labeled images. In a non-limiting example, a “labeled dataset” may include a plurality of macro images and high magnification images, including a plurality of labeled grids. In some embodiments, the grids may be labeled as accepted grids or rejected grids to distinguish one or more regions of interest and content of interest, such as, but not limited to, pen marks and tissue cells, respectively. In some embodiments, the grids may be labeled based on their content, such as cells, cell types, pen marks, debris, etc. In a non-limiting example, one or more machine learning models may be included in device 100. In a non-limiting example, the device 100 may include a classifier model specialized in determining grids containing content of interest within the macro-image 116. Continuing with the previous non-limiting example, the classifier model used to analyze the macro-image 116 may be trained on multiple macro-images to detect particular content of interest, such as, but not limited to, tissue cells.
[0086] 1 , in some embodiments, when the processor 104 is configured to calculate a quality metric, a portion (e.g., a grid) of the region of interest 156 identified as containing a fiducial may be excluded from the calculation of the quality metric. This may allow for a more accurate calculation of the quality metric. The calculation of the quality metric may be consistent with any of the calculations of the quality metric disclosed in U.S. Patent Application No. 18 / 602,947, filed March 12, 2024 (Attorney Docket No. 1519-029USU1), entitled "SYSTEMS AND METHODS FOR INLINE QUALITY CONTROL OF SLIDE DIGITIZATION," which is incorporated herein by reference in its entirety.
[0087] Continuing to refer to FIG. 1 , in some embodiments, the processor 104 may be configured to configure the scanner 109 using a set of application programming interfaces 160. The processor 104 may be further configured to image the slide 112 at macro magnification using the optics 110 and optical sensor 113 of the scanner 109. The processor may be further configured to configure an algorithm pipeline for processing the macro image of the slide using the set of application programming interfaces 160. The algorithm pipeline may include a set of algorithms and / or a sequence of algorithms for processing the image. At least one processor is used to process the macro image of the slide using the algorithm pipeline. The processor 104 may be further configured to process the macro image of the slide using the algorithm pipeline.
[0088] In some embodiments, the processor 104 may be configured to configure image acquisition of the slide 112 using a scanner at high magnification using a set of application programming interfaces 160. In some embodiments, the processor 104 may be configured to configure image acquisition of the slide 112 using a scanner at 20x magnification using a set of application programming interfaces 160. In some embodiments, the processor 104 may be configured to configure image acquisition of the slide 112 using a scanner at 40x magnification using a set of application programming interfaces 160. For purposes of this disclosure, an "application programming interface" refers to a protocol used by two or more applications to communicate with each other. In some embodiments, the processor may be configured to configure the download of software containers necessary for inline calculations using a set of application programming interfaces (APIs). In some embodiments, a selected scanning profile 146 may be associated with one or more software containers. In some embodiments, the processor 104 may be configured to configure an algorithm pipeline for processing macroscopic images of the glass slide using a set of application programming interfaces (APIs). In some embodiments, the processor 104 may be configured to configure image acquisition of the glass slide at high magnification. In some embodiments, the processor 104 may be configured to configure the high magnification slide image acquisition using a set of configurable parameters. In some embodiments, the processor 104 may be configured to configure an algorithmic pipeline for processing the high magnification slide images using a set of application programming interfaces (APIs).In some embodiments, the processor 104 may be configured to use the classification category of the glass slide to configure the configured image acquisition pipeline and algorithm pipeline as a scan profile for the associated metadata.
[0089] Referring now to FIG. 2, a scan profile diagram 200 is shown. In some embodiments, scan profile 204 may include a static profile 208 or a dynamic profile 212. Scan profile 204 may be consistent with any scan profile in this disclosure. For purposes of this disclosure, a "static profile" refers to a scan profile that is not responsive to slide metadata or slide image analysis. For purposes of this disclosure, a "dynamic profile" refers to a scan profile that is responsive to slide metadata or slide image analysis.
[0090] Continuing with FIG. 2 , a scanning profile can be created by a user and applied in any of the ways described above. If scanning profile 204 is configured on the scanner as static profile 208, the same scanning profile will be applied to all scanned slides until a different profile is configured by the user. If profile selection is allowed to vary from slide to slide (e.g., dynamic profile 212), the profile may be dynamically selected based on content extracted from the slide. Macro-image analysis-based profile 216 may provide a mechanism for selecting a required profile depending on the content of interest on the slide. For example, if a specific hue is detected in macro-image analysis, a profile specialized for that hue can be used to scan the slide. Alternatively, if a specific circularity is detected, a specific scanning profile can be used. Label metadata-based profile 220 may provide a mechanism for selecting a required profile depending on the content of the label. This may be consistent with the metadata extracted from the label described with reference to FIG. 1 . In some embodiments, as an example, the type of slide can be used to select a scanning profile.
[0091] 2, with respect to static profiles 208, static profiles 208 may include factory profiles 224. In some embodiments, static profiles may include user-configured profiles 228. User-configured profiles 228 may be selected by a user and may be received by the processor through user input.
[0092] Referring now to FIG. 3, a diagram 300 of macro image analysis automatic profile selection is shown. Elements A and B show one type of slide with fiducial markers 304 placed on the slide. A pathological specimen 308, in this case, may be located within the range of the fiducial markers 304. As further described with reference to FIG. 1, macro image analysis can detect the fiducial markers 304 and use them as a decision factor for selecting profile A 312. As part of profile A 312, a region of interest 316 for scanning the slide may be expanded to include the actual pathological specimen 308 and its surrounding fiducial markers 304.
[0093] Continuing to refer to Figure 3, elements C and D show another type of slide in which the pathological specimen 320 is arranged in a circle with a particular diameter 324. Macroscopic image analysis can detect the circularity and diameter of the circle and be used as a decision factor for selecting profile B 328.
[0094] 4, a diagram 400 of components of a scan profile 404 is shown. The scan profile 404 may include an image acquisition configuration 408. The image acquisition configuration 408 may include one or more parameters for configuring the scanner to perform various types of imaging, such as, but not limited to, macro imaging, 4x imaging, and / or 40x imaging. In some embodiments, the image acquisition configuration 408 may include macro imaging parameters 412. In some embodiments, the image acquisition configuration 408 may include 4x imaging parameters 416. In some embodiments, the image acquisition configuration 408 may include 40x imaging parameters 420.
[0095] Continuing with reference to FIG. 4 , the scan profile 404 may include an inline algorithm pipeline 424. In some embodiments, the inline algorithm pipeline 424 may include a default macro pipeline 428. For purposes of this disclosure, an “inline algorithm” refers to an algorithm configured to be called while other processing is occurring. For example, an inline algorithm may be configured to run while a scan is occurring. An inline algorithm may provide various outputs that can be used to affect the ongoing scan. In some embodiments, the inline algorithm pipeline 424 may include a custom 4x pipeline 432. In some embodiments, the custom 4x pipeline 432 may include a tumor classification 436 module. In some embodiments, the inline algorithm pipeline 424 may include a custom 40x pipeline 440. In some embodiments, the custom 40x pipeline 440 may include a mitosis counter 444 module.
[0096] Continuing with reference to FIG. 4, diagram 400 may illustrate one example of configurable components that make up a scan profile, where the scan profile may include macro imaging, 4x imaging, and 40x imaging. Multiple imaging parameters may be part of the scan profile 404. Those skilled in the art who have reviewed this disclosure in its entirety will understand that the scan profile 404 shown is merely an example having several parameters, and that other parameters are possible.
[0097] 5, an exemplary embodiment of a machine learning module 500 that may perform one or more machine learning processes as described in this disclosure is illustrated. The machine learning module may use the machine learning processes to perform the determining, classifying, and / or analyzing steps, methods, processes, etc. as described in this disclosure. As used in this disclosure, a "machine learning process" is a process that automatically uses training data 504 to generate algorithms implemented in hardware or software logic, data structures, and / or functions executed by a computing device / module to produce an output 508 when data is provided as input 512, as opposed to a non-machine learning software program in which the commands to be executed are predetermined by a user and written in a programming language.
[0098] Still referring to FIG. 5 , as used herein, “training data” refers to data containing correlations that a machine learning process can use to model relationships between two or more categories of data elements. For example, without limitation, training data 504 may include multiple data entries, also known as “training examples,” each representing a collection of data elements recorded, received, and / or generated together, where the data elements may be correlated by shared presence in a given data entry, proximity in a given data entry, etc. The multiple data entries in training data 504 may exhibit one or more trends in correlations between categories of data elements. For example, without limitation, high values of a first data element belonging to a first category of data elements tend to correlate with high values of a second data element belonging to a second category of data elements, indicating the possibility of a proportional or other mathematical relationship linking values belonging to the two categories. Multiple categories of data elements may be associated in training data 504 according to various correlations. Correlations may indicate causal and / or predictive links between categories of data elements and may be modeled as relationships, such as mathematical relationships, by machine learning processes, as described in further detail below. Training data 504 may be formatted and / or organized by categories of data elements, for example, by associating the data elements with one or more descriptors that correspond to the categories of the data elements. As a non-limiting example, training data 504 may include data entered into a standardized form by a person or process, such that entry of a given data element in a given field of the form maps to one or more descriptors of the category. Elements of training data 504 may be linked to descriptors of the category by tags, tokens, or other data elements.For example, but not limited to, the training data 504 may be provided in a fixed-length format, a format that links the location of the data to a category, such as a comma-separated values (CSV) format, and / or a self-describing format, such as Extensible Markup Language (XML) or JavaScript Object Notation (JSON), that allows a process or device to detect the category of the data.
[0099] Alternatively or additionally, with continued reference to FIG. 5 , the training data 504 may include one or more uncategorized elements. That is, the training data 504 may be unformatted or may not include descriptors for some elements of the data. Machine learning algorithms and / or other processes may sort the training data 504 according to one or more categorizations, for example, using natural language processing algorithms, tokenization, detecting correlation values in the raw data, etc. Categories may be generated using correlation and / or other processing algorithms. As a non-limiting example, in a corpus of text, phrases consisting of “n” compounds, such as nouns modified by other nouns, may be identified according to the statistically significant prevalence of n-grams containing such words in a particular order. Such n-grams may be categorized as elements of language, such as “words,” that are tracked similarly to single words, generating new categories as a result of statistical analysis. Similarly, in a data entry containing text data, a person's name can be identified by referencing a list, dictionary, or other glossary, allowing for ad-hoc categorization by a machine learning algorithm and / or automatic association of the data in the data entry with a descriptor or a given format. The ability to automatically categorize data entries allows the same training data 504 to be applied to two or more different machine learning algorithms, as described in further detail below. The training data 504 used by the machine learning module 500 can correlate any input data as described in this disclosure with any output data as described in this disclosure. Non-limiting examples include metadata correlating to taxonomic categories or images correlating to regions of interest.
[0100] 5 , the training data may be filtered, sorted, and / or selected using one or more supervised and / or unsupervised machine learning processes and / or models, as described in further detail below, including, but not limited to, a training data classifier 516. The training data classifier 516 may include a “classifier,” which, as used in this disclosure, is a machine learning model, as defined below, such as a data structure representing and / or using a mathematical model, neural net, or program generated by a machine learning algorithm known as a “classification algorithm,” as described in further detail below. A classification algorithm sorts input into categories or bins of data, and a classifier outputs categories or bins of data and / or associated labels. The classifier may be configured to output at least one datum that labels or otherwise identifies a set of data, such as clustered, found proximate under a distance metric as described below, etc. The distance metric may include any norm, such as, but not limited to, the Pythagorean norm. The machine learning module 500 may generate a classifier using a classification algorithm, defined as a process by which a computing device and / or any modules and / or components operating on the computing device derive a classifier from training data 504. Classification may be performed using, but is not limited to, linear classifiers such as, but not limited to, 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, boosted trees, random forest classifiers, learning vector quantization, and / or neural network-based classifiers. As a non-limiting example, the training data classifier 516 may classify elements of the training data into slide types, pathology specimen types, etc.
[0101] Still referring to FIG. 5, a computing device may be configured to generate a classifier using a Naive Bayes classification algorithm. The Naive Bayes classification algorithm generates a classifier by assigning class labels to problem instances represented as vectors of element values. The class labels are drawn from a finite set. The Naive Bayes classification algorithm may include generating a family of algorithms that assume that, given a class variable, the value of a particular element is independent of the values of other elements. The Naive Bayes classification algorithm may be based on Bayes' theorem, expressed as P(A / B) = P(B / A)P(A) ÷ P(B), where P(A / B) is the probability (also known as the posterior probability) of hypothesis A given data B, P(B / A) is the probability of data B given hypothesis A is true, P(A) is the probability (also known as the prior probability of A) that hypothesis A is true regardless of the data, and P(B) is the probability of the data regardless of the hypothesis. The Naive Bayes algorithm may be generated by first converting training data into a frequency table. The computing device can then calculate a likelihood table by calculating the probabilities of different data entries and classification labels. The computing device can utilize a Naive Bayes equation to calculate the posterior probability of each class. The class containing the highest posterior probability is the predicted result. The Naive Bayes classification algorithm may include a Gaussian model that follows a normal distribution. The Naive Bayes classification algorithm may include a multinomial model used for discrete counts. The Naive Bayes classification algorithm may include a Bernoulli model used when the vector is binary.
[0102] Continuing with FIG. 5 , the computing device may be configured to generate a classifier using a K-nearest neighbor (KNN) algorithm. As used in this disclosure, a “K-nearest neighbor algorithm” includes a classification method that utilizes feature similarity to analyze how similar out-of-sample features are to training data and classify input data into one or more clusters and / or categories of features represented in the training data. This classification may be performed by representing both the training data and the input data in vector form, using one or more measures of vector similarity to identify classifications in the training data, and determining the classification of the input data. The K-nearest neighbor algorithm may include specifying a K value, i.e., a numerical value that instructs the classifier to select the k entries of training data that are most similar to a given sample, determining the most common classifier of entries in a database, and classifying known samples. These may be performed recursively and / or iteratively to generate a classifier that can be used to classify input data as further samples. For example, an initial set of samples may be run to cover initial heuristics and / or "first guesses" on outputs and / or relationships, which may be prepared using, but not limited to, expert input received according to any process described herein. As a non-limiting example, the initial heuristics may include ranking associations between inputs and elements of training data. The heuristics may include selecting a few highest-ranking associations and / or training data elements.
[0103] Continuing with reference to FIG. 5, a k-nearest neighbor algorithm can be generated to generate a first vector output containing data entry clusters, generate a second vector output containing input data, and calculate the distance between the first and second vector outputs using any suitable norm, such as cosine similarity, Euclidean distance measure, etc. Each vector output can be represented as an n-tuple of values, where n is at least two values. Each value in the n-tuple of values can represent a measurement or other quantitative value associated with a given category of data or attribute, examples of which are described in more detail below. Vectors can be represented in n-dimensional space using, but not limited to, an axis for each category of values represented by the n-tuple of values, such that the vectors have a geometric direction that characterizes the relative amounts of attributes in the n-tuple compared to each other. Two vectors can be considered equivalent if their directions and / or the relative amounts of values in each vector are the same compared to each other. Thus, as a non-limiting example, a vector represented as [5,10,15] can be treated as equivalent to a vector represented as [1,2,3] for purposes of this disclosure. Vectors may be more similar if their directions are more similar, and more dissimilar if their directions are more dissimilar. However, vector similarity may alternatively or additionally be determined using the average similarity between like attributes, or any other measure of similarity appropriate for any n-tuple of values, or an aggregate numerical similarity measure for purposes of a loss function, as described in more detail below. Any vector described herein may be scaled so that each vector represents each attribute along an equivalent value scale. Each vector may be "normalized," or scaled using the Pythagorean norm:
[0104]
number
[0105] With further reference to FIG. 5 , training examples for use as training data may be selected from a population of potential examples according to a cohort relevant to the analytical problem, classification task, etc. to be solved. Alternatively or additionally, the training data may be selected to span a set of situations or inputs that the machine learning model and / or process is likely to encounter upon deployment. For example, for each category of input data to a machine learning process or model that may exist across a range of values in a population of phenomena, such as, but not limited to, images, user data, processing data, physical data, etc., the computing device, processor, and / or machine learning model may select training examples representing each possible value in such range and / or a representative sample of values in such range. Selecting a representative sample may include selecting training examples in a proportion that matches a statistically determined and / or predicted distribution of such values according to relative frequency, e.g., such that more frequently encountered values in the population of analyzed data are represented by more training examples than less frequently encountered values. Alternatively or additionally, the set of training examples may be compared to a collection of representative values in a database and / or presented to a user, allowing the process to detect, automatically or via user input, one or more values not included in the set of training examples. A computing device, processor, and / or module may automatically generate missing training examples by receiving and / or acquiring missing input and / or output values and associating the missing input and / or output values with corresponding output and / or input values that coexist in the data record with the acquired values, such as provided by a user and / or other device.
[0106] 5, the computer, processor, and / or module may be configured to preprocess the training data. As used in this disclosure, "preprocessing" training data refers to converting the training data from its raw state into a form that can be used to train a machine learning model. Preprocessing may include sanitization, feature selection, feature scaling, data augmentation, etc.
[0107] Still referring to FIG. 5 , the computer, processor, and / or module may be configured to sanitize the training data. As used in this disclosure, “sanitizing” training data refers to the process of removing training examples that prevent a machine learning model and / or process from converging to a useful result. For example, but not limited to, the training examples may include input and / or output values that are outliers from typically encountered values so that the machine learning algorithm using the training examples adapts to unlikely quantities as inputs and / or outputs. For example, values that are more than a threshold number of standard deviations away from the average, mean, or expected value may be eliminated. Alternatively or additionally, one or more training examples may be identified as having low-quality data, where “low quality” is defined as having a signal-to-noise ratio below a threshold. Sanitization may include steps such as removing duplicate or other redundant data, interpolating missing data, correcting data errors, standardizing data, and identifying outliers. In a non-limiting example, sanitization may include utilizing an algorithm to identify duplicate entries or a spell-checking algorithm.
[0108] As a non-limiting example, and with further reference to FIG. 5 , images used to train an image classifier or other machine learning model and / or process that takes images as input or produces images as output may be rejected if their image quality is below a threshold. For example, but not by way of limitation, a computing device, processor, and / or module may perform blur detection and reject one or more. Blur detection may be performed by, by way of non-limiting example, taking a Fourier transform or an approximation, such as a fast Fourier transform (FFT), of the image and analyzing the distribution of low and high frequencies in the resulting frequency domain representation of the image. The number of high frequency values below a threshold level may indicate blur. In a further non-limiting example, blur detection may be performed by convolving the image, a channel of the image, or the like, with a Laplacian kernel, which may generate a numerical score reflecting the number of abrupt changes in intensity shown in the image, with a high score indicating sharpness and a low score indicating blur. Blur detection can be performed using gradient-based operators, which measure 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 less blur. Blur detection may also be performed using wavelet-based operators, which exploit the ability of discrete wavelet transform coefficients to describe the frequency and spatial content of an image. Blur detection may also be performed using statistics-based operators, which utilize several image statistics as texture descriptors to calculate the focus level. Blur detection may also be performed using discrete cosine transform (DCT) coefficients to calculate the focus level of an image from its frequency content.
[0109] With continued reference to FIG. 5 , a computing device, processor, and / or module may be configured to be preconditioned on one or more training examples. For example, but not by way of limitation, if a machine learning model and / or process has one or more inputs and / or outputs that require, transmit, or receive a certain number of bits, samples, or other units of data, elements of one or more training examples used as or compared to the inputs and / or outputs may be modified to have such units of data. For example, a computing device, processor, and / or module may convert a smaller number of units, such as an image with a low number of pixels, into a desired number of units, such as by upsampling or interpolation. As a non-limiting example, an image with a low number of pixels may have 100 pixels, and the desired number of pixels may be 128 pixels. The processor may interpolate the image with a low number of pixels to convert the 100 pixels into 128 pixels. It should also be noted that, after reading this disclosure, one skilled in the art will recognize 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 examples, the set of interpolation rules may be trained using highly detailed inputs and / or outputs, a corresponding set of inputs and / or outputs downsampled to a smaller number of 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 image having sample-augmented data units (e.g., pixels added between original pixels), can be input to a neural network or machine learning model, which can output a pseudo-replica sample image in which pixels between the original pixels are assigned dummy values 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 with high-definition images and a set of images downsampled to a smaller number of pixels, and a neural network or other machine learning model trained using those examples to predict interpolated pixel values in the context of facial images. As a result, inputs with sample-expanded data units (with dummy values added between the original data units) can be run through the trained neural network and / or model to fill in values to replace the dummy values. Alternatively or additionally, the processor, computing device, and / or module may utilize a sample expander technique, a low-pass filter, or both. As used in this disclosure, a "low-pass filter" refers to a filter that passes signals with frequencies below a selected cutoff frequency and attenuates signals with frequencies above the cutoff frequency. The exact frequency response of the filter depends on the filter design. The computing device, processor, and / or module may use averaging, such as luma averaging or chroma averaging, in the image to fill in data units between the original data units.
[0110] In some embodiments, with continued reference to FIG. 5 , a computing device, processor, and / or module can downsample elements of a training example to a desired smaller number of data elements. As a non-limiting example, a high-pixel count image may have 256 pixels, and the desired number of pixels may be 128. The processor can downsample the high-pixel count image to convert the 256 pixels to 128 pixels. In some embodiments, the processor may be configured to perform downsampling on the data. Downsampling, also known as decimation, may include removing every Nth entry in a sequence of samples, removing all but every Nth entry, etc., a process known as “compression,” which may 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 may be used to clean up compression artifacts.
[0111] 5, feature selection includes narrowing and / or filtering training data to exclude features and / or elements, or training data containing such elements, that are not relevant to the purpose for which the trained machine learning model and / or algorithm is trained, and / or collecting features and / or elements, or training data containing such elements, based on their relevance or usefulness to the intended task or purpose for which the trained machine learning model and / or algorithm is trained. Feature selection can be performed using any process described in this disclosure, including without limitation, using training data classifiers, filtering outliers, etc.
[0112] 5, feature scaling may include, but is not limited to, normalization of data entries, which may be achieved by dividing a numeric field by its norm, for example, as performed in vector normalization. Feature scaling may include maximum absolute value scaling, where each quantitative data is divided by the maximum absolute value of all quantitative data in a set or subset of quantitative data. Feature scaling may include minimum-maximum scaling, where each value X is divided by the minimum value X in the set or subset of values. min which is subtracted and the result is the maximum value in the set or subset, X max Divided by the range:
[0113]
number
[0114]
number
[0115]
number
[0116]
number
[0117] With further reference to FIG. 5 , a computing device, processor, and / or module may be configured to perform one or more processes of data augmentation. As used in this disclosure, “data augmentation” is the addition of data to a training set using elements and / or items already contained in the dataset. Data augmentation may be achieved using, but is not limited to, interpolation, generating modified copies of existing entries and / or examples, and / or one or more generative AI processes, for example, using deep neural networks and / or generative adversarial networks. A generative process may alternatively be referred to in this context as “data synthesis” or creating “synthetic data.” Augmentation may include performing one or more transformations on the data, such as geometric, color space, affine, brightness, cropping, and / or contrast transformations of the image.
[0118] Still referring to FIG. 5, the machine learning module 500 may be configured to execute a lazy-learning process 520 and / or protocol. This may alternatively be referred to as a “lazy loading” or “call-when-needed” process and / or protocol, in which machine learning is performed by combining inputs with a training set and deriving an algorithm used to generate outputs on demand upon receipt of the inputs to be converted to outputs. For example, an initial set of simulations may be run to cover initial heuristics and / or “first guesses” at outputs and / or relationships. As a non-limiting example, the initial heuristics may include ranking associations between inputs and elements of the training data 504. The heuristics may include selecting several highest-ranked associations and / or training data 504 elements. Lazy learning may be implemented using any suitable lazy learning algorithm, including, but not limited to, a K-nearest neighbor algorithm, a lazy Naive Bayes algorithm, etc., and upon review of this disclosure in its entirety, one of ordinary skill in the art will recognize a variety of lazy learning algorithms that may be applied to generate outputs as described in this disclosure, including, but not limited to, lazy learning applications of machine learning algorithms, as described in further detail below.
[0119] Alternatively or additionally, and continuing to refer to FIG. 5 , a machine learning process as described in this disclosure can be used to generate the machine learning model 524. As used in this disclosure, a “machine learning model” is a data structure that represents and / or implements a mathematical and / or algorithmic representation of a relationship between inputs and outputs, generated using any machine learning process, including without limitation any of the processes described above, and stored in memory; once created, the inputs are submitted to the machine learning model 524, which generates an output based on the derived relationship. For example, but not by way of limitation, a linear regression model generated using a linear regression algorithm can calculate a linear combination of input data using coefficients derived during the machine learning process to calculate output data. As a further non-limiting example, the machine learning model 524 may be generated by creating an artificial neural network, such as a convolutional neural network, that includes an input layer of nodes, one or more hidden layers, and an output layer of nodes. Connections between nodes can be created during the process of "training" the network, in which elements from a set of training data 504 are applied to the input nodes and an appropriate training algorithm (such as Levenberg-Marquardt, conjugate gradient, simulated annealing, or other algorithm) is used to adjust the connections and weights between nodes in adjacent layers of the neural network to produce desired values at the output nodes, a process sometimes referred to as deep learning.
[0120] Still referring to FIG. 5 , the machine learning algorithm may include at least one supervised machine learning process 528. At least the supervised machine learning process 528, as defined herein, includes an algorithm that receives a training set relating a large number of inputs to a large number of outputs and attempts to generate one or more data structures that represent and / or implement one or more mathematical relationships relating the inputs to the outputs, each of the one or more mathematical relationships being optimal according to some criteria specified to the algorithm using some scoring function. Each of the one or more mathematical relationships being optimal according to some criteria specified to the algorithm using some scoring function. For example, the supervised learning algorithm may include inputs as described in this disclosure as inputs, outputs as described in this disclosure as outputs, and a scoring function that represents the desired form of the relationship to be found between the inputs and the outputs. The scoring function may, for example, attempt to maximize the probability that a given input and / or combination of elements of the inputs is associated with a given output and minimize the probability that a given input is not associated with a given output. The scoring function may be expressed as a risk function that represents the "expected loss" of the algorithm relating inputs to outputs, where the loss is calculated as an error function that represents the degree to which the predictions produced by the relationships are inaccurate when compared to given input-output pairs provided in the training data 504. Those skilled in the art will recognize, upon review of this disclosure in its entirety, the various possible variations of at least one supervised machine learning process 528 that may be used to determine the relationships between inputs and outputs. The supervised machine learning process may include a classification algorithm as defined above.
[0121] With further reference to FIG. 5 , training a supervised machine learning process may include iteratively updating coefficients, biases, and weights based on, but not limited to, an error function, an expected loss, and / or a risk function. For example, outputs generated by a supervised machine learning model using example inputs from training examples may be compared to example outputs from the training examples, and an error function may be generated based on the comparison, which may include any error function suitable for use with any machine learning algorithm described in this disclosure, including, for example, the squared difference between one or more sets of compared values. Such error functions may then be used to update one or more weights, biases, coefficients, or other parameters of the machine learning model through any suitable process, including, but not limited to, a gradient descent process, a least-squares process, and / or other processes described in this disclosure. This may be done iteratively and / or recursively to gradually adjust the weights, biases, coefficients, or other parameters. The updates may be performed using one or more backpropagation algorithms in neural networks. Iterative and / or recursive updates to weights, biases, coefficients, or other parameters as described above may be performed until currently available training data is exhausted and / or a convergence test is passed, where "convergence test" refers to a test on a condition selected as indicating that the model and / or its weights, biases, coefficients, or other parameters have reached a certain degree of accuracy. The convergence test may, for example, compare the difference between two or more consecutive error or error function values, with a difference below a threshold being considered to indicate convergence. Alternatively or additionally, one or more error and / or error function values evaluated in a training iteration may be compared to a threshold.
[0122] Still referring to FIG. 5 , a computing device, processor, and / or module may be configured to perform the methods, method steps, sequences of method steps, and / or algorithms described with reference to this figure in any order and with any degree of iteration. For example, a computing device, processor, and / or module may be configured to repeatedly execute a single step, sequence, and / or algorithm until a desired or prescribed result is achieved. The repetition of a step or sequence of steps may be performed iteratively and / or recursively using the output of a previous iteration as input to a subsequent iteration, aggregating the inputs and / or outputs of an iteration to generate an aggregate result, decreasing or decrementing one or more variables, such as global variables, and / or dividing a large processing task into a set of smaller processing tasks that are addressed iteratively. The computing device, processor, and / or module may execute any step, sequence of steps, or algorithm in parallel, such as performing steps simultaneously and / or nearly simultaneously two or more times using two or more parallel threads, processor cores, etc., and the division of tasks among parallel threads and / or processes may be performed according to any protocol suitable for dividing tasks between iterations. Those skilled in the art will recognize, upon reviewing this disclosure in its entirety, various ways in which steps, sequences of steps, processing tasks, and / or data may be subdivided, shared, or otherwise processed using iterative, recursive, and / or parallel processing.
[0123] 5, the machine learning process may include at least one unsupervised machine learning process 532. An unsupervised machine learning process, as used herein, is a process that derives inferences for a dataset without regard to labels, such that the unsupervised machine learning process is free to discover any structure, relationships, and / or correlations provided in the data. The unsupervised process 532 may not require a response variable, and the unsupervised process 532 can be used to find interesting patterns and / or inferences between variables, determine the degree of correlation between two or more variables, etc.
[0124] Still referring to FIG. 5, the machine learning module 500 may be designed and configured to create the machine learning model 524 using techniques for developing linear regression models. The linear regression model may include ordinary least squares regression, which aims to minimize the squared difference between predicted and actual results according to an appropriate norm (e.g., a vector space distance norm) that measures such difference. The coefficients of the resulting linear equation may be modified to improve the minimization. The linear regression model may include a ridge regression method, in which the function being minimized may include, in addition to the least squares function, a term that multiplies the square of each coefficient by a scalar to penalize large coefficients. The linear regression model may also include a least absolute shrinkage and selection operator (LASSO) model, in which ridge regression is combined with multiplying the least squares term by a factor of 1 divided by twice the number of samples. The linear regression model may also include a multitasking lasso model, in which the norm applied to the least squares term in 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 an elastic net model, a multitask elastic net model, a least-angle regression model, a LARS lasso model, an orthogonal matching pursuit model, a Bayesian regression model, a logistic regression model, a stochastic gradient descent model, a perceptron model, a passive-aggressive algorithm, a robustness regression model, a Huber regression model, or other suitable models that would occur to one of ordinary skill in the art upon reviewing this disclosure in its entirety. In embodiments, the linear regression model may be generalized to a polynomial regression model, thereby finding a polynomial (e.g., quadratic, cubic, or higher order) that provides the best predicted output / actual output fit. As will be apparent to one of ordinary skill in the art upon reviewing this disclosure in its entirety, methods similar to those described above can be applied to minimize the error function.
[0125] Still referring to FIG. 5 , the machine learning algorithm may include, but is not limited to, linear discriminant analysis. The machine learning algorithm may include quadratic discriminant analysis. The machine learning algorithm may include kernel ridge regression. The machine learning algorithm may include support vector machines, including without limitation regression processes based on support vector classification. The machine learning algorithm may include stochastic gradient descent algorithms, including classification and regression algorithms based on stochastic gradient descent. The machine learning algorithm may include nearest neighbor algorithms. The machine learning algorithm may include various forms of latent space regularization, such as variational regularization. The machine learning algorithm may include Gaussian processes, such as Gaussian process regression. The machine learning algorithm may include cross-decomposition algorithms, including partial least squares and / or canonical correlation analysis. The machine learning algorithm may include naive Bayes methods. The machine learning algorithm may include decision tree-based algorithms, such as decision tree classification and regression algorithms. The machine learning algorithm may include ensemble methods, such as bagging meta-estimators, forests of random trees, AdaBoost, gradient tree boosting, and / or voting classifier methods. The machine learning algorithms may include neural net algorithms, including convolutional neural net processing.
[0126] Still referring to FIG. 5 , the machine learning model and / or process may be deployed or implemented by incorporation into a program, device, system, and / or module. For example, but not limited to, the machine learning model, neural network, and / or some or all of its parameters may 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 logic “1” and “0” voltage levels in a logic circuit to represent numbers according to any suitable encoding system, including binary complement, or may be stored in any volatile and / or non-volatile memory. Similarly, mathematical operations and data inputs and / or outputs to or from the model, neural network layers, etc. may be implemented in hardware circuitry and / or in the form of firmware, machine code such as binary opcode instructions, assembly language, or instructions in any higher-level programming language. To implement the machine learning processes and / or models, any technique for implementing memory, instructions, data structures, and / or algorithms in hardware and / or software can be used, including, without limitation, the manufacture and / or configuration of non-reconfigurable hardware elements, circuits, and / or modules such as, but not limited to, ASICs; the manufacture and / or configuration of reconfigurable hardware elements, circuits, and / or modules such as, but not limited to, FPGAs; the manufacture and / or configuration of non-reconfigurable and / or non-rewritable memory elements, circuits, and / or modules such as, but not limited to, non-rewritable ROMs; the manufacture and / or configuration of reconfigurable and / or rewritable memory elements, circuits, and / or modules such as, but not limited to, rewritable ROMs or other memory technologies described in this disclosure; and / or any combination of the manufacture and / or configuration of any computing device and / or components thereof as described in this disclosure.Such deployed and / or implemented machine learning models and / or algorithms may receive inputs from, and generate outputs for, any other processes, modules, and / or components described in this disclosure.
[0127] 5 , any process of training, retraining, deployment, and / or implementation of a machine learning model and / or algorithm may be performed and / or repeated after initial deployment and / or implementation to modify, refine, and / or improve the machine learning model and / or algorithm. Such retraining, deployment, and / or implementation may be performed as a periodic or periodic process, e.g., retraining, deployment, and / or implementation at regular elapsed time periods after a quantity measure such as the number of bytes of processed data or other measure, the number of uses or executions of the processes described in this disclosure, and / or according to a software, firmware, or other update schedule. Alternatively or additionally, retraining, deployment, and / or implementation may be event-based, triggered by, but not limited to, user input indicating suboptimal or otherwise problematic performance, and / or by automated field testing and / or audit processes, which may compare the output of the machine learning model and / or algorithm, and / or error and / or its error function, to any threshold value, convergence determination, etc., and / or compare the output of the processes described herein to similar threshold values, convergence determinations, etc. Event-based retraining, deployment, and / or implementation may alternatively or additionally be triggered by the receipt and / or generation of one or more new training examples, where the number of new training examples may be compared to a preconfigured threshold, and exceeding the preconfigured threshold may trigger retraining, deployment, and / or implementation.
[0128] 5 , retraining and / or additional training may be performed using any of the processes for training described above, using any version of a current or previously deployed machine learning model and / or algorithm as a starting point. Training data for retraining may be collected, preprocessed, sorted, classified, sanitized, or otherwise processed according to any process described in this disclosure. Training data may include, but is not limited to, training examples including inputs and associated outputs used, received, and / or generated from any version of any system, module, machine learning model or algorithm, apparatus, and / or method described in this disclosure; such examples may be modified and / or labeled according to user feedback or other processing to indicate desired results, and / or may have actual or measured results from a process being modeled and / or predicted by a system, module, machine learning model or algorithm, apparatus, and / or method as “desired” results to be compared with outputs for the training process as described above.
[0129] The redeployment may be performed using any reconfiguration and / or rewriting of reconfigurable and / or rewritable circuitry and / or memory elements; alternatively, the redeployment may be performed by fabrication of 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.
[0130] 5 , one or more of the processes or algorithms described above may be performed by at least one dedicated hardware unit 536. For purposes of this figure, a “dedicated hardware unit” refers to hardware components, circuitry, etc., other than the main control circuitry and / or processor that performs the method steps described in this disclosure, that are specifically designated or selected to perform one or more particular tasks and / or processes described with reference to this figure, such as, for example, but not limited to, preconditioning and / or sanitizing training data and / or training machine learning algorithms and / or models. The dedicated hardware unit 536 may include hardware units capable of efficiently performing repetitive or intensive calculations, such as, but not limited to, matrix-based calculations that update or adjust parameters, weights, coefficients, and / or biases of machine learning models and / or neural networks, using pipelined processing, parallel processing, etc., and such hardware units may be optimized for such processing, for example, by including dedicated circuitry for matrix operations and / or signal processing operations, including multiple arithmetic and / or logic circuit units, such as multipliers and / or adders, that can operate simultaneously and / or in parallel, etc. Such special-purpose hardware units 536 may include, but are not limited to, graphical processing units (GPUs), special-purpose signal processing modules, FPGAs, or other reconfigurable hardware configured to implement parallel processing units for one or more specific tasks. A computing device, processor, apparatus, or module may be configured to direct one or more special-purpose hardware units 536 to perform one or more operations described herein, such as evaluation of model and / or algorithm outputs, single or iterative updates of parameters, coefficients, weights, and / or biases, and / or any other operations, such as vector and / or matrix operations, described in this disclosure.
[0131] Referring now to FIG. 6, an exemplary embodiment of a neural network 600 is shown. A neural network 600, 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 a function that determines the output based on the inputs. Such nodes may be organized into networks such as, but not limited to, a convolutional neural network, including an input layer of node 604, one or more hidden layers 608, and an output layer of node 612. Connections between nodes may be created during the process of "training" the network, in which elements from a set of training data are applied to the input nodes and an appropriate training algorithm (such as Levenberg-Marquardt, conjugate gradient, simulated annealing, or other algorithms) is used to adjust the connections and weights between nodes in adjacent layers of the neural network to produce desired values at the output nodes. This process is sometimes referred to as deep learning. Connections may only run from input nodes to output nodes in a "feedforward" network, or the output of one layer may be fed back to the input of the same or a different layer in a "recurrent network." As a further non-limiting example, a neural network may include a convolutional neural network that includes an input layer of nodes, one or more hidden layers, and an output layer of nodes. As used in this disclosure, a "convolutional neural network" refers to 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 the input known as a "kernel," along with one or more additional layers such as a pooling layer, a fully connected layer, etc.
[0132] 7, an exemplary embodiment of a neural network node 700 is shown. A node may have multiple inputs x that may receive values from, but are not limited to, inputs to the neural network that contains the node and / or from other nodes. iA node may include, but is not limited to, one or more activation functions that, given one or more inputs, generate its output. Activation functions include, but are not limited to, binary step functions that compare an input to a threshold and output a logic 1 or logic 0 output or the equivalent, linear activation functions where the output is directly proportional to the input, and / or non-linear activation functions where the output is not proportional to the input. Non-linear activation functions include, but are not limited to,
[0133]
number
[0134]
number
[0135]
number
[0136]
number
[0137]
number
[0138]
number
[0139] Referring now to Figure 8, there is shown a flow diagram of a method 800 for adaptive slide imaging using a selected scanning profile. Method 800 includes a step 805 of capturing a macro image of a slide using a scanner. This can be performed in the manner disclosed with reference to Figures 1-7.
[0140] Continuing with reference to Figure 8, method 800 includes receiving 810, using at least one processor, a macro image of a slide from a scanner, which may be performed in the manner disclosed with reference to Figures 1-7.
[0141] Continuing with reference to Figure 8, method 800 includes extracting 815, using at least one processor, metadata from the macro image of the slide, which may be performed in the manner disclosed with reference to Figures 1-7.
[0142] Continuing with reference to Figure 8, method 800 includes determining 820, using at least one processor, a classification category for the slide as a function of the metadata, which may be performed in the manner disclosed with reference to Figures 1-7.
[0143] Continuing with reference to Figure 8, method 800 includes using at least one processor to obtain 825 a scan profile as a function of the classification category of the slide, which may be performed in the manner disclosed with reference to Figures 1-7.
[0144] Continuing with reference to Figure 8, method 800 includes imaging 830 the slide as a function of the scan profile using a scanner, which can be performed in the manner disclosed with reference to Figures 1-7.
[0145] It should be noted that any one or more of the aspects and embodiments described herein may be suitably implemented using one or more machines (e.g., one or more computing devices utilized as user computing devices for electronic documents, one or more server devices, such as document servers) programmed in accordance with the teachings herein, as would be apparent to those skilled in the computer arts. Based on the teachings of the present disclosure, skilled programmers can readily implement appropriate software coding, as would be apparent to those skilled in the software arts. The above-described aspects and implementations employing software and / or software modules may also include appropriate hardware to assist in implementing the machine-executable instructions of the software and / or software modules.
[0146] Such software may be a computer program product employing a machine-readable storage medium. A machine-readable storage medium may be any medium capable of storing and / or encoding a sequence of instructions for execution by a machine (e.g., a computing device) and causing the machine to perform any one of the methodologies 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 is intended to include not only a single medium but also a collection of physically separate media, such as, for example, a collection of compact discs, one or more hard disk drives combined with computer memory, etc. As used herein, machine-readable storage media does not include transitory forms of signal transmission.
[0147] Such software may also include information (e.g., data) carried in a data signal on a data carrier such as a carrier wave. For example, the machine-executable information may be included in a data carrier signal embodied in a data carrier, the signal encoding a sequence of instructions, or portions thereof, for execution by a machine (e.g., a computing device), and any associated information (e.g., data structures and data) that cause the machine to perform any one of the methodologies and / or embodiments described herein.
[0148] Examples of computing devices include, but are not limited to, e-book reading devices, 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 sequence of instructions that specify actions to be performed by that machine, and any combination thereof. In one example, a computing device may include and / or be included in a kiosk.
[0149] 9 shows a diagrammatic representation of one embodiment of a computing device in the exemplary form of a computer system 900 upon which a set of instructions may be executed that causes a control system to perform any one or more of the aspects and / or methodologies of the present disclosure. It is also contemplated that multiple computing devices may be utilized to execute a set of instructions specifically configured to cause one or more of the devices to perform any one or more of the aspects and / or methodologies of the present disclosure. Computer system 900 includes a processor 904 and a memory 908, which communicate with each other and with other components via a bus 912. Bus 912 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 a variety of bus architectures.
[0150] The processor 904 may include any suitable processor, such as, but not limited to, a processor incorporating logic circuitry that performs arithmetic and logical operations, such as an arithmetic logic unit (ALU), which may be controlled by a state machine and directed by operational input from memory and / or sensors. The processor 904 may be configured according to the von Neumann and / or Harvard architectures, as non-limiting examples. The processor 904 may include, incorporate, and / or be incorporated into, but is not limited to, a microcontroller, a microprocessor, a digital signal processor (DSP), a field programmable gate array (FPGA), a complex programmable logic device (CPLD), a graphical processing unit (GPU), a general-purpose GPU, a tensor processing unit (TPU), an analog or mixed signal processor, a trusted platform module (TPM), a floating-point unit (FPU), a system-on-module (SOM), and / or a system-on-chip (SoC).
[0151] Memory 908 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. In one example, a basic input / output system 916 (BIOS), containing the basic routines that help to transfer information between elements within computer system 900, such as during start-up, may be stored in memory 908. Memory 908 may also include (e.g., stored on one or more machine-readable media) instructions (e.g., software) 920 that embody any one or more of the aspects and / or methodologies of the present disclosure. In another example, memory 908 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.
[0152] Computer system 900 may include a storage device(s) 924. Examples of storage devices (e.g., storage device(s) 924) 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. Storage device(s) 924 may be connected to bus 912 by an appropriate interface (not shown). Examples of 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, storage device 924 (or one or more components thereof) may be removably interfaced with computer system 900 (e.g., via an external port connector (not shown)). In particular, storage device 924 and associated machine-readable media 928 may provide nonvolatile and / or volatile storage of machine-readable instructions, data structures, program modules, and / or other data for computer system 900. In one example, the software 920 may reside, completely or partially, on the machine-readable medium 928. In another example, the software 920 may reside, completely or partially, on the processor 904.
[0153] The computer system 900 may include input devices 932. In one example, a user of the computer system 900 can input commands and / or other information into the computer system 900 via the input devices 932. Examples of input devices 932 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), touch screens, and any combination thereof. The input devices 932 may interface with the bus 912 via any of a variety of interfaces (not shown), including, but not limited to, a serial interface, a parallel interface, a game port, a USB interface, a FIREWIRE interface, a direct interface to the bus 912, and any combination thereof. The input devices 932 may include a touchscreen interface, which may be part of or separate from the display 936, described below. The input device 932 may be utilized as a user selection device to select one or more graphical representations in the graphical interface, as described above.
[0154] A user may also input commands and / or other information into computer system 900 via storage device 924 (e.g., a removable disk drive, flash drive, etc.) and / or network interface device 940. A network interface device such as network interface device 940 may be utilized to connect computer system 900 to one or more of various networks, such as network 944, and one or more remote devices 948 connected thereto. Examples of network interface devices include, but are not limited to, a network interface card (e.g., a mobile network interface card, a LAN card), a modem, and any combination thereof. Examples of networks include, but are not limited to, a wide area network (e.g., the Internet, an enterprise network), a local area network (e.g., a network associated with an office, building, campus, or other relatively small geographic space), a telephone network, a data network associated with a telephone / voice provider (e.g., a mobile communications provider's data and / or voice network), a direct connection between two computing devices, and any combination thereof. A network such as network 944 may employ wired and / or wireless communication modes. In general, any network topology may be used. Information (eg, data, software 920 , etc.) may be communicated to and / or from computer system 900 via network interface device 940 .
[0155] Computer system 900 may further include a video display adapter 952 that communicates displayable images to a display device, such as display device 936. Examples of display devices include, but are not limited to, a liquid crystal display (LCD), a cathode ray tube (CRT), a plasma display, a light emitting diode (LED) display, and any combination thereof. Display adapter 952 and display device 936 can be utilized in combination with processor 904 to provide graphical representations of aspects of the present disclosure. In addition to a display device, computer system 900 may include one or more other peripheral output devices, including, but not limited to, audio speakers, a printer, and any combination thereof. Such peripheral output devices may be connected to bus 912 via a peripheral interface 956. Examples of peripheral interfaces include, but are not limited to, a video display, a video output ... Examples include, but are not limited to, serial ports, USB connections, FIREWIRE® connections, parallel connections, and any combination thereof.
[0156] The foregoing is a detailed description of exemplary embodiments of the present invention. Various modifications and additions may be made without departing from the spirit and scope of the present invention. Features of each of the various embodiments described above may be combined, as appropriate, with features of other described embodiments to provide various combinations of features in new related embodiments. Moreover, while a number of separate embodiments have been described above, what has been described herein is merely illustrative of the application of the principles of the present invention. Furthermore, while certain methods herein may be illustrated and / or described as being performed in a particular order, such orders may be varied considerably within the skill of ordinary skill in order to implement methods, systems, and software according to the present disclosure. Accordingly, the present description is intended to be illustrative only, and not to otherwise limit the scope of the present invention.
[0157] Exemplary embodiments are disclosed above and illustrated in the accompanying drawings. Those skilled in the art will appreciate that various modifications, omissions, and additions may be made to what is specifically disclosed herein without departing from the spirit and scope of the invention.
Claims
1. 1. An apparatus for adaptive slide imaging using a selected scanning profile, comprising:
1. A scanner configured to capture a macro image of a slide, comprising: a stage configured to hold the slide; an optical sensor configured to convert the image into one or more electrical signals; an optical system configured to form an image of the slide on the optical sensor, the stage configured to move the slide relative to the optical system; a scanner including: at least one processor; a memory containing instructions, the instructions causing the at least one processor to receiving the macro image of the slide from the scanner; extracting metadata from the macro-image of the slide; determining a classification category for the slide as a function of the metadata; obtaining a scan profile as a function of the classification category of the slide; Imaging the slide as a function of the scanning profile using the optics and the optical sensor of the scanner. The memory and An apparatus comprising:
2. Obtaining the scanning profile as a function of the classification category of the slide comprises: selecting the scan profile from a plurality of scan profiles as a function of the classification category and a plurality of selection weights corresponding to the plurality of scan profiles; incrementing a usage history value of the selected scanning profile; updating the selection weights of the selected scanning profile; The apparatus of claim 1 , comprising:
3. Determining the classification category of the slide as a function of the metadata includes: using an image processing algorithm to identify one or more fiducials on the macro-image; determining the classification category of the slide as a function of the one or more criteria; The apparatus of claim 1 , comprising:
4. Imaging the slide as a function of the scanning profile comprises: training a domain machine learning model using domain training data, the domain training data including slide images that correlate to the labeled regions; using a regional machine learning model to detect a region of interest in the slide using the macro-image, the region of interest comprising one or more criteria that bound a pathological specimen; imaging a high magnification image of the region of interest using the optics and optical sensor of the scanner; The apparatus of claim 3 , comprising:
5. extracting the metadata from the macro-image of the slide includes determining a circularity of a pathological sample of the slide using an image processing algorithm; determining the classification category of the slide as a function of the metadata includes determining the classification category of the slide as a function of the circularity of the pathological sample.
10. The apparatus of claim 1.
6. extracting the metadata from the macro-image of the slide includes extracting text data from a label on the slide using optical character recognition; determining the classification category of the slide as a function of the metadata includes determining the classification category of the slide as a function of the text data.
10. The apparatus of claim 1.
7. Determining a classification category for the slide as a function of the text data includes: extracting one or more keywords from the text data using a natural language processing algorithm; determining the classification category of the slide as a function of one or more keywords; The apparatus of claim 6 , comprising:
8. The memory further includes the at least one processor: configuring said scanner using a set of application programming interfaces; imaging the slide at macro magnification using the optics and optical sensor of the scanner; configuring an algorithmic pipeline for processing the macro-images of the slides using the set of application programming interfaces; processing the macro-image of the slide using the algorithm pipeline; The apparatus of claim 1 further comprising instructions to:
9. Obtaining a scan profile as a function of the classification category of the slide comprises: Retrieving multiple scanning profiles from a profile lookup table; selecting the scan profile from the plurality of scan profiles as a function of a plurality of weights associated with the plurality of scan profiles; The apparatus of claim 1 , comprising:
10. the scan profile includes a magnification parameter and a Z-stack layer parameter; the memory further comprising instructions for configuring the at least one processor to image the slide using the scanner as a function of the magnification parameter and the Z-stack layer parameter.
10. The apparatus of claim 1.
11. 1. A method for adaptive slide imaging using a selected scanning profile, comprising: A scanner is used to capture a macro image of the slide, said scanner comprising: a stage configured to hold the slide; an optical sensor configured to convert the image into one or more electrical signals; an optical system configured to form the image of the slide on the optical sensor, the stage configured to move the slide relative to the optical system; receiving, using at least one processor, the macroscopic image of the slide from the scanner; extracting metadata from the macro-image of the slide using at least one processor; using at least one processor to determine a classification category for the slide as a function of the metadata; obtaining, using at least one processor, a scan profile as a function of the classification category of the slide; imaging the slide as a function of the scanning profile using the optics and the optical sensor of the scanner; A method comprising:
12. Obtaining a scan profile as a function of the classification category of the slide comprises: selecting the scan profile from a plurality of scan profiles as a function of the classification category and a plurality of selection weights corresponding to the plurality of scan profiles; incrementing a usage history value of the selected scanning profile; updating the selection weights of the selected scanning profile; The method of claim 11 , comprising:
13. Determining the classification category of the slide as a function of the metadata includes: using an image processing algorithm to identify one or more fiducials on the macro-image; determining the classification category of the slide as a function of the one or more criteria; The method of claim 11 , comprising:
14. Imaging the slide as a function of the scanning profile comprises: training a domain machine learning model using domain training data, the domain training data including slide images that correlate to the labeled regions; using a regional machine learning model to detect a region of interest in the slide using the macro-image, the region of interest comprising one or more criteria that bound a pathological specimen; imaging a high magnification image of the region of interest using the optics and optical sensor of the scanner; 14. The method of claim 13, comprising:
15. extracting the metadata from the macro-image of the slide includes determining a circularity of a pathological sample of the slide using an image processing algorithm; determining the classification category of the slide as a function of the metadata includes determining the classification category of the slide as a function of the circularity of the pathological sample. The method of claim 11.
16. extracting the metadata from the macro-image of the slide includes extracting text data from a label of the slide using optical character recognition and the macro-image; determining the classification category of the slide as a function of the metadata includes determining the classification category of the slide as a function of the text data. The method of claim 11.
17. Determining a classification category for the slide as a function of the text data includes: extracting one or more keywords from the text data using a natural language processing algorithm; determining the classification category of the slide as a function of one or more keywords; 17. The method of claim 16, comprising:
18. configuring the scanner using the at least one processor and a set of application programming interfaces; imaging the slide at macro magnification using the optics and optical sensor of the scanner; configuring an algorithmic pipeline using said at least one processor and said set of application programming interfaces for processing said macro-images of said slides; using at least one processor to process the macro-image of the slide using an algorithm pipeline; The method of claim 11 further comprising:
19. Obtaining a scan profile as a function of the classification category of the slide comprises: Retrieving multiple scanning profiles from a profile lookup table; selecting the scan profile from the plurality of scan profiles as a function of a plurality of weights associated with the plurality of scan profiles; The method of claim 11 , comprising:
20. The scanning profile comprises: A magnification parameter; Z-stack layer parameters; Including, The method further includes imaging the slide using the scanner as a function of the magnification parameter and the Z-stack layer parameter. The method of claim 11.