មេរៀនទី 6៖ ការតាមដានឥរិយាបថរាងកាយ និងដៃក្នុងពេលវេលាជាក់ស្ដែង
Theory & practice
🤸 មេរៀនទី 6៖ ការតាមដានឥរិយាបថ — រ៉ូបូតដែលធ្វើតាមចលនារបស់អ្នក
🤖 AI ដែលយល់ពីចលនារាងកាយ
ក្នុងមេរៀនមុន AI បានរកឃើញមុខ។ ក្នុងមេរៀននេះ យើងជួយឱ្យកុំព្យូទ័រស្គាល់ឥរិយាបថនៃរាងកាយទាំងមូល ដោយប្រើ ការប៉ាន់ស្មានឥរិយាបថ (Pose Estimation)។
ប្រព័ន្ធរកចំណុចសំខាន់ៗលើរាងកាយ រួចប្រើកូអរដោនេរបស់វា ដើម្បីដឹងថាអ្នកកំពុងឈរ ផ្អៀង ឬលើកដៃ។
🎯 គោលបំណងនៃការសិក្សា
បន្ទាប់ពីមេរៀននេះ អ្នកនឹងអាច៖
- ពន្យល់ថាចំណុចសំខាន់នៃរាងកាយ (keypoint) ជាអ្វី។
- បើកការរកឃើញឥរិយាបថក្នុង PictoBlox។
- អានកូអរដោនេនៃស្មា កែងដៃ និងកដៃ។
- ស្គាល់កាយវិការលើកដៃ។
- បញ្ជាតួអង្គដោយចលនារាងកាយ។
1. តើ Pose Estimation ជាអ្វី?
Pose Estimation ជាបច្ចេកវិទ្យាដែលអនុញ្ញាតឱ្យ AI កំណត់ទីតាំងផ្នែកនៃរាងកាយក្នុងរូបភាព ឬវីដេអូ។
ប្រព័ន្ធ PoseNet បែងចែករាងកាយជា ចំណុចសំខាន់ 17៖
| ក្រុម | ចំណុចសំខាន់ |
|---|---|
| មុខ | ច្រមុះ ភ្នែកឆ្វេង ភ្នែកស្តាំ ត្រចៀកឆ្វេង ត្រចៀកស្តាំ |
| ដៃ | ស្មា កែងដៃ និងកដៃ |
| ជើង | ត្រគាក ជង្គង់ និងកជើង |
ចំណុចសំខាន់នីមួយៗជាធម្មតាមាន៖
- កូអរដោនេ
x: ទីតាំងតាមទិសផ្ដេក។ - កូអរដោនេ
y: ទីតាំងតាមទិសបញ្ឈរ។ - ពិន្ទុទំនុកចិត្ត៖ AI ប្រាកដប៉ុណ្ណាអំពីការរកឃើញ។
2. រៀបចំកាមេរ៉ា
ដើម្បីរកឃើញឥរិយាបថបានត្រឹមត្រូវ៖
- 1ដាក់កាមេរ៉ានៅទីតាំងនឹង។
- 2ឈរឆ្ងាយល្មមដើម្បីឱ្យកាមេរ៉ាមើលឃើញរាងកាយខាងលើ ឬរាងកាយទាំងមូល។
- 3ជ្រើសរើសកន្លែងដែលមានពន្លឺល្អ។
- 4ជៀសវាងការមានមនុស្សច្រើននាក់ក្នុងស៊ុម។
- 5ធ្វើឱ្យមានកន្លែងទំនេរជុំវិញខ្លួនមុនពេលផ្លាស់ទី។
3. បន្ថែមផ្នែកបន្ថែម Pose Detection
ក្នុង PictoBlox៖
- 1ចុច Extension។
- 2ស្វែងរក និងជ្រើសរើស Pose Detection ឬ Human Body Detection។
- 3អនុញ្ញាតឱ្យ PictoBlox ប្រើកាមេរ៉ាវេប។
- 4ពិនិត្យថាប្លុករកឃើញឥរិយាបថបានលេចឡើង។
ឈ្មោះប្លុកអាចខុសគ្នាបន្តិចបន្តួចតាមកំណែ PictoBlox។
4. បើក និងវិភាគវីដេអូ
បង្កើតកម្មវិធីមូលដ្ឋាន៖
when green flag clicked
turn video on stage with 20% transparency
forever
analyse pose from cameraប្លុកវិភាគត្រូវតែនៅក្នុងរង្វិលជុំ forever ដើម្បីឱ្យ AI ធ្វើបច្ចុប្បន្នភាពទីតាំងរាងកាយជានិច្ចនៅពេលអ្នកផ្លាស់ទី។
5. អានកូអរដោនេនៃចំណុចសំខាន់
ដើម្បីស្គាល់ចលនាដៃ យើងត្រូវការចំណុចទាំងនេះ៖
ស្មាឆ្វេង
ស្មាស្តាំ
កដៃឆ្វេង
កដៃស្តាំបង្កើតអថេរ៖
Left_Shoulder_Y
Right_Shoulder_Y
Left_Wrist_Y
Right_Wrist_Yធ្វើបច្ចុប្បន្នភាពតម្លៃរបស់វា៖
forever
analyse pose from camera
set [Left_Shoulder_Y] to
[y position of left shoulder]
set [Left_Wrist_Y] to
[y position of left wrist]នៅពេលអ្នកលើកដៃឆ្វេង កដៃនឹងខ្ពស់ជាងស្មា។
if <Left_Wrist_Y greater than Left_Shoulder_Y> then
say "អ្នកកំពុងលើកដៃឆ្វេង!"say [Left_Wrist_Y] រួចដាក់ដៃចុះ និងលើកដៃឡើងឆ្លាស់គ្នា។ ប្រសិនបើតម្លៃ កើនឡើង នៅពេលលើកដៃ ត្រូវប្រើ greater than ដូចក្នុងមេរៀននេះ។ ប្រសិនបើតម្លៃ ថយចុះ ត្រូវប្ដូរការប្រៀបធៀបទាំងអស់ទៅជា less than។6. ស្គាល់កាយវិការនីមួយៗ
លើកដៃឆ្វេង
if <Left_Wrist_Y greater than Left_Shoulder_Y> then
say "ដៃឆ្វេងលើកឡើងហើយ!"លើកដៃស្តាំ
if <Right_Wrist_Y greater than Right_Shoulder_Y> then
say "ដៃស្តាំលើកឡើងហើយ!"លើកដៃទាំងពីរ
if
<Left_Wrist_Y greater than Left_Shoulder_Y>
and
<Right_Wrist_Y greater than Right_Shoulder_Y>
then
say "លើកដៃទាំងពីរហើយ!"7. គម្រោងតូច៖ រ៉ូបូតធ្វើតាម
ភារកិច្ច
ធ្វើឱ្យតួអង្គប្ដូរសម្លៀកបំពាក់ឱ្យត្រូវនឹងឥរិយាបថរបស់អ្នកប្រើ។
when green flag clicked
turn video on stage with 20% transparency
forever
analyse pose from camera
set [Left_Shoulder_Y] to [y position of left shoulder]
set [Right_Shoulder_Y] to [y position of right shoulder]
set [Left_Wrist_Y] to [y position of left wrist]
set [Right_Wrist_Y] to [y position of right wrist]
if
<Left_Wrist_Y greater than Left_Shoulder_Y>
and
<Right_Wrist_Y greater than Right_Shoulder_Y>
then
switch costume to [Both arms up]
say "អស្ចារ្យណាស់!" for 1 seconds
else
if <Left_Wrist_Y greater than Left_Shoulder_Y> then
switch costume to [Left arm up]
else
if <Right_Wrist_Y greater than Right_Shoulder_Y> then
switch costume to [Right arm up]
else
switch costume to [Standing]តួអង្គប្ដូររូបរាងឱ្យត្រូវនឹងឥរិយាបថរបស់អ្នក។
8. បញ្ជារ៉ូបូតដោយឥរិយាបថ
អ្នកអាចព្រមព្រៀងគ្នាថា៖
| ឥរិយាបថ | ពាក្យបញ្ជារ៉ូបូត |
|---|---|
| លើកដៃឆ្វេង | បត់ឆ្វេង |
| លើកដៃស្តាំ | បត់ស្តាំ |
| លើកដៃទាំងពីរ | ទៅមុខ |
| ដាក់ដៃទាំងពីរចុះ | ឈប់ |
ឧទាហរណ៍៖
if <both arms up> then
robot forward
else
if <left arm up> then
robot turn left
else
if <right arm up> then
robot turn right
else
robot stop9. ប្រសិនបើ AI មិនត្រឹមត្រូវ
ពិនិត្យ៖
- តើស្មា និងដៃទាំងពីរនៅក្នុងស៊ុមឬទេ?
- តើបន្ទប់ភ្លឺគ្រប់គ្រាន់ឬទេ?
- តើសម្លៀកបំពាក់របស់អ្នកលេចធ្លោពីផ្ទៃខាងក្រោយឬទេ?
- តើមានមនុស្សច្រើននាក់ក្នុងស៊ុមឬទេ?
- តើកាមេរ៉ាញ័រឬទេ?
- តើប្លុកវិភាគឥរិយាបថនៅក្នុងរង្វិលជុំឬទេ?
ប្រសិនបើតួអង្គប្ដូរស្ថានភាពជាប់ៗ ត្រូវរក្សាឥរិយាបថនីមួយៗឱ្យនឹងប្រហែល 1 វិនាទី មុនពេលវាធ្វើសកម្មភាព។
🧩 បញ្ហាប្រឈម
កែលម្អគម្រោងដោយគំនិតមួយ៖
- 1បង្កើតហ្គេមហាត់ប្រាណដែលផ្ដល់ពិន្ទុរាល់ការលើកដៃ។
- 2បញ្ជាយានអវកាសដោយផ្អៀងខ្លួន។
- 3ចាក់សំឡេងនៅពេលអ្នកលេងលើកដៃទាំងពីរ។
- 4ធ្វើឱ្យតួអង្គលោតនៅពេលកដៃខ្ពស់ជាងក្បាល។
- 5បន្ថែមអថេរ
Repsដើម្បីរាប់ចលនាត្រឹមត្រូវ។
✅ ចងចាំ
- Pose Estimation ជួយឱ្យ AI ស្គាល់ឥរិយាបថរាងកាយ។
- PoseNet ប្រើចំណុចសំខាន់ 17។
- ចំណុចសំខាន់នីមួយៗមានកូអរដោនេ
xនិងyនិងពិន្ទុទំនុកចិត្ត។ - ការប្រៀបធៀបកដៃជាមួយស្មាជួយស្គាល់ការលើកដៃ។
- លក្ខខណ្ឌប្រែក្លាយឥរិយាបថទៅជាសកម្មភាពរបស់តួអង្គ ឬរ៉ូបូត។
- កាមេរ៉ាត្រូវការពន្លឺល្អ និងមើលឃើញរាងកាយច្បាស់។
សំណួររហ័ស
- 1តើចំណុចសំខាន់ (keypoint) ជាអ្វី?
- 2តើ PoseNet រកឃើញចំណុចសំខាន់ប៉ុន្មាន?
- 3តើអ្នកប្រៀបធៀបចំណុចណាដើម្បីស្គាល់ការលើកដៃ?
- 4ហេតុអ្វីគួរសាកល្បងលើឆាកមុនពេលបញ្ជារ៉ូបូតពិត?