Original Title: Lightweight Model for Leaf Classification and Disease Detection using TensorFlow
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

ម៉ូដែលស្រាលសម្រាប់ការចំណាត់ថ្នាក់ស្លឹកឈើ និងការរកឃើញជំងឺដោយប្រើ TensorFlow

ចំណងជើងដើម៖ Lightweight Model for Leaf Classification and Disease Detection using TensorFlow

អ្នកនិពន្ធ៖ Richard Hortizuela (Saint Louis University)

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

វិស័យសិក្សា៖ Machine Learning

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

បញ្ហា (The Problem)៖ ជំងឺរុក្ខជាតិបណ្តាលឱ្យមានការខាតបង់សេដ្ឋកិច្ចយ៉ាងធ្ងន់ធ្ងរក្នុងវិស័យកសិកម្ម ចំណែកឯការតាមដានដោយដៃមានការលំបាក ខណៈម៉ូដែលបច្ចេកវិទ្យាដែលមានស្រាប់ទាមទារថាមពលកុំព្យូទ័រខ្ពស់មិនស័ក្តិសមប្រើលើទូរស័ព្ទដៃ។

វិធីសាស្ត្រ (The Methodology)៖ ការសិក្សានេះស្នើឡើងនូវការបង្កើតកម្មវិធីទូរស័ព្ទដៃដោយប្រើប្រាស់បច្ចេកវិទ្យាបញ្ញាសិប្បនិម្មិតដើម្បីចំណាត់ថ្នាក់ និងរកឃើញជំងឺរុក្ខជាតិ។

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

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

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
Original Inception Model
ម៉ូដែល Inception ដើម
មានសមត្ថភាពអាចស្គាល់វត្ថុរហូតដល់ ១០០០ ប្រភេទ និងមានភាពសុក្រឹតខ្ពស់ដោយសារត្រូវបានហ្វឹកហាត់លើសំណុំទិន្នន័យដ៏ធំ (ImageNet)។ មានទំហំធំ (១៧៦ MB) ទាមទារថាមពលកុំព្យូទ័រខ្ពស់ និងមិនស័ក្តិសមក្នុងការដំឡើង ឬដំណើរការលើទូរស័ព្ទដៃឆ្លាតវៃកម្រិតមធ្យមឡើយ។ ទំហំឯកសារធំដល់ទៅ ១៧៦ MB ដែលដំណើរការយឺតលើឧបករណ៍ចល័ត។
Retrained Lightweight Model (Proposed)
ម៉ូដែលទំហំស្រាលដែលបានបណ្តុះបណ្តាលឡើងវិញ (ម៉ូដែលស្នើឡើង)
មានទំហំតូច ស៊ីមេម៉ូរី និងថាមពលថ្មតិច ដែលធ្វើឱ្យវាមានភាពងាយស្រួល និងរហ័សក្នុងការប្រតិបត្តិការផ្ទាល់នៅលើកម្មវិធីទូរស័ព្ទដៃ (Android)។ ត្រូវបានហ្វឹកហាត់លើរូបភាពមានកំណត់ (ត្រឹមតែ ៥០០ រូបភាព) ដែលអាចប៉ះពាល់ដល់ភាពសុក្រឹត ប្រសិនបើជួបរូបភាពរុក្ខជាតិប្លែកៗច្រើននៅខាងក្រៅ។ ទំហំម៉ូដែលត្រូវបានកាត់បន្ថយ ៥២.៦% (មកត្រឹម ៨៣.៣ MB) និងមានសមត្ថភាពស្គាល់ជំងឺលើរុក្ខជាតិ ៤ ប្រភេទ។
Traditional Machine Learning (SVM/K-Means)
ការសិក្សាម៉ាស៊ីនបែបប្រពៃណី (ឧ. SVM ឬ K-Means)
ប្រើប្រាស់ធនធានកុំព្យូទ័រតិចជាង Deep learning និងងាយស្រួលយល់អំពីដំណើរការនៃការវាយតម្លៃ។ ជួបប្រទះការលំបាកក្នុងការទាញយកលក្ខណៈពិសេស (Feature extraction) ជាពិសេសនៅពេលផ្ទៃខាងក្រោយនៃរូបភាពមានភាពរញ៉េរញ៉ៃ។ ទាមទារការកំណត់លក្ខណៈ និងកាត់ផ្ទៃខាងក្រោយពីរូបភាពដោយដៃ (Manual intervention)។

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

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

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

ការសិក្សានេះប្រើប្រាស់សំណុំទិន្នន័យ PlantVillage ដែលថតនៅក្នុងមន្ទីរពិសោធន៍ (Controlled environment) និងរួមបញ្ចូលរុក្ខជាតិដូចជាផ្លែប៉ោម ដែលមិនសូវដាំដុះនៅកម្ពុជា។ ការប្រើប្រាស់រូបភាពត្រឹមតែ ៥០០ សន្លឹក និងគ្មានពន្លឺ ឬផ្ទៃខាងក្រោយរញ៉េរញ៉ៃតាមចម្ការជាក់ស្តែង អាចធ្វើឱ្យម៉ូដែលនេះដំណើរការមិនបានល្អ (Low accuracy) នៅពេលកសិករខ្មែរយកទៅថតផ្ទាល់នៅតាមស្រែចម្ការ។ នេះជាចន្លោះប្រហោងទិន្នន័យដែលត្រូវបំពេញមុននឹងអាចយកមកប្រើជាផ្លូវការ។

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

