Машинное обучение в медицине уже не новость. Особенно распространены ML-разработки в области диагностики. Уже сейчас существуют прототипы сервисов, которые могут анализировать фото родинок и выявлять по ним риск рака кожи.
Чтобы создавать такие продукты, нужна глубокая проработка алгоритмов, их способности обучаться и решать по-настоящему сложные задачи. Например, физические и биологические.
Одну из таких задач предложила биомедицинская компания VeinCV на хакатоне студентам онлайн-магистратуры «Прикладной анализ данных в медицинской сфере». Они создавали датасет, который поможет алгоритмам компьютерного зрения распознавать квантовые вихри и антивихри в текучих жидкостях. Что из этого вышло и с какими сложностями столкнулись участники хакатона — читайте в статье.
С каким заданием пришел партнер
Вначале нужно было наполнить модель «бэкграундом» — изображениями с правильно отмеченными вихрями и антивихрями. Затем данные с верной отметкой загружают в нейросеть, которая начинает обучаться.
Участникам выдали 1500 изображений вихрей и антивихрей в некорректном формате. Их нужно было упорядочить и исправить положение меток. Например, убрать наложение меток друг на друга, изменить их формат. По итогу команды должны были защитить свой проект перед заказчиком.
Для унификации данных заказчик предложил работать на платформе Roboflow. Этот инструмент создает и масштабирует модели компьютерного зрения для разного бизнеса и отраслей за счет широкого пула инструментов. Кроме того, работа на платформе помогла участникам разобраться в инструментах, которые можно использовать для ML.
Самым сложным было однородно разметить данные
На реализацию участникам дали месяц. Всего в проекте участвовало девять команд. По окончании хакатона заказчик отметил три команды, чьи решения ему особенно понравились.
Работа в хакатоне условно разделилась на несколько этапов:
- Выгрузка датасета от заказчика локально и на платформу Roboflow. В этот момент участникам нужно было первично обработать полученный набор изображений и загрузить их в нужные системы.
- Определение оптимального размера и пропорций рамки для объекта (то есть, определить размер определяемой области на изображении).
- Наложение рамки на объект соответствующего типа на основании референса.
- Проверка и промежуточная сдача разметки заказчику. Время от времени участники показывали свою работу, чтобы получить обратную связь.
- Загрузка обработанного и размеченного датасета в директорию для хранения.
Параллельно команды погрузились в специфику квантовых жидкостей. Для некоторых участников это была незнакомая тема, а ее понимание косвенно помогало в проекте.
Разметка датасета
Для разметки датасета можно было использовать три метода.
Ручной, когда аннотатор вручную добавляет комментарии к изображениям. Например, провести рамку вокруг объекта и указать его класс. Ручная разметка очень точна, но требует времени и отдельного человека под задачу. Это особенно накладно, если размечать надо огромный массив данных.
Полуавтоматический. Этот метод сочетает в себе ручную работу и инструмент автоматической разметки. В рамках хакатона некоторые участники писали скрипты на Python для создания разметки. После того как скрипт проводил разметку, команда проверяла его работу. Дополнительное знание библиотек этого языка ускорило процесс в разы.
Автоматический. Алгоритм сам обозначает нужные данные, рамки, отметки. Этот метод подходит для больших наборов данных, но может быть менее точным.
Практика в Roboflow
Большая часть работы проходила в Roboflow, там уже были готовые инструменты для разметки данных. С вопросами по платформе участники либо обращались к кураторам хакатона, либо самостоятельно искали информацию в интернете (Хабр, YouTube).
Однако не всегда разметка на платформе Roboflow была точна. Время от времени участники хакатона проверяли ее вручную, чтобы минимизировать погрешности.
Качество может пострадать от банальных ошибок
Примерно в середине хакатона команды провели промежуточную проверку разметки вихрей и антивихрей. Для проверки приглашали куратора хакатона и заказчика.
Помимо Roboflow — основной платформы для работы, — участники анализировали другие архитектуры для обучения нейронных сетей. К примеру, можно было изучить функционал не только Roboflow, но и других инструментов, потренироваться с ним. Так по итогу хакатона ряд команд освоили сети Yolo, Cnn, Detr.
Компания VeinCV планирует использовать наработки участников хакатона в дальнейшем обучении моделей компьютерного зрения для поиска патологий в организме.