Buscar

E-Book da Unidade 4_Aprendizagem Profunda_DIGITAL PAGES

Prévia do material em texto

CONVOLUÇÃO 
E APLICAÇÕES 
COMERCIAIS EM 
APRENDIZAGEM 
PROFUNDA
4
UNIDADE
SER_DATSCI_APRENPROF_UNID4.indd 90 06/12/2019 12:03:10
Objetivos da unidade
Tópicos de estudo
 Apresentar e descrever as Redes Convolucionais Baseadas em Regiões, isto 
é, Region-based Convolutional Neural Networks (R-CNNs), considerando-se o 
conteúdo desde o conceito de convolução em si até Faster R-CNNs e RBNs;
 Apresentar e exemplificar aplicações comerciais na subárea de aprendizagem 
profunda, com exemplos classificados por setores da economia ou áreas do 
conhecimento.
 Redes convolucionais basea-
das em regiões 
 Convolução como máscara
 Processo de convolução
 Arquitetura de Rede Neural 
Convolucional (CNN ou ConvNet)
 Camada de entrada ou input
 Camada convolucional ou 
camada de convolução
 Camada de não-linearidade 
ou estágio detector via função 
de ativação Rectified Linear Unit 
(ReLU)
 Camada de pooling ou camada 
de subsampling
 Camada totalmente conectada
 Arquitetura de Rede Neural 
Convolucional baseada em Regi-
ões (R-CNN)
 R-CNNs
 Fast R-CNNs
 Faster R-CNNs e RPNs
 Aplicações comerciais 
 Segurança pública
 Comércio e varejo
 Acessibilidade e comunicação
 Transportes e logística
 Saúde e medicina
APRENDIZAGEM PROFUNDA 91
SER_DATSCI_APRENPROF_UNID4.indd 91 06/12/2019 12:03:10
Redes convolucionais baseadas em regiões 
As Redes Neurais Convolucionais ou Convolutional Neural Networks (CNNs 
ou ConvNets), resumidamente, confi guram-se como a utilização de redes neu-
rais para fazer a aprendizagem de padrões, principalmente em imagens, por 
causa da alta performance e da alta acurácia depois do término de seu proces-
so de aprendizagem.
Para melhor compreender sobre o tema principal de Redes Neurais Convo-
lucionais baseadas em Regiões ou Region-based Convolutional Neural Networks 
(R-CNNs) é importante que você internalize conhecimentos básicos desde Con-
volução e ConvNets. Sequencialmente, para ampliar seus conhecimentos sobre 
R-CNNs, você aprenderá também sobre Fast R-CNNs e Faster R-CNNs.
Provavelmente você já deve ter aprendido sobre convolução ou pelo menos 
já ouviu falar neste termo. O conceito de convolução geralmente está ligado ao 
processamento de imagens ou ao processamento de sinais, e a técnica de convo-
lução é originária da matemática por tratar-se de representações matemáticas, 
tais como as matrizes.
Sendo assim, sabemos que uma das técnicas fundamentais para o pro-
cessamento e reconhecimento de imagens é a convolução e, junto à trans-
formada de Fourier, que serve para criar ligações básicas entre domínios 
do espaço e suas frequências, podemos destacar características da imagem, 
bem como distinguir seus elementos. Em resumo, a convolução é geralmente 
usada como solução para o problema de detecção de imagens ou fotografi as.
Convolução como máscara
Uma das aplicações de convolução é como máscaras, ou seja, as máscaras vão 
determinar as características de imagens, tais como bordas, extremidades, mar-
gens, extração de ruídos ou detecção de formas. O conceito de fi ltros geralmente 
está relacionado com a área de processamento de sinais e de imagens. O processo 
de convolução unidimensional, por exemplo, entre vetores A e B (A * B) pode ser 
verifi cado como um conjunto de somas de produtos dos valores A e B, em que B é 
espelhado e é deslocado para uma posição pertinente à máscara.
APRENDIZAGEM PROFUNDA 92
SER_DATSCI_APRENPROF_UNID4.indd 92 06/12/2019 12:03:10
Para exemplificar o processo de convolução como máscara, apresenta-
remos um passo a passo elaborado por Oliveira (2017), que pode ser visto 
a seguir: 
1. O vetor B é espelhado e alinhado com o primeiro valor de A. Assim, o pri-
meiro valor da convolução será:
[0 ∙ (-1)] + (0 ∙ 3) + (1 ∙ 1) = 1
A 0 1 2 3 2 1 0
B -1 3 1
A*B 1
2. B move uma posição. Então, o resultado da convolução de A * B será:
[0 ∙ (-1)] + (1 ∙ 3) + (2 ∙ 1) = 5
A 0 1 2 3 2 1 0
B -1 3 1
A*B 1 5
3. B, então, move uma posição para sua direita e o resultado do processo 
de convolução será:
A * B [1 ∙ (-1)] + (2 ∙ 3) + (3 ∙ 1) = 8
A 0 1 2 3 2 1 0
B -1 3 1
A*B 1 5 8
4. B é movido mais uma posição e o valor do resultado da convolução 
A * B é: 
[2 ∙ (-1)] + (3 ∙ 3) + (2 ∙ 1) = 9
A 0 1 2 3 2 1 0
B -1 3 1
A*B 1 5 8 9
APRENDIZAGEM PROFUNDA 93
SER_DATSCI_APRENPROF_UNID4.indd 93 06/12/2019 12:03:10
5. B, então, é deslocado para mais uma posição e o resultado do processo 
de convolução de A * B vai ser:
[3 ∙ ( -1)] + (2 ∙ 3) + (1 ∙ 1) = 4
A 0 1 2 3 2 1 0
B -1 3 1
A*B 1 5 8 9 4
6. B move mais uma posição e o resultado de sua convolução é A * B, que 
será: 
[2 ∙ (-1)] + (1 ∙ 3) + (0 ∙ 1) = 1
A 0 1 2 3 2 1 0
B -1 3 1
A*B 1 5 8 9 4 1
7. O valor é deslocado mais uma vez e o resultado da convolução A * B será: 
[1 ∙ (-1)] + (0 ∙ 3) + (0 ∙ 1) = -1
A 0 1 2 3 2 1 0
B -1 3 1
A*B 1 5 8 9 1 -1
Portanto, o resultado fi nal deste exemplo de processo de convolução será 
a criação do vetor [1, 5, 8, 9, 4, 1, -1]. No caso do bidimensional, utiliza-se o mes-
mo raciocínio em que a matriz resultante terá a mesma dimensão.
Convolução como máscara
O processo de convolução é uma das técnicas mais utilizadas no processa-
mento de imagens e processamento de sinais. Conforme mostrado pelos autores 
Gonzalez e Woods, em Digital image processing, publicado em 2008, a convolução 
de dois valores contínuos f(x) e g(x), denotado por f(x) * g(x), pode ser determinada 
pela integral a seguir na Equação 1:
APRENDIZAGEM PROFUNDA 94
SER_DATSCI_APRENPROF_UNID4.indd 94 06/12/2019 12:03:11
Equação 1
f(x) * g(t) = f(α) g(x - α) dα
∞ 
-∞ 
∫
Nessa equação, α é a variável de integral, o sinal de menos é o sinal de espe-
lhamento em relação a um determinado eixo, e x é deslocado para mover uma 
função a outra. Portanto, assume-se de −∞ a ∞.
Além disso, o grau de significância no processo de análise de domínio re-
side no fato de f(x) * g(x) e F(u) G(u) formarem um par de transformadas de 
Fourier, conforme mostra a Equação 2:
Equação 2
f(x) * g(t) = f(α) g(x - α) dα e-j2πμxdx
∞ 
-∞ 
∫ ∞ 
-∞ 
∫
= f(α) g(x - α) e-j2πμxdt dα
∞ 
-∞ 
∫ ∞ 
-∞ 
∫
Os termos dentro dos colchetes significam justamente a transformada de 
Fourier de g(x - a). Além disso, nota-se que g(x – a) = G(μ)e-j2πμx, em que G(μ) é a 
transformada de Fourier h(t). Fazendo uso disso na Equação 3, temos:
Equação 3
f(x) * g(t) = G(μ)e-j2πμx dα
∞ 
-∞ 
∫ f(α)
= G(μ)F(μ)
∞ 
-∞ 
∫= G(μ) f(α) e-j2πμx dα
 A Equação 3 nos mostra a transformada de Fourier em relação ao processo 
