O último ano marcou um marco significativo para a equipe do Tensorflow Object Detection API (OD API), pois eles migraram a API OD para oferecer suporte ao Tensorflow 2. Finalmente, a espera chegou ao fim, e agora a Tensorflow Object Detection API oferece suporte oficial ao Tensorflow 2. Essa versão traz consigo uma série de aprimoramentos, incluindo:
Principais Novidades:
- Novos binários para treinamento/avaliação/exportação compatíveis com o modo eager.
- Uma variedade de modelos compatíveis com o TF2, baseados em Keras, incluindo modelos populares do TF1 como MobileNET e Faster R-CNN, juntamente com algumas novas arquiteturas, como CenterNet, uma arquitetura eficaz sem ancoragem baseada no recente paper "Objects as Points", e EfficientDet, uma família recente de modelos de última geração descobertos com a ajuda da Neural Architecture Search.
- Pesos pré-treinados COCO para todos os modelos fornecidos como checkpoints baseados em objetos TF2.
- Acesso a DistributionStrategies para treinamento distribuído.
- Demonstração no Colab de treinamento e inferência compatíveis com o modo eager few-shot.
- Suporte de primeira classe para estimativa de keypoints, incluindo estimativa multiclasses, maior suporte para aumento de dados, melhores visualizações e avaliação COCO.
Para obter informações mais detalhadas sobre essa versão, confira o .
Como Instalar a Tensorflow Object Detection API
A instalação da Tensorflow Object Detection API pode ser feita via Python Package Installer (pip) ou Docker. Recomenda-se o uso do Docker para execução local, mas se não estiver familiarizado, a instalação via pip é mais simples. Siga os passos abaixo:
Instalação via Pip
git clone https://github.com/tensorflow/models.git
cd models/research
protoc object_detection/protos/*.proto --python_out=.
cp object_detection/packages/tf2/setup.py .
python -m pip install .
Instalação via Docker
# Do diretório raiz do repositório git (dentro do diretório models)
docker build -f research/object_detection/dockerfiles/tf2/Dockerfile -t od .
docker run -it od
Agora que a API está instalada, vamos explorar algumas funcionalidades essenciais.
Como Executar um Modelo Pré-treinado em Imagens e Streams de Vídeo
Instalação
# Testar a instalação
python object_detection/builders/model_builder_tf2_test.py
Executar em Imagens
O guiará você na detecção de objetos em uma imagem usando um modelo pré-treinado.
Executar em Streams de Vídeo
Adapte o exemplo anterior para trabalhar com streams de vídeo substituindo o método show_inference
por:
import cv2
cap = cv2.VideoCapture(0) # ou cap = cv2.VideoCapture("<caminho-do-vídeo>")
def executar_inferencia(modelo, cap):
while cap.isOpened():
ret, image_np = cap.read()
output_dict = realizar_inferencia_para_uma_imagem(modelo, image_np)
# Visualização dos resultados da detecção
# ...
if cv2.waitKey(25) & 0xFF == ord('q'):
cap.release()
cv2.destroyAllWindows()
break
executar_inferencia(modelo_de_detecao, cap)
Como Ajustar um Modelo Pré-treinado para seus Dados Personalizados
O lançamento inclui um notebook que demonstra como ajustar um modelo RetinaNet pré-treinado para detectar objetos personalizados com apenas 5 imagens e menos de 5 minutos de treinamento no Google Colab.
Siga o notebook para importar bibliotecas, carregar imagens, rotular as imagens e ajustar o modelo. A etapa de ajuste do modelo é feita da seguinte maneira:
# Download do checkpoint e colocação em models/research/object_detection/test_data/
!wget http://download.tensorflow.org/models/object_detection/tf2/20200711/ssd_resnet50_v1_fpn_640x640_coco17_tpu-8.tar.gz
!tar -xf ssd_resnet50_v1_fpn_640x640_coco17_tpu-8.tar.gz
!mv ssd_resnet50_v1_fpn_640x640_coco17_tpu-8/checkpoint models/research/object_detection/test_data/tf.keras.backend.clear_session()
print('Construindo modelo e restaurando pesos para ajuste fino...', flush=True)
# ...
Após o ajuste fino, o modelo pode ser salvo e usado para detecção de objetos personalizados.
Conclusão
A Tensorflow Object Detection API agora oferece suporte oficial ao Tensorflow 2, trazendo consigo uma série de recursos emocionantes. Desde novos modelos compatíveis com TF2 até suporte para treinamento distribuído, esta versão representa um salto significativo. Para obter detalhes mais profundos e treinar seu próprio modelo de detecção de objetos personalizado, confira nosso .
Com essas melhorias e a capacidade de personalização, a Tensorflow Object Detection API se destaca como uma ferramenta poderosa para projetos de visão computacional. Experimente agora e leve suas detecções de objetos para o próximo nível!