старший преподаватель, Ташкентский государственный технический университет им. И. Каримова, РУз, г. Ташкент
АЛГОРИТМЫ АНАЛИЗА И КЛАССИФИКАЦИЯ ПАТОЛОГИЙ НА РЕНТГЕНОГРАММАХ ГРУДНОЙ КЛЕТКИ С ИСПОЛЬЗОВАНИЕМ НЕЙРОННЫХ СЕТЕЙ
АННОТАЦИЯ
Статья посвящена повышению точности алгоритмов распознавания изображений и классификации патологий грудной клетки при легочных заболеваниях. Исследованы основные свойства патологии и методы применения рентгенологии при диагностике легочных заболеваний с помощью внедрения компьютерных технологий на основе методов построения нейронных сетей. Предложен метод распознавания изображений легких для их классификации, который обеспечивает высокую точность и скорость получения результатов. Разработана архитектура и модель сверточной нейронной сети для классификации информативных признаков для диагностики заболеваний легких. Предложен алгоритм обучения нейронной сети с учетом объема обучающей выборки и количества информации используемой в модели на базе языка Python и библиотеки TensorFlow.
ABSTRACT
The article is devoted to improving the accuracy of image recognition algorithms and classification of chest pathologies in pulmonary diseases. The main properties of pathology and methods of application of radiology in the diagnosis of lung diseases are investigated using the introduction of computer technologies based on methods of building neural networks. A method for recognizing lung images for their classification is proposed, which provides high accuracy and speed of obtaining results. The architecture and model of a convolutional neural network for the classification of informative signs for the diagnosis of lung diseases have been developed. An algorithm for training a neural network is proposed, taking into account the volume of the training sample and the amount of information used in the model based on the Python language and the TensorFlow library.
Ключевые слова: алгоритм, анализ, классификация, заболевание, легкие, нейронные сети, обучение, изображения, метод.
Keywords: algorithm, analysis, classification, disease, lungs, neural networks, learning, images, method.
Введение
Заболевания, связанные с органами дыхания, представляют важную проблему для здоровья человека. Под влиянием неблагоприятных факторов среды у многих людей развиваются хронические болезни легких. Такие болезни очень опасны, но своевременное обращение к специалистам помогает избежать тяжелых осложнений. Часто даже опытным специалистам тяжело поставить точный диагноз [1,2].
Компьютерные технологии помогают ускорить обследования, получить более точные сведения о заболевании легких. При этом внедрение компьютерных технологий с применением методов построения нейронных сетей обеспечило высокую точность и скорость проведения различных исследований для диагностики заболеваний легких. Нейронные сети моделируют процесс, протекающую в легких, и могут обучаться и исправлять ошибки [3]. Это позволяет применять нейронные сети в различных задачах диагностики заболеваний легких, таких как, распознавание изображений, классификация, прогнозирование, оптимизация и анализ медицинских данных. Нейронная сеть позволяет хранить важную информацию, находить закономерности в изображениях.
Целью работы является повышение точности алгоритмов распознавания изображений и классификации патологий грудной клетки при легочных заболеваниях.
Для исследования органов дыхания применяются различные методы рентгенологических исследований легких: рентгеноскопия; флюорография; рентгенография; компьютерная томография; магнитно-резонансная томография; позитронно-эмиссионная томография; бронхоскопия; транкоскопия. Среди всех исследованных методов для решения нашей задачи эффективными являются методы, относящиеся к рентгенологическим исследованиям, а именно флюорография и рентгенография. Эти методы наиболее распространены, не требуют больших временных затрат и изображения, полученные результаты с помощью этих методов, обладают достаточным набором информативных признаков для классификации. Отличительная особенность многих легочных заболеваний – сложная диагностика. Каждая причина отдельной патологии носит субъективный характер. Но существует ряд общих факторов, которые провоцируют возникновение и развитие процесса воспаления: неблагоприятная экологическая обстановка данного региона; наличие вредных производств; обострение других хронических заболеваний; нарушение электролитного баланса в организме, повышение уровня сахара; наличие вредных привычек.
Среди основных патологий легких выделяют: пневмонию, инфильтрацию, фиброз, гидроторакс, ателектаз, пневмоторакс, эмфизему. Все патологии имеют набор отличительных характеристик, с помощью которых возможно произвести классификацию.
Материалы и методы
В работе основное внимание уделяется задачам и методам распознавания, которые применяются для классификации изображений легких. Нейросетей подход обладает рядом преимуществ для работы с изображениями и отлично подходит для задачи классификации [3,4].
Условно нейронные сети можно разделить по совокупности критериев на статические и динамические. Статические нейронные сети – это сети прямого распространения. В таких сетях между слоями используется связь в одном направлении, и выход сети зависит только от входных параметров. Среди статических нейронных сетей выделяют: персептрон, сеть Кохонена, когнитрон; неокогнитрон; свёрточную нейронную сеть. К динамическим нейронным сетям относят сети, в которых используются динамические переменные. В таких сетях новое состояние сети зависит от предыдущего. Среди динамических нейронных сетей выделяют: нейронную сеть Хопфилда; нейронную сеть Коско; нейронную сеть Джордана; нейронную сеть Элмана.
Среди предложенных архитектур было решено воспользоваться сверточной нейронной сетью. Такая сеть обладает рядом преимуществ для работы с изображениями. Сеть поэтапно обрабатывает изображения с помощью карт свертки и отлично подходит для классификации [4-6].
Разработку нейронной сети можно разделить на несколько этапов: выбор модели сверточной нейронной сети; архитектура нейронной сети; обучение сети; тестирование сети; размещение сети на сервере.
Изображения легких обладают набором различных признаков класса. Одно изображение может одновременно относиться к нескольким классам патологий. Для достижения более высокой точности будет рассмотрена задача бинарной классификации патологий на рентгенограммах грудной клетки.
Результаты и обсуждение
Всего будет представлено два класса: с патологиями; без патологий.
Для анализа нейросетях алгоритмов классификации будет разработано несколько нейронных сетей с разными моделями. Чтобы повысить точность алгоритмов распознавания, для обучения будут применяться сегментированные изображения, на которых удалена вся лишняя информация, а также будут изменены и дополнены модели.
Сеть, которая покажет наилучшие результаты, будет размещена на сервере с возможностью удаленной классификации.
Для решения поставленной задачи нами выбрана сверточная нейронная сеть.
Преимущества сверточной нейронной сети: содержит меньше параметров, чем обычная полно связная сеть; устойчива к перемещению распознаваемого изображения.
Сверточная нейронная сеть – сеть прямого распространения, использующая особые операции для обработки данных. Сеть состоит из чередующихся слоев свертки и подвыборки. Свертка разбивает изображение на несколько пересекающихся фрагментов и выделяет участки с особыми признаками, которые обрабатываются с помощью матричного фильтра. В слоях подвыборки выбираются только самые выделяющиеся фрагменты, уменьшая размер изображения в несколько раз.
Таким образом, к основным задачам, связанным с распознаванием изображений, относят: классификацию; обнаружение (detection); сегментацию. Классификация – распределение изображений по классам. Сегментация – попиксельно классификация изображений. Предлагаемая сверточная нейронная сеть содержит: слои свертки; слои под выборки; полно связные слои [7,11].
Свертка позволяет найти объект на изображении независимо от его расположения. Изображение разбивается на несколько фрагментов, которые пересекаются между собой. Каждый фрагмент отдельно подается на вход нейронной сети. Для поиска определенного объекта, каждый фрагмент обрабатывается с помощью одинаковых весов, которые составляют ядро свертки. Используется несколько ядер свертки для поиска различных признаков. Значения интенсивности пикселя умножается на соответствующий элемент ядра свертки и суммируются. На выходе сверточного слоя получается меньшее изображение, содержащее только самые выделяющиеся участки. Далее к нейрону применяется нелинейная функция активации.
После сверточного слоя к сети присоединяется слой подвыборки. Основная задача слоя подвыборки – дополнительно уменьшить размер данных, сохраняя при этом только самые информативные участки. Подвыборка позволяет определять объекты разного размера. Затем выполняется этапы регулирования, которая устанавливает класс изображения по найденным признакам.
Для разработки было решено воспользоваться языком Python. Имеющийся ряд преимуществ в данном языке отлично подходит для создания сверточной нейронной сети. В качестве фреймворка был выбран Tensorflow. TensorFlow – это хороший выбор для моделей глубокого обучения. С помощью TensorFlow очень просто создавать новые сети и изменять существующие. TensorFlow позволяет передавать обучение и настраивать предметно-ориентированные пользовательские данные.
Для достижения наибольшей точности было решено воспользоваться моделями VGG16 и VGG19. Для каждой модели использовалось обучение с сегментированными и с обычными изображениями. Из моделей была взята только сверточная часть, выделяющая характерные признаки.
Предлагается следующая модель нейронной сети, которая основывается на модели VGG16 представлена, которая представлена на рисунке 1.
Рисунок 1. Модель сети на основе VGG16
В модели используется 13 слоев свертки, 5 слоев под выборки и 2 полно связных слоя. Размер узла свертки во всех слоях 3х3. В слоях под выборки выбирается максимальное значение из квадрата 2х2. Слои свертки и под выборки отвечают за выделение важных признаков изображений. Полно связная часть необходима для классификации изображений. Перед обучением все веса классификационной части определяются случайным образом, а затем меняются с помощью метода обратного распространения ошибки.
Слой flatten преобразует множество двумерных карт признаков в одномерный вектор. Полно связный слой Dense состоит из 256 нейронов. Функция активации используется полулинейная. Производная такой функции всегда равна 1 или 0, поэтому градиент не подвержен разрастанию или затуханию. Слой Dropout используются для регуляризации и предотвращения переобучения. Выходной слой Dense содержит количество нейронов равное количеству классов.
Исходные данные были загружены с сервера Kaggle. Изображения представлены в формате DICOM. Это медицинский формат, который позволяет выделить интересующие ткани на снимке. Из одного DICOM снимка было получено множество изображений формата PNG с разной степенью яркости. Архив изображений включает в себя 6 типов патологий и изображения без патологий. Метки класса пронумерованы в отдельном файле sample_labels.csv. Изображения были распределены таким образом, чтобы все изображения с патологиями оказались в одном каталоге, а все остальные в другом. Для подготовки данных была разработана отдельная программа, которая перемещает изображения с патологиями, указанными в файле sample_labels.csv, в отдельный каталог.
Для обучения и оценки качества модели используются генераторы: Генераторы нужны для преобразования изображений в вид пригодный для обучения нейронной сети. Для обучения сетей с сегментацией используется 3270 изображений, а для обучения с обычными изображениями –3825. Обучение происходит за 30 эпох.
Оценка классификатора определяется точностью, чувствительностью, специфичностью [10]. Точность зависит от количества всех изображений, по которым классификатор принял правильное решение. Чувствительность зависит от количества снимков с патологиями, которые классификатор распознал как с патологиями. Специфичность зависит от количества снимков без патологий, которые классификатор распознал как без патологий.
Классификатор, обученный на сегментированных снимках, распознает с большей точностью. Точность нейронной сети зависит не только от объема обучающей выборки, но и от количества информации в обучающей выборке и используемой модели.
Заключение
В работе были исследованы основные методы систем распознавания и архитектуры нейронных сетей, получены навыки разработки сверточных нейронных сетей для классификации изображений. Было установлено, что среди методов диагностики оптимальными являются флюорография и рентгенография. Они не требуют больших временных затрат. Изображения, полученные с помощью этих методов, обладают достаточным набором информативных признаков для классификации. Было доказано, что задачу распознавания можно успешно решить с помощью сверточных нейронных сетей, которые обладают рядом преимуществ для работы с изображениями.
Итогом проделанной работы является: нейронные сети, классифицирующие изображения на 2 категории с точностью порядка 77%; возможность удаленной классификации на сервере. Разработанные сети могут быть использованы специалистами для ускорения обследований легких.
Список литературы:
- Браженко Н.А. Туберкулез органов дыхания. Издательство: СпецЛит, 2012 г. – 368 стр.
- Мустафаев А.Г. Применение искусственных нейронных сетей для ранней диагностики заболевания сахарным диабетом // Кибернетика и программирование. 2016. № 2. С. 1-7. DOI: 10.7256/2306-4196.2016.2.17904.
- Осовский С. Нейронные сети для обработки информации. М.: Финансы и статистика, 2012. 344 с.
- Саймон Хайкин, Нейронные сети. Полный курс// Вильямс. 2016.
- Уэс Маккинни, Python и анализ данных. Издательство: ДМК Пресс, 2015 г. – 428 стр.
- Chen, M. Automated Segmentation of the Choroid in EDI-OCT Images with Retinal Pathology Using Convolution Neural Networks/ Min Chen, Jiancong Wang, Ipek Oguz, Brian L. VanderBeek, James C. Gee – Springer Cham, 2017 – 643 p.
- Hai Le, H. Automatic Detection of Singular Points in Fingerprint Images Using Convolution Neural Networks/ Hong Hai Le, authorNgoc, Hoa NguyenTriThanh Nguyen – Springer Cham, 2017 – 342 p.
- Jiang, H. Fingerprint Minutiae Detection Based on Multi-scale Convolution Neural Networks/ Huinan Jiang, Manhua Liu – Springer Cham, 2017 – 313 p.
- Wang, J. Predicting Best Answerers for New Questions: An Approach Leveraging Convolution Neural Networks in Community Question Answering/ Jian Wang,Jiqing Sun, HongfeiLin, Hualei Dong, Shaowu Zhang – Springer Singapore, 2016 – 267 p.
- Wang, L. Study on Image Classification with Convolution Neural Networks/ Lei Wang, Yanning Zhang, Runping Xi – Springer Berlin Heidelberg, 2015 – 235 p.
- Xiao, X. A Deep Learning Model of Automatic Detection of Pulmonary Nodules Based on Convolution Neural Networks (CNNs)/ Xiaojiao Xiao, Yan Qiang, Juanjuan Zhao – Springer Singapore, 2016 – 320 p.