Original Title: 3D OBJECT DETECTION AND CLASSIFICATION WITH MICROSOFT KINECT AND DEEP NEURAL NETWORKS
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

ការរកឃើញ និងចំណាត់ថ្នាក់វត្ថុជាទម្រង់ 3D ជាមួយឧបករណ៍ Microsoft Kinect និងបណ្តាញសរសៃប្រសាទសិប្បនិម្មិតជម្រៅជ្រៅ (Deep Neural Networks)

ចំណងជើងដើម៖ 3D OBJECT DETECTION AND CLASSIFICATION WITH MICROSOFT KINECT AND DEEP NEURAL NETWORKS

អ្នកនិពន្ធ៖ Ahmed Fawzy Elaraby (Cairo University)

ឆ្នាំបោះពុម្ព៖ 2019, Cairo University

វិស័យសិក្សា៖ Aerospace Engineering

១. សេចក្តីសង្ខេបប្រតិបត្តិ (Executive Summary)

បញ្ហា (The Problem)៖ និក្ខេបបទនេះដោះស្រាយបញ្ហានៃការបង្កើតប្រព័ន្ធចំណាត់ថ្នាក់ និងរកឃើញវត្ថុក្នុងទីតាំង 3D ដែលមានតម្លៃសមរម្យដោយប្រើឧបករណ៍សេនស័រលើទីផ្សារជាជាងប្រើប្រាស់ឧបករណ៍សេនស័រដែលមានតម្លៃថ្លៃដូចជា LiDAR។

វិធីសាស្ត្រ (The Methodology)៖ ការសិក្សានេះបានបង្កើតប្រព័ន្ធតភ្ជាប់ពីចុងម្ខាងទៅចុងម្ខាង (End-to-End System) ដោយធ្វើសមកាលកម្មទិន្នន័យរូបភាពនិងជម្រៅ ដើម្បីស្វែងរកវត្ថុនិងកំណត់ទីតាំង។

លទ្ធផលសំខាន់ៗ (The Verdict)៖

២. ការវិភាគលើប្រសិទ្ធភាព និងដែនកំណត់ (Performance & Constraints)

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
Middle Pixel Value
ការប្រើប្រាស់តម្លៃភីកសែលនៅចំណុចកណ្តាល
មានដំណើរការលឿន (៥ ហ្វ្រេមក្នុងមួយវិនាទី) និងមានភាពងាយស្រួលបំផុតក្នុងការគណនាដោយពុំត្រូវការកម្លាំងម៉ាស៊ីនច្រើន។ ងាយរងឥទ្ធិពលយ៉ាងខ្លាំងពីភីកសែលដែលខូច (Faulty pixels) និងមិនមានភាពជាក់លាក់ទេប្រសិនបើវត្ថុមិននៅចំកណ្តាលប្រអប់។ ទទួលបានភាពត្រឹមត្រូវនៃការប៉ាន់ស្មានជម្រៅត្រឹមតែ ៥៧.៩៩% ប៉ុណ្ណោះ។
Bounding Box Mean Value
ការគណនាតម្លៃមធ្យមនៃប្រអប់ព្រំដែនសរុប
អាចជួយកាត់បន្ថយបញ្ហាភីកសែលខូចបានប្រសើរជាងវិធីសាស្ត្រទីមួយ ដោយទាញយកមធ្យមភាគនៃភីកសែលទាំងអស់។ ដំណើរការយឺតជាងគេ (២.៥ ហ្វ្រេមក្នុងមួយវិនាទី) និងងាយរាប់បញ្ចូលភីកសែលផ្ទៃខាងក្រោយ ឬផ្ទៃខាងមុខដែលមិនពាក់ព័ន្ធចូលក្នុងការគណនា។ ទទួលបានភាពត្រឹមត្រូវនៃការប៉ាន់ស្មានជម្រៅប្រមាណ ៨២.៨៩%។
Proposed Depth Estimation Algorithm (9-grid cells)
ក្បួនដោះស្រាយការប៉ាន់ស្មានជម្រៅដែលបានស្នើឡើង (បែងចែកជា ៩ ក្រឡា)
អាចបំបាត់បញ្ហាភីកសែលខូច និងផាត់ចោលភីកសែលផ្ទៃខាងក្រោយបានយ៉ាងល្អ ព្រមទាំងរក្សាបាននូវល្បឿនមធ្យមដែលអាចទទួលយកបាន។ ត្រូវការការគណនាស្មុគស្មាញជាងវិធីសាស្ត្រធម្មតាបន្តិច ដោយតម្រូវឱ្យមានការតម្រៀបទិន្នន័យ (Sorting) និងទាញយកតម្លៃមេដ្យាន (Median)។ ទទួលបានភាពត្រឹមត្រូវខ្ពស់ជាងគេបំផុតក្នុងការប៉ាន់ស្មានជម្រៅ គឺរហូតដល់ ៨៧.៧៤% ជាមួយនឹងល្បឿន ៤ ហ្វ្រេមក្នុងមួយវិនាទី។

