{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Rilevamento del Movimento del Palmo utilizzando Optical Flow\n", "\n", "Questo laboratorio fa parte del [Curriculum AI per Principianti](http://aka.ms/ai-beginners).\n", "\n", "Considera [questo video](../../../../../../lessons/4-ComputerVision/06-IntroCV/lab/palm-movement.mp4), in cui il palmo di una persona si muove a sinistra/destra/su/giù su uno sfondo stabile.\n", "\n", "**Il tuo obiettivo** sarà utilizzare l'Optical Flow per determinare quali parti del video contengono movimenti verso l'alto, il basso, la sinistra o la destra.\n", "\n", "Inizia ottenendo i frame del video come descritto nella lezione:\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ora, calcola i fotogrammi del flusso ottico denso come descritto nella lezione e converti il flusso ottico denso in coordinate polari:\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Costruisci un istogramma delle direzioni per ciascun fotogramma del flusso ottico. Un istogramma mostra quanti vettori rientrano in un determinato intervallo e dovrebbe distinguere le diverse direzioni di movimento nel fotogramma.\n", "\n", "> Potresti anche voler azzerare tutti i vettori la cui magnitudine è al di sotto di una certa soglia. Questo eliminerà piccoli movimenti extra nel video, come occhi e testa.\n", "\n", "Traccia gli istogrammi per alcuni dei fotogrammi.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Guardando gli istogrammi, dovrebbe essere abbastanza semplice determinare la direzione del movimento. È necessario selezionare quei bin che corrispondono alle direzioni su/giù/sinistra/destra e che superano una certa soglia.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Congratulazioni! Se hai completato tutti i passaggi sopra, hai terminato il laboratorio!\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n---\n\n**Disclaimer**: \nQuesto documento è stato tradotto utilizzando il servizio di traduzione automatica [Co-op Translator](https://github.com/Azure/co-op-translator). Sebbene ci impegniamo per garantire l'accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale eseguita da un traduttore umano. Non siamo responsabili per eventuali fraintendimenti o interpretazioni errate derivanti dall'uso di questa traduzione.\n" ] } ], "metadata": { "language_info": { "name": "python" }, "orig_nbformat": 4, "coopTranslator": { "original_hash": "153d9e417e079bf62f8f693002d0deaf", "translation_date": "2025-08-28T13:15:04+00:00", "source_file": "lessons/4-ComputerVision/06-IntroCV/lab/MovementDetection.ipynb", "language_code": "it" } }, "nbformat": 4, "nbformat_minor": 2 }