Original Title: Implementation and evaluation of object detection using neural networks for use in an automated optical rocket tracking system
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

ការអនុវត្ត និងការវាយតម្លៃនៃការរកឃើញវត្ថុដោយប្រើប្រាស់បណ្ដាញសរសៃប្រសាទសិប្បនិម្មិត សម្រាប់ប្រើប្រាស់ក្នុងប្រព័ន្ធតាមដានរ៉ុក្កែតអុបទិកស្វ័យប្រវត្តិ

ចំណងជើងដើម៖ Implementation and evaluation of object detection using neural networks for use in an automated optical rocket tracking system

អ្នកនិពន្ធ៖ David Baldsiefen (Hanoi University of Science and Technology / Julius-Maximilians-Universität Würzburg)

ឆ្នាំបោះពុម្ព៖ 2022

វិស័យសិក្សា៖ Computer Science / Robotics

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

បញ្ហា (The Problem)៖ ការស្រាវជ្រាវនេះមានគោលបំណងអភិវឌ្ឍប្រព័ន្ធដំណើរការរូបភាពផ្អែកលើបណ្ដាញសរសៃប្រសាទ (neural networks) ដែលមានល្បឿនលឿន និងភាពសុក្រឹតខ្ពស់ សម្រាប់ស្វែងរក និងតាមដានរ៉ុក្កែតម៉ូដែលក្នុងល្បឿនលឿនដោយស្វ័យប្រវត្តិ។

វិធីសាស្ត្រ (The Methodology)៖ អ្នកស្រាវជ្រាវបានធ្វើការប្រៀបធៀបម៉ូដែលវីដេអូកុំព្យូទ័រផ្សេងៗ បង្កើតទិន្នន័យហ្វឹកហាត់ផ្ទាល់ខ្លួន និងអនុវត្តប្រព័ន្ធនេះនៅលើម៉ូឌុលកុំព្យូទ័រខ្នាតតូច។

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

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

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
YOLOv5m custom (FP16, Shared Memory)
ម៉ូដែល YOLOv5m ហ្វឹកហាត់ផ្ទាល់ខ្លួន (កម្រិត FP16, ប្រើអង្គចងចាំរួម)
មានភាពសុក្រឹតខ្ពស់បំផុតក្នុងការស្វែងរកគោលដៅ និងដំណើរការបានលឿនជាងតម្រូវការគោល (50fps) ដោយកាត់បន្ថយភាពយឺតយ៉ាវនៃការបញ្ជូនទិន្នន័យ។ ត្រូវការទំហំផ្ទុក និងថាមពលគណនាច្រើនជាងម៉ូដែលខ្នាតតូច ព្រមទាំងពិបាកក្នុងការសរសេរកូដប្រើប្រាស់អង្គចងចាំរួម។ ល្បឿន 50.0 fps, ភាពយឺតយ៉ាវ 18.30ms, និងទស្សន៍ទាយត្រឹមត្រូវ 90.4% (Most confident prediction)។
YOLOX-S base (FP16, Shared Memory)
ម៉ូដែល YOLOX-S មូលដ្ឋាន (កម្រិត FP16, ប្រើអង្គចងចាំរួម)
មានល្បឿនលឿនខ្លាំង និងប្រើពេលដំណើរការក្រោយ (Post-processing) តិចតួចបំផុត ដែលអនុញ្ញាតឱ្យដំណើរការដល់ល្បឿន 84fps ដោយមិនបាត់បង់ស៊ុម (Frames)។ ភាពសុក្រឹត (mAP) ទាបជាងម៉ូដែល YOLOv5m បន្តិចបន្តួច។ ល្បឿន 50.0 fps (អាចឡើងដល់ 84fps), ភាពយឺតយ៉ាវត្រឹមតែ 12.60ms ប៉ុណ្ណោះ។
ROS Publisher/Subscriber Pipeline
ប្រព័ន្ធបញ្ជូននិងទទួលទិន្នន័យស្តង់ដាររបស់ ROS
ងាយស្រួលក្នុងការរៀបចំ មានភាពបត់បែនខ្ពស់ និងស្របតាមស្តង់ដារនៃការអភិវឌ្ឍប្រព័ន្ធមនុស្សយន្ត (ROS)។ បង្កើតឱ្យមានភាពយឺតយ៉ាវ (Latency bottleneck) នៅពេលដំណើរការក្នុងល្បឿនស៊ុមខ្ពស់ ដែលបណ្តាលឱ្យបាត់បង់ទិន្នន័យរូបភាព (Dropped frames)។ ភាពយឺតយ៉ាវ 19.35ms (សម្រាប់ YOLOv5m) ប៉ុន្តែងាយនឹងបាត់បង់ស៊ុមរូបភាពនៅពេលដំណើរការលើសពី 50fps។
FP32 Precision Models
ការប្រើប្រាស់ម៉ូដែលកម្រិតភាពច្បាស់ FP32
រក្សាបាននូវភាពសុក្រឹតនៃម៉ូដែលដើមទាំងស្រុងដោយមិនមានការបាត់បង់ទិន្នន័យកំឡុងពេលបំប្លែង។ ដំណើរការយឺតខ្លាំងមែនទែន មិនស័ក្តិសមសម្រាប់ការប្រើប្រាស់ក្នុងពេលវេលាជាក់ស្តែង (Real-time) និងប្រើប្រាស់ធនធានច្រើន។ ភាពយឺតយ៉ាវ 54.47ms និងល្បឿនត្រឹមតែ 23.0 fps ប៉ុណ្ណោះ (បរាជ័យក្នុងការបំពេញគោលដៅ 50fps)។

