|
|
||
|---|---|---|
| .. | ||
| lab | ||
| ObjectDetection.ipynb | ||
| README.md | ||
README.md
ការរកឃើញវត្ថុ
ម៉ូដែលចាត់ថ្នាក់រូបភាព ដែលយើងបានប្រើរហូតមកដល់ឡើយ បានយករូបភាពមួយ ហើយបង្កើតលទ្ធផលជាក្រុមវិនិច្ឆ័យមួយ ដូចជា ចំណាត់ថ្នាក់ 'លេខ' ក្នុងបញ្ហា MNIST។ ទោះបីជាយ៉ាងណាក៏ដោយ នៅក្នុងករណីជាច្រើន យើងមិនត្រឹមតែចង់ដឹងថារូបភាព នោះបង្ហាញវត្ថុទេ - យើងចង់អាចកំណត់ទីតាំងពេញលេញរបស់វា។ នេះគឺជាចំណុចដ៏សំខាន់នៃ ការរកឃើញវត្ថុ។
សំណួរមុខបង្ហាត់
រូបពី គេហទំព័រ YOLO v2
វិធីសាស្រ្តសាមញ្ញសម្រាប់ការរកឃើញវត្ថុ
ហ្មត់ដើម្បីស្វែងរកចម្លែកនៅលើរូបភាពមួយ វិធីសាស្រ្តសាមញ្ញសម្រាប់ការរកឃើញវត្ថុអាចមានដូចខាងក្រោម៖
- បំបែករូបភាពទៅជាចំនួនផ្ទៃតូចៗ
- ប្រតិបត្តិចាត់ថ្នាក់រូបភាពលើផ្ទៃតូចនីមួយៗ។
- ផ្ទៃតូចដែលបង្កើតអាស៊ីវ២០១យស័គ្នាថាប់ខ្ពស់គួរត្រូវបានគិតថាមានវត្ថុដែលត្រូវបានស្នើសុំ។
រូបពី សៀវភៅកិច្ចវាយតម្លៃ
ទោះជាក៏ដោយ វិធីសាស្រ្តនេះមិនមែនល្អទេ ព្រោះវាគ្រាន់តែអនុញ្ញាតឲ្យកម្មវិធីកំណត់ប្រអប់ដែកដោះថ្លៃរបស់វត្ថុបានយ៉ាងមិនច្បាស់លាស់។ សម្រាប់ទីតាំងពិតប្រាកដជាងនេះ យើងត្រូវបើកការប៉ាន់ស្មានចំនួន ចុះបញ្ជាក់ ដើម្បីទាយទ្រង់ទ្រាយនៃប្រអប់ដែកដោះថ្លៃ - ហើយសម្រាប់វា យើងត្រូវការបណ្ដុំទិន្នន័យជាក់លាក់។
ការចុះបញ្ជាក់សម្រាប់ការរកឃើញវត្ថុ
បទបង្ហាញនេះ មានការណែនាំយ៉ាងល្អបំព្រងសម្រាប់រកឃើញរាងកាយ។
ឯកសារទិន្នន័យសម្រាប់ការរកឃើញវត្ថុ
អ្នកប្រហែលជាគួរបានជួបប្រទៈឯកសារទិន្នន័យដូចខាងក្រោមសម្រាប់ការងារនេះ៖
- PASCAL VOC - 20 ចំណាត់ថ្នាក់
- COCO - វត្ថុទូទៅនៅក្នុងបរិបទ។ មាន 80 ចំណាត់ថ្នាក់ ប្រអប់ដែកដោះថ្លៃ និងម៉ាសបំបែក
គោលដៅសម្រាប់ការរកឃើញវត្ថុ
ការបន្តិតគ្នានៃការចូលគ្នា
ពេលសម្រាប់ចាត់ថ្នាក់រូបភាព វាប្រសើរងាយស្រួលវាស់ថាតើកម្មវិធីបញ្ចប់ល្អទេ ក្រោយមកសម្រាប់ការរកឃើញវត្ថុ យើងត្រូវវាស់ទាំងត្រឹមត្រូវនៃចំណាត់ថ្នាក់ ក៏ដូចជាការច្បាស់លាស់នៃទីតាំងប្រអប់ដែកដោះថ្លៃ។ សម្រាប់ចំណុចចុងក្រោយនេះ យើងប្រើអ្វីដែលហៅថា ការបន្តិតគ្នានៃការចូលគ្នា (IoU), ដែលវាស់ថាតើប្រអប់ពីរឬផ្ទៃពីរប្រហែលគ្នាពីរប៉ុណ្ណា។
រូប 2 ពី បទបង្ហាញល្អឥតខ្ចោះលើ IoU
គំនិតគឺងាយៗ - យើងចែកផ្ទៃនៃការបន្តិតគ្នារវាងរូបរាងពីរដោយផ្ទៃនៃសមាសធាតុរបស់ពួកវា។ សម្រាប់ផ្ទៃដូចគ្នា ពិតប្រាកដថា IoU នឹងស្មើ 1 ខណៈដែលសម្រាប់ផ្ទៃមិនរំលោភគ្នា យ៉ាងស្រឡះវានឹងស្មើ 0។ គ្រាន់តែវានឹងប្រែប្រួលពី 0 ទៅ 1។ យើងធម្មតាទៅគិតលទ្ធផលតែប្រអប់ដែកដែលមាន IoU មួយលើសតម្លៃណាមួយ។
Precision ធៀបមធ្យម
សន្មតថា យើងចង់វាស់ថាសម្គាល់បានល្អប៉ុណ្ណាដល់ចំណាត់ថ្នាក់វត្ថុមួយ C។ ដើម្បីវាស់វា យើងប្រើគោលដៅ Precision ធៀបមធ្យម ដែលគណនាដូចខាងក្រោម៖
- គិតតួតម្លៃ Precision-Recall ដែលបង្ហាញភាពត្រឹមត្រូវដោយផ្អែកលើតម្លៃសម្ងាត់នៃការរកឃើញ (ពី 0 ទៅ 1)។
- ភាពយោងទៅលើកម្រិតសម្ងាត់ យើងនឹងទទួលបានចំនួនវត្ថុគ្រប់គ្រាន់ ឬទាបក្នុងរូបភាព មិនដូចគ្នានៃតម្លៃ precision និង recall។
- កោងនឹងដូចនេះ៖
រូបពី NeuroWorkshop
Precision ធៀបមធ្យមសម្រាប់ចំណាត់ថ្នាក់មួយ C គឺជាផ្ទៃក្រោមកោងនេះ។ យ៉ាងច្បាស់លាស់, ឈានចុះមាត្រដ្ឋាន Recall ត្រូវបានចែកជាមូលដ្ឋាន 10 និង Precision ត្រូវបានគណនារួមលើចំណុចទាំងនោះ៖
AP = {1\over11}\sum_{i=0}^{10}\mbox{Precision}(\mbox{Recall}={i\over10})
AP និង IoU
យើងនឹងគិតតែវត្ថុដែលបានរកឃើញ ដែល IoU មានតម្លៃលើសចំណុចណាមួយ។ ឧទាហរណ៍ នៅក្នុង PASCAL VOC dataset មានការអនុម័តថា \mbox{IoU Threshold} = 0.5, ខណៈនៅក្នុង COCO AP ត្រូវបានវាស់សម្រាប់តម្លៃ \mbox{IoU Threshold} ប្រែប្រួល។
រូបពី NeuroWorkshop
Precision ធៀបមធ្យមមធ្យម - mAP
គោលដៅសំខាន់សម្រាប់ការរកឃើញវត្ថុ ហៅថា Precision ធៀបមធ្យមមធ្យម ឬ mAP។ វាជាតម្លៃ Precision ធៀបមធ្យម មធ្យមបង្ហាញច្រេសចេញពីចំណាត់ថ្នាក់ទាំងអស់របស់វត្ថុ ហើយពេលខ្លះផងដែរតាម \mbox{IoU Threshold}។ ក្នុងសេចក្ដីលម្អិត ការគណនា mAP ត្រូវបានពិពណ៌នានៅ
ក្នុងបទបង្ហាញនេះ), និង នៅទីនេះជាមួយឧទាហរណ៍កូដ។
វិធីសាស្រ្តផ្សេងៗសម្រាប់ការរកឃើញវត្ថុ
មានឈ្នះទាំងពីរប្រភេទធំសំខាន់នៃវីធីសាស្រ្តរកឃើញវត្ថុ៖
- Region Proposal Networks (R-CNN, Fast R-CNN, Faster R-CNN)។ គំនិតសំខាន់គឺបង្កើត តំបន់ចំណាប់អារម្មណ៍ (ROI) ហើយបើក CNN លើពួកវា ដើម្បីស្វែងរកការបញ្ចេញអតិបរមា។ វាដូចជាវិធីសាស្រ្តសាមញ្ញ បើទេថា ROI ត្រូវបានបង្កើតដោយវិធីសាស្រ្តខ្ពស់ជាង។ ខុសត្រូវធំមួយនៃវិធីសាស្រ្តដូចនេះ គឺពួកវាដំណើរការជាអាចយឺត ព្រោះយើងត្រូវការបង្ហោះ CNN ម៉ូដែលជាច្រើនលើរូបភាព។
- វិធីសាស្រ្ត មួយដំណើរ (YOLO, SSD, RetinaNet)។ នៅក្នុងស្ថាបត្យកម្មទាំងនេះ យើងរចនាបណ្ដាញឲ្យទាយក្លៈនិង ROI ទាំងពីរនៅក្នុងមួយដំណើរ។
R-CNN: Region-Based CNN
R-CNN ប្រើ Selective Search ដើម្បីបង្កើតរចនាសម្ព័ន្ធជាស្រទាប់នៃតំបន់ ROI ដែលបន្ទាប់មកត្រូវបានបញ្ជូនតាមរយៈ CNN feature extractors និង SVM-classifiers ដើម្បីកំណត់ចំណាត់ថ្នាក់វត្ថុ ហើយក៏ប្រើការចុះបញ្ជាក់ស៊ុមខ្សែដើម្បីកំណត់ ទ្រង់ទ្រាយប្រអប់ដែកដោះថ្លៃ ។ អត្ថបទផ្លូវការជាភាសាអង់គ្លេស
រូបពី van de Sande et al. ICCV’11
រូបភាពពី បទបង្ហាញនេះ
F-RCNN - Fast R-CNN
វិធីសាស្រ្តនេះស្រដៀងនឹង R-CNN ប៉ុន្តែតំបន់ ត្រូវបានកំណត់ក្រោយពីស្រទាប់កំណត់បង្រួមត្រូវបានអនុវត្ត។
រូបពី អត្ថបទផ្លូវការ, arXiv, 2015
Faster R-CNN
គំនិតសំខាន់នៃវិធីសាស្រ្តនេះ គឺប្រើបណ្តាញសរសៃប្រព័ន្ធសរសៃប្រព័ន្ធក្នុងការទាយ ROI - ហៅថា Region Proposal Network។ អត្ថបទ, 2016
រូបពី អត្ថបទផ្លូវការ
R-FCN: Region-Based Fully Convolutional Network
អាល់គ្រុិធីមនេះលឿនជាង Faster R-CNN ផងដែរ។ គំនិតសំខាន់មានដូចខាងក្រោម៖
- យើងដកលក្ខណៈប្រើ ResNet-101
- លក្ខណៈត្រូវបានកែប្រែដោយ Position-Sensitive Score Map។ គ្រប់វត្ថុពីចំណាត់ថ្នាក់
Cត្រូវបានបែងចែកជាតំបន់k\times k, ហើយយើងបណ្តុះដើម្បីទាយផ្នែកនៃវត្ថុ។ - សម្រាប់មួយផ្នែកពីតំបន់
k\times kបណ្ដាញទាំងមូលបោះឆ្នោតសម្រាប់ចំណាត់ថ្នាក់វត្ថុ ហើយចំណាត់ថ្នាក់វត្ថុដែលមានការបោះឆ្នោតអតិបរមាត្រូវបានជ្រើស។
រូបពី អត្ថបទផ្លូវការ
YOLO - You Only Look Once
YOLO គឺជាអាល់គ្រុិធីមមួយដំណើរដំណើរការនៅពេលជាក់ស្តែង។ គំនិតសំខាន់បានដូចខាងក្រោម៖
- រូបភាពត្រូវបានបំបែកទៅជាតំបន់
S\times S - សម្រាប់តំបន់នីមួយៗ CNN ទាយ
nវត្ថុដែលអាចមាន, រង្វង់ប្រអប់ដែកដោះថ្លៃ និង ជំនឿជោះ=ប្រហែល * IoU
រូបពី អត្ថបទផ្លូវការ
អាល់គ្រុិធីមផ្សេងទៀត
- RetinaNet: អត្ថបទផ្លូវការ
- ការអនុវត្ត PyTorch នៅក្នុង Torchvision
- ការអនុវត្ត Keras
- ការរកឃើញវត្ថុជាមួយ RetinaNet ក្នុងនំៀងគំរូ Keras
- SSD (Single Shot Detector): អត្ថបទផ្លូវការ
✍️ វិជ្ជាសកម្ម៖ ការរកឃើញវត្ថុ
បន្តការសិក្សារបស់អ្នកនៅក្នុងកំណត់ហេតុបន្ទាប់៖
សញ្ញាប្រុងប្រយ័ត្ន
នៅក្នុងមេរៀននេះ អ្នកបានធ្វើដំណើរយ៉ាងឆាប់រហ័សលើវិធីសាស្រ្តផ្សេងៗទាំងស្រុងដែលអាចរកឃើញវត្ថុបាន!
🚀 챌린지
អានអត្ថបទ និងកំណត់ហេតុនេះអំពី YOLO ហើយសាកល្បងវាជាមួយខ្លួនអ្នកផ្ទាល់
- អត្ថបទល្អ ពិពណ៌នាអំពី YOLO
- គេហទំព័រផ្លូវការ
- Yolo: អនុវត្ត Keras, កំណត់ហេតុចំណាត់ថ្នាក់ជាជំហាន
- Yolo v2: អនុវត្ត Keras, កំណត់ហេតុចំណាត់ថ្នាក់ជាជំហាន
សំណួរផុតមុខបង្ហាត់
សង្ខេប & សិក្សាផ្ទាល់ខ្លួន
- ការរកឃើញវត្ថុ ដោយ Nikhil Sardana
- ការប្រៀបធៀបល្អនៃអាល់គ្រិទឹមរកឃើញវត្ថុ
- ការត្រួតពិនិត្យអាល់គ្រីទឹមរៅជ្រៅសម្រាប់ការរកឃើញវត្ថុ
- ការណែនាំជាជំហានទៅអាល់គ្រីទឹមរកឃើញវត្ថុមូលដ្ឋាន
- ការអនុវត្ត Faster R-CNN ក្នុង Python សម្រាប់ការរកឃើញវត្ថុ
កិច្ចការផ្ទះ៖ ការរកឃើញវត្ថុ
ការបដិសេធ៖
ឯកសារនេះបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI Co-op Translator។ ខណៈពេលដែលយើងខិតខំស្វែងរកភាពត្រឹមត្រូវ សូមយល់ព្រមថាការបកប្រែអotomatically អាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅភាសាទីសាស្ត្រគួរត្រូវបានគេយកទៅជាអ្នកប្រើប្រាស់អំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែវែកញែកណាមួយដែលកើតឡើងដោយការប្រើប្រាស់ការបកប្រែនេះឡើយ។









