Edge AI – MASkRCNN e segmentação de Instâncias
Neste post iremos apresentar o conceito de segmentação de instâncias com o algoritmo MaskRCNN para exemplicar seu uso
Por Natalia Meira
Segmentação – Semantica e Segmentação de Instâncias
A segmentação pode ser dividida em duas classes principais: segmentação semântica e segmentação de instâncias.
Segmentação Semântica
Tem como objetivo rotular cada pixel de uma imagem com uma classe correspondente do que está sendo representado. A saída é uma imagem de alta resolução (normalmente do mesmo tamanho da imagem de entrada), na qual cada pixel é classificado em uma classe específica.
Assim, a segmentação semântica pode detectar objetos na imagem de entrada, isolá-los do fundo e agrupá-los com base em sua classe [1] [2] [4] [7].

Figura 1 – Segmentação semântica [7].
Segmentação de Instâncias
Leva a segmentação um passo a frente. Efetua a classificação de nível de pixel, esperamos que o computador classifique cada instância de uma classe separadamente.
Segmentação de Instâncias detecta cada objeto individual dentro de um grupo de objetos semelhantes.
Na imagem abaixo existem 3 pessoas. Tecnicamente 3 instâncias da classe “Pessoa”. Todos os 3 são classificados separadamente (em uma cor diferente) [1] [2] [4] [7].

Figura 2 – Segmentação de instâncias [7].
Embora a rotulagem de segmentação de instância seja cara, é um dos métodos mais robustos e abrangentes de obter a detecção de objetos na análise de imagens [4].
A Rede Neural Convolucional Regional de Máscara (Mask R-CNN)
É uma extensão do algoritmo de detecção de objeto Faster R-CNN que adiciona recursos extras, como segmentação de instância. Isso nos permite formar segmentos no nível de pixel de cada objeto e também separar cada objeto de seu fundo [3].
O framework do Mask R-CNN é baseado em duas etapas: primeiro, faz a varredura da imagem para gerar propostas; que são áreas com alta probabilidade de conter um objeto. Em segundo lugar, ele classifica essas propostas e cria caixas delimitadoras e máscaras [6].

Figura 3 – Segmentação de instâncias com Mask R-CNN [2].
Uma desvantagem é que o Mask RCNN é bastante lento e impede o uso de muitos aplicativos em tempo real. A imagem 4 resume o que vimos até aqui:

Figura 4 – Comparação entre: detecção de objetos, segmentação semântica e segmentação de instâncias [5].
Fontes:
[1] Instance Segmentation with Deep Learning. Disponível em: <https://missinglink.ai/guides/neural-network-concepts/instance-segmentation-deep-learning/>.
[2] Object Detection and Instance Segmentation: A detailed overview. Disponível em: <https://medium.com/swlh/object-detection-and-instance-segmentation-a-detailed-overview-94ca109274f2>.
[3] Quick intro to Instance segmentation: Mask R-CNN. Disponível em: <https://kharshit.github.io/blog/2019/08/23/quick-intro-to-instance-segmentation>.
[4] Semantic Versus Instance Segmentation. Disponível em: <https://innodata.com/semantic-versus-instance-segmentation/>.
[5] Single Stage Instance Segmentation — A Review. Disponível em: <https://towardsdatascience.com/single-stage-instance-segmentation-a-review-1eeb66e0cc49>.
[6] Splash of Color: Instance Segmentation with Mask R-CNN and TensorFlow. Disponível em: <https://engineering.matterport.com/splash-of-color-instance-segmentation-with-mask-r-cnn-and-tensorflow-7c761e238b46>.
[7] Understanding Semantic Segmentation with UNET. Disponível em: <https://towardsdatascience.com/understanding-semantic-segmentation-with-unet-6be4f42d4b47>.