Вопрос
Попиксельная разметка хирургического видео делается медленно, а границы инструментов в ней самые неточные. Рендерер даёт сколько угодно инструментов с точными масками. Мы проверили сильный вариант этой идеи:
H1. Модель, обученная только на синтетических инструментах, на реальных инструментах не хуже той же модели, обученной на реальной разметке.
Гипотезу, допустимое отставание и правило решения зафиксировали в проектном документе (RFC 0001) до первого прогона.
Как проверяли
- Синтетика. Модели граспера и L-образного крючка построены в Blender и отрендерены 20 000 раз с точными масками. Рендеры накладывались на 717 кадров открытого датасета CholecT50 без инструментов, и каждый кадр проверил человек. Аугментации: свет, размытие, ткань поверх кончика, тёмный край изображения эндоскопа, имитация дыма.
- Реальные данные. CholecSeg8k: 4 000 размеченных кадров из 8 видео для обучения и 1 120 кадров из 2 видео для валидации.
- Тест. 7 видео CholecSeg8k, которые никогда не служили синтетическим фоном, всего 2 960 кадров. Перед первым прогоном на тесте человек просмотрел каждый тестовый клип в поисках инструментов без собственного класса. Исключать ничего не пришлось.
- Модель. Во всех вариантах одна и та же DeepLabV3-ResNet50, одинаковые настройки и одинаковое число шагов обучения. Каждый вариант обучали с 3 начальными состояниями (seed).
| Вариант | Обучение |
|---|---|
| A | только синтетические инструменты |
| B | только реальная разметка |
| C10 / C25 / C50 / C100 | модель варианта A, затем 10 / 25 / 50 / 100 % реальных кадров |
- Выбор модели. Вариант A выбирал контрольную точку только по синтетической валидации, поэтому ни одна реальная метка в синтетический вариант не попала.
- Прогоны на тесте. Каждую выбранную контрольную точку прогнали на тестовых видео ровно один раз, и каждый прогон записан.
Результаты
Метрика – перекрытие (IoU) маски инструментов по всем пикселям теста. 1 означает идеальное совпадение. Диапазон – 95-процентный интервал по тестовым видео и начальным состояниям.
| Вариант | Реальная разметка | IoU | 95 % интервал |
|---|---|---|---|
| A, только синтетика | 0 % | 0,116 | 0,04 – 0,19 |
| C10 | 10 % | 0,775 | 0,66 – 0,83 |
| C25 | 25 % | 0,767 | 0,63 – 0,83 |
| C50 | 50 % | 0,778 | 0,65 – 0,84 |
| C100 | 100 % | 0,764 | 0,62 – 0,84 |
| B, только реальная разметка | 100 % | 0,772 | 0,65 – 0,84 |
H1 отвергнута. Вариант A отстаёт от варианта B на 65,5 пункта, 95-процентный интервал от −75,9 до −53,5. Дизайн допускал отставание не больше 2 пунктов.
Модель на одной синтетике выучила синтетическую задачу: на синтетической валидации она дошла до 0,96. На реальных валидационных кадрах она набрала около 0,45, а на тестовых видео 0,12. Мы проверили одно объяснение: что модель запомнила ткани валидационных операций по фонам. Из этих операций взято только 29 фонов из 717, так что разрыв это не объясняет. Почему модель не справляется с реальными инструментами, пока неизвестно.
Данные таблицей
| Эпоха | Синтетическая валидация, среднее | Реальная валидация, среднее |
|---|---|---|
| 1 | 0,912 | 0,431 |
| 2 | 0,925 | 0,399 |
| 3 | 0,938 | 0,386 |
| 4 | 0,941 | 0,399 |
| 5 | 0,944 | 0,363 |
| 6 | 0,949 | 0,467 |
| 7 | 0,949 | 0,412 |
| 8 | 0,953 | 0,442 |
| 9 | 0,953 | 0,346 |
| 10 | 0,956 | 0,383 |
| 11 | 0,957 | 0,334 |
| 12 | 0,958 | 0,409 |
| 13 | 0,959 | 0,383 |
| 14 | 0,960 | 0,403 |
| 15 | 0,961 | 0,394 |
| 16 | 0,962 | 0,364 |
| 17 | 0,963 | 0,398 |
| 18 | 0,963 | 0,438 |
| 19 | 0,963 | 0,429 |
| 20 | 0,963 | 0,442 |
Шесть кадров валидации
На рисунке – что модели вариантов A, B и C10 (начальное состояние 1) предсказывают на шести реальных кадрах валидации. Кадры взяты через равные промежутки и выбраны до того, как были видны предсказания. Тестовых кадров здесь нет: прогнать на них модели ещё раз значило бы ещё раз использовать тест.
- Где граспер хорошо виден на фоне тканей, вариант A находит его часть (IoU от 0,39 до 0,76).
- Где инструмент у края поля зрения или с тёмным стержнем (строки 2 и 6), вариант A почти ничего не находит (0,00 и 0,02). Варианты B и C10 эти инструменты находят (от 0,73 до 0,90).
- На последнем кадре вариант B размечает L-образный крючок как граспер, а C10 – правильно. IoU маски инструментов класс не учитывает.
Шесть кадров иллюстрируют цифры выше, но сами по себе ничего не доказывают.
Чем эти цифры не являются
- Не доказательство, что синтетическое предобучение экономит разметку. Варианты C догоняют вариант B уже на 10 % реальных кадров, это около 400 кадров, и дальше ничего не прибавляют. Но в дизайне не было варианта, обученного на тех же 10 % без синтетического шага. Без него нельзя сказать, помог ли синтетический шаг или 400 реальных кадров хватает и так.
- Не приговор синтетическим данным вообще. Вывод относится к этому рендереру, этим инструментам и 717 фонам, а это меньше примерно 1 000, которые мы планировали.
- Не клинический результат. Скорость, блики и кровь отдельно не измерялись, ни одна модель не опубликована.
RESEARCH USE ONLY – NOT FOR CLINICAL USE (только для исследований, не для клинического применения).
Что пошло не так по дороге
- Первые рендеры шли втрое медленнее, чем могли. Шумоподавление работало на CPU, а GPU простаивал. После исправления 20 000 рендеров заняли около 3 часов.
- Синтетический вариант падал через несколько эпох. Часть изображений дыма повредилась при копировании на GPU-сервер. Прогоны продолжили с последней контрольной точки, а теперь каждое изображение проверяется до начала обучения.
- Шесть прогонов дообучения стартовали с недоученных моделей из-за этого падения. Их пометили как недействительные и на тесте не запускали, а код обучения теперь отказывается их запускать.
Возможные следующие шаги
- Контрольный вариант на 10 % и 25 % реальных кадров без синтетического шага. Это самый дешёвый способ узнать, что даёт синтетика.
- Рандомизация домена: намеренно нереалистичные текстуры и цвета, чтобы проверить, дело ли во внешнем виде.
Полная карточка модели с идентификаторами прогонов – в репозитории проекта. Смотрите также журнал экспериментов и «Почему важны отрицательные результаты».