Original Title: YOLO-based Obstacle Avoidance for Drones
Source: theses.liacs.nl
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

ការជៀសវាងឧបសគ្គសម្រាប់ដ្រូនដោយផ្អែកលើ YOLO

ចំណងជើងដើម៖ YOLO-based Obstacle Avoidance for Drones

អ្នកនិពន្ធ៖ Christof W. Corsel

ឆ្នាំបោះពុម្ព៖ 2020 Leiden Institute of Advanced Computer Science

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

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

បញ្ហា (The Problem)៖ ការហោះហើរដ្រូនស្វ័យប្រវត្តិ (Autonomous UAVs) ទាមទារឱ្យមានប្រព័ន្ធជៀសវាងឧបសគ្គដែលមានប្រសិទ្ធភាព ដោយពឹងផ្អែកតែលើកាមេរ៉ាមួយគ្រាប់ (Monocular camera) ជំនួសឱ្យការប្រើប្រាស់សេនស័រធ្ងន់ៗនិងស៊ីភ្លើងច្រើនដូចជា LiDAR។

វិធីសាស្ត្រ (The Methodology)៖ ការសិក្សានេះស្នើឡើងនូវវិធីសាស្ត្រថ្មីដោយប្រើប្រាស់បណ្តាញសរសៃប្រសាទ (Convolutional Neural Networks) សម្រាប់ការរកឃើញ និងជៀសវាងឧបសគ្គ។

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

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

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
SIFT-based Size Expansion
ការជៀសវាងឧបសគ្គដោយផ្អែកលើ SIFT
អាចចាប់ទីតាំងវត្ថុប្លែកៗបានទោះមិនមានក្នុងទិន្នន័យហ្វឹកហាត់ (ឧទាហរណ៍៖ ជញ្ជាំងផ្ទះ) ដោយប្រើប្រាស់ចំណុច Keypoints នៃរូបភាព។ ល្បឿនដំណើរការយឺត ចាប់វត្ថុច្រើនរាប់បញ្ចូលជាវត្ថុតែមួយ (Single convex hull) និងមានភាពខ្សោយខ្លាំងនៅកន្លែងដែលមានផ្ទៃខាងក្រោយស្មុគស្មាញ (Textured backgrounds)។ ទទួលបានភាពត្រឹមត្រូវសរុប ៦៣,៣% និងដំណើរការក្នុងល្បឿន ១១ ស៊ុមក្នុងមួយវិនាទី (11 fps)។
YOLOv4-based Size Expansion (Proposed)
ការជៀសវាងឧបសគ្គដោយផ្អែកលើ YOLOv4 (ស្នើឡើង)
មានភាពត្រឹមត្រូវខ្ពស់ ល្បឿនលឿនជាងមុន ចាប់និងញែកវត្ថុច្រើនដាច់ពីគ្នាបានល្អ ដំណើរការល្អនៅបរិវេណខាងក្រៅ និងមានសមត្ថភាពជៀសវាងវៃឆ្លាតទៅតាមប្រភេទវត្ថុ។ មិនអាចស្គាល់វត្ថុដែលមិនមានក្នុងទិន្នន័យហ្វឹកហាត់ (MS COCO Dataset) និងអាចមានភាពរអាក់រអួលប្រសិនបើទំហំប្រអប់ (Bounding box) ប្រែប្រួលលឿនខុសប្រក្រតី។ ទទួលបានភាពត្រឹមត្រូវសរុប ៨៨,៧% និងដំណើរការក្នុងល្បឿន ១៥ ស៊ុមក្នុងមួយវិនាទី (15 fps)។

ការចំណាយលើធនធាន (Resource Cost)៖ ការអនុវត្តប្រព័ន្ធនេះទាមទារឱ្យមានកុំព្យូទ័រយួរដៃ ឬកុំព្យូទ័រលើតុដែលមានក្រាហ្វិកកាត (GPU) ខ្លាំង ដើម្បីដំណើរការទិន្នន័យវីដេអូផ្ទាល់ពីដ្រូនដោយស្វ័យប្រវត្តិ។

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

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

