Original Title: Plant Leaf Image Recognition Based on Convolutional Neural Network
Source: www.thaiscience.info
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

ការទទួលស្គាល់រូបភាពស្លឹករុក្ខជាតិដោយផ្អែកលើបណ្ដាញសរសៃប្រសាទកុងវ៉ុល (Convolutional Neural Network)

ចំណងជើងដើម៖ Plant Leaf Image Recognition Based on Convolutional Neural Network

អ្នកនិពន្ធ៖ Chomtip Pornpanomchai, Faculty of Information and Communication Technology, Mahidol University, Varin Pornpanomchai, Faculty of Science, Mahidol University

ឆ្នាំបោះពុម្ព៖ 2021, SWU Sci. J. Vol. 37 No. 2

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

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

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

វិធីសាស្ត្រ (The Methodology)៖ អ្នកស្រាវជ្រាវបានប្រមូលទិន្នន័យរូបភាពស្លឹករុក្ខជាតិផ្ទាល់ និងប្រើប្រាស់វិធីសាស្ត្រ Deep Learning ដើម្បីបង្ហាត់ប្រព័ន្ធក្នុងការសម្គាល់ចំណាត់ថ្នាក់រុក្ខជាតិ។

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

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

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
Convolutional Neural Network (CNN - Proposed: ResNet50)
បណ្ដាញសរសៃប្រសាទកុងវ៉ុល (CNN - ResNet50)
មានភាពងាយស្រួលក្នុងការបង្ហាត់ និងអាចទាញយកលក្ខណៈពិសេសរបស់រូបភាព (Feature extraction) ដោយស្វ័យប្រវត្តិ។ ផ្តល់អត្រាសុក្រឹតភាពខ្ពស់បំផុត។ ទាមទារសំណុំទិន្នន័យធំដើម្បីបង្ហាត់ និងអាចមានការភាន់ច្រឡំប្រសិនបើស្លឹករុក្ខជាតិមានរូបរាងស្រដៀងគ្នាខ្លាំង។ ទទួលបានអត្រាសុក្រឹតភាព (Precision) ៩៦,៩៩% និងភាពត្រឹមត្រូវ (Accuracy) ៩៦,៥៩% ក្នុងរយៈពេលដំណើរការ ១,៣៦ វិនាទី/រូបភាព។
Support Vector Machine (SVM)
ម៉ាស៊ីនវ៉ិចទ័រគាំទ្រ (SVM)
មានប្រសិទ្ធភាពខ្ពស់ក្នុងការដោះស្រាយជាមួយសំណាកទិន្នន័យតូចៗ និងការសម្គាល់លំនាំដែលមានវិមាត្រខ្ពស់និងមិនមែនលីនេអ៊ែរ។ ទាមទារការទាញយកលក្ខណៈពិសេស (ពណ៌ រូបរាង វាយនភាព) ដោយដៃ ដែលចំណាយពេលនិងស្មុគស្មាញ។ យោងតាមឯកសារស្រាវជ្រាវមុនៗ អត្រាសុក្រឹតភាពចន្លោះពី ៩២,៩៨% ទៅ ៩៨,១៣% អាស្រ័យលើចំនួនទិន្នន័យ។
K-Nearest Neighbor (KNN)
ក្បួនដោះស្រាយអ្នកជិតខាងជិតបំផុត (KNN)
ជាម៉ូដែលចាត់ថ្នាក់សាមញ្ញ ដែលគណនាចម្ងាយរវាងលក្ខណៈពិសេសដូចគ្នា និងចំនួនអ្នកជិតខាងជិតបំផុត។ ប្រសិទ្ធភាពអាចធ្លាក់ចុះនៅពេលទិន្នន័យមានទំហំធំខ្លាំង ហើយក៏ទាមទារការទាញយកលក្ខណៈពិសេសដោយដៃផងដែរ។ អត្រាសុក្រឹតភាពចន្លោះពី ៨០,១២% ទៅ ៩៧,១៨% (ផ្អែកលើការស្រាវជ្រាវចាស់ៗក្នុងឯកសារ)។
Artificial Neural Network (ANN)
បណ្ដាញសរសៃប្រសាទសិប្បនិម្មិត (ANN)
អាចរៀននិងស្គាល់លំនាំស្មុគស្មាញដែលមិនធ្លាប់ឃើញពីមុនមក បន្ទាប់ពីទទួលបានការបង្ហាត់ត្រឹមត្រូវ។ ត្រូវការការទាញយកលក្ខណៈពិសេសជាមុន (Manual feature extraction) មុនពេលបញ្ចូលទៅក្នុង Input nodes។ អត្រាសុក្រឹតភាពប្រែប្រួលខ្លាំងចាប់ពី ៦៧,៧០% ដល់ ៩៦,៦៧% អាស្រ័យលើប្រភេទលក្ខណៈពិសេសដែលបានប្រើ។

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

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

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

