Назад
48

Как применяют CV в сейсморазведке

48

Введение

Один из главных инструментов для изучения земной коры с целью поиска полезных ископаемых в нефтянке — сейсморазведка.

Сейсморазведка — это геофизический метод исследования структуры, строения и состава горных пород.

Данный метод представляет собой возбуждение упругих колебаний и последующую регистрацию отклика от горных пород. Ниже показана условная схема сейсморазведки:

Рисунок 1. Схема проведения сейсморазведки

Для возбуждения упругих колебаний могут использоваться направленные взрывы или другие источники, например, гидравлические вибраторы. А для регистрации колебаний применяют сейсмоприемники, расставленные на поверхности по определенной сетке. Сейсмоприемник регистрирует амплитуду волны, отраженной от границ горных пород, и время ее прохождения от источника до приемника. По записям этих волн строят сейсмические изображения геологических объектов, что позволяет определить их глубину и форму, а также прогнозировать литологический состав (состав, структура, происхождение и изменение осадочных пород). Сейсморазведка играет ключевую роль при поиске месторождений нефти и газа, а также угля и многих нерудных полезных ископаемых.

Интерпретация сейсмических данных — монотонная и очень трудозатратная процедура. Например, чтобы сейсмику-интерпретатору определить границы отражающих горизонтов, ему нужно «проследить» искомую фазу и пропикировать (проследить) экстремумы по всему кубу данных. А куб этот может содержать до нескольких миллиардов трасс!

Трасс — одномерный вектор, описывающий амплитуды волны во времени.

На интерпретацию одного, среднего по размеру куба у специалиста могут уйти месяцы работы. Поэтому задача ускорения обработки и интерпретации сейсмических данных является очень актуальной.

И, конечно же, сейсмика не упустила шанс воспользоваться благами deep learning 😊. Ведь по сути сейсмические данные — картинки, которые можно интерпретировать с помощью глубоких нейронных сетей. Но если для обычных изображений реального мира у нас есть множество датасетов с разметкой (миллионы картинок, тысячи классов), то для сейсмики таких привилегий нет. Данные в сейсморазведке очень дорогие — раз. Их практически нет в открытых источниках с разметкой — два.

Здесь можно провести аналогию с медицинскими данными. Их тоже трудно найти в открытом доступе, а уж тем более с разметкой. Более того, в сейсмике, как и в медицине, очень субъективная разметка данных, которая сильно зависит от конкретного аннотатора. Еще одна немаловажная особенность: в обеих областях на исследуемых изображениях те объекты, которые необходимо интерпретировать, не имеют ничего общего с объектами из популярных открытых computer vision датасетов (ImageNet, COCO, CitiScapes и др.).

Поэтому здесь не получится обойтись простым файнтюном предобученных чекпоинтов. Например, геология какого-нибудь месторождения в Сибири может сильно отличаться от месторождения на Урале. Значит, обученные на этих участках модели применимы только к тем месторождениям, на которых они обучались. Сейчас пытаются создать универсальную foundation модель за счет предобучения на синтетических данных, но они все равно требуют этапа дообучения на конкретном месторождении.

Один из самых известных открытых датасетов в сейсмике — Netherlands F3 Dataset. По сути это сейсмический ImageNet. Его используют, чтобы тестировать новые подходы, архитектуры для интерпретации сейсмических данных.

В этой статье мы рассмотрим сейсмические данные на примере куба F3. Но это еще не все — мы также разберем данные двух известных соревнований по интерпретации сейсмики и самые топовые решения.

Netherlands F3 Dataset

Нидерландский сейсмический куб F3 — это месторождение площадью 384 квадратных километра в Северном море, в 180 км от побережья Нидерланд (см. Рисунок 2).

Рисунок 2. Месторождение, где был снят куб F3

Этот сейсмический куб представляет собой трехмерный массив данных (см. Рисунок 3). Для каждой точки массива с координатами x и y содержится сейсмическая трасса  — амплитуда зарегистрированного сигнала и время его регистрации. То есть ось z — это ось времени двойного «пробега» волны от земной поверхности до границы и обратно.

Рисунок 3. Netherlands Offshore F3 Block