ការចំណាយលើធនធាន (Resource Cost)៖ ការអនុវត្តប្រព័ន្ធនេះទាមទារផ្នែករឹងដែលមានសមត្ថភាពគណនាខ្ពស់សម្រាប់ការដំណើរការ AI ក្នុងពេលវេលាជាក់ស្តែង និងចំណេះដឹងផ្នែកទន់ស៊ីជម្រៅក្នុងការបង្កើនល្បឿនកូដកម្មវិធី។

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

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

សំណុំទិន្នន័យដែលប្រើក្នុងការស្រាវជ្រាវនេះ ត្រូវបានប្រមូលពីគម្រោង T-REX នៅក្នុងទ្វីបអឺរ៉ុប (អាល្លឺម៉ង់/អូទ្រីស) ដែលមានស្ថានភាពអាកាសធាតុ ពន្លឺ និងទេសភាពខុសពីតំបន់ត្រូពិច។ សម្រាប់ប្រទេសកម្ពុជា ប្រសិនបើប្រព័ន្ធនេះត្រូវបានយកមកប្រើប្រាស់ វាទាមទារឱ្យមានការប្រមូលទិន្នន័យហ្វឹកហាត់ថ្មីដែលឆ្លុះបញ្ចាំងពីបរិស្ថានជាក់ស្តែង ទេសភាពក្នុងស្រុក និងប្រភេទវត្ថុគោលដៅដែលចង់តាមដាន ដើម្បីធានាបាននូវភាពត្រឹមត្រូវខ្ពស់។

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

ទោះបីជាប្រទេសកម្ពុជាមិនមានកម្មវិធីបង្ហោះរ៉ុក្កែតអវកាសក្ដី ក៏បច្ចេកវិទ្យាតាមដានវត្ថុក្នុងល្បឿនលឿននេះមានអត្ថប្រយោជន៍ និងសក្តានុពលខ្ពស់សម្រាប់ការប្រើប្រាស់ក្នុងវិស័យផ្សេងៗ។

