• Nenhum resultado encontrado

2. REVISÃO BIBLIOGRÁFICA

2.3 INTELIGÊNCIA ARTIFICIAL, MACHINE LEARNING E DEEP LEARNING

2.3.4 Deep Learning na deteção de objetos

Com o aumento da investigação no uso de tecnologia de deteção de objetos em cenários reais tais como

veículos autónomos, videovigilância inteligente, deteção facial e várias aplicações de contagem de pessoas, a

procura de sistemas rápidos e precisos de deteção de objetos está a aumentar. Estes sistemas envolvem não só

o reconhecimento e a classificação de cada objeto numa imagem, mas também a localização de cada um deles

nessa imagem (desenhando a caixa de delimitação apropriada à sua volta), tornando a deteção de objetos, uma

tarefa significativamente mais difícil do que a tradicional visão computacional de classificação de imagens.

As abordagens mais bem-sucedidas para deteção de objetos são atualmente extensões de modelos de

classificação de imagens. Com a disponibilização da API de deteção de objetos que a Google lançou para o

Tensorflow (biblioteca opensource para aplicações de ML), foram incorporadas várias arquiteturas e pesos

pré-construídos para alguns modelos específicos:

Single Shot Multibox Detector (SSD) com MobileNets

SSD com Inception V2

Region-Based Fully Convolutional Networks (R-FCN) com Resnet 101

Faster RCNN com Resnet 101

Faster RCNN com Inception Resnet v2

YOLO

Atualmente, quando se fala em deteção de objetos em DL, fala-se no modelo Faster R-CNN.

Para melhor perceber o modelo Faster R-CNN é necessário compreender os seus antecessores, R-CNN e

Fast R-CNN.

2.3.4.1 R-CNN

A R-CNN (Region-based Convolutional Neural Network) proposta por Girshick et al. (2014), é uma

abordagem pioneira que aplica modelos de Deep Learning à deteção de objetos (Figura 17). A sua aplicação

explica-se em três simples passos:

1. Digitalizar a imagem de entrada para possíveis objetos utilizando um algoritmo chamado

“Pesquisa Seletiva” gerando ~ 2000 propostas de regiões.

2. Correr uma rede neuronal convolucional (CNN) no topo de cada uma destas propostas de regiões.

3. Obter o resultado de cada CNN e alimentá-la com um SVM (Support Vector Machine) para

classificar a região e um regressor linear para restringir a caixa delimitadora do objeto, se o objeto

existir.

Assim é necessário propor as regiões, depois extrair as características e, por fim, classificar essas regiões

com base nas suas características. Na sua essência, a deteção de objetos torna-se num problema de classificação

de imagem. Sendo bastante intuitivo, tornava-se um processo excessivamente lento (Girshick, 2015).

2.3.4.2 Fast R-CNN

A FastR-CNN distingue-se do original R-CNN em muitos aspetos. Foi proposto por Girshick (2015), que

melhorou a sua velocidade de deteção através de duas alterações principais:

a) Realizar a extração de características sobre a imagem antes de propor regiões, correndo assim

apenas uma CNN sobre toda imagem em vez de 2000 CNNs sobre 2000 regiões sobrepostas.

b) Substituir o SVM com uma camada softmax (Figura 18), ampliando assim a rede neuronal para

previsões, em vez da criação de um novo modelo.

Figura 18: Função Softmax de regressão da Fast R-CNN (Mahmood, 2018)

O novo modelo assemelha-se ao da Figura 19, em que as regiões geradas são propostas baseadas no último

mapa de características da rede e não a partir da imagem original em si. Como resultado, pode-se treinar apenas

uma CNN para toda a imagem, em vez de treinar muitos SVMs diferentes para classificar cada classe de objeto.

Existe uma única camada “softmax” que produz as probabilidades da classe diretamente obtendo-se apenas

uma rede neuronal para treinar, ao contrário de uma rede neuronal e muitos SVMs.

Figura 19: Modelo Fast R-CNN (Girshick, 2015)

O Fast R-CNN teve um desempenho melhorado em termos de velocidade, contudo resta um importante

