Original Title: Object Detection from Images using Convolutional Neural Network based on Deep Learning
Source: www.ijert.org
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

ការរកឃើញវត្ថុពីរូបភាពដោយប្រើប្រាស់បណ្ដាញសរសៃប្រសាទកុំព្យូទ័រតាមរយៈការរៀនស៊ីជម្រៅ

ចំណងជើងដើម៖ Object Detection from Images using Convolutional Neural Network based on Deep Learning

អ្នកនិពន្ធ៖ Md. Mehedi Hasan Naim (Rabindra Maitree University, Kushtia, Bangladesh), Rohani Amrin (Rabindra Maitree University, Kushtia, Bangladesh), Md. Romzan Ali (Rabindra Maitree University, Kushtia, Bangladesh), Abdullah Al Zubaer (Rabindra Maitree University, Kushtia, Bangladesh), Md. Ariful Islam (Rabindra Maitree University, Kushtia, Bangladesh)

ឆ្នាំបោះពុម្ព៖ 2020, International Journal of Engineering Research & Technology (IJERT)

វិស័យសិក្សា៖ Computer Vision / Machine Learning

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

បញ្ហា (The Problem)៖ ឯកសារនេះដោះស្រាយបញ្ហានៃការទាញយកនិងកំណត់អត្តសញ្ញាណវត្ថុដោយស្វ័យប្រវត្តិពីរូបភាព ដោយផ្ដោតលើការកែលម្អភាពត្រឹមត្រូវ និងប្រសិទ្ធភាពតាមរយៈបច្ចេកវិទ្យារៀនស៊ីជម្រៅ (Deep Learning) ។

វិធីសាស្ត្រ (The Methodology)៖ ការស្រាវជ្រាវនេះបានអភិវឌ្ឍនិងប្រើប្រាស់ទម្រង់បណ្ដាញសរសៃប្រសាទស៊ីជម្រៅ (Deep CNN architecture) ដើម្បីវិភាគ ចំណាត់ថ្នាក់ និងរកឃើញវត្ថុចេញពីសំណុំទិន្នន័យស្តង់ដារ។

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

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

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
Proposed Deep Convolutional Neural Network (CNN)
បណ្ដាញសរសៃប្រសាទកុំព្យូទ័រស៊ីជម្រៅដែលបានស្នើ
មានសមត្ថភាពខ្ពស់ក្នុងការទាញយកលក្ខណៈពិសេសពីរូបភាពដោយស្វ័យប្រវត្តិ និងមានភាពធន់ទៅនឹងការផ្លាស់ប្តូរទម្រង់រូបភាព (shift and deformation invariance)។ ទាមទារថាមពលគណនាខ្ពស់ ត្រូវការអង្គចងចាំធំ និងប្រើប្រាស់ពេលវេលាយូរក្នុងការហ្វឹកហាត់។ សម្រេចបានភាពត្រឹមត្រូវនៃទិន្នន័យផ្ទៀងផ្ទាត់ (Validation Accuracy) កម្រិត 84.89% លើសំណុំទិន្នន័យ CIFAR-10។
Traditional Computer Vision Approaches
វិធីសាស្ត្រកុំព្យូទ័រចក្ខុវិស័យបែបប្រពៃណី
ប្រើប្រាស់ថាមពលគណនាតិច និងមិនសូវទាមទារផ្នែករឹង (Hardware) ធុនធ្ងន់។ ប្រឈមនឹងបញ្ហាគម្លាតអត្ថន័យ (Semantic gap) រវាងព័ត៌មានកម្រិតភិចសែលនិងការយល់ដឹងរបស់មនុស្ស ធ្វើឱ្យភាពត្រឹមត្រូវមានកម្រិតទាប។ មិនមានលទ្ធផលជាក់លាក់ត្រូវបានបង្ហាញ ប៉ុន្តែត្រូវបានលើកឡើងថាមិនសូវមានប្រសិទ្ធភាពធៀបនឹង Deep Learning នាពេលបច្ចុប្បន្ន។

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

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

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

ការសិក្សានេះប្រើប្រាស់សំណុំទិន្នន័យស្តង់ដារ CIFAR-10 ដែលមានរូបភាពទំហំតូចៗបំផុត (32x32) និងមានចំណាត់ថ្នាក់វត្ថុទូទៅដូចជា ឡាន សត្វឆ្មា និងយន្តហោះ។ វាមិនមានផ្ទុករូបភាពជាក់លាក់នៃបរិបទប្រទេសកម្ពុជា ដូចជារ៉ឺម៉កកង់បី ទិដ្ឋភាពផ្លូវថ្នល់ក្នុងស្រុក ឬលក្ខខណ្ឌអាកាសធាតុជាក់ស្តែងនោះទេ ដែលទាមទារការប្រមូលទិន្នន័យក្នុងស្រុកបន្ថែមសម្រាប់ការប្រើប្រាស់ជាផ្លូវការ។

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