ការចំណាយលើធនធាន (Resource Cost)៖ ការអភិវឌ្ឍប្រព័ន្ធនេះទាមទារការរួមបញ្ចូលគ្នារវាងផ្នែករឹងដែលមានតម្លៃសមរម្យ និងកុំព្យូទ័រដែលមានសមត្ថភាពដំណើរការក្រាហ្វិក (GPU) ខ្ពស់គួរសម ដើម្បីធានាបាននូវដំណើរការក្នុងពេលជាក់ស្តែង (Real-time)។

៣. ការពិនិត្យសម្រាប់បរិបទកម្ពុជា/អាស៊ីអាគ្នេយ៍

ភាពលំអៀងនៃទិន្នន័យ (Data Bias)៖

ការសិក្សានេះត្រូវបានធ្វើតេស្តដោយផ្តោតសំខាន់តែលើបរិយាកាសក្នុងផ្ទះ (Indoor) ជាមួយនឹងទិន្នន័យវត្ថុចំនួន៦ប្រភេទប៉ុណ្ណោះ (មនុស្ស កៅអី ទូរទស្សន៍ ដប សាឡុង សៀវភៅ)។ វាមិនអាចដំណើរការបានល្អនៅទីវាល ឬក្រៅផ្ទះនោះទេ ដោយសារកាំរស្មីអ៊ុលត្រាវីយូឡេ (IR) របស់សេនស័រ Kinect នឹងរងការរំខានពីពន្លឺព្រះអាទិត្យដោយផ្ទាល់។ សម្រាប់បរិបទប្រទេសកម្ពុជា កត្តានេះបញ្ជាក់ថាវាស័ក្តិសមបំផុតសម្រាប់ការប្រើប្រាស់តែក្នុងអគារ ដូចជារោងចក្រ ឃ្លាំងទំនិញ ឬមន្ទីរពេទ្យប៉ុណ្ណោះ។

លទ្ធភាពនៃការអនុវត្ត (Applicability)៖

ប្រព័ន្ធនេះមានសក្តានុពល និងលទ្ធភាពខ្ពស់សម្រាប់ការអនុវត្តជាក់ស្តែងនៅប្រទេសកម្ពុជា ដោយសារវាផ្តោតលើការប្រើប្រាស់ឧបករណ៍សេនស័រដែលមានតម្លៃថោកជំនួសឱ្យ LiDAR ថ្លៃៗ។

ជារួម បច្ចេកវិទ្យានេះគឺជាជម្រើសដ៏ល្អ និងសន្សំសំចៃបំផុតសម្រាប់គម្រោងក្នុងស្រុកដែលត្រូវការប្រព័ន្ធ Computer Vision កម្រិត 3D ដែលមានភាពជាក់លាក់ខ្ពស់សម្រាប់ការអភិវឌ្ឍប្រព័ន្ធស្វ័យប្រវត្តិកម្មក្នុងបរិយាកាសបិទជិត។