congestionamento na pesquisa seletiva para gerar propostas de regiões, que se manifesta ainda um processo

lento.

2.3.4.3 Faster R-CNN

A principal melhoria do modelo Faster R-CNN foi substituir o algoritmo de pesquisa seletiva lento por

uma rede neuronal rápida. Especificamente, é introduzido o RPN (Region Proposal Network) (Ren, He,

Girshick, & Sun, 2017a), que introduz na última camada de uma CNN inicial, uma janela deslizante 3x3 e

move-se através do mapa de características mapeando-o para uma dimensão inferior (ex: 256-d). Para cada

localização da janela deslizante, são geradas múltiplas regiões possíveis com base nas caixas de ancoragem de

relação fixa k (caixas de delimitação padrão) Cada proposta de região consiste em: a) uma pontuação de

“objetividade” para essa região e b) quatro coordenadas que representam a caixa delimitadora da região.

Por outras palavras, observamos cada localização no último mapa de características e consideramos k

caixas diferentes centradas à sua volta: uma caixa alta; uma caixa larga, uma caixa grande, etc. Para cada uma

dessas caixas, indica-se se contém um objeto ou não e quais as coordenadas para essa caixa (Figura 20).

Figura 20: Localização de janela deslizante (Shubham Gandhi, 2019)

As pontuações de 2k representam a probabilidade à saída da função softmax para cada uma das caixas de

delimitação k estar no objeto. Embora a RPN produza coordenadas da caixa delimitadora, este não tenta

classificar qualquer potencial objeto, o trabalho exclusivo é propor regiões de objetos. Se uma caixa de

ancoragem tem uma pontuação de “objetividade” acima de um determinado limite, as coordenadas dessa caixa

são passadas como uma proposta regional. Uma vez concluídas as nossas propostas de região, insere-se

diretamente no que é essencialmente uma Fast R-CNN. Adiciona-se uma camada de “pooling”, algumas

camadas de conexão e finalmente uma camada de classificação “softmax” e um regressor de caixa de

A Faster R-CNN atinge velocidades mais elevadas e excelente precisão. Vale a pena notar que, embora os

modelos futuros tenham feito muito para aumentar a velocidade de deteção, poucos modelos conseguiram

superar o Faster R-CNN por uma margem significativa (Girshick, 2015). Por outras palavras, a Faster R-CNN

pode não ser o método mais simples ou mais rápido para a deteção de objetos, mas ainda assim é um dos

melhores métodos. No caso em questão, o Faster R-CNN do Tensorflow com Inception ResNet é o modelo

mais lento, mas mais preciso. A Faster R-CNN pode parecer complexa, mas o seu design central é o mesmo

da R-CNN original, que é presumir regiões de objetos e depois classificá-las. Este é agora a base para muitos

modelos de deteção de objetos (Figura 21).

Figura 21: Faster R-CNN (Ren, He, Girshick, & Sun, 2017b)

2.3.4.4 R-FCN

A Fast R-CNN melhorou a velocidade de deteção do original ao partilhar uma única computação CNN em

todas as propostas de região (Dai, Li, He, & Sun, 2016). Esta abordagem foi também a motivação por detrás

da R-FCN para aumentar também a velocidade através de maximização do cálculo partilhado.

A R-FCN (Region-based Fully Convolutional Net), partilha 100% dos cálculos em cada uma das saídas,

sendo totalmente convolucional.

Ao realizar a classificação de um objeto (ex. gato), queremos aprender a invariância do local no modelo,

i.e., independentemente onde o gato possa aparecer na imagem, queremos classificá-lo como um gato. Por

outro lado, ao realizar a deteção de objetos, queremos aprender a variância da localização, i.e., caso o gato

esteja no canto superior esquerdo, queremos desenhar uma caixa no canto superior esquerdo. Por isso, se

tentarmos partilhar cálculos convolucionais através de 100% da rede, como é que se equilibra entre a

invariância e variância de localização? A Solução da R-FCN passa por mapas de pontuação sensíveis à posição.

