SlideShare uma empresa Scribd logo
1 de 41
Automação de BackOffice de uma grande
corporação financeira usando Visão
Computacional e Redes Neurais
Convolucionais (CNN)
Ph.D. Antonio Carlos Senra Filho, MSc. Francisco Bruno Sousa Rocha
2019
Big Data
A quantidade de dados digitais
aumentaram exponencialmente
nas últimas décadas
Big Data
Comunicação entre empresas é (usualmente) 100% digital, porém ainda há
muito trabalho de backoffice para envio destas informações
Big Data
https://insightaas.com/dell-slide-data-growth/
O Problema
Esta apresentação está voltada para o
problema do envio de informações de
veículos aos DETRANs
Agências de financiamento
● Bancos
● Financeiras
● Consórcio
DETRAN A
DETRAN B
DETRAN D
DETRAN C
Case Nuveo
D
DETRAN
Digitalização de Documentos
A digitalização de documentos é uma abordagem de
armazenamento
Com a imagem digitalizada, é possível extrair
informações (Optical Character Recognition - OCR)
Porém, há artefatos a serem considerados...
junção de caracteres
Artefatos de compressão
Iluminação não uniforme
Estratégias para Tratamentos de Imagens
Algoritmos de Visão Computacional úteis:
● Regularização de background
● Binarização
● Rotação
● Remoção de ruído
● Remoção de artefatos de scanner
● Detecção de objetos
Estratégias para Tratamentos de Imagens
Algoritmos de Visão Computacional úteis:
● Regularização de background
● Binarização
● Rotação
● Remoção de ruído
● Remoção de artefatos de scanner
● Detecção de objetos
Estratégias para Tratamentos de Imagens
Algoritmos de Visão Computacional úteis:
● Regularização de background
● Binarização
● Rotação
● Remoção de ruído
● Remoção de artefatos de scanner
● Detecção de objetos
Estratégias para Tratamentos de Imagens
Algoritmos de Visão Computacional úteis:
● Regularização de background
● Binarização
● Rotação
● Remoção de ruído
● Remoção de artefatos de scanner
● Detecção de objetos
Estratégias para Tratamentos de Imagens
Algoritmos de Visão Computacional úteis:
● Regularização de background
● Binarização
● Rotação
● Remoção de ruído
● Remoção de artefatos de scanner
● Detecção de objetos
Estratégias para Tratamentos de Imagens
Algoritmos de Visão Computacional úteis:
● Regularização de background
● Binarização
● Rotação
● Remoção de ruído
● Remoção de artefatos de scanner
● Detecção de objetos
Estratégias para Tratamentos de Imagens
Algoritmos de Visão Computacional úteis:
● Regularização de background
● Binarização
● Rotação
● Remoção de ruído
● Remoção de artefatos de scanner
● Detecção de objetos
Classificação de Contratos
O que é um contrato de financiamento de veículos?
Algumas características podem ser usadas para uma pré-seleção, como:
● logomarca da empresa,
● código de barras,
● documentos não contratuais,
○ CNH, RG, Recibos de pagamento, etc.
Classificação de Contratos
Pasta com arquivos digitalizados
Classificação de Contratos
Pasta com arquivos digitalizados
Classificação de Contratos
Pasta com arquivos digitalizados
Modelos de pré-seleção de imagens
Remoção de páginas em branco:
def _features_blank_pages(page):
small_page = cv2.resize(page, (char_size[0], char_size[1]),
interpolation=cv2.INTER_NEAREST)
bin_tbl = cv2.threshold(small_page, 0.5, 1, cv2.THRESH_OTSU)[1]
count_feat = []
for i in range(0, 3):
connector = sitk.ConnectedComponentImageFilter()
obj_space = bin_tbl.astype(np.uint8)
if i != 0:
image = swap_matrix(sitk.BinaryErode(swap_matrix(obj_space), i))
connector.Execute(swap_matrix(obj_space))
objs = connector.GetObjectCount()
count_feat.append(objs / (obj_space.size / 2))
return np.array([count_feat]).reshape(1, -1)
Binarização por algoritmo de Otsu
Método de contagem de objetos não
conectados (kernel 4-connectors)
Ajuste do array de características (1xN),
N=3 para atenuação em escala
(robusto com erros de binarização)
Modelos de pré-seleção de imagens
True
False
Modelos de pré-seleção de imagens
Remoção de fotocópia:
def _features_photocopy_documents(page):
patches = image2patches(data)
for patch in patches:
h_data = np.histogram(patch, 5, (0, 255))[0]
features.append(float(entropy(h_data)) / ((-1) * math.log(0.2, 2)))
features.sort()
return np.hstack((np.array([features]), columns_feat.reshape((1, -1))))
Separa a imagem de
entrada em partes menores
(patches)
Entropia clássica (Shannon)
normalizada por patch
Modelos de pré-seleção de imagens
True
False
Modelos de pré-seleção de imagens
● Método de classificação: Voting Classifier (Sklearn)
○ Conceito de “crowd wisdom” ou “classificação democrática”
○ K-Nearest Neighbors, Random Forest, SVM
● Treino com cross-validation (split 25% dos dados para validação)
● Métrica de treino: maximização da precisão
● Ambos com acurácia de 99,4% (branco), 98,3% (fotocópia)
Diminuir falsos positivos
Classificação de Contratos
Recibos de
pagamento
Extratos
bancários
Declarações
diversas Tabelas
Contrato de
financiamento
Classificação de Contratos
Layouts de Contratos
ConsórcioBanco Leasing
14 3 3
Modelo de classificação de contratos
Classificação com arquitetura SmallerVGG
(CNN):
● Aplica poucas camadas
convolucionais
○ menos parâmetros, menor perturbação
por efeito de volume parcial
● Robusto contra o efeito de
“overfitting”
○ Camada de dropout
Modelo de classificação de contratos
class SmallerVGG(DeepClassifier):
model = Sequential()
model.add(Conv2D(self.filters[0], self.kernels[0], padding="same",
input_shape=self.image_properties))
model.add(Activation("relu"))
model.add(BatchNormalization(axis=self.change_dimension))
model.add(self.pool_type(pool_size=self.pool_size[0]))
model.add(Dropout(self.dropout[0]))
model.add(Flatten())
model.add(Dense(self.filters[5]))
model.add(Activation("relu"))
model.add(BatchNormalization())
model.add(Dropout(self.dropout[3]))
model.add(Dense(self.classes))
model.add(Activation("softmax"))
Modelo sequencial (Keras)
Camada de convolução:
1. Convolução+Ativação
2. Pooling
3. Dropout
x3 nesta arquitetura CNN
Redução para camada densa (1D)
Similar a modelos MLP
Saída com números de classes
desejado
(N páginas de contrato layout i)
Modelo de classificação de contratos
Detalhes para processamento e classificação dos contratos de financiamento:
● Modelagem da imagem
○ Inversão de sinal
○ Redução de escala (80 x 80)
Estrutura textual
fica em foreground
Modelo de classificação de contratos
Detalhes para processamento e classificação dos contratos de financiamento:
● Modelagem da imagem
○ Inversão de sinal
○ Redução de escala (80 x 80)
Resolução padrão 300 dpi
(matriz de imagem ~1600 x 2300 px)
Tamanho médio de
caracteres de texto
20x30 px
Matriz de imagem de entrada
~80 x 80 px
Modelo de classificação de contratos
Detalhes para processamento e classificação dos contratos de financiamento:
● Otimização de treinamento
○ Stochastic Gradient Descent (SGD)1
○ acurácia média por classe
■ ponderação ~30:1
1 Sebastian Ruder, “An overview of gradient descent optimization
algorithms”. https://arxiv.org/abs/1609.04747
Modelo de classificação de contratos
from sklearn.utils import class_weight
from keras.callbacks import EarlyStopping
from nina.deep_training import DeepTraining
from nina.architectures.deep_classifiers.smallervgg import SmallerVGG
nina_model = SmallerVGG(classes=2, image_properties=(80, 80, 1))
dnn_trainer = DeepTraining(nina_model)
dnn_trainer.configure_dataset(dataset, preproc)
cw = class_weight.compute_class_weight('balanced')
dnn_trainer.configure_compiler(loss='categorical_crossentropy')
dnn_trainer.configure_fit(class_weight=cw, batch_size=50, epochs=150,
callbacks=[EarlyStopping(monitor="val_acc",
min_delta=0.01,
mode="max",
patience=5)])
dnn_trainer.fit()
Classe dedicada para treino de DNN
Callback (Keras) como critério de
parada
Arquitetura SmallerVGG
Binário -> Contrato, Não Contrato
Carrega dados para treinamento
usando os critérios de pré-
processamento (preproc)
Configuração dos parâmetros de
treinamento
1. Batch
2. Epochs
3. Callbacks
4. Ponderação de classe (~30:1)
Modelo de classificação de contratos
Exemplo: pesos de rede CNN
Exemplo: pesos de rede CNN
Estatísticas de Montagem de Contrato
Estatísticas de Montagem de Contrato
Estatísticas de Extração de Informações
ClienteCredor
Nome
Documento
Endereço
Número
Cidade
Estado
CEP
Nome
Documento
Endereço
Cidade
CEP
Bairro
Estado
Telefone
Contrato Veículo
Grupo Marca
Cota
Cidade de pagamento
Data de compra
Data de adesão
Primeira parcela
Última parcela
Valor da parcela
Total de parcelas
Valor total do bem
Taxas de juros a.m.
Taxas de juros a.a.
Modelo
Cor
Ano de fabricação
Ano do modelo
Chassi
Placa
Renavam
Processo de comunicação
Cliente Nuveo Credenciada
01 Envio de remessas 02 Recebimento de
remessas
03 Processamento
de remessas e
contratos
04 Contratos e
dados extraídos
estruturados 05 Análise de
Contratos05 Contratos
válidos
Dúvidas
Francisco Bruno
Twitter: @billrockx
Linkedin: brockx
Antonio Carlos Senra Filho
Twitter: @acsenrafilho
Linkedin: acsenrafilho
Ferramentas utilizadas
Visão Computacional/ML
● OpenCV (3.4.3.18)
● SimpleITK (1.1.0)
● Numpy (1.15.0)
● Sklearn (0.20.3)
● Keras (2.2.4)
● tensorflow (1.13.1)
● nina, textcv, nlp, rtk (Nuveo)
Contatos
https://www.nuveo.ai/
https://bit.ly/2Sh6rQ6