ទោះបីជាម៉ូដែលក្នុងឯកសារនេះជាការសាកល្បងកម្រិតមូលដ្ឋាន ប៉ុន្តែវិធីសាស្ត្រ CNN នេះមានសក្តានុពលខ្ពស់សម្រាប់កែច្នៃនិងអនុវត្តនៅក្នុងប្រទេសកម្ពុជា។

ជារួម បច្ចេកវិទ្យា CNN នេះគឺជាមូលដ្ឋានគ្រឹះដ៏សំខាន់ ប៉ុន្តែភាពជោគជ័យនៃការអនុវត្តក្នុងពិភពពិតនៅកម្ពុជា គឺអាស្រ័យលើការវិនិយោគលើ GPU និងការកសាងសំណុំទិន្នន័យក្នុងស្រុកដែលមានគុណភាពខ្ពស់។

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

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

  1. សិក្សាមូលដ្ឋានគ្រឹះនៃ Deep Learning: និស្សិតគប្បីចាប់ផ្តើមរៀនភាសា Python និងបណ្ណាល័យកូដដូចជា TensorFlowPyTorch ដើម្បីយល់ពីរបៀបបង្កើតបណ្ដាញ CNN និងយន្តការ Backpropagation ។
  2. អនុវត្តផ្ទាល់ជាមួយសំណុំទិន្នន័យមូលដ្ឋាន: សាកល្បងសរសេរកូដហ្វឹកហាត់ម៉ូដែលលើសំណុំទិន្នន័យ CIFAR-10 ដោយខ្លួនឯង ដោយប្រើប្រាស់ Google Colab ដែលផ្តល់ជូនសេវា GPU ដោយឥតគិតថ្លៃសម្រាប់ការសាកល្បង។
  3. ប្រមូលនិងរៀបចំទិន្នន័យក្នុងស្រុក (Local Dataset): ចាប់ផ្តើមប្រមូលរូបភាពវត្ថុជាក់ស្តែងនៅកម្ពុជា (ឧទាហរណ៍៖ ស្លាកលេខឡាន រ៉ឺម៉កកង់បី) រួចធ្វើការចំណាំប្រអប់វត្ថុ (Bounding Box Labeling) ដោយប្រើឧបករណ៍ដូចជា LabelImgRoboflow
  4. សាកល្បងម៉ូដែលរកឃើញវត្ថុកម្រិតខ្ពស់ (Advanced Object Detection): បន្តសិក្សានិងអនុវត្តការតម្លើងម៉ូដែលទំនើបៗនិងមានល្បឿនលឿនដូចជា YOLO (You Only Look Once) ជំនួសឲ្យ CNN ធម្មតា សម្រាប់ការរកឃើញវត្ថុក្នុងវីដេអូផ្ទាល់ (Real-time Video Detection)។
  5. ដាក់ពង្រាយម៉ូដែលសម្រាប់ប្រើប្រាស់ជាក់ស្តែង (Deployment): ទាញយកម៉ូដែលដែលបានហ្វឹកហាត់រួច ទៅដំណើរការលើឧបករណ៍ខ្នាតតូចដូចជា Raspberry PiNVIDIA Jetson Nano ភ្ជាប់ជាមួយកាមេរ៉ា ដើម្បីបង្កើតជាប្រព័ន្ធតាមដានវត្ថុខ្នាតតូចមួយដែលអាចប្រើការបាន។

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

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
Convolutional Neural Network ជាប្រភេទនៃបណ្ដាញសរសៃប្រសាទសិប្បនិម្មិតកម្រិតជ្រៅ ដែលត្រូវបានរចនាឡើងជាពិសេសសម្រាប់វិភាគ និងទាញយកលក្ខណៈពិសេសពីទិន្នន័យរូបភាព (ដូចជាទម្រង់ ពណ៌ និងគែម) តាមរយៈការប្រើប្រាស់ប្រតិបត្តិការគណិតវិទ្យា Convolution ។ ដូចជាកែវពង្រីកដែលរំកិលបន្តិចម្តងៗឆ្លងកាត់រូបភាពទាំងមូល ដើម្បីស្វែងរកចំណុចសំខាន់ៗ និងកំណត់សម្គាល់រូបរាងរបស់វត្ថុ។
Back propagation ជាក្បួនដោះស្រាយសម្រាប់ហ្វឹកហាត់បណ្ដាញសរសៃប្រសាទសិប្បនិម្មិត ដោយគណនាកម្រិតកំហុសពីលទ្ធផលទស្សន៍ទាយ រួចបញ្ជូនព័ត៌មានកំហុសនោះថយក្រោយវិញ ដើម្បីកែតម្រូវទម្ងន់ទិន្នន័យ (weights) នៅក្នុងស្រទាប់នីមួយៗឱ្យកាន់តែត្រឹមត្រូវ។ ដូចជាសិស្សដែលធ្វើលំហាត់ខុស ហើយគ្រូប្រាប់ពីកំហុសនោះ ដើម្បីឱ្យសិស្សត្រឡប់ទៅរកមើលកន្លែងខុស និងកែតម្រូវការគិតរបស់ខ្លួនឡើងវិញនៅពេលក្រោយ។
gradient descent ជាវិធីសាស្ត្រគណិតវិទ្យាក្នុងការធ្វើឱ្យប្រសើរឡើង (Optimization) ដែលស្វែងរកតម្លៃទាបបំផុតនៃអនុគមន៍កំហុស (Loss Function) ដោយធ្វើការផ្លាស់ប្តូរតម្លៃប៉ារ៉ាម៉ែត្របន្តិចម្តងៗក្នុងទិសដៅផ្ទុយពីភាពជម្រាលនៃកំហុសនោះ។ ដូចជាមនុស្សបិទភ្នែកដើរចុះពីលើភ្នំ ដោយស្ទាបរកទិសដៅណាដែលជម្រាលចុះក្រោមខ្លាំងជាងគេរហូតដល់បាតជ្រលងភ្នំ (កន្លែងដែលកំហុសតិចបំផុត)។
learning rate ជាប៉ារ៉ាម៉ែត្រគ្រប់គ្រង (Hyperparameter) ដែលកំណត់ទំហំនៃជំហាននីមួយៗ នៅពេលដែលម៉ូដែលធ្វើការអាប់ដេត ឬកែតម្រូវទម្ងន់ទិន្នន័យរបស់វាក្នុងអំឡុងពេលហ្វឹកហាត់។ បើធំពេកអាចធ្វើឱ្យខុសគោលដៅ បើតូចពេកស៊ីពេលយូរ។ ដូចជាប្រវែងនៃជំហានដែលយើងបោះនៅពេលដើរចុះភ្នំ បើបោះជំហានធំពេកអាចរំលងគោលដៅ បើបោះជំហានតូចពេកប្រើពេលយូរទើបទៅដល់។
max pooling ជាប្រតិបត្តិការបង្រួមទំហំទិន្នន័យនៅក្នុងបណ្ដាញ CNN ដោយជ្រើសរើសយកតែតម្លៃដែលធំបំផុតចេញពីតំបន់តូចៗនៃទិន្នន័យរូបភាព ដើម្បីកាត់បន្ថយចំនួនប៉ារ៉ាម៉ែត្រនៃការគណនា និងរក្សាទុកតែលក្ខណៈពិសេសលេចធ្លោ។ ដូចជាការសង្ខេបអត្ថបទមួយផ្ទាំង ដោយជ្រើសរើសយកតែពាក្យគន្លឹះសំខាន់ៗបំផុតមកទុក ដើម្បីងាយស្រួលចំណាំនិងមិនចំណាយពេលអានច្រើន។
dropout ជាបច្ចេកទេសការពារម៉ូដែលកុំឱ្យទន្ទេញទិន្នន័យចាំពេក (Overfitting) ដោយធ្វើការបិទ ឬមិនអើពើចំពោះណឺរ៉ូន (neurons) មួយចំនួនដោយចៃដន្យ ក្នុងកំឡុងពេលនៃការហ្វឹកហាត់។ ដូចជាការបង្វឹកកីឡាករដោយបិទភ្នែកគាត់ម្ខាងម្តងម្កាល ដើម្បីឱ្យគាត់ចេះពឹងផ្អែកលើញ្ញាណផ្សេងៗទៀត ជៀសវាងការពឹងផ្អែកតែលើសមត្ថភាពណាមួយ។
Confusion matrix ជាតារាងសម្រាប់វាយតម្លៃប្រសិទ្ធភាពនៃម៉ូដែលចំណាត់ថ្នាក់ ដែលបង្ហាញសរុបនូវចំនួននៃការទស្សន៍ទាយបានត្រឹមត្រូវ និងការទស្សន៍ទាយខុសច្រឡំគ្នា ធៀបទៅនឹងទិន្នន័យជាក់ស្តែងនៃប្រភេទនីមួយៗ។ ដូចជាតារាងពិន្ទុដែលបង្ហាញថា តើសិស្សឆ្លើយត្រូវប៉ុន្មានសំណួរ និងមានភាពភាន់ច្រឡំគ្នាប៉ុន្មានដង (ឧទាហរណ៍៖ មើលរូបឆ្មា តែឆ្លើយថាជាឆ្កែអស់ ៣ ដង)។
soft max ជាអនុគមន៍សកម្មភាព (Activation function) ដែលភាគច្រើនប្រើនៅស្រទាប់ចុងក្រោយបង្អស់នៃបណ្ដាញ ដើម្បីបំប្លែងលទ្ធផលលេខទៅជាតម្លៃប្រូបាប៊ីលីតេ ដែលបូកបញ្ចូលគ្នាទាំងអស់ស្មើ ១ (ឬ ១០០%) សម្រាប់កំណត់ប្រភេទនៃវត្ថុណាមួយ។ ដូចជាការបែងចែកនំមួយដុំទៅឱ្យវត្ថុ ១០ ប្រភេទ ដោយប្រាប់ពីភាគរយភាពច្បាស់លាស់ (ឧទាហរណ៍៖ ម៉ូដែលប្រាប់ថាមានភាគរយ ៩០% ជារូបឡាន និង ៥% ជារូបកង់)។

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

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

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