៤. ផែនការសកម្មភាពសម្រាប់និស្សិត (Actionable Roadmap)

ដើម្បីអនុវត្តតាមការសិក្សានេះ និស្សិតគួរអនុវត្តតាមជំហានខាងក្រោម៖

  1. សិក្សាមូលដ្ឋានគ្រឹះនៃ Linux និង ROS: ចាប់ផ្តើមដោយការដំឡើងប្រព័ន្ធប្រតិបត្តិការ Ubuntu លើកុំព្យូទ័រ និងអនុវត្តការសរសេរកូដតាមរយៈ ROS (Robot Operating System) ដើម្បីយល់ច្បាស់ពីរបៀបបង្កើត Nodes និងការផ្លាស់ប្តូរទិន្នន័យតាមរយៈ Topics។
  2. ស្វែងយល់ពីបច្ចេកវិទ្យាបញ្ញាសិប្បនិម្មិត YOLO: សិក្សាពីរចនាសម្ព័ន្ធរបស់បណ្តាញ YOLO DNN និងសាកល្បងដំណើរការវាជាមួយបណ្ណាល័យ DarknetOpenCV ដើម្បីអនុវត្តការចាប់យករូបភាពវត្ថុ 2D (2D Object Detection) ជាមុនសិន។
  3. រៀបចំឧបករណ៍និងការតភ្ជាប់ (Hardware Setup): ស្វែងរកទិញឧបករណ៍ Microsoft Kinect v2 និងដោតភ្ជាប់វាជាមួយកុំព្យូទ័រយួរដៃតាមរយៈ Kinect USB 3.0 Adapter ព្រមទាំងកុំភ្លេចដំឡើងកម្មវិធីបញ្ជា CUDA Toolkit ប្រសិនបើអ្នកមាន GPU ដើម្បីបង្កើនល្បឿនដំណើរការ។
  4. អនុវត្តការតម្រូវសេនស័រកាមេរ៉ា (Camera Calibration): ប្រើប្រាស់កញ្ចប់កូដ iai_kinect2 calibration នៅក្នុង ROS ធ្វើការតម្រូវកាមេរ៉ាពណ៌ (RGB Camera) និងកាមេរ៉ាជម្រៅ (IR Depth Camera) ឱ្យស៊ីសង្វាក់គ្នា (Intrinsic & Extrinsic Calibration) ដើម្បីធានាថាទីតាំងវត្ថុក្នុងរូបភាពត្រួតគ្នាល្អិតល្អន់។
  5. អភិវឌ្ឍន៍ក្បួនដោះស្រាយជម្រៅ (Depth Estimation Implementation): សរសេរកូដជាភាសា C++ ដើម្បីបង្កើតក្បួនបែងចែក ៩ ក្រឡា (9-grid cells algorithm) ជាន់ពីលើប្រអប់ព្រំដែន (Bounding box) ដែលផ្តល់ដោយ YOLO រួចគណនាតម្លៃមធ្យមនៃក្រឡានីមួយៗ រហូតទាញបានតម្លៃជម្រៅ 3D ដ៏សុក្រឹតដូចដែលស្នើក្នុងនិក្ខេបបទ។

