File size: 1,728 Bytes
cefa88c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4af3f75
cefa88c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6af6f3b
cefa88c
 
6af6f3b
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
from huggingface_hub import HfApi, Repository
import os
import json

class HuggingFaceUploader:
    def __init__(self, config):
        self.config = config.get('huggingface', {})
        self.api = HfApi()
        self.repo_id = self.config.get('repo_id')
        self.token = self.config.get('token')
    
    def upload_directory(self, directory_path):
        """Faz upload de um diretório para o Hugging Face"""
        if not self.repo_id:
            raise ValueError("repo_id não configurado")
        
        try:
            repo = Repository(
                local_dir=directory_path,
                clone_from=self.repo_id,
                use_auth_token=self.token
            )
            
            repo.push_to_hub(commit_message="Add processed LIBRAS video data")
            return f"https://huggingface.co/spaces/{self.repo_id}"
            
        except Exception as e:
            print(f"Erro no upload: {e}")
            return None
    
    def create_dataset_card(self, directory_path, metadata):
        """Cria um dataset card para o Hugging Face"""
        card_content = f"""---
language:
- pt
- libras
tags:
- computer-vision
- sign-language
- libras
- mediapipe
- keypoints
datasets:
- libras-processing
---

# Dataset de Vídeos em LIBRAS Processados

## Descrição
Vídeos em LIBRAS processados com extração de keypoints usando MediaPipe.

## Metadados
{json.dumps(metadata, indent=2)}

## Estrutura
- *.mp4: Vídeo normalizado
- *_keypoints.json: Keypoints extraídos
- metadata.json: Metadados do processamento
"""
        
        readme_path = os.path.join(directory_path, 'README.md')
        with open(readme_path, 'w', encoding='utf-8') as f:
            f.write(card_content)