Принимает снимок DICOM и решает, пригоден ли он для дальнейшего анализа, с указанием причины
| Колонка результата | Содержание |
|---|---|
study_uid, image_uid | идентификаторы исследования и снимка из DICOM |
anatomical_region | позвоночник, правое или левое бедро |
quality_class | 0 — качественное, 1 — есть нарушение |
violation_type | код нарушения из единого словаря |
processing_status | Success или Failure, ошибки не выбрасываются исключением |
time_of_processing | время обработки, секунды |
Позвоночник 33 нарушения из 99, правое бедро 21 из 79, левое 22 из 73. Неравномерность учитываем отдельно: область почти однозначно определяется шириной кадра, поэтому общая метрика частично отражает различение области, а не качества.
Экспертиза в наборе сделана по исследованиям; модель работает со снимками, поэтому вердикт нужно было перенести
252 снимка размечены
175 качественных и 77 с нарушениями. Происхождение каждой строки сохранено отдельными столбцами: вердикт эксперта, первичная пометка из данных, факт расхождения, признак переноса стороны.
Служебные пометки расходились с оценкой эксперта в 15 случаях из 252: верить на слово нельзя ни одному варианту
Пять кодирует экспертная таблица, три задаёт методика оценки пригодности, один служебный
positioning · позвоночникaxis_deviation · позвоночникartifact · любая областьrotation · бедроroi_incorrect · любая областьmotion · любая областьincomplete_anatomy · любая областьlabeling_error · позвоночникunspecified · служебный кодРаспределение в разметке: rotation 36, artifact 17, axis_deviation 10, roi_incorrect 7, positioning 6, unspecified 5.
| Параметр | Значение |
|---|---|
| Обучаемые параметры | тысячи вместо 11.2 млн |
| Вспомогательная голова области | вес в потерях 0.3 |
| Порог | логит −0.493 (вероятность 0.379) |
| Чекпоинт | 42.8 МБ |
| Отбор эпохи | сглаженный ROC-AUC, окно 5 |
Вероятности насыщаются у краёв распределения, поэтому фиксированный порог при доле нарушений около 30 % давал почти нулевой recall. Порог подбирается по F1 на валидации и хранится в чекпоинте вместе с весами.
Слои нормализации остаются в eval: иначе бегущие статистики продолжают обновляться на обучающих батчах, и признаки уезжают от тех, на которых калибровалась входная нормализация.
Яркость и положение снимка сами являются признаками качества. Случайные искажения уничтожают ровно ту информацию, которую надо распознать.
AUC 0.87 → 0.56
при включении аугментации
Служебные пометки расходились с оценкой эксперта в 15 случаях из 252. Обучение с ними дало худшее качество на невиданных исследованиях.
ROC-AUC 0.620
против 0.676 у правила «только таблица»
Планировали размечать снимки визуально, офлайн. На калибровке из 14 снимков модель вынесла «непригоден» всем 14 — включая заведомо качественные — с выдуманными имплантами.
14 из 14
разделяющая способность на уровне случайной
Ловушка вторая. Разбиение стратифицируется по нарушениям, а они зависят от меток. Без фиксации у вариантов были бы разные валидационные наборы, и метрики оказались бы несравнимы.
Валидация: 53 снимка, 16 нарушений по эталону. Снимки валидации не участвуют в обучении ни в одном варианте.
Порог для F1 подбирается на эталоне отдельно для каждой модели, поэтому F1 сравнивается как рабочая точка, а ROC-AUC и PR-AUC — как беспороговые метрики.
Среднее по пяти seed'ам, 95 % доверительный интервал, оценка по одному эталону
ROC-AUC +0.0564
интервал +0.0403 … +0.0725
PR-AUC +0.0713
интервал +0.0398 … +0.1028
F1 +0.0251
интервал −0.0056 … +0.0558
Оговорка: эталон — та же таблица, поэтому сравнение частично благоприятствует ей. Значимо то, что добавление служебных пометок согласие с экспертом снижает.
Нарушения распределены почти равномерно, но область почти однозначно определяется шириной кадра — поэтому нужна отдельная проверка
| Собственная валидация | Значение |
|---|---|
| Объём: 53 снимка / 19 исследований | 16 нарушений |
| ROC-AUC | 0.6706 |
| PR-AUC | 0.4585 |
| F1 / recall / precision | 0.5600 / 0.875 / 0.412 |
| Порог | логит −0.493 (вероятность 0.379) |
| ROC-AUC по областям | n / нарушений | AUC |
|---|---|---|
| Позвоночник | 19 / 5 | 0.943 |
| Бедро R | 17 / 6 | 0.576 |
| Бедро L | 17 / 5 | 0.550 |
Ориентир для планирования — ROC-AUC около 0.68. Модель стоит использовать как фильтр для приоритизации ручного просмотра, а не как единственное заключение: пропуск нарушения дороже ложной тревоги.
Скриншоты настоящего сервиса: загружены три снимка, обработаны за доли секунды
Сверху — что за модель работает; ниже — статистика и таблица. Подсказка над таблицей объясняет, что строки открываются кликом.
Открывается кликом по строке: заключение, измерения и визуализация снимка
Нарушение. Бейдж «Нарушение», уровень HIGH, заключение с вероятностью и порогом, тип нарушения с пометкой «эвристика».
Норма. Зелёный бейдж. Измерения (резкость, границы области) подписаны как справочные — их пороги не калиброваны.
processing_status = Failure вместо исключения — отчёт формируется всегда.| Ограничение | Следствие | Что планируется |
|---|---|---|
| Разметка выведена из оценки исследования | поштучной экспертной оценки снимков в наборе нет | разметка отдельных снимков специалистом |
| Мало данных: 252 снимка, 77 нарушений | широкие интервалы, закрытый набор может дать другие цифры | 500+ исследований |
| Эталон — та же экспертная таблица | сравнение правил частично благоприятствует таблице | независимая экспертная оценка снимков |
| Тип нарушения — эвристика, не модель | 5 снимков имеют только «нарушение без уточнения» | мультилейбл-модель по типам |
| Область определяется по ширине кадра | порог привязан к текущему оборудованию | калибровка по метаданным аппарата |
| Сторона бедра в 7 исследованиях не проверяема | теги латеральности в DICOM пусты | запрос тега у источника данных |
| Разметки ROI нет в DICOM | корректность областей наследуется из таблицы | проверка на данных с экспортной разметкой |
1. Правило разметки выбрано измерением, а не по вкусу
Одно разбиение, пять seed'ов, один эталон: учёт служебных пометок дал ROC-AUC 0.6199 против 0.6764 у разметки только по экспертной таблице — хуже на всех пяти seed'ах.
2. Модель проверена на то, что она смотрит на снимок
Внутри областей 0.85–0.93 против 0.50 у правила «позвоночник значит нарушение». Это исключает подмену распознавания качества определением анатомии.
3. Сказано и то, чего решение не умеет
Тип нарушения — эвристика, эталон — та же таблица, данных мало. Ориентир для внедрения — ROC-AUC около 0.68, использование как фильтра для приоритизации ручного просмотра.