Всем привет!

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

О задаче

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

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

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

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

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

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

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

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

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

UNet
UNet

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

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

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

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

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

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

Комментарии (10)


  1. Daddy_Cool
    26.07.2022 00:08
    +2

    Антиография сосудов... как рисовать сосуды... пока не начал читать, думал, что это что-то о таком... античном:

    Киаф. 550—540 гг. до н. э., Лувр


    1. Exosphere
      26.07.2022 00:46
      +1

      Когда впервые увидела эту статью, подумала о сообщающихся сосудах. А раз так, позволила себе дополнить заголовок. Думаю, @solovievnaне обидится.


      1. Daddy_Cool
        26.07.2022 00:58

        Да, название теперь понятнее, но теперь непонятным выглядит мой коммент! ))))))


        1. OBIEESupport
          26.07.2022 01:02
          +1

          Так надо сначала статью читать, а потом термины вспоминать. Годная статья, сам не смог решить ее недавно, ковырял по атласу тканей. Так у человека 99000 км сосудов, много не наковыряешь. Есть даже способ сквозь кожной биометрии (а-ля глазное дно).


        1. Exosphere
          26.07.2022 01:05

          Я для этого комментарий и написала, чтобы ваш не смотрелся странно :-) Для тех, кто запутается - в первоначальной версии речь шла просто о сосудах. На этом флуд заканчиваем, потому что статья крутая и обсуждение должно быть профессиональным ;-)


  1. kuil
    26.07.2022 09:44

    Ангиография


    1. solovievna Автор
      26.07.2022 09:50
      +1

      Спасибо..:)


  1. Mortello
    26.07.2022 14:40

    Насчёт [512, 256, 256] вопрос, третья размерность это 256 шагов поворота на полный круг?


    1. solovievna Автор
      26.07.2022 22:30

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


  1. Tarzan3668
    27.07.2022 12:07

    У вас классическая Unet или своя?

    Какой у вас тензор в самом низу, в bootlneck ?

    Мы решали задачу с детекцией тропинок на фото с дрона. Сеть должна была игнорировать проложенные тротуары, дорожки и помечать протоптаные. Фото как городские, так и промзоны и лесные массивы. Была сделана обобщенная unet которая из любого изображения проводила данеые через тензор (1,1) с многими пробросами. Причем в понижающие блоки взяты предобученные слою VGG16/19. Важна аугментация

    Сеть справлялась очень точно.

    Задачи в целом очень похожи!