{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Detecção de Movimento da Palma usando Fluxo Óptico\n", "\n", "Este laboratório faz parte do [Currículo de IA para Iniciantes](http://aka.ms/ai-beginners).\n", "\n", "Considere [este vídeo](../../../../../../lessons/4-ComputerVision/06-IntroCV/lab/palm-movement.mp4), no qual a palma de uma pessoa se move para a esquerda/direita/cima/baixo sobre um fundo estável.\n", "\n", "**O seu objetivo** será usar Fluxo Óptico para determinar quais partes do vídeo contêm movimentos para cima/baixo/esquerda/direita.\n", "\n", "Comece por obter os frames do vídeo conforme descrito na aula:\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Agora, calcula os fotogramas de fluxo ótico denso conforme descrito na aula e converte o fluxo ótico denso para coordenadas polares:\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Construa um histograma de direções para cada frame do fluxo óptico. Um histograma mostra quantos vetores se enquadram em determinados intervalos e deve separar as diferentes direções de movimento no frame.\n", "\n", "> Também pode ser útil eliminar todos os vetores cuja magnitude esteja abaixo de um determinado limite. Isso ajudará a remover pequenos movimentos extras no vídeo, como olhos e cabeça.\n", "\n", "Faça o gráfico dos histogramas para alguns dos frames.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ao observar os histogramas, deve ser bastante simples determinar a direção do movimento. É necessário selecionar os intervalos que correspondem às direções cima/baixo/esquerda/direita e que estão acima de um determinado limite.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Parabéns! Se concluíste todos os passos acima, terminaste o laboratório!\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n---\n\n**Aviso Legal**: \nEste documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, é importante notar que traduções automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autoritária. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes da utilização desta tradução.\n" ] } ], "metadata": { "language_info": { "name": "python" }, "orig_nbformat": 4, "coopTranslator": { "original_hash": "153d9e417e079bf62f8f693002d0deaf", "translation_date": "2025-08-31T11:42:50+00:00", "source_file": "lessons/4-ComputerVision/06-IntroCV/lab/MovementDetection.ipynb", "language_code": "pt" } }, "nbformat": 4, "nbformat_minor": 2 }