GENERATING REALISTIC SYNTHETIC SEISMIC DATA ITEMS

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for generating realistic synthetic seismic data items. One of the methods includes obtaining a plurality of synthetic seismic data items; obtaining a plurality of real seismic data items; processing each of the plurality of synthetic seismic data items using a machine learning model; processing each of the plurality of real seismic data items using the same machine learning model; determining a range for values for one or more parameters of a synthetic seismic data generator by comparing the synthetic seismic data items and the real seismic data items in an embedding space of the machine learning model; and selecting, as realistic synthetic seismic data items, a plurality of synthetic seismic data items that have been generated with a respective combination of values for the one or more parameters that is within the determined range.

BACKGROUND

This specification relates to simulation and analysis of seismic surveys.

A seismic survey uses seismic waves to create seismic data items (e.g., seismic images) of the earth through analysis of vibrations from those seismic waves. The seismic survey can predict subsurface discontinuities (e.g., faults), layering, probable rock structures, etc. The seismic survey is conducted by deploying an array of energy sources and an array of receivers in an area of interest. The array of energy sources can be dynamite, a specialized air gun or a seismic vibrator. The energy that travels within the subsurface of the earth are the seismic waves, and the seismic waves are recorded at specific locations on the surface of the earth by the receivers (e.g., geophones or hydrophones).

A seismic survey simulation uses a synthetic seismic data generator that models the earth properties to generate synthetic seismic images that simulate the seismic images from real seismic surveys. Because the seismic surveying process can be complicated and the subsurface geology can be complex, it is difficult to generate realistic synthetic seismic images, especially for a three-dimensional (3D) seismic survey.

SUMMARY

This specification describes systems and techniques for generating realistic synthetic seismic data items and training a seismic data analysis model on the realistic synthetic seismic data items.

In general, one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of obtaining a plurality of synthetic seismic data items, wherein each synthetic seismic data item has been generated with a respective combination of values for one or more parameters of a synthetic seismic data generator; obtaining a plurality of real seismic data items; processing each of the plurality of synthetic seismic data items using a machine learning model, wherein the machine learning model is configured to process an input seismic data item to generate an embedding; processing each of the plurality of real seismic data items using the same machine learning model; determining a range for the values for the one or more parameters by comparing the synthetic seismic data items and the real seismic data items in an embedding space of the machine learning model; and selecting, as realistic synthetic seismic data items, a plurality of synthetic seismic data items that have been generated with a respective combination of values for the one or more parameters that is within the determined range. Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods. 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.

The foregoing and other embodiments can each optionally include one or more of the following features, alone or in combination. In particular, one embodiment includes all the following features in combination. Selecting, as the realistic synthetic seismic data items, the plurality of synthetic seismic data items that have been generated with the respective combination of values for the one or more parameters that is within the determined range include: selecting, as the realistic synthetic seismic data items, from the obtained plurality of synthetic seismic data items, the plurality of synthetic seismic data items that have been generated with the respective combination of values for the one or more parameters that is within the determined range. Selecting, as the realistic synthetic seismic data items, the plurality of synthetic seismic data items that have been generated with the respective combination of values for the one or more parameters that is within the determined range includes: generating, as the realistic synthetic seismic data items, new synthetic seismic data items using the synthetic seismic data generator by setting the respective combination of values for the one or more parameters within the determined range. Determining the range for the values of the one or more parameters includes determining the range, wherein a distance between an embedding of a synthetic seismic data item generated with a respective combination of values for the one or more parameters that is within the range and an embedding of a real seismic data item is smaller than a threshold. Determining the range for the values for the one or more parameters includes determining the range based on one or more earth properties of the plurality of real seismic data items. The actions further include, before processing each of the plurality of real seismic data items using the machine learning model, processing the plurality of real seismic data items such that the plurality of real seismic data items appear to be data items drawn from a distribution of synthetic seismic data items. The actions further include, before processing each of the plurality of synthetic seismic data items using the machine learning model, processing the plurality of synthetic seismic data items such that the plurality of synthetic seismic data items appear to be data items drawn from a distribution of real seismic data items. The actions further include training a seismic data analysis model on the realistic synthetic seismic data items, wherein the realistic synthetic seismic data items generated by the synthetic seismic data generator are associated with respective labels. The seismic data analysis model analyzes one or more earth properties, including: faults, channels, facies, and horizons. The actions further include training the seismic data analysis model on: (i) the realistic synthetic seismic data items and the respective labels; and (ii) a plurality of real seismic data items, wherein the plurality of real seismic data items do not have labels. The actions further include training the machine learning model using the plurality of the synthetic seismic data items and the plurality of real seismic data items. The machine learning model is an encoder of an autoencoder, wherein the autoencoder includes the encoder that processes the input seismic data item to generate the embedding, and a decoder that processes the embedding to regenerate the input seismic data item. Selecting, as the realistic synthetic seismic data items, the plurality of synthetic seismic data items that have been generated with the respective combination of values for the one or more parameters that is within the determined range includes: selecting the plurality of synthetic seismic data items using a reinforcement learning model.

In general, another innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of generating a plurality of data item pairs that each includes a first synthetic seismic data item and a second synthetic seismic data item, the generating including, for each data item pair: generating the first synthetic seismic data item that simulates a real seismic survey of a region of a planet; and generating the second synthetic seismic data item that simulates a simplified version of the real seismic survey of the same region of the planet; and training a machine learning model on training data that includes the data item pairs, wherein the machine learning model is configured to: process an input seismic data item of a region of the planet to generate an output synthetic seismic data item that is a prediction of seismic data under a real seismic survey of the same region of the planet, or process an input seismic data item of a region of the planet to generate an output synthetic seismic data item that is a prediction of seismic data under a simplified version of the real seismic survey of the same region of the planet.

The foregoing and other embodiments can each optionally include one or more of the following features, alone or in combination. In particular, one embodiment includes all the following features in combination. Generating the first synthetic seismic data item that simulates the real seismic survey includes generating the first synthetic seismic data item that simulates a first number of sources and receivers on the planet, wherein generating the second synthetic seismic data item that simulates the simplified version of the real seismic survey includes generating the second synthetic seismic data item that simulates a second number of sources and receivers on the planet, wherein the first number of sources and receivers is more than the second number of sources and receivers. Training the machine learning model on the training data includes: training a denoising machine learning model that is configured to remove realistic noise from the input seismic data item, wherein the input seismic data item is a real seismic data item. Training the machine learning model on the training data includes: training a style transfer neural network that is configured to generate or remove realistic noise from the input seismic data item. The actions further include receiving a real seismic data item; and processing the real seismic data item using the trained machine learning model to generate a processed real seismic data item, wherein the processed real seismic data item is similar to a synthetic seismic data item. The actions further include processing the processed real seismic data item using a seismic data analysis model, wherein the seismic data analysis model is trained on a plurality of synthetic seismic data items. The seismic data analysis model is a fault segmentation model.