Mais conteúdo relacionado

Semelhante a Automação de BackOffice de uma grande corporação financeira usando Visão Computacional e Redes Neurais Convolucionais (CNN)

Iniciativas em Big Data no VAGAS.com
Iniciativas em Big Data no VAGAS.comIniciativas em Big Data no VAGAS.com
Iniciativas em Big Data no VAGAS.comFabrício Barth
 
Real Time Analytics - do Machine Learning ao Power BI
Real Time Analytics - do Machine Learning ao Power BIReal Time Analytics - do Machine Learning ao Power BI
Real Time Analytics - do Machine Learning ao Power BIDiego Nogare
 
Seleção de Features para Ranking
Seleção de Features para RankingSeleção de Features para Ranking
Seleção de Features para Rankingcristnascimento
 
Dia a dia do Cientista de Dados
Dia a dia do Cientista de DadosDia a dia do Cientista de Dados
Dia a dia do Cientista de DadosDiego Nogare
 
Mineração com sql server 2008 r2
Mineração com sql server 2008 r2Mineração com sql server 2008 r2
Mineração com sql server 2008 r2Rodrigo Dornel
 
Inteligencia Artificial e Aprendizado de Máquina
Inteligencia Artificial e Aprendizado de MáquinaInteligencia Artificial e Aprendizado de Máquina
Inteligencia Artificial e Aprendizado de MáquinaGefferson Figueiredo Marcos
 
