Na era dos avanços, o Hand Tracking é uma tecnologia fascinante com uma grande variedade de aplicações em realidade virtual e aumentada.
Hand Tracking é um processo pelo qual um computador pode analisar e interpretar o movimento das mãos de uma pessoa. Isso pode ser feito usando vários dispositivos, como luvas inteligentes, muitas vezes conhecidas como luvas de dados.
Neste artigo, discutiremos a tecnologia Hand Tracking, seus vários aplicativos e como criá-la usando Python, OpenCV e Media Pipe.
Neste artigo
Parte 1. O Que é Hand Tracking? Onde é Aplicado?
Hand Tracking refere-se ao processo de rastreamento da posição e movimento das mãos de um usuário em realidade virtual. Isso geralmente é feito usando uma combinação de sensores, incluindo câmeras, sensores infravermelhos ou sensores ultrassônicos.
Ao rastrear as mãos do usuário, os sistemas de RV podem fornecer experiências mais imersivas e interativas. Por exemplo, o Hand Tracking pode ser usado para permitir que os usuários interajam com objetos virtuais, bem como para fornecer entrada para gestos e linguagem corporal.
O Oculus Quest 2 é um fone de ouvido de realidade virtual que mergulha você em mundos virtuais. Um dos recursos mais legais do Quest 2 é o Hand Tracking, que permite que você interaja com o mundo virtual ao seu redor usando as mãos.
Com o Hand Tracking, você pode interagir com o mundo virtual de forma mais natural e intuitiva. Você pode usar as mãos para pegar objetos, desenhar e até mesmo digitar em um teclado virtual. Além disso, abre novas possibilidades para a jogabilidade, permitindo que você jogue de maneiras novas e inovadoras.
![Tecnologia hand tracking](https://images.wondershare.com/filmora/article-images/2022/07/hand-tracking-technology.jpg)
Parte 2. Tipos de Hand Tracking
Existem dois tipos principais de Hand Tracking: com interface e sem interface:
Rastreamento Com Interface
Com a interface Hand Tracking, você precisa usar um dispositivo como uma luva ou um controlador para interagir com o mundo virtual. Isso pode ser usado em aplicativos de RV ou AR. É ainda dividido em dois sistemas:
1. Luvas de Captura de Movimento Inercial
Luvas de captura de movimento inercial usam sensores Unidades de Medição Inerciais ou IMUs com sensores embutidos para rastrear o movimento de suas mãos. Esses sensores incluem giroscópios, acelerômetros e, às vezes, magnetômetros para medir a taxa angular, detectar a força gravitacional e a aceleração e medir o campo magnético da Terra, respectivamente.
Essas luvas podem ser usadas para uma variedade de propósitos, como jogos, realidade virtual e captura de movimento para filmes e videogames. As luvas de captura de movimento inercial estão se tornando cada vez mais populares, pois oferecem uma experiência mais imersiva do que os controladores tradicionais.
2. Sistemas de Captura de Movimento Óptico
A captura óptica de movimento é um processo que usa câmeras e sensores reflexivos para rastrear o movimento no espaço tridimensional. Esses sistemas são frequentemente usados em filmes e videogames para criar animações realistas.
Os sistemas ópticos de captura de movimento emitem luz infravermelha da câmera. Os marcadores refletem a luz, que é então capturada por câmeras. O movimento dos marcadores é então usado para criar um modelo tridimensional do objeto.
Quanto mais câmeras usadas, mais precisos serão os resultados. Embora essa tecnologia seja muito precisa, ela pode ser limitada por fatores como posição e movimento do corpo.
Rastreamento Sem Interface
Também conhecido como Markerless Hand Tracking, este tipo de Hand Tracking permite que os usuários rastreiem seus movimentos de mão sem a necessidade de marcadores externos ou luvas de dados, o que significa interação mais espontânea e liberdade de movimento. Isso poderia impactar enormemente tudo, desde jogos até realidade virtual e interação humano-computador.
No momento, o Hand Tracking sem marcadores ainda está em seus estágios iniciais, com algumas limitações. No entanto, à medida que essa tecnologia continua a se desenvolver, provavelmente veremos mais e mais aplicações para ela no futuro.
Parte 3. Usando Python, OpenCV e MediaPipe Para Criar Um Hand Tracking
Acima aprendemos o que é Hand Tracking e os dois tipos dele. Agora vamos ver como podemos criar um rastreamento manual com duas bibliotecas Python - OpenCV e MediaPipe.
Antes de irmos mais longe sobre eles, vamos aprender sobre Python rapidamente. Python é uma linguagem versátil usada para uma ampla gama de tarefas, incluindo processamento de imagens e visão computacional. Usaremos Python e duas bibliotecas Python: OpenCV e MediaPipe, para criar um módulo de Hand Tracking.
O Que é o OpenCV
Para obter uma compreensão mais profunda do OpenCV, leia nosso artigo: Opencv Tracking, a compete review.(同期交付文章,请插入相关内链~)
O Que é o Media Pipe
O Media Pipe é uma estrutura de código aberto do Google que fornece um conjunto de ferramentas para trabalhar com dados multimídia ou processamento de mídia. Ele inclui módulos para lidar com áudio, vídeo e imagens. Media Pipe também suporta vários codecs e formatos de arquivo.
Existem dois estágios para criar um programa de rastreamento de mão usando o MediaPipe:
- Detecção de Palma: No primeiro estágio, o MediaPipe tem que trabalhar com toda a imagem de entrada, fornecendo uma imagem cortada da mão.
- Identificação de Pontos de Referência da Mão: Na segunda etapa, a estrutura trabalha com a imagem recortada da mão para encontrar 21 pontos de referência da mão.
![20 marcos de mão para identificação – hand tracking](https://images.wondershare.com/filmora/article-images/2022/07/20-hand-landmarks-for-identifiction-hand-tracking.jpg)
Orientação Com Passos
Antes de começar a criar o Hand Tracking, você precisa instalar o aplicativo Pycharm IDE no seu PC. Uma vez instalado, inicie-o e siga estas instruções passo-a-passo:
Instalar OpenCV e MediaPipe
Clique na opção “Novo Projeto” e selecione “Criar” na próxima janela. Abra o Terminal para instalar as duas bibliotecas.
![Instale e inicie o aplicativo pycharm no seu pc](https://images.wondershare.com/filmora/article-images/2022/07/install-and-launch-the-pycharm-app-on-your-pc.jpg)
Copie e cole o seguinte comando no Terminal para instalar o OpenCV:
![Copie e cole o comando para instalar o opencv](https://images.wondershare.com/filmora/article-images/2022/07/hand-tracking-1.jpg)
Agora, para instalar o MediaPipe, copie e cole o seguinte comando:
![Instale o mediapipe](https://images.wondershare.com/filmora/article-images/2022/07/hand-tracking-2.jpg)
Codificação
Um arquivo main.py para escrever código será criado automaticamente no aplicativo Pycharm depois de criar um novo projeto.
Passo 1 Importando as Bibliotecas
Primeiro, importe o OpenCV e o MediaPipe para usar suas dependências. Uma vez feito, crie um cap de objeto para captura de vídeo e três outros objetos; mpHands, hands, e mpDraw para manipular sua entrada usando o MediaPipe.
![Importando as bibliotecas](https://images.wondershare.com/filmora/article-images/2022/07/hand-tracking-3.jpg)
Passo 2 Capturando e Processando uma Entrada de Imagem
Copie e cole a seguinte linha de código para obter a entrada de imagem da webcam do seu PC.
![Capturando e processando uma entrada de imagem](https://images.wondershare.com/filmora/article-images/2022/07/hand-tracking-4.jpg)
A imagem é convertida em RGB a partir do BGR porque o MediaPipe funciona com esse tipo de imagem. A imagem RBG é então processada para rastrear a mão.
Passo 3 Trabalhando Com as Duas Mãos
Agora, crie uma classe para rastreamento e para que a função mãos funcione, chave nos parâmetros básicos. Em seguida, forneça toda a inicialização necessária. Isso inclui os parâmetros básicos e as inicializações do MediaPipe. Coloque “self” antes de cada objeto para fornecer acesso a seus atributos e métodos.
![Trabalhando com as duas mãos](https://images.wondershare.com/filmora/article-images/2022/07/hand-tracking-5.jpg)
Passo 4 Criando Método Para Usar Tracking Hands na Imagem de Entrada
![Criando método para rastrear mãos](https://images.wondershare.com/filmora/article-images/2022/07/hand-tracking-6.jpg)
Depois, use o código acima para criar um método para usar especificamente para identificar as mãos na imagem de entrada. O código também desenhará pontos de referência de mão e conexões de mão.
Passo 5 Localize as Coordenadas 'X' e 'Y' de Cada Ponto de Mão
Para criar um método para localizar as coordenadas x e y dos pontos de mão z21 e uma lista que você usará para manter os valores destes, escreva o código abaixo:
![Localizar as coordenadas x e y do ponto manual](https://images.wondershare.com/filmora/article-images/2022/07/hand-tracking-7.jpg)
Nesse método, use o código que você usou para localizar a ID e o ponto de referência de mão de cada ponto de mão. Além disso, coloque o código que você usará para circundar o ponto da mão.
Passo 6 Método Principal
Agora, escreva o código fictício abaixo para mostrar o que o módulo pode fazer, ou seja, identificar e rastrear as mãos. O código aparece no método principal e usa o lmlist object e image.
![](https://images.wondershare.com/filmora/article-images/2022/07/hand-tracking-8.jpg)
Passo 7 Execução do Método Principal
Para executar o método principal, copie e cole as seguintes linhas de código:
![Execução do método principal](https://images.wondershare.com/filmora/article-images/2022/07/hand-tracking-9.jpg)
Passo 8 Resultado
O módulo e a saída do programa serão os mesmos, e quando estiverem completos sem erros, você obterá sua saída, ou seja, o módulo rastreará e identificará os movimentos de suas mãos sem falhas.
Parte 4. Use o Filmora para Demonstrar sua Habilidade de Hand Tracking
Depois do que foi explicado acima e do que você aprendeu até agora, esperamos que você tenha sido equipado com o conhecimento do módulo de rastreamento de mãos e esteja pronto para agir. Aqui, também recomendaremos sinceramente um edtior de vídeo amigável e profissional para mostrar sua cena de movimento da mão – Filmora!
Filmora está disponível para todos os tipos de usuários. Você pode facilmente usá-lo para editar seu vídeo, adicionar efeitos a ele e inserir sua parte de movimento da mão naturalmente:
Conclusão
Neste artigo, exploramos o Hand Tracking e seus dois tipos, ou seja, rastreamento com interface e rastreamento sem interface. Além disso, fornecemos orientação passo a passo sobre o uso de Python, OpenCV e MediaPipe para criar um módulo de Rastreamento de Mão.
Esperamos que este guia tenha ajudado a resolver suas dúvidas e agora você pode criar um módulo de Hand Tracking em pouco tempo. E por favor, experimente o Filmora para criar um vídeo mágico com suas cenas de Hand Tracking nele!