de convolução.
Normalmente, temos o valor de duas transformações. Obtém-se a convolução 
no domínio espacial por meio do cálculo da inversão da transformada de Fourier, 
sendo f(x) * g(x) e G(u)F(u) o par da transformada. Então, esse valor obtido de resul-
tado é metade do teorema de convolução, conforme mostra a Equação 4:
Equação 4
f(x) * g(x) ⇔ G(μ)F(μ)
Na Equação 4, é possível notar que a expressão à direita é conseguida por 
meio da transformada de Fourier da expressão à esquerda, ao mesmo tempo 
em que a expressão da esquerda é realizada pela transformada de Fourier in-
APRENDIZAGEM PROFUNDA 95
SER_DATSCI_APRENPROF_UNID4.indd 95 06/12/2019 12:03:11
versa da expressão à direita, resultando em uma outra metade do teorema de 
convolução, mostrada na Equação 5:
Equação 5
f(x)g(x) ⇔ G(μ) * F(μ)
Em resumo, no processo ocorre a convolução no domínio da frequên-
cia, processo análogo à multiplicação de domínio espacial, estando os dois 
elementos associados pelas transformadas contínuas e inversas de Fourier, 
respectivamente.
Arquitetura de Rede Neural Convolucional (CNN ou 
ConvNet)
As Redes Neurais Convolucionais, geralmente conhecidas pela sigla 
CNNs (do termo original em inglês Convolutional Neural Networks, ou do ape-
lido em inglês ConvNets), têm como inspiração o mecanismo do córtex visual 
do cérebro humano.
A neurociência, portanto, é uma das inspirações para o estudo das CNNs, 
porém, há diferençasna segmentação biológica entre córtex visual superior e 
inferior, enquanto as CNNs diferenciam-se através de camadas de convolução 
e camadas totalmente conectadas.
O cérebro humano possui grande quantidade de células com a função de de-
tectar a luz em pequenas escalas, elas são conhecidas como campos receptivos. 
Tais células trabalham como fi ltros locais sobre o espaço de entrada, e, quanto 
mais complexa for a célula, maior será seu campo de recepção. A diferença entre 
uma rede neural convencional e uma CNN é que enquanto na primeira usa-se 
como referência um vetor genérico, na segunda usa-se como referência valores 
de entrada da rede, geralmente no formato de imagens. Ainda, é usado o concei-
to de backpropagation para inter-relacionar as camadas da rede.
Segundo Goodfellow, Bengio e Courville, autores do livro Deep Learning: 
adaptive computation and Machine Learning series, publicado em 2016, as CNNs 
são redes neurais que fazem uso de operações matemáticas convolucionais 
em pelo menos uma das camadas da rede neural. Ao contrário de outras redes 
neurais, nas CNNs usa-se a convolução ao invés da multiplicação de matrizes 
em geral. Mesmo assim, as CNNs não deixam de ser uma arquitetura de rede si-
APRENDIZAGEM PROFUNDA 96
SER_DATSCI_APRENPROF_UNID4.indd 96 06/12/2019 12:03:11
milar às redes neurais convencionais. Desde o início, as CNNs mostravam uma 
ótima performance na realização de tarefas de classifi cação de imagens com 
letras manuscritas e em detecção de rostos ou faces. Atualmente também é 
comum o uso para detecção de carros ou automóveis.
Classifi cação
Rede Neural Convolucional 
Carro
Fotografi a
Figura 1. Representação de CNN, com exemplifi cação de uma imagem de entrada com um automóvel para fi ns de 
classifi cação. Fonte: SHUTTERSTOCK. Acesso em: 27/11/2019. (Adaptado).
Camada de entrada ou input
Geralmente, a entrada ou input de uma CNN é uma imagem 2D, repre-
sentada pelas três dimensões [A x B x C], e na qual C representa os canais de 
cores da imagem.
Um dos maiores pontos negativos é que o modelo de CNN originalmente 
não trabalha com alta resolução de imagens. Tendo isso em mente, uma das 
alternativas para uma melhor performance da rede é obrigar que cada neurô-
nio tenha um número menor de conexões para a imagem de entrada. Desse 
modo, podemos obrigar a conectividade local em várias camadas, para fi ns de 
obtenção de uma rede profunda localmente conectada (OLIVEIRA, 2017).
As CNNs trabalham com volumes 3D dos neurônios. Isto é, 3D devido às três 
dimensões (altura, largura, profundidade) do modelo e considerando-se, que 
neste caso, a profundidade se refere ao padrão RGB das imagens em 2D (red, 
green, blue). Neste caso, portanto, profundidade não se refere à imagem de 
entrada em 3D, pois a imagem de entrada continua sendo em 2D. Cada camada 
da CNN transforma o volume de entrada em 3D, para um volume de saída de 
neurônios de ativação em 3D. Isto poderá ser melhor visualizado na Figura 2.
APRENDIZAGEM PROFUNDA 97
SER_DATSCI_APRENPROF_UNID4.indd 97 06/12/2019 12:03:14
Profundidade
Altura
Largura
Figura 2. Exemplifi cação de CNN. Fonte: KARPATHY; JOHNSON, 2016. (Adaptado).
Camada convolucional ou camada de convolução
A camada convolucional ou camada de convolução representa o nú-
cleo de uma rede neural artificial (RNA) e seus dados de saída. Os dados 
de saída, geralmente, são imagens de mesmas dimensões que a imagem 
de entrada, além de serem compreendidos como neurônios e organizados 
em uma determinada dimensão.
Na maioria dos casos, é na camada convolucional que ocorre a maior 
necessidade de recursos computacionais, devido ao alto processamento 
de dados que acontece nesta camada especificamente. Os parâmetros da 
camada de convolução consistem em um conjunto de filtros de aprendiza-
gem, sendo que cada filtro é relativamente pequeno em relação à dimen-
são da imagem original e estende-se por toda profundidade, conforme os 
dados de entrada de uma imagem bidimensional. Semelhante a uma rede 
neural, cada filtro (máscara) envolve, durante o passo de ida, o processo 
de convolução de imagem e calcula o produto das matrizes. Dessa forma, 
é produzido um mapa de ativação de duas dimensões dos filtros.
De maneira intuitiva, a rede irá aprender os fi ltros que são ativados 
quando recebe determinada imagem na camada de entrada, tais como uma 
borda de objeto, o contorno de alguma orientação, borrões ou manchas de 
cores, etc. Cada um dos fi ltros, considerando que exista uma quantidade N 
de fi ltros, produzirá, respectivamente, um mapa de ativação bidimensional. 
Em seguida, todos estes fi ltros são empilhados com a dimensão profundi-
dade e produzem o volume de saída ou output da camada de convolução.
APRENDIZAGEM PROFUNDA 98
SER_DATSCI_APRENPROF_UNID4.indd 98 06/12/2019 12:03:14
As CNNs fazem uso de uma combinação de três arquiteturas para assegurar al-
gum grau de mudança e de invariância quanto à distorção: campo receptivo local, 
parâmetros compartilhados ou pesos compartilhados, e subamostras espa-
ciais ou temporais, como veremos, detalhadamente, a seguir.
• Campo receptivo local: Tem a função de fazer com que os neurônios detectem 
características visuais específi cas, como bordas, pontos e vértices combinados com 
camadas da rede que possuem conexões locais no espaço , e que são completamente 
conectadas ao volume de entrada. Imaginemos que uma imagem de entrada possua 
a dimensão 32x32x3 e que o último 3 identifi que o fato da imagem ser colorida (RGB). 
Caso o campo receptivo seja de tamanho 5x5, cada nó na camada de convolução terá 
o peso com regiões 5x5x3 de entrada de dados. Portanto, o campo receptivo local é o 
fi ltro que irá trabalhar na imagem de entrada no processo de convolução;
• Arranjo espacial ou temporal: O arranjo espacial ou temporal se subdivide 
em profundidade, passo e preenchimento em zero;
EXPLICANDO
A profundidade realiza o controle de quantidade de nós da camada de 
convolução que conecta a mesma região dos dados de entrada; o passo 
determina como se aloca a profundidade ao redor das dimensões espaciais; 
e o preenchimento em zero permite controlar o tamanho espacial dos dados 
de saída e preservar o tamanho de espaço dos dados de entrada.
• Parâmetros compartilhados ou pesos compartilhados: Tal compar-
tilhamento se refere à utilização de mais de um parâmetro para mais ou-
tra subamostra ou mapa de características do modelo. Devemos lembrar 
que em um único resultado de processo de convolução pode haver muitos 
mapas de características. Os pesos (weights) compartilhados, portanto, 
possuem valor compartilhado.
Camada de não-linearidade ou estágio detector via função 
de ativação Rectified Linear Unit (ReLU)
Segundo Goodfellow, Bengio e Courville, autores do livro Deep lear-
ning: adaptive computation and machine learning series, publicado em 
2016, ao abordarem as camadas de CNN, na qual entre a camada de con-
APRENDIZAGEM PROFUNDA 99
SER_DATSCI_APRENPROF_UNID4.indd 99 06/12/2019 12:03:14
volução e a camada de pooling, existe o chamado estágio detector ou 
camada de não-linearidade. É nesta etapa da rede que ocorre o uso de 
uma função de ativação específica, ReLU, para fins de não-linearidade. 
ReLU se refere ao termo em inglês Rectified Linear Unit ou, em portu-
guês, Unidade Linear Retificada, podendo ser representada pela fórmula 
g(z) = max {0, z}.
Outras funções de ativação podem ser usadas para não-linearidade, 
mas a ReLU geralmente apresenta bons resultados. A vantagem da ReLU 
em relação às demais é a maior rapidez de treinamento.
A função ReLU computa a função f(x)=max (0,x), também encontrada 
reescrita como y = max (x, 0), usando-se zero como referência, conforme 
observado no Diagrama 1.
DIAGRAMA 1. ILUSTRAÇÃO DE FUNÇÃO RELU, ESPECIFICAMENTE SOBRE FUNÇÃO 
DE TRANSFERÊNCIA
Função de Transferência
15 20 -10 35
18 -110 25 100
20 -15 25 -10
101 75 18 23
15 20 0 35
18 0 25 10020 0 25 0
101 75 18 23
0,0
Fonte: HIJAZI; KUMAR; ROWEN, 2015 . (Adaptado).
Camada de pooling ou camada de subsampling
O processo de pooling, isto é, o que o ocorre na camada de pooling 
nas CNNs ou ConvNets, pode ser resumido como a aplicação de um filtro 
bidimensional sobre cada um dos canais do mapa de características gera-
APRENDIZAGEM PROFUNDA 100
SER_DATSCI_APRENPROF_UNID4.indd 100 06/12/2019 12:03:14
do pela camada de convolução, sumarizando as características que estão 
na região sob o filtro. O pooling pode se subdividir em pooling máximo, 
pooling e pooling médio. 
As camadas de pooling são usadas nas CNNs ou ConvNets para reduzir 
as dimensões dos mapas de características, logo, reduzindo a necessidade 
de computar ou calcular, e tornando o modelo mais robusto e rápido em 
relação às características mapeadas. 
Alguns autores, tais como Hijazi, Kumar e Rowen (2015), também cha-
mam o pooling pelo nome de subsampling. Em casos de pooling médio e 
máximo, a entrada ou input é dividida em dois espaços bidimensionais sem 
sobreposição. No caso do pooling máximo, o valor máximo dentre quatro 
valores é selecionado. Já no caso de pooling médio, o valor médio dentre 
quatro valores será selecionado. Isto está exemplificado no Diagrama 2.
DIAGRAMA 2. ILUSTRAÇÃO DE POOLING, COM POOLING MÉDIO E POOLING MÁXIMO
Pooling médio Pooling máximo
21 8 8 12
12 19 9 7
8 10 4 3
18 12 9 10
15 9
12 7
21 12
18 10
Por exemplo, considere a Figura 3, na qual uma entrada de tamanho 
224x224x64 é agrupada com filtro de tamanho e passo dois, diminuindo o 
volume do dado de saída para 112x112x64.
Fonte: HIJAZI; KUMAR; ROWEN, 2015. (Adaptado).
APRENDIZAGEM PROFUNDA 101
SER_DATSCI_APRENPROF_UNID4.indd 101 06/12/2019 12:03:14
pool
downsampling224
224
112
112
224x224x64
112x112x64
Figura 3. Ilustração de pooling com downsampling. Fonte: AKHTAR; RAGAVENDRAN, 2019. Acesso em: 27/11/2019.
Camada totalmente conectada
Camada Totalmente Conectada (CTC), ou Fully Connected Layer (FC Layer) 
em inglês, relaciona-se com todo o processo de convolução feito nas camadas 
anteriores da rede. Em várias estruturas de CNNs, antes da saída, ocorre o 
uso de pelo menos uma camada totalmente conectada, que é preenchida 
com as ativações de neurônios anteriores.
O principal objetivo desta camada é usar os resultados ante-
riores do processo de convolução ou do processo de pooling 
para classificar as imagens em rótulos (labels), em um exem-
plo bem simplificado. Portanto, a saída ou output daquelas 
camadas anteriores é simplificado em um vetor de valo-
res, sendo que cada valor representa probabilidades de que 
uma característica x pertença a um rótulo y. Após, ocorre um processo de 
backpropagation dentro da própria camada totalmente conectada, para 
determinar os pesos (weights) mais apropriados. Assim, a partir da intera-
ção entre os neurônios, resulta-se uma classificação.
Um detalhe importante é que CTC ou FC Layer e camada convolucio-
nal diferenciam-se apenas pelo fato de que na camada convolucional os 
neurônios estão conectados à uma região local da entrada, e que muitos 
APRENDIZAGEM PROFUNDA 102
SER_DATSCI_APRENPROF_UNID4.indd 102 06/12/2019 12:03:15
neurônios compartilham parâmetros. Porém, também há semelhanças en-
tre as duas, dado que possuem formas funcionais idênticas e então pode 
haver conversão entre os dois tipos de camadas.
DIAGRAMA 3. ILUSTRAÇÃO DE PROCESSAMENTO EM CAMADA TOTALMENTE CONECTADA
(L)
29
59
12
1
(L)
(L)
0,1
0,0
(L)Y0
88
(L)Y1
13
Multiplicação elemento 
por elemento e 
acumulação
Multiplicação elemento 
por elemento e 
acumulação
Multiplicação elemento 
por elemento e 
acumulação
Multiplicação elemento 
por elemento e 
acumulação
Acumulação
Acumulação
W
3 -1
2 4
Y0
2 3
5 4
(L-1)
Y1
7 2
1 3
(L-1)
W
7 0
-2 4
W
5 1
3 -4
(L)
1,0
W
-1 -3
2 4
(L)
1,1
0,0
(L)
0,1
(L)
Fonte: OLIVEIRA, 2017. (Adaptado).
Em síntese, foi possível aprender que as CNNs ajudam a solucionar os proble-
mas de detecção de objetos em imagens através do conceito de convolução, como 
você poderá visualizar na Figura 4. A partir destes conhecimentos, ficará mais fácil 
para você aprender sobre Rede Neural Convolucional baseada em Regiões (R-CNN).
APRENDIZAGEM PROFUNDA 103
SER_DATSCI_APRENPROF_UNID4.indd 103 06/12/2019 12:03:15
Figura 4. Representação de CNN com exemplo de detecção de objetos das classes carro e pessoa. Fonte: SHUTTERS-
TOCK. Acesso em: 28/11/2019. (Adaptado).
Por fi m, podemos aprender que a sequência de etapas que foi apresentada, 
desde a camada de evolução até a camada totalmente conectada (FC layer), é 
fundamental para as CNNs.
Arquitetura de Rede Neural Convolucional baseada em 
Regiões (R-CNN)
Atualmente, a tendência é criar 
redes neurais artifi ciais com cada vez 
mais e mais camadas profundas e o 
maior número de neurônios possíveis, 
visto que existem mais dados dispo-
níveis para treinamento e que temos, 
em geral, um maior acesso a recur-
sos de hardware e novos algoritmos 
desenvolvidos. Por consequência, as 
ConvNets tendem a trazer resultados 
cada vez melhores para o processo de 
classifi cação de imagens e também 
para a detecção de objetos.
Com base nesse cenário, foram desenvolvidas novas técnicas baseadas no 
sucesso dos métodos de detecção de objetos em CNN, tais como R-CNN, Fast 
R-CNN e Faster R-CNN, que serão apresentados a seguir.
APRENDIZAGEM PROFUNDA 104
SER_DATSCI_APRENPROF_UNID4.indd 104 06/12/2019 12:03:27
R-CNNs
As Redes Neurais Convolucionais baseadas em Regiões (R-CNNs), do inglês 
Region-based Convolutional Neural Networks (R-CNNs) foram, em primeiro 
momento, desenvolvidas utilizando ConvNets Profundas (Redes Neurais 
Convolucionais Profundas) para conseguir encontrar Regiões de Interesse 
(RoIs) em uma imagem de entrada, e fazer detecção e reconhecimento de ob-
jetos. Um dos principais autores sobre R-CNNs chama-se Ross Girshick, tendo 
sido referência para alguns conceitos demonstrados a seguir.
A R-CNN nada mais é do que um algoritmo de detecção de objetos em 
imagens que realiza a combinação das propostas de região de baixo para 
cima, usando características previamente calculadas pelo uso de CNN. En-
tão, a rede neural faz essa tarefa através de processos de regressão e de 
classificação. Desta forma, na regressão, são analisadas as coordenadas 
dos objetos através da chamada caixa delimitadora ou retângulo deli-
mitador (bounding box), e na classificação é realizada a predição de a 
qual classe pertence cada objeto.
Os algoritmos de R-CNN são basicamente compostos por três módulos 
principais: o primeiro gera regiões propostas independentes das catego-
rias das imagens por meio de busca seletiva (selective search); o segundo 
é um algoritmo de CNN que seleciona as características dessa região inde-
pendente; e o terceiro tem a função de analisar e classificar as caracterís-
ticas que foram extraídas.
Podemos afirmar que uma das desvantagens de R-CNNs 
é que o algoritmo de busca seletiva é fixo, sem que ocor-
ra aprendizado ou aprendizagem. Mas há a vantagem de 
que, através do mesmo algoritmo de busca 
seletiva, são propostas regiões em uma 
quantidade específica e suficiente, 
ao invés de propor regiões em uma 
quantidade exagerada e com maior 
custo computacional.
O modelo de R-CNN em si poderá ser 
observado no Diagrama 4.
APRENDIZAGEM PROFUNDA 105
SER_DATSCI_APRENPROF_UNID4.indd 105 06/12/2019 12:03:28
DIAGRAMA 4. MODELO DE R-CNN
CNN
Previsão de
Categoria Previsão de
Categoria
Previsão de caixa 
delimitadora Previsão de caixa 
delimitadora
CNN
BUSCA SELETIVA
Fonte: Dive into deep learning, [s.d]. Acesso em: 27/11/2019. (Adaptado).
Fast R-CNNs
A Fast R-CNN, que por sua vez é uma tentativa de melhora de perfor-
mance e de maior rapidez de detecção da R-CNN, é um algoritmo para trei-
namento que possui apenas uma fase. Em tal fase, aprende as características 
para poderclassifi car os objetos das imagens ao melhorar suas localizações 
espaciais.
Se comparada com a R-CNN, a Fast R-CNN corrigiu o gargalo de perfor-
mance que havia na R-CNN em extrair independentemente as característi-
cas para cada região proposta da imagem; tal gargalo computacional ocorria 
porque haviam muitas sobreposições das regiões, resultando em tarefas re-
petitivas para o computador ou para 
calcular. Ao contrário da R-CNN, a 
Fast R-CNN usa uma imagem inteira 
como forma de entrada para a CNN 
para fi ns de extração das caracterís-
ticas. Outra diferença é que na R-CNN 
há a inclusão de Pooling RoI (Region 
of Interest), isto é, Pooling de Região 
de Interesse na imagem. Na sequên-
cia, ocorrem transformações internas 
e a previsão de ambas as categorias 
e da caixa delimitadora para cada re-
gião que foi proposta.
APRENDIZAGEM PROFUNDA 106
SER_DATSCI_APRENPROF_UNID4.indd 106 06/12/2019 12:03:47
DIAGRAMA 5. MODELO DE FAST R-CNN
Camada densa
Pooling de Região de
Interesse (ROI)
Busca seletivaCNN
Previsão de
categoria
Previsão da caixa
delimitadora
Fonte: Dive into deep learning, [s.d.]. Acesso em: 27/11/2019. (Adaptado).
Logo, a partir da análise do Diagrama 5, podemos ver que um grande dife-
rencial da Fast R-CNN é a presença de RoI Pooling, isto é, através de janelas de 
pooling (pooling windows) da Região de Interesse.
A extração de características, devemos lembrar, ocorre através de um mapa 
de características convolucional (convolutional feature map).
Faster R-CNNs e RPNs
Faster R-CNN é um algoritmo de detecção que possui, como o seu diferencial, a 
adição de uma arquitetura de Rede de Proposta de Regiões, do termo em inglês 
Region Proposal Network (RPN). Você pode observar o modelo no Diagrama 6.
APRENDIZAGEM PROFUNDA 107
SER_DATSCI_APRENPROF_UNID4.indd 107 06/12/2019 12:03:57
DIAGRAMA 6. MODELO DE FASTER R-CNN COM REGION PROPOSAL NETWORK (RPN)
Camada densa
Pooling de Região de
Interesse (ROI)
Non-Maximum
Suppression
(NMS)
Anchor
Box
CNN Camada deconvolução 
Previsão de
categoria
Previsão da caixa
delimitadora
Previsão da caixa
delimitadora
Previsão da
caixa binária
Fonte: Dive into deep learning, [s.d.]. Acesso em: 27/11/2019. (Adaptado).
O uso de Region Proposal Networks (RPNs) permitiu que a rede com-
partilhe as camadas convolucionais ao invés de fazer um procedimento se-
parado para a extração de regiões, como era feito antigamente em outros 
modelos. As RPNs fazem parte da primeira etapa da Faster R-CNN, que irá 
reconhecer a região do objeto de seu interesse na imagem que foi adicio-
nada na camada de entrada. 
A segunda etapa é basicamente uma Fast R-CNN que classifica em qual 
categoria tal objeto se encaixa, por exemplo, se é um cachorro ou se é um 
gato. Logo, a arquitetura de treinamento Faster R-CNN é uma arquitetura 
End-to-End que treina conjuntamente a RPN e a Fast R-CNN. Então, a Fas-
ter R-CNN, no seu primeiro passo, analisa as imagens de entrada por meio 
de uma CNN para, assim, extrair as características de relevância da ima-
gem, obtendo mapas de características que serão, depois, utilizados pela 
RPN. Após isso, a RPN verifica os mapas de características que foram obti-
dos a partir das imagens utilizadas para treinamento e faz dois cálculos de 
pontuações. O primeiro cálculo é sobre se a janela de pooling possui algum 
APRENDIZAGEM PROFUNDA 108
SER_DATSCI_APRENPROF_UNID4.indd 108 06/12/2019 12:04:06
objeto de interesse conforme o mapa de características; já o segundo cál-
culo é sobre verificar se o objeto é ou não é de interesse.
Outros dois itens que se diferenciam na Faster R-CNN, mas que na ver-
dade estão inclusos na RPN, são Non-Maximum Suppression (NMS) e caixa 
âncora (anchor box).
As RPNs, de certa forma, são Fully Convolutional Networks (FCNs) e po-
dem ser treinadas End-to-End, especifi camente para a tarefa de geração de 
proposta de detecção. Por design, as RPNs fazem a previsão de propostas de 
regiões com grande variedade de escalas e de proporções das imagens.
Classifi cador
Pooling de Região 
de Interesse (RoI)
Rede de Proposta 
de Região (RPN)
Camadas de 
convolução
Imagem
Mapa de 
características
Propostas
Figura 5. Modelo de Faster R-CNN como uma rede unifi cada para detecção de objetos, incluindo a RPN, a qual serve 
como a “atenção” desta rede unifi cada.
Em resumo e em conclusão ao tema de Faster R-CNNs, sabemos que o com-
partilhamento de características convolucionais com a rede de detecção tor-
nou a etapa de proposta de regiões praticamente sem custos computacionais. 
Portanto, o conceito de Faster R-CNNs em aprendizagem profunda possibilitou 
a existência de um sistema de detecção de objetos quase em tempo real, e o 
conceito de RPNs ajudou a melhorar a qualidade das propostas de região e 
melhorou a acurácia da detecção de objetos.
APRENDIZAGEM PROFUNDA 109
SER_DATSCI_APRENPROF_UNID4.indd 109 06/12/2019 12:04:06
Aplicações comerciais 
Após o estudo das teorias de aprendizagem profunda, veremos a prática 
através de aplicações comerciais, isto é, para negócios.
Podemos interpretar que mesmo que, algumas das áreas listadas não prio-
rizem a parte comercial, por exemplo as ciências, muitas vezes há o envolvi-
mento de algum software pago ou de algum serviço pago. 
Neste tópico não veremos necessariamente marcas e preços, mas sim 
uma visão melhor de como a inteligência artifi cial e a aprendizagem pro-
funda estão impactando, diariamente, as empresas e, consequentemente, 
a sociedade.
Segurança pública
Segurança é uma das áreas mais impactadas pela inteligência artifi cial e a 
aprendizagem profunda, com vantagens e com desvantagens.
A aplicação desta tecnologia nas atividades voltadas à segurança pública 
inclui vantagens diversas vantagens, como: redução de crimes, melhoria da 
qualidade de vida, redução do tráfi co de drogas. Em resumo, uma vida melhor 
em sociedade. Por outro lado, há desvantagens como a diminuição da privaci-
dade das pessoas.
A principal – ou a mais famosa – tecnologia usada para a segurança 
é o reconhecimento facial. A tecnologia de reconhecimento 
facial não é algo novo, pois existe desde a década de 60 
e 70 e, provavelmente, você mesmo já aplicou o reconhe-
cimento facial. Já usou o Facebook para marcar amigos nas 
fotos online? Já usou o app Google Fotos? Se a sua resposta for sim, então você 
defi nitivamente está usando inteligência artifi cial e aprendizagem profunda 
para o reconhecimento facial. 
Nos softwares de segurança, o uso do reconhecimento facial depende de ques-
tões relacionadas ao Estado. Por exemplo, em alguns países, a aplicação desta fer-
ramenta como forma de garantir a segurança é feita para melhorar a sociedade, 
garantindo os direitos humanos; já em outros países, seu uso pode ocasionar a 
falta de tais direitos. 
APRENDIZAGEM PROFUNDA 110
SER_DATSCI_APRENPROF_UNID4.indd 110 06/12/2019 12:04:06
Comércio e varejo
Nesta área, inteligência artifi cial e aprendizagem profunda são imprescin-
díveis, pois trazem diversas facilidades inovadoras que elevam o percentual 
de vendas. Um exemplo é a implantação da Internet of Thinking (IoT), ou 
internet das coisas. Essa tecnologia oferece uma série de vantagens, sendo 
usada para simplifi car e automatizar atividades corriqueiras da rotina. Por 
exemplo, com a internet das coisas é possível fazer compras, evitando fi las 
nos caixas e outros problemas tradicionais que tornam chata a experiência 
de comprar e de vender. 
ASSISTA
O objetivo da internet das coisas é conectar itens usados 
no dia a dia (geladeiras, fogões, janelas, TVs, carros etc) 
à internet. Para entender um pouco melhor como fun-
ciona este conceito, confi ra o vídeo Internet das coisas 
– Tecmundo explica.
No Brasil, por exemplo, já há aplicação no setor de supermercados que em-
prega tecnologias semelhantes. A rede Zaitt, em parceria com o Carrefour, já es-
treou mercados autônomos com o uso da tecnologiade reconhecimento facial.
Acessibilidade e comunicação
Uma área muito legal em que está sendo aplicada inteligência artificial 
e aprendizagem profunda, sem dúvidas, é a acessibilidade. A tecnologia de 
visão computacional e a tecnologia de texto para fala, entre outras, podem 
ser usadas para a maior inclusão e para melhorar a vida de pessoas com 
deficiência auditiva ou visual. Eventualmente, pode envolver também a 
subárea de Aprendizado de Máquina.
Para idiomas, inteligência artificial e a apren-
dizagem profunda também podem ser aplica-
das comercialmente. Na verdade, já existem 
aplicações comerciais, por exemplo, para tradu-
ção entre diferentes idiomas.
APRENDIZAGEM PROFUNDA 111
SER_DATSCI_APRENPROF_UNID4.indd 111 06/12/2019 12:04:07
Transportes e logística
Você já ouviu falar da empresa Tesla? Não, não é uma empresa criada pelo 
inventor Nikola Tesla. É a empresa do empreendedor Elon Musk, que usa alta 
tecnologia para fabricar carros e até caminhões baseados em energia elétrica 
ao invés de combustíveis.
Inteligência artifi cial e aprendizagem profunda estão sendo usadas comer-
cialmente na produção de veículos autônomos, isto é, carros, caminhões e ou-
tros veículos sendo dirigidos por IA, ao invés de serem dirigidos por um ser hu-
mano. A principal tecnologia empregada é a visão computacional, mas existem 
muitas outras envolvidas. Isto pode impactar o setor de transportes e logística, 
inclusive, com a criação de “robotáxis”, ou “táxis robô”.
Saúde e medicina
Muitas das técnicas de inteligência artificial e aprendizagem profunda 
também podem ser aplicadas na área de saúde. Em alguns países, este 
setor é conhecido como healthcare, ou seja, cuidados em saúde. Sendo 
assim, envolve várias áreas da saúde, inclusive a farmácia, ajudando na 
descoberta de novos medicamentos.
CONTEXTUALIZANDO
Um exemplo já presente nos dias de hoje são os smartwatches, os reló-
gios inteligentes. Muitas pessoas utilizam esse aparelho durante a prática 
de atividades físicas para monitorar batimentos cardíacos, resistência 
etc. O resultado é uma analise em tempo real de como o organismo reage 
durante os exercícios e a detecção de qualquer anormalidade. 
Tecnologias específi cas aplicadas na saúde são a visão computacional, 
Natural Language Processing (NLP), aprendizado por reforço, métodos gene-
ralizados, entre outros. Em medicina, especifi camente, IA e DL podem ajudar 
nos exames por imagem e nos diagnósticos médicos, além de usar robôs para 
apoiar os médicos em cirurgias.
APRENDIZAGEM PROFUNDA 112
SER_DATSCI_APRENPROF_UNID4.indd 112 06/12/2019 12:04:07
Sintetizando
Ao longo da unidade, disponibilizamos mais conteúdos e mais conheci-
mentos sobre aprendizagem profunda.
Foi apresentado e descrito, através de subtópicos, as Redes Convolu-
cionais baseadas em Regiões, do inglês Region-based Convolutional Neural 
Networks (R-CNN). Desta forma, você não aprendeu apenas sobre R-CNNs, 
mas sobre várias etapas e vários conceitos importantes sobre redes neu-
rais, tais como Rectified Linear Unit (ReLU), Fast R-CNNs e Faster R-CNNs, e 
por fim, Region Proposal Network (RPN).
Ainda, foram apresentadas e exemplificadas aplicações comerciais com 
aprendizagem profunda, com exemplos classificados por setores da econo-
mia ou áreas do conhecimento, tratando-se de temas desde segurança pú-
blica até saúde.
APRENDIZAGEM PROFUNDA 113
SER_DATSCI_APRENPROF_UNID4.indd 113 06/12/2019 12:04:07
Referências bibliográficas
ADAM, B.; ZAMAN F. H. K.; YASSIN I. M.; ABIDIN H. Z.; RIZMAN Z. I. Performance 
evaluation of faster R-CNN on GPU for object detection. [s.l.], 2017. Disponível em: 
<http://jfas.info/psjfas/index.php/jfas/article/view/2849>. Acesso em: 13 nov. 2019.
AKHTAR, N.; RAGAVENDRAN, U. Interpretation of intelligence in CNN-pooling 
processes: a methodological survey. 2019. Disponível em: <https://link.springer.
com/article/10.1007/s00521-019-04296-5>. Acesso em: 27 nov. 2019.
DARTORA, A. Reconhecimento automático de padrões radiológicos utilizan-
do aprendizado profundo. 72f. Dissertação como requisito parcial (Pós-gradua-
ção em informática) – Setor de Ciências Exatas, Universidade Federal do Paraná, 
Curitiba. 2018.
DIVE INTO DEEP LEARNING. 13.8. Region-based CNNs (R-CNNs , [s.d.]. Disponível 
em: <https://d2l.ai/chapter_computer-vision/rcnn.html>. Acesso em: 27 nov. 2019.
ELDOR, T. Capsule Neural Networks: the next neural networks? Part 1: CNNs and 
their problems. Towards Data Science, [s.d.]. Disponível em: <https://towards-
datascience.com/capsule-neural-networks-are-here-to-finally-recognize-spa-
tial-relationships-693b-7c99b12>. Acesso em: 27 nov 2019.
ESTEVA, A.; ROBICQUET, A.; RAMSUNDAR, B. et al. A guide to deep learning in 
healthcare. Nature, [s.d.]. Disponível em: <https://www.nature.com/articles/
s41591-018-0316-z>. Acesso em: 13 nov.2019.
FILHO, O. M.; NETO, H. V. Processamento digital de imagens. Rio de Janeiro: Edi-
tora Brasport, 1999.
FONSECA, M. Sem caixa nem segurança: mercado autônomo abre as portas em 
SP. Exame, São Paulo, 4 mai. 2019. Disponível em: <https://exame.abril.com.br/
pme/sem-caixa-nem-seguranca-mercado-autonomo-abre-as-portas-em-sp/>. 
Acesso em: 11 nov. 2019. 
GANDHI, R. R-CNN, Fast R-CNN, Faster R-CNN, YOLO - object detection algori-
thms. Towards Data Science, [s.d.]. Disponível em: <https://towardsdatas-
cience.com/r-cnn-fast-r-cnn-faster-r-cnn-yolo-object-detection-algorithms-
-36d53571365e>. Acesso em: 27 nov. 2019.
GEEKS FOR GEEKS. CNN | Introduction to Pooling Layer. Disponível em: <https://
www.geeksforgeeks.org/cnn-introduction-to-pooling-layer/>. Acesso em: 27 nov. 
2019.
APRENDIZAGEM PROFUNDA 114
SER_DATSCI_APRENPROF_UNID4.indd 114 06/12/2019 12:04:07
GIRSHICK, R. Fast R-CNN. ICCV ‘15 Proceedings of the 2015 IEEE International 
Conference on Computer Vision (ICCV) Pages 1440-1448. 2015. Disponível em: 
<https://arxiv.org/abs/1504.08083>. Acesso em: 26 nov. 2019.
GITHUB. CS231n Convolutional neural networks for visual recognition. Stan-
ford University, [s.d.]. Disponível em: <http://cs231n.github.io/neural-networ-
ks-1/>. Acesso em 26 nov. 2019.
GITHUB. CS231n convolutional neural networks for visual recognition. Stan-
ford University, [s.d.]. Disponível em: <http://cs231n.github.io/convolutional-net-
works/>. Acesso em 13 Nov 2019.
GONZALEZ, R.; WOODS, R. Digital image processing. EUA: Editora Pearson, 2008.
GOODFELLOW, I; BENGIO, Y; COURVILLE, A. Deep Learning: adaptive computa-
tion and Machine learning series. Cambridge, MA: MIT Press: 2016.
HAYKIN, Simon. Redes Neurais: Princípios e Prática. Porto Alegre: Bookman, 
2001.
HIJAZI, S.; KUMAR, R.; ROWEN, C. Using convolutional neural networks for 
image recognition. Disponível em: <http://ip.cadence.com/uploads/901/cnn-
-wp-pdf>. Acesso em 11 nov. 2019.
INTERNET DAS COISAS. Postado por TecMundo. (1min. 53s.). son. color. port. 
Disponível em: <https://youtu.be/O8-oiSsZl1Y>. Acesso em: 28 nov. 2019.
ITFORUM365. Reconhecimento facial funciona mesmo na segurança pú-
blica?, [s.d.]. Disponível em: <https://www.itforum365.com.br/reconhecimen-
to-facial-funciona-mesmo-na-seguranca-publica/>. Acesso em: 12 nov. 2019.
KREYSZIG, E. Advanced Engineering Mathematics. Editora Wiley, 2010.
KOLODNY, L. Tesla acquiring deepscale, computer vision start-up, for self-driving. 
CNBC, [s.d.]. Disponível em: <https://www.cnbc.com/2019/10/01/tesla-acquirin-
g-deepscale-computer-vision-start-up-for-self-driving.html>. Acesso em 13 nov. 
2019.
KUZOVKIN, I. Activations of deep convolutional neural networks are aligned 
with gamma band activity of human visual cortex, [s.d.]. Disponível em: <ht-
tps://www.nature.com/articles/s42003-018-0110-y>. Acesso em: 26 nov. 2019.
LE, Q. V. A Tutorial on Deep Learning Part 2: autoencoders, convolutional-
neural networks and recurrent neural networks. [s.l.], 2015. Disponível em: 
<http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.703.5244>. Acesso 
em: 13 nov. 2019.
APRENDIZAGEM PROFUNDA115
SER_DATSCI_APRENPROF_UNID4.indd 115 06/12/2019 12:04:07
LECUN, Y.; KAVUKCUOGLU, K.; FARABET, C. Convolutional networks and appli-
cations in vision. 2010. Disponível em: <https://koray.kavukcuoglu.org/publis/
lecun-iscas-10.pdf>. Acesso em: 13 nov. 2019.
NISHIHARA, N. ”Just Walk Out” with Amazon and the internet of thinking. Accen-
ture, [s.d.]. Disponível em: <https://www.accenture.com/us-en/blogs/blogs-nao-
mi-nishihara-future-retail-internet-of-thinking>. Acesso em: 11 nov. 2019.
OLIVEIRA, H. S. Redes neurais convolucionais para classificação de expres-
sões faciais de emoções. 120 f. Projeto de pesquisa (Bacharelado em Ciência da 
Computação) – Departamento de Ciência da Computação, Universidade Federal 
de Roraima, Boa Vista, 2017.
TEICHMANN, M. MultiNet: real-time joint semantic reasoning for autono-
mous driving. Disponível em: <https://arxiv.org/abs/1612.07695>. Acesso em: 
13 nov. 2019.
APRENDIZAGEM PROFUNDA 116
SER_DATSCI_APRENPROF_UNID4.indd 116 06/12/2019 12:04:07

Continue navegando