Рентген пневмонии описание


Основы. ОГК. Пневмонии. Рентгенодиагностика пневмоний

Пневмонии

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

Крупозная (долевая) пневмония характеризуется поражением доли или нескольких долей легкого и вовлечением в процесс плевры.

Этиология и патогенез

Наиболее часто (до 90 % случаев) крупозную пневмонию вызывают пневмококки всех типов; значительно реже - клебсиелла, стафилококк, стрептококк. Мужчины болеют в 1,5 раза чаще, чем женщины. В основе заболевания лежит гиперергическая реакция на пневмококки, которые присутствуют в носоглотке у 10-60 % здоровых людей. Для развития крупозной пневмонии необходимы предрасполагающие факторы, например, изменения в системе легочной защиты, а также переохлаждение, хронические заболевания легких, сердца, опухоли, грипп и т.д.

Заболевание проходит ряд стадий. В стадию прилива (1-3-й день болезни) экссудат, содержащий пневмококки и большое количе

anjanatiha / Обнаружение пневмонии на основе рентгеновских изображений грудной клетки с глубоким обучением: обнаружение пневмонии на рентгеновских изображениях грудной клетки с использованием сверточной нейронной сети и предварительно обученных моделей

перейти к содержанию Зарегистрироваться
  • Почему GitHub? Особенности →
    • Обзор кода
    • Управление проектами
    • Интеграции
    • Действия
    • Пакеты
    • Безопасность
    • Управление командой
    • Хостинг
    • мобильный
    • Истории клиентов →
.

Deep Learning для обнаружения пневмонии по рентгеновским снимкам | Абхинав Сагар

Непрерывный конвейер для обнаружения пневмонии по рентгеновским снимкам

Застрял за платным доступом? Щелкните здесь, чтобы прочитать полную историю с помощью моей ссылки друга!

Риск пневмонии огромен для многих, особенно в развивающихся странах, где миллиарды людей сталкиваются с энергетической бедностью и полагаются на загрязняющие виды энергии. По оценкам ВОЗ, ежегодно более 4 миллионов случаев преждевременной смерти происходят от болезней, связанных с загрязнением воздуха в домашних условиях, включая пневмонию.Ежегодно более 150 миллионов человек заражаются пневмонией, особенно дети в возрасте до 5 лет. В таких регионах проблема может усугубиться из-за нехватки медицинских ресурсов и кадров. Например, в 57 странах Африки нехватка составляет 2,3 миллиона врачей и медсестер. Для этих групп населения точный и быстрый диагноз означает все. Это может гарантировать своевременный доступ к лечению и сэкономить необходимое время и деньги для тех, кто уже находится в бедности.

Этот проект является частью рентгеновского снимка грудной клетки (пневмония), проводимого на Kaggle.

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

  1. scikit-learn
  2. keras
  3. numpy
  4. pandas
  5. matplotlib

Набор данных можно загрузить с веб-сайта kaggle, который можно найти здесь.

Без лишних слов, давайте начнем с кода.Полный проект на github можно найти здесь.

Начнем с загрузки всех библиотек и зависимостей.

Затем я показал несколько нормальных изображений и изображений пневмонии, чтобы просто посмотреть, насколько они отличаются невооруженным глазом. Ну не очень!

Образцы изображений

Затем я разделил набор данных на три набора - обучающий, проверочный и тестовый.

Затем я написал функцию, в которой я немного увеличил данные, передал в сеть изображения обучающего и тестового набора.Также я создал ярлыки для изображений.

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

Затем я определил пару генераторов данных: один для данных обучения, а другой - для данных проверки. Генератор данных , способен загружать необходимый объем данных (мини-пакет изображений) непосредственно из исходной папки, преобразовывать их в обучающие данные (поданные в модель) и обучающие цели (вектор атрибутов - сигнал наблюдения).

Для своих экспериментов я обычно устанавливаю batch_size = 64 . В общем, значение от 32 до 128 должно работать. Обычно вам следует увеличивать / уменьшать размер пакета в зависимости от вычислительных ресурсов и производительности модели.

После этого я определил некоторые константы для дальнейшего использования.

Следующим шагом было построение модели. Это можно описать в следующих 5 шагах.

  1. Я использовал пять сверточных блоков, состоящих из сверточного слоя, максимального объединения и пакетной нормализации.
  2. Поверх него я использовал плоский слой, а затем четыре полностью связанных слоя.
  3. Также в промежутках я использовал дропауты, чтобы уменьшить переобучение.
  4. Функция активации была Relu повсюду, за исключением последнего слоя, где она была Sigmoid, поскольку это проблема двоичной классификации.
  5. Я использовал Адама в качестве оптимизатора и кросс-энтропию в качестве потерь.

Перед обучением модель полезно определить один или несколько обратных вызовов. Довольно удобные: ModelCheckpoint и EarlyStopping .

  • ModelCheckpoint : когда обучение требует много времени для достижения хорошего результата, часто требуется много итераций. В этом случае лучше сохранять копию наиболее эффективной модели только по окончании эпохи, улучшающей показатели.
  • EarlyStopping : иногда во время обучения мы можем заметить, что разрыв в обобщении (то есть разница между обучением и ошибкой проверки) начинает увеличиваться, а не уменьшаться. Это симптом переобучения, который можно решить разными способами ( уменьшает емкость модели , увеличивает обучающие данные , увеличивает данные , регуляризация , выпадение и т. Д.).Часто практичным и эффективным решением является прекращение тренировок, когда разрыв в обобщении ухудшается.
Ранняя остановка

Затем я обучил модель для 10 эпох с размером пакета 32. Обратите внимание, что обычно больший размер пакета дает лучшие результаты, но за счет более высокой вычислительной нагрузки. Некоторые исследования также утверждают, что существует оптимальный размер пакета для достижения наилучших результатов, который можно найти, потратив некоторое время на настройку гиперпараметров.

Давайте визуализируем графики потерь и точности.

Точность в сравнении с эпохой | Loss vs Epoch

Пока все хорошо. Модель сходится, что можно наблюдать по уменьшению потерь и потерь проверки с эпохами. Кроме того, он может достичь точности проверки 90% всего за 10 эпох.

Давайте построим матрицу неточностей и получим некоторые другие результаты, такие как точность, отзывчивость, оценка F1 и точность.

 МАТРИЦА НЕИСПРАВНОСТЕЙ ------------------ 
[[191 43]
[13 377]]

ТЕСТОВЫЕ МЕТРИКИ ------------- ---------
Точность: 91.02564102564102%
Точность: 89.76190476190476%
Отзыв: 96.66666666666667%
F1-оценка: 93.08641975308642

ПОЕЗДНАЯ МЕТРИКА ----------------------
Поезд: 94.23

Модель может достигать точности 91,02%, что неплохо, учитывая размер используемых данных.

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

Соответствующий исходный код можно найти здесь.

Приятного чтения, удачного обучения и удачного программирования!

Если вы хотите быть в курсе моих последних статей и проектов, подписывайтесь на меня на Medium.Вот некоторые из моих контактных данных:

.

GitHub - mxn170019 / Обнаружение пневмонии с использованием рентгеновских снимков

перейти к содержанию Зарегистрироваться
  • Почему GitHub? Особенности →
    • Обзор кода
    • Управление проектами
    • Интеграции
    • Действия
    • Пакеты
    • Безопасность
    • Управление командой
    • Хостинг
    • мобильный
    • Истории клиентов →
    • Безопасность →
  • команда
  • предприятие
.

Смотрите также