Датасет на рисунке выше (Netherlands Offshore F3 Block) состоит из девяти проинтерпретированных отражающих горизонтов (сейсмические границы, выделяемые на основании различия пород в скорости прохождения сейсмических волн). Еще его можно представить как набор из 651 инлайна и 951 кросслайна — вертикальные срезы вдоль оси z (в зависимости от того, вдоль какой оси отсчитывается координата x или y). Временной диапазон куба — 1848 мс, частота дискретизации — 4 мс. Помимо 3D-сейсмических данных в датасете есть информация о четырех скважинах.

Геофизические исследования скважины (ГИС) — удельное электрическое сопротивление, удельная электропроводность горных пород и др.

Разметка куба (см. Рисунок 4) представляет собой сегментационную маску, на которой выделены литостратиграфические подразделения.

Литостратиграфические подразделения — совокупность горных пород, характеризующихся каким-либо признаком и занимающих определенное положение в последовательности геологических тел, которые слагают земную кору.

В данном случае это литостратиграфические группы — подразделения, объединяющие несколько формаций. Всего выделено 7 литостратиграфических групп, которые, в свою очередь, объединяются в порядке возрастания в три временных периода: Кайнозойский (Lower, Middle, and Upper North Sea groups), Мезозойский (Scruff, Rijnland, and Chalk groups) и Пермский (Zechstein group).

Рисунок 4. Разметка куба F3

Также выделяют два региона куба: Восточный и Западный. Восточный регион характеризуется неравномерной сетью геологических разломов и неравномерным распределением толщин групп, а Западный — более равномерным распределением толщин и разломов.

На рисунке 5 представлен 2D срез (слайс) в осях z и x при y=100, а также разметка, на которой в данном срезе видны только 6 из 7 групп или, если говорить в терминах ML, классов. Первое, что, скорее всего, придет на ум ML-инженеру — применить здесь сегментационную сетку типа UNet. И это действительно базовый подход, который можно встретить практически в любых ML-решениях задачи интерпретации сейсмических данных. С другой стороны, очевидно, что мы имеем дело с необычным доменом. Это накладывает определенные ограничения и вносит коррективы в итоговый пайплайн решения. О них мы и поговорим далее.

Рисунок 5. Пример разметки на 2D-срезе — xline

Постановка задачи интерпретации сейсмических данных

Очевидная постановка этой задачи в концепции компьютерного зрения (см. Рисунок 5) — семантическая сегментация, когда необходимо классифицировать каждый пиксель выходной маски. State-of-the-art подход к ее решению c 2015 года — архитектура UNet. Она довольно известна и популярна, поэтому сейчас мы не будем останавливаться на ее разборе, и сконцентрируемся на особенностях подходов к решению задачи сегментации геологических тел.

Первое, с чего стоит начать: подготовка данных для нейронной сети. Есть два основных подхода:

  • разбиение входного изображения на патчи (patch-based);
  • использование всего изображения сразу (section-based).

Patch-based подход чаще используют для огромных срезов (кросслайнов или инлайнов), когда батч целых срезов не помещается в память видеокарты, или же ресайз большой картинки приводит к потере важных деталей изображения. Недостаток подхода: модель может не получить полной связной информации о гелогическом теле, разбитом на патчи. И, соответственно, при инференсе не сможет правильно восстановить границы этого тела.

Section-based подход предполагает, что мы подаем на вход сразу весь кросслайн или инлайн. Основное преимущество: сеть видит весь срез, поэтому может выучивать связь между литостратиграфическими группами (геологическими телами, которые мы классифицируем). Более практичное преимущество: такой подход позволяет быстрее обучать и проводить инференс сети. Поскольку UNet — полносверточная сеть, для нее не станет проблемой возможное отличие размеров у кросслайнов и инлайнов.

Рисунок 6. Случайный Patch-based семплинг данных

Аугментации данных

При выборе набора аугментаций нужно учитывать специфику сейсмических данных. Нельзя просто взять и применить стандартный набор аугментаций для COCO или Imagenet. Например, HorizontFlip (горизонтальное отражение) поможет улучшить скор на валидации, а вот VerticalFlip (вертикальное отражение) только его ухудшит. Все из-за того, что мы во время обучения и инференса показываем сети картинки только одной ориентации (горизонтальной), и сеть должна выучить распределение геологических групп по глубине. То есть геологическая группа, относящаяся к Пермскому периоду, скорее всего, не окажется выше группы, относящейся к Кайнозойскому периоду (если только нам не попался геологический разлом).

