Pular para o conteúdo principal

Detecção de Objetos - SWIFT-YOLO

Esta seção descreve como treinar o modelo de medidor digital nos conjuntos de dados COCO de medidor digital. As implementações do modelo de detecção de medidor digital yolo são baseadas no Swfit-YOLO e alimentadas por mmyolo

Preparar Conjuntos de Dados​

SSCMA usa Digital Meter Datasets por padrão para treinar o modelo Swfit-YOLO, consulte as etapas a seguir para concluir a preparação dos conjuntos de dados.

  1. Baixe os conjuntos de dados de medidor digital no modo de conjuntos de dados COCO

  2. Lembre-se do seu caminho da pasta (por exemplo, datasets\digital_meter) dos conjuntos de dados descompactados, você poderá precisar usar esse caminho de pasta mais tarde.

Escolher uma Configuração​

Vamos escolher um arquivo de configuração apropriado dependendo do tipo de tarefa de treinamento que precisamos executar, que já apresentamos em Config, para uma breve descrição das funções, estrutura e princípios do arquivo de configuração.

Para o exemplo de modelo Swfit-YOLO, usamos swift_yolo_tiny_1xb16_300e_coco.py como o arquivo de configuração, que está localizado na pasta sob o diretório raiz do SSCMA configs/swift_yolo e herda adicionalmente o arquivo de configuração base_arch.py.

Para iniciantes, recomendamos prestar atenção primeiro aos parâmetros data_root e epochs neste arquivo de configuração.

swift_yolo_tiny_1xb16_300e_coco.py
_base_='../_base_/default_runtime_det.py'
_base_ = ["./base_arch.py"]

anchors = [
[(10, 13), (16, 30), (33, 23)], # P3/8
[(30, 61), (62, 45), (59, 119)], # P4/16
[(116, 90), (156, 198), (373, 326)] # P5/32
]
num_classes = 11
deepen_factor = 0.33
widen_factor = 0.15

strides = [8, 16, 32]

model = dict(
type='mmyolo.YOLODetector',
backbone=dict(
type='YOLOv5CSPDarknet',
deepen_factor=deepen_factor,
widen_factor=widen_factor,
),
neck=dict(
type='YOLOv5PAFPN',
deepen_factor=deepen_factor,
widen_factor=widen_factor,
),
bbox_head=dict(
head_module=dict(
num_classes=num_classes,
in_channels=[256, 512, 1024],
widen_factor=widen_factor,
),
),
)

Treinando o Modelo​

Treinar o modelo requer usar nosso ambiente de trabalho SSCMA configurado anteriormente; se você seguiu nosso guia de Installation usando Conda para instalar o SSCMA em um ambiente virtual chamado sscma, primeiro certifique-se de que você está atualmente no ambiente virtual.

Em seguida, no diretório raiz do projeto SSCMA, executamos o seguinte comando para treinar um modelo de detecção de medidor digital Swfit-YOLO.

python3 tools/train.py \
configs/swift_yolo/swift_yolo_tiny_1xb16_300e_coco.py \
--cfg-options \
data_root='datasets/digital_meter' \
epochs=50

Durante o treinamento, os pesos do modelo e as informações de log relacionadas são salvos no caminho work_dirs/swift_yolo_tiny_1xb16_300e_coco por padrão, e você pode usar ferramentas como TensorBoard para monitorar o treinamento.

tensorboard --logdir work_dirs/swift_yolo_tiny_1xb16_300e_coco

Após a conclusão do treinamento, o caminho do arquivo de pesos mais recente do modelo Swfit-YOLO é salvo no arquivo work_dirs/swift_yolo_tiny_1xb16_300e_coco/last_checkpoint. Por favor, tome cuidado com o caminho do arquivo de pesos, pois ele é necessário ao converter o modelo para outros formatos.

dica

Se você tiver um ambiente virtual configurado, mas não ativado, poderá ativá-lo com o seguinte comando.

conda activate sscma

Teste e Avaliação​

Teste​

Depois de terminar o treinamento do modelo Swfit-YOLO, você pode especificar pesos específicos e testar o modelo usando o seguinte comando.

python3 tools/inference.py \
configs/swift_yolo/swift_yolo_tiny_1xb16_300e_coco.py \
"$(cat work_dirs/swift_yolo_tiny_1xb16_300e_coco/last_checkpoint)" \
--show \
--cfg-options \
data_root='datasets/digital_meter'
dica

Se você quiser uma visualização em tempo real durante o teste, poderá adicionar um parâmetro --show ao comando de teste para mostrar os resultados previstos. Para mais parâmetros opcionais, consulte o código-fonte tools/inference.py.

Avaliação​

Para testar e avaliar ainda mais o modelo em um dispositivo real de computação de borda, você precisa exportar o modelo. No processo de exportação do modelo, o SSCMA fará algumas otimizações no modelo, como poda de modelo, destilação, etc. Você pode consultar a seção Export para saber mais sobre como exportar modelos.

Implantação​

Após exportar o modelo, você pode implantá-lo no dispositivo de computação de borda para teste e avaliação. Você pode consultar a seção Deploy para saber mais sobre como implantar modelos.

Loading Comments...