ទោះបីជាមានដែនកំណត់ផ្នែកទិន្នន័យក៏ដោយ វិធីសាស្រ្តកាត់បន្ថយទំហំម៉ូដែល (Lightweight model) នេះមានសក្តានុពលខ្ពស់ខ្លាំងក្នុងការជួយដល់វិស័យកសិកម្មនៅប្រទេសកម្ពុជា។

ជារួម ការអភិវឌ្ឍម៉ូដែល AI ដែលមានទំហំតូច និងអាចដំណើរការលើទូរស័ព្ទដៃបានដោយរលូន គឺជាដំណោះស្រាយដ៏ត្រឹមត្រូវ និងអាចអនុវត្តបានជាក់ស្តែងបំផុតសម្រាប់បរិបទកសិកម្មឌីជីថលនៅកម្ពុជា។

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

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

  1. សិក្សាមូលដ្ឋានគ្រឹះនៃ Deep Learning សម្រាប់រូបភាព: ចាប់ផ្តើមរៀនអំពីការប្រើប្រាស់ភាសា Python និងបណ្ណាល័យ TensorFlowKeras ដោយផ្តោតលើការសរសេរកូដសម្រាប់ Image Classification (ចំណាត់ថ្នាក់រូបភាព)។
  2. ប្រមូលសំណុំទិន្នន័យកសិកម្មក្នុងស្រុក: កុំពឹងផ្អែកតែលើ PlantVillage dataset ទាំងស្រុង។ ត្រូវចុះទៅចម្ការផ្ទាល់ដើម្បីថតរូបភាពជំងឺស្លឹកដំឡូងមី ស្រូវ ឬស្វាយ (ទាំងមានជំងឺ និងមានសុខភាពល្អ) ក្រោមពន្លឺព្រះអាទិត្យធម្មជាតិ ដើម្បីយកមកធ្វើជាទិន្នន័យ។
  3. អនុវត្តបច្ចេកទេស Transfer Learning: ប្រើប្រាស់ម៉ូដែលដែលគេបានហ្វឹកហាត់រួចជាស្រេច (Pre-trained models) ដែលមានទំហំស្រាលស្រាប់ដូចជា MobileNetV2EfficientNet Lite (ជំនួសឱ្យ Inception ដែលរាងចាស់បន្តិច) ហើយធ្វើការ Retrain វាជាមួយទិន្នន័យក្នុងស្រុករបស់អ្នក។
  4. បង្រួមទំហំម៉ូដែលសម្រាប់ទូរស័ព្ទ (Optimization): ក្រោយពេលហ្វឹកហាត់រួច ត្រូវប្រើប្រាស់ TensorFlow Lite (TFLite) ដើម្បីបំប្លែង និងកាត់បន្ថយទំហំម៉ូដែល (តាមរយៈបច្ចេកទេស Quantization) ធានាថាវាដើរលឿននៅលើទូរស័ព្ទដៃដោយមិនស៊ីថ្ម។
  5. អភិវឌ្ឍន៍កម្មវិធីទូរស័ព្ទ និងចុះធ្វើតេស្ត: បង្កើតកម្មវិធីទូរស័ព្ទដៃដោយប្រើ Android Studio (Java/Kotlin)Flutter រួចបញ្ចូលម៉ូដែល TFLite នោះ។ បន្ទាប់មក យកកម្មវិធីនេះទៅឱ្យកសិករសាកល្បងប្រើនៅតាមចម្ការ ដើម្បីទទួលយកមតិកែលម្អ (Feedback)។

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

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
TensorFlow បណ្ណាល័យកូដបើកចំហ (Open-source library) បង្កើតដោយក្រុមហ៊ុន Google ដែលប្រើប្រាស់សម្រាប់សរសេរកម្មវិធីទាក់ទងនឹងការសិក្សាម៉ាស៊ីន (Machine Learning) និងបញ្ញាសិប្បនិម្មិត ជាពិសេសសម្រាប់ការគណនាទិន្នន័យធំៗតាមរយៈ Dataflow graphs។ ដូចជាប្រអប់ឧបករណ៍ជាងដ៏ធំមួយដែលមានឧបករណ៍ស្រាប់ៗសម្រាប់ឱ្យយើងយកទៅដំឡើង ឬបង្រៀនកុំព្យូទ័រឱ្យចេះគិតដោយខ្លួនឯង។
Convolutional Neural Network (CNN) ប្រភេទនៃក្បួនដោះស្រាយផ្នែក Deep Learning ដែលពូកែខាងវិភាគ និងសម្គាល់រូបភាព ដោយវាយកលក្ខណៈពិសេសនីមួយៗ (ដូចជា គែម ពណ៌ ទម្រង់) នៃរូបភាពមកពិនិត្យជាដំណាក់កាលៗ។ ដូចជាភ្នែក និងខួរក្បាលរបស់យើងដែលសម្លឹងមើលសន្លឹករុក្ខជាតិ រួចកត់សម្គាល់ឃើញចំណុចអុចៗ ឬពណ៌លឿង ដើម្បីដឹងថាវាមានជំងឺអ្វី។
Transfer Learning បច្ចេកទេសក្នុងការយកម៉ូដែលបញ្ញាសិប្បនិម្មិតដែលគេបានហ្វឹកហាត់រួចហើយលើកិច្ចការមួយ (ឧ. ស្គាល់សត្វ ឡាន) មកហ្វឹកហាត់បន្តបន្តិចបន្តួចដើម្បីឱ្យវាចេះធ្វើកិច្ចការថ្មីមួយទៀត (ឧ. ស្គាល់ជំងឺស្លឹកឈើ) ដែលជួយសន្សំទាំងពេលវេលា និងទិន្នន័យ។ ដូចជាសិស្សដែលចេះជិះកង់រួចហើយ ពេលទៅរៀនជិះម៉ូតូ គឺគាត់រៀនឆាប់ចេះជាងអ្នកដែលមិនធ្លាប់ចេះជិះអ្វីសោះ។
Inception model ស្ថាបត្យកម្មម៉ូដែលបណ្ដាញសរសៃប្រសាទសិប្បនិម្មិត (Neural Network architecture) មួយប្រភេទដែលមានសមត្ថភាពខ្ពស់ក្នុងការសម្គាល់វត្ថុផ្សេងៗក្នុងរូបភាព ដោយប្រើប្រាស់រចនាសម្ព័ន្ធស្មុគស្មាញដើម្បីទាញយកលក្ខណៈលម្អិតនៃរូបភាពក្នុងទំហំខុសៗគ្នា។ ដូចជាក្រុមអ្នកស៊ើបអង្កេតជាច្រើននាក់ដែលសហការគ្នាពិនិត្យមើលរូបភាពមួយសន្លឹកក្នុងពេលតែមួយ តាំងពីស្នាមតូចបំផុតរហូតដល់ទម្រង់ធំ ដើម្បីសន្និដ្ឋានថាវាជារូបអ្វីឱ្យបានជាក់លាក់។
bottleneck ជាដំណាក់កាលនៃស្រទាប់បណ្តាញ (Layer) ក្នុងម៉ូដែលមុននឹងឈានដល់ការសម្រេចចិត្តចុងក្រោយ ដែលវាធ្វើការបង្រួមទិន្នន័យរូបភាពទៅជាទម្រង់លេខតូចមួយ (Vector) ដើម្បីងាយស្រួលប្រៀបធៀប និងកាត់បន្ថយទំហំគណនា។ ដូចជាការសង្ខេបសៀវភៅមួយក្បាលក្រាស់ មកនៅត្រឹមក្រដាសមួយសន្លឹកដែលកត់ត្រាតែចំណុចសំខាន់ៗបំផុតសម្រាប់យកទៅប្រឡង។
Protobuf (.pb) ទម្រង់ឯកសារ (Protocol Buffers) ដែលផ្ទុកនូវទិន្នន័យរចនាសម្ព័ន្ធ និងទម្ងន់ (Weights) នៃម៉ូដែលដែលបានហ្វឹកហាត់រួច។ វាមានទំហំតូច និងដំណើរការលឿនជាងទម្រង់ឯកសារផ្សេងៗ ដែលស័ក្តិសមបំផុតសម្រាប់ប្រើប្រាស់លើកម្មវិធីទូរស័ព្ទ។ ដូចជាការបត់ខោអាវ និងវេចខ្ចប់វាចូលក្នុងវ៉ាលីយ៉ាងណែនល្អ ដើម្បីងាយស្រួលយួរយកទៅតាមខ្លួនពេលធ្វើដំណើរចម្ងាយឆ្ងាយ។
epoch ជាចំនួនជុំ ឬដងនៃការបញ្ជូនទិន្នន័យហ្វឹកហាត់ទាំងអស់ (Training Dataset) ទៅកាន់ម៉ូដែលបញ្ញាសិប្បនិម្មិត ដើម្បីឱ្យវារៀន និងកែតម្រូវកំហុសម្តងហើយម្តងទៀតរហូតដល់វាចងចាំបានល្អ។ ដូចជាការអានសៀវភៅមេរៀនចប់មួយក្បាល ចាត់ទុកជាមួយជុំ (មួយ Epoch) ប្រសិនបើចង់ចាំច្បាស់ត្រូវអានសារចុះសារឡើងច្រើនជុំ។

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

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

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