Processamento de Imagens com
Deep Learning
Mauricio	Onoda
Bio
•  Atualmente	sou	do	2me	de	Big	Data	da	OLX,	
trabalhando	com	processamento	de	textos	e	
de	imagens.	
•  Tenho	mais	de	10	anos	de	experiência	em	TI	e	
há	13	anos	trabalho	com	Machine	Learning.		
•  Possuo	doutorado	e	mestrado	pela	COPPE/
UFRJ,	sendo	graduado	em	Computação	pelo	
ITA.
12.5 milhões de anúncios ativos
na plataforma – quase meio
milhão de novos anúncios por dia
2 milhões de imagens por dia!
Processamento de Imagens
•  Não	é	novidade!	
•  Recentemente	
houve	um	salto	
no	desempenho	
com	a	u2lização	
de	Deep	Learning
Machine Learning
Fontes:hUp://adilmoujahid.com/posts/2016/06/introduc2on-deep-learning-python-caffe/	
	hUp://on-demand.gputechconf.com/gtc/2015/presenta2on/S5818-Keynote-Andrew-Ng.pdf
Deep Learning
Fonte:	hUp://adilmoujahid.com/posts/2016/06/introduc2on-deep-learning-python-caffe/
Deep Learning
Fonte:	cs229.stanford.edu/materials/CS229-DeepLearning.pdf
ü  Redes	Neurais	com	mais	neurônios	que	as	redes	“tradicionais”	
ü  Formas	mais	complexas	de	conexão	entre	as	camadas	e	neurônios	
ü  Extração	automá2ca	de	features	
Deep Learning
neuralnetworksandde
eplearning.com/
chap1.html	
60	milhões	de	parâmetros	
12	mil	parâmetros
Fatores do Sucesso
Deep	Neural	Network	
GPU	
Base	de	
Imagens	
Fonte:	www.nvidia.com/content/events/geoInt2015/LBrown_DL_Image_Classifica2onGEOINT.pdf
Deep Learning	
Fonte:	www.nervanasys.com/deep-learning-and-the-need-for-unified-tools/
Funcionamento Básico	
Fonte:	hUps://medium.com/@kennethlee_98497/a-theory-explains-deep-learning-79b02598a2d5
Funcionamento Básico	
Fonte:	cs229.stanford.edu/materials/CS229-DeepLearning.pdf
Frameworks	
Fonte:	hUps://arxiv.org/pdf/1511.06435.pdf
Origem dos Frameworks	
Fonte:	www.nextplaporm.com/2016/06/20/will-gpu-accelerated-ai-lend-tradi2onal-supercompu2ng/
Nossa Escolha	
Fonte:	hUps://pt.slideshare.net/irpycon/caffe-a-deep-learning-framework-ramin-fahimi	
•  Especializado	em	imagens	
•  Bastante	popular	
•  Coleção	de	modelos	pré-treinados	(Caffe	Model	Zoo)	
•  Facilidade	de	realizar	fine-tuning	
•  Extração	de	features	
•  Processamento	em	“batch”
Caffe
Classes	
•  Blob	
–  Armazenamento	e	
comunicação	de	dados	
•  Layer	
–  Unidade	de	computação	
•  Net	
–  DAG	de	layers	e	blobs	
conectados	
•  Solver	
–  O2mização	dos	parâmetros
Caffe
Etapas	
•  Converter	dados	para	um	formato	
suportado	
– LMDB,	HDF5,	lista	de	imagens	
•  Definir	a	rede	
•  Configurar	o	solver	
•  Treinar	o	modelo
Caffe
Definição da Rede	
•  Através	de	schemas	
•  Protobuf	Model	Format	
•  Prototxt	file	
Fonte:	hUps://compu2ng.ece.vt.edu/~f15ece6504/slides/L2_caffe.pdf
Caffe
Definição da Rede	
Fonte:	hUp://slideplayer.com/slide/8203714/	
5	milhões	de	parâmetros	
Incep2on	Module
Caffe
Definição da Rede	
•  Na	prá2ca...	
– Divcil	criar	uma	rede	do	zero	
– Fine-tuning	de	modelo	pré-treinado	
– A	maioria	das	empresas	adaptam	as	redes/
arquiteturas	já	existentes	
– Camadas	iniciais/intermediários	são	man2das,	
que	são	responsáveis	pelas	features	de	baixo/
médio	nível
Caffe
Fine-tuning	
Fonte:	hUps://www.slideshare.net/AmazonWebServices/aws-reinvent-2016-deep-learning-at-cloud-scale-improving-video-		
discoverability-by-scaling-up-caffe-on-aws-mac205
Caffe
Fine-tuning	
Fonte:	hUps://www.slideshare.net/AmazonWebServices/aws-reinvent-2016-deep-learning-at-cloud-scale-improving-video-		
discoverability-by-scaling-up-caffe-on-aws-mac205
Caffe
Treinamento do modelo	
Fonte:	hUp://adilmoujahid.com/images/caffe_model_1_learning_curve.png
Caffe	
•  Treinamento	de	modelo	é	(muito)	demorado	
– Imprescindível	usar	GPU	
– Fine-tuning	é	mais	rápido	
•  Execução	do	modelo	é	bem	rápida	
– Pode	ser	em	CPU	
– Ainda	assim	é	recomendado	usar	GPU	também	
– Atenção	para	transferência	de	imagens
Nossa solução	
•  Usamos	modelos	pré-treinados	
– Classes	já	contempladas	
•  Realizamos	fine-tuning	
•  Desvantagem	
– alguns	modelos	foram	treinados	para	uma	
imagem	por	vez	
– batch	size	=	1
Nossa solução	
•  U2lizamos	AWS	
•  Máquinas	com	GPU	só	tem	nos	Estados	Unidos	
•  Para	treinamento,	apenas	uma	instância	EC2	com	
GPU	
•  Para	ambiente	de	produção,	usamos	algumas	
instâncias	on	demand	e	algumas	spot	
•  Desempenho	depende	do	batch	size	e,	
principalmente,	de	quantos	modelos	estão	sendo	
executados
E custos?	
•  2	milhões	imagens/dia	
•  Lançamentos	de	grandes	soluções	na	nuvem	
de	reconhecimento	de	imagem	
– Amazon	Rekogni2on:	US$	54.000	
– Google	Vision:	US$	90.000	
– Microso}	Cogni2ve	Services:	US$	36.000*	
*	Limite	de	10	imagens/seg	
•  Nosso	custo:	~US$	5.000	
	
VALORES	
MENSAIS
Não é somente custo...	
Ao	usar	as	grandes	soluções	na	nuvem	de	
reconhecimento	de	imagem,		
não	está	claro	se	elas	vão	u2lizar	as	imagens	
para	outros	fins.
Obrigado!
mauricio.onoda@olxbr.com
monoda@gmail.com

Mauricio Onoda - Processamento de imagens com Deep Learning