Медицинское решение разработала казахстанская компания ForUs Data, а инвестиции в проект PneumoNet составили более 63 млн тенге. В состав учредителей компании входит Ермек Шамуратов – в прошлом управляющий директор Казкоммерцбанка и разработчик платформ интернет-банкинга. К аналитической системе регулярно подключаются новые больницы, также казахстанской разработкой заинтересовались в России и Узбекистане. Как нейросеть распознает болезни и в чем ее преимущества над обычной диагностикой – рассказывает специалист по машинному обучению ForUs Data Иван Василенко.

В чем актуальность разработки?

Иван Василенко Forus data

Проблема заключается в том, что при постановке диагноза у трёх врачей может быть четыре разных мнения. По статистике, если врачи-рентгенологи изучают снимки независимо друг от друга, их результаты совпадают примерно в 70% случаев. Показатель, на самом деле не очень хороший. Конечно, если нескольких врачей посадить в одну комнату, они договорятся, и цифра будет 99%.

Доктора тоже иногда ошибаются, и чтобы минимизировать человеческий фактор при анализе рентгеновских снимков, мы использовали достижения в технологиях распознавания образов и машинного обучения. Система выявляет 17 заболеваний и патологий легких с точностью до 90 %, включая рак, пневмоторакс и пневмонию, вызванную COVID-19. Пневмонию система определяет еще точнее, в чем мы убедились, когда в 2020 году запустили пилотный проект с несколькими инфекционными больницами.

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

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

Пневмоторакс большого размера легко распознать на снимке. Но иногда недуг не сразу очевиден. Наша система научилась очень точно его выявлять, что мы проверили на международном соревновании для data-аналитиков. Американское общество радиологов выложило около 20 тысяч снимков с пневмотораксом, и от нашей нейронной сети требовалось научиться их точно распознавать. В том конкурсе мы заняли второе место.

Где хранятся данные пациентов?

Рентген или КТ-снимок поступает в специальный архив через локальный компьютер, где изображение анализирует нейросеть. Архив расположен в защищенном дата-центре, куда клиники могут отправлять исследования и получать результаты. В нескольких больницах мы установили свою систему с доступом к базе данных и специальные мониторы, а где-то предоставили рентген-оборудование с цифровыми детекторами. Обычно в базу данных ежедневно поступает от 800 до 1200 новых снимков, а иногда их количество доходит до 4000. Спрос на независимый анализ снимков вызван участившимися случаями пневмонии из-за коронавирусной инфекции COVID-19.

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

На графике показано соответствие между прогнозами модели и фактическими исходами.
Снизу – предсказания модели, а цвет столбцов диаграммы показывает фактические исходы заболевания.

У 48 больных модель не обнаружила серьезных угроз здоровью, и состояние 46 из них действительно улучшилось. 32 пациентам модель спрогнозировала ухудшение состояния, но благодаря своевременному вмешательству врачей, 15 человек пошли на поправку. Пока тестирование прогностической функции остановлено.

Насколько эффективна система и сможет ли она заменить врача?

Наше решение не призвано заменить человека и выступает только помощником врача. Диагноз пациенту ставит специалист. Также мы разработали систему для анализа результатов компьютерной томографии. У томографов бывает разное разрешение снимков, также на снимках встречаются артефакты — все это затрудняет распознавание. При скрининге врачи, в зависимости от опыта, обычно смотрят на образования размером больше одного сантиметра. На снимке может быть множество разных точек, и определить, что из них анатомическая особенность или подозрительное новообразование – большая проблема.

Наша система может находить образования диаметром меньше трех миллиметров и обращает внимание врача на возможные патологии.

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

Какие данные разработчики использовали для обучения модели?

По всем видам заболеваний у нас есть около 300 тысяч рентгеновских снимков, и около 1,5 тысяч исследований по КТ, в каждом из которых от 120 до 200 изображений. Библиотеками данных располагают научно-исследовательские центры, но не все готовы ими делиться. Например, чтобы получить данные от MIT, мне понадобилось пройти специальный онлайн-курс по работе с образцами биологических тканей и персональными данными пациентов. Только после этого университет выдал сертификат и предоставил доступ к снимкам.

Пример ответа модели врачу
В таком виде модель информирует врача о вероятных болезнях и подозрительных образованиях.

Для обучения нашей модели, мы использовали датасеты со снимками легких, за которыми обращались в зарубежные университеты. 1,5 тысяч снимков с подтвержденными случаями пневмонии (вызванной Covid-19) нам удалось запросить из Китая. Затем к ним добавились снимки из США, Германии и Израиля. При этом нам нужна была независимая разметка, чтобы мнения о диагнозах нескольких врачей совпадали. Мы работали с пятью казахстанскими специалистами из Института радиологии и других учреждений.   

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

Как нейросети распознают болезни?

Отличать один снимок от другого, классифицируя их по заболеваниям, компьютерные программы в России и США умели с 60 годов прошлого века. Благодаря нейронным сетям появилась возможность на основании одной последовательности данных, генерировать другую. Например, можно из нот либо текста генерировать музыку, или, как в нашем случае, генерировать картинку из картинки.

На «вход» нейронной сети мы подаем снимки легких и отдельно загружаем разметку с отмеченными патологиями, чтобы система научилась обнаруживать болезни и подозрительные образования.  Модель анализирует примеры и запоминает закономерности, благодаря чему может различать разные недуги по характерным признакам. 

Сравнение обнаружений модели и врача на снимках КТ.
Первая строка – врач и модель обнаружили обширное поражение легких. Вторая – врач обнаружил локальное поражение в одном легком и пропустил незначительный очаг в другом, который отметила модель. Третья – врач и модель ничего не обнаружили.

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

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

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

Коллектив ForUs Data
Разработчики ForUs Data

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

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