Fully Convolutional Network
Одной из первых нейросетевых архитектур для решения задачи семантической сегментации была модель Fully Convolutional Network или FCN [1], в которой использовалась полносвёрточная архитектура для семантической сегментации.
Эта архитектура состоит только из свёрток, пулингов, нелинейностей и операций повышения разрешения (upsampling).
Преимуществом архитектуры является то, что она може т работать со входным изображением произвольных размеров, увеличение входа будет пропорционально увеличивать размер выхода.
Хотя параметры слоёв, естественно, настроены на определённое пространственное разрешение.
В простейшем случае архитектура могла бы выглядеть следующим образом [1]:
Однако качество сегментации в подобной архитектуры будет невысоким вследствие того, что низкоразмерные промежуточные представления после резкого повышения разрешения не способны качественно выделять границы объектов в высоком разрешении.
Хотелось бы как-то совместить высокоуровневые представления низкого разрешения, способные качественно классифицировать объекты с простыми промежуточными представлениями с ранних слоёв, имеющих более высокое пространственное разрешение, чтобы качественно не только классифицировать объекты, но и выделять их границы в высоком разрешении. Эту проблему мы уже обозначали ранее.
Для этого в FCN предлагается прогнозировать сегментационную карту, используя не только последнее промежуточное представление (FCN-32s), но и предпоследнее. Пространственные размеры обоих прогнозов приводятся в соответствие, используя билинейную интерполяцию и складываются (FCN-16s). Этот же трюк повторяется ещё раз, когда прогнозы строятся по ещё более раннему промежуточному представлению и складываются с прогнозом FCN-16s, что даёт архитектуру FCN-8s.
Графически это представлено схемой ниже [1]:
Чем сильнее используется комбинирование прогнозов более поздних и более ранних слоёв, тем точнее работает сегментация [1]: