The present invention relates to a method for use in a skin treatment device, and in particular, a method performed by one or more computers using neural networks for outputting a measurement of a dimension of a body part in an input image, a computer program product and a system thereof. The present invention further relates to a method of training neural networks used to control an electronic device to output the measurement of a dimension of a body part in an input image, a computer program and a method and system thereof for training the neural networks.
It is typical for skin treatment devices to make use of software applications (apps) which can be downloaded on user electronic devices such as smartphones or tablets. These electronic devices are coupled to the skin treatment device, by means of connections such as Wireless Fidelity (WiFi) or Bluetooth. The apps can be used for controlling an operation of the skin treatment device, displaying messages to the user and the like.
For control actions relating to skin treatment, the app may prompt the user to input a dimension such as length of a body part via a suitable user interface (e.g. touchscreen) of the electronic device. Conventionally, the user manually measures the length of the body part to be treated by the skin treatment device, e.g. using a standard measuring tape. The input length is used by the app to calculate treatment parameters which are customized to the user. For example, in a skin treatment such as an Intense Pulsed Light (IPL) device, the treatment parameters include a number of light flashes, the intensity of light, etc. required to treat the body part.
It is an object of the present invention to provide an improved solution which can automate measurement of a dimension of the body part, making it more convenient to the user.
The user is also prone to making errors in measurement, resulting in an inaccurate calculation of treatment parameters. It is another object of the invention to provide a solution which can improve the accuracy of the measured body part.
In the field of computer vision, human body key point detection relates to detecting human body key points or fiducial points in an image. However, the method requires complex image processing routines, thus making it slow for real time applications.
It is yet another object of the present invention to provide an automated solution addressing the challenges associated with image processing methods such as key point detection. This is achieved by use of a hybrid method based on neural network(s) and key point detection.
Neural networks are machine learning models that employ one or more layers of nonlinear units to predict an output for a received input. Some neural networks are deep neural networks which include one or more hidden layers in addition to an output layer. The output of each hidden layer is used as input to the next layer in the network, i.e., the next hidden layer or the output layer. Each layer of the network generates an output from a received input in accordance with current values of a respective set of parameters.
It is yet another object of the present invention to provide a technique for training neural networks, which networks can be used to output a measurement of a dimension of a body part in an input image on an electronic device.
The details of one or more embodiments of the subject matter of this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims. For example, the specification provides methods, systems, and apparatus, including computer programs encoded on computer storage media, for carrying out any of the techniques disclosed herein. In some embodiments, a computer program comprises instructions that when executed by computing apparatus causes it to perform any of the techniques disclosed herein.
In one aspect, a method performed by one or more computers and a system thereof for outputting a measurement of a dimension of a body part in an input image is provided. The method includes receiving the input image captured using an image capturing unit, wherein the input image includes the body part and a reference object of a predefined dimension, predicting by a segmentation deep neural network, S-DNN, a segmentation mask of the input image, the segmentation mask differentiating image pixels of the body part from image pixels of a background region in the input image, detecting the reference object in the input image and processing the detected reference object to predict a pixel dimension of the reference object by an object detection deep neural network, OD-DNN, obtaining pixel coordinates of a plurality of key points of the body part using the segmentation mask, modifying the obtained pixel coordinates based on the predicted pixel dimension of the reference object, and measuring the dimension of the body part based on the modified pixel coordinates and outputting the measured dimension of the body part.
The method and system provide an improved measurement solution which can automate measurement of a dimension of the body part of the user, making a device incorporating the solution more user-friendly. As a result of the features used therein, the solution also improves the accuracy of the measured body part. The method further reduces the complexity of image processing routines, and makes them more suited to real time applications, and therefore can be implemented on devices with relatively less processing capability.
In one aspect, a method of training a plurality of neural networks and a system thereof used to control an electronic device to output a measurement of a dimension of a body part in an input image is provided. The input image is captured by an image capturing unit of the electronic device. The plurality of neural networks includes an object detection deep neural network, OD-DNN, and a segmentation deep neural network, S-DNN. The method includes the steps of initializing neural network parameter values of the S-DNN and OD-DNN, obtaining a training data set including a plurality of images, each image including the body part and a reference object of a predefined dimension, annotating the reference object and the body part in the images of the training data set to generate an annotated training data set, dividing a part of the annotated training data set into a validation data set, inputting the annotated training data set to the OD-DNN such that the OD-DNN learns to detect the reference object in the input image and process the detected reference object to predict a pixel dimension of the reference object, inputting the annotated training data set to the S-DNN such that the S-DNN learns to predict a segmentation mask of the input image, wherein the segmentation mask differentiates image pixels of the body part from image pixels of a background region in the input image, validating, using the validation data set, a pixel dimension of the reference object learnt by the OD-DNN and a segmentation mask learnt by the S-DNN, and updating the neural network parameter values of the S-DNN and OD-DNN based on the validation.
The method and system provide a training solution for real world applications including controlling an electronic device to output a measurement of a body part. The output may be displayed to a user of the electronic device. In some implementations, the training solution continuously interacts with measurement input which is captured by one or more physical image capturing units.
In one aspect, one or more computer program products which include instructions which, when the program is executed by one or more computers, cause the one or more computers to carry out steps of the above-mentioned methods, are provided.
As mentioned, other features, aspects, and advantages of the subject matter will become apparent from the description, the figures, and the claims.
In step 102, method 100 comprises receiving an input image. The input image comprises the body part which is intended to be treated, for example, a leg, an arm, or any other body part. It may be a two-dimensional (2D) image (e.g., represented as a 2D array of pixels) and may be acquired by an image scanner of any modality, for example, an image capturing unit of a user electronic device (smartphone camera).
The input image further comprises a reference object of a predefined dimension. It is difficult to obtain an accurate length of a region of interest (ROI) or desired object in a captured image. This is because, based on factors such as selected optical/digital zoom of the image capturing unit, image resolution, the angle of image capture, etc., the measurements of the ROI in an image may deviate from its actual values. Since all objects of an image share similar characteristics, such deviations may be compensated by referencing the ROI to another object in the same image, the other object having a known length.
Skin treatment devices are often equipped with at least one attachment with a standard length. In a particular example, a treatment aperture of this attachment can be used as the reference object. An example of a reference object is shown in
In step 104, method 100 comprises predicting at least one segmentation mask of the input image. A segmentation deep neural network (S-DNN) is used to process the input image. In an example, a ResNet model is used. The S-DNN is configured to receive the input image and process the input image in accordance with current (optimised) values of S-DNN parameters to predict the segmentation mask. Step 104 may be performed at a single location by a single computer (for example, at the user electronic device) or at a different location by another computer or processor. In the latter example, the S-DNN may be located in a distributed server such as a cloud. Hence, the computing is performed at the server location. The user electronic device can be configured to transmit the acquired input image to the server by means of wireless communication. In this example, the user electronic device and the server form a plurality of computers in a wireless communication system. Since the image processing is carried out apart from the user (client) electronic device, less resources are needed by the device at the user location.
The S-DNN is a semantic classifier, which classifies pixels in the input image into a plurality of classes or types. In an example, a predicted segmentation mask comprises the classes ROI and background. The image pixels of the ROI in the segmentation mask relate to a first class and the image pixels of the background region in the segmentation mask relate to a second class. The second class relating to the background comprises those image pixels outside a boundary of the ROI or the body part, and can optionally be filtered from the segmentation mask (shown darkened in
In some implementations, the segmentation mask has a score, which represents a likelihood that the predicted mask is the most appropriate classification for the user. This score, amongst other parameters, may be used by the S-DNN for future predictions, i.e., for computing the segmentation mask of another input image of the same or similar body part at a later point of time.
As mentioned, the input image comprises the reference object of a predefined dimension/length/size, in order to obtain an accurate measurement of the ROI in the input image. In step 106, method 100 detects the reference object in the input image and processes the reference object in the input image to predict an image pixel dimension, e.g., a (total) pixel length of the reference object, in other words, the length of a row of pixels (number of pixels) spanning the length of the reference object in the input image. The prediction acts as a correction factor and is applied to pixel coordinates of the ROI (body part) determined via keypoint detection. This is detailed below.
An object detection deep neural network (OD-DNN) is used to detect and process the reference object in the input image. In an example, a You only look once (YOLO) object detection convolutional neural network (CNN) model is used. The OD-DNN is configured to receive and process the input image in accordance with current (optimised) values of OD-DNN parameters to predict the pixel length of the reference object. The OD-DNN may further be configured to process the input image in accordance with current (optimised) values of OD-DNN parameters to detect the ROI. Like step 104, step 106 may be performed at a single location by a single computer (for example, at the user electronic device) or at a different location by a distributed computer. In the latter example, the OD-DNN may be located in a distributed server such as a cloud. Hence, the processing or computing is performed at the server location. Similar to step 104, the user electronic device can be configured to transmit the acquired input image to the server by means of wireless communication, the electronic device and the server forming a wireless communication system. Since the image processing is carried out apart from the user (client) electronic device, less resources are needed by the device at the user location.
In some implementations, the OD-DNN is trained to output pixel coordinates of a bounding box which outlines the reference object. A bounding box shows the spatial location of an object and is presented by a set of coordinates that tends to bound the object by the smallest enclosing box. An example of a bounding box is shown in
Like in step 104, the predicted pixel length of the reference object has a score, which represents a likelihood that the prediction is the most appropriate (linear) regression. This score, amongst other parameters, may be used by the OD-DNN for future predictions.
In some implementations, the OD-DNN calculates a single/per pixel length, denoted as a measurement per pixel (MPP), based on the predefined dimension and the predicted pixel dimension of the reference object. In the field of computer vision. MPP is understood to quantify the number of inches or centimeters of the environment shown in the image encoded or represented per pixel length or per pixel breadth of the image. An example is shown in
In the above equation, the predefined dimension of the reference object is denoted by the term ground truth length, and the predicted pixel dimension is denoted as the pixel length of the object. This metric acts as a correction factor and is applied to pixel coordinates of the ROI (body part) determined via keypoint detection. Some other advantages of measuring (reference) objects in an image with the MPP are that the metric is independent of the distance between an image capturing unit (camera) and the object, that it can be employed for any object of known dimensions in the image, is independent of the pixel density of the image and of camera calibration parameters such as skew coefficient and optical center.
In step 108, method 100 obtains pixel coordinates of a plurality of key points of the body part from the segmentation mask obtained in step 104. This is shown in
In an example, the key points of body part “lower leg” are chosen as the ankle and knee joints. An example of how these key points are detected is as follows. In
An exemplary implementation to calculate the local minima/maxima is shown in
In some embodiments, the method calculates the distance between the obtained key points.
In step 110, method 100 modifies the obtained pixel coordinates of the key points or the distance between the key points based on the predicted pixel dimension of the reference object. In some implementations, the method corrects the obtained coordinates using the pixel size derived from the measurement per pixel calculation in accordance with the equation in paragraph [38], hence, actual lower leg length=MPP*distance between the key points (pixel length of the ROI).
Such correction, based on reference to an object in the input image with known dimensions, accounts for ROI size variations due to factors such as selected optical/digital zoom of the image capturing unit, image resolution, the angle of image capture, etc.
In step 112, method 100 outputs the measurement of the length of the body part based on the modified pixel coordinates. The measurement may be displayed by the user electronic device to the user by means of its display screen. The measured value is further transmitted to the skin treatment device for calculation of treatment parameters by the user electronic device. In some embodiments, the measured value can be directly transmitted to the skin treatment device, i.e., without further display to the user.
The method may use at least one of the input image, segmentation mask, the predicted pixel dimension, and the output measurement of the dimension of the body part for future predictions of the segmentation mask, the pixel dimension, and the output measurement of the dimension of the body part.
The image processing system 600 is configured to receive and process an input image 601 depicting or including a body part to be treated. The body part is considered the ROI 602 in the input image. Input image 601 is acquired using an image capturing unit 603 which may form part of system 600, or be external to it. As mentioned, the image capturing unit 603 may be part of a user electronic device, and the body part may be that of the user or another subject.
The system 600 processes the input image 601 to predict a segmentation mask of the input image. In doing so, it provides the input image as an input to an S-DNN 604 (as mentioned above). The S-DNN is configured to receive the input image 601 and process it in accordance with current values of S-DNN parameters to generate or predict a segmentation mask 605 (based on a hypothesis that approximates a function between an input to the DNN and an expected output). The segmentation mask characterizes a segmentation of the input image into at least one class, the class comprising image pixels of the ROI, the body part.
The system 600 may store the generated segmentation mask in a data store (e.g., a logical data storage area or a physical data storage device, not shown) wirelessly coupled to the system 600. A user of the system 600 (e.g., a user operating a device at home) may subsequently retrieve the segmentation mask from the data store. In some cases, the system 600 may directly present the generated segmentation mask on a display device (e.g., a computer screen) visible to a user of the system 600, e.g., using the display of the user electronic device.
The S-DNN is trained with differently initialized parameter values, on different training images, or both. An example process for training the S-DNN is described with reference to
To generate the output measurement 610 of the body part, the system 600 further provides the segmentation mask 605 to the key point detector 606. The algorithm or model of the key point detector 606 may be embedded in a user device which is comprised internal or external to system 600, or at a server location together with S-DNN and/or other neural networks (the latter shown in
In some implementations, the system 600 processes the input image 601 further to modify the obtained dimension. In this case, input image 601 additionally includes a reference object 607. The system 600 provides the input image 601 as an input to an OD-DNN 608 (specifics of OD-DNN as mentioned above). The OD-DNN processes the reference object 607 to predict a pixel dimension of the reference object 609. In some implementations, the system 600 further calculates a pixel size based on the predicted pixel dimension of the reference object and a known dimension of the reference object 607. System 600 corrects the obtained dimension of the body part 610 based on the predicted pixel dimension of the reference object or the derived pixel size/metric MPP. The key point detector 606 may apply this correction to the obtained pixel coordinates of the key points or the dimension of the body part calculated based on these pixel coordinates in its output 610.
The OD-DNN is trained with differently initialized parameter values, on different training images, or both. An example process for training the OD-DNN is described with reference to
Both S-DNN and OD-DNN may be trained using separate supervised learning procedures. The neural networks may also be trained by the same supervised training procedure, using the same training data set. The procedures may involve using manually labelled training images. An example of the latter approach is illustrated in
In step 702, the method comprises initializing the neural network parameter values of the S-DNN and OD-DNN. In some implementations, the method may initialize the S-DNN and OD-DNN neural network parameter values based on trained parameter values of another neural network with the same architecture as the S-DNN and OD-DNN, respectively, and which have been trained to perform similar predictions. For example, as mentioned above. S-DNN and OD-DNN may build on pre-trained models, i, c., the OD-DNN and S-DNN are prior trained to detect objects in an arbitrary image and semantically segment an arbitrary image into at least one segment mask of a specific image class, respectively. In this case the initialization can be based on trained parameter values of the pre-trained S-DNN and OD-DNN.
In some implementations, the score of the predictions in method 100 by system 600 is considered at step 702 during initialization of the parameter values, so that the training of the neural networks can be adjusted every time method 100 is performed. As a result, over time, the system 600 learns to obtain and/or output a measurement of a dimension of a body part in an input image to a user of an electronic device with improved accuracy.
In step 704, method 700 obtains a training examples or a training data set comprising a plurality of images, each image including the body part and a reference object of a predefined dimension. Each image in the training data set is further annotated by a human expert, in an automated or semi-automated manner. Annotation refers to a process by which a person, manually or using a computer, assigns a type to an object in the image for purposes of training a neural network.
In some implementations, method 700 obtains the training data set periodically from one or more computers in the system. For example, each time method 100 is performed by system 600, the input image may be stored in the system for later training purposes. In this manner, the S-DNN and OD-DNN can be iteratively trained.
In step 706, the method comprises annotating the reference object and the body part in the obtained training data set, to generate an annotated training data set.
In an example, in each image of the training data set, the image pixels of a particular class or particular classes in the training data set are annotated to generate an expected segmentation mask output. The annotated training data set is input to the S-DNN. Each example in the training data set input to the S-DNN has (i) a training image (input) and (ii) an annotated training segmentation mask showing image pixels of the body part class (expected output) in the training image. The S-DNN learns to map each input to each output using a possible hypothesis function.
In a training data set to the OD-DNN, the method comprises annotating the reference object in each image using annotation techniques such as by using the bounding box. As shown in
It is advantageous to modify the training data set to increase or augment the training set size, and hence the accuracy of model predictions. In some implementations, the method comprises generating different versions of each image in the training data set, using image augmentation techniques such as image translation and image flipping. Image augmentation also addresses the issue of overfitting of S-DNN and OD-DNN. With image augmentation, it is possible to obtain heterogeneous data that helps the models learn different patterns, hence avoiding overfitting.
In step 708, the method comprises dividing or splitting a part of the annotated training data set into a validation data set. A part of the annotated training data set is chosen as the validation data set. It is thus ensured that the training and validation sets are obtained using the same distribution of data. This subset is used to evaluate the performance of the S-DNN and OD-DNN in their predictions.
In step 710, the method comprises inputting the annotated training data set to the OD-DNN and the S-DNN such that the OD-DNN and the S-DNN learn to detect the reference object in the input image and process the detected reference object to predict a pixel dimension of the reference object, and to predict a segmentation mask of each image, respectively. The segmentation mask differentiates the image pixels of the ROI from the background in the image.
Step 712 comprises validating the segmentation mask and the pixel dimension of the reference object learnt by the trained S-DNN and OD-DNN, respectively, using the validation data set.
In an example, a trained YOLO OD-DNN achieves a mAP score of 0.70 on the validation data set. For each image in the validation set, the YOLO OD-DNN detects the reference object and predicts pixel co-ordinates A, B, C, D of a bounding box bounding the reference object. A trained DeepLab S-DNN achieves a mIOU score of 0.75 on the validation data set. For each image in the validation set, the DeepLab S-DNN predicts the segmentation mask showing image pixels of the ROI/body part.
Step 714 comprises updating the neural network parameter values of the S-DNN and OD-DNN based on the validation. The updated parameter values can further be used for testing the OD-DNN and S-DNN using a test data set comprising at least one image showing the body part and the reference object.
In some implementations, the pixel dimension of the reference object learnt by the OD-DNN is a single pixel size, preferably a measurement per pixel, calculated based on the predefined dimension and the predicted pixel dimension.
System 800 includes a training engine 801 which has access to a memory 802 shared by the one or more computers in the system for training neural networks S-DNN and OD-DNN. In some implementations, training engine 801 is a distributed processor.
Training engine 801 may be configured to initialize the neural network parameters of the S-DNN and the OD-DNN. It retrieves the parameters from memory 801. Memory 801 may store trained parameter values of other neural networks with the same architecture as the S-DNN and OD-DNN, respectively, and which have been trained to perform similar predictions. If the S-DNN and OD-DNN build on pre-trained models, memory 801 may store trained parameter values of the pre-trained S-DNN and OD-DNN, respectively.
Training engine 801 may be further configured to obtain the training data set stored in memory 802, including the annotated training set. In some implementations, the training set stored in memory 802 is periodically updated as mentioned above. The continually updated training set can be retrieved by the training engine 801. Training engine 801 further obtains the pixel dimension of the reference object and the segmentation mask of each image in the training set predicted by the OD-DNN and S-DNN, respectively, validates the prediction (checks whether training criteria are satisfied, in some implementations, iteratively) and updates the neural network parameters of the S-DNN and the OD-DNN based thereupon, to reach optimized neural network parameters of the S-DNN and the OD-DNN. The trained neural networks S-DNN and the OD-DNN can be used to control an electronic device to obtain and/or output a measurement of a dimension of a body part in an input image. The optimized neural network parameters are used in a next initialization by training engine 801.
This specification uses the term “configured” in connection with systems and computer program components. For a system of one or more computers to be configured to perform particular operations or actions means that the system has installed on it software, firmware, hardware, or a combination of them that in operation cause the system to perform the operations or actions. For one or more computer programs to be configured to perform particular operations or actions means that the one or more programs include instructions that, when executed by data processing apparatus, cause the apparatus to perform the operations or actions.
Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, in tangibly embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a tangible non-transitory storage medium for execution by, or to control the operation of, data processing apparatus. The computer storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them. Alternatively or in addition, the program instructions can be encoded on an artificially-generated propagated signal, e.g., a machine generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus.
The terms “computer”. “processor”. “data processing apparatus”. “electronic device” etc. refer to data processing hardware and encompasses all kinds of one or more apparatus, devices, and machines for processing data. The apparatus can also be, or further include, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). The apparatus can optionally include, in addition to hardware, code that creates an execution environment for computer programs, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
A computer program, which may also be referred to or described as a program, software, a software application, an app, a module, a software module, a script, or code, can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages; and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data, e.g., one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple coordinated files, e.g., files that store one or more modules, sub-programs, or portions of code. A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a data communication network.
In this specification the term “engine” is used broadly to refer to a software-based system, subsystem, or process that is programmed to perform one or more specific functions. Generally, an engine will be implemented as one or more software modules or components, installed on one or more computers in one or more locations. In some cases, one or more computers will be dedicated to a particular engine; in other cases, multiple engines can be installed and running on the same computer or computers.
The processes and logic flows described in this specification can be performed by one or more programmable computers executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by special purpose logic circuitry, e.g., an FPGA or an ASIC, or by a combination of special purpose logic circuitry and one or more programmed computers.
Computers suitable for the execution of a computer program can be based on general or special purpose microprocessors or both, or any other kind of central processing unit. Generally, a central processing unit will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a central processing unit for performing or executing instructions and one or more memory devices for storing instructions and data. The central processing unit and the memory can be supplemented by, or incorporated in, special purpose logic circuitry. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device, e.g., a universal serial bus (USB) flash drive, to name just a few.
Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks: magneto-optical disks; and CD-ROM and DVD-ROM disks.
To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer or electronic device having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well: for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user: for example, by sending web pages to a web browser on a user's device in response to requests received from the web browser. Also, a computer can interact with a user by sending text messages or other forms of message to a personal device, e.g., a smartphone that is running a messaging application, and receiving responsive messages from the user in return.
Data processing apparatus or computers for implementing machine learning models can also include, for example, special-purpose hardware accelerator units for processing common and compute-intensive parts of machine learning training or production, i.e., inference, workloads.
Machine learning models can be implemented and deployed using a machine learning framework, e.g., a TensorFlow framework, a Microsoft Cognitive Toolkit framework, an Apache Singa framework, or an Apache MXNet framework.
Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface, a web browser, or an app through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (LAN) and a wide area network (WAN), e.g., the Internet.
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, a server transmits data, e.g., an HTML page, to a user device, e.g., for purposes of displaying data to and receiving user input from a user interacting with the device, which acts as a client. Data generated at the user device, e.g., a result of the user interaction, can be received at the server from the device.
While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any invention or on the scope of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub-combination.
Similarly, while operations are depicted in the drawings and recited in the claims in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system modules and components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
Particular embodiments of the subject matter have been described. Other embodiments may be possible, as long as they are within the scope of the appended claims. The listed embodiments may further be combined. The processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some cases, multitasking and parallel processing may be advantageous.
Number | Date | Country | Kind |
---|---|---|---|
202141054331 | Nov 2021 | IN | national |
21212692.4 | Dec 2021 | EP | regional |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2022/082801 | 11/22/2022 | WO |