Как стать автором
Обновить

Как рисовать кровеносные сосуды с помощью машинного обучения

Время на прочтение2 мин
Количество просмотров3.7K

Всем привет!

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

О задаче

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

Но конкретно тут речь пойдет об ОКТ - А(Оптическая когерентная томография - Ангиография) [Часто ОКТ-А используется в офтальмологии - это про глаза]. Это метод визуализации данных с помощью отраженного назад света, и дальнейшего применения алгоритма SSAPGA. Дабы не засорять формулами, то прочитать подробнее можно здесь.

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

Карта движения сосудов, представленная в двухмерной плоскости.
Карта движения сосудов, представленная в двухмерной плоскости.

Решение поставленной задачи

На самом деле не так интересна одна такая карта движения сосудов в проекции глубина/ширина получается. На вход приходит трехмерный массив размера [512, 256, 256]. Нужна проекция “вид сверху”, чтобы получить карту движения сосудов.

Карта движения сосудов, проекция.
Карта движения сосудов, проекция.

Алгоритм SSAPGA дает неплохие результаты, но имеет и свои изъяны, такие как шумы, артефакты и т.д, которые мешают определить движение сосудов.

Было принято решение обратиться к нейронным сетям, а конкретнее взять UNet, обучиться на данных, где таргет функция это карты,  полученные с помощью  SSAPGA, а на входе логарифм амплитуды сигнала [Логарифм стандартная практика для данных с большим разбросом]. На самом деле звучит странно, что взять таргет из алгоритма и обучать на них сеть и в результате ждать другого результата, но все же результат получился неплохой - рассмотрим чуть ниже.

UNet
UNet

Результаты и вывод

Слева UNet, справа алгоритм.
Слева UNet, справа алгоритм.
Слева UNet, справа алгоритм.
Слева UNet, справа алгоритм.

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

Слева UNet, справа алгоритм.
Слева UNet, справа алгоритм.

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

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

Теги:
Хабы:
Всего голосов 8: ↑8 и ↓0+8
Комментарии14

Публикации

Работа

Data Scientist
46 вакансий

Ближайшие события