Aprendizado de Máquina e Grandes Conjuntos de Dados
Aprendizado de Máquina e Grandes Conjuntos de DadosAprendizado de Máquina e Grandes Conjuntos de Dados
Aprendizado de Máquina e Grandes Conjuntos de DadosThomas Buck
 
modelagem sistema da informação Unid 4
modelagem sistema da informação Unid 4modelagem sistema da informação Unid 4
modelagem sistema da informação Unid 4spawally
 
Cellere - Fiscalizacao Inteligente_Short.pdf
Cellere - Fiscalizacao Inteligente_Short.pdfCellere - Fiscalizacao Inteligente_Short.pdf
Cellere - Fiscalizacao Inteligente_Short.pdfCellia2
 
Manufatura Digital
Manufatura Digital Manufatura Digital
Manufatura Digital Raihsa
 
Estimativa de métricas de separação de interesses
Estimativa de métricas de separação de interessesEstimativa de métricas de separação de interesses
Estimativa de métricas de separação de interessesSergioSouza
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
Cellere - Fiscalizacao Inteligente.pdf
Cellere - Fiscalizacao Inteligente.pdfCellere - Fiscalizacao Inteligente.pdf
Cellere - Fiscalizacao Inteligente.pdfCellia2
 
ENCONTRO IPNEWS SDN _ANDRE FACCIOLI
ENCONTRO IPNEWS SDN _ANDRE FACCIOLIENCONTRO IPNEWS SDN _ANDRE FACCIOLI
ENCONTRO IPNEWS SDN _ANDRE FACCIOLIIpnews Portal
 
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...Deep Tech Brasil
 
