«Точность анализа — 96%»: я создал бесплатное прило­жение для проверки родинок

История читателя
25
«Точность анализа — 96%»: я создал бесплатное прило­жение для проверки родинок

Это история из Сообщества. Редакция задала вопросы, бережно отредактировала и оформила по стандартам Журнала

Аватар автора

Редакция интернета

оценила разработку

В потоке «Разработчик пишет» читатели рассказывают об опыте создания приложений, игр и ботов.

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

Предыстория

Аватар автора

Денис Втулкин

проверяет кожу

Страница автора

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

Сложность в том, что признаки опасных изменений — размер, форма и цвет — могут быть не всегда очевидными. Конечно, лучше проконсультироваться с врачом, но что делать, если хочется как можно скорее понять, стоит ли волноваться?

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

Однажды я искал в Google Play удобное приложение для анализа кожи. Казалось бы, в таком сервисе должно быть минимум функций: нажал пару кнопок — получил ответ. Но в реальности все оказалось намного сложнее. Большинство приложений требовало регистрироваться, заполнять длинные анкеты и платить за каждую диагностику. Это вызывало разочарование — ну разве нельзя сделать что-то простое и бесплатное?

Подумал, а почему бы мне не создать такое мобильное приложение. Недавно я как раз начал изучать программирование — язык Kotlin. В качестве практики навыков и решил заняться разработкой.

Из-за недостатка опыта особо не переживал, ведь сейчас даже новичку доступны мощные инструменты машинного обучения, которые все значительно упрощают. Код своими руками уже можно не писать. Во многие приложения встроен умный помощник, которому достаточно человеческим языком объяснить, что надо сделать. Он в ответ все быстро и точно напишет за вас.

Разработка приложения

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

Сначала мне нужно было найти большой набор изображений кожных образований — как доброкачественных, так и злокачественных. К счастью, в открытом доступе есть несколько крупных датасетов, так что этот этап занял всего пару кликов. Я использовал данные из открытых хранилищ Kaggle и Dataset Ninja.

Всего загрузил 24 тысячи изображений.

После этого я адаптировал нейросеть для анализа кожи. Загрузил 90% всех изображений из датасета для обучения, а оставшиеся 10% использовал для проверки точности. Конечно, результат не идеален: возможны как ложноположительные, так и ложноотрицательные результаты — об этом всегда стоит помнить. Тесты показали, что точность анализа составляет 96%.

С помощью TensorFlow Lite я адаптировал модель для мобильных устройств, а интерфейс сделал максимально простым и понятным. Благодаря этому приложение хорошо работает даже на старых смартфонах. Оно называется Melanoma Detector и доступно в Google Play. Версии для iOS у меня нет в планах.

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

В приложении минималистичный дизайн
В приложении минималистичный дизайн

Мое приложение не требует ни регистрации или ввода личных данных, ни заполнения анкет, ни платы за использование. Для обеспечения конфиденциальности изображения не отправляются на внешние сервера — все данные обрабатываются локально на устройстве.

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

Итоги и планы

Мне хотелось создать инструмент, который будет открыт каждому. Раннее обнаружение меланомы может спасти жизнь, поэтому доступ к такому инструменту не должен зависеть от финансовых возможностей. Буду считать разработку своим вкладом в повышение осведомленности о здоровье кожи.

Сейчас у приложения около 300 пользователей. Я очень рад обратной связи — благодаря отзывам понимаю, что можно исправить и улучшить. Например, заменить в результатах анализа две категории на шкалу вероятности от одного до пяти. А еще добавить инструмент для определения размера пятна. В будущем планирую расширить локализацию и загрузить новые датасеты — конечно, когда они появятся в базах данных.