ការសិក្សានេះត្រូវបានធ្វើឡើងនៅក្នុងទីក្រុងបាងកក ប្រទេសថៃ ដោយប្រើប្រាស់សំណុំទិន្នន័យរុក្ខជាតិក្នុងស្រុកចំនួន ៥៤ ប្រភេទ។ ទោះបីជាប្រទេសកម្ពុជាមានអាកាសធាតុនិងប្រភេទរុក្ខជាតិស្រដៀងគ្នាក៏ដោយ ក៏ម៉ូដែលដែលបង្ហាត់ដោយទិន្នន័យនេះមិនអាចស្គាល់រុក្ខជាតិកម្រ ឬរុក្ខជាតិប្រចាំតំបន់របស់កម្ពុជាបានឡើយ។ ការណ៍នេះតម្រូវឱ្យមានការប្រមូលទិន្នន័យរុក្ខជាតិក្នុងស្រុកដោយឡែក ដើម្បីបង្កើតប្រព័ន្ធមួយដែលអាចប្រើប្រាស់ជាផ្លូវការនៅកម្ពុជា។

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

បច្ចេកវិទ្យានេះមានសក្តានុពលខ្ពស់ណាស់ក្នុងការយកមកកែច្នៃ និងអនុវត្តសម្រាប់ការសិក្សាស្រាវជ្រាវផ្នែករុក្ខសាស្ត្រ និងការអភិរក្សនៅកម្ពុជា។