ការសិក្សានេះប្រើប្រាស់ទិន្នន័យ MS COCO សម្រាប់បណ្តុះបណ្តាលម៉ូដែល YOLOv4 និងត្រូវបានធ្វើតេស្តនៅក្នុងបរិស្ថានអឺរ៉ុប (សាកលវិទ្យាល័យ Leiden) ។ សម្រាប់បរិបទប្រទេសកម្ពុជា ឧបសគ្គនិងវត្ថុជាក់ស្តែងមួយចំនួន (ដូចជា រ៉ឺម៉កកង់បី សំណង់រន្ទាបណ្ដោះអាសន្ន ឬរទេះលក់ឥវ៉ាន់) អាចនឹងមិនមាននៅក្នុងទិន្នន័យហ្វឹកហាត់នេះឡើយ ដែលតម្រូវឱ្យមានការប្រមូលទិន្នន័យក្នុងស្រុកបន្ថែមដើម្បីឱ្យការជៀសវាងឧបសគ្គកាន់តែមានប្រសិទ្ធភាពខ្ពស់។

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

វិធីសាស្ត្រនេះពិតជាមានសក្តានុពលខ្ពស់សម្រាប់កម្ពុជា ដោយសារវាអនុញ្ញាតឱ្យប្រើប្រាស់ដ្រូនតម្លៃថោកនិងកាមេរ៉ាធម្មតា ជំនួសឱ្យការទិញសេនស័រតម្លៃថ្លៃៗ។