The systems and techniques can generate realistic synthetic seismic data items (e.g., seismic images, velocity models) of the earth using a synthetic seismic data generator by comparing a plurality of generated synthetic seismic data items and real seismic data items using an image similarity measure (e.g., in an embedding space of an autoencoder). A seismic data analysis model (e.g., a machine learning model) for seismic data analysis can be trained on the realistic synthetic seismic data items and their respective labels. Because the realistic synthetic seismic data items appear to be data items drawn from the distribution of the real seismic data items obtained in real seismic surveys, the system can reduce the domain gap between the training data (e.g., the realistic synthetic seismic data items) and the testing data (e.g., the real seismic data items) of the seismic data analysis model. Thus, the seismic data analysis model trained on the realistic synthetic seismic data items can be readily applied to real seismic images and can generate accurate seismic data analysis results. For example, a fault segmentation model (e.g., a model that uses a deep neural network for image segmentation) can be trained on realistic synthetic seismic images and their respective labels, and once trained, can perform well on a real seismic image obtained from a real seismic survey.

The systems and techniques can generate a machine learning model that can perform domain transfer from real seismic images to synthetic images, or from synthetic images to realistic synthetic images, by training the machine learning model on a plurality of pairs of synthetic images of the same region of the earth. Each pair of images includes a synthetic image with realistic noise generated using computationally intense simulation (e.g., finite difference schemes), and a synthetic image of the same region of earth with less noise and with less computation. Thus, the system can preprocess a real seismic image (e.g., reducing noise, or changing to a style of synthetic images) before inputting the real seismic image into a seismic data analysis model trained on synthetic images. The system can also generate realistic synthetic images from synthetic images and train a seismic data analysis model on the realistic synthetic images, and the trained seismic data analysis model can be readily applied to real seismic images.

DETAILED DESCRIPTION

The technology in this specification is related to generating realistic synthetic seismic data items and using the realistic synthetic seismic data items for training a seismic data analysis model and using the seismic data analysis model to perform inferences on real seismic data items obtained from a seismic survey.

FIG.1is a diagram of an example system100.

The system100includes a seismic measurement system108, and a seismic data analysis system112. The seismic measurement system108can be configured to perform a seismic survey of a planet (e.g., the earth102). The seismic data analysis system112can be configured to perform analysis on real seismic data110obtained from the seismic survey and to generate seismic data analysis result114.

The seismic measurement system108includes one or more energy sources (e.g., an energy source104) and one or more receivers (e.g., a receiver106) in an area of interest. In some implementations, the seismic measurement system108can include an array of energy sources and an array of receivers that can be configured to conduct a three-dimensional (3D) seismic survey. The one or more energy sources104can generate energy (i.e., seismic waves) that travels within the subsurface of the earth. The seismic waves are recorded at specific locations on the surface of the earth by the receivers106. The seismic measurement system108generates real seismic data110(e.g., one or more seismic images) through analysis of vibrations from the seismic waves recorded by the receivers106.

The real seismic data110includes seismic data generated in a real seismic survey and not by computer simulations. The real seismic data110can include one or more seismic data items. Each seismic data item can be a seismic image, e.g., a two-dimensional or three-dimensional image of a region of the subsurface of the earth. The real seismic data110can characterize the geological features of the planet, such as subsurface discontinuities (e.g., faults), layering, and probable rock structures.

For example, a seismic reflection survey can provide a seismic image of the subsurface of the earth generated due to density contracts between rock layers. In the seismic image, the interfaces between layers of different densities can generate continuous reflections. Faults are prominent geological features formed in the upper part of the earth's crust due to brittle deformation. The mapping of faults can be important in predicting the distribution and size of natural resources, or mitigating risks associated with geo-hazards. Faults can be recognized in a seismic image because the faults can cause discontinuities in these otherwise continuous reflections.

The real seismic data110can be provided to the seismic data analysis system112. The seismic data analysis system112can perform seismic analysis of the planet (e.g., the earth102) based on the received real seismic data110, and can generate a seismic data analysis result114. The seismic data analysis system112can include a seismic data analysis model that localizes or segments (e.g., delineates) one or more geological features in the real seismic data110. The seismic data analysis result114can include a detection result (e.g., a bounding box) or a segmentation result (e.g., an instance segmentation mask) of the one or more geological features. For example, the seismic data analysis system112can include a fault segmentation model that can detect locations in the real seismic data110that corresponds to faults.

In some implementations, the seismic data analysis system112can include a machine learning model that can be trained to perform geological feature analysis. The machine learning model can receive the real seismic data110as input and can generate the seismic data analysis result114. The machine learning model can include a deep neural network model that can be trained to analyze a seismic image. The deep neural network model can include one or more of a classification model, an object detection model, and a segmentation model. Examples of the deep neural network model includes: 3D U-net (Çiçek, Özgün, et al. “3D U-Net: learning dense volumetric segmentation from sparse annotation.”International conference on medical image computing and computer-assisted intervention. Springer, Cham, 2016), transformers (Hatamizadeh, Ali, et al. “Unetr: Transformers for 3d medical image segmentation.” Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision. 2022), CNN-RNN model (Chen, Yani. Deep Learning based 3D Image Segmentation Methods and Applications. Ohio University, 2019), CNN-Transformer (Baker, Bowen, et al. “Video PreTraining (VPT): Learning to Act by Watching Unlabeled Online Videos.” arXiv preprint arXiv:2206.11795 (2022)), and other deep learning models for 3D segmentation tasks (Wang, Andong, et al. “A novel deep learning-based 3D cell segmentation framework for future image-based disease detection.” Scientific reports 12.1 (2022): 1-15).

The machine learning model can be trained on training data that includes a plurality of training examples and their respective labels. By leveraging a large amount of labeled training data, a seismic data analysis system112that uses a machine learning model can provide accurate seismic data analysis results. For example, a fault segmentation model (e.g., a model that uses a deep neural network for image segmentation) can be trained on seismic images and their respective labels, and once trained, can perform a fault segmentation on a real seismic image obtained from a real seismic survey.

The seismic data analysis system112can implement the operations of a machine learning model (e.g., operations of each layer of a neural network trained to make seismic data analysis). Thus, the seismic data analysis system112can include one or more computing devices having software or hardware modules that implement the respective operations of each layer of the neural network according to an architecture of the neural network.

The seismic data analysis system112can implement the machine learning model by loading a collection of model parameter values116that are received from a training system120. Although illustrated as being logically separated, the model parameter values116and the software or hardware modules performing the operations may actually be located on the same computing device or, in the case of an executing software module, stored within the same memory device.

The seismic data analysis system112can use hardware acceleration or other special-purpose computing devices to implement the operations of the machine learning model (e.g., one or more layers of the neural network). For example, some operations of some layers may be performed by highly parallelized hardware, e.g., by a graphics processing unit or another kind of specialized computing device. In other words, not all operations of each layer need to be performed by central processing units (CPUs) of the seismic data analysis system112.