ការអភិវឌ្ឍប្រព័ន្ធស្រដៀងគ្នានេះ ដោយបញ្ចូលទិន្នន័យរុក្ខជាតិរបស់ប្រទេសកម្ពុជា នឹងជួយសម្រួលដល់ការសិក្សា ក៏ដូចជាលើកកម្ពស់ការគ្រប់គ្រងធនធានធម្មជាតិប្រកបដោយភាពច្នៃប្រឌិត។

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

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

  1. សិក្សាមូលដ្ឋានគ្រឹះនៃ Deep Learning ជំនួសឱ្យការប្រើ MATLAB: ដោយសារ MATLAB មានតម្លៃថ្លៃ និស្សិតគួរចាប់ផ្តើមរៀនភាសា Python រួមជាមួយនឹងបណ្ណាល័យ TensorFlowPyTorch ដើម្បីស្វែងយល់ពីស្ថាបត្យកម្ម ResNet50 និងការកសាងម៉ូដែល Image Classification
  2. រៀបចំយុទ្ធនាការប្រមូលទិន្នន័យ (Data Collection): សហការជាមួយសាកលវិទ្យាល័យដើម្បីចុះថតរូបស្លឹករុក្ខជាតិក្នុងស្រុក (ឧទាហរណ៍៖ ស្លឹកត្នោត ស្លឹកក្រវាញ) ដោយថតទូរសព្ទដៃនៅលើផ្ទៃខាងក្រោយពណ៌ស (ក្រដាស A4) ឱ្យបានយ៉ាងហោចណាស់ ២០០ ទៅ ៥០០ រូបភាពក្នុងមួយប្រភេទ។
  3. រៀបចំនិងពង្រីកទិន្នន័យ (Data Preprocessing & Augmentation): ប្រើប្រាស់ OpenCVAlbumentations ក្នុងការកាត់ ទាញទំហំរូបភាព (Resize ទៅ 224x224 pixels) និងប្រើបច្ចេកទេស Data Augmentation (បង្វិល, ត្រឡប់) ដើម្បីពង្រីកចំនួនទិន្នន័យនិងកាត់បន្ថយបញ្ហា Overfitting
  4. បង្ហាត់ និងវាយតម្លៃម៉ូដែល (Model Training & Evaluation): ប្រើប្រាស់ Transfer Learning ជាមួយម៉ូដែល ResNet50 ដែលមានស្រាប់ ដើម្បីបង្ហាត់លើសំណុំទិន្នន័យស្លឹករុក្ខជាតិកម្ពុជា។ វាយតម្លៃប្រព័ន្ធដោយប្រើប្រាស់រង្វាស់ដូចជា Accuracy, Precision, និង Confusion Matrix ដើម្បីកំណត់កំហុសនៃការរៀនសូត្រ។
  5. អភិវឌ្ឍកម្មវិធីទូរសព្ទ (Mobile App Deployment): បំប្លែងម៉ូដែលដែលបានបង្ហាត់រួចទៅជាទម្រង់ TensorFlow Lite រួចប្រើប្រាស់ FlutterReact Native ដើម្បីបង្កើតកម្មវិធីទូរសព្ទដៃ ដែលអនុញ្ញាតឱ្យអ្នកប្រើប្រាស់ថតរូប និងស្គាល់ឈ្មោះរុក្ខជាតិភ្លាមៗ។

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

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
Convolutional Neural Network (CNN) បណ្ដាញសរសៃប្រសាទកុងវ៉ុល គឺជាប្រភេទម៉ូដែល Deep Learning ដែលត្រូវបានរចនាឡើងយ៉ាងពិសេសសម្រាប់ដំណើរការទិន្នន័យរូបភាព ដោយវាប្រើប្រាស់ស្រទាប់ច្រោះ (filters) ដើម្បីទាញយកលក្ខណៈពិសេសៗដូចជា ពណ៌ រូបរាង និងវាយនភាពនៃរូបភាពដោយស្វ័យប្រវត្តិ។ ដូចជាភ្នែក និងខួរក្បាលរបស់មនុស្សដែលសម្លឹងមើលរូបភាពមួយ ហើយអាចដឹងថាវត្ថុនោះជាអ្វីដោយផ្អែកលើទម្រង់ និងពណ៌របស់វា។
ResNet50 ជាស្ថាបត្យកម្ម CNN ដ៏ល្បីល្បាញមួយដែលមានជម្រៅ ៥០ ស្រទាប់ (Layers) ដែលអនុញ្ញាតឱ្យប្រព័ន្ធអាចរៀនពីទិន្នន័យរូបភាពរាប់លានសន្លឹកដោយមិនជួបប្រទះបញ្ហាបាត់បង់ព័ត៌មាន (Vanishing gradient) ពេលកំពុងបង្ហាត់ម៉ូដែលស្មុគស្មាញ។ ដូចជារោងចក្រដែលមានខ្សែសង្វាក់ផលិតកម្ម ៥០ ដំណាក់កាល ដើម្បីត្រួតពិនិត្យ និងវាយតម្លៃផលិតផលមួយយ៉ាងល្អិតល្អន់បំផុត។
Pooling layer ជាស្រទាប់មួយនៅក្នុង CNN ដែលមានតួនាទីបង្រួមទំហំវិមាត្រនៃរូបភាពដោយរក្សាទុកតែព័ត៌មានសំខាន់ៗបំផុត ជួយកាត់បន្ថយទំហំផ្ទុក និងបង្កើនល្បឿនក្នុងការគណនាដោយកាត់បន្ថយទិន្នន័យដែលមិនចាំបាច់។ ដូចជាការបង្រួមរូបភាព (Compress) ឱ្យតូចជាងមុន ប៉ុន្តែយើងនៅតែអាចមើលដឹងថារូបនោះជារូបអ្វីដដែល។
Rectified linear unit (ReLU) layer ជាអនុគមន៍សកម្មភាព (Activation function) នៅក្នុងបណ្ដាញសរសៃប្រសាទ ដែលមានតួនាទីផ្លាស់ប្តូររាល់តម្លៃអវិជ្ជមានទាំងអស់ឱ្យទៅជាសូន្យ (០) ដើម្បីជួយឱ្យបណ្ដាញសរសៃប្រសាទរៀនព័ត៌មានបានលឿន និងមានប្រសិទ្ធភាពជាងមុន។ ដូចជាប្រព័ន្ធចម្រោះទឹកដែលរក្សាទុកតែទឹកស្អាត (តម្លៃវិជ្ជមាន) និងកម្ចាត់ចោលរាល់កាកសំណល់ឬទឹកកខ្វក់ (តម្លៃអវិជ្ជមាន) ឱ្យក្លាយជាទទេ (សូន្យ)។
confusion matrix ជាតារាងម៉ាទ្រីសដែលប្រើសម្រាប់វាយតម្លៃដំណើរការរបស់ម៉ូដែល Machine Learning ដោយវាបង្ហាញពីចំនួនដងដែលម៉ូដែលទស្សន៍ទាយត្រូវ និងចំនួនដងដែលវាទស្សន៍ទាយខុស (ភាន់ច្រឡំ) សម្រាប់ចំណាត់ថ្នាក់នីមួយៗ។ ដូចជាតារាងពិន្ទុប្រឡងដែលបង្ហាញថាសិស្សម្នាក់ឆ្លើយត្រូវប៉ុន្មានសំណួរ និងឆ្លើយខុស (ច្រឡំចម្លើយ ខ ជាចម្លើយ ក) ប៉ុន្មានសំណួរ។
Support Vector Machine (SVM) ជាក្បួនដោះស្រាយ (Algorithm) មួយប្រភេទដែលជួយក្នុងការចាត់ថ្នាក់ទិន្នន័យ ដោយវាព្យាយាមគូសបន្ទាត់ ឬប្លង់ (Hyperplane) ដ៏ល្អបំផុតដើម្បីបំបែកក្រុមទិន្នន័យផ្សេងៗគ្នាឱ្យនៅដាច់ពីគ្នាបានឆ្ងាយបំផុតតាមដែលអាចធ្វើទៅបាន។ ដូចជាការគូសបន្ទាត់ព្រំដែនដ៏ច្បាស់លាស់មួយនៅលើដី ដើម្បីបែងចែករវាងចម្ការស្វាយ និងចម្ការចេកកុំឱ្យច្រឡំគ្នា។
Precision អត្រាសុក្រឹតភាព គឺជារង្វាស់ដែលបង្ហាញពីសមាមាត្រនៃការទស្សន៍ទាយវិជ្ជមានត្រឹមត្រូវ (True Positive) ធៀបនឹងការទស្សន៍ទាយវិជ្ជមានសរុប (True Positive + False Positive) ពោលគឺវាវាស់ថាតើម៉ូដែលទាយត្រូវកម្រិតណាពេលវាអះអាងថាត្រូវ។ ដូចជាអ្នកបាញ់ធ្នូម្នាក់ ដែលរាល់ពេលគាត់បាញ់ ព្រួញតែងតែចំគោលដៅជានិច្ច មិនងាយខុសនោះទេ។
features extraction ដំណើរការនៃការបំប្លែងទិន្នន័យរូបភាពឆៅទៅជាទម្រង់វ៉ិចទ័រ ឬលេខកូដ ដែលតំណាងឱ្យលក្ខណៈសំខាន់ៗរបស់រូបភាពនោះ (ឧទាហរណ៍៖ ទ្រង់ទ្រាយស្លឹក សរសៃស្លឹក) ដើម្បីងាយស្រួលឱ្យម៉ាស៊ីនកុំព្យូទ័រធ្វើការប្រៀបធៀប និងសម្គាល់។ ដូចជាការកត់ត្រាតែចំណុចសំខាន់ៗរបស់ជនសង្ស័យ (កម្ពស់ ទម្រង់មុខ ស្លាកស្នាម) ដើម្បីងាយស្រួលចំណាំ ជាជាងការចងចាំគ្រប់យ៉ាងនៅលើមុខ។

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

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

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