Reconhecimento de Língua de Sinais em Fluxo de Vídeo: Implementação do Código HWGAT

O modelo HWGAT, uma arquitetura recente para reconhecimento de língua de sinais, é explorado neste guia técnico. O objetivo é fornecer uma visão prática da estrutura do código e dos procedimentos necessários para sua execução.

Repositório de Código Fonte

O código-fonte está disponível no GitHub, e o artigo original pode ser consultado para detalhes teóricos.

Configuração do Ambiente

O projeto inclui um arquivo requirements.txt com as dependências. Recomenda-se o uso do gerenciador de pacotes Conda com Python na versão 3.9 ou 3.10.

Instalação via Conda

Uma abordagem recomendada envolve a criação de um ambiente isolado e a instalação sequencial das bibliotecas principais para evitar conflitos.

conda create -n hwgat_env python=3.9
conda activate hwgat_env
pip install torch==2.4.0 numpy==1.23.3 tqdm==4.64.1 opencv-python==4.6.0.66 mediapipe==0.10.18 decord==0.6.0 timm==1.0.3 -i https://pypi.tuna.tsinghua.edu.cn/simple

Estrutura do Projeto

O repositório contém several diretórios e scripts chave:

  • losses: Contém uma implementação de uma função de perda baseada em entropia cruzada aprimorada.
  • meta_generators: Scripts para gerar metadados que descrevem o conjunto de dados.
  • models: Implementações de modelos, incluindo o HWGAT e variantes usadas em experimentos de ablação.
  • pose_modules: Módulos para detecção de keypoints. O projeto utiliza a biblioteca MediaPipe para esta tarefa.
  • Scripts principais: pose_feature_extract.py (extração de keypoints), data_preprocess.py (pré-processamento) e main.py (treinamento e teste).

Procedimento de Execução

1. Preparação do Conjunto de Dados

Organize os dados dentro do diretório do projeto. Crie uma estrutura de pastas como: data/datasets/SEU_DATASET/videos/ e um arquivo de rótulos correspondente.

2. Geração de Metadados

Execute o script adequado para gerar os metadados do seu conjunto de dados. Isso produzirá arquivso como classes.txt e metadata.csv.

python meta_generators/nome_do_seu_dataset_meta_gen.py

Modifique as variáveis no script, como o caminho raiz dos dados, o diretório de vídeos e o arquivo de classes.

3. Extração de Keypoints

Este passo processa os vídeos para extrair pontos de pose usando o MediaPipe. Os resultados são salvos como arquivos .pkl.

python pose_feature_extract.py --root './data/datasets/SEU_DATASET' --meta './data/datasets/SEU_DATASET/metadata.csv' -m mediapipe --out_path 'media_pipe_output/'

Atenção: Este processo pode ser intensivo em memória. Verifique os caminhos fornecidos para evitar erros de leitura.

4. Pré-processamento dos Dados

Transforme os dados brutos em formatos adequados para o modelo, criando diretórios de entrada e saída estruturados.

python data_preprocess.py --root ./data/datasets/SEU_DATASET --ds NOME_DO_DATASET --meta ./data/datasets/SEU_DATASET/metadata.csv --dr media_pipe_output/ -kpm mediapipe -ft keypoints

5. Treinamento do Modelo

Inicie o treinamento especificando o modelo e o conjunto de dados. Os logs e checkpoints são salvos no diretório output.

python main.py -m train -d NOME_DO_DATASET --model HWGAT

6. Avaliação do Modelo

Para testar um modelo treinado, especifique o timestapm do checkpoint e o tipo de arquivo de pesos.

python main.py -m test -d NOME_DO_DATASET --model HWGAT -t TIMESTAMP -px best_loss

Tags: HWGAT reconhecimento de língua de sinais MediaPipe processamento de vídeo Python

Publicado em 6-23 03:30