Это особенно важно при обучении на полном срезе. Для патчей допускаются аугментации с поворотом на небольшие углы размером +-15 градусов. Также для модели, обучаемой на сейсмических данных, могут быть полезны аугментации, связанные с геометрическими искажениями: ElasticTransform, GridDistortion, OpticalDistortion. Различные трансформации по наложению шума или блюра тоже оказываются полезными. А вот аугментации, связанные с изменением цветовых характеристик, не имеют смысла: входное изображение одноканальное.

В целом, при выборе аугментаций нужно придерживаться общепринятого правила: подвергать входное изображение только тем трансформациям, которые могут с ними произойти в реальной жизни.

Деление данных на обучающую и тестовую выборки

Особенность 2D-подхода, основанного на обучении сегментационной сети на вертикальных срезах (кросслайнах и инлайнах): соседние срезы очень сильно коррелируют между собой. Поэтому простое деление на “обучение” и “тест” случайным образом приведет к быстрому переобучению модели. Лучше всего семплировать срезы для обучения с неким постоянным шагом. На рисунке ниже показан такой способ семплирования инлайнов:

Рисунок 7. Семплирование инлайнов для обучения

Данный подход помогает избежать попадания сильно скоррелированных срезов в обучающую и тестовую выборки. Еще одно немаловажное преимущество: распределение данных в обучающей выборке будет наиболее полно описывать сейсмический куб. Если мы сравним восточную и западную части куба (”E” и “W” на рисунке 7), то увидим, что они очень сильно отличаются (и равномерность толщин групп, и формы горизонтов). Следовательно, если мы обучим модель на восточной части куба — не сможем получить удовлетворительных метрик на западной части. Таким образом, задача интерпретации сейсмических данных сводится к задаче интерполяции между срезами с известной разметкой.

Результаты обучения модели

На рисунке ниже представлена таблица с результатами обученной модели на тестовой выборке: инлайны [100,299] и кросслайны [300,1000].

Рисунок 8. Метрики на тестовой части куба F3

В качестве метрик используются следующие величины:

  • pixel accuracy (PA) — доля всех верно классифицированных пикселей;
  • class accuracy (CA) — PA для каждого класса в отдельности;
  • mean class accuracy (MCA) — усредненная метрика по классам;
  • frequency-weighted intersection over union (FWIU) — взвешенная по классам версия известной Intersection over Union (IoU).

Метрики посчитаны для различных стратегий обучения: patch-based и section-based, с аугментациями и без. В качестве базовой модели была выбрана DeconvNet. Лучшие метрики показаны архитектурой со skip-connection, то есть по сути UNet.

На рисунке 9 представлены примеры прогноза для инлайна 200. Наихудший результат показала patch-based модель. Действительно, патчи сэмплируют с различных глубин куба, а информация о глубине сети неизвестна. Отсутствие аугментаций также сказывается на качестве прогноза. В итоге лучший результат показывает модель, обученная на целых срезах: она видит всю глубину и правильно классифицирует геологические тела.

Этот бейзлайн довольно простой. Он был предложен авторами датасета F3. Они заложили направления решения, попробовав лишь базовые подходы с аугментацией и skip-connection. Но, например, дисбаланс классов они никак не учитывали при обучении, и только на этапе подсчета метрики применялась взвешенная функция.

Давайте рассмотрим другие решения, которые позволили получить более качественную сегментацию сейсмического куба F3.

Рисунок 9. Прогноз инлайна 200 для различных моделей

В статье Seismic facies segmentation using deep learning приводится решение с этапом предобучения при задаче классификации. Сначала авторы обучили обычный CNN классификатор на небольших патчах (40х40 пикселей) предсказывать доминирующий класс в патче. Затем к предобученному бекбону добавили декодер с обратными свертками и обучили уже сегментационную модель на патчах размером 80х120. Модель, обученная на 70% инлайнах, дала IoU=0.98 на оставшихся 30% инлайнов.

