Treinando um Modelo Detector Personalizado
Com Roboflow, Google Colab e seu próprio conjunto de dados, você pode treinar rapidamente modelos detectores personalizados para o Limelight.
Aqui está uma visão geral das etapas que você precisará seguir:
- Coletar e anotar imagens dos objetos de interesse.
- Neste contexto, "anotação" é o processo de desenhar caixas delimitadoras ao redor dos objetos de interesse. Tudo isso pode ser feito na interface web do Roboflow.
- Alternativamente, você pode selecionar um conjunto de dados público do Roboflow Universe
- Exportar o conjunto de dados anotado como .tfrecord, fazer upload para o Google Drive e usar nosso Notebook de treinamento gratuito com o Google Colab.
- O Google Colab permite que você treine redes neurais usando GPUs poderosas na nuvem gratuitamente.
Tutorial:
1. O Conjunto de Dados
O Notebook de Treinamento do Limelight espera um conjunto de dados .tfrecord compactado. O Roboflow pode exportar arquivos .tfrecord com um clique.
Você pode construir seu próprio conjunto de dados com Roboflow, ou navegar pelo Roboflow Universe para conjuntos de dados pré-anotados.
Se você optar por construir seu próprio conjunto de dados, leia o seguinte:
-
Você deve maximizar a diversidade do seu conjunto de dados. A diversidade do seu conjunto de dados deve exceder a diversidade do que seu Limelight verá uma vez implantado.
-
A qualidade e precisão do seu conjunto de dados são de extrema importância. Certifique-se de que suas caixas delimitadoras sejam precisas e sigam uma única convenção. Por exemplo, a caixa delimitadora de um objeto parcialmente oculto deve capturar apenas a parte visível do objeto.
-
Use letras minúsculas para rótulos de classe
-
Minimize o número de rótulos de classe.
-
Utilize as aumentações do Roboflow, mas certifique-se de que façam sentido. Se você está detectando bolas vermelhas e azuis, por exemplo, certifique-se de não estar invertendo ou modificando muito o matiz no seu conjunto de dados aumentado.
Depois de ter rotulado ou encontrado um conjunto de dados, use o botão "Download Dataset" do Roboflow para exportá-lo como Tensorflow TFRecord. Faça upload deste arquivo para seu Google Drive.
2. Treinando o Modelo
Para treinar seu detector personalizado, inicie uma sessão do Google Colab com o Notebook de Treinamento do Detector Limelight.
O Notebook não requer alterações no código. Siga estas etapas para treinar seu modelo:
Seção 1
- Expanda a primeira seção e clique no botão play no canto superior esquerdo de cada um dos três primeiros blocos de código. O bloco de código final de "teste" pode ser ignorado para economizar tempo.
Seção 2
-
Expanda a segunda seção. Clique no botão play do primeiro bloco para montar sua pasta do Google Drive no painel "Files" em sua sessão do Colab. Abra o painel de arquivos clicando no botão de pasta no lado esquerdo da tela.
-
Depois que seu Google Drive for montado, clique no botão de atualização no painel "Files". Execute o segundo bloco de código nesta seção para selecionar seu arquivo .tfrecord.zip já carregado na pasta gdrive. Encontre o arquivo e clique no botão "select".
-
Execute os próximos dois blocos de código para descompactar e validar o TFRecord.
Seção 3
- Execute todos os blocos de código na seção 3 para preparar o treinamento
Seção 4
-
Execute todos os blocos de código na seção 4 para iniciar o treinamento.
-
Enquanto o script de treinamento está em execução, você pode atualizar o painel de arquivos e o tensorboard para monitorar o progresso. Um novo checkpoint deve aparecer na pasta "training_progress" a cada 2000 etapas.
-
Embora o treinamento pare automaticamente em 40000 etapas, você pode interrompê-lo a qualquer momento com o botão de parada no bloco de código final desta seção. Desde que os checkpoints estejam disponíveis, você pode prosseguir para a quantização e compilação.
Seções 5 - 7
- Execute todos os blocos de código na seção 5 para gerar um arquivo de rótulos e converter o modelo para um formato FlatBuffer compatível
- Execute todos os blocos de código na seção 6 para quantizar o modelo para inferência INT8 / 8bit.
- Execute todos os blocos de código na seção 7 para preparar o modelo para Google Coral e Limelight. O bloco de código final levará algum tempo e baixará o modelo treinado como um arquivo .zip.
Upload para o Limelight
- Descompacte o arquivo do sua sessão do Colab.
- Equipes FTC - Se você tem um Limelight3A, faça upload do modelo tflite 8bit e labels.txt. Você precisará mudar o mecanismo de execução de "coral" para "cpu"
- Equipes FRC - Se você tem um Google Coral, faça upload dos arquivos limelight_neural_detector_coral.tflite e labels.txt para seu Limelight.