Apresentamos a segmentação de instâncias no Ultralytics YOLOv5 v7.0
Descubra o YOLOv5 v7.0 com novos modelos de segmentação de instâncias, que superam os benchmarks SOTA em precisão e velocidade de IA. Junte-se à nossa comunidade.

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

Enquanto trabalhávamos nesta versão mais recente, mantivemos dois objetivos no centro das nossas atenções. O primeiro era a nossa missão de tornar a IA acessível, e o segundo era o nosso objetivo de redefinir o que “estado da arte” realmente significa.
Assim, com melhorias, correções e atualizações significativas, foi exatamente isso que fizemos. Mantendo os mesmos fluxos de trabalho simples dos nossos modelos de deteção de objetos Ultralytics YOLOv5 existentes, agora é mais fácil do que nunca treinar, validar e implementar os teus modelos com o YOLOv5 v7.0. Além disso, superámos todos os benchmarks SOTA, tornando efetivamente o YOLOv5 no modelo 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 contribuidores, que ajudaram a tornar este lançamento possível.

Então, vamos começar com as notas de lançamento do YOLOv5 v7.0!
Atualizações importantes do Ultralytics 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 SOTA YOLOv5-seg pré-treinados no COCO estão agora disponíveis pela primeira vez (#9052 por @glenn-jocher, @AyushExel e @Laughing-q)
- Exportação para PaddlePaddle: exporta qualquer modelo YOLOv5 (cls, seg, det) para o formato Paddle com python export.py --include paddle #9459 por @glenn-jocher)
- YOLOv5 AutoCache: usar python train.py --cache ram irá agora analisar a memória disponível e compará-la com a utilização prevista de RAM pelo conjunto de dados. Isto reduz o risco durante o armazenamento em cache e deverá ajudar a aumentar a adoção da funcionalidade de armazenamento em cache do conjunto de dados, que pode acelerar significativamente o treino. (#10027 por @glenn-jocher)
- Integração de registo e visualização do Comet: gratuito para sempre, o Comet permite guardar modelos YOLOv5, retomar o treino e visualizar e depurar previsões de forma interativa. (#9232 por @DN6)
Novos checkpoints de segmentação#
Treinámos os modelos de segmentação do Ultralytics YOLOv5 no COCO durante 300 épocas, com tamanho de imagem 640, utilizando GPUs A100. Exportámos todos os modelos para ONNX FP32 para testes de velocidade no CPU e para TensorRT FP16 para testes de velocidade na GPU. Executámos todos os testes de velocidade em notebooks do Google Colab Pro para facilitar a reprodutibilidade.
- Todos os checkpoints são treinados durante 300 épocas com o otimizador SGD, lr0=0.01 e weight_decay=5e-5, com tamanho de imagem 640 e todas as predefinições. Todas as execuções são registadas nos registos de treino do Weights & Biases.
- Os valores de precisão correspondem a um único modelo e uma única escala no conjunto de dados COCO. Reproduz com python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
- A velocidade é calculada como a média de 100 imagens de inferência utilizando uma instância Colab Pro A100 High-RAM. Os valores indicam apenas a velocidade de inferência (o NMS adiciona cerca de 1 ms por imagem). Reproduz com python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
- A exportação para ONNX em FP32 e para TensorRT em FP16 foi feita com export.py. Reproduz com python export.py --weights yolov5s-seg.pt --include engine --device 0 --half
Novos exemplos de utilização da segmentação#
Treinar#
O treino de segmentação do Ultralytics YOLOv5 suporta a transferência automática do conjunto de dados de segmentação COCO128-seg com o argumento --data coco128-seg.yaml e a transferência manual do conjunto de dados COCO-segments com bash data/scripts/get_coco.sh --train --val --segments, seguida de python train.py --data coco.yaml.
Uma única GPU#
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
Validação#
Valida a precisão do YOLOv5m-seg no conjunto de dados COCO:
bash data/scripts/get_coco.sh --val --segments # transferir a divisão de segmentos de validação do COCO (780 MB, 5000 imagens) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # validar
Prever#
Utiliza o YOLOv5m-seg pré-treinado para fazer uma previsão em 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: a inferência ainda não é suportada)

Exportar#
Exporta o modelo YOLOv5s-seg para ONNX e TensorRT:
python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0

Tens alguma pergunta? Coloca-a no fórum da Ultralytics, abre um problema ou envia um PR no repositório. Também podes começar pelo nosso notebook Colab de segmentação do YOLOv5, com tutoriais de início rápido.