In some implementations, the system100can include a training system120that trains the machine learning model being used in the seismic data analysis system112. The training system120is typically hosted within a data center138, which can be a distributed computing system having hundreds or thousands of computers in one or more locations.

The seismic measurement system108can provide real seismic data110to the training system120. The training system120can use the real seismic data110as training data125. However, because real seismic data110can be very noisy, it can be difficult, infeasible and time intensive to obtain a label for real seismic data110. Also, it can be difficult or infeasible to verify whether a label of a geological feature in the real seismic data110is correct or not. Because obtaining real seismic data110can be time consuming due to the need to perform seismic surveys, it can be infeasible to obtain large amounts of real seismic data110.

To address these issues, the system100(or the training system120) can include a synthetic seismic data generator122that generates synthetic seismic data124.

The synthetic seismic data generator122can perform a computer simulation of a seismic survey by modeling the geological features of the planet and modeling the seismic survey process. For example, a synthetic seismic data generator122can allow a user to specify one or more geological features, such as layers, faults, river channels, folding and erosion. The synthetic seismic data generator122can generate synthetic seismic data124(e.g., a synthetic seismic image) that simulates a real seismic data110obtained from a real seismic survey. In some implementations, the synthetic seismic data generator122can create a synthetic velocity model, run a synthetic survey, and lastly, create a synthetic seismic image from the synthetic survey. In some implementations, the synthetic seismic data generator122can create a synthetic velocity model and can create the synthetic seismic image directly based on the velocity model without a need to run a synthetic survey. For example, the synthetic seismic data generator122can generate a synthetic seismic data item as an end result without generating a realistic survey sequence. For example, the synthetic seismic data generator122can generate a synthetic seismic image by convolving a velocity model with a wavelet, without generating a corresponding realistic survey sequence.