Но авторы решили усложнить задачу и обучить модель лишь на 9 инлайнах (чуть более 1% от всего набора данных). Эта постановка более реалистична: процесс разметки трудоемкий, обычно ограничиваются 10-20 размеченными срезами. Но даже на такой небольшой обучающей выборке авторам удалось получить IoU=0.9. Стоит отметить: при таком малом количестве данных применим только patch-based подход, позволяющий насемплить достаточное для обучения количество картинок.

В статье Seismic Facies Analysis: A Deep Domain Adaptation Approach приводится еще одно решение задачи семантической сегментации куба F3.

Авторы предлагают свою архитектуру EarthAdaptNet (EAN) — модификацию UNet и Danet-FCN3.

Рисунок 10. НС EarthAdaptNet для семантической сегментации сейсмических данных

На рисунке 10 представлена архитектура сети EAN. От UNet взята энкодер-декодерная архитектура с дополнительными соединениями между энкодером и декодером, а от  Danet-FCN3 — блоки residual (RB) и transpose residual blocks (TRB) со сверткой 1х1 в skip connection. Также в EAN используются расширенные свертки (atrous convolution) из DeepLab.

На рисунке 11 показана таблица с результатами тестирования EAN в сравнении с бейзлайном, рассмотренным выше. Стоит отметить: здесь участвуют модели, обученные в patch-based режиме, то есть на случайным образом семплированных патчах.

Рисунок 11. Таблица с метриками архитектуры EAN в сравнении с бейзлайном для куба F3

Основной прирост у EAN достигается не по усредненным классам метрикам, а по самым маленьким классам — это самые глубокие и тонкие геологические тела (классы 4, 5, 6). То есть EarthAdaptNet хорошо себя показывает при сегментации мелких, тонких объектов, что важно для задач интерпретации сейсмических данных.

Другие открытые сейсмические данные и подходы к решению задачи интерпретации

Рассмотрим еще пару открытых сейсмических датасетов, которые использовались в соревнованиях по машинному обучению, следовательно, имеют много вариантов решения.

TGS Salt Identification Challenge

Это соревнование проходило на площадке kaggle.com в 2018 году и заключалось в сегментации соли на сейсмических изображениях. Данные были разбиты на патчи размером 101х101 пиксель. Помимо картинок и масок был также файл с маппингом патчей и глубины, к которой этот патч привязан. На рисунке 12 приведен пример обучающей пары — сейсмическое изображение 101х101 и соответствующая бинарная маска.

Рисунок 12. Пример обучающей пары соревнования TGS Salt Identification Challenge

Особенность данных: далеко не на всех масках присутствовала соль, то есть датасет был сильно не сбалансирован. На рисунке 13 показан собранный срез из патчей (соль закрашена красным). Здесь особенно хорошо виден дисбаланс классов и вытекающая отсюда необходимость модели локализовать патч внутри среза.

Рисунок 13 взят из статьи Semi-Supervised Segmentation of Salt Bodies in Seismic Images using an Ensemble of Convolutional Neural Networks, авторы которой — победители соревнования. Мы не будем подробно останавливаться на их решении, ведь, как это часто бывает, топовое решение kaggle довольно сложное и редко применимое в чистом виде в реальной жизни 😢. Так и и здесь, победная модель — это ансамбль из нескольких моделей со сложной многостадийной тренировкой. Из особенностей: авторы активно использовали псевдолейблинг (наиболее уверенные предсказания модели в качестве дополнительной разметки). Это популярный подход в сейсмике из-за недостатка разметки.

Рисунок 13. Пример собранного среза из Salt Identification Challenge

По сути псевдолейблинг — вид self-supervised подхода, ведь частично разметка формируется автоматически. Обучение было разбито на K этапов. На первом этапе модель обучалась только на существующей разметке, затем она расширялась засечь наиболее уверенных прогнозов из тестовой выборки, выбранных по заданному порогу выходной вероятности. Чтобы избежать переобучения, одновременно обучалось несколько моделей с разными по архитектуре бекбонами, а затем их прогнозы усреднялись.

