AI-For-Beginners/translations/vi/lessons/4-ComputerVision/06-IntroCV/lab/MovementDetection.ipynb

108 lines
4.0 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Phát hiện Chuyển động Lòng bàn tay bằng Optical Flow\n",
"\n",
"Phòng thí nghiệm này là một phần của [Chương trình học AI cho Người mới bắt đầu](http://aka.ms/ai-beginners).\n",
"\n",
"Hãy xem [video này](../../../../../../lessons/4-ComputerVision/06-IntroCV/lab/palm-movement.mp4), trong đó lòng bàn tay của một người di chuyển sang trái/phải/lên/xuống trên nền ổn định.\n",
"\n",
"**Mục tiêu của bạn** là sử dụng Optical Flow để xác định các phần của video có chứa chuyển động lên/xuống/trái/phải.\n",
"\n",
"Bắt đầu bằng cách lấy các khung hình video như đã mô tả trong bài giảng:\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Code here"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Bây giờ, tính toán các khung dòng quang học dày đặc như đã mô tả trong bài giảng, và chuyển đổi dòng quang học dày đặc sang tọa độ cực:\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Code here"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Xây dựng biểu đồ tần suất của các hướng cho từng khung quang học. Một biểu đồ tần suất cho thấy có bao nhiêu vector nằm trong các khoảng nhất định, và nó nên phân biệt các hướng di chuyển khác nhau trên khung hình.\n",
"\n",
"> Bạn cũng có thể muốn loại bỏ tất cả các vector có độ lớn dưới một ngưỡng nhất định. Điều này sẽ loại bỏ các chuyển động nhỏ không cần thiết trong video, chẳng hạn như mắt và đầu.\n",
"\n",
"Vẽ biểu đồ tần suất cho một số khung hình.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Code here"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nhìn vào biểu đồ tần suất, việc xác định hướng di chuyển sẽ khá đơn giản. Bạn cần chọn các ô tương ứng với các hướng lên/xuống/trái/phải, và các ô đó phải vượt qua một ngưỡng nhất định.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Code here"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Chúc mừng! Nếu bạn đã hoàn thành tất cả các bước trên, bạn đã hoàn thành bài thực hành!\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**Tuyên bố miễn trừ trách nhiệm**: \nTài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ bản địa nên được coi là nguồn tham khảo chính thức. Đối với các thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp từ con người. Chúng tôi không chịu trách nhiệm cho bất kỳ sự hiểu lầm hoặc diễn giải sai nào phát sinh từ việc sử dụng bản dịch này.\n"
]
}
],
"metadata": {
"language_info": {
"name": "python"
},
"orig_nbformat": 4,
"coopTranslator": {
"original_hash": "153d9e417e079bf62f8f693002d0deaf",
"translation_date": "2025-08-29T14:00:47+00:00",
"source_file": "lessons/4-ComputerVision/06-IntroCV/lab/MovementDetection.ipynb",
"language_code": "vi"
}
},
"nbformat": 4,
"nbformat_minor": 2
}