Aula 6 - Estruturas de seleção encadeada - parte 2
Aula 6 - Estruturas de seleção encadeada - parte 2Aula 6 - Estruturas de seleção encadeada - parte 2
Aula 6 - Estruturas de seleção encadeada - parte 2Pacc UAB
 
Aula 5 - Estruturas de seleção encadeada - parte 2
Aula 5 - Estruturas de seleção encadeada - parte 2Aula 5 - Estruturas de seleção encadeada - parte 2
Aula 5 - Estruturas de seleção encadeada - parte 2Pacc UAB
 
ABC da Aprendizagem de Máquinas
ABC da Aprendizagem de MáquinasABC da Aprendizagem de Máquinas
ABC da Aprendizagem de MáquinasDiego Nogare
 

Semelhante a Automação de BackOffice de uma grande corporação financeira usando Visão Computacional e Redes Neurais Convolucionais (CNN) (20)

Iniciativas em Big Data no VAGAS.com
Iniciativas em Big Data no VAGAS.comIniciativas em Big Data no VAGAS.com
Iniciativas em Big Data no VAGAS.com
 
Real Time Analytics - do Machine Learning ao Power BI
Real Time Analytics - do Machine Learning ao Power BIReal Time Analytics - do Machine Learning ao Power BI
Real Time Analytics - do Machine Learning ao Power BI
 
Seleção de Features para Ranking
Seleção de Features para RankingSeleção de Features para Ranking
Seleção de Features para Ranking
 
Sistema de informação - Cad na engenharia
Sistema de informação - Cad na engenhariaSistema de informação - Cad na engenharia
Sistema de informação - Cad na engenharia
 
Dia a dia do Cientista de Dados
Dia a dia do Cientista de DadosDia a dia do Cientista de Dados
Dia a dia do Cientista de Dados
 
Mineração com sql server 2008 r2
Mineração com sql server 2008 r2Mineração com sql server 2008 r2
Mineração com sql server 2008 r2
 
Inteligencia Artificial e Aprendizado de Máquina
Inteligencia Artificial e Aprendizado de MáquinaInteligencia Artificial e Aprendizado de Máquina
Inteligencia Artificial e Aprendizado de Máquina
 
Aprendizado de Máquina e Grandes Conjuntos de Dados
Aprendizado de Máquina e Grandes Conjuntos de DadosAprendizado de Máquina e Grandes Conjuntos de Dados
Aprendizado de Máquina e Grandes Conjuntos de Dados
 
modelagem sistema da informação Unid 4
modelagem sistema da informação Unid 4modelagem sistema da informação Unid 4
modelagem sistema da informação Unid 4
 
Cellere - Fiscalizacao Inteligente_Short.pdf
Cellere - Fiscalizacao Inteligente_Short.pdfCellere - Fiscalizacao Inteligente_Short.pdf
Cellere - Fiscalizacao Inteligente_Short.pdf
 
Manufatura Digital
Manufatura Digital Manufatura Digital
Manufatura Digital
 
Estimativa de métricas de separação de interesses
Estimativa de métricas de separação de interessesEstimativa de métricas de separação de interesses
Estimativa de métricas de separação de interesses
 
