Описание проекта

Приложение для анализа медицинских тест-полосок

Приложение для анализа медицинских тест-полосок
Удобное приложение для быстрого и простого анализа мочи. Автоматическая генерация результатов теста на основе цветов реагентных зон.

Бизнес-логика

Человеческий глаз не всегда может точно трактовать цвет реагентной зоны тест-полоски. Его трактовка может зависеть от многих параметров, таких как освещение, особенности цветовосприятия человека или же выцветание легенды, с которой сличают тест-полоску. Более того, иногда цвет реагентной зоны бывает пограничным и не понятно, к какой категории легенды его стоит отнести. Но если отдать изображение тест-полоски нейросети, анализ может оказаться более точным.

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

Проблемная ситуация

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

Решение

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

Перед отправкой изображения на калибровку цвета, нейронная сеть обнаруживает края и обрезает изображение, удаляя ненужный фон, который может мешать процессу распознавания. Это происходит на основе ArUco маркеров. Для поиска ArUco маркеров и предобработки изображения (исправление перспективы, обрезка, поворот, поиск контуров цветов) мы использовали библиотеку openCV.

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

Откалиброванные цвета тестовой полоски сравниваются с заданными цветами для каждого реагента в пространстве цветов LAB, так как таким образом результат получается точнее, чем если сравнивать в RGB. LAB - это пространство цветов максимально приближенное к человеческому восприятию цветов. Для сравнения цветов мы использовали библиотеку colormath.

Результаты

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

Хотите обсудить проект?

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