Session 645 minutes

Buổi 6: Theo dõi Cử chỉ Toàn thân (Human Body / Pose Tracking)

Learning objective: Nhận diện 17 khớp nối cơ thể: Vai, khuỷu tay, cổ tay, hông, đầu gối và mắt cá chân.

Theory & practice

🤸 Bài 6: Theo dõi Tư thế — Robot Bắt chước Hành động

🤖 AI nhận biết chuyển động cơ thể

Trong bài trước, AI đã nhận diện khuôn mặt. Ở bài này, chúng ta sẽ giúp máy tính nhận biết tư thế của toàn bộ cơ thể bằng công nghệ Pose Estimation.

Hệ thống sẽ tìm các điểm quan trọng trên cơ thể, sau đó sử dụng tọa độ của chúng để xác định bạn đang đứng, nghiêng người hay giơ tay.

Nhiệm vụ: Điều khiển nhân vật hoặc robot thực hiện hành động tương ứng với tư thế của người dùng.

🎯 Mục tiêu bài học

Sau bài học này, bạn có thể:

  • Hiểu điểm mốc cơ thể là gì.
  • Bật tính năng nhận diện tư thế trong PictoBlox.
  • Đọc tọa độ của vai, khuỷu tay và cổ tay.
  • Nhận biết động tác giơ tay.
  • Điều khiển nhân vật bằng chuyển động cơ thể.

1. Pose Estimation là gì?

Pose Estimation là công nghệ giúp AI xác định vị trí các bộ phận trên cơ thể từ hình ảnh hoặc video.

Hệ thống PoseNet chia cơ thể thành 17 điểm mốc — Keypoints:

NhómĐiểm mốc
Khuôn mặtMũi, mắt trái, mắt phải, tai trái, tai phải
TayVai, khuỷu tay và cổ tay
ChânHông, đầu gối và mắt cá chân

Mỗi điểm mốc thường có:

  • Tọa độ x: vị trí theo chiều ngang.
  • Tọa độ y: vị trí theo chiều dọc.
  • Độ tin cậy: mức độ chắc chắn của AI khi nhận diện.

2. Chuẩn bị camera

Để nhận diện tư thế chính xác:

  1. 1Đặt camera ở vị trí ổn định.
  2. 2Đứng cách camera đủ xa để thấy phần thân trên hoặc toàn bộ cơ thể.
  3. 3Chọn nơi có ánh sáng rõ.
  4. 4Tránh để nhiều người cùng xuất hiện trong khung hình.
  5. 5Dọn khoảng trống xung quanh trước khi vận động.
⚠️ Không thực hiện động tác quá nhanh hoặc đứng gần vật cản khi thực hành.

3. Thêm Extension Pose Detection

Trong PictoBlox:

  1. 1Bấm Mở rộng — Extension.
  2. 2Tìm và chọn Pose Detection hoặc Human Body Detection.
  3. 3Cho phép PictoBlox sử dụng webcam.
  4. 4Kiểm tra các khối nhận diện tư thế đã xuất hiện.

Tên khối có thể thay đổi nhẹ tùy phiên bản PictoBlox.

4. Bật và phân tích hình ảnh

Tạo chương trình cơ bản:

text
Khi bấm vào cờ xanh
Bật video trên sân khấu với độ mờ 20%

Liên tục
    Phân tích tư thế từ camera

Khối phân tích cần nằm trong vòng lặp Liên tục để AI cập nhật vị trí cơ thể khi bạn di chuyển.

5. Đọc tọa độ các điểm mốc

Để nhận biết cánh tay, chúng ta cần các điểm:

text
Vai trái
Vai phải
Cổ tay trái
Cổ tay phải

Tạo các biến:

text
Vai_trái_Y
Vai_phải_Y
Cổ_tay_trái_Y
Cổ_tay_phải_Y

Cập nhật giá trị:

text
Liên tục
    Phân tích tư thế từ camera

    Đặt [Vai_trái_Y] thành
        [Tọa độ y của vai trái]

    Đặt [Cổ_tay_trái_Y] thành
        [Tọa độ y của cổ tay trái]

Khi bạn giơ tay trái lên cao, tọa độ của cổ tay sẽ cao hơn tọa độ của vai.

text
Nếu <Cổ_tay_trái_Y lớn hơn Vai_trái_Y> thì
    Nói "Bạn đang giơ tay trái!"
🔍 Kiểm tra chiều trục Y trước khi viết điều kiện: cho nhân vật Nói [Cổ_tay_trái_Y], rồi lần lượt hạ tay và giơ tay. Nếu giá trị tăng khi giơ tay, dùng phép so sánh lớn hơn như trong bài. Nếu giá trị giảm, hãy đổi tất cả thành nhỏ hơn.

6. Nhận biết từng động tác

Mục Trọng Tâm

Giơ tay trái

text
Nếu <Cổ_tay_trái_Y lớn hơn Vai_trái_Y> thì
    Nói "Tay trái đang giơ lên!"