៥. វាក្យសព្ទបច្ចេកទេស (Technical Glossary)

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
Deep Neural Networks បណ្តាញសរសៃប្រសាទសិប្បនិម្មិតកម្រិតជ្រៅ គឺជាប្រព័ន្ធក្បួនដោះស្រាយរបស់កុំព្យូទ័រដែលត្រូវបានរចនាឡើងដោយត្រាប់តាមទម្រង់ខួរក្បាលរបស់មនុស្ស ដោយមានស្រទាប់វិភាគទិន្នន័យច្រើនជាន់តម្រួតគ្នា ដើម្បីរៀនស្គាល់ចំណុចពិសេស និងដោះស្រាយបញ្ហាស្មុគស្មាញ។ វាដូចជាសិស្សដែលរៀនសូត្រពីកំហុសរបស់ខ្លួនឯងម្តងហើយម្តងទៀត រហូតដល់អាចចំណាំ និងដោះស្រាយលំហាត់ស្មុគស្មាញបានយ៉ាងស្ទាត់ជំនាញ។
YOLO YOLO (You Only Look Once) គឺជាក្បួនដោះស្រាយបណ្តាញសរសៃប្រសាទសិប្បនិម្មិតមួយប្រភេទដែលប្រើសម្រាប់ចាប់យក និងចំណាត់ថ្នាក់វត្ថុក្នុងរូបភាពបានយ៉ាងលឿនក្នុងពេលជាក់ស្តែង ដោយវាដំណើរការទិន្នន័យរូបភាពទាំងមូលតែម្តងគត់ក្នុងពេលតែមួយ។ វាដូចជាមនុស្សម្នាក់ដែលក្រឡេកមើលរូបថតតែមួយភ្លែត ក៏អាចប្រាប់បានភ្លាមៗថានៅក្នុងរូបនោះមានអ្នកណាខ្លះនិងនៅទីតាំងណាខ្លះ ជាជាងការស្កេនមើលម្តងមួយជ្រុងៗយ៉ាងយឺតៗ។
Robot Operating System (ROS) គឺជាប្រព័ន្ធកណ្តាល ឬក្របខណ្ឌកម្មវិធីកុំព្យូទ័រសម្រាប់ជួយសម្រួលដល់ការសរសេរកូដបញ្ជារ៉ូបូត ដែលវាអនុញ្ញាតឱ្យកម្មវិធីផ្នែករឹងនិងផ្នែកទន់ផ្សេងៗអាចទាក់ទងគ្នា និងផ្លាស់ប្តូរទិន្នន័យគ្នាទៅវិញទៅមកបានដោយរលូនតាមរយៈ Nodes និង Topics។ វាដូចជាអ្នកបកប្រែភាសាកណ្តាលមួយនៅកន្លែងធ្វើការ ដែលជួយឱ្យបុគ្គលិកមកពីផ្នែកផ្សេងៗអាចប្រាស្រ័យទាក់ទង និងសហការគ្នាធ្វើការងារធំមួយបានជោគជ័យ។
Depth Estimation គឺជាដំណើរការនៃការគណនារកជម្រៅ ឬចម្ងាយពីឧបករណ៍កាមេរ៉ាទៅកាន់វត្ថុណាមួយក្នុងរូបភាព ដើម្បីកំណត់ទីតាំងពិតប្រាកដរបស់វត្ថុនោះក្នុងទម្រង់ជា 3D ជួយឱ្យកុំព្យូទ័រដឹងពីចម្ងាយពិតប្រាកដ។ វាដូចជាយើងប្រើយ៉ាន់ទ័រ ឬខ្សែម៉ែត្រដើម្បីវាស់ចម្ងាយពីកន្លែងដែលយើងឈរទៅកាន់វត្ថុមួយនៅខាងមុខ ដើម្បីដឹងថាវានៅឆ្ងាយប៉ុណ្ណាពីយើង។
Camera Calibration គឺជាដំណើរការតម្រូវ និងកែតម្រូវសេនស័រកាមេរ៉ា (ឧទាហរណ៍ កាមេរ៉ាពណ៌ និងកាមេរ៉ាជម្រៅ) ឱ្យធ្វើសមកាលកម្មនិងស៊ីចង្វាក់គ្នា ដើម្បីកាត់បន្ថយភាពវៀចទ្រង់ទ្រាយនៃរូបភាព និងធានាថាទិន្នន័យដែលចាប់យកបានមកពីកាមេរ៉ាទាំងពីរត្រូវត្រួតស៊ីគ្នាបានល្អឥតខ្ចោះ។ វាដូចជាការរឹតវីសកែសម្រួលកែវយឹតឱ្យច្បាស់ល្អ និងស្របគ្នា មុននឹងយើងយកវាទៅឆ្លុះមើលវត្ថុនៅឆ្ងាយ ដើម្បីកុំឱ្យមើលទៅព្រិល ឬឃើញខុសទីតាំងពិត។
Bounding Box គឺជាស៊ុមចតុកោណកែងដែលប្រព័ន្ធកុំព្យូទ័រគូសព័ទ្ធជុំវិញវត្ថុមួយនៅក្នុងរូបភាព ដើម្បីកំណត់ព្រំដែនតំបន់ និងទំហំដែលវត្ថុនោះស្ថិតនៅ សម្រាប់ការវិភាគបន្តនៅក្នុងប្រព័ន្ធ Computer Vision។ វាដូចជាការយកប៊ិចពណ៌ក្រហមទៅគូសរង្វង់ ឬគូសប្រអប់ព័ទ្ធជុំវិញមុខរបស់នរណាម្នាក់ក្នុងចំណោមមនុស្សជាច្រើននៅក្នុងរូបថតរួម ដើម្បីបញ្ជាក់ប្រាប់គេថាជាអ្នកណាមួយឱ្យប្រាកដ។
Convolutional Neural Network គឺជាប្រភេទបណ្តាញសរសៃប្រសាទសិប្បនិម្មិតដែលពូកែខាងវិភាគទិន្នន័យជារូបភាព ដោយវាប្រើប្រាស់ស្រទាប់ច្រោះទិន្នន័យ (Filters) ជាច្រើនជាន់ដើម្បីទាញយកលក្ខណៈពិសេសៗរបស់វត្ថុ ដូចជា គែម ទម្រង់ជ្រុង ឬរាងមូលពីរូបភាពដើម។ វាដូចជាការប្រើប្រាស់កែវពង្រីកដែលរំកិលស្កេនមើលលើរូបភាពម្តងបន្តិចៗ ដើម្បីស្វែងរកលក្ខណៈពិសេសៗ មុននឹងសន្និដ្ឋានប្រមូលផ្តុំគ្នាថាវត្ថុនោះជារូបអ្វីឱ្យប្រាកដ។
Faulty Pixels ជាចំណុចភីកសែលតូចៗនៅក្នុងរូបភាពកាមេរ៉ាជម្រៅ (Depth Image) ដែលផ្តល់នូវតម្លៃ ឬទិន្នន័យខុសប្រក្រតី (ខ្ពស់ពេក ឬទាបពេកមិនស៊ីនឹងភីកសែលជុំវិញ) ដែលជាទូទៅបណ្តាលមកពីការរំខានរបស់ពន្លឺ ឬបញ្ហាបច្ចេកទេសរបស់ឧបករណ៍ចាប់សញ្ញា។ វាដូចជាចំណុចខ្មៅ ឬស្នាមប្រឡាក់តូចៗនៅលើកញ្ចក់វ៉ែនតារបស់យើង ដែលធ្វើឱ្យយើងមើលឃើញវត្ថុនៅត្រង់ចំណុចនោះខុសទម្រង់ដើម ឬគិតច្រឡំថាមានវត្ថុផ្សេងនៅទីនោះ។

៦. ប្រធានបទពាក់ព័ន្ធ (Further Reading)

អត្ថបទដែលបានបោះពុម្ពនៅលើ KhmerResearch ដែលទាក់ទងនឹងប្រធានបទនេះ៖

ប្រធានបទ និងសំណួរស្រាវជ្រាវដែលទាក់ទងនឹងឯកសារនេះ ដែលអ្នកអាចស្វែងរកបន្ថែម៖