សរុបមក ការរួមបញ្ចូលបច្ចេកវិទ្យា Deep Learning ទៅក្នុងដ្រូនតម្លៃថោក ផ្តល់នូវដំណោះស្រាយដ៏ឆ្លាតវៃដែលអាចអភិវឌ្ឍទៅជាផលិតផលក្នុងស្រុកសម្រាប់បម្រើការងារស្វ័យប្រវត្តិកម្មនៅកម្ពុជាបានយ៉ាងទូលំទូលាយ។

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

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

  1. សិក្សាមូលដ្ឋានគ្រឹះនៃ Computer Vision: និស្សិតត្រូវចាប់ផ្តើមសិក្សាពីការសរសេរកូដ Python និងការប្រើប្រាស់បណ្ណាល័យ OpenCV ដើម្បីយល់ពីរបៀបនៃការទាញយករូបភាពពីកាមេរ៉ា ការចាប់យកស៊ុម (Frames) និងការប្រៀបធៀបរូបភាព។
  2. រៀនអនុវត្តប្រព័ន្ធរកឃើញវត្ថុ (Object Detection): ត្រូវសាកល្បងដំណើរការម៉ូដែល YOLOv4 ឬម៉ូដែលជំនាន់ថ្មី YOLOv8 ជាមួយនឹងកាមេរ៉ាកុំព្យូទ័រ ដើម្បីសាកល្បងចាប់យកទីតាំង (Bounding boxes) និងស្គាល់វត្ថុក្នុងពេលជាក់ស្តែង។
  3. យល់ដឹងពីក្បួនគណនាចម្ងាយ (Size Expansion Algorithm): សិក្សាពីការសរសេរក្បួនដើម្បីគណនាផលធៀបនៃទំហំប្រអប់ (Size Ratio) ពីស៊ុមមួយទៅស៊ុមមួយទៀត ដើម្បីបង្កើតជាលក្ខខណ្ឌ (Threshold) សម្រាប់ដឹងថាវត្ថុមួយកំពុងរំកិលមកជិតឬអត់។
  4. អភិវឌ្ឍនិងសាកល្បងជាមួយដ្រូនជាក់ស្តែង: ប្រើប្រាស់ដ្រូនដែលមានតម្លៃថោកដូចជា Ryze Tello ដោយភ្ជាប់វាទៅកាន់កុំព្យូទ័រ (Base Station) តាមរយៈ Wi-Fi រួចបញ្ជូនទិន្នន័យវីដេអូទៅឱ្យ YOLO វិភាគ និងសរសេរកូដបញ្ជាទិសដៅដ្រូនត្រឡប់មកវិញ។
  5. ប្រមូលនិងបណ្តុះបណ្តាលទិន្នន័យក្នុងស្រុក (Custom Model Training): ដើម្បីឱ្យប្រព័ន្ធកាន់តែមានប្រសិទ្ធភាពនៅកម្ពុជា ត្រូវប្រមូលរូបភាពវត្ថុក្នុងស្រុក (ឧ. រ៉ឺម៉កកង់បី សំណង់ឈើ) រួចប្រើប្រាស់ទិន្នន័យទាំងនេះដើម្បី Train Custom Weights សម្រាប់ម៉ូដែល YOLO ឱ្យស្គាល់ឧបសគ្គក្នុងតំបន់ឱ្យបានច្បាស់លាស់។

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

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
Monocular camera កាមេរ៉ាដែលមានឡេនតែមួយគ្រាប់ ដែលថតរូបភាពជាលក្ខណៈ២វិមាត្រ (2D) ដោយមិនមានសេនស័រវាស់ជម្រៅ ឬចម្ងាយដោយផ្ទាល់នោះទេ។ នៅក្នុងការសិក្សានេះ គេប្រើវាជាមួយក្បួនដោះស្រាយដើម្បីគណនាការប្រែប្រួលទំហំវត្ថុក្នុងគោលបំណងប៉ាន់ស្មានចម្ងាយពេលដ្រូនហោះហើរ។ ដូចជាការបិទភ្នែកម្ខាងហើយមើលទៅមុខ ដែលធ្វើឱ្យយើងពិបាកប៉ាន់ស្មានថាវត្ថុនៅឆ្ងាយឬជិត ប៉ុន្តែយើងអាចដឹងបានតាមរយៈការសង្កេតមើលទំហំរបស់វាធំឡើងៗនៅពេលវាមកជិត។
Size Expansion ក្បួនដោះស្រាយសម្រាប់ប្រៀបធៀបទំហំរបស់វត្ថុមួយពីស៊ុមរូបភាព (frame) មួយទៅស៊ុមរូបភាពបន្ទាប់។ ប្រសិនបើទំហំប្រអប់ដែលចាប់បានវត្ថុនោះ (Bounding box) រីកធំជាងមុនក្នុងអត្រាមួយខ្ពស់ វាបញ្ជាក់ថាវត្ថុនោះកំពុងរំកិលមកជិតក្នុងល្បឿនលឿន ហើយត្រូវចាត់ទុកជាឧបសគ្គដែលត្រូវជៀសវាង។ ដូចជាពេលយើងឈរនៅលើផ្លូវ ហើយឃើញរថយន្តមួយបើកមករកយើង កាលណាវាកាន់តែខិតមកជិត រូបភាពរថយន្តនោះនៅក្នុងភ្នែករបស់យើងគឺកាន់តែរីកធំឡើងៗយ៉ាងលឿន។
Convolutional Neural Networks (CNN) ប្រព័ន្ធបណ្ដាញសរសៃប្រសាទសិប្បនិម្មិតកម្រិតជ្រៅ ដែលត្រូវបានរចនាឡើងយ៉ាងពិសេសសម្រាប់វិភាគ និងសម្គាល់រូបភាព ដោយវាបំបែករូបភាពជាបណ្ដុំភីកសែល (Pixels) តូចៗដើម្បីចម្រាញ់យកទម្រង់ កែង គែម និងលក្ខណៈសម្បត្តិផ្សេងៗនៃវត្ថុយកទៅផ្ទៀងផ្ទាត់។ ដូចជាការសង្កេតមើលរបស់មួយដោយចាប់ផ្ដើមមើលពីចំណុចតូចៗ (ពណ៌ រាង កែង) រួចផ្គុំចំណុចទាំងនោះបញ្ចូលគ្នាដើម្បីទាញសេចក្តីសន្និដ្ឋានថាវាជារូបអ្វីពិតប្រាកដ (ឧទាហរណ៍៖ រូបឆ្កែ ឬឡាន)។
YOLOv4 ម៉ូដែលបញ្ញាសិប្បនិម្មិត (AI) ជំនាន់ទី៤ មានឈ្មោះពេញថា "You Only Look Once" ដែលមានមុខងារចាប់ទីតាំង និងធ្វើចំណាត់ថ្នាក់វត្ថុច្រើនប្រភេទក្នុងពេលតែមួយនៅលើវីដេអូ ឬរូបភាពក្នុងល្បឿនយ៉ាងលឿន (Real-time) និងមានភាពត្រឹមត្រូវខ្ពស់។ ដូចជាឆ្មាំយាមរហ័សរហួនម្នាក់ ដែលគ្រាន់តែក្រឡេកមើលទៅក្នុងហ្វូងមនុស្សត្រឹមមួយភ្លែត ក៏អាចប្រាប់បានភ្លាមៗថានរណានៅទីណា និងពាក់អាវពណ៌អ្វីខ្លះ ដោយមិនបាច់ដើរពិនិត្យម្ដងម្នាក់ៗឡើយ។
Bounding box ប្រអប់ចតុកោណដែលប្រព័ន្ធកុំព្យូទ័រគូសព័ទ្ធជុំវិញវត្ថុណាមួយដែលវាបានរកឃើញនៅក្នុងតំបន់រូបភាព ដើម្បីកំណត់កូអរដោនេទីតាំងឱ្យបានច្បាស់លាស់ និងកំណត់ទំហំផ្ទៃរបស់វត្ថុនោះសម្រាប់ការគណនាបន្ត។ ដូចជាការយកប៊ិចពណ៌ក្រហមទៅគូសរង្វង់ ឬប្រអប់ព័ទ្ធជុំវិញមុខមនុស្សម្នាក់ៗនៅក្នុងរូបថតជុំគ្នា ដើម្បីបញ្ជាក់ប្រាប់គេថាអ្នកណាកំពុងឈរនៅត្រង់ណា។
SIFT Scale-Invariant Feature Transform គឺជាក្បួនដោះស្រាយសម្រាប់ចាប់យកចំណុចពិសេសៗ (Keypoints) នៃរូបភាព ដើម្បីយកទៅប្រៀបធៀបគ្នារវាងស៊ុមរូបភាព។ វាមានសមត្ថភាពចំណាំវត្ថុដដែលទោះបីជារូបនោះត្រូវបានបង្វិល បង្រួម ឬពង្រីកទំហំក៏ដោយ។ ដូចជាការចំណាំប្រជ្រុយ ឬស្លាកស្នាមពិសេសនៅលើមុខនរណាម្នាក់ ដែលទោះបីជាគាត់ឈរឆ្ងាយ ឈរជិត ឬងាកមុខបន្តិច ក៏យើងនៅតែអាចចំណាំគាត់បានដដែល។
Convex hull បន្ទាត់ពហុកោណបិទជិតដែលគូសភ្ជាប់ចំណុចនៅគែមខាងក្រៅបំផុតនៃក្រុមចំណុចទិន្នន័យ (Keypoints) ទាំងអស់ បង្កើតបានជារូបរាងរួមមួយដើម្បីប៉ាន់ស្មានទំហំផ្ទៃសរុប និងទីតាំងសរុបរបស់វត្ថុដែលកាមេរ៉ាចាប់បាន។ ដូចជាការយកកៅស៊ូកងទៅចងរឹតជុំវិញក្រុមដែកគោលដែលបោះនៅលើក្ដារ ខ្សែប្រវែងខ្លីបំផុតដែលរុំព័ទ្ធទីតាំងដែកគោលទាំងអស់នោះហើយគឺជា Convex hull។
Average Precision (AP) រង្វាស់សម្រាប់វាយតម្លៃកម្រិតភាពត្រឹមត្រូវទូទៅរបស់ប្រព័ន្ធក្នុងការរកឃើញវត្ថុ ដោយគិតទៅលើតុល្យភាពរវាងការទាយត្រូវ (Precision - ចាប់បានវត្ថុពិតប្រាកដ) និងសមត្ថភាពរកឃើញវត្ថុទាំងអស់ដែលមាន (Recall - មិនរំលងវត្ថុចោល)។ ដូចជាការដាក់ពិន្ទុឱ្យអ្នកបាញ់ធ្នូ ដោយមិនត្រឹមតែមើលថាគាត់បាញ់ចំគោលដៅបានប៉ុន្មានព្រួញនោះទេ តែថែមទាំងមើលថាគាត់បាញ់ចំគ្រប់គោលដៅទាំងអស់ដែលត្រូវបាញ់ឬអត់។

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

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

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