Брэнда Хуанг, Брандт Грин, Джесси Ли, Меха Мехта, Шэнсян Ву
Ссылка на код реализации на Github: https://github.com/brandahuang/Subsurface-Salt-Interpretation-Automation
Абстрактный
Точная идентификация подземных солевых отложений по сейсмическим изображениям является важным, но трудоемким шагом в разведке и разработке нефтегазовых ресурсов в энергетической отрасли. Этот процесс предпринимается для обнаружения новых ресурсов и предотвращения опасностей в определенных бассейнах по всему миру. Каждый год большое количество рабочих часов тратится на интерпретацию соляных тел в трехмерных сейсмических данных. В этой статье мы предлагаем альтернативный подход к автоматизации процесса, основанный на машинном обучении.
Текущая модель, которую мы разработали, построена на 4000 исходных входных 2D-изображениях соли, вырезанных из 3D-сейсмических объемов и соединенных с изображением маски, созданным на основе интерпретации человека-эксперта. Из-за ограниченного размера обучающего набора было выполнено увеличение изображения для создания большего обучающего набора. Затем мы используем модель полностью сверточной сети с архитектурой U-NET, которая берет входное изображение и выводит двухмерную «соляную маску», которая определяет, где находится соль на входном изображении. Это выходное изображение затем сравнивается с исходной маской, созданной интерпретаторами-людьми, для расчета метрик ошибок. Наша окончательная модель, оцененная на наборе задержек, достигла средней точности по пикселям 93,4% и среднего значения IOU 72,4%.
Декларация о намерениях
Почему нас интересует соль?
Соль откладывалась, когда океаны начали открываться миллионы лет назад, а позже образовалась в земных слоях из-за ее пластичности и относительно низкой плотности, образуя тела различной формы, такие как купола, навесы или диапиры. В таких местах, как Западная Африка, Мексиканский залив и Северное море, миллиарды баррелей углеводородных ресурсов (нефти и газа) оказались в ловушке над солью и вокруг нее из-за ее очень низкой проницаемости. В результате структуры, связанные с солью, являются горячими целями для разведки нефти и газа, потому что часто обнаружение соли может означать обнаружение нефти. (Рисунок 1).
Помимо облегчения обнаружения нефти, знание местонахождения залежей соли также имеет значение для безопасности бурения. Если соль кажется слишком мелкой с захваченным газом, это может быть опасностью бурения, которая при неправильном планировании и обращении может привести к взрывам. Таким образом, точное определение соли становится критически важным для безопасности бурения.
Очевидно, что идентификация и точное картирование месторождений соли имеет решающее значение в нефтегазовой отрасли. К сожалению, интерпретация человеком соляных тел по сейсмическим данным утомительна, отнимает много времени и часто субъективна. Применяя алгоритмы машинного обучения, мы надеемся создать первую часть рабочего процесса машинного обучения, который автоматически и точно идентифицирует соляные тела с помощью 2D-сейсмических изображений. Хотя здесь мы не решаем эту задачу, следующий этап полного рабочего процесса будет включать объединение 2D-интерпретаций в объемы 3D-сейсмических данных. Новый процесс займет от нескольких часов до нескольких дней; резкое улучшение существующих методологий. Этот выигрыш в эффективности устраняет одно узкое место в графике проекта, что в конечном итоге создаст значительную экономическую выгоду от проекта с высокими капиталовложениями.
Характеристики изображения соли
Как именно получаются эти сейсмические изображения? Подповерхностные соляные тела почти всегда визуализируются с использованием метода, называемого сейсмологией отражения. В морской среде это влечет за собой пневматические пушки, стреляющие звуковыми волнами на дно океана (рис. 2), которые затем отражаются земными слоями. Отраженные волны регистрируются гидрофонами, и данные обрабатываются для формирования трехмерного сейсмического объема, на основании которого геологи интерпретируют различные особенности недр, например соляные тела (рис. 3). Затем 3D-объем нарезается на серию 2D-изображений для интерпретации соли, а затем может быть подобен для представления 3D-тела.
Сила сейсмических отражений на любой границе определяется уравнением:
Где RC — коэффициент отражения волн сжатия, ρ2, v2 и ρ1, v1 — плотность и скорость распространения волн сжатия в вышележащей среде 2 и подстилающей среде 1 соответственно. Из-за высокой скорости (V2) волн сжатия в соли (~4400 м/с) по сравнению с окружающими отложениями член (ρ2v2 — ρ1v1) велик, что приводит к сильному положительному перегибу в верхней части соли, где соляная основа характеризуется сильным отрицательное отражение.
Когда эксперты-люди (геофизики) изучают изображения, есть несколько характеристик, которые помогают им идентифицировать области, содержащие соль:
- Вершина соли обычно представляет собой сильный пик (извилистое положительное отражение), а основание — сильный провал (отрицательное отражение).
- Внутренняя часть соляного тела относительно однородна и не имеет слоистой структуры, как окружающие отложения. Однако анклавы и примеси, попавшие внутрь соли, могут вызывать нарушения и образование более сложной текстуры.
Когда граница соль-отложения близка к вертикали, звуковые волны, исходящие сверху, будут иметь угол падения, полупараллельный границе, что приводит к преломлению и дифракции энергии, что усложняет визуализацию. Когда соляные тела сложены, энергия верхних солей может ослабить (ослабить) сейсмическую энергию, где изображение нижней соли может быть размыто.
Таким образом, характеры и особенности соли на сейсмических изображениях представляют несколько проблем для специалистов-людей, и мы можем ожидать, что некоторые из этих проблем вызовут проблемы для наших моделей машинного обучения. В этом исследовании мы пытаемся использовать наши знания в предметной области и целенаправленно обучать модель для решения проблем, максимально используя отличительные черты соляных тел.
Набор данных
Описание данных
Данные для этого проекта были получены прямо с конкурса Kaggle: TGS Salt Identification Challenge. В результате этой задачи мы смогли загрузить 4000 пар изображений, каждая из которых состоит из сейсмического изображения недр земли размером 101x101 пикселей и соответствующей ему соляной маски размером 101x101 пикселей, где белые пиксели представляют собой человеческую интерпретацию соляных тел. Вот образец первых 6 пар изображений в наборе данных (рис. 4):
Имеющиеся у нас изображения представляют собой просто срезы трехмерного изображения в поперечном сечении, полученные с помощью сейсмологии отраженных волн, как объяснялось выше. Эти изображения хранятся в формате оттенков серого, что означает, что каждый пиксель имеет только одно значение цвета в диапазоне от 0 до 255. Это контрастирует с типичным цветным изображением, где каждая позиция содержит 3 пикселя для каждого значения RGB. «Соляная маска» создана на основе ручной маркировки эксперта, которая считается достоверной. Мы взяли 3500 из этих пар в качестве данных для обучения и отложили 500 в качестве окончательного набора для проверки.
Обработка данных и исследование
Глубина
Информация о глубине изображенных соляных тел была предоставлена в наборе данных. Однако, основываясь на наших знаниях о соляных телах в науках о Земле, вероятность появления соли обычно не коррелирует с глубиной, на которой находится тело. Чтобы проверить это утверждение, мы провели краткий исследовательский анализ, чтобы увидеть, сможем ли мы определить какие-либо шаблоны, которые мы упустили, но, как вы можете видеть из приведенных ниже графиков, глубина действительно не имеет никакого значения для этой проблемы (рис. 5).
Алхимия данных
Мы наткнулись на технику под названием Data Augmentation, которая позволяет вам синтетически увеличить размер вашего обучающего набора данных. Расширение данных работает путем создания новых данных, которые являются слегка измененными, но все же реалистичными версиями исходного набора данных. С нашим конкретным набором данных мы решили применить три метода увеличения: перевороты вверх-вниз, перевороты влево-вправо и поворот на 90 градусов. Каждое из этих преобразований применялось к каждому изображению обучающей выборки, в результате чего размер выборки пересматриваемой обучающей выборки составил 14 000 изображений. Примеры преобразований для 3-х изображений показаны ниже (рис. 6):
Увеличение данных может быть мощным инструментом, потому что оно делает модель более надежной, гарантируя, что модель не будет соответствовать определенным нерелевантным позиционным характеристикам.
Общие задачи обработки изображений машинного обучения и обзор модели
Изображения и машинное обучение
Прежде чем углубляться в то, какие модели доступны и какую из них мы выбрали для решения этой проблемы, мы считаем полезным изучить на высоком уровне некоторые из распространенных проблем, связанных с изображениями, в мире машинного обучения. Изображение ниже дает отличное представление о том, что пытаются выполнить четыре большие задачи:
- Распознавание изображений. Распознавание изображений в основном означает предсказание того, что находится на изображении. Это принимает математическую форму оценки вероятностей для каждого из потенциальных классов.
- Обнаружение объектов. Сюда входит не только оценка вероятностей того, чем может быть объект, но и фактическое предсказание ограничивающей рамки, которая окружает объект. Обычно это выражается в виде задачи регрессии путем прогнозирования координат пикселя, расположенного в центре объекта, а затем прогнозирования ширины и высоты объекта. Собранные вместе, эти компоненты представляют собой коробку, содержащую объект.
- Семантическая сегментация. Рисовать рамку вокруг объектов на изображении удобно, но есть определенные проблемы, когда рамка может быть слишком грубой и неточной для действительного решения поставленной задачи. Именно здесь вступает в действие семантическая сегментация. Семантическая сегментация стремится предсказать попиксельно точную форму объекта. Как видно на изображении выше, все пиксели, представляющие овец, идентифицируются как один класс, а пиксели, соответствующие собаке, представляются следующим классом. Это именно то, что влечет за собой наш проект, только вместо того, чтобы предсказывать пиксельные маски для овец и собак, мы будем выводить предсказанные вероятности для соли или не соли.
- Сегментация экземпляров. Наконец, есть одно дополнительное расширение для многих проектов, которое можно реализовать. Семантическая сегментация объединяет все пиксели, относящиеся к одному и тому же классу, в один фрагмент, что часто нормально, но в некоторых ситуациях вам может потребоваться дополнительная точность для фактического определения того, что один блок пикселей, представляющий «овцу», отличается от следующего блока пикселей овцы. Когда это различие необходимо, решается проблема сегментации экземпляров, но это выходит за рамки нашего проекта, потому что нам не нужно различать разные комки соли на наших изображениях.
Выбор модели
Теперь у нас есть довольно четкое представление о нашей цели: решить задачу семантической сегментации, где входными данными являются сейсмические изображения, а выходными данными также являются изображения, выделяющие участки входного изображения, содержащие соль. Для достижения этой цели мы исследовали несколько моделей, и наш мыслительный процесс следовал приведенному ниже.
Многослойный персептрон (MLP): это, как правило, «стартовая» модель для всех, кто изучает нейронные сети, и было бы неплохо, если бы она также работала с проблемами, связанными с изображениями. К сожалению, есть две острые проблемы с MLP применительно к изображениям. Во-первых, количество обучаемых параметров в модели резко возрастет при использовании чего-либо, кроме тривиально маленького изображения. Эта проблема возникает из-за того, что входными данными для модели MLP будет сглаженный массив каждого пикселя изображения, а при наличии нескольких полностью связанных слоев количество параметров быстро становится громоздким. Во-вторых, MLP страдают от другой связанной с этим проблемы: переобучения обучающих данных. Общеизвестно, что MLP плохо понимают позиционную инвариантность, а это означает, что они изо всех сил пытаются понять, что один и тот же объект может появляться в нескольких разных областях изображения. Например, если ваша модель содержала только тренировочные изображения, где овца находилась в правой части изображения, ей было бы трудно распознать овцу в левой части изображения в данных тестирования.
Сверточная нейронная сеть (CNN). Использование сверточной нейронной сети решает многие проблемы, связанные с MLP. Два ключевых компонента CNN, сверточные фильтры и объединение, работают вместе, чтобы решить проблемы MLP. Полезной характеристикой фильтров является то, что для каждого фильтра в сверточном слое все пиксели имеют одни и те же обучаемые параметры. Это помогает уменьшить как сложность за счет уменьшения количества параметров, так и повышает устойчивость моделей к позиционной инвариантности, поскольку один и тот же фильтр применяется к пикселям во всех положениях изображения. Слой пула также способствует снижению сложности, поскольку выходные данные уменьшают количество входных данных, подаваемых на следующий уровень. Эти операции работают вместе, чтобы помочь модели понять «что» на изображении, что необходимо для стандартной задачи классификации, но модель в целом имеет тенденцию терпеть неудачу, когда требуется прогноз вероятности для каждого предоставленного входного пикселя. Причина этого недостатка в основном связана с повторным применением слоев с максимальным объединением, потому что при каждом понижении дискретизации часть точной локализованной информации теряется. Кроме того, CNN обычно завершается полностью связанным плотным слоем, который хорошо работает, если вы прогнозируете вероятности классов, но не для прогнозирования вероятностей для каждого пикселя. [6,7]
Полностью сверточная сеть (FCN). Полностью сверточные сети были представлены как расширение CNN с учетом задач семантической сегментации. [8] Основным дополнением полностью сверточной нейронной сети является то, что последний полносвязный слой CNN обрывается и вместо этого заменяется другим свертывающимся слоем с одним фильтром и одним каналом. Сделав это, этот вывод будет представлять собой 2D-карту объектов того же размера, что и исходное изображение, и мы можем интерпретировать выходные числа как вероятности классов. Дополнительным преимуществом удаления полностью связанного слоя является то, что теперь вы можете отправлять в модель изображения нескольких разных размеров, поскольку ни один из слоев не требует определенного входного размера.
Использование FCN кажется подходящим для нашей задачи, но на самом деле FCN — это просто общая методология, которая не говорит нам, как конкретно структурировать нашу модель. К счастью, мы можем опираться на плечи гигантов до нас, взяв со стойки уже успешную архитектуру FCN. U-NET — это модель, которую мы использовали.
Реализация UNET
Что такое Ю-НЕТ?
U-Net — это полностью сверточная сетевая архитектура, представленная в 2015 году для разработки модели семантической сегментации микроскопических изображений клеток. Исходная архитектура представлена ниже (рис. 8):
Модель U-Net построена из тех же знакомых строительных блоков, что и в CNN: сверточных фильтров и максимального объединения. Большая идея в U-Net состоит в том, чтобы дополнить традиционный контрактный путь FCN зеркальным путем, содержащим операции повышения частоты дискретизации вместо объединения. Путь понижения дискретизации и путь повышения дискретизации называются путями «кодирования» и «декодирования» соответственно, и последовательность этих двух мини-структур при визуализации, как показано выше, создает U-образную структуру, от которой U-Net получил свое название. Стрелки на изображении выше указывают на то, что зеркальные слои для каждого пути объединены вместе. Наконец, стоит отметить, что эта модель сохраняет большое количество фильтров на этапе декодирования, что позволяет модели распространять общую картину и контекстную информацию на более поздние уровни. [9,10]
Причина, по которой эта структура так хорошо работает для задач семантической сегментации, заключается в том, что на этапе кодирования модель изучает большую часть общей картины, макроинформации, встроенной в изображение, а слои декодирования позволяют модели сохранять точную локализованную информацию. необходимо для точного предсказания пикселей.
Базовая модель U-Net Реализация:
Для реализации модели U-Net мы использовали библиотеку Keras на Python из-за ее интуитивно понятного и простого для понимания API. Код, который мы использовали для указания структуры нашей модели, можно увидеть ниже:
В нашей реализации есть четыре шага кодирования и четыре шага декодирования. На каждом шаге кодирования есть два сверточных слоя, за которыми следует шаг максимального объединения, который вдвое уменьшает разрешение изображения. Следующий шаг получает выходные данные от максимального объединения предыдущего слоя. Следующие четыре шага декодирования работают аналогично, за исключением того, что эти уровни заменяют уровень максимального пула транспонированным сверточным уровнем. Этот слой имеет эффект, противоположный максимальному объединению; он удваивает размер изображения, что помогает нам довести наши выходные размеры до размера исходного ввода. Результат транспонированного сверточного слоя объединяется с выходными данными дополнительного слоя того же размера на другой стороне буквы «U». Наконец, модель дополняется одноканальным сверточным фильтром, использующим сигмовидную функцию активации. Это выведет для нас 2D-карту объектов, а сигмовидное преобразование позволит нам интерпретировать полученные числа как вероятности того, что каждый выходной пиксель является солью или нет!
Это приводит к тому, что мы называем нашей «Базовой моделью U-Net», которая имеет около 500 000 обучаемых параметров. Мы обучили эту модель как на исходном наборе данных, так и на нашем расширенном наборе данных. Результаты представлены в следующем разделе.
Усовершенствования базовой модели Unet:
Из-за природы соли на сейсмических изображениях мы предположили, что можем улучшить наши результаты, используя изображения с улучшенными краями. Для этого мы использовали свертка Собеля с усилением краев. Пример этого можно увидеть на рис. 10.
Обучение модели и результаты
Выбор гиперпараметров
- Размер партии : 10
- Эпоха: первоначальная настройка была равна 30 эпохам, но был установлен обратный вызов с ранней остановкой, чтобы предотвратить продолжение обучения, если ошибка не уменьшилась в течение 5 эпох подряд.
- Метрика потерь: бинарная перекрестная энтропия
- Оптимизатор: Адам
Метрики
Мы использовали следующие две метрики: точность пикселей и IoU.
Точность пикселей проста: это процент правильно классифицированных пикселей:
Точность для всей модели — это средняя точность всех изображений.
IoU расшифровывается как Intersection-Over-Union и также интуитивно понятен при размышлении о том, как судить о правильности модели на основе классификации всего изображения (рис. 11). Он рассчитывается как площадь перекрытия между прогнозируемой маской и маской истинности, деленная на объединенную площадь обеих масок. Лучше всего это понятно на картинках:
Формула для расчета IOU:
Полученные результаты
Пять отдельных тренировок модели и их результаты в проверочном наборе показаны на диаграмме ниже. Основное различие между каждой моделью заключается только в данных, которые были загружены в нее. Первые три включают в себя более успешные реализации увеличения данных, а последние два были входными данными, отфильтрованными по Собелю.
Нашей лучшей моделью является модель с расширенными обучающими данными (14000 изображений) и без фильтра обнаружения границ Собеля. Это означало, что увеличение размера обучающих данных улучшит производительность модели, хотя и увеличит время обучения каждой эпохи. Кроме того, поскольку фильтр Собеля перед U-Net отфильтровывал часть информации, содержащейся в каждом изображении, это не помогло повысить точность нашей модели.
Ниже вы можете увидеть производительность нашей лучшей модели на протяжении всего процесса обучения (рис. 12). Обе наши оценочные метрики выходят на плато примерно через 7–8 эпох.
Модель за работой
Чтобы визуализировать, как модель предсказывает содержание соли, мы использовали 2 выходных данных и сравнили их с «истинным» соляным телом, интерпретированным человеком-интерпретатором (рис. 13). Как мы видим, за исключением локального возмущения, которое было неоднозначным даже для человеческого глаза, то есть нижнего левого угла для верхнего изображения (рис. 13), большинство интерпретаций впечатляюще точны.
Ключевые выводы
Судя по результатам, решение с наивысшим показателем точности 93,4 % и IOU 72,5 % было основано на исходной архитектуре U-Net с использованием 3 методов аргументации данных. Мы можем сделать вывод, что увеличение данных, включая переворот вверх-вниз, переворот влево-вправо и поворот на 90 градусов, эффективно улучшили производительность модели. Также полезно большее количество эпох. С другой стороны, дополнительный уровень обнаружения границ Собеля перед U-Net и дополнительный канал к U-Net не оказали существенного влияния на усовершенствование модели.
Будущая работа
Ниже приведен краткий список потенциальных идей и следующих шагов, которые мы хотели бы изучить, чтобы вывести наше решение на новый уровень:
Увеличение размера набора обучающих данных
Расширение обучающей выборки потенциально может охватывать не только морфологические и текстурные изменения, вызванные местонахождением соли, такой как соль из Северного моря и Западной Африки, но также может научить модель интерпретировать сейсмическую частоту, угловой суммирование и любые другие данные до и после анализа. вариации, связанные с обработкой стека. В отрасли существует множество продуктов для интерпретации солей, и лишь небольшая их часть, доступная для обучения модели, может иметь высокий потенциал для улучшения модели. В идеальном приложении мы всегда хотим создать глобальный обучающий набор, добавляя дополнительные обучающие данные для конкретных локальных приложений, используя соответствующие локальные данные изображения соли.
Дополнительное увеличение данных
Будет ли наша модель работать еще лучше, если мы добавим больше изменений изображения? Должны ли мы добавить повороты на 180 градусов? Размытость изображения? Упругие деформации? Какие изменения лучше всего подходят для нашего набора данных? Сколько изменений слишком много? Конечно, интересная тема для изучения.
Псевдомаркировка
Псевдо-разметка — это простой полууправляемый алгоритм обучения, который пытается включить неразмеченные данные в процесс обучения модели. Модель делает это, используя частично обученную модель для прогнозирования неразмеченных данных, а затем передает этот прогноз обратно в модель для дальнейшего обучения. Это еще один из тех методов, который на первый взгляд кажется немного похожим на волшебство данных, но, как мы упоминали ранее, у нас есть 18 000 немаркированных изображений, и мы хотели бы найти способ использовать эти неиспользованные данные.
Различные модели сегментации
Хотя U-net считается более стабильным решением с доказанным успехом для этого типа проблемы семантической сегментации, существует несколько расширений U-net, которые следует рассмотреть (например, ResNet-Unet) вместе с другими архитектурами (например, MaskRCNN, FPN), которые, если они будут реализованы, могут обеспечить повышение производительности.
Включите больше показателей оценки
Мы также можем включить другие общие оценочные показатели для семантической сегментации, чтобы получить более полное представление о производительности модели. Коэффициент игры в кости — еще одна популярная метрика, похожая на IoU, с тем отличием, что в коэффициенте игры в кости положительным совпадениям присваивается двойной вес:
Трансферное обучение
Трансферное обучение включает в себя использование модели, которая была предварительно обучена для другой задачи, небольшое изменение модели по мере необходимости, а затем применение ее к спецификациям вашего проекта. Этот подход добился большого успеха, и мы думаем, что его стоит изучить. Причина нашего недоверия в том, что подавляющее большинство предварительно обученных моделей с открытым исходным кодом обучаются на наборах данных, которые резко отличаются от имеющихся у нас данных сейсмического изображения. Большинство обучаются на ImageNet, который состоит в основном из повседневных достопримечательностей и объектов, таких как деревья, люди и автомобили. При этом мы по-прежнему думаем, что стоит попробовать из-за большого успеха, который мы видели у других, использующих этот подход.
Заключительные мысли
Сейсмические изображения и идентификация солей играют важную роль в обнаружении нефти и газа, и требуется большое количество интерпретаций. Коммерциализация любого приложения в конечном итоге потребует, чтобы модель была масштабируемой до больших объемов с изображениями большого размера и, в конечном итоге, применима непосредственно к трехмерным объемам, а не к двумерным изображениям. Автоматизация интерпретации солей по-прежнему является предметом продолжающихся исследований, которые могут оказать значительное экономическое влияние за счет ускорения сроков реализации проекта и затрат на оплату труда.
Рекомендации
[1] https://glossary.oilfield.slb.com/Terms/s/seismic_acquisition.aspx
[2] https://en.wikipedia.org/wiki/Reflection_seismology
[3] https://ocw.mit.edu/courses/earth-atmospheric-and-planetary-sciences/12-510-introduction-to-seismology-spring-2010/lecture-notes/lec9.pdf
[4] https://en.wikipedia.org/wiki/Acoustic_impedance
[5] https://www.kaggle.com/c/tgs-salt-identification-challenge/data
[6] https://towardsdatascience.com/convolutional-neural-networks-explained-9cc5188c4939
[7] https://cs231n.github.io/convolutional-networks/< br /> [8] https://www.jeremyjordan.me/semantic-segmentation/
[9] https://lmb.informatik.uni-freiburg.de/people/ronneber/u- net/
[10] https://arxiv.org/pdf/1505.04597.pdf
[11] https://towardsdatascience.com/pseudo-labeling-to-deal-with -small-datasets-what-why-how-fd6f903213af
[12] https://towardsdatascience.com/metrics-to-evaluate-your-semantic-segmentation-model-6bcb99639aa2
[ 13] https://www.youtube.com/watch?v=azM57JuQpQI
[14] https://www.tensorflow.org/tutorials/images/segmentation
ОБО МНЕ
Thank you so much for reading my article! You are welcome to follow me and give claps to me if you find it inspiring :) I am Branda, a current student studying in MSc Business Analytics at UT Austin. Don’t hesitate to email me at [email protected] or connect me on Linkedin to discuss more interesting ideas!