Редакция интернетаКакого приложения для проверки здоровья вам не хватает?
  • Boris KölnВсе псевдо-медицинские приложения, которые не прошли независимых тестов, не должны быть допущены до маркета. А тесты должны быть на уровне тестирования новых лекарств. Вы можете возразить, что это лишь программа, которая дает советы. Нет. Совет тоже может убить: ложно-отрицательный результат может успокоить человека, он не обратится к врачу и упустим момент, когда еще можно было помочь.40
  • Денис ВтулкинBoris, как бы то ни было это приложение, действительно, не является медицинским инструментом, о чем пользователь проинформирован. И здесь нет обмана. Были взяты общедоступные инструменты: предобученная нейросеть от Гугл и размеченные датасеты. Т.е. нейросеть в меру своих возможностей и качества датасетов пытается классифицировать изображение. У меня возникла личная потребность в таком приложении и я подумал, почему бы не поделиться им и с другими.7
  • Дмитрий БалыбердинБудет ли на iOS?1
  • Денис ВтулкинДмитрий, к сожалению нет.1
  • падал наш последний снегна iOS у меня стоит приложение ПроРодинки, советую,много полезной информации. Важно, что там сразу же можно связаться с экспертом и записаться на прием в клиниках города. Ну и конечно же нужно постоянно проходить обследование2
  • Тётушка ПоРезультаты тестирования Вашего приложения. Выкинуло на первую страницу с информацией - 8 раз. Одна родинка - negative Просто селфи - positive. Ну спасибо, буду знать, что моя моська похожа на меланому. Родинок на лице нет. Тут во мне проснулся тестировщик. Не считала количественно результаты, но качественно так: Фото любых родинок - negative Фото НЕродинок (гладкая кожа, поросёнок, мандарин, кофе) - все positive. Но в большинстве случаев глючит и выкидывает на страницу информирования.23
  • Тётушка ПоМои меланомы позитивные5
  • Тётушка ПоСемена томата? Нет! Меланома! Не работает Ваше приложение на 96%. Интересно, а как Вы тестировали?4
  • Гусь лапчатыйПри наличии Skinive зачем еще что-то? Мне оно отлично подсказало проблемные родинки.3
  • Udi ErzaМне подход и приложение очень понравились. Но практического смысла я не вижу, ведь если возможны ошибки в его работе, то всё равно надо идти к врачу. Поэтому лучше сразу идти к врачу, а не пользоваться приложением, в котором нет уверенности.20
  • горе луковоея представляю лицо сверх мнительных товарищей при positive1
  • горе луковоеТётушка, блин, ну вот и как их есть потом при таком результате3
  • горе луковоеДенис, судя по комментариям не справляется ваше приложение с поставленной задачей2
  • Тётушка Погоре, меня не пугают неработающие приложения))) Хотя я оооочень жду ответ автора.0
  • Заясь, заясьКакой процент родинок злокачественные? Думаю, меньше 4%. Если просто говорить про каждую родинку "доброкачественная", точность будет выше данного приложения ((3
  • Скажи, ктоТакие приложения неэтичны и опасны4
  • Сергей ВарламовТётушка, целую банку позитвных набрали!2
  • Anna TappensДерматологи и онкологи выражают искреннюю благодарность команде Т-Ж (за распространение ) и разработчику за создание. Теперь увеличится - количество мнительных пациентов с positive - количество тех, кто забьет на посещение врача, ведь "приложенька показала negative"2
  • Михаил ГородиловДенис, Вы большой молодец. Так держать!0
  • Николай Кривоноговпоиск по birthmark в Dataset Ninja не увенчался успехом0
  • Kir AtНиколай, искать надо по ключам nevus, skin lesions, melanoma0
  • Kir Atпрактически все свободно распространяемые датасеты патологий кожи содержат дерматоскопические снимки (поляризованный свет и 20х увеличение) и не подходят для обучения нейросети которая будет использоваться для анализа родинок по фото со смартфона тк изображения получены с разного типа устройств. Другие нюансы хорошо описаны в этой статье - https://skinive.com/ru/skin-disease-datasets/ Ну и в целом, сделать прототип конечно можно достаточно быстро, но сделать адекватно работающее приложение занимает годы. Рекомендую почитать историю создания приложения Skinive - https://vc.ru/tribuna/660545-skolko-nuzhno-vremeni-dlya-zapuska-na-rynok-medicinskogo-ai-prilozheniya-ili-istoriya-sozdaniya-skinive3
  • ЕленаНу раз в планах нет приложения для ios, то никакой обратной связи дать не могу, простите))0
  • Светлана СтукаловаKir, спасибо за ссылки.0