Cada mapa de pontuação sensível à posição representa uma posição relativa de uma classe de objeto. Por

exemplo, um mapa de pontuação pode ser ativado onde quer que detete o topo direito de um gato. Outro mapa

de pontuação pode ser ativado onde observa a parte inferior esquerda de um carro. Essencialmente, estes mapas

de pontuação são mapas de características convolucionais que foram treinados para reconhecer certas partes

de cada objeto.

A R-FCN funciona da seguinte forma (Ren et al., 2017b):

1- Correr uma CNN (neste caso, ResNet) sobre a imagem de entrada.

2- Adicionar uma camada convolucional para gerar uma tabela de pontuação dos “mapas de

pontuação sensíveis à posição” mencionados anteriormente. Devem existir k

2

(C+1) mapas de

pontuação, sendo k

2

o número de posições relativas para dividir um objeto (por exemplo 3

2

para

uma matriz de 3 por 3) e C+1 o número de classes mais o plano (background).

3- Correr uma rede totalmente convolucional de propostas de regiões (RPN) para gerar regiões de

interesse (RoI’s).

4- Para cada RoI (Region of Interest), dividir os mesmos k

2

(caixa de deteção) ou sub-regiões como

os mapas de pontuação.

5- Para cada caixa de deteção, verificar a tabela de pontuação para ver se essa caixa corresponde à

posição correspondente de algum objeto. Por exemplo, se o objeto estiver no contentor “superior

esquerdo”, carrega-se o mapa de pontuação que correspondem ao canto “superior esquerdo” de

um objeto e fazer uma média desses valores na região RoI. Este processo é repetido para cada

classe.

6- Uma vez que cada uma das caixas de k

2

tem um valor de “correspondência de objeto” para cada

classe, é feita uma média das caixas para obter uma única pontuação por classe.

7- Classificar o RoI com uma função de “softmax” sobre o restante vetor dimensional C+1

Assim, o R-FCN assemelha-se à Faster-R-CNN (Figura 22), com uma RPN a gerar os RoI’s.

Figura 22: Funcionamento do modelo R-FCN (Dai et al., 2016)

De forma a clarificar uma R-FCN, e dando como exemplo a deteção do objeto classificado como uma

pessoa, necessita-se da caixa delimitadora sobre posição do RoI, caso esteja na posição correta (Figura 23) a

saída é verdadeira, caso não esteja a saída será negativa (Figura 24).

Figura 23: Visualização de R-FNC (k x k = 3 x 3) para a categoria pessoa (Dai et al., 2016)

Considerando ainda o mesmo exemplo, a R-FCN verifica cada proposta regional e divide-a em sub-regiões

executando interações sobre as sub-regiões. Caso um número suficiente de sub-regiões seja verdadeiro, o RoI

é classificado como uma pessoa após aplicar a função “softmax” em todas as classes

Figura 24: RoI posicionado incorretamente no objeto (Dai et al., 2016)

Com esta configuração, o R-FCN é capaz de abordar simultaneamente a variância de localização propondo

diferentes regiões de objeto e a invariância de localização, fazendo com que cada proposta de região se refira

à mesma tabela de mapas de pontuação. Estes mapas de pontuação devem aprender a classificar um objeto

classificado gato como um animal gato, independentemente de onde o gato aparece.

A R-FCN é totalmente convolucional, ou seja, todo o cálculo é partilhado por toda a rede fazendo com que

seja muito mais rápida do que Faster R-CNN, mas com uma precisão comparável.

2.3.4.5 SSD

A SSD (Single-Shot Detector), proposta por Liu et al. (2015), tal como o R-FCN proporciona enormes

ganhos de velocidade em relação à Faster R-CNN, mas fá-lo de uma forma diferente.

Os dois primeiros modelos realizam propostas de região e classificações de região em duas etapas

diferentes. Primeiro, usam uma rede de proposta de região para gerar regiões de interesse; depois, usam

camadas totalmente ligadas ou camadas convolucionais sensíveis à posição para classificar essas regiões. O

SSD executa as duas etapas numa só etapa, prevendo simultaneamente a caixa delimitadora e a classe enquanto

