Как стать автором
Обновить

Комментарии 8

Реально?
В 2019 году, вместо того чтобы подготовить минимальную базу, за минимальные деньги, вы тратите время инженеров чтобы они вам нагенерили hand-craft признаков которые в 100% будут работать хуже чем нейронка?
минимальная база и минимальные деньги это сколько на Ваш взгляд?
Конкретно по этой задаче, которую решает тут автор. Мне кажется, что для сопоставимых точностей хватит 50-100 КТшек. Скорее всего, даже 20-30.
Разметку скорее всего проще сделать будет через набор срезов. Скорее всего на человека хватит 20-30 срезов. Остальное можно будет заинтерполировать. Для базы в 20 человек это 400 картинок на разметку. Разметить одну картинку ~30 секунд, скорее ощутимо меньше. Это ~3.5 часа на базу в 20 человек, на которой уже может начать работать.
Разметчик по цене стоит в 4-5 раза дешевле программиста более-менее адекватного.

Конечно, тут ещё должно быть время программиста выделено на написание софтины для разметки (на коленке и если данные 3д понятные — 1 день, добротно и если с данными в первый раз сталкиваться — неделя). Обучение тоже сколько-то съест. Но реально тут надо будет максимум U-net обучить для первой точности. Это пара дней для человека который разбирается в теме.
Итого, идя по этому пути, можно решение сопоставимого качества получить за неделю где-то. Где 1-2 дня будет разметка.

При этом такой подход имеет перспективу на то чтобы получить точности сильно выше, на уровне специалиста.

А вообще, конечно, существует и много других способов и подходов такое решать…
Разметить одну картинку ~30 секунд, скорее ощутимо меньше. Это ~3.5 часа на базу в 20 человек, на которой уже может начать работать.


Читаем первое предложение поста:

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


Вы уверены что вы на сечении человека с первого раза отличите трахею от пищевода? Это все-таки не котиков от птичек отделять. В Mechanical Turk не отдашь. И может оказаться что разметчик стоит не так уж и дешево.

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

Разметку скорее всего проще сделать будет через набор срезов. Скорее всего на человека хватит 20-30 срезов. Остальное можно будет заинтерполировать.

Нейросеть потом сможет увидеть пространственную связь между срезами? Или для нее это будет 30 никак не связанных картинок? И в какой плоскости вы предлагаете нарезать слои?
К нейросетям много вопросов:
1. На основе чего сделано предположение, что будет достаточно максимум 100 случаев? Это не говоря уже о том, что исследования в общем случае получить не так просто.
2. Мы выполняем сегментацию 3-хмерных воксельных данных, а не отдельных срезов(есть принципиальная разница между сегментацией именно в 3-х измерениях и сегментацией по плоским срезам). Из этого следует во-первых то, что объем данных возрастает в несколько сотен или тысячу раз, а насколько я знаю, для нейросетей это проблема — даже обычным картинкам уменьшают разрешение, во-вторых просто уже архитектура сети скорее всего должна быть другой — не получится взять готовое решение. Вообще как то особо не получается найти примеры, чтобы нейросеть работала с воксельными данными.
3. Я бы не сказал, что нейросети хорошо справляется именно с задачей сегментации. Та же U-Net, судя по результатам, приводимых в статьях, особой точностью не блещет — границы объектов получаются далеки от идеальных.
4. Какой объем будет занимать результат обучения нейросети? Это должно работать в десктопной программе, которая не тащит с собой никаких особо больших баз.
можно использовать написанный алгоритм как некое начальное приближение. Прогнать датасет на этом алгоритме, получить грубо размеченные данные — и дальше вручную отобрать хорошие примеры / доразметить плохие. А потом конечно учить нейросети.
Почему просто не использовать transfer function? Мы знаем плотность дыхательных органов. Соответсвенно можем на всем участке задать максимальную прозрачность, а на участке с плотностью дыхательных органов дать максимальное значение.
Я так же писал подобные программы
Задание передаточной функции в конечном итоге соответствует просто выбору диапазона(ов) плотности. Как видно из текста статьи, задание диапазонов/порогов используется в качестве отдельных этапов алгоритма и целиком задачу не решает.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий