Submissão de Sprints Python Brasil 2019

O Sprint é um espaço proporcionado pela conferência Python Brasil para desenvolvimento e contribuição de projetos open source.

Caso ainda não saiba o que é um sprint você pode assistir o vídeo que o Álvaro Justen fez explicando tudo o que você precisa saber: https://www.youtube.com/watch?v=8QNjwSNd4s0

A ideia das submissões de Sprint servirá para que os participantes da Python Brasil tenham noção dos projetos previamente, porém algumas ideias irão aparecer durante o evento, por isso as sugestões ficarão abertas até o último dia e sem a necessidade de submeter aqui.

Datas Importantes

28/10/2019 - Dia dos sprints

 

Dados do projeto 

Nome

Qual projeto open-source você estará apresentando para que os participantes contribuam? Exempo: Operação Serenata de Amor

 

Resumo

Descrição sobre o projeto. Exemplo: "A Operação Serenata de Amor é um projeto de inteligência artificial para análise de gastos públicos no Brasil."


author photo

A deep learning application on raspberry pi

Discover how to train and deploy a convolutional neural net on a raspberry pi. We will talk about application development, handling and labelling the data to enhance the model, some viz to understand the model and a special method based on entropy to get automatic threshold for black and white pictures.

Use the buttons bellow to vote:

author photo

How to trick your convolutional neural network

In this talk you will learn a type of attack for convolutional neural net. This consists in modifying slightly your input data in order to fool the inference of your neural net. this this a hot topic in IA security.

Use the buttons bellow to vote:

author photo

Odete - Chatbot com deep learning

 odete é um Chatbot, desenvolvido em python, com processamento neural e deep learning, através de um banco de dados, ela consegue manter uma conversa em ótimo ritmo de continuidadde, com banco de dados e lingua nativa o inglês

Use the buttons bellow to vote:

author photo

Quantifying uncertainty in machine learning models

Many models give a lot more information during the inference process that we usually know. We'll begin with an intrinsic estimation of all the distribution with random forest algorithm. Then we will extend those "prediction intervals" to almost every regression models thanks to the quantile loss. Eventually we'll discuss about probability calibration to measure uncertainty in classification. 

Use the buttons bellow to vote:

author photo

sinesp-bot

O sinesp-client tornou possível a consulta à base de dados do SINESP Cidadão sem a necessidade do preenchimento de captchas ou algum outro tipo de autenticação. O SINESP Cidadão é uma base de dados pública de veículos brasileiros. É muito útil para identificar carros ou motos roubados ou suspeitos.


Não sabemos o porquê, mas o governo não mantém uma API verdadeiramente pública para este serviço. A única maneira de acessar os dados é acessando o site do SINESP e respondendo a perguntas de verificação (captchas) para cada uma das requisições.


Felizmente as aplicações para Android e iOS permitem que a busca seja feita sem que seja preciso responder a nenhum teste captcha. A comunidade então fez uma engenharia reversa no aplicativo para que pudéssemos ter acesso a essas informações públicas sem que fosse preciso responder a esses captchas. Isso deu origem a diversas bibliotecas nas mais diversas linguagens de programação. Eu estava mantendo a sinesp-client, que era a versão em Python, amplamente utilizada por empresas de segurança, estacionamentos e até mesmo algumas repartições públicas, incluindo DETRAN e delegacias de polícia.


No entanto, a equipe do SINESP constantemente lança atualizações do aplicativo dificultando o acesso automatizado das informações e obfuscando a forma com a qual o acesso é feito. Foi então que tive a ideia de criar um repositório demonstrando a utilização de uma técnica não invasiva utilizada principalmente em testes de QA. Usei o SDK do Android e suas ferramentas agregadas e o software Appium para automatizar as consultas, simulando o comportamento de um usuário comum, ou seja, utilizando um dispositivo físico ou o emulador oficial da plataforma.


Assim, o aplicativo funciona como uma caixa preta, não sendo necessário obter detalhes sobre sua implementação, dependendo apenas dos identificadores únicos utilizados na plataforma Android e que ficam disponíveis por questões de usabilidade da Interface de Usuário do sistema operacional. Sua assinatura digital é mantida.


A prova de conceito funciona, mas o processo ainda possui muitas partes manuais, como a instalação e configuração do ambiente e do emulador do Android. Possível linha de melhorias pra tornar a utilização mais fácil e pronta para utilização em produção:



  • criar um container docker com todas as dependências para execução stand-alone

  • melhorar a documentação (incluindo instruções para uso de proxy)

  • melhorar o código fonte (foi feito bem rápido apenas como prova de conceito)

  • criar e distribuir um pacote python (setup.py e afins; pode ser no docker hub também)


Links:


https://github.com/victor-torres/sinesp-client


https://github.com/victor-torres/sinesp-bot

Use the buttons bellow to vote: