Разработать сервис для ранней детекции и классификации рака кожи, с использованием ИИ. Приложение направлено на помощь пользователям и медицинским специалистам в выявлении подозрительных новообразований кожи путем автоматического анализа изображений потенциально проблемных участков кожи.
Зачастую диагностика рака кожи происходит на поздних стадиях, что увеличивает смертность. Используя методы машинного обучения, данное приложение поможет в раннем выявлении подозрительных новообразований, таких как меланома, базальноклеточный рак и другие. Это позволит приоритизировать случаи, требующие немедленного внимания, сократить время до постановки диагноза и повысить вероятность успешного лечения.
- Точная детекция и определение типа рака на загруженном изображении - измеряемое путем проверки на соответствие оценкам дерматологов, онкологов.
- Вовлеченность и удовлетворенность пользователей - обратная связь, отзывы и тд.
- Загрузка изображения проблемного участка кожи пользователем (в том числе, медицинским специалистом),
- Обработка изображения с использованием ML-модели (YOLO),
- Результат: обнаружила ли модель угрозу рака, к какому типу рака новообразование может принадлежать
- Обеспечение высокой точности и надежности анализа состояния кожи
- Строгие требования к защите данных и конфиденциальности
- Соответствие медицинским стандартам и регуляторным требованиям (FDA,др.)
- Поддержка основных форматов изображений (JPEG, PNG)
- Поддержка стандартных форматов медицинских изображений (DICOM)
- Масштабируемость системы
- Быстрая обработка изображений (не более 5 секунд)
- Разработка функционального прототипа, который сможет точно обнаруживать проблемы кожи на загруженных фотографиях
- Проверка точности и полезности приложения с помощью тестирования медицинскими сотрудниками, другими пользователями и сбора обратной связи
- Заложить техническую основу для будущих итераций
- Пользователь загружает фотографию новообразования в приложение
- Система анализирует фотографию и определяет классификацию проблемы
- Пользователи предоставляют отзывы о точности анализа
- Собирается обратная связь для улучшения системы
- Доля положительных отзывов пользователей > 80%
- Точность детекции > 80%
- Высокая чувствительность (recall) для минимизации пропуска опасных случаев > 90%
- Время обработки < 5 секунд
- Удобство использования (SUS > 75 %)
- Стабильность работы системы (Uptime > 90 %)
- Улучшить возможности анализа кожи для обнаружения более широкого спектра проблем
- Изучить возможность интеграции с сервисами, предоставляющими дистанционные консультации с врачами-дерматологами и т.п.
- Разработать мобильные приложения и другие формы для улучшения пользовательского опыта
- Разработка MVP с детекцией меланомы и кожных дефектов по фото
- Обеспечение интуитивно понятного пользовательского интерфейса для загрузки фотографий и просмотра результатов анализа
- Возможность отслеживать улучшение состояния кожи со временем
- Разработка мобильного приложения
- Полноценная медицинская диагностика
- Автоматическое формирование планов лечения
- Телемедицинские консультации
- Модульная и масштабируемая архитектура
- Comprehensive automated testing suite to ensure reliability and regression testing
- Четкая документация и шаблоны проектирования (для облегчения дальнейшей разработки и адаптации новых членов команды)
- Deployment pipeline, поддержка CI/CD
- Расширенная аналитика и рекомендации по дополнительной диагностики и лечению
- Расширенный набор возможностей по обнаружению состояния кожи
Описание всех общих предпосылок решения, используемых в системе – с обоснованием от запроса бизнеса: какие блоки данных используем, горизонт прогноза, гранулярность модели, и др.
- Неизменная актуальность проблемы и потребность в ранней диагностике рака
- Развитие технологий компьютерного зрения
- Доступность ML-библиотек для детекции объектов
Какие блоки данных:
- Мы будем использовать набор данных фотографий новообразований с подтвержденными диагнозами.
Горизонт прогноза:
-
Анализ состояния кожи, предоставляемые приложением, будут основываться на текущем состоянии кожи пользователя по одной фотографии, без долгосрочного прогнозирования
-
Целевая точность моделей обнаружения состояния кожи - достижение не менее 80% точности и полноты, подтвержденных оценками дерматологов.
- Анализ изображений:
- Внедрение моделей компьютерного зрения для обнаружения диагностически значимых признаков кожи на загруженных изображениях.
- Классификация типа новообразования
- Пользовательский интерфейс:
- Разработка интуитивно понятного пользовательского интерфейса, который позволяет пользователям легко загружать фотографии, просматривать результаты анализа кожи.
- Предоставления четких указаний по рекомендуемым действиям для верификации результатов.
- Внутренняя инфраструктура:
- Создание масштабируемой внутренней системы для обработки запросов пользователей, обработки изображений и обслуживания результатов анализа кожи и рекомендаций.
- Защищенное хранение медицинских данных
- Описание данных/сущностей
- Набор изображения лиц пользователей с различными состояниями кожи, размеченные дерматологами. Формат: JPEG/PNG изображения
- Метаданные изображений (разрешение, условия съемки)
Название | Есть ли данные в компании | Требуемый ресурс | Проверено ли качество данных |
---|---|---|---|
Фотографии кожи | Частично | DE/DS | - |
Аннотации к дефектам кожи | Частично, DATAMARTS_SKIN_ANNOTATIONS | - | |
img metadata | DATAMARTS_IMAGE_METADATA | DE | + |
Целевая переменная - изображение со следующими переменными: img_id, label, defect_coords, severity_score
Признаки: img_id, metadata, img_path, features
Выявленные проблемы и риски:
- Отсутствие готового размеченного датасета / Малое количество датасетов
- Необходимость сбора дополнительных данных, привлечения экспертов-дерматологов для разметки
- Разнообразие качества изображений
- Несбалансированность в представлении различных типов кожных проблем, типов кожи
- Возможное наличие нерелевантных данных (ошибочные аннотации, низкое качество)
- Недостаток данных для обучения моделей (особенно редких типов дефектов)
- Наличие конфиденциальной информации (изображения требуют строгой защиты)
- Описание процесса генерации данных
- Сбор изображений: закупка существующих медицинских датасетов, партнерство с дерматологами, краудсорсинг
- Дополнение набора данных через аугментацию (обрезка, изменение яркости, поворот)
- Разметка неразмеенных данных: привлечение сертифицированных дерматологов, создание инструкции по разметке
- Удаление конфиденциальной информации
Методы борьбы с дисбалансом классов:
- Использование Weighted Cross-Entropy Loss с весами, обратно пропорциональными частоте классов. Это позволит придать большее значение редким классам при обучении.
- Применение Focal Loss, который автоматически уделяет больше внимания сложным для классификации примерам и уменьшает влияние легких примеров (часто это примеры доминирующего класса).
- Внедрение Weighted Random Sampling при формировании батчей, где вероятность выбора примера обратно пропорциональна частоте его класса Использование Balanced Batch Sampler для создания батчей с равным представлением всех классов
- Применение стратегии Over-sampling для миноритарных классов внутри батча
- Отслеживание метрик F1-score и Balanced Accuracy вместо обычной accuracy для более объективной оценки качества модели на несбалансированных данных
- Мониторинг per-class accuracy для контроля качества предсказаний для каждого класса
-
Конфиденциальная информация Все персональные данные должны быть деидентифицированы: удаление конфиденциальной информации путем размытия или обрезки Необходимо получение согласия на использование фотографий. Хранение данных с соблюдением норм
-
Необходимый результат этапа Чистый, аугментированный набор данных с высокой репрезентативностью и качеством
ML-метрики и функции потерь:
mAP50 (mean Average Precision at IoU threshold 0.5) для сегментации. F1-score/Precision/Recall для классификации дефектов. Cross-Entropy.
YOLO Loss для сегментации и классификации.
Схема валидации: Кросс-валидация (K-fold) с разделением данных на тренировочную, валидационную и тестовую выборки. Учет данных с разных типов кожи, возрастных групп и освещения для репрезентативности.
Структура бейзлайна: Сверточная нейронная сеть для обработки изображения
MVP: Интеграция YOLOv11 для сегментации и детекции дефектов.
Риски: Несоответствие метрик ожиданиям (низкий recall). Долгое время инференса при больших изображениях.
Необходимый результат:
Модель, демонстрирующая точность на тестовом наборе:
- mAP50 (PR-curve) ≥ 90%
- F1-score ≥ 80%
- Precision ≥ 90%
- Recall ≥ 90%
- Временной отклик не более 5 секунд на изображение
Данные:
- Результаты прогнозов модели на тестовых данных.
Риски:
- Непонимание бизнесом технических аспектов модели.
- Ожидания более высокой точности, чем реально возможно на текущем этапе.
Решение:
- Сравнение прогнозов модели с эталонной разметкой от дерматологов для выявления случаев ошибок и анализа уверенности предсказаний
- Визуализация прогнозов для представления результатов бизнесу.
- Обзор примеров с высокой/низкой точностью, чтобы показать сильные и слабые стороны модели.
Необходимый результат:
- Метрики уверенности по каждому предсказанию
- Документ, фиксирующий согласованные цели по метрикам
- Одобрение бизнесом текущего уровня точности для перехода к следующим этапам.
Данные:
- Предсказания модели на тестовых и бизнес-специфичных данных.
Риски:
- Конфликт между бизнес-правилами и оптимизацией модели (Сокращение ложных срабатываний снижает recall)
Решение:
- Разработка скриптов для автоматического расчета бизнес-метрик (Доля ошибок, связанных с ложными срабатываниями на "здоровой" коже и тп.).
- Внедрение логики фильтрации прогнозов модели на основе бизнес-правил (Минимальный размер дефекта для выделения).
Необходимый результат:
- Система расчета бизнес-метрик.
- Согласованные пороговые значения для перехода на следующие этапы.
Данные:
- Входные изображения пользователей и тестовые данные.
- Предсказания модели.
Решение:
- Оптимизация модели для инференса
- Реализация инференс-скриптов с учетом требований производительности
- Интеграция с базовым пользовательским интерфейсом, включение в интерфейс простых инструментов для оценки пользователями точности модели
- Тестирование инференса
Риски:
- Падение точности при оптимизации модели
Необходимый результат:
- Полное покрытие тестами
- Интеграция оптимизированной модели в рабочий процесс
- Мониторинга производительности инференса
Данные:
- Результаты работы модели
- Отзывы пользователей, собранные в процессе пилотного тестирования
Задачи:
- Подготовка визуально привлекательного отчета с ключевыми метриками, графиками и примерами
- Включение результатов проверки метрик качества, указание на зоны для улучшения
Риски:
- Сложность интерпретации технических деталей бизнесом.
Необходимый результат:
- Полный отчет с интерпретацией результатов работы модели.
- Рекомендации по следующим итерациям.
Длительность: 3 месяца Сбор данных:
- Опросы пользователей после каждого анализа
- Автоматический сбор технических метрик
Несколько этапов оценки:
- Техническая валидация: проверка точности на тестовом наборе данных, время обработки одного изображения, оценка стабильности работы системы
- Пользовательское тестирование: бета-тестирование с ограниченной группой пользователей и обратной связью, Net Promoter Score, удовлетворенность результатами анализа, частота использования сервиса, показатель удержания пользователей
- Экспертная оценка: сравнение результатов автоматического анализа с экспертными заключениями
- Бизнес-оценка: стоимость бработки одного изображения, количество активных пользователей
Формализированные метрики успеха:
- Технические метрики (см. Результаты обучения модели):
- mAP50 (PR-curve) ≥ 90%
- F1-score ≥ 80%
- Precision ≥ 90%
- Recall ≥ 90%
- Среднее время обработки одного изображения ≤ 5 секунды
- Доступность сервиса ≥ 99.5%
- Пользовательские метрики:
- Net Promoter Score (NPS) ≥ 40
- Удовлетворенность: 4.0/5.0
- Удержание пользователей (retention) через неделю ≥ 50%
- Процент завершенных анализов ≥ 90%
- Бизнес-метрики:
- Конверсия в повторные использования ≥ 40%
- Процент пользователей, поделившихся результатами ≥ 15%
Вычислительные ресурсы:
- Оценка требуемых ресурсов на основе бейзлайн-модели:
- GPU: 32GB
- RAM: 64GB
- SSD: 500GB
- Ожидаемая нагрузка: до 10000 запросов в час
- Ожидаемые затраты на вычисления: ~$1500/месяц
- Ограничения по вычислительной сложности:
- Максимальный размер загружаемого изображения: 10MB
- Поддерживаемые форматы: JPEG, PNG
- Требования к качеству изображения: минимальное разрешение - 1280x720, хорошее освещение
- Подготовительные шаги:
- Настройка облачных ресурсов, систем мониторинга, CI/CD пайплайнов
- Подготовка тестового набора данных, настройка систем сбора метрик
- Подготовка базы пользователей, подготовка инструкций для пользователей, создание способов обратной связи
Архитектура системы построена по микросервисному принципу. Ниже представлена диаграмма архитектуры:
Компоненты и их назначения:
- Client: Пользовательский интерфейс, который отправляет HTTP-запросы на сервер.
- FastAPI server: Обрабатывает входящие запросы, управляет загрузкой файлов и обслуживает обработанные изображения.
- Image procession: Запускает модели анализа, сохраняет результаты в виде изображений с аннотациями.
- Model Service: Управляет загрузкой и выбором моделей, реализует детекцию проблем кожи с использованием предобученной модели (YOLO).
- File system: Хранит исходные и обработанные изображения.
Рекомендуемая инфраструктура: Kubernetes кластер с автомасштабированием
Преимущества:
- Горизонтальное масштабирование
- Отказоустойчивость
- Изоляция компонентов
Минусы:
- Сложность настройки
- Стоимость инфраструктуры
Альтернативы и почему финальный выбор лучше других альтернатив
- Docker Swarm: проще, но меньше возможностей
- Bare metal: дешевле, но сложнее в масштабировании
- SLA: 99.9%.
- Пропускная способность: обработка до 100 изображений в минуту.
- Задержка: не более 5 секунд на анализ изображения.
Потенциальные уязвимости:
- Загрузка вредоносных файлов
- DoS атаки
- Переполнение хранилища
Рекомендации:
- Валидация файлов
- Rate limiting
- Квоты хранилища
- Регулярные обновления для защиты от уязвимостей.
Соответствие GDPR:
- Обработка данных с согласия пользователя.
- Возможность удаления загруженных данных.
- Шифрование данных
Примерные издержки системы в месяц:
- Kubernetes кластер: $200-300
- Хранилище: $50-100
- CDN: $30-50
- Общие: ~$400
REST API эндпоинты:
- POST /upload/: загрузка изображений
- GET /processed/{filename}: получение результатов
- GET /: получение веб-страницы API сервер ↔ Skin CV:
- Вызов функций обработки изображений (process_image).
- Рост нагрузки может привести к снижению SLA.
- Зависимость от качества загружаемых изображений.
- Превышение бюджета.
Нагрузочное тестирование проведено и описано в документе: Load Testing