Как мы сделали Telegram-бота, который распознает заболевания на коже по фото
Сейчас особо не удивишь чат-ботами, которые могут вести диалоги на естественном языке. Поэтому сегодня я расскажу о том, как мы делаем бота, который может видеть.
Меня зовут Кирилл, я уже более 7 лет занимаюсь различными проектами в Digital Health. Идеи по использованию технологий искусственного интеллекта у меня витали уже достаточно давно, но вплотную с ними работать начал около года назад. Реализовав несколько идей используя для обучения текстовые массивы данных и убедившись в отличных результатах, которые показывают нейросети, мне естественно захотелось попробовать поработать и с другими видами данных.
После недолгого анализа соревнований на Kaagle стало очевидно, что применение сверточных нейросетей для работы с медицинскими изображениями это одна из наиболее популярных тем для соревнований между Дата Саентистами.
Большое количество участников соревнований, наличие разнообразных датасетов медицинских изображений (рентгенограммы, МРТ, КТ и др.) создавали иллюзию, что участие в этих соревнованиях даст возможность реализовать какой-либо проект и внедрить его в реальную жизнь.
На практике это оказалось совсем не так: «потренироваться на котиках» и работа с узкоспециализированными медицинскими данными требует совершенно других подходов и ответственности. О применении технологий вроде распознавания злокачественных новообразований на снимках МРТ с помощью ИИ вообще можно забыть, не имея сильного лобби в учреждениях здравоохранения.
1 Этап: Baseline
Очень вовремя на глаза мне подвернулось соревнование ISIC 2017: Skin Lesion Analysis (анализ кожных заболеваний по дерматоскопическим снимкам). Он показался не таким сложным и я со своими знакомыми не долго думая решили попробовать свои силы в этом соревновании и параллельно с этой идеей принять участие в хакатоне по искусственному интеллекту AI Hackathon, который проходил 17–18 декабря 2017 года в ПВТ (Минск). На этом хакатоне и начался данный челлендж, который не заканчивается по сей день. Спалив не одну тысячу долларов на вычислительные ресурсы, перебрав несколько моделей и фреймворков нейронных сетей за эти два дня мы заслуженно ничего не выиграли))
Хочу поделиться уроками, которые мы вынесли из данного хакатона:
- Перед хакатоном следует делать глубокий рисерч того, как эту задачу пробовали решать до вас и какие методы изначально провальные;
- Не надо распыляться на несколько вариантов реализации задачи;
- Распределение фронта работ между участниками команды.
И самое главное: надо заниматься одновременной разработкой всех этапов с самого начала — как обучением нейросетей, так и сборкой прототипа для демонстрации. Есть большая вероятность, что под конец хакатона ваш прототип может рассыпаться. Столкнувшись с этой неудачей, мы не забросили эту идею, как это часто случается с другими проектами реализованные в рамках хакатона.
Поработав над ошибками уже через пару месяцев в начале 2018 года мы обучили нейронную сеть выдавать довольно неплохие результаты по классификации здоровых опасных родинок (где может развиться или уже развивается рак кожи).
2 Этап. Immersion
Во время работы над технологией распознавания рака кожи естественно встал вопрос о необходимости привлечения врачей-консультантов в области дерматологии. Благодаря их экспертизе мы вышли за рамки классификации родинок по категориям «хот-дог/ не хот-дог», так как помимо здоровых и опасных невусов (родинок) есть еще предраковые состояния, а также много различных доброкачественных новообразований на коже, которые обыватели также называют родинками.
Начав сотрудничество с дерматологами мы кардинально изменили датасет для обучения, расширив до двух десятков диагнозов и прекратили участие в ISIC Challenge 2017.
3 Этап. Accessibility
Дерматоскопия — это метод исследования, который применяется в дерматологии (науке о кожных заболеваниях) для более детального обследования различных новообразований кожи. Суть метода заключается в том, что с помощью специального увеличительного стекла (или другого увеличительного прибора) врач рассматривает кожные новообразования под большим увеличением прямо на теле пациента.
В среднем, ручные дерматоскопы имеют увеличение в 10 раз. Фотографии, сделанные через дерматоскопы безусловно имеют очень хорошее качество и детализацию. Их преимущество является и недостатком — для получения таких снимков безусловно нужен прибор дерматоскоп. Это сужает использование автоматического распознавания кожных заболеваний только для обладателей дерматоскопов и это как правило врачи-дерматологи.
Мы хотели же сделать технологию доступную для всех. Очевидным решением было использование фотоснимков, сделанных с помощью смартфонов.
Представьте, что ваш смартфон сможет помочь вам распознать вид кожного заболевания, определить степень риска для здоровья и дать рекомендации о дальнейших действиях!
Если описать все методы, которые мы пробовали и применяли для того, чтобы можно было анализировать снимки со смартфона, то получится целая диссертация по компьютерному зрению. Скажу лишь, что в апреле мы это сделали и решили, что пора получить обратную связь от первых пользователей.
4 Этап. Soft Launch
Самый быстрый способ сделать рабочую версию MVP в нашем случае было подключив наши нейросети через бота в Telegram. Это гораздо быстрее, чем разрабатывать мобильное приложение, а пользователям отправить фотографию родинки через бота гораздо проще, чем устанавливать отдельное приложение.
@Skinseption_bot — это бот в мессенджере Telegram. Ему достаточно отправить фотоснимок с кожными проблемами (бородавки, акне, угри, родинки и другие новообразования на коже) и он определит степень риска, вероятный диагноз и рекомендации по дальнейшим действиям. Бот поможет записаться на очный прием к нужным врачам: косметологам, дерматологам, дерматоонкологам.
Демо видео Telegram-бота
О запуске нашего бота мы рассказали в канале Технологии Будущего @Tech_ru, где получили первые отзывы. Англоязычную версию бота мы опубликовали на Producthunt. Самое приятное — что наш бот уже помог нескольким пользователям распознать опасные диагнозы и благодаря этому люди смогут своевременно обратиться со своей проблемой к врачам.
Сейчас мне нужна помощь коммьюнити Vc.ru — вы первые альфа-тестировщики и ваша обратная связь позволит сделать сервис лучше. Буду рад вашим отзывам, пишите мне в Телеграм — @Malkieler
Долгосрочные планы на будущее сейчас не строим — в приоритете это конечно точность распознавания и количество диагнозов. В ближайшие дни бот будет доступен и в Facebook messenger. Больше информации и демо видео (англ) на Producthunt: https://www.producthunt.com/posts/skina-bot
P.S. Telegram-бот @Skinseption_bot не должен использоваться для установки конечного диагноза или лечебных целей. Точный диагноз и курс лечения назначает только врач на очном приеме!
© vc.ru