ADAPTIVE IMAGE PROCESSING METHOD AND SYSTEM IN ASSISTED REPRODUCTIVE TECHNOLOGIES
20200395117 ยท 2020-12-17
Inventors
Cpc classification
A61B8/5223
HUMAN NECESSITIES
Y02A90/10
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
G16H50/20
PHYSICS
G16H10/60
PHYSICS
G16H20/10
PHYSICS
G16H50/30
PHYSICS
G06N3/082
PHYSICS
International classification
G16H10/60
PHYSICS
G16H20/10
PHYSICS
Abstract
Adaptive image processing, image analysis, pattern recognition, and time-to-event prediction in various imaging modalities associated with assisted reproductive technology. The reference image may be processed according to one or more adaptive processing frameworks for de-speckling or noise processing of ultrasound images. The subject image is processed according to various computer vision techniques for object detection, recognition, annotation, segmentation, and classification of reproductive anatomy, such as follicles, ovaries and the uterus. An image processing framework may also analyze secondary data along with subject image data to analyze time-to-event progression of the subject image.
Claims
1. A system for digital image processing in assisted reproductive technologies, the system comprising: an imaging sensor configured to collect one or more digital images of a reproductive anatomy of a patient; a computing device communicably engaged with the imaging sensor to receive the one or more digital images of the reproductive anatomy of the patient; and at least one processor communicably engaged with the computing device and at least one non-transitory computer-readable medium having instructions stored thereon that, when executed, cause the at least one processor to perform one or more operations, the one or more operations comprising: receiving the one or more digital images of the reproductive anatomy of the patient; processing the one or more digital images of the reproductive anatomy of the patient to detect one or more reproductive anatomical structures and annotate one or more anatomical features of the one or more reproductive anatomical structures; analyzing the one or more anatomical features according to at least one machine learning framework to predict at least one time-to-event outcome, wherein at least one time-to-event comprises an ovulatory trigger date within an ovulation induction cycle for the patient; and generating at least one graphical user output corresponding to one or more clinical actions related to the patient, wherein the one or more clinical actions comprise a recommended timing for administration of at least one pharmaceutical agent to the patient, wherein the at least one pharmaceutical agent comprises an ovulatory trigger agent.
2. The system of claim 1 wherein the one or more clinical actions comprise a recommended timing for sperm delivery or intrauterine insemination corresponding to the ovulation induction cycle.
3. The system of claim 1 wherein the one or more operations of the processor further comprise analyzing a plurality of electronic health record data of the patient, together with the one or more anatomical features, to predict the at least one time-to-event outcome.
4. The system of claim 3 wherein the plurality of electronic health record data comprises one or more data set selected from the group consisting of diagnostic results, body fluid biomarkers, hormone markers, hormone levels, genomic biomarkers, proteomic biomarkers, therapeutic treatments, treatment schedule, follicle size and number, follicle growth rate, pregnancy rate, and ovulatory induction data.
5. The system of claim 1 wherein the one or more operations of the processor further comprise analyzing a plurality of anonymized historical data from one or more anonymized ovulation induction patients, together with the one or more anatomical features, to predict the at least one time-to-event outcome.
6. The system of claim 5 wherein the plurality of anonymized historical data comprises one or more data set selected from the group consisting of diagnostic results, body fluid biomarkers, hormone markers, hormone levels, genomic biomarkers, proteomic biomarkers, therapeutic treatments, treatment schedule, follicle size and number, follicle growth rate, pregnancy rate, and ovulatory induction data.
7. The system of claim 1 wherein the machine learning framework is selected from the group consisting of an artificial neural network, a regression model, a convolutional neural network, a recurrent neural network, a fully convolutional neural network, a dilated residual network, and a generative adversarial network.
8. The system of claim 1 wherein the one or more reproductive anatomical structures comprise one or more ovarian follicles and the one or more anatomical features comprise a quantity and size of the one or more ovarian follicles.
9. The system of claim 1 wherein the one or more operations of the processor further comprise receiving reproductive physiology data of the patient and analyzing the reproductive physiology data, together with the one or more anatomical features, to predict the at least one time-to-event outcome.
10. The system of claim 1 wherein the one or more operations of the processor further comprise analyzing the one or more anatomical features according to the at least one machine learning framework to assess a risk of multiple pregnancy for the patient.
11. A method for processing digital images in assisted reproductive technologies, the method comprising: obtaining, with an ultrasound device, one or more digital images of a reproductive anatomy of a patient; receiving, with at least one processor, the one or more digital images; processing, with the at least one processor, the one or more digital images to detect one or more reproductive anatomical structures of the reproductive anatomy of a patient; processing, with the at least one processor, the one or more digital images to annotate, segment, or classify one or more anatomical features of the one or more reproductive anatomical structures; analyzing, with the at least one processor, the one or more anatomical features according to at least one machine learning framework to predict at least one time-to-event outcome, wherein at least one time-to-event comprises an ovulatory trigger date within an ovulation induction cycle for the patient; and generating, with the at least one processor, at least one clinical recommendation comprising a recommended timing for administration of at least one pharmaceutical agent to the patient, wherein the at least one pharmaceutical agent comprises an ovulatory trigger agent.
12. The method of claim 11 wherein the at least one clinical recommendation comprises a recommended timing for sperm delivery or intrauterine insemination corresponding to the ovulation induction cycle.
13. The method of claim 11 wherein the one or more reproductive anatomical structures comprise one or more ovarian follicles and the one or more anatomical features comprise a quantity and size of the one or more ovarian follicles.
14. The method of claim 11 further comprising analyzing, with the at least one processor, the one or more anatomical features according to the at least one machine learning framework to assess a risk of multiple pregnancy for the patient.
15. The method of claim 13 further comprising analyzing, with the at least one processor, the one or more anatomical features according to the at least one machine learning framework to determine a maturity rate of the one or more ovarian follicles of the patient.
16. The method of claim 11 further comprising analyzing, with the at least one processor, a plurality of electronic health record data of the patient, together with the one or more anatomical features, to predict the at least one time-to-event outcome.
17. The method of claim 16 wherein the plurality of electronic health record data comprises one or more data set selected from the group consisting of diagnostic results, body fluid biomarkers, hormone markers, hormone levels, genomic biomarkers, proteomic biomarkers, therapeutic treatments, treatment schedule, follicle size and number, follicle growth rate, pregnancy rate, and ovulatory induction data.
18. The method of claim 11 further comprising analyzing, with the at least one processor, a plurality of anonymized historical data from one or more anonymized ovulatory induction patients, together with the one or more anatomical features, to predict the at least one time-to-event outcome.
19. The method of claim 18 wherein the plurality of anonymized historical data comprises one or more data set selected from the group consisting of diagnostic results, body fluid biomarkers, hormone markers, hormone levels, genomic biomarkers, proteomic biomarkers, therapeutic treatments, treatment schedule, follicle size and number, follicle growth rate, pregnancy rate, and ovulatory induction data.
20. A non-transitory computer-readable medium having computer-executable instructions stored thereon that, when executed, cause at least one processor to perform one or more operations of a method for digital image processing, the one or more operations comprising: receiving one or more digital images of a reproductive anatomy of a patient; processing the one or more digital images of the reproductive anatomy of the patient to detect one or more reproductive anatomical structures and annotate one or more anatomical features of the one or more reproductive anatomical structures; analyzing the one or more anatomical features according to at least one machine learning framework to predict at least one time-to-event outcome, wherein at least one time-to-event comprises an ovulatory trigger date within an ovulatory induction cycle for the patient; and generating at least one graphical user output corresponding to one or more clinical actions related to the patient, wherein the one or more clinical actions comprise a recommended timing for administration of at least one pharmaceutical agent to the patient, wherein the at least one pharmaceutical agent comprises an ovulatory trigger agent.
Description
BRIEF DESCRIPTION OF DRAWINGS
[0047] The above and other objects, features and advantages of the present disclosure will be more apparent from the following detailed description taken in conjunction with the accompanying drawings, in which:
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
[0068]
DETAILED DESCRIPTION
[0069] It should be appreciated that all combinations of the concepts discussed in greater detail below (provided such concepts are not mutually inconsistent) are contemplated as being part of the inventive subject matter disclosed herein. It also should be appreciated that terminology explicitly employed herein that also may appear in any disclosure incorporated by reference should be accorded a meaning most consistent with the particular concepts disclosed herein.
[0070] Embodiments of the present disclosure provide for an ensemble of Deep Learning (DL) systems and methods in the provision of assisted reproductive technology (ART) for the diagnosis, treatment, and the clinical management of infertility. The ensemble comprises one or more artificial neural networks (ANNs) systems and methods for de-speckle or noise processing of ultrasound images, using computer vision techniques (e.g., Convolution Neural Networks) for object detection, recognition, annotation, segmentation, classification, counting, and tracking of reproductive anatomy, such as follicles and ovaries. ANNs systems and methods are also assembled to analyze electronic medical records to identify and phenotype characteristic time-to-event patient outcomes for predicting the timing of optimal follicle extraction and implantation in patients. The methods and systems are incorporated into a cloud-based computer program and mobile application that enable physician and patient access to clinical insights in the clinical and patient management of infertility.
[0071] It should be appreciated that various concepts introduced above and discussed in greater detail below may be implemented in any of numerous ways, as the disclosed concepts are not limited to any particular manner of implementation. Examples of specific implementations and applications are provided primarily for illustrative purposes. The present disclosure should in no way be limited to the exemplary implementation and techniques illustrated in the drawings and described below.
[0072] Where a range of values is provided, it is understood that each intervening value, to the tenth of the unit of the lower limit unless the context clearly dictates otherwise, between the upper and lower limit of that range and any other stated or intervening value in that stated range is encompassed by the invention. The upper and lower limits of these smaller ranges may independently be included in the smaller ranges, and are also encompassed by the invention, subject to any specifically excluded limit in a stated range. Where a stated range includes one or both of the endpoint limits, ranges excluding either or both of those included endpoints are also included in the scope of the invention.
[0073] As used herein, exemplary means serving as an example or illustration and does not necessarily denote ideal or best.
[0074] As used herein, the term includes means includes but is not limited to, the term including means including but not limited to. The term based on means based at least in part on.
[0075] Turning now descriptively to the drawings, in which similar reference characters denote similar elements throughout the several views,
[0076] Referring now to
[0077] In use, the processing system 100a is adapted to allow data or information to be stored in and/or retrieved from, via wired or wireless communication means, at least one data storage structure (e.g. database) 116a. The interface 112a may allow wired and/or wireless communication between the processing unit 102a and peripheral components that may serve a specialized purpose. In general, the processor 102a can receive instructions as input data 118a via input device 106a and can display processed results or other output to a user by utilizing output device 108a. More than one input device 106a and/or output device 108a can be provided. It should be appreciated that the processing system 100a may be any form of terminal, server, specialized hardware, or the like.
[0078] It is to be appreciated that the processing system 100a may be a part of a networked communications system. Processing system 100a could connect to a network, for example the Internet or a WAN. Input data 118a and output data 120a could be communicated to other devices via the network. The transfer of information and/or data over the network can be achieved using wired communications means or wireless communications means. A server can facilitate the transfer of data between the network and one or more databases. A server and one or more databases provide an example of an information source.
[0079] Thus, the processing computing system environment 100a illustrated in
[0080] It is to be further appreciated that the logical connections depicted in
[0081]
[0082] In the description that follows, certain embodiments may be described with reference to acts and symbolic representations of operations that are performed by one or more computing devices, such as the computing system environment 100a of
[0083] Embodiments may be implemented with numerous other general-purpose or special-purpose computing devices and computing system environments or configurations. Examples of well-known computing systems, environments, and configurations that may be suitable for use with an embodiment include, but are not limited to, personal computers, handheld or laptop devices, personal digital assistants, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network, minicomputers, server computers, game server computers, web server computers, mainframe computers, and distributed computing environments that include any of the above systems or devices.
[0084] Embodiments may be described in a general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. An embodiment may also be practiced in a distributed computing environment where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
[0085] With the exemplary computing system environment 100a of
[0086] Referring now to
[0087] A CNN learns highly non-linear mappings by interconnecting layers of artificial neurons arranged in many different layers with non-linear activation functions. A CNN architecture comprises one or more convolutional layers 106, 110 interspersed with one or more sub-sampling layers 108, 112 or non-linear layers, which are typically followed by one or more fully connected layers 114, 116. Each element of the CNN receives inputs from a set of features in the previous layer. The CNN learns concurrently because the neurons in the same feature map (or output image) 120 have identical weights or parameters. These local shared weights reduce the complexity of the network such that when multi-dimensional input data enters the network, the CNN reduces the complexity of data reconstruction in the feature extraction and regression or classification process.
[0088] In mathematics, a tensor is a geometric object that maps in a multi-linear manner geometric vectors, scalars, and other tensors to a resulting tensor. Convolutions operate over 3D tensors (e.g., vectors), called feature maps (e.g., 120), with two spatial axes (height and width) as well as a depth axis (also called the channels axis). In general computer vision, a CNN is typically designed to classify color images that contain three image channelsRed, Green and Blue (RGB). For an RGB image, the dimension of the depth axis is three (3), because the image has three color channels, Red, Green, and Blue. For a black-and-white picture, the depth is one (1) (i.e., levels of gray). The convolution operation extracts patches 122 from its input feature map and applies the same transformation to all of these patches, producing an output feature map 124. This output feature map is still a 3D tensor, having a width and a height. Its depth can be arbitrary, because the output depth is a parameter of the layer, and the different channels in that depth axis no longer stand for specific colors as in RGB input; rather, they stand for filters. Filters encode specific aspects of the input data at a height level. A single filter could be encoded with, for example, morphology, texture, or size of a follicle.
[0089] Convolutions are defined by two key parameters: [0090] (1) size of the patches extracted from the inputstypically 11, 33 or 55 and [0091] (2) depth of the output feature mapthe number of filters computed by the convolution. In general, these start with a depth of 32, continue to a depth of 64, and terminate with a depth of 128 or 256.
[0092] A convolution operates by sliding these windows of size 33 or 55 over a 2D or 3D input feature map, stopping at every location, and extracting a patch 122 of surrounding features [shape (window Height, window Width, input Depth)]. Each such patch is then transformed (via a tensor product with the same learned weight matrix, called the convolution kernel) into an ID vector of shape (output depth). All of these vectors are then spatially reassembled into, for example, a 3D output map of shape (Height, Width, output Depth). Every spatial location in the output feature map corresponds to the same location in the input feature map (for example, the lower-right corner of the output contains information about the lower-right corner of the input).
[0093] During training, a CNN is adjusted or trained so that the input data leads to a specific output estimate. The CNN is adjusted using back propagation based on a comparison of the output estimate and the ground truth (i.e., true label) until the output estimate progressively matches or approaches the ground truth. The CNN is trained by adjusting the weights (w) or parameters between the neurons based on the difference between the ground truth and the actual output. The weights between neurons are free parameters that capture the model's representation of the data and are learned from input/output samples. The goal of model training is to find parameters (w) that minimize an objective loss function L(w), which measures the fit between the predictions of the model parameterized by w and the actual observations or the true label of a sample. The most common objective loss functions are the cross-entropy for classification and mean-squared error for regression. In other implementations, the convolutional neural network uses different loss functions such as Euclidean loss and softmax loss.
[0094] Currently CNNs are trained with stochastic gradient descent (SGD) using mini-batches. SGD is an iterative method for optimizing a differentiable objective function (e.g., loss function), a stochastic approximation of gradient descent optimization. Many variants of SGD are used to accelerate learning. Some popular heuristics, such as AdaGrad, AdaDelta, and RMSprop tune a learning rate adaptively for each feature. AdaGrad, arguably the most popular, adapts the learning rate by caching the sum of squared gradients with respect to each parameter at each time step. The step size for each feature is multiplied by the inverse of the square root of this cached value. AdaGrad leads to fast convergence on convex error surfaces, but because the cached sum is monotonically increasing, the method has a monotonically decreasing learning rate, which may be undesirable on highly nonconvex loss surfaces. Momentum methods are another common SGD variant used to train neural networks. These methods add to each update a decaying sum of the previous updates. In other implementations, the gradient is calculated using only selected data pairs fed to a Nesterov's accelerated gradient and an adaptive gradient to inject computation efficiency. The major shortcoming of training using gradient descent, as well as its variants, is the need for large amounts of labeled data. One way to deal with this difficulty is to resort to the use of unsupervised learning. Data augmentation is essential to teach the network the desired invariance and robustness properties, when only few training samples are available.
[0095] The convolution layers (e.g., 106,110) of a CNN serve as feature extractors. Convolution layers act as adaptive feature extractors capable of learning and decomposing the input data into hierarchical features. In one implementation, the convolution layers take two images as input and produce a third image as output. In such an implementation, convolution operates on two images in two-dimension (2D), with one image being the input image 104 and the other image, the kernel (e.g., 102), applied as a filter on the input image 104, producing an output image. The convolution operation includes sliding the kernel 102 over the input image 104. For each position of the kernel 102, the overlapping values of the kernel and the input image 104 are multiplied and the results are added. The sum of products is the value of the output image 120 at the point in the input image 104 where the kernel 102 is centered. The resulting different outputs from many kernels are called feature maps (e.g., 120,124).
[0096] Once the convolutional layers (e.g., 106, 110) are trained, they are applied to perform recognition tasks on new inference data. Since the convolutional layers learn from the training data, they avoid explicit feature extraction and learn implicitly from the training data. Convolution layers use convolution filter kernel weights, which are determined and updated as part of the training process. The convolution layers extract different features of the input image 104, which are combined at higher layers (e.g., 108,110,112). A CNN uses a various number of convolution layers, each with different convolving parameters such as kernel size, strides, padding, number of feature maps, and weights.
[0097] Sub-sampling layers (e.g., 108, 112) reduce the resolution of the features extracted by the convolution layers to make the extracted features or feature maps (e.g., 120,124) robust against noise and distortion, reduce the computational complexity, to introduce invariance properties, and to reduce the chances of overfitting. It summarizes the statistics of a feature over a region in an image. In one implementation, sub-sampling layers (e.g., 108,112) employ two types of pooling operations: average pooling and max pooling. The pooling operations divide the input into non-overlapping two-dimensional spaces. For average pooling, the average of the four values in the region is calculated for pooling. The output of the pooling neuron is the average value of the input values that reside with the input neuron set. For max pooling, the maximum value of the four values is selected for pooling. Max pooling identifies the most predictive feature within a sampled region and reduces the resolution and memory requirements of the image.
[0098] In a CNN, a non-linear layer is implemented for neuron activation in conjunction with convolution. Non-linear layers use different non-linear trigger functions to signal distinct identification of likely features on each hidden layer (e.g., 106,110). Non-linear layers use a variety of specific functions to implement the non-linear triggering, including the Rectified Linear Unit (ReLU), Parametric Rectified Linear Unit (PreLU), hyperbolic tangent, absolute of hyperbolic tangent, and sigmoid and continuous trigger (non-linear) functions. In a preferred implementation, ReLUs are used for activation. The advantage of using the ReLU function is that the convolutional neural network is trained many times faster. ReLU is a non-continuous, non-saturating activation function that is linear with respect to the input if the input values are larger than zero and zero otherwise. In other implementations, the non-linear layer uses a power unit activation function.
[0099] A CNN can also implement a residual connection which comprises reinjecting previous representations into the downstream flow of data by adding a past output tensor to a later output tensor, which helps prevent information loss along the data-processing flow. Residual connections address two common problems that plague any large-scale deep-learning model: vanishing gradients and representational bottlenecks. A residual connection makes the output of an earlier layer available as input to a later layer, effectively creating a shortcut in a sequential network. Rather than being concatenated to the later activation, the earlier output is often summed with the later activation, which assumes that both activations are the same size. If they are of different sizes, a linear transformation can be used to reshape the earlier activation into the target shape.
[0100] Residual learning of a CNN was originally proposed to solve the performance degradation problem, where the training accuracy begins to degrade along with the increasing of network depth. By assuming that the residual mapping is much easier to be learned than the original unreferenced mapping, a residual network explicitly learns a residual mapping for a few stacked layers. A residual network stacks a number of residual units to alleviate the degradation of training accuracy. Residual blocks make use of special additive skip connections to address vanishing gradients in deep neural networks. At the beginning of a residual block, the data flow is separated into two streams. The first carries the unchanged input of the block, while the second applies weights and non-linearities. At the end of the block, the two streams are merged using an element-wise sum (or subtraction). The main advantage of such constructs is to allow the gradient to flow through the network more easily. Residual networks enable CNNs to be easily trained and improve accuracy for applications such as image classification and object detection.
[0101] A known problem in deep learning is the covariate shift where the distribution of network activations changes across layers due to the change in network parameters during training. The changing scale and distribution of inputs at each layer implies that the network has to significantly adapt its parameters at each layer and thereby training has to be slow (i.e., use of small learning rate) for the loss to keep decreasing during training (i.e., to avoid divergence during training). A common covariate shift problem is the difference in the distribution of the training and test set which can lead to suboptimal generalization performance.
[0102] In one implementation, Batch Normalization (BN) is proposed to alleviate the internal covariate shift by incorporating a normalization step, a scale step, or a shift step. BN is a method for accelerating deep network training by making data standardization an integral part of a network architecture. BN guarantees more regular distributions at all inputs. BN can adaptively normalize data even as a mean variance change over time during training. It internally maintains an exponential moving average of the batch-wise mean and variance data. The main effect is to aid with gradient propagation similar to residual connections. The BN layer can be used after a convolutional, densely, or fully connected layer but before the outputs are fed into an activation function. For convolutional layers, the different elements of the same feature mapi.e. the activations at different locationsare normalized in the same way in order to obey the convolutional property. Thus, all activations in a mini-batch are normalized over all locations, rather than per activation.
[0103] The one or more convolutional layers 106,110, interspersed with one or more sub-sampling layers 108, 112 are typically followed by one or more fully connected (FC) layers 114,116. FC layers are used to concatenate the multi-dimension feature maps (e.g., 120,124, etc.) and to make the feature map into a fixed-size category and generating a feature vector for a classification output layer 118. FC layers are typically the most parameter and connection intensive layers. In one implementation, global average pooling is used to reduce the number of parameters and optionally replace one or more FC layers for classification, by taking the spatial average of features in the last layer for scoring. This reduces the training load and bypasses the overfitting issues. The main idea of global average pooling is to generate the average value from each last layer feature map as the confidence factor for scoring, feeding directly into a softmax layer, which maps for example, 3D inputs into [0,1]. This allows for interpreting one or more output layers 118 as probabilities and selection of pixels (2D inputs) or voxels (3D inputs) with the highest probability.
[0104] In one implementation one or more autoencoders are used for dimensionality reduction. Autoencoders are neural networks that are trained to reconstruct the input data, and dimensionality reduction is achieved using a fewer number of neurons in the hidden layers (e.g., 106,110, etc.) than in the input layer 104. A deep autoencoder is obtained by stacking multiple layers of encoders with each layer trained independently (pretraining) using an unsupervised learning criterion. A classification layer can be added to the pretrained encoder and further trained with labeled data (fine-tuning).
[0105]
[0106] Ultrasound images are affected by a strong multiplicative noise, the speckle, which generally impairs the performance of automated operations, like classification and segmentation, aimed at extracting valuable information for the end user. An object of the present disclosure is a DL approach, implemented preferably through one or more CNN. In various implementations, given a suitable set of images, a CNN is trained to learn an implicit model of the data, for example, noise to enable the effective de-speckling of new data of the same type. Noise in US images can vary in shape, size, and pattern, being nonlinear. The premise is that image speckle noise can be expressed more accurately through non-linear models. In various embodiments, the CNN architecture is assembled for learning a non-linear end-to-end mapping between noisy and clean US images with a dilated residual network (US-DRN). In various implementations, one or more skip connections together with residual learning are added to the denoising model to reduce the vanishing gradient problem. In various preferred embodiments, the model directly acquires and updates the network parameters from the training data and the corresponding labels in lieu of relying on a priori knowledge of a pre-determined image or a noise description model. Without being bound to theory, contextual information of an image can facilitate the recovery of degraded regions. In general, deep convolution networks can mainly enhance the contextual information through enlarging the receptive field by increasing the network depth or enlarging the filter (e.g. 102 of
[0107] Referring to
[0108]
[0109] In various non-limiting embodiments, the training of said US-DRN comprises the use of 100 to 500 images, optionally obtained from a US scanner or device, that are further resized, (e.g., 256256). In various embodiments, one or more 2D channel can be assigned to a corresponding axial, coronal or sagittal slices in a Volume of Interest (VOI). In various embodiments, a 3D US dataset is resampled to extract one or more VOI at differing physical scales with a fixed number of voxels. Each VOI can be translated along a random vector in 3D space for N number of repetitions. Each VOI may also be translated around a randomly oriented vector for N number of repetitions by one or more random angles for expansion of the training dataset. In various embodiments, the size of a kernel or patch can be selectively set (e.g., 4040) as well as the stride (e.g., 1 to 10). In various embodiments, network training comprises the use of an optimization method (e.g., ADAM optimization) as the gradient descent method, mini-batches (e.g., 16) with a learning rate (e.g., 0.0002), over several epochs (e.g. 20, etc.). In various embodiments, the training regularization parameter is set equal to a chosen value (e.g., 0.002). In various embodiments, the denoiser model training platform comprises the optional use of Matlab R2014b (Mathworks company in Natick, Mass., USA), the CNN toolbox was MatConvnet (MatConvnet-1.0-beta24, Mathworks, Natick, Mass.), and the GPU platform Nvidia Titan X Quadro K6000 (NVIDIA Corporation, Santa Clara, Calif.). In various embodiments, an alternative CNN toolbox comprises a proprietary framework, or one or more open framework, including but not limited to, Caffe, Torch, GoogleNet, as well as alternative deep learning models including, but not limited to, VGG, LeNet, AlexNet, ResNet, U Net, the like, or combinations thereof. In various embodiments, the performance evaluation of the filter system and method comprises the use of, but not limited to, standard deviation (STD), peak signal-to-noise ratio (PNSR), equivalent looks (ENL), and edge preservation index (EPI), the structural similarity index measurement (SSIM), and an unassisted measure of the quality of the first-order and second-order descriptors of the denoised image ratio (UM). The higher the PSNR value is, the stronger the denoising ability of the algorithm. If the ENL value is bigger, the visual effect is better. The EPI value reflects the retentive ability of the boundary, and a bigger value is better. The SSIM indicates the similarity of the image structure after denoising, and it is as big as possible. The UM does not depend on the source image to assess the denoised imagewhen the value is smaller, the ability of the speckle suppression is stronger. In various embodiments, the method comprises the use of 3D convolution to extract more information compared to using multiple input channels to perform 2D convolution.
[0110] An object of the present disclosure is an ANN system and method for object detection, recognition, annotation, segmentation, or classification of at least one US image, preferably using a denoised image processed by the said US-DRN architecture, in the provision of ART for the diagnosis, treatment and clinical management of clinical infertility.
[0111] An object of the present disclosure is a framework for object detection, recognition, annotation, segmentation, or classification of at least one US image, using one or more software Application drivers in the provision of ART for the diagnosis, treatment and clinical management of clinical infertility. In various embodiments one or more application driver defines a common structure for a particular module function of CAD system described in
[0112] CAD systems for analysis encompass a number of tasks or applications of a clinical work flow: detection, registration, reconstruction, enhancement, model representation, segmentation, classification, etc. Different applications use different types of inputs and outputs, different networks, and different evaluation metrics. In a preferred embodiment, the framework platform is designed in a modular fashion to support the addition of any new Application type, by encapsulation of workflows in Application classes. The Application class defines the required data interface for the Network and Loss function, facilitates the instantiation of data sampler and output objects, connects them as required, and specifies the training regimen. In a non-limiting example, during training, a uniform Sampler driver enables the generation of small image patches and corresponding labels, processed by said CNN to generate segmentations, using a Loss function driver to compute the loss used for back-propagation using an Adam Optimizer function driver. During inference, a Grid Sampler driver can generate a set of non-overlapping patches to convert the image to segment, the said network to generate corresponding segmentations, and a Grid Sample Aggregator driver to aggregate the patches into a final segmentation.
[0113] A DL architecture comprises a complex composition of simple functions that can be simplified in by repeated reuse of conceptual blocks. In one implementation, the framework platform comprises conceptual blocks represented by encapsulated Layer classes, or inline using, for example, the TensorFlow's scoping system. In various embodiments, one or more composite layers are constructed as simple compositional layers and TensorFlow operations. In one implementation, visualization of the network graph is automatically supported as a hierarchy at different levels of detail using the TensorBoard visualizer. In various embodiments, Layer objects define one or more scope upon instantiation, enabling repeated reuse to allow complex weight-sharing without breaking encapsulation. In various embodiments, one or more Reader classes enable the loading of an image file from one or more medical file format for a specific data set and applying image-wide pre-processing. In various implementations, the framework platform uses nibabel to facilitate a wide range of data format. In a preferred embodiment, the framework platform incorporates flexibility in mapping from input dataset into packets of data to be processed and from the processed data into useful outputs. The former is encapsulated in one or more Sampler classes, and the latter is encapsulated in Output handlers. The instantiation of matching Samplers and Output handlers is delegated to the Application class. Samplers generate a sequence of packets of corresponding data for processing. Each packet contains all the data for one independent computation (e.g., one step of gradient descent during training), including images, labels, classifications, noise samples or other data needed for processing. During training, samples are taken randomly from the training data, while during inference and evaluation the samples are taken systematically to process the whole data set. During training, the Output handlers take the network output, compute a loss and the gradient of the loss with respect to the trainable variables, and use an Optimizer driver to iteratively train the model. During inference, the Output handlers generate useful outputs by aggregating one or more network outputs and performing any necessary post-processing (e.g. resizing the outputs to the original image size). In various embodiments, Data augmentation and Normalization within the platform are implemented as Layer classes applied in the Sampler. In a preferred embodiment, the framework platform enables supports for mean, variance and histogram intensity data normalization, and flip, rotation and scaling for spatial Data augmentation.
[0114]
[0115] Referring to
[0116] In one implementation, the training process for detecting recruitable follicle comprises three steps. Firstly, CNN 604 of
[0117] An object of the present disclosure is the said ANN system and method for an object detection framework in the provision of ART for the diagnosis, treatment and clinical management of clinical infertility. In various embodiments, the said system and method enables object detection (e.g., follicle detection), localization, counting, and tracking (e.g., follicle growth rate) over time of one or more reproductive anatomy from one or more US images. In various embodiments, one or more detectors or classifiers are trained in the pixel space, where the locations of one or more target reproductive anatomy(ies) are labeled (e.g., follicle). For follicle detection, the output space comprises one or more sparsely labeled pixel indicating follicle centers. In various embodiments, the output space is encoded to a compressed vector of fixed dimension, preferably shorter than the original sparse pixel space (i.e., compressed sensing). In various embodiments, a CNN regresses the said vector from the input pixels (e.g., US image). In various embodiments, follicle locations on the output pixel is recovered using normalization, including but not limited to, L.sub.1 normalization.
[0118] Without being bound to theory, the Nyquist-Shannon sampling theorem states that a certain minimal sampling rate is required for the reconstruction of a band-limited signal. Compressed sensing (CS) has the potential to reduce the sampling and computation requirements for sparse signals under a linear transformation. The premise of CS is that an unknown signal of interest is observed (sensed) through a limited number of linear observations. It has been proven that it is possible to obtain a stable reconstruction of the unknown signal from these observations, under the assumptions that the signal is sparse and matrix dis-coherence. The signal recovery technique generally relies on convex optimization methods with a penalty expressed by L1 normalization, for example orthogonal match pursuit or augmented Lagrangian method.
[0119] An object of the present disclosure is an ANN system and method for an object detection and characterization framework in the provision of ART and OI for the treatment and clinical management of clinical infertility. In various embodiments, the ANN comprises an architecture configured for instance segmentation to enable object detection (e.g., follicle detection), localization, morphology characterization, sizing, counting, and tracking (e.g., follicle growth rate) over time of one or more reproductive anatomy from one or more US images. In one embodiment, the architecture comprises an ensemble of machine learning methods for instance segmentation, edge detection and enhancement, quantification, size, and counting of one or more reproductive anatomy, including but not limited to a follicle. In various embodiments, the architecture comprises one or more ANN architecture, including but not limited to a Fast/Faster CNN, a Fully Convolutional Network (FCN), a Mask Regional Convolutional Neural Network (Mask R-CNN), or combinations thereof. In various embodiments, edge detection comprises the use of one or more methods including but not limited to Gradient, Laplacian, or the like. In one embodiment, the edge method includes but is not limited to, one or more filters, such as a Sobel filter. In various embodiments, the method comprises a multi-task, end-to-end, deep learning framework combined with image processing methods for morphology characterization, including but not limited to anatomical size, length, width, diameter, volume (e.g., follicle volume).
[0120] Referring to
[0121] Referring to
[0122] Referring now to
[0123] Referring now to
[0124] A number of encoding schemes may be employed by the said framework. In various embodiments, the framework employs one or more random projection-based encoding schemes. In various embodiments, the center of every follicle is attached with a dot mark, a cross mark, or a bounding box. In one embodiment, pixel-wise binary annotation map 804 comprises a size of w-by-h indicating the location of one or more follicles by labeling 1 at the pixel of the follicle centroids, otherwise label 0 at background pixels. In one embodiment, annotation map 804 is vectorized by the concatenation of every row of map 804 into a binary vectorflength wh. Therefore, a positive element in map 804 with {x,y} coordinates will be encoded to the [x+h(y-1)]-th position in the vector f A random projection is applied after the generation of vector f Vector f can be represented by one or more linear observation y, which is proportional to sensing a matrix 824 and vector f. Without being bound to theory, sensing matrix 824 preferably satisfies one or more conditions, including but not limited to, isometric property. In one implementation, matrix 824 is a random Gaussian matrix. In alternative embodiments, another encoding scheme 806 is employed, particular for processing of large images, to reduce computational burden. In various embodiments, the coordinates of every follicle centroid are projected onto multiple observation axes. A set of observation axes are created with an N total number of observations. In one implementation, the observation axes are uniformly distributed around image 802. For the n-observation axis oak, the location of follicles is encoded into a R-length sparse signal. Perpendicular signed distances (A) are calculated from follicles to the n-observation axis oak. Thus, f.sub.n contains signed distances as a measure of distance and location of which side of oak follicles. The encoding of follicle locations under oak is yk, obtained by a random projection. Similarly, y.sub.n is a proportional matrix 824 times f.sub.n, the signed distances. In various embodiments, the process is repeated for all the N observation axes to obtain each y.sub.n. The joint representation of follicle locations is derived from the encoding result y after concatenation of the total y.sub.n. Similarly, a decoding scheme may be employed by the said framework to recover the vector f. In various embodiments, accuracy recovery from the encoded signal y is obtained by solving an L.sub.1 normalization convex optimization problem. The recovery of f enables the localization of every true follicle, localized N time, with N predicted positions 822.
[0125] The follicle detection and localization framework comprise one or more CNN 814 for building at least one regression model between a US image 812 and its follicle location representation or compressed signal y 808. In one implementation, CNN 814 comprises a network consisting of, but not limited to, 5 convolution layers and 3 fully connected layers. In an alternative implementation, CNN 814 comprises a deep neural network, for example with a 100-layer model. In other implementations, CNN 814 comprises one or more CNN disclosed within the present disclosure. In various embodiments, one or more loss function may be employed, including but not limited to, Euclidean loss, or other said loss functions of the present disclosure. In various embodiments, the dimension of the output layer of said CNN may be modified to the length of compressed signal y 808. In various embodiments, one or more CNN 814 model may be further optimized using additional learning methods, including but not limited to Multi-Task Learning (MTL), for localization and follicle counting. In various embodiments, during training, one or more labels are provided to a CNN. In one implementation, an encoded vector y carrying pixel-level location information of follicles. In another implementation, a scalar or follicle count (c), representing the total number of follicles in training image patch, filter, or kernel. In various embodiments, two or more said labels may be concatenated into a final training label. One or more loss function is then applied on the combined label. Therefore, the supervision information for both follicle detection and counting can be jointly used for optimizing the CNN model parameters. A large number of square patches may be employed for training. Along with each training patch, a signal (i.e. the encoding result: y) may be employed to indicate the location of target follicles present in each patch. Data augmentation may be employed by performing patch rotation on the collection of training patches making the system rotation invariant. In various embodiments, one or more MTL framework may be employed to address the cases of touching and clustered follicles. In one implementation, one or more follicle appearance, including but not limited to, texture, morphology, borders, contour information are integrated into an MTL framework to form a deep-contour aware network, preferably the complementary appearance and contour information can further improve the discriminative capability of intermediate features, and hence more accurately separate the touching or clustered follicle into individual ones. In various embodiments, the CNNs are trained in an end-to-end manner to boost performance. In various embodiments, the model training platform comprises the optional use of Matlab R2014b (Mathworks company in Natick, Mass., USA), the CNN toolbox was MatConvnet (MatConvnet-1.0-beta24, Mathworks, Natick, Mass.), and the GPU platform Nvidia Titan X Quadro K6000 (NVIDIA Corporation, Santa Clara, Calif.). In various embodiments, alternative CNN toolbox comprises a proprietary framework, or one or more open framework, including but not limited to, Caffe, Torch, GoogleNet, as well as alternative deep learning models including, but not limited to, VGG, LeNet, AlexNet, ResNet, U Net, the like, or combinations thereof. In various embodiments, the said process enables detection, localization, and counting of alternative reproductive anatomy(ies) and not limited to follicles, including but not limited to, a (n): ovary, cyst, cystic ovary, polycystic ovary, or the like. In various embodiments, one or more results are electronically recorded in at least one electronic health record database. In alternative embodiments, the said results are transmitted and stored within a database residing in a cloud-based server.
[0126] Referring to
[0127] An object of the present disclosure is the said ANN system and method for analyzing an electronic medical record in the provision of ART for the diagnosis, treatment and clinical management of clinical infertility. In various embodiments, said system and method enable feature extraction or phenotyping of one or more patients from at least one longitudinal patient electronic medical record (EMR), electronic health record (EHR), database, or the like. Electronic phenotyping refers to the problem of extracting effective phenotypes from longitudinal patient health records. The challenges of effective extraction of features from a patient's EMR or EHR are high-dimensionality due to the large quantity of distinct medical events, temporality in which EHRs evolve over time, and sparsity of data, irregularity, and systematic errors or bias. A temporal matrix representation of data is employed to address representation of patient medical records as temporal matrices with one dimension corresponding to time and the other dimension corresponding to medical events. In various embodiments, temporal EHR information or medical record is converted into one or more binary sparse matrix, comprising horizontal dimension (time) and a vertical dimension (medical event). In one implementation, the (i,j)-entry in the matrix of a specific patient is equal to 1 if the i-th event is recorded or observed at time stamp j in the patient medical record. Referring to
[0128] EMR data vary widely in time and temporal connectivity is required for prediction. In various embodiments, temporal smoothness is incorporated into the learning process using one or more temporal fusion. In various embodiments, one or more data sample is processed as a collection of short, fixed-sized sub-frames, of a single frame, containing several contiguous intervals in time. In one implementation, a model fuses information across the temporal domain, performed early in the network 1004, by modifying convolution layer 1004a to extend in time. In one implementation, proximal fusion combines information across an entire time window immediately on the basic event feature level. One or more filters of the convolution layer 1004a are modified to extend operation on one or more sub-frames. In another implementation, a distal fusion model performs fusion on the fully connected layer 1004c. In one embodiment, one or more separate single-frame network or sub-frames are merged in the fully connected layer, whereby detecting patterns existing in one or more sub-frames. In another implementation, a balance between proximal and distal temporal fusion enables the slow fusing of information throughout the network. In various embodiments, the higher layers of the network receive progressively more global information in time. In one implementation, connectivity is extended to all convolution layers in time and the fully connected layer 1004c can compute global pattern characteristics by comparison of all output layers. The framework enables the production of insightful patient phenotypes by taking advantage of the higher order temporal event relationships. In various embodiments, one or more recording of neuron activity enables the observation of patterns indicative of a health or medical condition. In one implementation, one or more neurons outputs receive the highest weights, preferably normalized, in one or more top layer for positive or negative classification of a condition. One or more regions appearing in a training set highly activating one or more corresponding neurons can be identified using one or more sliding window cut (min,max window size) to obtain one or more top ranked regions or patterns. In another implementation, one or more weights of neurons are aggregated and assigned to a medical or health condition and are important features for patient phenotype extraction and predictive purposes. In various embodiments, the model training platform comprises the optional use of Matlab R2014b (Mathworks company in Natick, Mass., USA), the CNN toolbox MatConvnet (MatConvnet-1.0-beta24, Mathworks, Natick, Mass.), and the GPU platform Nvidia Titan X Quadro K6000 (NVIDIA Corporation, Santa Clara, Calif.). In various embodiments, an alternative CNN toolbox comprises a proprietary framework, or one or more open framework, including but not limited to, Caffe, Torch, GoogleNet, as well as alternative deep learning models including, but are not limited to, VGG, LeNet, AlexNet, ResNet, U Net, the like, or combinations thereof.
[0129] In various embodiments, the said medical record comprises one or more stored patient record, preferably records of patients undergoing infertility treatment, ultrasound image, images of said reproductive anatomy, physician notes, clinical notes, physician annotation, diagnostic results, body-fluid biomarkers, hormone markers, hormone level, neohormones, endocabinoids, genomic biomarkers, proteomic biomarkers, Anti-Mullerian hormone, progesterone, FSH, inhibins, renin, relaxin, VEGF, creatine kinase, hCG, fetoprotein, pregnancy-specific b-1-glycoprotein, pregnancy-associated plasma protein-A, placental protein-14, follistatin, IL-8, IL-6, vitellogenin, calbindin-D9k, therapeutic treatment, treatment schedule, implantation schedule, implantation rate, follicle size, follicle number, AFC, follicle growth rate, pregnancy rate, date and time of implantation (i.e., event), CPT code, HCPCS code, ICD code, or the like. In various embodiments, the one or more patient phenotypes include, but are not limited to, infertility, anovulation, oligo ovulation, endometriosis, male factor infertility, tubal factor infertility, decreased ovarian reserve, patient risk of ovulation, patient having the optimal characteristics for implantation, patient ready for implantation, patient having one or biomarkers indicative of ovulation, patient having US images indicative of being optimal for extraction, etc. In various embodiments, one or more identified patient phenotype or predictive result from an output layer of said one or more CNN are recorded in at least one electronic health record database. In alternative embodiments, the said results are transmitted and stored within a database residing in a cloud-based server.
[0130] An object of the present disclosure is the said ANN system and method for predictive planning in the provision of ART for the diagnosis, treatment and clinical management of clinical infertility. A unified predictive framework comprises one or more survival convolution neural networks (SCNNs) to provide one or more prediction of time-to-event outcomes from at least one US image and one or more patient phenotype obtained from a patient medical record. In various embodiments, the framework comprises one or more image sampling and risk filtering technique for predictive purposes. In one implementation, one or more ROIs or VOIs of at least one US image is used to train a deep CNN seamlessly integrated with a Cox proportional hazards model to predict patient outcomes, including but not limited to, induction-termination of hormone therapy, having recruitable follicle, having dominant follicle, having matured follicle, ready for follicle extraction, optimal endometrial thickness for implantation. Referring to
[0131] An object of the present disclosure is a computer program product for use in the provision of ART for the diagnosis, treatment and clinical management of clinical infertility. Referring to
[0132] Referring to
[0133] Referring to
[0134] Referring to
[0135] Referring to
[0136] Referring to
[0137] In accordance with certain aspects of the present disclosure, additional inputs 1520b may be obtained through one or more data inputs and/or data transfer interface. In step 1512b, a subject's electronic medical record may be obtained as a data input. In accordance with certain embodiments, subject's electronic medical record may comprise one or more data sets selected from the group consisting of diagnostic results, body fluid biomarkers, hormone markers, hormone levels, genomic biomarkers, proteomic biomarkers, therapeutic treatments, treatment schedule, follicle size and number, follicle growth rate, pregnancy rate, and ovulatory induction data. In step 1514b, an anonymized third-party electronic medical record is obtained as a data input. In accordance with certain embodiments, anonymized third-party electronic medical record may comprise one or more data sets selected from the group consisting of diagnostic results, body fluid biomarkers, hormone markers, hormone levels, genomic biomarkers, proteomic biomarkers, therapeutic treatments, treatment schedule, follicle size and number, follicle growth rate, pregnancy rate, and ovulatory induction data. In step 1516b, a reproductive physiology data of the subject is obtained as an input. In accordance with certain embodiments, the reproductive physiology data of the patient may comprise diagnostic results, diagnostic biomarkers, genomic markers, proteomic marker, body fluid analytes, chemical panels, and measured hormone levels. In step 1518b, environmental data related to the subject's reproductive cycle is obtained as an input. In accordance with certain embodiments, the environmental data may comprise longitudinal medical data of the patient collected based on day of reproductive cycle, time of day, and time of week.
[0138] In various embodiments, the method provides for the assessment of one or more risk factors including but not limited to, a patient's age, duration of infertility, number or prior treatment cycles, peak serum E2 concentration on the day of trigger, and the number of follicles. Risk factors for high-order multiple pregnancy includes 7 preovulatory follicles (10-12 mm), E2>1,000 pg per mL, early cycles of treatment, age <32, low BMI, and use of donor sperm. The said process may include the determination of critical size for follicles predictive of multiple pregnancy (i.e., between 12 to 15 mm) and accounting for all the follicles before triggering ovulation and particularly those of intermediate size (between 11 and 15 mm) when evaluating the risk of multiple pregnancies. In step 1520b, these additional inputs 1520b are analyzed, according to at least one linear or non-linear framework (i.e. machine learning framework), together with the ovarian ultrasound images, to predict a time-to-event outcome in step 1506b; and subsequently in step 1508b to generate one or more clinical recommendations associated with the OI treatment. In accordance with certain embodiments, the one or more clinical recommendations may comprise recommendations to maximize the pregnancy rate associated with the OI treatment while simultaneously minimizing the risk of multiple pregnancies.
[0139] As will be appreciated by one of skill in the art, the present invention may be embodied as a method (including, for example, a computer-implemented process, a business process, and/or any other process), apparatus (including, for example, a system, machine, device, computer program product, and/or the like), or a combination of the foregoing. Accordingly, embodiments of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.), or an embodiment combining software and hardware aspects that may generally be referred to herein as a system. Furthermore, embodiments of the present invention may take the form of a computer program product on a computer-readable medium having computer-executable program code embodied in the medium.
[0140] Any suitable transitory or non-transitory computer readable medium may be utilized. The computer readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. More specific examples of the computer readable medium include, but are not limited to, the following: an electrical connection having one or more wires; a tangible storage medium such as a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a compact disc read-only memory (CD-ROM), or other optical or magnetic storage device.
[0141] In the context of this document, a computer readable medium may be any medium that can contain, store, communicate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer usable program code may be transmitted using any appropriate medium, including but not limited to the Internet, wireline, optical fiber cable, radio frequency (RF) signals, or other mediums.
[0142] Computer-executable program code for carrying out operations of embodiments of the present invention may be written in an object oriented, scripted or unscripted programming language such as Java, Perl, Smalltalk, C++, or the like. However, the computer program code for carrying out operations of embodiments of the present invention may also be written in conventional procedural programming languages, such as the C programming language or similar programming languages.
[0143] Embodiments of the present invention are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus(es), systems, and computer program products. It will be understood that each block of the flowchart illustrations and/or block diagrams, and/or combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-executable program code portions. These computer-executable program code portions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a particular machine, such that the code portions, which execute via the processor of the computer or other programmable data processing apparatus, create mechanisms for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
[0144] These computer-executable program code portions (i.e., computer-executable instructions) may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the code portions stored in the computer readable memory produce an article of manufacture including instruction mechanisms which implement the function/act specified in the flowchart and/or block diagram block(s). Computer-executable instructions may be in many forms, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments.
[0145] The computer-executable program code may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational phases to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the code portions which execute on the computer or other programmable apparatus provide phases for implementing the functions/acts specified in the flowchart and/or block diagram block(s). Alternatively, computer program implemented phases or acts may be combined with operator or human implemented phases or acts in order to carry out an embodiment of the invention.
[0146] As the phrases are used herein, a processor may be operable to or configured to perform a certain function in a variety of ways, including, for example, by having one or more general-purpose circuits perform the function by executing particular computer-executable program code embodied in computer-readable medium, and/or by having one or more application-specific circuits perform the function.
[0147] The terms program or software are used herein in a generic sense to refer to any type of computer code or set of computer-executable instructions that can be employed to program a computer or other processor to implement various aspects of the present technology as discussed above. Additionally, it should be appreciated that according to one aspect of this embodiment, one or more computer programs that when executed perform methods of the present technology need not reside on a single computer or processor, but may be distributed in a modular fashion amongst a number of different computers or processors to implement various aspects of the present technology.
[0148] All definitions, as defined and used herein, should be understood to control over dictionary definitions, definitions in documents incorporated by reference, and/or ordinary meanings of the defined terms.
[0149] The indefinite articles a and an, as used herein in the specification and in the claims, unless clearly indicated to the contrary, should be understood to mean at least one. As used herein, the terms right, left, top, bottom, upper, lower, inner and outer designate directions in the drawings to which reference is made.
[0150] The phrase and/or, as used herein in the specification and in the claims, should be understood to mean either or both of the elements so conjoined, i.e., elements that are conjunctively present in some cases and disjunctively present in other cases. Multiple elements listed with and/or should be construed in the same fashion, i.e., one or more of the elements so conjoined. Other elements may optionally be present other than the elements specifically identified by the and/or clause, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, a reference to A and/or B, when used in conjunction with open-ended language such as comprising can refer, in one embodiment, to A only (optionally including elements other than B); in another embodiment, to B only (optionally including elements other than A); in yet another embodiment, to both A and B (optionally including other elements); etc.
[0151] As used herein in the specification and in the claims, or should be understood to have the same meaning as and/or as defined above. For example, when separating items in a list, or or and/or shall be interpreted as being inclusive, i.e., the inclusion of at least one, but also including more than one, of a number or list of elements, and, optionally, additional unlisted items. Only terms clearly indicated to the contrary, such as only one of or exactly one of, or, when used in the claims, consisting of, will refer to the inclusion of exactly one element of a number or list of elements. In general, the term or as used herein shall only be interpreted as indicating exclusive alternatives (i.e. one or the other but not both) when preceded by terms of exclusivity, such as either, one of, only one of, or exactly one of Consisting essentially of, when used in the claims, shall have its ordinary meaning as used in the field of patent law.
[0152] As used herein in the specification and in the claims, the phrase at least one, in reference to a list of one or more elements, should be understood to mean at least one element selected from any one or more of the elements in the list of elements, but not necessarily including at least one of each and every element specifically listed within the list of elements and not excluding any combinations of elements in the list of elements. This definition also allows that elements may optionally be present other than the elements specifically identified within the list of elements to which the phrase at least one refers, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, at least one of A and B (or, equivalently, at least one of A or B, or, equivalently at least one of A and/or B) can refer, in one embodiment, to at least one, optionally including more than one, A, with no B present (and optionally including elements other than B); in another embodiment, to at least one, optionally including more than one, B, with no A present (and optionally including elements other than A); in yet another embodiment, to at least one, optionally including more than one, A, and at least one, optionally including more than one, B (and optionally including other elements); etc.
[0153] In the claims, as well as in the specification above, all transitional phrases such as comprising, including, carrying, having, containing, involving, holding, composed of, and the like are to be understood to be open-ended, i.e., to mean including but not limited to. Only the transitional phrases consisting of and consisting essentially of shall be closed or semi-closed transitional phrases, respectively, as set forth in the United States Patent Office Manual of Patent Examining Procedures, Section 2111.03.
[0154] The present disclosure includes that contained in the appended claims as well as that of the foregoing description. Although this invention has been described in its exemplary forms with a certain degree of particularity, it is understood that the present disclosure has been made only by way of example and numerous changes in the details of construction and combination and arrangement of parts may be employed without departing from the spirit and scope of the invention.