Известия РАН. Серия физическая, 2019, T. 83, № 12, стр. 1655-1658

Использование нейросети для выделения легких на рентгеновских изображениях

Р. Ш. Минязев 1, А. А. Румянцев 1, А. А. Баев 2*, Т. Д. Баева 2

1 Федеральное государственное бюджетное образовательное учреждение высшего образования “Казанский национальный исследовательский технический университет имени А.Н. Туполева-КАИ”
Казань, Россия

2 Федеральное государственное бюджетное образовательное учреждение высшего образования “Поволжский государственный технологический университет”
Йошкар-Ола, Россия

* E-mail: kruzenshteyn@yandex.ru

Поступила в редакцию 20.06.2019
После доработки 20.07.2019
Принята к публикации 27.08.2019

Полный текст (PDF)

Аннотация

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

ВВЕДЕНИЕ

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

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

ИСПОЛЬЗУЕМЫЕ ДЛЯ ОБРАБОТКИ СНИМКОВ ПОДХОДЫ

В рамках рассматриваемой задачи мы имеем дело с рентгеновскими чернобелыми изображениями легких в специальном формате медицинских снимков DICOM. Основную часть снимка занимают легкие и позвоночник, пиксели изображения представлены в формате JPG в кодировке RGB с 256 оттенками серого. На снимке, как на обычной картинке, могут встречаться скопления битых пикселей, вследствие загрязнения объектива медицинского аппарата. Этот шум может повлиять на качество обучения основной нейросети, классифицирующей снимки. Задача предобработки снимков заключается в удалении этого шума и фрагментном выделении легких и позвоночника на флюорографических снимках [2].

Существующие возможные подходы к решению данной задачи:

1) экспертное обнаружение путем анализа гистограмм для строк и столбцов изображения;

2) выделение контуров с помощью “скользящей” двухпороговой бинаризации;

3) использование комбинаций фильтров: медианный, усредняющий, гауссов;

4) анализ гистограмм цвета фрагментов изображения полносвязной нейронной сетью с помощью K-means и Random Forest;

5) классификация фрагментов сверточной нейронной сетью.

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

АЛГОРИТМ ВЫДЕЛЕНИЯ ЛЕГКИХ И ПОЗВОНОЧНИКА НА СНИМКЕ

Был разработан программный модуль на языке Python с использованием библиотеки Tensorflow [4], представляющий собой нейросеть глубокого обучения, построенную по технологии сверточной нейронной сети CNN [5] с архитектурой Inception Resnet V2 с набором базовых блоков 1A2B1C (MaxPooling, Batch8) [6]. Дополнительно был разработан набор скриптов для автоматизированного решения задач деления изображения на фрагменты, выделения области позвоночника и других. В рамках принятого подхода исходное изображение разделяется на фрагменты, формируя матрицу элементов 32 × 32, каждый из которых проходит бинарную классификацию нейронной сетью. Выделяемые классы: легкие, другое. Соотношение количества фрагментов классов составляет в среднем 1/3 для снимка. После классификации на изображении математически определяется область позвоночника (п. 3 алгоритма) и связанные с ней фрагменты матрицы. В качестве обучающей выборки используются 30 среднестатистических флюорографических рентгеновских снимков из всего объема, образующих 24000 фрагментов с соотношением классов 50%/50% с равномерным отбором по классу фрагментов без легких из-за их статистического превосходства.

Для проверки результатов работы обученной нейросети используется отдельная тестовая выборка из 5000 фрагментов без пересечений с обучающей и тем же соотношением классов. Формирование фрагментов производилось вручную при автоматизированной поддержке с минимальной избыточностью. В качестве критерия для выделения использовались только легкие из-за низкого качества результатов выделения при включении фрагментов с позвоночником в виде избыточных костных областей. При тестировании итоговый средний результат правильной классификации на выделенные два класса обученной нейросетью фрагментов составил 93.84% по классу другое, результаты тестирования представлены на рис. 1.

Рис. 1.

Анализ распознавания фрагментов рентгеновского снимка вспомогательной нейросетью.

Общий алгоритм обработки снимков

1. Формирование двоичной матрицы принадлежности к классу “Легкие” путем сравнения степени принадлежности с некоторым экспериментально определенным пороговым значением для максимально качественного выделения.

2. Применение стандартного медианного фильтра 3 × 3 по обоим классам в матрице принадлежности с формированием вещественных значений. В дальнейшем используется пороговое значение 0.5 при работе с матрицей.

3. Выделение области позвоночника на отдельной копии матрицы с фильтром 7 × 7 специальным алгоритмом поэлементного анализа матрицы принадлежности: проход слева направо с целью обнаружения двух точек в разных множествах для верхней и нижней части изображения, отрисовка линий и полигона в матрице принадлежности по найденным точкам. Область класса легких на дальнейших стадиях теперь включает и позвоночник.

4. Алгоритм обнаружения островов лишнего выделения легких размером до 50 фрагментов поиском в глубину [7].

5. Сглаживание контуров легких собственной реализацией медианного фильтра 3 × 3 по классу фрагментов без легких с пороговым значением больше 4/8 фрагментов.

6. Алгоритм обнаружения островов невыделенных легких с теми же параметрами.

7. Закрашивание фрагментов без легких черным цветом в соответствии с итоговыми значениями в матрице принадлежности.

После обработки всех фрагментов, подаваемых на вход обученной нейросети, формируются вещественные выходные значения (0–1) принадлежности к классам “Легкие” и “Другое”, образующие матрицу вероятностей соответствия первому классу.