Mục Trọng Tâm

Giơ tay phải

text
Nếu <Cổ_tay_phải_Y lớn hơn Vai_phải_Y> thì
    Nói "Tay phải đang giơ lên!"
Mục Trọng Tâm

Giơ cả hai tay

text
Nếu
    <Cổ_tay_trái_Y lớn hơn Vai_trái_Y>
    và
    <Cổ_tay_phải_Y lớn hơn Vai_phải_Y>
thì
    Nói "Hai tay đang giơ lên!"

7. Dự án nhỏ: Robot bắt chước hành động

Mục Trọng Tâm

Nhiệm vụ

Cho nhân vật thay đổi trang phục theo tư thế của người dùng.

text
Khi bấm vào cờ xanh
Bật video trên sân khấu với độ mờ 20%

Liên tục
    Phân tích tư thế từ camera

    Đặt [Vai_trái_Y] thành [Tọa độ y của vai trái]
    Đặt [Vai_phải_Y] thành [Tọa độ y của vai phải]
    Đặt [Cổ_tay_trái_Y] thành [Tọa độ y của cổ tay trái]
    Đặt [Cổ_tay_phải_Y] thành [Tọa độ y của cổ tay phải]

    Nếu
        <Cổ_tay_trái_Y lớn hơn Vai_trái_Y>
        và
        <Cổ_tay_phải_Y lớn hơn Vai_phải_Y>
    thì
        Chuyển sang trang phục [Giơ hai tay]
        Nói "Tuyệt vời!" trong 1 giây
    Không thì
        Nếu <Cổ_tay_trái_Y lớn hơn Vai_trái_Y> thì
            Chuyển sang trang phục [Giơ tay trái]
        Không thì
            Nếu <Cổ_tay_phải_Y lớn hơn Vai_phải_Y> thì
                Chuyển sang trang phục [Giơ tay phải]
            Không thì
                Chuyển sang trang phục [Đứng bình thường]

Nhân vật sẽ thay đổi hình dáng theo tư thế của bạn.

8. Điều khiển robot bằng tư thế

Có thể quy ước:

Tư thếLệnh robot
Giơ tay tráiRẽ trái
Giơ tay phảiRẽ phải
Giơ hai tayTiến về phía trước
Hạ cả hai tayDừng lại

Ví dụ:

text
Nếu <Giơ cả hai tay> thì
    Robot tiến
Không thì
    Nếu <Giơ tay trái> thì
        Robot rẽ trái
    Không thì
        Nếu <Giơ tay phải> thì
            Robot rẽ phải
        Không thì
            Robot dừng
⚠️ Luôn thử chương trình với nhân vật trên sân khấu trước khi kết nối robot thật.

9. Nếu AI nhận diện chưa chính xác

Hãy kiểm tra:

  • Toàn bộ vai và tay có nằm trong khung hình không.
  • Căn phòng có đủ ánh sáng không.
  • Quần áo có dễ phân biệt với phông nền không.
  • Có nhiều người cùng xuất hiện không.
  • Camera có bị rung không.
  • Khối phân tích tư thế có nằm trong vòng lặp không.

Nếu nhân vật thay đổi trạng thái liên tục, hãy giữ tư thế ổn định trong khoảng 1 giây trước khi thực hiện lệnh.

🧩 Thử thách

Hãy nâng cấp dự án bằng một ý tưởng:

  1. 1Tạo trò chơi tập thể dục và tính điểm mỗi lần giơ tay.
  2. 2Điều khiển tàu vũ trụ bằng cách nghiêng người.
  3. 3Phát âm thanh khi người chơi giơ cả hai tay.
  4. 4Tạo nhân vật nhảy khi cổ tay cao hơn đầu.
  5. 5Thêm biến Số_lần_tập để đếm số động tác đúng.

✅ Ghi nhớ

  • Pose Estimation giúp AI nhận diện tư thế cơ thể.
  • PoseNet sử dụng 17 điểm mốc.
  • Mỗi điểm mốc có tọa độ x, y và độ tin cậy.
  • So sánh vị trí cổ tay với vai giúp nhận biết động tác giơ tay.
  • Điều kiện giúp chuyển tư thế thành hành động của nhân vật hoặc robot.
  • Camera cần đủ sáng và nhìn rõ cơ thể.
Mục Trọng Tâm

Câu hỏi nhanh

  1. 1Keypoint là gì?
  2. 2PoseNet nhận diện bao nhiêu điểm mốc?
  3. 3Cần so sánh những điểm nào để nhận biết động tác giơ tay?
  4. 4Vì sao nên thử trên sân khấu trước khi điều khiển robot thật?

Sẵn sàng kiểm tra kiến thức?

Chuyển sang phòng thi riêng để làm bài, xem kết quả và giải thích.

Bài Đánh giá Năng lực Phần 2: Computer Vision & AI Pose Tracking →14 questions · 15 minutes