Treinando modelos de Object Detection no Create ML
Neste artigo veremos o passo-a-passo para criar e treinar modelos de Object Detection no Create ML, tendo referência um Tech Talks da WWDC19.
Para começar a treinar o nosso modelo de Object Detection no Create ML, é importante a separação de uma quantidade inicial de fotos dos objetos a serem treinados e os dados a respeito dessas imagens a serem treinados. Por exemplo: se queremos treinar o modelo para descobrir se é um cachorro ou um gato, precisamos ensiná-lo com fotos de cachorros, onde possui o dado "cachorro" e fotos de gatos, onde possui o dado "gato".
A partir desses dados e fotos, adicionaremos no Create ML e criaremos o Core ML model. Abaixo temos o passo a passo para este treinamento do modelo de Core ML.
Object Detection
Com o Object Detection o app consegue detectar objetos reais capturados pela câmera e responder a isso de acordo com as informações que foram treinadas no modelo de Machine Learning.
Classificação das Imagens
Com a classificação de imagens, você consegue:
- Construir um modelo que possui uma simples descrição da imagem, podendo ser um ou mais de um objeto
- Por ex.: Uma foto de um cachorro brincando com um frisbee em um parque (identifica o cachorro e o frisbee)
Caso queira, o app pode fazer coisas mais sofisticadas. Para isso, precisa ensinar mais detalhes ao seu modelo.
Para treinar o modelo de object detection:
- Nomear regiões que você gostaria que o modelo reconheça (ex.: o cachorro) e as coordenadas x, y, width e height
- Medida em pixels do lado esquerdo ao centro de cada objeto
- São medidas em um formato JSON da seguinte forma:
(Caso queira, o código desta imagem está aqui: Github )
- Colocar tudo no arquivo JSON: imagem, anotações, label referente ao que é a imagem, coordenadas, tamanho
Assim que fizer suas anotações, arraste-os para o mesmo arquivo das suas imagens
Training Data está pronto.
O próximo passo é fazer um Training data para coreML
Object Detection no Create ML
Usando o Object Detection no Create ML:
- Checar os dados (ex.: se possui todas as imagens e o JSON file)
- Abrir o create ML (pode ser aberto direto pelo xcode ou pelo finder)
- Quando o create ML abre, abrir um novo projeto
Para criar um novo projeto:
- Escolher um dos templates
- Para o exemplo de Object Detector:
- Arrastar o Training Data para o Create ML
- Neste exemplo da imagem abaixo, usamos Training Data para identificar dados, então as 6 classes seriam os 6 lados vistos em 1003 fotos diferentes, com diferentes ângulos e iluminação
- Começamos treinando o modelo apertando o botão de play
- O modelo fica melhor a cada vez que as perdas ficam menores no gráfico, então neste gráfico conseguimos ver que a performance do modelo fica melhor a cada vez que a linha de perdas diminui
- Matematicamente neste ponto ele está bom, agora na aba de output conseguimos testar algumas imagens para ver se o modelo está identificando corretamente
- Testando o modelo para verificar se está identificando corretamente e com uma boa porcentagem de acerto
- Após certificar que o modelo está bem treinado, já pode arrastá-lo e salvá-lo no projeto do xcode
Seu object detection está bem treinado e pronto para ser usado!
Dica:
- Treinar inicialmente pelo menos 30 fotos para seu modelo e aos poucos ir aumentando e treinando melhor o seu modelo