processa a imagem.

Concretamente, dada uma imagem de entrada e um conjunto de etiquetas da base da imagem (ground

truth), a SSD faz o seguinte:

1- Passa a imagem através de uma série de camadas convolucionais, produzindo vários conjuntos de

mapas de características em diferentes escalas (por exemplo, 10x10, depois 6x6, depois 3x3, etc.)

2- Para cada localização em cada um destes mapas de características, utiliza um filtro convolucional 3x3

para avaliar um conjunto de caixas delimitadoras padrão mais pequenas. Estas caixas delimitadoras

padrão são essencialmente equivalentes às caixas de ancoragem do Faster R-CNN.

3- Para cada caixa, prevê, simultaneamente, a caixa delimitadora deslocada (offset) e as probabilidades

da classe.

4- Durante o treino, combina a caixa de base da imagem (ground truth box) com estas caixas que foram

previstas baseadas na IoU (Intersect over Union) (Figura 25). A melhor caixa prevista será rotulada

como “positiva”, juntamente com todas as outras caixas que têm uma IoU de confiança superior a 0.5.

Figura 25: Cálculo e representação da IoU (Adrian Rosebrock, 2016)

Tal como os dois modelos anteriores, a rede de propostas de regiões assegurava que tudo o que se tenta

classificar tinha alguma probabilidade mínima de ser um “objeto”, no entanto na SSD evita-se o passo de

filtragem. Classificam-se e desenham-se as caixas delimitadoras a partir de cada posição da imagem, utilizando

Para corrigir este desequilíbrio, a SSD faz duas coisas: i) em primeiro lugar utiliza a função de supressão

não-máxima - NMS (Non Maximum Suppression) (Girshick, 2017) para agrupar caixas sobrepostas numa única

caixa. Noutras palavras, se 4 caixas com formas, tamanhos, etc. semelhantes contiverem no mesmo objeto, a

NMS mantém a que tem a maior confiança e descarta o resto; ii) depois utiliza a técnica extração dura e negativa

- HNM (Hard Negative Mining) para equilibrar as classes durante o treino. Na HNM apenas um subconjunto

de exemplos negativos com maior perda de treino (isto é, falsos positivos) são utilizados em cada iteração do

treino. A SSD mantém uma relação 3:1 entre negativos e os positivos.

A sua arquitetura tem o aspeto apresentado na Figura 26:

Figura 26: Arquitetura do modelo da SSD (Liu et al., 2015)

Existem “camadas de características extra” no final dessa escala em tamanho reduzido. Estes mapas de

características de tamanho variável ajudam a capturar objetos de diferentes tamanhos, conforme o exemplo da

Figura 27.

Figura 27: Mapa de caraterísticas SSD (Liu et al., 2015)

Em mapas de características mais pequenos (por exemplo 4x4), cada célula cobre uma região maior da

imagem, permitindo-lhes detetar objetos maiores. As propostas e classificação da região são realizadas

simultaneamente: dadas p classes do objeto, cada caixa delimitadora é associada com um vetor dimensional

(4+p) que emite 4 coordenadas de caixas “offset” e p probabilidades de classe. Na última etapa, é aplicada a

função “softmax” para classificar o objeto.

A SSD não difere muito dos dois primeiros modelos, apenas salta a fase de “proposta de região”, e

considera cada caixa delimitadora em cada localização da imagem, simultaneamente com a sua classificação.

Como a SSD faz tudo numa única tentativa, teoricamente é mais rápida do que os outros modelos com uma

precisão equivalente.

2.3.4.6 YOLO

O YOLO (You Only Look Once) foi apresentado por Redmon et al. (2016) e, comparativamente com as

outras redes de classificação de propostas analisadas anteriormente, acabam por realizar previsões várias vezes

para várias regiões de uma imagem. A arquitetura YOLO carrega uma vez toda a imagem através de uma FCNN

(Fully Convolutional Neural Network) e a saída de resultado é a previsão de MxM. Esta arquitetura divide a

imagem de entrada na matriz MxM e para cada geração de matriz cria duas caixas delimitadoras e

probabilidades de classe para essas caixas delimitadoras. É mais provável que a caixa delimitadora seja maior

que a própria matriz.

Figura 28: YOLO aplica uma única rede neuronal a toda a imagem (Redmon et al., 2016)

A arquitetura da rede YOLO possui 24 camadas convolucionais (Figura 29), seguidas por 2 camadas

totalmente ligadas. Em vez dos módulos iniciais usados pelo GoogLeNet, usa uma camada de redução 1×1

seguidas por camadas convolucionais 3×3.

O YOLO prevê várias caixas delimitadoras por cada célula da matriz. No momento do treino, pretende-se

apenas que um previsor de caixa delimitadora seja responsável por cada objeto. Atribuímos um previsor para

ser "responsável" por prever um objeto com base no qual a previsão tem a maior IoU atual com a classificação

e etiquetagem dos objetos na imagem (ground truth). Isso leva à especialização entre os previsores da caixa

delimitadora. Cada previsor melhora a previsão de determinados tamanhos, proporções ou classes de objeto,

melhorando a recuperação em geral.

Os sistemas de deteção anteriores usam classificadores ou localizadores para realizar a deteção, neste caso

aplicam o modelo a uma imagem em vários locais e escalas. As zonas com uma pontuação elevada na imagem

são consideradas deteções.

Neste caso, o YOLO usa uma abordagem totalmente diferente. O YOLO consegue detetar cerca de 20

classes de objetos diferentes na mesma imagem ou vídeo (Redmon et al., 2016). Aplica uma única rede

neuronal a toda a imagem, sendo que essa rede divide a imagem em zonas e prevê caixas delimitadoras e

probabilidades para cada região conforme a Figura 28. As caixas delimitadoras são ponderadas pelas

probabilidades previstas. (Redmon et al., 2016)

A análise de erros do YOLO, em comparação com o Fast R-CNN, mostra que o YOLO comete mais erros

de localização. Além disso, o YOLO tem um recall (fração das áreas relevantes recuperadas com sucesso)

relativamente baixo comparado aos métodos baseados em propostas da região. A versão 2 do YOLO tenta

melhorar a recuperação e a localização, mantendo a precisão da classificação.

Ao adicionar a normalização em todas as camadas convolucionais no YOLO, obtiveram mais de 2% de

melhoria no mAP (Mean Average Precision). A normalização em lote (batch normalization) também ajuda a

regularizar o modelo. Com a normalização foi possível remover a saída inesperada do modelo sem o

sobrecarregar.

2.3.4.7 Retinanet

O Retinanet foi apresentado por Lin et al. (2017) fazendo duas melhorias em relação à deteção de objetos

de apenas um estágio tal como o YOLO e a SSD, e pretende ter o mesmo desempenho que as redes neuronais

de dois estágios mantendo a complexidade de computação o mais reduzida possível. Essas melhorias fazem

uso da perda focal FL(Focal Loss) (T.-Y. Lin et al., 2017) e de uma rede de pirâmides de características FPN

(Feature Pyramid Network), o que fez com que fosse capaz de superar os detetores de dois estágios.

A perda focal considera que as perdas mais pequenas são perdas com amostras negativas, focando-se

apenas nas restantes o que melhora a precisão da previsão.

As redes de pirâmides de características são usadas pela Retinanet convencionalmente para identificar

objetos em diferentes escalas. Uma rede de pirâmides de características faz uso da hierarquia piramidal inerente

em várias escalas das redes neuronais convolucionais para criar pirâmides de recursos.

Figura 30: Retinanet (T.-Y. Lin et al., 2017)

"(…)The one-stage RetinaNet network architecture uses a Feature Pyramid Network (FPN) backbone on

top of a feedforward ResNet architecture (a) to generate a rich, multi-scale convolutional feature pyramid (b).

To this backbone RetinaNet attaches two subnetworks, one for classifying anchor boxes (c) and one for

regressing from anchor boxes to ground-truth object boxes (d). The network design is intentionally simple,

