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.
-
Baixe os conjuntos de dados de medidor digital no modo de conjuntos de dados COCO
-
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.
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'
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.