iOS приложение для выявления рака кожи

Приложение использует технологии компьютерного зрения на основе OpenCV для диагностики онкологических заболеваний кожи. Обработка фото, сделанного при помощи специального объектива, занимает менее 0,1 секунды. Точность результата 80%.
Родинка – это доброкачественное новообразование кожи. Почти у каждого человека на теле имеется от 30 до 60 родинок. И почти всегда эти родинки безвредны.

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

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

Запрос

Онлайн-клиника общей практики озадачилась созданием приложения для обследования невусов.

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

Руководство клиники обратилось за помощью к КЕДР Solutions, когда приложение уже находилось в стадии разработки. Мы должны были перенести приложение с Python на C++ и улучшить алгоритмы компьютерного зрения.

Решение

Мы выполнили перенос приложения на C++, но наше сотрудничество с заказчиком этим не ограничилось.

Клиент был впечатлен нашим подходом к разработке и ее качеством и решил продолжить сотрудничество. Команде было поручено повысить точность обнаружения меланомы и оптимизировать производительность приложения для iOS.
Выполненные работы

  • Разработка мобильного приложения. Мы перенесли код с Python на C++ и интегрировали код C++ в приложение для iOS.
  • Компьютерное зрение. Мы создали уникальные алгоритмы обнаружения меланомы на основе OpenCV.
            Принцип работы
            1. Пользователь надевает на камеру своего смартфона специальный объектив и делает снимок родинки с помощью iOS-приложения.
            2. Приложение анализирует родинку и сообщает пользователю, есть ли вероятность меланомы или другого вида рака кожи.
            3. Подозрительные снимки отправляются специалисту для дополнительной диагностики.
            Алгоритмы компьютерного зрения
            Для создания интеллектуальной системы обнаружения рака кожи с помощью смартфона можно использовать технологию обработки изображений на основе OpenCV, либо алгоритмы машинного обучения, способные обучаться, используя данные.

            Применение алгоритмов машинного обучения потребовало бы длительного времени обработки.

            А наше приложение должно выдавать результат очень быстро, примерно через 10-100 миллисекунд после того, как была сделана фотография.

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

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

            Дерматологи используют метод ABCDE для отслеживания изменений в очагах пигментации:

            • А - Асимметрия: у родинки неправильная, или асимметричная, форма;
            • B - Граница: неровные, размытые края родинки;
            • C - Цвет: неравномерное распределение цвета;
            • D - Диаметр: более 6 мм;
            • E - Эволюция: родинка со временем меняет размер, форму или цвет.

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

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

            • Настройка цветового баланса - техника Adobe Photoshop, используемая в «авто уровнях»;
            • Функция нерезкого маскирования;
            • Фильтр резкости;
            • Гамма-коррекция для работы с подканалами исходного изображения;
            • Автоматическая настройка яркости и контрастности с опциональной обрезкой гистограммы;
            • Баланс белого;
            • Пользовательская кластеризация методом k-средних с предопределенным набором цветов.
            Процесс анализа гистограммы для корректного определения размеров родинки внутри приложения для диагностики рака кожи - КЕДР Solutions
            Анализ гистограмм
            Мы также реализовали различные техники удаления с изображения волосков, эффекта виньетки и бликов.

            С помощью наших сложных, но эффективных алгоритмов мы повысили точность обнаружения рака кожи с исходных 30% до 80%.

            Мы достигли целевой скорости обработки изображений на iPhone в 10-100 миллисекунд.
            Использованные технологии
            • Для получения PoC использовался язык Python в сочетании с библиотекой scikit-image.
            • Для конвертации алгоритмов с Python мы использовали C++ и библиотеку OpenCV.
            • Objective-C применялся для разработки мобильного приложения под iOS.
            • Алгоритмы, разработанные с помощью C++, были обернуты в Objective-C и интегрированы в мобильное приложение для iOS.

                    Итоги

                    Мы значительно улучшили алгоритмы обработки и распознавания изображений. Точность диагностики меланомы и других видов рака кожи увеличилась с 30% до 80%.

                    Несмотря на сложность алгоритмов, нам удалось сократить время обработки данных до менее чем 0,1 секунды, тогда как исходная версия приложения требовала 4-6 секунд для обработки изображения и выдачи результатов.

                    Приложение, которое мы помогли разработать, стало одним из победителей конкурса Bytes4Health Детского научно-исследовательского института Мердока.

                    Мы продолжили сотрудничество с компанией в других проектах.
                    Определение параметров невуса с точностью до 80% - Результат работы специалистов IT-компании KEDR Solutions
                    Определение параметров родинки
                    Точность диагностики меланомы:
                    80%

                    Награды проекта:
                    Победа на конкурсе Bytes4Health
                    Время обработки данных:
                    < 0,1 секунды

                    У КЕДР Solutions высококвалифицированная команда, с которой приятно работать. Оценка 5 однозначно.
                    Генеральный директор заказчика