Parcial metq
Parcial metqParcial metq
Parcial metq
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
Cellere - Fiscalizacao Inteligente.pdf
Cellere - Fiscalizacao Inteligente.pdfCellere - Fiscalizacao Inteligente.pdf
Cellere - Fiscalizacao Inteligente.pdf
 
ENCONTRO IPNEWS SDN _ANDRE FACCIOLI
ENCONTRO IPNEWS SDN _ANDRE FACCIOLIENCONTRO IPNEWS SDN _ANDRE FACCIOLI
ENCONTRO IPNEWS SDN _ANDRE FACCIOLI
 
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...
 
Aula 6 - Estruturas de seleção encadeada - parte 2
Aula 6 - Estruturas de seleção encadeada - parte 2Aula 6 - Estruturas de seleção encadeada - parte 2
Aula 6 - Estruturas de seleção encadeada - parte 2
 
Aula 5 - Estruturas de seleção encadeada - parte 2
Aula 5 - Estruturas de seleção encadeada - parte 2Aula 5 - Estruturas de seleção encadeada - parte 2
Aula 5 - Estruturas de seleção encadeada - parte 2
 
ABC da Aprendizagem de Máquinas
ABC da Aprendizagem de MáquinasABC da Aprendizagem de Máquinas
ABC da Aprendizagem de Máquinas
 

Mais de Antonio Carlos da Silva Senra Filho

Modelos cerebrais populacionais de imagens ponderadas por tensor de difusão p...
Modelos cerebrais populacionais de imagens ponderadas por tensor de difusão p...Modelos cerebrais populacionais de imagens ponderadas por tensor de difusão p...
Modelos cerebrais populacionais de imagens ponderadas por tensor de difusão p...Antonio Carlos da Silva Senra Filho
 
Multimodal MRI statistical segmentation of normal appearing white matter lesi...
Multimodal MRI statistical segmentation of normal appearing white matter lesi...Multimodal MRI statistical segmentation of normal appearing white matter lesi...
Multimodal MRI statistical segmentation of normal appearing white matter lesi...Antonio Carlos da Silva Senra Filho
 
Brain structural connectivity and functional default mode network in deafness
Brain structural connectivity and functional default mode network in deafnessBrain structural connectivity and functional default mode network in deafness
Brain structural connectivity and functional default mode network in deafnessAntonio Carlos da Silva Senra Filho
 
Brain Volume Refinement (BVeR): A computational alternative to manual correct...
Brain Volume Refinement (BVeR): A computational alternative to manual correct...Brain Volume Refinement (BVeR): A computational alternative to manual correct...
Brain Volume Refinement (BVeR): A computational alternative to manual correct...Antonio Carlos da Silva Senra Filho
 

Mais de Antonio Carlos da Silva Senra Filho (15)

Modelos cerebrais populacionais de imagens ponderadas por tensor de difusão p...
Modelos cerebrais populacionais de imagens ponderadas por tensor de difusão p...Modelos cerebrais populacionais de imagens ponderadas por tensor de difusão p...
Modelos cerebrais populacionais de imagens ponderadas por tensor de difusão p...
 
Multimodal MRI statistical segmentation of normal appearing white matter lesi...
Multimodal MRI statistical segmentation of normal appearing white matter lesi...Multimodal MRI statistical segmentation of normal appearing white matter lesi...
Multimodal MRI statistical segmentation of normal appearing white matter lesi...
 
Brain structural connectivity and functional default mode network in deafness
Brain structural connectivity and functional default mode network in deafnessBrain structural connectivity and functional default mode network in deafness
Brain structural connectivity and functional default mode network in deafness
 
Brain Volume Refinement (BVeR): A computational alternative to manual correct...
Brain Volume Refinement (BVeR): A computational alternative to manual correct...Brain Volume Refinement (BVeR): A computational alternative to manual correct...
Brain Volume Refinement (BVeR): A computational alternative to manual correct...
 
Automata Celular PRIM 2012
Automata Celular PRIM 2012Automata Celular PRIM 2012
Automata Celular PRIM 2012
 
WorkShop IBM 2011
WorkShop IBM 2011WorkShop IBM 2011
WorkShop IBM 2011
 