ОЦЕНКА ЭФФЕКТИВНОСТИ ПРЕДОБРАБОТКИ

С помощью разработанной вспомогательной нейросети была выполнена предобработка всей исходной Казанской базы рентгеновских снимков легких. Каждый исходный снимок размером 512 × 512 пикселей был поделен на матрицу фрагментов 32 × 32. Полученные фрагменты пропускались через обученную нейросеть и разделялись на классы, дальнейшая обработка проводилась согласно описанному выше алгоритму. Примеры исходного и предобработанного снимков с закрашенной черным цветом не интересующей нас областью представлены на рис. 2. В результате была получена база предобработанных рентгеновских снимков, которая была использована для обучения разработанной ранее [1] основной нейросети. Для оценки эффекта от предобработки снимков было проведено сравнение качества работы основной нейросети в случае использования для обучения исходной необработанной базы снимков, предобработанной базы снимков и предобработанной базы снимков с использованием системы кодирования HSV вместо RGB. Оценивалась тестовая выборка 21 064 фотографий из Казанской базы снимков, по которой отдельно без пересечений проводилось обучение: 10 532 – норма, 10 532 – патологии. Подсчитывалось количество снимков, которые определялись как норма, эта цифра составляла величину уменьшения объема работы врача (КПД системы), и количество снимков с патологией, определявшихся как норма с вероятностью выше уровня доверия, это значение определяет вероятность ошибок нейросети. Для хранения метаданных и базы снимков использовалась СУБД PostgreSQL с репликациями [8].

Рис. 2.

Примеры снимков: исходный, с выделенным позвоночником, итоговый обработанный.

Результаты для Казанской исходной базы рентгеновских снимков с архитектурой основной нейросети 1A2B1C (MaxPooling, Batch8):

− уровень доверия 0.8: уменьшение объема работ 62.8%; ошибок 11.1% (111 шт.);

− уровень доверия 0.9: уменьшение объема работ 45.7%; ошибок 5.7% (57 шт.).

Результаты для Казанской предобработанной базы рентгеновских снимков с архитектурой основной нейросети 1A2B1C (MaxPooling, Batch8):

− уровень доверия 0.8: уменьшение объема работ 62.5%; ошибок 9.5% (95 шт.);

− уровень доверия 0.9: уменьшение объема работ 43.0%; ошибок 4.2% (42 шт.).

Результаты для Казанской предобработанной базы рентгеновских снимков при использовании системы кодирования HSV вместо RGB на увеличенной архитектуре основной нейросети 8A20B4C (MaxPooling, Batch8):

− уровень доверия 0.8: уменьшение объема работ 59.5%; ошибок 9.6% (59 шт.);

− уровень доверия 0.9: уменьшение объема работ 43.0%; ошибок 4.9% (49 шт.).

ЗАКЛЮЧЕНИЕ

Проведенные исследования показали эффективность использования разработанной вспомогательной нейросети для выделения областей с легкими и позвоночником на рентгеновских флюорографических снимках, качество классификации фрагментов составило почти 94%. Предобработка снимков не принесла повышения качества работы основной нейросети по показателю “уменьшение объема работы для врач”, но дало уменьшение количества ошибок при классификации снимков нейросетью. Использование системы кодирования HSV вместо RGB для кодирования предобработанных снимков значительного эффекта при обучении основной нейросети с увеличенным количеством базовых блоков не принесло. Предложенный подход может быть использован не только для обработки снимков, но и для решения других прикладных задач, в частности для поиска повреждений в трубах газопроводов [9] при обработке числовых данных результатов измерений.

Работа выполнена при финансовой поддержке Министерства науки и высшего образования РФ, Государственное задание по проекту № 8.8017.2017/БЧ.

Список литературы

  1. Минязев Р.Ш., Румянцев А.А., Дыганов С.А. и др. // Изв. РАН. Сер. физ. 2018. Т. 82. № 12. С. 1685; Minyazev R.Sh., Rumyantsev A.A., Dyganova S.A. et al. // Bull. Russ. Acad. Sci. Phys. 2018. V. 82. № 12. P. 1529.

  2. Дюдин М.В., Томакова Р.А., Томаков М.В. // Биомед. радиоэлектрон. 2014. № 9. С. 12.

  3. Hoo-Chang Sh., Kirk R., Le L. et al. // IEEE Conf. on Comp. Vision and Pattern Recogn. (Las Vegas, 2016). P. 2497.

  4. Коэльо Л. Построение систем машинного обучения на языке Python. 2-е изд., М.: ДМК Пресс, 2016. 302 с.

  5. Szegedy C., Liu W., Jia Y. et al. // IEEE Conf. on Comp. Vision and Pattern Recogn. (Boston, 2015). P. 2559.

  6. He K., Zhang X., Ren S. et al. // IEEE Conf. on Comp. Vision and Pattern Recogn. (Las Vegas, 2016). P. 770.

  7. Htet Thazin Tike Thein // Adv. Comp. Sci. Int. J. ACSIJ. 2014. V. 3. № 7. P. 67.

  8. Gibadullin R.F., Vershinin I.S., Minyazev R. Sh. // IEEE Int. Conf. Indust. Engin. Appl. Manufact. (Saint-Petersburg, 2017). Sect 6. P. 1.

  9. Saifullin E.R., Ziganshin Sh.G., Vankov Y.V. et al. // J. Fund. Appl. Sci. 2017. V. 9. № 2. P. 1139.

Дополнительные материалы отсутствуют.