$ sudo apt-get update
$ sudo apt-get install -y libinsighttoolkit4-dev
$ python -m venv venv
$ source venv/bin/activate
$ pip install -U pip
$ pip install -r requirements.txt
$ docker build -t hackathon2020 .
$ docker run -p 8080:8080 %CONTAINRE_ID% -d
Принимает на вход 3 аргумента:
- Путь до маски эксперта
- Путь до маски алгоритма
- Название моделей, которые находятся в папке
models/catboost
. Обязательно в двойных ковычках, если несколько моделей, то через запятую. В случае если несколько моделей, то результат определяется голосванием.
$ python scripts/catboost_predict.py dataset/Expert/00000181_061_expert.png dataset/sample_1/00000181_061_s1.png "cb_mae-0.5818.cbm"
Принимает на вход 3 аргумента
- Название модели (необязательно)
- Количество итераций - целое число
- Доля обучающих данных в выборке - дробное число
$ python scripts/generate_catboost_model.py -i 10 -t 0.7
Принимает на вход 1 аргумент - список моделей в двойных ковычках через запятую.
$ python scripts/fill_secret_table_cb.py "cb_mae-0.5818.cbm, cb_mae-0.6182_.cbm, cb_mae-0.6182.cbm, cb_mae-0.6364.cbm, cb_mae-0.6389.cbm"
Заполненная таблица (SecretPart) находится в submissions/SecretPart_Кибер-медики_cb.csv
- Использовать метрики для оценки сегментации медицинских изображений из Metrics for evaluating 3D medical image segmentation: analysis, selection, and tool. Инструмент для расчета метрик можно найти по ссылке.
- Выяснить корреляцию между заключением врача (выраженное числом от 1 до 5) и значениями рассчитанных метрик (использовался коэффициент ранговой корреляции Кендалла, как наиболее устойчивый к случайным вбросам, не требующий стандартного распределения случайных величин и показывющий монотонную связь между двумя переменными).
- На основании коэффециента корреляции для каждой метрки, было произведено ранжирование метрик и отобраны наиболее оптимальные их них.
- Отобранные метрики были использованы для построения следующих моделей:
- Cat Boost Regressor - тестировались разные наборы гипер-параметров, что не улучшило качество работы алгоритма. Поэтому было принято решение об использовании дефолтных параметров.
- Linear Regression
- Random Forest Regressor
- K Neighbors Regressor
- SVR
- Lasso
- Использовать сверточную нейронную сеть для вычисления метрики сходства двух масок на основании мнения эксперта. На вход подавались маска, размеченная ИИ, маска, размеченная экспертом и оригинальное изображение, объединенные в один массив. В качестве оптимизатора использовался алгортим Adam, функция ошибки -- Categorical Crossentropy. Применялась простая архитектура т.к данных для вычисления большого количества параметров не хватило.
Критериями выбора модели служили метрика Mean absolute error на открытой выборке (OpenPart) и ручной анализ. Ручной анализ выполнялся следующим образом:
- выступая в роли врача сравнивали на закрытой выборке (SecretPart) маски, размеченные ИИ и маски, размеченные экспертом;
- сравнивали наше мнение со значением, вычисленным предложенным алгоритмом;
Мы команда врачей-кибернетиков.