Guia para Controle de Qualidade Ultrassom Modo-B
Guia para Controle de Qualidade Ultrassom Modo-BGuia para Controle de Qualidade Ultrassom Modo-B
Guia para Controle de Qualidade Ultrassom Modo-B
 
Seguranca e Equipamentos Compatíveis com IRMN
Seguranca e Equipamentos Compatíveis com IRMNSeguranca e Equipamentos Compatíveis com IRMN
Seguranca e Equipamentos Compatíveis com IRMN
 
Segurança e equipamentos compatíveis
Segurança e equipamentos compatíveisSegurança e equipamentos compatíveis
Segurança e equipamentos compatíveis
 
Equações de difusão aplicadas em imagens digitais
Equações de difusão aplicadas em imagens digitaisEquações de difusão aplicadas em imagens digitais
Equações de difusão aplicadas em imagens digitais
 
Medidas do Sistema Respiratório
Medidas do Sistema RespiratórioMedidas do Sistema Respiratório
Medidas do Sistema Respiratório
 
Spin: Conceitos e Aplicações
Spin: Conceitos e AplicaçõesSpin: Conceitos e Aplicações
Spin: Conceitos e Aplicações
 
Imageamento por infra vermelho
Imageamento por infra vermelhoImageamento por infra vermelho
Imageamento por infra vermelho
 
Cobaltoterapia apresentacao
Cobaltoterapia apresentacaoCobaltoterapia apresentacao
Cobaltoterapia apresentacao
 
Luz e eletromagnetismo
Luz e eletromagnetismoLuz e eletromagnetismo
Luz e eletromagnetismo
 