It can be desirable to generate synthetic seismic data110that has similar appearance or similar style as the real seismic data110. An example of existing synthetic seismic data generators include SEAM (https://seg.org/SEAM/home). However, because a real seismic surveying process can be complicated, it can be computationally complex and time consuming to generate realistic synthetic seismic images by the synthetic seismic data generator122, especially for a three-dimensional (3D) seismic survey.

For example, the synthetic seismic data generator122can use a relatively complex model to generate realistic synthetic seismic data (e.g., with more noise and with curved lines) that appear to be similar to the real seismic data110, but this simulation process can take a long period of time (e.g., days or months). Alternatively, the synthetic seismic data generator122can use a relatively less complex model to generate less realistic synthetic seismic data (e.g., with less noise and with straight lines) that appears less similar to the real seismic data110. In some implementations, a synthetic seismic data generator can generate a synthetic seismic data item by applying a Laplacian to a velocity model, followed by convolving the Laplacian with a wavelet. In some implementations, a more complex synthetic seismic data generator can use a more complex simulation engine that describes the physics more comprehensively, e.g., modeling the migration data of the earth. For example, in addition to modeling the different imaging techniques, such as Kirchhoff, one-way wave equation, and finite differences, a more complex synthetic seismic data generator can model the anisotropic, elastic, and visco-elastic of the physics. The more complex synthetic seismic data generator can include more sophisticated earth property models, and can increase the complexity of the generator and the computation cost of the generator.

The synthetic seismic data generator122can provide a label for the synthetic seismic data based on the models of the geological features of the planet. The label for the synthetic seismic data can be an accurate label that includes geological feature information and can be easily obtained. Because the seismic data is synthetic, the generator122can generate labels that are guaranteed to be accurate, instead of getting noisy labels for the real seismic data. For example, a user can specify the location, size or shape of a fault as an input to the synthetic seismic data generator122. After generating the synthetic seismic data124that simulates a seismic image of the fault, the synthetic seismic data generator122can provide a label for the seismic image of the fault, and the label can include the location, size or shape information of the fault specified by the user.

The training system120can include a training machine learning subsystem126that performs the training of a machine learning model. The training machine learning subsystem126can implement the operations of a machine learning model. For example, the training machine learning subsystem126can implement the operations of each layer of a neural network that is designed to generate a seismic data analysis result114from an input seismic data item (e.g., a real seismic image or a synthetic seismic image). The training machine learning subsystem126includes a plurality of computing devices having software or hardware modules that implement the respective operations of a machine learning model (e.g., according to an architecture of a neural network).

The training machine learning model generally has the same architecture and parameters as the machine learning model used in the seismic data analysis system112. However, the training system120need not use the same hardware to compute the operations of the machine learning model. In other words, the training system120can use CPUs only, highly parallelized hardware, or some combination of these.

The training machine learning subsystem126can compute the operations of the machine learning model using current parameter values134of the machine learning model stored in a collection of model parameter values136. Although illustrated as being logically separated, the model parameter values136and the software or hardware modules performing the operations may actually be located on the same computing device or on the same memory device.

The training machine learning subsystem126can receive training examples123as input. The training examples123can include labeled training data125. Each of the training examples123includes a synthetic seismic data item (e.g., a seismic image in 2D or 3D) as well as one or more labels that indicate one or more geological features in the synthetic seismic data item. For example, a training example123can include a seismic image and a segmentation mask for a fault in the seismic image.

The training machine learning subsystem126can generate, for each training example123, a prediction128using a seismic data analysis machine learning model that is being trained by the training machine learning subsystem126. The prediction128can include a seismic data analysis result for one or more geological features of a region of a planet, such as subsurface discontinuities (e.g., faults), layering, and probable rock structures. For example, the prediction128can include a bounding box or a segmentation mask of a geological feature (e.g., a fault) detected in the seismic image, a likelihood score indicating the likelihood that a geological feature exists in the seismic image, or a combination of the above.

A training engine130analyzes the predictions128and compares the predictions128to the labels in the training examples123using a loss function, e.g., a mean-squared error loss, a cross entropy loss, etc. The training engine130then generates, based on the value of the loss function, updated model parameter values132by using an appropriate updating technique, e.g., stochastic gradient descent with backpropagation. Then training engine130can then update the collection of model parameter values136using the updated model parameter values132.

After training is complete, the training system120can provide a final set of model parameter values118to the machine learning model included in the seismic data analysis system112for use in generating seismic data analysis results114. The training system120can provide the final set of model parameter values118by a wired or wireless connection to the seismic data analysis system112.

In some implementations, the system100can be configured to generate realistic synthetic seismic data items of the earth. The system can compare a plurality of synthetic seismic data items, e.g., the synthetic seismic data124, and a plurality of real seismic data items, e.g., the real seismic data110, using an image similarity measure.

For example, the system can compare the synthetic seismic data items and the real seismic data items in an embedding space of an autoencoder. The system can process each of the plurality of synthetic seismic data items using an encoder and the system can process each of the plurality of real seismic data items using the same encoder. The autoencoder can include the encoder that processes an input seismic data item to generate an embedding, and a decoder that processes the embedding to regenerate the input seismic data item.

The system can determine a range for one or more parameters of the synthetic seismic data generator122and the synthetic seismic data items generated with a respective combination of values for the one or more parameters that are within the determined range can be the realistic synthetic seismic data items.

A seismic data analysis model (e.g., a machine learning model) of the seismic data analysis system112can be trained on the realistic synthetic seismic data items and their respective labels. Because the realistic synthetic seismic data items appear to be data items drawn from the distribution of the real seismic data items obtained in real seismic surveys, the system can reduce the domain gap between the training data (e.g., the realistic synthetic seismic data items) and the testing data (e.g., the real seismic data110) of the seismic data analysis model. Thus, the seismic data analysis model trained on the realistic synthetic seismic data items can be readily applied to real seismic images and can generate accurate seismic data analysis results.

In some implementations, the system100can generate a machine learning model that can perform domain transfer from real seismic data110to synthetic seismic data124, or from synthetic seismic data124to realistic synthetic data items. The system can train the machine learning model on a plurality of pairs of synthetic images of the same region of the earth. Each pair of images includes a synthetic image with realistic noise generated using computationally intense simulation (e.g., finite difference schemes), and a synthetic image of the same region of earth with less noise and with less computation.

The system can use the trained machine learning model to preprocess real seismic data110(e.g., reducing noise, or changing to a style of synthetic images) before inputting the real seismic data110into the seismic data analysis system112trained on synthetic seismic data124. The system can also generate realistic synthetic data items from synthetic seismic data124and train the seismic data analysis system112on the realistic synthetic items, such that the trained seismic data analysis system112can be readily applied to real seismic data110.

FIG.2illustrates an example of selecting realistic synthetic seismic data items. The example illustrates a technique that determines the range for the values for one or more parameters of a synthetic seismic data generator by comparing synthetic seismic data items and real seismic data items in an image similarity measure. The process will be described as being performed by an appropriately programmed computer system, e.g., the system100ofFIG.1.

The system includes a synthetic seismic data generator122that can be configured to generate a plurality of synthetic seismic data items204. The synthetic seismic data generator122includes one or more parameters202. The parameters202can include properties of the earth, e.g., number of depositions, number of layers, number of faults, and parameters of the faults. The parameters202can be adjusted to configure the computer simulation of a seismic survey (e.g., imaging) process, e.g., convolution with wavelet, physics simulation, etc. The parameters202can be adjusted to result in different image quality (e.g., noise level) and image appearance of the resulting synthetic seismic images. The parameters202can be parameters for the models of the earth properties, such as geological properties in different basins of the earth (e.g., isotropy or anisotropy of the earth, number of faults, and angle for each fault), different earth environments (e.g., velocities of geological movements), etc. For example, the parameters202can include the length, azimuth, and shape of a fault, the rugosity of a river channel, the interbed interval and variability of a depositional layer, depositional spatial variability, wavelet frequency, etc. In some implementations, the parameters202can include hundreds or thousands of parameters that collectively determine the earth model, the image quality, and image appearance of the synthetic seismic data items204.

The system can obtain a plurality of synthetic seismic data items204(e.g., synthetic seismic images) generated by the synthetic seismic data generator122. Each synthetic seismic data item has been generated with a respective combination of values for one or more parameters of the synthetic seismic data generator122. For example, the synthetic seismic data generator can include a first parameter that can have a value ranging between 0 and 10 and a second parameter that can have a value ranging between 1 and 100. Each synthetic seismic data item can be generated with a respective combination of a first value for the first parameter sampled from the range between 0 and 10 and a second value for the second parameter sampled from the range between 1 and 100.

The system can use one or more image similarity measures to assess how realistic the synthetic seismic data items204are and can determine a range for the parameters202of the synthetic seismic data generator122to select more realistic synthetic seismic data items. Examples of image similarity measures include deep neural network methods (e.g., an embedding space determined by a trained autoencoder, a trained convolutional neural network with Triplet Loss), image descriptors (e.g., SIFT, SURF, HoG, etc.), and other metrics such as Mean Squared Error (MSE), Peak Signal-to-Noise Ratio (PSNR), Structural Similarity Index (SSIM).

The system can include an encoder208that can be configured to process each of the plurality of synthetic data items204. The encoder208can be an encoder included in a trained autoencoder. Generally, an autoencoder is a type of neural network for unsupervised learning and the autoencoder includes an encoder and a decoder. Autoencoders operate by taking in data, compressing and encoding the data by the encoder, and then reconstructing the data from the encoded representation or an embedding using the decoder. An autoencoder can provide an image similarity measure in the embedding space of the autoencoder.

In our implementations, the autoencoder can include the encoder208that processes an input seismic data item to generate an embedding, and a decoder that processes the embedding to regenerate the input seismic data item. The autoencoder can be trained using a plurality of synthetic seismic data items and a plurality of real seismic data items. During training, the encoder generates an embedding from an input seismic data item and the decoder generates a reproduced seismic data item from the embedding. Parameters of the autoencoder can be updated until the reproduced seismic data item is as close as possible to the input seismic data item, e.g., to minimize a reconstruction error between input seismic data items and the corresponding reproduced seismic data items generated by the decoder. After training is completed, the encoder208of the autoencoder can be used to generate an embedding of an input seismic data item.

The encoder208can include any type of neural network model that can be configured to generate features of an input seismic data item. For example, the encoder208can be a convolution neural network that includes a plurality of convolutional layers and can be configured to process an input seismic image.

The system can process each synthetic seismic data item204using the encoder208to generate an embedding210of the respective synthetic seismic data item. An embedding, as used in this specification, is a numeric representation of a synthetic seismic data item and can characterize features of the synthetic seismic data item. In particular, an embedding is a numeric representation in an embedding space, i.e., an ordered collection of a fixed number of numeric values, where the number of numeric values is equal to the dimensionality of the embedding space. For example, the embedding can be a vector of floating point or other types of numeric values. Generally, the dimensionality of the embedding space is much smaller than the number of numeric values in the synthetic seismic data represented by a given embedding. The embeddings210of the synthetic seismic data items can represent the features of each respective synthetic seismic data item in an embedding space of the encoder208.

The system can include a seismic measurement system108that generates real seismic data items206. The system can use the same encoder208that processes the synthetic seismic data items204to process the real seismic data items206. The system can process each real seismic data item206using the encoder208to generate an embedding212of the respective real seismic data item. The embeddings212of the real seismic data items can represent the features of each respective real seismic data item in the embedding space of the encoder208. Thus, the embeddings212of the real seismic data items and the embeddings210of the synthetic seismic data items are in the same embedding space of the encoder208.

The system can compare the real seismic data items206and the synthetic seismic data items204in an image similarity measure (e.g., in the embedding space of the autoencoder) such that the system can find a way to select some synthetic data items that are similar to the real seismic data items. For example, the system can select, from a “warehouse” of previously generated synthetic seismic data items, the synthetic data items that are similar to the real seismic data items. The “warehouse” of the previously generated synthetic seismic data items may or may not include the synthetic seismic data items204. As another example, the system can generate new synthetic data items that are similar to the real seismic data items. The selected or generated synthetic data items that are similar to the real seismic data items can be included in a training set, and a seismic data analysis model can be trained on the training set.

In general, a user can provide to the system real seismic data items obtained from a seismic survey of a real world region of interest. The system can be configured to generate realistic synthetic seismic data items that are similar to the real seismic data items, and the realistic synthetic seismic data items can have accurate labels.

In some implementations, the system can determine the range215for the value for the one or more parameters202by comparing the synthetic seismic data items204and the real seismic data items206in the embedding space of the encoder208. That is, the system can compare the embeddings210of the synthetic seismic data items210and the embeddings212of the real seismic data items, and determine the range for the parameters202such that the synthetic seismic data items have similar embeddings or image features as the real data items generated from real seismic surveys.

In some implementations, the system can determine the range215for the value for the one or more parameters202by collecting information from a seismic image. For example, the system can process an existing seismic image, e.g., a realistic seismic image, through horizontal, fault, and channel detection, to obtain meta-data of the existing seismic image. The system can use the meta-data to constrain the synthetic seismic data generator122. In some implementations, a human can manually collect the meta-data from the existing seismic image.

In some implementations, the system can determine the range215for the value for the one or more parameters202by comparing the synthetic seismic data items204and the real seismic data items206in the embedding space of the encoder208and by collecting information from a seismic image and use the information to constrain the synthetic seismic data generator122.

In some implementations, the parameter range determination module214can be a learned machine learning model, a blackbox optimizer, or other types of optimizer. More details regarding parameter range determination using an optimizer is described below in connection withFIG.3.

Utilizing the ranges for the parameters, the system can obtain realistic synthetic seismic data items that are close to the real seismic data items (e.g., seismic images) generated from the real seismic surveys in the embedding space of the encoder208. Therefore, the system can reduce the domain gap between the training data (e.g., the synthetic seismic data items) and the testing data (e.g., the real seismic data items) of a seismic data analysis model used by the seismic data analysis system112inFIG.1.

The system can include a realistic synthetic seismic data selection module216. The system can select, as realistic synthetic seismic data items217, a plurality of synthetic seismic data items that have been generated with a respective combination of values for the one or more parameters that is within the determined range215. The realistic synthetic seismic data item217can have similar appearance or image features as real seismic images. For example, the realistic synthetic seismic data items217(e.g., realistic seismic images) can have non-straight lines and similar noise patterns as in the real seismic data items (e.g., real seismic images) obtained from real seismic surveys.

For example, if the system determines that the range for the first parameter of the synthetic seismic data generator is between 2 and 4, and the range for the second parameter of the synthetic seismic data generator is between 40 and 55, the system can select, from a plurality of synthetic seismic data items that are already generated, a plurality of synthetic seismic data items that have been generated with a combination of a first parameter value between 2 and 4 and a second parameter value between 40 and 55. The selected plurality of synthetic seismic data items can be the realistic synthetic data items217that appear similar to the real seismic data items. An another example, the system can generate new synthetic seismic data items with a combination of a first parameter value between 2 and 4 and a second parameter value between 40 and 55, and the newly generated synthetic seismic data items can be the realistic synthetic data items217that appears similar to the real seismic data items.

In some implementations, the system can use a similar process to select a subset of synthetic seismic data items from a synthetic library that includes a plurality of synthetic seismic data items to match real seismic data items. The subset of the synthetic seismic data items can be used as a training set to train and tune a machine learning model for seismic analysis of a target area.

In some implementations, prior to being processed by the encoder208, the system can process the synthetic seismic data items204or the real seismic data items206, or both of them, using a machine learning model or other types of signal processing method to change the appearance of an input seismic data item. The training of the machine learning model that can change the appearance of the input seismic data item is described below in connection withFIG.4.

For example, the system can process a real seismic data item of a region of the planet using the machine learning model to generate an output synthetic seismic data item that is a prediction of seismic data under a simplified version of a real seismic survey of the same region. The system can generate an embedding of the output synthetic seismic data item and compare it with the embeddings of the synthetic seismic data items210. Because the output synthetic seismic data item is a prediction of seismic data under a simplified version of the real seismic survey, the system can more efficiently and more accurately determine the range for the parameters of the synthetic seismic data generator122.

As another example, the system can process a synthetic seismic data item of a region of the planet using the machine learning model to generate an output synthetic seismic data item that is a prediction of seismic data under a real seismic survey of the same region. The system can generate an embedding of the output synthetic seismic data item and compare the embedding with the embeddings of the real seismic data items212. Because the output synthetic seismic data item is a prediction of seismic data obtained under a real seismic survey, the system can more efficiently and more accurately determine the range for the parameters of the synthetic seismic data generator122.

FIG.3is a flow chart of an example process300for selecting realistic synthetic seismic data items. The process will be described as being performed by a system of one or more computers in one or more locations, appropriately programmed in accordance with this specification. For example, the system can be implemented in a machine learning training system, e.g., the training system120ofFIG.1, a seismic data analysis system, e.g., the seismic data analysis system112ofFIG.1, or a synthetic seismic data generator, e.g., the synthetic seismic data generator122ofFIG.1, or a combination of above.

The system obtains a plurality of synthetic seismic data items (302). Each synthetic seismic data item has been generated with a respective combination of values for one or more parameters of a synthetic seismic data generator. For example, each synthetic seismic data item can be a synthetic seismic image generated by a computer simulation program that is implemented in the synthetic seismic data generator.

The system obtains a plurality of real seismic data items (304). For example, each real seismic data item can include a seismic image of the earth obtained in a real seismic survey.

The system processes each of the plurality of synthetic seismic data items using a machine learning model (306). The machine learning model can be configured to process an input seismic data item to generate an embedding. The system can generate an embedding of each synthetic seismic data item by processing each synthetic seismic data item using the machine learning model.

In some implementations, the machine learning model can be an encoder of an autoencoder, wherein the autoencoder includes the encoder that processes the input seismic data item to generate the embedding, and a decoder that processes the embedding to regenerate the input seismic data item. In some implementations, the system can train the machine learning model using the plurality of the synthetic seismic data items and the plurality of real seismic data items. For example, during training, the system can update the parameters of the autoencoder (e.g., including the parameters of the encoder and the parameters of the decoder) such that the regenerated seismic data item is as close as possible to an input seismic data item which can be a synthetic or real seismic data item.

In some implementations, the machine learning model can be a classification machine learning model trained to perform a classification task on seismic data items. The system can generate an embedding of a seismic data item using the trained classification machine learning model. In some implementations, the machine learning model can be a generative adversarial network (GAN) model trained to perform an in-painting task on seismic data items. For example, the GAN model can be trained to fill in missing subvolumes in a seismic data item based on subvolumes around it. The system can generate an embedding of a seismic data item using the trained GAN model.

The system processes each of the plurality of real seismic data items using the same machine learning model (308). For example, the system can generate an embedding of each real seismic data item by processing each real seismic data item using the same encoder that the system uses to process the synthetic seismic data items. Therefore, the embeddings of the synthetic seismic data items and the embeddings of the real seismic data items are in the same embedding space of the autoencoder, and are ready for comparison.

The system determines a range for the values for the one or more parameters by comparing the synthetic seismic data items and the real seismic data items in the embedding space of the machine learning model (310).

For example, the system can perform a cluster analysis, or clustering, over the embeddings of the synthetic seismic data items to determine a plurality of clusters of the embeddings of the synthetic seismic data items. The system can also perform clustering over the embeddings of the real seismic data items to determine one or a few clusters of the embeddings of the real seismic data items. The system can select one or more clusters of the embeddings of the synthetic seismic data items that are close to a cluster of the real seismic data items, e.g., if the distance of the centers of the two clusters are less than a threshold. The system can determine the range for the values for the one or more parameters of the synthetic seismic data generator using the values for the one or more parameters that have been used to generate the synthetic seismic data items corresponding to the selected one or more clusters.

For example, the system can obtain embeddings of a plurality of real seismic data items. For each real seismic data item, the system can obtain a cluster of synthetic data items and each synthetic data item has an embedding with a distance from the embedding of the real seismic data item that is smaller than a threshold. The system can determine the range for the values of the one or more parameters of the synthetic seismic data generator using the parameters of the synthetic data items in the cluster.

In some implementations, the system can determine the range for the values for the one or more parameters using a blackbox optimizer (e.g., grid search, random search, or a model-based blackbox optimization algorithm). For example, the system can determine a set of synthetic seismic data items that are closest to the real seismic data items in the embedding space. The system can determine a first range based on the determined set of synthetic seismic data items. The system can generate a second range based on the first range such that the synthetics generated using the second range for the parameters are closer to the reals in the embedding space. As another example, the parameters can be the number of faults and possible angles for each fault. The system can perform a grid search by specifying possible numbers of faults (e.g., 1, 2, 3, and 4) and their respective angles (e.g., 75 degrees, 80 degrees, and 85 degrees). The system can generate a plurality of synthetic seismic data items using a combination of the values for the parameters. The system can determine a range for the parameters that correspond to synthetics that are close to the reals in the embedding space.

In some implementations, the system can determine the range such that a distance between an embedding of a synthetic seismic data item generated with a respective combination of values for the one or more parameters that is within the range and an embedding of a real seismic data item is smaller than a threshold. For example, for each real seismic data item, the system can determine the range of the parameters that corresponds to embeddings of the synthetic seismic data items that are within a threshold distance from the embedding of the real seismic data item. The system can aggregate the ranges and can determine a final range for the parameters (e.g., a union of the ranges or an intersection of the ranges).

In some implementations, the system can use a loss function to measure a distance between the real seismic data items and the synthetic seismic data items in the embedding space of the autoencoder. The system can generate updated values of the parameters by minimizing the value of the loss function, and the updated values of the parameters can be used to determine the range for the values for the parameters. For example, the system can generate the updated values of the parameters by using an appropriate updating technique, e.g., stochastic gradient descent with backpropagation through the encoder.

In some implementations, the system can determine the range for the parameters based on one or more earth properties of the plurality of real seismic data items. The one or more earth properties can include fault density range, rock property estimations, etc. For example, inversion techniques in geophysics can generate impedance information, which can be used to predict rock information, velocity information, etc. Based on the one or more earth properties determined from the real seismic data items obtained from real seismic surveys, the system can determine realistic or possible range for one or more parameters used in the synthetic seismic data generator. In some implementations, the system can determine the range based on both the one or more earth properties of the plurality of real seismic data items and based on comparing the synthetic seismic data items and the real seismic data items in an embedding space of the autoencoder.

The system selects, as realistic synthetic seismic data items, a plurality of synthetic seismic data items that have been generated with a respective combination of values for the one or more parameters that is within the determined range (312). In some implementations, the system can select the plurality of synthetic seismic data items using a reinforcement learning model. In some implementations, the system can select the plurality of synthetic seismic data items using other types of optimization methods. For example, the system can use a reinforcement learning model to make a synthetic seismic dataset look more similar to a real seismic dataset, or vice versa. The reinforcement learning model can have access to a list of augmentations (e.g., signal processing operations) and the system can use the reinforcement learning model to select an optimal set of operations and their ordering to make a synthetic seismic dataset look more similar to a real seismic dataset, or vice versa.

In some implementations, the system can select, as the realistic synthetic seismic data items, from the obtained plurality of synthetic seismic data items, the plurality of synthetic seismic data items that have been generated with the respective combination of values for the one or more parameters that is within the determined range. For example, referring toFIG.2, the system can select the realistic synthetic seismic data items217from the obtained plurality of synthetic seismic data items204, and the selected realistic synthetic seismic data items217have been generated with the respective combination of values for the one or more parameters that is within the determined range215. That is, the system can select the realistic synthetic seismic data items217from existing synthetic seismic data items204that have already been generated, without a need to generate new synthetic data items.

In some implementations, the system can generate, as the realistic synthetic seismic data items, new synthetic seismic data items using the synthetic seismic data generator by setting the respective combination of values for the one or more parameters within the determined range. For example, referring toFIG.2, the system can use the synthetic seismic data generator122to generate a new set of synthetic seismic data items by setting the respective combination of values for the one or more parameters within the determined range215. The newly generated synthetic seismic data items can have the desired image features or appearance as the real seismic data items. The newly generated synthetic seismic data items can be the realistic synthetic seismic data items217.

In some implementations, the realistic synthetic seismic data items can include both new synthetic seismic data items generated using the synthetic seismic data generator by setting the respective combination of values for the one or more parameters within the determined range, and a plurality of synthetic seismic data items that are selected from previously generated synthetic seismic data items and that have been generated with the respective combination of values for the one or more parameters that is within the determined range.

In some implementations, the system can train a seismic data analysis model on the realistic synthetic seismic data items generated by the synthetic seismic data generator. The realistic synthetic seismic data items can be associated with respective labels. Although the real seismic data items may not be associated with labels, the realistic synthetic seismic data items generated based on the real seismic data items using techniques described in the steps (302)-(312) can have accurate labels and the realistic synthetic seismic data items can have similar appearance as the real seismic data items. Because realistic synthetic seismic data items are generated by the synthetic seismic data generator, the system can obtain the respective labels for the realistic synthetic seismic data items. For example, the synthetic seismic data generator can provide a label for the synthetic seismic data based on the synthetic model. The label for the synthetic seismic data item can be an accurate label that includes geological feature information of a region of the earth and can be obtained from the synthetic seismic data generator. In some implementations, the system can obtain the labels from the model parameters of the synthetic seismic data generators and the generated synthetic data items. For example, the system can process the synthetic seismic images, the meta-data of the synthetic seismic images, or both. Because the realistic synthetic seismic data items are selected to have similar image features or appearance as real seismic data items, the seismic data analysis model trained on the realistic seismic data item can be applied on real seismic data items and can produce accurate seismic data analysis results.

The seismic data analysis model can be used by a seismic data analysis system (e.g., the seismic data analysis system112inFIG.1) to perform seismic analysis of a planet (e.g., the earth) on seismic data items (e.g., seismic images). For example, the seismic data analysis model can be trained to localize or segment (e.g., delineates) one or more geological features in a seismic image.

In some implementations, the system can perform a supervised training method or process to train the seismic data analysis model (e.g., a machine learning model such as a neural network model). The system can train the machine learning model on the realistic synthetic seismic data items selected with the determined range for the parameters of the synthetic seismic data generator, and the respective labels for the realistic synthetic seismic data items.

In some implementations, the seismic data analysis model can analyze one or more earth properties, including: faults, channels, facies, and horizons, etc. For example, the seismic data analysis model can be a fault analysis model that identifies one or more parameters of a fault, e.g., fault type, fault angle, fault slip. In some examples, the seismic data analysis model can be a fault segmentation model that can be trained to generate a segmentation mask of a detected fault. The system can train the seismic data analysis model (e.g., a deep neural network model that is configured to perform image segmentation) on the realistic synthetic seismic data items and their respective labels. The labels can include a ground truth earth property, e.g., a segmentation mask for each fault in the seismic data item (e.g., each seismic image), and can be provided by the synthetic seismic data generator. Once trained, the system can use the seismic data analysis model to analyze the one or more earth properties on real seismic data items obtained in real seismic surveys.

In some implementations, the system can train the seismic data analysis model on: (i) the realistic synthetic seismic data items and the respective labels; and (ii) a plurality of real seismic data items, and the plurality of real seismic data items do not have labels. The system can perform a semi-supervised training method or process to train the seismic data analysis model. For example, the system can train the seismic data analysis model using clustering. The system could cluster the labeled realistic synthetic seismic data items and the unlabeled real seismic data items. Within a cluster, if a seismic data item is labeled as having a particular earth property, the system can determine that other seismic data items in the cluster are likely having the same earth property. The system can use this technique to identify rock facies, e.g., identifying a particular facies type, such as sandstone. The system can use this technique to identify locations of river channels, chimneys, basalts, etc.

In some implementations, before processing each of the plurality of real seismic data items using the machine learning model, the system can process the plurality of real seismic data items such that the plurality of real seismic data items appear to be data items drawn from a distribution of synthetic seismic data items. The system can perform an image preprocessing process on the real seismic data items such that the statistical distribution of the real seismic data items are similar to the statistical distribution of the synthetic seismic data items. The system can compare the synthetic seismic data items and the preprocessed real seismic data items in the embedding space of the autoencoder. Thus, the system can more easily find synthetic seismic data items that are close to the preprocessed real seismic data items in the embedding space.

In some implementations, the system can perform image processing or computer vision algorithms on the real seismic data items such that the plurality of real seismic data items appear to be data items drawn from a distribution of synthetic seismic data items. For example, the system can perform a signal or image processing process, e.g., normalization or whitening, on the real seismic data items, e.g., to remove noise. In some implementations, the system can determine one or more parameters of the signal or image processing based on the embedding space similarity between the real seismic data items and the synthetic seismic data item. As another example, the system can apply an operator to straighten the lines in the real seismic data items because synthetic seismic data items usually have straighter lines than the real seismic data items. As another example, amplitude variations can be more complex in the real seismic data items than the synthetics, and the system can perform a signal processing operation to reduce the amplitude variations in the real seismic data items. As another example, the system can minimize or eliminate migration artifacts in the real seismic data items.

In some implementations, the system can perform the processing on the real seismic data items using a neural network that can be trained to make a real seismic data item (e.g., a real seismic image) look like a synthetic seismic data item (e.g., a synthetic seismic image). For example, the system can process the real seismic data items using a style transfer neural network (Gatys, Leon A., Alexander S. Ecker, and Matthias Bethge. “A neural algorithm of artistic style.” arXiv preprint arXiv: 1508.06576 (2015)) that can be trained to generate a preprocessed real seismic data item having the style of a synthetic seismic data item.

When performing seismic analysis of a real seismic data item using a seismic data analysis model trained on the synthetic seismic data items, before providing the real seismic data item to the trained seismic data analysis model, the system can perform a corresponding preprocessing to the real seismic data item such that the real seismic data item appear to be a data item drawn from a distribution of synthetic seismic data items, and the corresponding preprocessing can be the same processing applied to the real seismic data items before processing each of the plurality of real seismic data items using the encoder for comparison in the embedding space.

In some implementations, before processing each of the plurality of synthetic seismic data items using the machine learning model, the system can process the plurality of synthetic seismic data items such that the plurality of synthetic seismic data items appear to be data items drawn from a distribution of real seismic data items. The system can perform an image preprocessing process on the synthetic seismic data items such that the preprocessed synthetic seismic data items have similar appearance as the real seismic data items. Therefore, when comparing the preprocessed synthetic seismic data items and the real seismic data items in the embedding space, the system can more easily find some of the preprocessed synthetic seismic data items that are close to the real seismic data items in the embedding space.

In some implementations, the system can preprocess the synthetic seismic data items using geophysics simulations. For example, the system can migrate the synthetic seismic data items by using realistic apposition parameters. The system can model the seismic data acquisition process using realistic apposition parameters and can migrate the synthetic seismic data items by using realistic apposition parameters. Although some acquisition parameters may not be perfect, the system can generate realistic noise related to the acquisition geometries. In some implementations, the system can perform image processing or computer vision algorithms on the synthetic seismic data items. For example, the system can add noise, change the noise pattern, or add artifacts such that the preprocessed synthetic seismic data items appear similar to the real seismic data items. In some implementations, the system can perform the processing on the synthetic seismic data items using a neural network that can be trained to make a synthetic seismic data item (e.g., a synthetic seismic image) look like a real seismic data item (e.g., a real seismic image). For example, the system can process the synthetic seismic data items using a style transfer neural network that can be trained to generate a synthetic seismic data item having the style of a real seismic data item.

When training a seismic data analysis model on the synthetic seismic data items, before providing the synthetic seismic data items to the training system as training examples, the system can perform a corresponding preprocessing to each synthetic seismic data item such that the synthetic seismic data items appear to be data items drawn from a distribution of real seismic data items. The corresponding preprocessing can be the same preprocessing applied to the synthetic seismic data items before processing each of the plurality of synthetic seismic data items using the encoder for comparison in the embedding space.

FIG.4is a flow chart of an example process400for training a machine learning model configured to generate synthetic seismic data items. The process will be described as being performed by a system of one or more computers in one or more locations, appropriately programmed in accordance with this specification. For example, the system can be implemented in a machine learning training system, e.g., the training system120ofFIG.1.

The system generates a plurality of data item pairs that each includes a first synthetic seismic data item and a second synthetic seismic data item (402). For each data item pair, the system generates the first synthetic seismic data item that simulates a real seismic survey of a region of a planet and the second synthetic seismic data item that simulates a simplified version of the real seismic survey of the same region of the planet. Here, the planet can be the earth, or other celestial body, such as the moon, or any planet in the solar system.

For example, the first synthetic seismic data item can be generated by simulating a real seismic survey, e.g., by finite difference wave equations that have similar data acquisition parameters of a real seismic survey and having receivers at locations that are commonly associated with real life acquisition techniques. Thus, the first synthetic seismic data item can have realistic noise as in a real seismic data item collected from a real seismic survey. The second synthetic seismic data item does not have realistic noise. The second synthetic seismic data item can be generated by simulating a simplified version of the real seismic survey. Generating the second synthetic seismic data item by simulating the simplified version of the real seismic survey can take less computation than generating the first synthetic data item.

In some implementations, it is desirable that the seismic measurement system108includes fewer receivers, fewer sources, or both, and produces seismic survey data with a quality similar to the seismic survey data obtained from a system with more receivers, more sources, or both. Thus, in some implementations, the system can generate the first synthetic seismic data item that simulates a first number of sources and receivers and can generate the second synthetic seismic data item that simulates a second number of sources and receivers, and the first number of sources and receivers can be more than the second number of sources and receivers. Using the first synthetic seismic data and the second seismic data, the system can generate seismic survey data that simulates surveys obtained with more sources/receivers.

For example, referring toFIG.1, the system can generate the first synthetic seismic data item that simulates hundreds of energy sources and hundreds of receivers, similar to the number of energy sources104and receivers106used in a real seismic survey performed by a seismic measurement system108. However, this simulation can require lots of computation resources and may take a long time. Thus, the first synthetic seismic data item can have a similar appearance as a real seismic data item, e.g., real seismic data110, in terms of signal strength, noise pattern, etc. The system can generate the second synthetic seismic data item that simulates only several energy sources and several receivers, e.g., one energy sources and three receivers, similar to the number of energy sources and receivers used by the synthetic seismic data generator122in a simulation that aims at generating a large amount of training data to train a seismic data analysis model. Thus, the simulation for generating the second synthetic seismic data item can require less computation resources than generating the first synthetic seismic data item.

The system trains a machine learning model on training data that includes the data item pairs (408), and the machine learning model is configured to process an input seismic data item of a region of the planet to generate an output synthetic seismic data item that is a prediction of seismic data under a real seismic survey of the same region of the planet, or process an input seismic data item of a region of the planet to generate an output synthetic seismic data item that is a prediction of seismic data under a simplified version of the real seismic survey of the same region of the planet. In some implementations, the system can train two machine learning models including: a first machine learning model configured to process an input seismic data item of a region of the planet to generate an output synthetic seismic data item that is a prediction of seismic data under a real seismic survey of the same region of the planet, and a second machine learning model configured to process an input seismic data item of a region of the planet to generate an output synthetic seismic data item that is a prediction of seismic data under a simplified version of the real seismic survey of the same region of the planet. Thus, the system can train a machine learning model to generate a realistic synthetic seismic data item (e.g., with desired noise or artifacts) from a synthetic seismic data item that simulates a simplified version of the real seismic survey. Alternatively, the system can train another machine learning model to perform preprocessing on a real seismic data item, such as denoising, and after the preprocessing, the processed real seismic data item can have a similar appearance as a synthetic seismic data item that simulates a simplified version of the real seismic survey.

In some implementations, the system can train a denoising machine learning model that can be configured to remove realistic noise from the input seismic data item, and the input seismic data item can be a real seismic data item. In some implementations, the denoising machine learning model can be a denoising autoencoder, or other types of machine learning model. In some implementations, the denoising machine learning model can be trained using a loss function (e.g., a mean-squared error loss) that measures a difference between a predicted denoised seismic data item and a target synthetic seismic data item that has low noise. The denoising machine learning model can be trained to remove noise from a real seismic data item, and can generate a processed real seismic data item that has a similar noise pattern and/or a similar noise level as a synthetic seismic data item.

In some implementations, the system can train a style transfer neural network that can be configured to generate or remove realistic noise from the input seismic data item. In some implementations, the style transfer neural network architecture (e.g., Gatys, Leon A., Alexander S. Ecker, and Matthias Bethge. “A neural algorithm of artistic style.” arXiv preprint arXiv: 1508.06576 (2015)) can extract style representations and content representations from multiple intermediate layers and can include a loss function that is a sum of a style loss and a content loss. For example, the system can train a style transfer neural network that can take a real seismic image as input and can generate a seismic image that has similar style features (e.g., straighter lines, less noise) as a synthetic seismic image, while keeping the same content features (e.g., same fault location). As another example, the system can train another style transfer neural network that can take a synthetic seismic image as input and can generate another seismic image that has similar style features (e.g., curved lines, more noise) as a real seismic image, while keeping the same content features (e.g., same fault location).

In some implementations, the system can receive a real seismic data item, and can process the real seismic data item using the trained machine learning model to generate a processed real seismic data item, and the processed real seismic data item can be similar to a synthetic seismic data item. That is, the system can perform preprocessing on the real seismic data item using the trained machine learning model. After preprocessing, the processed real seismic data item can have a similar appearance as a synthetic seismic data item.

In some implementations, the system can process the processed real seismic data item using a seismic data analysis model, and the seismic data analysis model can be trained on a plurality of synthetic seismic data items. In some implementations, the seismic data analysis model can be a fault segmentation model. Because the seismic data analysis model is trained on the synthetic seismic data items, the model can have better performance processing input data that has similar appearance as the synthetic seismic data items. By generating processed real seismic images that have similar appearance as the synthetic seismic images, the system can reduce the domain gap between the training data (e.g., the synthetic seismic images) and the testing data (e.g., the real seismic images) of the seismic data analysis model. Thus, the seismic data analysis model can generate more accurate seismic data analysis results, e.g., a fault segmentation result, by processing the processed real seismic data item that is similar to a synthetic seismic data item.

For example, the realistic seismic image can have a high level of noise and the synthetic seismic image can be noiseless or can have a low level of noise. The system can reduce or remove the noise in the realistic seismic image. The system can process the processed realistic seismic image that has low level of noise using a fault segmentation model trained on low noise synthetic seismic images. The system can generate more accurate fault segmentation results because the input to the fault segmentation model has a similar appearance as the training examples that are used in training the fault segmentation model.

In some implementations, the system can generate realistic synthetic images from synthetic images, e.g., adding noise. In some implementations, the system can generate realistic synthetic images from real images, e.g., removing noise. The system can train a seismic data analysis model on the realistic synthetic images. After training, the trained seismic data analysis model can be readily applied to real seismic images or pre-processed real seismic images with less noise.