Баннер мобильный (3) Пройти тест

Вихри и антивихри: как студенты Skillfactory создавали сверхточный датасет для биомедицинской компании

ML-кейс для ценителей квантовой физики

Кейс

19 июля 2024

Поделиться

Скопировано
Вихри и антивихри: как студенты Skillfactory создавали сверхточный датасет для биомедицинской компании

Содержание

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

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

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

    С каким заданием пришел партнер

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

    Николай Калмыков,
    куратор хакатона,
    Data Scientist в биомедицинской компании VeinCV

    Вначале нужно было наполнить модель «бэкграундом» — изображениями с правильно отмеченными вихрями и антивихрями. Затем данные с верной отметкой загружают в нейросеть, которая начинает обучаться. 

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

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

    Самым сложным было однородно разметить данные 

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

    Работа в хакатоне условно разделилась на несколько этапов: 

    1. Выгрузка датасета от заказчика локально и на платформу Roboflow. В этот момент участникам нужно было первично обработать полученный набор изображений и загрузить их в нужные системы. 
    2. Определение оптимального размера и пропорций рамки для объекта (то есть, определить размер определяемой области на изображении). 
    3. Наложение рамки на объект соответствующего типа на основании референса. 
    4. Проверка и промежуточная сдача разметки заказчику. Время от времени участники показывали свою работу, чтобы получить обратную связь.
    5. Загрузка обработанного и размеченного датасета в директорию для хранения. 

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

    Разметка датасета

    Для разметки датасета можно было использовать три метода.

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

    Полуавтоматический. Этот метод сочетает в себе ручную работу и инструмент автоматической разметки. В рамках хакатона некоторые участники писали скрипты на Python для создания разметки. После того как скрипт проводил разметку, команда проверяла его работу. Дополнительное знание библиотек этого языка ускорило процесс в разы. 

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

    Павел Сидоров,
    студент магистратуры Skillfactory и МФТИ «Прикладной анализ данных в медицинской сфере», капитан команды № 5. 
    Разметка вихрей на изображении
    Код алгоритма разметки
    Авторазметка выводила круги, затем через код шла квадратная разметка 

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

    Практика в Roboflow

    Большая часть работы проходила в Roboflow, там уже были готовые инструменты для разметки данных. С вопросами по платформе участники либо обращались к кураторам хакатона, либо самостоятельно искали информацию в интернете (Хабр, YouTube). 

    Мы почти все время работали в Roboflow. На платформе есть задачи с разделением на классы / постановкой ярлыков. В этом подразделе мы заранее определили два класса — черный и белый в виде квадратов одного размера. А затем отмечали их на изображениях от заказчика.

    Максим Журахов,
    студент магистратуры Skillfactory и МФТИ «Прикладной анализ данных в медицинской сфере», капитан команды № 7. 
    Изображение вихрей без разметки
    Как выглядело изображение до разметки 

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

    Самым сложным для нашей команды было обеспечить точную и однородную разметку данных, так как это критически важно для последующего обучения object detection модели. Этот тип моделей очень чувствителен к данным, заключенным внутри рамок (так называемых bounding boxes), которые мы и другие команды ставили в основном вручную. Точная разметка важна для правильной центровки вихрей и антивихрей, чтобы модель могла эффективно распознавать и классифицировать эти объекты между собой. Обеспечить предельную точность было сложно, но наша команда справилась на отлично!.

    Алина Бондарева,
    студент магистратуры Skillfactory и МФТИ «Прикладной анализ данных в медицинской сфере», капитан команды № 3. 

    Качество может пострадать от банальных ошибок

    Примерно в середине хакатона команды провели промежуточную проверку разметки вихрей и антивихрей. Для проверки приглашали куратора хакатона и заказчика. 

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

    Максим Журахов,
    студент магистратуры Skillfactory и МФТИ «Прикладной анализ данных в медицинской сфере», капитан команды № 7. 

    Помимо Roboflow — основной платформы для работы, — участники анализировали другие архитектуры для обучения нейронных сетей. К примеру, можно было изучить функционал не только Roboflow, но и других инструментов, потренироваться с ним. Так по итогу хакатона ряд команд освоили сети Yolo, Cnn, Detr.

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

    Кейс

    Поделиться

    Скопировано
    0 комментариев
    Комментарии