Automação de BackOffice de uma grande corporação financeira usando Visão Computacional e Redes Neurais Convolucionais (CNN)

  • 1. Automação de BackOffice de uma grande corporação financeira usando Visão Computacional e Redes Neurais Convolucionais (CNN) Ph.D. Antonio Carlos Senra Filho, MSc. Francisco Bruno Sousa Rocha 2019
  • 2. Big Data A quantidade de dados digitais aumentaram exponencialmente nas últimas décadas
  • 3. Big Data Comunicação entre empresas é (usualmente) 100% digital, porém ainda há muito trabalho de backoffice para envio destas informações
  • 5. O Problema Esta apresentação está voltada para o problema do envio de informações de veículos aos DETRANs Agências de financiamento ● Bancos ● Financeiras ● Consórcio DETRAN A DETRAN B DETRAN D DETRAN C
  • 7. Digitalização de Documentos A digitalização de documentos é uma abordagem de armazenamento Com a imagem digitalizada, é possível extrair informações (Optical Character Recognition - OCR) Porém, há artefatos a serem considerados... junção de caracteres Artefatos de compressão Iluminação não uniforme
  • 8. Estratégias para Tratamentos de Imagens Algoritmos de Visão Computacional úteis: ● Regularização de background ● Binarização ● Rotação ● Remoção de ruído ● Remoção de artefatos de scanner ● Detecção de objetos
  • 9. Estratégias para Tratamentos de Imagens Algoritmos de Visão Computacional úteis: ● Regularização de background ● Binarização ● Rotação ● Remoção de ruído ● Remoção de artefatos de scanner ● Detecção de objetos
  • 10. Estratégias para Tratamentos de Imagens Algoritmos de Visão Computacional úteis: ● Regularização de background ● Binarização ● Rotação ● Remoção de ruído ● Remoção de artefatos de scanner ● Detecção de objetos
  • 11. Estratégias para Tratamentos de Imagens Algoritmos de Visão Computacional úteis: ● Regularização de background ● Binarização ● Rotação ● Remoção de ruído ● Remoção de artefatos de scanner ● Detecção de objetos
  • 12. Estratégias para Tratamentos de Imagens Algoritmos de Visão Computacional úteis: ● Regularização de background ● Binarização ● Rotação ● Remoção de ruído ● Remoção de artefatos de scanner ● Detecção de objetos
  • 13. Estratégias para Tratamentos de Imagens Algoritmos de Visão Computacional úteis: ● Regularização de background ● Binarização ● Rotação ● Remoção de ruído ● Remoção de artefatos de scanner ● Detecção de objetos
  • 14. Estratégias para Tratamentos de Imagens Algoritmos de Visão Computacional úteis: ● Regularização de background ● Binarização ● Rotação ● Remoção de ruído ● Remoção de artefatos de scanner ● Detecção de objetos
  • 15. Classificação de Contratos O que é um contrato de financiamento de veículos? Algumas características podem ser usadas para uma pré-seleção, como: ● logomarca da empresa, ● código de barras, ● documentos não contratuais, ○ CNH, RG, Recibos de pagamento, etc.
  • 16. Classificação de Contratos Pasta com arquivos digitalizados
  • 17. Classificação de Contratos Pasta com arquivos digitalizados
  • 18. Classificação de Contratos Pasta com arquivos digitalizados
  • 19. Modelos de pré-seleção de imagens Remoção de páginas em branco: def _features_blank_pages(page): small_page = cv2.resize(page, (char_size[0], char_size[1]), interpolation=cv2.INTER_NEAREST) bin_tbl = cv2.threshold(small_page, 0.5, 1, cv2.THRESH_OTSU)[1] count_feat = [] for i in range(0, 3): connector = sitk.ConnectedComponentImageFilter() obj_space = bin_tbl.astype(np.uint8) if i != 0: image = swap_matrix(sitk.BinaryErode(swap_matrix(obj_space), i)) connector.Execute(swap_matrix(obj_space)) objs = connector.GetObjectCount() count_feat.append(objs / (obj_space.size / 2)) return np.array([count_feat]).reshape(1, -1) Binarização por algoritmo de Otsu Método de contagem de objetos não conectados (kernel 4-connectors) Ajuste do array de características (1xN), N=3 para atenuação em escala (robusto com erros de binarização)
  • 20. Modelos de pré-seleção de imagens True False
  • 21. Modelos de pré-seleção de imagens Remoção de fotocópia: def _features_photocopy_documents(page): patches = image2patches(data) for patch in patches: h_data = np.histogram(patch, 5, (0, 255))[0] features.append(float(entropy(h_data)) / ((-1) * math.log(0.2, 2))) features.sort() return np.hstack((np.array([features]), columns_feat.reshape((1, -1)))) Separa a imagem de entrada em partes menores (patches) Entropia clássica (Shannon) normalizada por patch
  • 22. Modelos de pré-seleção de imagens True False
  • 23. Modelos de pré-seleção de imagens ● Método de classificação: Voting Classifier (Sklearn) ○ Conceito de “crowd wisdom” ou “classificação democrática” ○ K-Nearest Neighbors, Random Forest, SVM ● Treino com cross-validation (split 25% dos dados para validação) ● Métrica de treino: maximização da precisão ● Ambos com acurácia de 99,4% (branco), 98,3% (fotocópia) Diminuir falsos positivos
  • 24. Classificação de Contratos Recibos de pagamento Extratos bancários Declarações diversas Tabelas Contrato de financiamento
  • 25. Classificação de Contratos Layouts de Contratos ConsórcioBanco Leasing 14 3 3
  • 26. Modelo de classificação de contratos Classificação com arquitetura SmallerVGG (CNN): ● Aplica poucas camadas convolucionais ○ menos parâmetros, menor perturbação por efeito de volume parcial ● Robusto contra o efeito de “overfitting” ○ Camada de dropout
  • 27. Modelo de classificação de contratos class SmallerVGG(DeepClassifier): model = Sequential() model.add(Conv2D(self.filters[0], self.kernels[0], padding="same", input_shape=self.image_properties)) model.add(Activation("relu")) model.add(BatchNormalization(axis=self.change_dimension)) model.add(self.pool_type(pool_size=self.pool_size[0])) model.add(Dropout(self.dropout[0])) model.add(Flatten()) model.add(Dense(self.filters[5])) model.add(Activation("relu")) model.add(BatchNormalization()) model.add(Dropout(self.dropout[3])) model.add(Dense(self.classes)) model.add(Activation("softmax")) Modelo sequencial (Keras) Camada de convolução: 1. Convolução+Ativação 2. Pooling 3. Dropout x3 nesta arquitetura CNN Redução para camada densa (1D) Similar a modelos MLP Saída com números de classes desejado (N páginas de contrato layout i)
  • 28. Modelo de classificação de contratos Detalhes para processamento e classificação dos contratos de financiamento: ● Modelagem da imagem ○ Inversão de sinal ○ Redução de escala (80 x 80) Estrutura textual fica em foreground
  • 29. Modelo de classificação de contratos Detalhes para processamento e classificação dos contratos de financiamento: ● Modelagem da imagem ○ Inversão de sinal ○ Redução de escala (80 x 80) Resolução padrão 300 dpi (matriz de imagem ~1600 x 2300 px) Tamanho médio de caracteres de texto 20x30 px Matriz de imagem de entrada ~80 x 80 px
  • 30. Modelo de classificação de contratos Detalhes para processamento e classificação dos contratos de financiamento: ● Otimização de treinamento ○ Stochastic Gradient Descent (SGD)1 ○ acurácia média por classe ■ ponderação ~30:1 1 Sebastian Ruder, “An overview of gradient descent optimization algorithms”. https://arxiv.org/abs/1609.04747
  • 31. Modelo de classificação de contratos from sklearn.utils import class_weight from keras.callbacks import EarlyStopping from nina.deep_training import DeepTraining from nina.architectures.deep_classifiers.smallervgg import SmallerVGG nina_model = SmallerVGG(classes=2, image_properties=(80, 80, 1)) dnn_trainer = DeepTraining(nina_model) dnn_trainer.configure_dataset(dataset, preproc) cw = class_weight.compute_class_weight('balanced') dnn_trainer.configure_compiler(loss='categorical_crossentropy') dnn_trainer.configure_fit(class_weight=cw, batch_size=50, epochs=150, callbacks=[EarlyStopping(monitor="val_acc", min_delta=0.01, mode="max", patience=5)]) dnn_trainer.fit() Classe dedicada para treino de DNN Callback (Keras) como critério de parada Arquitetura SmallerVGG Binário -> Contrato, Não Contrato Carrega dados para treinamento usando os critérios de pré- processamento (preproc) Configuração dos parâmetros de treinamento 1. Batch 2. Epochs 3. Callbacks 4. Ponderação de classe (~30:1)
  • 33. Exemplo: pesos de rede CNN
  • 34. Exemplo: pesos de rede CNN
  • 37. Estatísticas de Extração de Informações ClienteCredor Nome Documento Endereço Número Cidade Estado CEP Nome Documento Endereço Cidade CEP Bairro Estado Telefone Contrato Veículo Grupo Marca Cota Cidade de pagamento Data de compra Data de adesão Primeira parcela Última parcela Valor da parcela Total de parcelas Valor total do bem Taxas de juros a.m. Taxas de juros a.a. Modelo Cor Ano de fabricação Ano do modelo Chassi Placa Renavam
  • 38. Processo de comunicação Cliente Nuveo Credenciada 01 Envio de remessas 02 Recebimento de remessas 03 Processamento de remessas e contratos 04 Contratos e dados extraídos estruturados 05 Análise de Contratos05 Contratos válidos
  • 39. Dúvidas Francisco Bruno Twitter: @billrockx Linkedin: brockx Antonio Carlos Senra Filho Twitter: @acsenrafilho Linkedin: acsenrafilho
  • 40. Ferramentas utilizadas Visão Computacional/ML ● OpenCV (3.4.3.18) ● SimpleITK (1.1.0) ● Numpy (1.15.0) ● Sklearn (0.20.3) ● Keras (2.2.4) ● tensorflow (1.13.1) ● nina, textcv, nlp, rtk (Nuveo)

Notas do Editor

  1. seleção de documentos, preparação dos dados importantes, formatação do envio
  2. https://insightaas.com/dell-slide-data-growth/
  3. Formatação do dado estruturado para envio aos DETRANs (json, dados obrigatórios mudam dependendo do DETRAN e credenciada (INFOSOLO, ARQDigital, Tecnobank, ...) Como vimos nesta apresentação é possível classificar documentos digitalizados usando CNN e assim montar contratos com páginas ordenadas corretamente. Com o contrato montado usamos OCR para extrair informações relevantes do contrato (transformar em dados estruturados). Passamos o contrato e as informações extraídas para credenciada encerrando o processo.