ជារួម វិធីសាស្ត្រនៃការប្រើប្រាស់បណ្ដាញសរសៃប្រសាទកម្រិតស្រាលនៅលើឧបករណ៍ខ្នាតតូច គឺជាគំរូដ៏មានតម្លៃសម្រាប់អ្នកស្រាវជ្រាវកម្ពុជាក្នុងការអភិវឌ្ឍប្រព័ន្ធកុំព្យូទ័រចក្ខុ (Computer Vision) ដែលអាចចល័តបាន និងមានតម្លៃសមរម្យ។

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

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

  1. សិក្សាមូលដ្ឋានគ្រឹះនៃកុំព្យូទ័រចក្ខុ និង AI: និស្សិតត្រូវចាប់ផ្តើមសិក្សាពីទ្រឹស្តីនៃ Convolutional Neural Networks (CNNs) និងអនុវត្តការចាប់យករូបភាពដោយប្រើប្រាស់ OpenCV ព្រមទាំងសាកល្បងបង្កើតម៉ូដែលសាមញ្ញជាមួយ PyTorchTensorFlow
  2. ការប្រមូល និងរៀបចំទិន្នន័យ (Data Annotation): ប្រមូលរូបភាពវីដេអូនៃវត្ថុដែលចង់តាមដាន (ឧទាហរណ៍៖ ដ្រូន ឬយានយន្ត) ក្នុងបរិបទប្រទេសកម្ពុជា រួចធ្វើការគូសប្រអប់សម្គាល់ (Bounding boxes) ដោយប្រើប្រាស់ឧបករណ៍ដូចជា CVAT (Computer Vision Annotation Tool)Roboflow
  3. ហ្វឹកហាត់ម៉ូដែលស្វែងរកវត្ថុ (Object Detection): ប្រើប្រាស់ទិន្នន័យដែលបានរៀបចំរួច ដើម្បីហ្វឹកហាត់ម៉ូដែលរហ័សដូចជា YOLOv5YOLOX ដោយផ្តោតលើការកែសម្រួល Hyperparameters ដើម្បីទទួលបានភាពសុក្រឹតខ្ពស់ (mAP)។
  4. សិក្សាពីប្រព័ន្ធមនុស្សយន្ត និងការបង្កើនល្បឿនម៉ូដែល: រៀនពីរបៀបសរសេរកម្មវិធីក្នុង ROS (Robot Operating System) ដើម្បីបញ្ជាម៉ូទ័រកាមេរ៉ា និងប្រើប្រាស់ TensorRT ដើម្បីបំប្លែងម៉ូដែលទៅជាកម្រិត FP16 សម្រាប់ដំណើរការលើឧបករណ៍ NVIDIA Jetson ក្នុងល្បឿនលឿន។
  5. អភិវឌ្ឍស្ថាបត្យកម្មកូដកម្រិតខ្ពស់ (C++ Optimization): ដើម្បីបំបាត់ភាពយឺតយ៉ាវ (Latency) និស្សិតត្រូវរៀនសរសេរកូដ C++ ដោយប្រើប្រាស់បច្ចេកទេស boost::interprocess សម្រាប់បង្កើត Shared Memory ដែលអនុញ្ញាតឱ្យកាមេរ៉ា និង AI ផ្លាស់ប្តូរទិន្នន័យគ្នាបានលឿនបំផុត។

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

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
TensorRT កម្មវិធី (SDK) របស់ក្រុមហ៊ុន NVIDIA ដែលត្រូវបានប្រើប្រាស់ដើម្បីបង្កើនល្បឿនដំណើរការបណ្ដាញសរសៃប្រសាទសិប្បនិម្មិត (AI) នៅលើអង្គគណនាក្រាហ្វិក (GPU) សម្រាប់ការប្រើប្រាស់ក្នុងពេលវេលាជាក់ស្តែងដោយបង្រួមទំហំទិន្នន័យ។ ដូចជាជាងកែច្នៃដែលជួយកែសម្រួលម៉ាស៊ីនឡានធម្មតាឱ្យក្លាយជាឡានប្រណាំងដែលអាចរត់បានលឿនបំផុត។
Intersection over Union (IoU) រង្វាស់សម្រាប់វាស់ភាពត្រឹមត្រូវនៃប្រអប់សម្គាល់វត្ថុ (Bounding box) ដោយគណនាផ្ទៃត្រួតស៊ីគ្នារវាងប្រអប់ដែល AI ទាយ និងប្រអប់ពិតប្រាកដ ចែកនឹងផ្ទៃសរុបនៃប្រអប់ទាំងពីរ។ ដូចជាការវាស់ថាតើគម្របឆ្នាំងគ្របបានជិតល្អត្រួតស៊ីគ្នាប៉ុណ្ណាទៅនឹងមាត់ឆ្នាំងពិតប្រាកដ។
Robot Operating System (ROS) ប្រព័ន្ធប្រតិបត្តិការ និងបណ្តុំកម្មវិធីកូដបើកចំហដែលជួយសម្រួលដល់ការសរសេរកម្មវិធីបញ្ជាមនុស្សយន្ត ដោយភ្ជាប់ផ្នែកផ្សេងៗដូចជា កាមេរ៉ា ម៉ូទ័រ និង AI ឱ្យធ្វើការ និងផ្លាស់ប្តូរទិន្នន័យជាមួយគ្នា។ ដូចជាប្រព័ន្ធសរសៃប្រសាទកណ្តាលដែលចាំជួយសម្របសម្រួលឱ្យភ្នែក (កាមេរ៉ា) ដៃជើង (ម៉ូទ័រ) និងការគិត (AI) ធ្វើការស៊ីចង្វាក់គ្នា។
Shared Memory បច្ចេកទេសក្នុងវិទ្យាសាស្ត្រកុំព្យូទ័រដែលអនុញ្ញាតឱ្យកម្មវិធី (Processes) ច្រើនអាចចូលមើល និងប្រើប្រាស់ទិន្នន័យក្នុងអង្គចងចាំតែមួយរួមគ្នា ដើម្បីកាត់បន្ថយភាពយឺតយ៉ាវដែលបណ្តាលមកពីការចម្លងបញ្ជូនទិន្នន័យចុះឡើង។ ដូចជាការដាក់ឯកសារនៅលើតុរួមមួយដែលបុគ្គលិកគ្រប់គ្នាអាចអាននិងសរសេរបានភ្លាមៗ ដោយមិនបាច់រង់ចាំផ្ញើអ៊ីមែលទៅម្នាក់ម្តងៗ។
Latency រយៈពេលដែលប្រព័ន្ធកុំព្យូទ័រប្រើប្រាស់ដើម្បីដំណើរការរូបភាពមួយសន្លឹក គិតចាប់ពីពេលកាមេរ៉ាចាប់យករូបភាពរហូតដល់ពេលប្រព័ន្ធបញ្ចេញលទ្ធផលរកឃើញ។ ដូចជារយៈពេលដែលអ្នកត្រូវចំណាយគិត ចាប់ពីពេលឮសំណួររហូតដល់ពេលអ្នកអាចឆ្លើយចេញមកក្រៅ។
Throughput ទំហំការងារ ឬចំនួនស៊ុមរូបភាព (Frames) សរុបដែលប្រព័ន្ធអាចដំណើរការបានពេញលេញក្នុងរយៈពេលមួយវិនាទី (គិតជាស៊ុមក្នុងមួយវិនាទី - fps)។ ដូចជាចំនួននំប៉័ងដែលរោងចក្រមួយអាចផលិតបានរួចរាល់ក្នុងរយៈពេលមួយម៉ោង។
Convolutional Neural Networks (CNNs) ប្រភេទបណ្ដាញសរសៃប្រសាទសិប្បនិម្មិតដែលត្រូវបានរចនាឡើងយ៉ាងពិសេសសម្រាប់ការវិភាគរូបភាព ដោយប្រើប្រាស់បច្ចេកទេសស្កេនខ្នាតតូច (Kernel/Filter) ដើម្បីទាញយកលក្ខណៈពិសេសដូចជា ទម្រង់ គែម និងផ្ទៃរូបភាព។ ដូចជាមនុស្សម្នាក់ប្រើកែវពង្រីកដើរស្កេនមើលផ្ទាំងគំនូរម្តងមួយក្រឡាៗ ដើម្បីរាវរកមើលថាតើមានវត្ថុអ្វីខ្លះលាក់នៅក្នុងនោះ។
mean Average Precision (mAP) រង្វាស់ស្តង់ដារសកលសម្រាប់វាយតម្លៃសមត្ថភាពទូទៅរបស់ម៉ូដែល AI ក្នុងការស្វែងរកវត្ថុ ដោយគិតមធ្យមភាគនៃភាពសុក្រឹត (Precision) និងសមត្ថភាពស្វែងរកឃើញ (Recall) លើគ្រប់ប្រភេទវត្ថុទាំងអស់ក្នុងសំណុំទិន្នន័យ។ ដូចជាពិន្ទុមធ្យមសរុបប្រចាំឆ្នាំរបស់សិស្សដែលវាស់ស្ទង់ថាតើសិស្សនោះឆ្លើយបានត្រឹមត្រូវនិងគ្រប់ជ្រុងជ្រោយកម្រិតណាលើគ្រប់មុខវិជ្ជាទាំងអស់។

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

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

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