Подробнее об архитектуре сетей (см. Рисунок 14): в ее основе лежит UNet с бекбонами ResNet34 и ResNext34 и с начальной инициализацией весов ImageNet (интерересно, что им это помогло, поскольку ImageNet — совсем другой домен, не имеющий ничего общего с сейсмикой). Также они добавили механизм внимания (spatial and channel Squeeze & Excitation modules) после каждого энкодерного и декодерного блока. Между энкодером и декодером вставили Feature Pyramid Attention модуль, который позволил увеличить рецептивное поле за счет объединения признаков разных масштабов. Еще авторы реализовали в своей сети архитектуру feature pyramid network, не взяли в качестве итоговой карты признаков последний слой декодера, а сконкатенировали карты признаков со всех слоев декодера и пропустили итоговый тензор через свертки 3х3 и 1х1.

Рисунок 14. Архитектура победителей соревнования TGS Salt Identification Challenge

Seismic Facies Identification challenge

Еще одно соревнование по интерпретации сейсмических данных проводилось на площадке aicrowd.com с 2020 по 2021 год. Цель Seismic Facies Identification challenge — сегментация геологических фаций (геологически-однородных тел) 3D куба. Контест проходил в 4 этапа. Участникам был выдан трехмерный куб входных данных и такой же по размеру куб с разметкой на 7 классов. Исследуемый датасет представлял собой снимок северо-западного побережья  Новой-Зеландии. На вертикальном срезе (см. Рисунок 15) четко прослеживается геологический разлом, вдоль которого сегментируемая маска становится очень тонкой. Это является потенциальным проблемным местом для модели. Другая особенность данных — деление на тренировочную и тестовую выборки.

Рисунок 15. Вертикальный срез сейсмического куба из Seismic Facies Identification challenge

Как видно из рисунка 16, тестовые фрагменты находятся по краям куба, что превращает задачу интерпретации в задачу экстраполяции. Такую постановку задачи использовали в топовом решении одного из раундов соревнования.

Рисунок 16. Деление на train/test сейсмического куба Seismic Facies Identification challenge

Победитель предложил следующий подход: на вход подавалось сейсмическое изображение и часть маски для обучения модели предсказывать спрятанную часть маски. Тогда на инференсе уже можно было подать сейсмическое изображение (трейновая и тестовая части) и известную часть маски, а затем получить на входе маску тестового фрагмента куба. Получается, был реализован semi-supervised подход, который позволил обрести наилучшую среди участников метрику на тесте.

Интерпретация сейсмических данных — интересная, но не особо популярная тема среди дата сайентистов во многом из-за специфичности и дороговизны данных. Поэтому и соревнования по сейсмике тоже проводятся нечасто. Возможно, в будущем все же появятся и новые бенчмарки, и новые контесты, поскольку задачи интерпретации сейсмики не теряют актуальности и требуют более точных и быстрых решений.

Заключение

В заключение давайте повторим основные тезисы, связанные с особенностями сейсмики. Их стоит учитывать при погружении в эту тему. Итак:

  1. Сейсмические данные очень дорогие, а их разметка — трудоемкий процесс, поэтому открытых сейсмических данных мало.
  2. Наиболее известный открытый сейсмический датасет — Нидерландский куб F3. Его чаще всего используют, когда хотят сравнить свой подход к интерпретации сейсмических данных на базе DL.
  3. В открытых источниках мало статей и репозиториев с интерпретацией куба F3, поскольку сама по себе тема очень специфичная, не так много ML-инженеров в нее детально погружено.
  4. Трудоемкая и неоднозначная разметка, выполненная разными интерпретаторами, с одной стороны, и большая геологическая неоднородность данных месторождений — с другой. Это делает трансферлернинг сейсмических моделей малоэффективным. Кажется, создание foundation модели для сейсмики на основе self-supervised обучения — вполне перспективный подход в задачах интерпретации сейсмических данных. Но это уже другая история (и тема для следующей статьи) 😊.

Источники

  1. Боганик Г. Н., Гурвич И. И. Сейсморазведка. Тверь АИС, 2006.
  2. Netherlands Dataset: A New Public Dataset for Machine Learning in Seismic Interpretation
  3. A Machine Learning Benchmark for Facies Classification
  4. Seismic Facies Analysis: A Deep Domain Adaptation Approach

Телеграм-канал

DeepSchool

Короткие посты по теории ML/DL, полезные
библиотеки и фреймворки, вопросы с собеседований
и советы, которые помогут в работе

Открыть Телеграм

Увидели ошибку?

Напишите нам в Telegram!