SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
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: -
Linkedin: acsenrafilho
Contatos
https://www.nuveo.ai/

Mais conteúdo relacionado

Semelhante a Automatização de BackOffice com Visão Computacional

Um estudo sobre segmentação automática de imagens bidimensionais de seções tr...
Um estudo sobre segmentação automática de imagens bidimensionais de seções tr...Um estudo sobre segmentação automática de imagens bidimensionais de seções tr...
Um estudo sobre segmentação automática de imagens bidimensionais de seções tr...Charles Silva
 
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
 
Introdução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowIntrodução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowDevMT
 
Introdução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowIntrodução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowGuilherme Campos
 
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
 
Redução de dimensionalidade - Pós Graduação em Big Data
Redução de dimensionalidade - Pós Graduação em Big DataRedução de dimensionalidade - Pós Graduação em Big Data
Redução de dimensionalidade - Pós Graduação em Big DataFabrício Barth
 
Introdução a Data Science com Python
Introdução a Data Science com PythonIntrodução a Data Science com Python
Introdução a Data Science com PythonRodolfo Mendes
 
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
 
Tema 10 Automação Da Engenharia
Tema 10   Automação Da EngenhariaTema 10   Automação Da Engenharia
Tema 10 Automação Da Engenhariabruno2003sp
 
Minicurso de estatística experimental com o R - III SIC IFNMG
Minicurso de estatística experimental com o R  - III SIC IFNMGMinicurso de estatística experimental com o R  - III SIC IFNMG
Minicurso de estatística experimental com o R - III SIC IFNMGPetronio Candido
 
Comp.e Progr.Aplicada ao Processo de Projeto, estudo uso Playground.pdf
Comp.e Progr.Aplicada ao Processo de Projeto, estudo uso Playground.pdfComp.e Progr.Aplicada ao Processo de Projeto, estudo uso Playground.pdf
Comp.e Progr.Aplicada ao Processo de Projeto, estudo uso Playground.pdfssuserd6cced
 
Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...
Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...
Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...Bárbara Cabral da Conceição, CTFL
 
IPT defesa Wagner F Canto v6
IPT defesa Wagner F Canto v6IPT defesa Wagner F Canto v6
IPT defesa Wagner F Canto v6wfcanto
 
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
 
Campus Party - Computer Vision
Campus Party - Computer VisionCampus Party - Computer Vision
Campus Party - Computer Visiondannyxyz22
 
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
 

Semelhante a Automatização de BackOffice com Visão Computacional (20)

Um estudo sobre segmentação automática de imagens bidimensionais de seções tr...
Um estudo sobre segmentação automática de imagens bidimensionais de seções tr...Um estudo sobre segmentação automática de imagens bidimensionais de seções tr...
Um estudo sobre segmentação automática de imagens bidimensionais de seções tr...
 
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
 
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
 
Introdução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowIntrodução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlow
 
Introdução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowIntrodução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlow
 
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
 
Big data
Big dataBig data
Big data
 
Redução de dimensionalidade - Pós Graduação em Big Data
Redução de dimensionalidade - Pós Graduação em Big DataRedução de dimensionalidade - Pós Graduação em Big Data
Redução de dimensionalidade - Pós Graduação em Big Data
 
seissigmatrad.pdf
seissigmatrad.pdfseissigmatrad.pdf
seissigmatrad.pdf
 
Introdução a Data Science com Python
Introdução a Data Science com PythonIntrodução a Data Science com Python
Introdução a Data Science com Python
 
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
 
Tema 10 Automação Da Engenharia
Tema 10   Automação Da EngenhariaTema 10   Automação Da Engenharia
Tema 10 Automação Da Engenharia
 
Minicurso de estatística experimental com o R - III SIC IFNMG
Minicurso de estatística experimental com o R  - III SIC IFNMGMinicurso de estatística experimental com o R  - III SIC IFNMG
Minicurso de estatística experimental com o R - III SIC IFNMG
 
Comp.e Progr.Aplicada ao Processo de Projeto, estudo uso Playground.pdf
Comp.e Progr.Aplicada ao Processo de Projeto, estudo uso Playground.pdfComp.e Progr.Aplicada ao Processo de Projeto, estudo uso Playground.pdf
Comp.e Progr.Aplicada ao Processo de Projeto, estudo uso Playground.pdf
 
Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...
Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...
Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...
 
IPT defesa Wagner F Canto v6
IPT defesa Wagner F Canto v6IPT defesa Wagner F Canto v6
IPT defesa Wagner F Canto v6
 
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
 
Campus Party - Computer Vision
Campus Party - Computer VisionCampus Party - Computer Vision
Campus Party - Computer Vision
 
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
 

Automatização de BackOffice com Visão Computacional

  • 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: - Linkedin: acsenrafilho