which enables this work to focus on a novel focal loss function that eliminates the accuracy gap between our

one-stage detector and state-of-the-art two-stage detectors like Faster R-CNN with FPN while running at faster

speeds (…)"(Figura 30)(T.-Y. Lin et al., 2017).

2.3.4.8 Comparações e análises entre os vários modelos estudados

Segundo (Huang et al., 2017), considerando a velocidade, a utilização de memória na deteção de objetos

em imagens, a melhor arquitetura de deteção é a Faster R-CNN Inception V2. Contudo o YOLO não está

contemplado nesse estudo.

O modelo mais preciso usa R-CNN e é mais rápido usando o Inception ResNet com 300 propostas. É

executado a 1 segundo por imagem (Figura 31).

O modelo mais rápido é a SSD com MobileNet e oferece a melhor troca de precisão entre os detetores mais

rápidos.

A SSD é rápida, mas apresenta desempenho pior para objetos pequenos em comparação com outros.

Para objetos grandes, a SSD pode superar a Faster R-CNN e a R-FCN com precisão e com extratores mais

leves e mais rápidos.

Figura 31: Comparação de modelos para deteção de objetos

(Hui, 2018)

Para a implementação e desenvolvimento deste projeto, que se vai focar na deteção de objetos,

nomeadamente piscinas em imagens áreas, pretende-se usar a arquitetura e modelo que seja mais preciso.

Segundo (Benjdira, Khursheed, Koubaa, Ammar, & Ouni, 2019), num estudo feito na deteção de automóveis

em imagens aéreas com a FasterR-CNN e o YOLOv3, o YOLOv3 supera a Faster R-CNN em sensibilidade e

tempo de processamento, embora sejam comparáveis na precisão (Figura 32).

Figura 32: Comparação entre a Faster R-CNN e YOLOv3 (Benjdira et al., 2019)

Atualmente o modelo RetinaNet consegue alcançar uma precisão superior relativamente aos outros

modelos (T.-Y. Lin et al., 2017). Além disso, consegue balancear entre a velocidade e precisão de acordo com

diferentes tamanhos da rede. Na velocidade (ms) e precisão (AP) no dataset COCO (Figura 33), podemos ver

que o RetinaNet é superior a todos os outros detetores de corrente.

Figura 33: Performance do modelo da Retinanet (T.-Y. Lin et al., 2017)

A investigação levada a cabo neste estudo permitiu perceber os fundamentos de Machine Learning e Deep

Learning. Ao comparar vários tipos de modelos de Deep Learning para deteção de objetos, foi possível

escolher os três modelos que mais se adequam à investigação em curso, sendo eles o FasterR-CNN, o YOLOv3

e o Retinanet.

Classificação de imagens

O processo de classificação de imagens tem como principal objetivo identificar o(s) objeto(s) existente(s)

em determinada imagem, etiquetá-lo(s) e descrevê-lo(s) de forma semântica. Normalmente as plataformas que

permitem essa classificação recorrem a algoritmos de Machine Learning para etiquetar a imagem de forma

rápida e automática, atribuindo-lhe um determinado grau de confiança.

Existem várias abordagens tecnológicas na classificação de objetos em imagens assim como alguns estudos

comparativos (Abu, Indra, Abd Rahman, Sapiee, & Ahmad, 2019). Contudo, e no interesse do tempo que

existia para o desenvolvimento deste trabalho, decidimos escolher e analisar um conjunto reduzido de

abordagens e priorizar a análise apenas de algumas das suas caraterísticas. Embora a velocidade e precisão

possam ser dos critérios mais importantes num estudo desta natureza, existem muitos outros critérios de

sucesso que se poderiam confrontar. Contudo quisemos tornar este estudo simples Tabela 2.

Tabela 2: Sistemas de Classificação de Imagens

(Abu et al., 2019)

Nesse sentido foram analisadas apenas três das plataformas existentes: a Amazon Rekognition, a Google

API

5

Vision e a Clarifai, uma vez que se tratam de plataformas que analisam imagens e identificam variados

tipos de objetos.

Documentos relacionados