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

Что случилось:

  • Точность была невысокой
  • MobileNet (SSD) работает лучше, чем Faster RCNN ResNet, что кажется нелогичным, поскольку MobileNet должна быть более легкой моделью.
  • Сегментация зубов была не очень точной. Часто модель выводила два зуба как один, и в целом можно было сказать, что модель была неточной на предметных блоках.

В этой статье я расскажу о двух решениях, которые я реализовал для повышения точности модели:

  • Предварительная обработка изображений
  • Передача обучения

1. Предварительная обработка

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

Изменчивость размера изображения и разрешения не является проблемой для нашей модели, потому что все изображения очень высокого качества (средний размер 2900x1400), поэтому перед обработкой изображения уменьшаются. Степень увеличения зубов тоже не проблема, это на самом деле вносит разнообразие в нашу модель.

Однако вариации уровня серого и контрастности могут затруднить изучение правильных характеристик нашей модели.

Шаг предварительной обработки будет заключаться в нормализации наших данных для получения изображений с похожими контрастами и чтобы все они «выглядели одинаково». Выравнивание гистограммы - хороший способ увеличить контраст. Но для наших данных простое выравнивание гистограммы не очень хорошо, поскольку оно может фактически уменьшить видимость реставраций зубов и имплантатов (см. Сравнение ниже).

CLAHE (Contrast Limited Adaptive Histogram Equalization) - это метод выравнивания гистограммы, который позволяет локально усилить контраст, ограничивая усиление шума.

Я использовал OpenCV, отличный ресурс для редактирования изображений, и не могу его рекомендовать. Вот - действительно хороший учебник по выравниванию гистограмм. Мне удалось просто использовать CLAHE следующим образом:

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

2. Передача обучения

API обнаружения объектов Tensorflow упрощает перенос обучения из существующей модели. Модельный зоопарк позволяет вам выбрать предварительно обученную модель и легко обучить ее на вашем наборе данных.

Я решил использовать fastener_rcnn_resnet50_coco из-за его относительно хорошей скорости и показателя MAP в наборе данных COCO.

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

Трансферное обучение помогло по двум основным причинам. Прежде всего, предварительно обученная модель позволяет легко изучать формы и конкретные объекты. Во-вторых, Faster RCNN ResNet50 использует изображения большего размера, чем мои предыдущие модели, что, вероятно, способствовало точности. Мне также пришлось снизить порог IoU для подавления non max из конфигурации tensorflow.

Текущая модель все еще не идеальна, особенно в отношении имплантатов, но, вероятно, это связано с тем, что в нашем наборе данных не так много примеров имплантатов. Я не обучал его на графическом процессоре, что ограничивает общий объем возможного обучения и делает текущую модель только прототипом. Однако скачок точности указывает на то, что предварительная обработка и обучение передачи идут в правильном направлении.

Вот еще несколько выходов текущего алгоритма:

Следующие шаги:

  • Больше тренировок на GPU
  • Сравнение других моделей (SSD, более крупный ResNets…)

Вы можете найти код здесь: https://github.com/clemkoa/tooth-detection

Набор данных еще не опубликован, но мы над этим работаем! Отказ от ответственности: все рентгеновские снимки в наборе данных анонимизированы из соображений конфиденциальности.

Предыдущая статья: https://medium.com/@clemkoa/deep-learning-object-detection-on-dental-x-rays-8211e48e520b