Introdução à segmentação de instâncias no Ultralytics YOLOv5 v7.0

Equipa Ultralytics

3 min ler

23 de novembro de 2022

Descubra o YOLOv5 v7.0 com novos modelos de segmentação de instâncias, superando os benchmarks SOTA para uma precisão e velocidade de IA de topo. Junte-se à nossa comunidade.

O YOLOv5 v7.0, a versão mais recente da nossa arquitetura de IA, foi lançado e estamos entusiasmados por apresentar os nossos novos modelos de segmentação de instâncias!

Enquanto trabalhávamos nesta última versão, mantivemos dois objectivos em primeiro plano. O primeiro era a nossa missão de tornar a IA fácil, e o segundo era o nosso objetivo de redefinir o verdadeiro significado de "topo de gama".

Assim, com melhorias significativas, correcções e actualizações, fizemos exatamente isso. Mantendo os mesmos fluxos de trabalho simples dos nossos modelos de deteção de objectos YOLOv5 existentes, agora é mais fácil do que nunca treinar, validar e implementar os seus modelos com o YOLOv5 v7.0. Para além disso, ultrapassámos todos os benchmarks SOTA, tornando o YOLOv5 o mais rápido e preciso do mundo.

Como este é o nosso primeiro lançamento de modelos de segmentação, estamos imensamente orgulhosos deste marco. Devemos muitos agradecimentos à nossa comunidade dedicada e aos nossos colaboradores, que ajudaram a tornar este lançamento possível.  

Ultralytics YOLOv5 v7.0 SOTA Segmentação de instâncias em tempo real

Então, vamos começar com as notas de lançamento do YOLOv5 v7.0!

Actualizações importantes do YOLOv5

Eis o que foi atualizado no YOLOv5 desde o nosso último lançamento do YOLOv5 v6.2 em agosto de 2022.

  • Modelos de segmentação ⭐ NOVO: Os modelos de segmentação pré-treinados pelo SOTA YOLOv5-seg COCO estão agora disponíveis pela primeira vez(#9052 por @glenn-jocher, @AyushExel e @Laughing-q)
  • Exportação PaddlePaddle: Exportar qualquer modelo YOLOv5 (cls, seg, det) para o formato Paddle com python export.py --include paddle #9459 by @glenn-jocher)
  • YOLOv5 AutoCache: Usar python train.py --cache ram agora examinará a memória disponível e comparará com o uso previsto de RAM do conjunto de dados. Isso reduz o risco no cache e deve ajudar a melhorar a adoção do recurso de cache de conjunto de dados, que pode acelerar significativamente o treinamento.(#10027 por @glenn-jocher)
  • Integração de registo e visualização do Comet: Gratuito para sempre, o Comet permite-lhe guardar modelos YOLOv5, retomar a formação e visualizar e depurar interactivamente as previsões.(#9232 por @DN6)

Novos pontos de controlo de segmentação

Treinámos os modelos de segmentação YOLOv5 no COCO durante 300 épocas com o tamanho de imagem 640 utilizando GPUs A100. Exportámos todos os modelos para ONNX FP32 para testes de velocidade da CPU e para TensorRT FP16 para testes de velocidade da GPU. Executámos todos os testes de velocidade em computadores portáteis Google Colab Pro para facilitar a reprodutibilidade.

  • Todos os pontos de controlo são treinados para 300 épocas com o optimizador SGD com lr0=0,01 e weight_decay=5e-5 com o tamanho de imagem 640 e todas as predefinições. Todas as execuções são registadas aqui.
  • Os valores de exatidão são para um modelo único de escala única no conjunto de dados COCO. Reproduzir por python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
  • Velocidade média de 100 imagens de inferência usando uma instância Colab Pro A100 High-RAM. Os valores indicam apenas a velocidade de inferência (o NMS acrescenta cerca de 1ms por imagem). Reproduzir por python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
  • Exportação para ONNX em FP32 e TensorRT em FP16 efectuada com export.py. Reproduzir por python export.py --weights yolov5s-seg.pt --include engine --device 0 --half

Exemplos de utilização da nova segmentação

Comboio

O treino de segmentação YOLOv5 suporta o descarregamento automático do conjunto de dados de segmentação COCO128-seg com o argumento --data coco128-seg.yaml e o descarregamento manual do conjunto de dados COCO-segments com bash data/scripts/get_coco.sh --train --val --segments e depois python train.py --data coco.yaml.

GPU única

python segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640

DDP multi-GPU

python -m torch.distributed.run --nproc_per_node 4 --master_port 1 segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640 --device 0,1,2,3

Val

Validação da precisão do YOLOv5m-seg no conjunto de dados ImageNet-1k:

bash data/scripts/get_coco.sh --val --segments # descarrega COCO val segments split (780MB, 5000 imagens) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # valida

Prever

Utilizar o YOLOv5m-seg pré-treinado para prever bus.jpg:

python segment/predict.py --weights yolov5m-seg.pt --data data/images/bus.jpg

model = torch.hub.load('ultralytics/yolov5', 'custom', 'yolov5m-seg.pt') # carregar a partir do PyTorch Hub (AVISO: inferência ainda não suportada)

Segmentação de instâncias do Ultralytics YOLOv5 v7.0


Exportação

Exportar o modelo YOLOv5s-seg para ONNX e TensorRT:

python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0

Segmentação de instâncias do Ultralytics YOLOv5 v7.0

Tem alguma dúvida? Pergunte no fórum Ultralytics, levante um problema ou envie um PR no repositório. Também pode começar a utilizar o nosso bloco de notas Colab de segmentação YOLOv5 para obter tutoriais de início rápido.

Vamos construir juntos o futuro
da IA!

Comece a sua viagem com o futuro da aprendizagem automática

Comece gratuitamente
Ligação copiada para a área de transferência