Обзор Mask R-CNN

Удивительно не только то, как быстро развиваются технологии AI, но и скорость инфляции этих технологий. То, что казалось rocket science вчера, сегодня уже можно загрузить на мобильный телефон.
Вычислительные мощности, недостижимые еще пару лет назад, сегодня уже многим по карману. И это -- существенная особенность для всех, кто планирует вложить деньги в сферу AI или хочет заниматься прикладными исследованиями. Надо понимать, что вы вряд ли сможете долго “сидеть на теме”, ведь “большие братья” из Google или OpenAI не дадут вам расслабиться и быстро предложат свое решение задачи, в которой вы “вроде бы неплохо” разбираетесь.
В целом, для мирового прогресса это скорее хорошо, но на спокойную жизнь не рассчитывайте. Мы в SMedx находимся в той же ситуации, что и все остальные. Всего полгода назад перед нами стояла задача автоматической сегментации... ног в видеопотоке. Для ее решения потребовались некоторое время и вычислительные ресурсы. А сегодня в TensorFlow 1.6 эта опция есть по умолчанию.
Далее - поток инженерной мысли о том, что же такое Mask R-CNN, и как они применяются для сегментации объектов в TensorFlow 1.6.
Нейронные сети типа R-CNN
R-CNN - это нейронные сети, в основе которых лежит работа с регионами (ограничительными рамками). В этих сетях находится небольшое количество областей, где предположительно расположены объекты, и на этих регионах отрабатывает сверточная нейронная сеть.
Что такое Mask R-CNN?
Mask R-CNN это сети, которые решают задачу сегментации. В основе архитектуры таких сетей лежит сеть Faster R-CNN, к которой добавляется дополнительная ветка. В этой ветке небольшая полностью сверточная сеть применяется к каждой области интереса, чтобы получить бинарную маску объекта -- сегментацию. Ветка для сегментации работает параллельно с остальной частью нейронной сети, отвечающей за классификацию. Бинарная маска вычисляется для каждого класса, а окончательный выбор делается по результатам классификации.
Данная сеть показала хорошие результаты в детектировании и сегментации, а также в определении позы человека.
Другие типы R-CNN сетей
Fast R-CNN - более быстрый вариант R-CNN сети. В ней операциям подвергаются множество признаков, найденных на изображении первоначально. Далее эти признаки проецируются на регионы, что избавляет от их пересчета.
Faster R-CNN для определения наиболее интересных регионов использует специальную нейронную сеть (Region Proposal Network).
Подробнее про другие типы R-CNN сетей >>