nxp-និមិត្តសញ្ញា

NXP AN14263 អនុវត្តការទទួលស្គាល់មុខ LVGL GUI នៅលើ Framewor

NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-ផលិតផល

ព័ត៌មានអំពីផលិតផល

លក្ខណៈបច្ចេកទេស

  • ឈ្មោះផលិតផល៖ ការទទួលស្គាល់មុខ LVGL GUI នៅលើក្របខ័ណ្ឌ
  • ការកែប្រែឯកសារ៖ ថ្ងៃទី 1-19 ខែមេសា ឆ្នាំ 2024
  • ពាក្យគន្លឹះ៖ ការទទួលស្គាល់មុខ, LVGL GUI, ក្របខ័ណ្ឌ

ការណែនាំអំពីការប្រើប្រាស់ផលិតផល

  1. ជាងview
    ផលិតផលនេះអនុញ្ញាតឱ្យប្រើគំរូក្បួនដោះស្រាយចក្ខុវិស័យ AI&ML សម្រាប់ការសម្គាល់មុខនៅលើក្របខ័ណ្ឌដើម្បីអនុវត្តមុខងារសម្គាល់មុខជាមួយនឹង LVGL GUI សាមញ្ញ។ample នៅលើក្តារ SLN-TLHMI-IOT ។
  2. ក្របខ័ណ្ឌចប់view
    កម្មវិធីដំណោះស្រាយត្រូវបានរចនាឡើងជុំវិញស្ថាបត្យកម្មក្របខ័ណ្ឌដែលរួមបញ្ចូលអ្នកគ្រប់គ្រងឧបករណ៍ដែលទទួលខុសត្រូវក្នុងការគ្រប់គ្រងឧបករណ៍ ឧបករណ៍ HAL ទៅនឹងព័ត៌មានលម្អិតមូលដ្ឋានអរូបី និងព្រឹត្តិការណ៍សម្រាប់ការទំនាក់ទំនងរវាងឧបករណ៍ផ្សេងៗ។
  3. លក្ខណៈពិសេស
    ផលិតផលអនុញ្ញាតឱ្យអនុវត្តមុខងារសម្គាល់មុខតាមរយៈកាមេរ៉ាមុន។view នៅលើអេក្រង់ GUI ដែលមានប៊ូតុងដើម្បីចាប់ផ្តើមការចុះឈ្មោះមុខ ការទទួលស្គាល់ និងការដកចេញ។ ទិន្នន័យមុខដែលបានចុះឈ្មោះត្រូវបានរក្សាទុកនៅលើ Flash តាមរយៈ a file ប្រព័ន្ធ។
  4. មាតិកាចំណាំកម្មវិធី
    ចំណាំកម្មវិធីបង្ហាញអេក្រង់ LVGL GUI ជាមួយនឹងកាមេរ៉ាមុន។view និងប៊ូតុងសម្រាប់សកម្មភាពដែលទាក់ទងនឹងមុខ។ វាជួយអ្នកអភិវឌ្ឍន៍ឱ្យយល់អំពីក្របខណ្ឌ និងរបៀបអនុវត្តការសម្គាល់មុខដោយប្រើឧampលេ

ជាងview

NXP បានដាក់ឱ្យដំណើរការឧបករណ៍អភិវឌ្ឍន៍ដំណោះស្រាយដែលមានឈ្មោះថា SLN-TLHMI-IOT ដែលផ្តោតលើកម្មវិធី HMI ឆ្លាតវៃ។ វាបើកដំណើរការ HMI ឆ្លាតវៃជាមួយនឹងចក្ខុវិស័យ ML សំឡេង និងក្រាហ្វិក UI ដែលអនុវត្តនៅលើ NXP i.MX RT117H MCU មួយ។ ដោយផ្អែកលើ SDK កម្មវិធីដំណោះស្រាយត្រូវបានបង្កើតឡើងនៅលើការរចនាដែលហៅថាក្របខ័ណ្ឌដែលគាំទ្រការរចនាដែលអាចបត់បែនបាន និងការប្ដូរតាមបំណងនៃមុខងារចក្ខុវិស័យ និងសំឡេង។ ដើម្បីជួយអ្នកប្រើប្រាស់ឱ្យប្រើប្រព័ន្ធកម្មវិធីបានប្រសើរជាងមុន ឯកសារមូលដ្ឋានមួយចំនួនត្រូវបានផ្តល់ជូនឧទាហរណ៍ample ការណែនាំអំពីការអភិវឌ្ឍន៍កម្មវិធី។ មគ្គុទ្ទេសក៍ណែនាំអំពីការរចនាកម្មវិធីមូលដ្ឋាន និងស្ថាបត្យកម្មនៃកម្មវិធីដែលគ្របដណ្ដប់លើសមាសធាតុទាំងអស់នៃដំណោះស្រាយ រួមទាំងក្របខ័ណ្ឌ ដើម្បីជួយអ្នកអភិវឌ្ឍន៍កាន់តែងាយស្រួល និងមានប្រសិទ្ធភាពក្នុងការអនុវត្តកម្មវិធីរបស់ពួកគេដោយប្រើ SLN-TLHMI-IOT ។
សម្រាប់ព័ត៌មានលម្អិតអំពីដំណោះស្រាយ និងឯកសារពាក់ព័ន្ធ សូមចូលទៅកាន់គេហទំព័រ web ទំព័រនៃ NXP EdgeReady Smart HMI Solution ផ្អែកលើ i.MX RT117H ជាមួយ ML Vision, Voice, និង Graphical UI ។ ទោះជាយ៉ាងណាក៏ដោយ វានៅតែមិនងាយស្រួលប៉ុន្មានទេសម្រាប់អ្នកអភិវឌ្ឍន៍ក្នុងការអនុវត្តកម្មវិធី HMI ឆ្លាតវៃរបស់ពួកគេដោយយោងទៅលើការណែនាំជាមូលដ្ឋានទាំងនេះ។ ស៊េរីនៃកំណត់ចំណាំកម្មវិធីត្រូវបានគ្រោងទុកដើម្បីជួយសិក្សាការអភិវឌ្ឍន៍លើក្របខ័ណ្ឌជាជំហានៗ។ ចំណាំកម្មវិធីនេះគឺផ្អែកលើ Implement LVGL GUI Camera Preview នៅលើក្របខ័ណ្ឌ (ឯកសារ AN14147) ។ កំណត់ចំណាំកម្មវិធីនេះពិពណ៌នាអំពីរបៀបបើកដំណើរការគំរូក្បួនដោះស្រាយចក្ខុវិស័យ AI&ML សម្រាប់ការសម្គាល់មុខនៅលើក្របខ័ណ្ឌ ដើម្បីអនុវត្តមុខងារសម្គាល់មុខតាមរយៈកាមេរ៉ាជាមុន។view នៅលើអេក្រង់ GUI ជាមួយនឹង LVGL GUI សាមញ្ញample នៅលើក្តារ SLN-TLHMI-IOT ។ នៅក្នុងកំណត់ចំណាំកម្មវិធី ឧample បង្ហាញអេក្រង់ LVGL GUI ជាមួយនឹងកាមេរ៉ាជាមុនview និងប៊ូតុងមួយចំនួនដើម្បីចាប់ផ្តើមការចុះឈ្មោះមុខ ការទទួលស្គាល់ និងការដកចេញ។ ទិន្នន័យមុខដែលបានចុះឈ្មោះត្រូវបានរក្សាទុកនៅលើ Flash តាមរយៈបន្តិចបន្តួច file ប្រព័ន្ធ។

នៅកម្រិតខ្ពស់ ចំណាំកម្មវិធីមានខ្លឹមសារខាងក្រោម៖

  • បើកមុខងារសម្គាល់មុខនៅលើក្របខ័ណ្ឌ។
  • បន្ថែមការគាំទ្រមូលដ្ឋានទិន្នន័យមុខនៅលើក្របខ័ណ្ឌតាមរយៈ file ប្រព័ន្ធនៅលើ Flash ។
  • អនុវត្តកម្មវិធី LVGL GUI ។ តាមរយៈការណែនាំខាងលើ ឯកសារនេះជួយអ្នកអភិវឌ្ឍន៍ក្នុងការ៖
  • ស្វែងយល់អំពីក្របខ័ណ្ឌ និងកម្មវិធីដំណោះស្រាយ HMI ឆ្លាតវៃកាន់តែស៊ីជម្រៅ។
  • បង្កើតការទទួលស្គាល់មុខ AI&ML របស់ពួកគេនៅលើក្របខ័ណ្ឌជាមួយនឹងកម្មវិធី LVGL GUI ។

ក្របខ័ណ្ឌចប់view
កម្មវិធីដំណោះស្រាយត្រូវបានរចនាឡើងជាចម្បងជុំវិញការប្រើប្រាស់ស្ថាបត្យកម្មក្របខ័ណ្ឌដែលមានផ្នែកផ្សេងៗគ្នាជាច្រើន៖

  • អ្នកគ្រប់គ្រងឧបករណ៍ - ផ្នែកស្នូល
  • ឧបករណ៍ស្រទាប់អរូបីផ្នែករឹង (HAL)
  • សារ/ព្រឹត្តិការណ៍

ដូចដែលបានបង្ហាញក្នុងរូបភាពទី 1 ជាងview យន្តការនៃក្របខ័ណ្ឌគឺ៖

អ្នកគ្រប់គ្រងឧបករណ៍ទទួលខុសត្រូវក្នុងការគ្រប់គ្រងឧបករណ៍ដែលប្រើដោយប្រព័ន្ធ។ ប្រភេទឧបករណ៍នីមួយៗ (បញ្ចូល ទិន្នផល និងអ្វីៗផ្សេងទៀត) មានកម្មវិធីគ្រប់គ្រងឧបករណ៍ប្រភេទជាក់លាក់របស់វា។ ជាមួយនឹងកម្មវិធីគ្រប់គ្រងឧបករណ៍ចាប់ផ្តើមបន្ទាប់ពីឧបករណ៍ត្រូវបានចុះឈ្មោះទៅវា វារង់ចាំ និងពិនិត្យសារដើម្បីផ្ទេរទិន្នន័យទៅឧបករណ៍ និងអ្នកគ្រប់គ្រងផ្សេងទៀត បន្ទាប់ពីចាប់ផ្តើម និងចាប់ផ្តើមឧបករណ៍ដែលបានចុះឈ្មោះ។ ឧបករណ៍ HAL ត្រូវបានសរសេរនៅលើកំពូលនៃកូដកម្មវិធីបញ្ជាកម្រិតទាប ដែលជួយបង្កើនការយល់ដឹងអំពីកូដដោយអរូបីនៃព័ត៌មានលម្អិតមូលដ្ឋានជាច្រើន។

ព្រឹត្តិការណ៍គឺជាមធ្យោបាយដែលព័ត៌មានត្រូវបានទំនាក់ទំនងរវាងឧបករណ៍ផ្សេងៗតាមរយៈអ្នកគ្រប់គ្រងរបស់ពួកគេ។ នៅពេលដែលព្រឹត្តិការណ៍មួយត្រូវបានបង្កឡើង ឧបករណ៍ដែលបានទទួលព្រឹត្តិការណ៍ដំបូងទាក់ទងព្រឹត្តិការណ៍នោះទៅកាន់អ្នកគ្រប់គ្រងរបស់វា បន្ទាប់មកវាជូនដំណឹងដល់អ្នកគ្រប់គ្រងផ្សេងទៀតដែលត្រូវបានកំណត់ឱ្យទទួលព្រឹត្តិការណ៍។

NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (1)

ការរចនាស្ថាបត្យកម្មនៃក្របខ័ណ្ឌត្រូវបានផ្តោតលើគោលដៅចម្បងចំនួនបី៖

  1. ភាពងាយស្រួលនៃការប្រើប្រាស់
  2. ភាពបត់បែន / ចល័ត
  3. ការសម្តែង

ក្របខណ្ឌនេះត្រូវបានរចនាឡើងដោយមានគោលដៅបង្កើនល្បឿនពេលវេលាសម្រាប់ទីផ្សារសម្រាប់ចក្ខុវិស័យ និងកម្មវិធីសិក្សាដោយម៉ាស៊ីនផ្សេងទៀត។ ដើម្បីធានាបាននូវពេលវេលារហ័សក្នុងការធ្វើទីផ្សារ វាជារឿងសំខាន់ដែលកម្មវិធីខ្លួនវាងាយស្រួលក្នុងការយល់ និងកែប្រែ។ ដោយរក្សាគោលដៅនេះក្នុងចិត្ត ស្ថាបត្យកម្មនៃក្របខ័ណ្ឌមានភាពងាយស្រួលក្នុងការកែប្រែដោយមិនមានការដាក់កម្រិត និងដោយមិនចាំបាច់ចំណាយលើការអនុវត្ត។
សម្រាប់ព័ត៌មានលម្អិតអំពីក្របខណ្ឌ សូមមើលមគ្គុទ្ទេសក៍អភិវឌ្ឍន៍កម្មវិធី Smart HMI (ឯកសារ MCU-SMHMI-SDUG)។

បណ្ណាល័យក្រាហ្វិកស្រាល និងច្រើនប្រភេទ (LVGL)
LVGL (Light and Versatile Graphics Library) គឺជាបណ្ណាល័យក្រាហ្វិកឥតគិតថ្លៃ និងប្រភពបើកចំហដែលផ្តល់នូវអ្វីគ្រប់យ៉ាងដែលអ្នកត្រូវការដើម្បីបង្កើត GUI ដែលបង្កប់ជាមួយនឹងធាតុក្រាហ្វិកដែលងាយស្រួលប្រើ បែបផែនរូបភាពដ៏ស្រស់ស្អាត និងការចងចាំទាប។

មគ្គុទ្ទេសក៍ GUI
GUI Guider គឺជាឧបករណ៍អភិវឌ្ឍន៍ចំណុចប្រទាក់អ្នកប្រើក្រាហ្វិកដែលងាយស្រួលប្រើពី NXP ដែលអនុញ្ញាតឱ្យមានការអភិវឌ្ឍន៍យ៉ាងឆាប់រហ័សនៃការបង្ហាញគុណភាពខ្ពស់ជាមួយនឹងបណ្ណាល័យក្រាហ្វិក LVGL ប្រភពបើកចំហ។ កម្មវិធីនិពន្ធអូសនិងទម្លាក់របស់ GUI Guider ធ្វើឱ្យវាងាយស្រួលប្រើមុខងារជាច្រើនរបស់ LVGL ដូចជាធាតុក្រាហ្វិក ចលនា និងរចនាប័ទ្មដើម្បីបង្កើត GUI ជាមួយនឹងការសរសេរកូដតិចតួចបំផុត ឬគ្មានទាំងអស់។

ដោយចុចប៊ូតុងមួយ អ្នកអាចដំណើរការកម្មវិធីរបស់អ្នកក្នុងបរិយាកាសក្លែងធ្វើ ឬនាំចេញវាទៅគម្រោងគោលដៅ។ កូដដែលបានបង្កើតពី GUI Guider អាចត្រូវបានបន្ថែមយ៉ាងងាយស្រួលទៅក្នុងគម្រោងរបស់អ្នក ដោយបង្កើនល្បឿនដំណើរការអភិវឌ្ឍន៍ និងអនុញ្ញាតឱ្យអ្នកបន្ថែមចំណុចប្រទាក់អ្នកប្រើដែលបានបង្កប់ទៅក្នុងកម្មវិធីរបស់អ្នក។ GUI Guider គឺអាចប្រើដោយឥតគិតថ្លៃជាមួយនឹងគោលបំណងទូទៅរបស់ NXP និង Crossover MCUs និងរួមបញ្ចូលគំរូគម្រោងដែលភ្ជាប់មកជាមួយសម្រាប់វេទិកាដែលគាំទ្រជាច្រើន។ ដើម្បីស្វែងយល់បន្ថែមអំពីការអភិវឌ្ឍន៍ LVGL និង GUI នៅលើ GUI Guider សូមពិនិត្យមើល Light and Versatile Graphics Library និង GUI Guider ។

បរិស្ថានអភិវឌ្ឍន៍

ជាដំបូង រៀបចំ និងរៀបចំបរិយាកាសផ្នែករឹង និងសូហ្វវែរសម្រាប់ការអនុវត្តឧample នៅលើក្របខ័ណ្ឌ។

បរិស្ថានផ្នែករឹង
បរិយាកាសផ្នែករឹងត្រូវបានបង្កើតឡើងសម្រាប់ការផ្ទៀងផ្ទាត់អតីតampលេ៖

  • ឧបករណ៍អភិវឌ្ឍន៍ HMI ឆ្លាតវៃផ្អែកលើ NXP i.MX RT117H (ឧបករណ៍ SLN_TLHMI_IOT)
  • SEGGER J-Link ជាមួយនឹងអាដាប់ទ័រ 9-pin Cortex-M និង V7.84a ឬកំណែថ្មីនៃកម្មវិធីបញ្ជា

បរិស្ថានកម្មវិធី
បរិស្ថានកម្មវិធីត្រូវបានបង្កើតឡើងសម្រាប់អភិវឌ្ឍអតីតampលេ៖

  • MCUXpresso IDE V11.7.0
  • កម្មវិធីណែនាំ GUI V1.6.1-GA
  • lvgl_gui_camera_preview_cm7 – ឧample កូដនៃចំណាំកម្មវិធីទីពីរ ជាកម្មវិធីមូលដ្ឋាននៃការអភិវឌ្ឍន៍។ សម្រាប់ព័ត៌មានលម្អិតសូមមើល https://mcuxpresso.nxp.com/appcodehub.
  • RT1170 SDK V2.13.0 – ជាធនធានកូដសម្រាប់ការអភិវឌ្ឍន៍។
  • កម្មវិធី SLN-TLHMI-IOT V1.1.2 - កូដប្រភព HMI ឆ្លាតវៃបានចេញផ្សាយនៅលើឃ្លាំង NXP GitHub ជាធនធានកូដសម្រាប់ការអភិវឌ្ឍន៍។ សម្រាប់ព័ត៌មានលម្អិត សូមមើល៖ GitHub – NXP/mcu-smhmi at v1.1.2

សម្រាប់ព័ត៌មានលម្អិតអំពីការទទួលបាន និងការរៀបចំបរិយាកាសកម្មវិធី សូមមើល៖ ការចាប់ផ្តើមជាមួយ SLN-TLHMI-IOT ។

ស្ថាបត្យកម្មចក្ខុវិស័យលើក្របខ័ណ្ឌ

ស្ថាបត្យកម្មចក្ខុវិស័យនៅលើក្របខ័ណ្ឌត្រូវបានបង្ហាញក្នុងរូបភាពទី 2 ។ ចក្ខុវិស័យ algo HAL (OASIS_HAL) មានដំណើរការដូចខាងក្រោមៈ

  • ធ្វើការចុះឈ្មោះ និងការទទួលស្គាល់តាមរយៈគំរូ AI&ML vision algorithm បន្ទាប់ពីទទួលបានព្រឹត្តិការណ៍ដែលពាក់ព័ន្ធពីលទ្ធផល UI HAL។ ជូន​ដំណឹង​លទ្ធផល​សន្និដ្ឋាន​ពី​គំរូ​ក្បួន​ដោះស្រាយ​ទៅ​លទ្ធផល UI HAL ។
  • ចូលប្រើ (បន្ថែម លុប…) មូលដ្ឋានទិន្នន័យមុខងារមុខដោយផ្អែកលើតិចតួច file ប្រព័ន្ធដោយការហៅ APIs របស់ FaceDB HAL បន្ទាប់ពីទទួលបានព្រឹត្តិការណ៍ពាក់ព័ន្ធពីលទ្ធផល UI HAL ។
  • ស្នើសុំស៊ុមវីដេអូកាមេរ៉ាពីកាមេរ៉ា HAL នៅពេលធ្វើការចុះឈ្មោះ និងស្គាល់មុខ។

NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (3)

អនុវត្តការទទួលស្គាល់មុខនៅលើក្របខ័ណ្ឌ

ការសម្គាល់មុខ LVGL GUI ឧampឡេ (ឧample ត្រូវបានផ្តល់ជូននៅពេលក្រោយ) នៅលើក្របខ័ណ្ឌត្រូវបានអនុវត្តដោយផ្អែកលើអតីតample កូដនៃ Implement LVGL GUI Camera Preview នៅលើក្របខ័ណ្ឌ (ឯកសារ AN14147) ។

សម្រាប់ការបង្ហាញការសម្គាល់មុខនៅក្នុងអតីតampដូច្នេះ មុខងារជាមូលដ្ឋាននៃកម្មវិធី GUI (សូមមើលអេក្រង់មេក្នុងរូបភាពទី 3) ត្រូវបានរចនាឡើងដូចបានរៀបរាប់ខាងក្រោម៖

  • កម្មវិធី GUI ចាប់ផ្តើមព្រឹត្តិការណ៍ចុះឈ្មោះមុខ ឬការទទួលស្គាល់ទៅកាន់លទ្ធផល UI HAL នៅពេលចុចប៊ូតុងចុះឈ្មោះ ឬការទទួលស្គាល់។ ហើយលទ្ធផល UI HAL ជូនដំណឹងអំពីព្រឹត្តិការណ៍នៃការបន្ថែមអ្នកប្រើប្រាស់ទៅកាន់ចក្ខុវិស័យ algo HAL បន្ទាប់ពីការចុះឈ្មោះមុខបានជោគជ័យ។
  • កម្មវិធី GUI បង្កឱ្យមានព្រឹត្តិការណ៍នៃការលុបអ្នកប្រើប្រាស់ទៅកាន់លទ្ធផល UI HAL នៅពេលចុចប៊ូតុងលុបអ្នកប្រើប្រាស់ បន្ទាប់ពីមុខអ្នកប្រើប្រាស់ត្រូវបានទទួលស្គាល់។
  • កម្មវិធី GUI បង្កឱ្យមានព្រឹត្តិការណ៍នៃការបញ្ឈប់ oasis algo ដែលកំពុងដំណើរការទៅកាន់លទ្ធផល UI HAL នៅពេលចុចលើអេក្រង់នៅខាងក្រៅប៊ូតុង និងរូបភាព។

NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (10)

រៀបចំកញ្ចប់កម្មវិធីសម្រាប់ការអនុវត្តអតីតampលេ

  • ក្លូនកម្មវិធីមូលដ្ឋាន lvgl_gui_camera_preview_cm៧. ផ្លាស់ប្តូរឈ្មោះគម្រោង និងមេ fileឈ្មោះទៅ lvgl_gui_face_rec_cm7.
  • ក្របខ័ណ្ឌត្រូវការដើម្បីធ្វើបច្ចុប្បន្នភាពនៅក្នុងកម្មវិធី ដោយសារកូដប្រភពសម្រាប់ស្នូលក្របខ័ណ្ឌបានចាប់ផ្តើមជាសាធារណៈនៅលើ GitHub ពីកំណែ 1.1.2 ។
  • ជំនួសថតក្របខ័ណ្ឌជាមួយច្បាប់ចម្លងនៃ V1.1.2 ពី GitHub លើកលែងតែឯកសារ files fwk_log.h និង fwk_common.h នៅក្រោម inc\ ដូចដែលពួកគេត្រូវបានកែប្រែសម្រាប់ស៊េរីនៃចំណាំកម្មវិធី។ ប្រតិបត្តិការត្រូវបានបង្ហាញក្នុងរូបភាពទី ៤៖NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (11)
  • លុប folder framework_cm7 នៅក្រោមក្រុម libs ហើយលុបបណ្ណាល័យ framework_cm7 និងផ្លូវស្វែងរករបស់វាដែលបានកំណត់រចនាសម្ព័ន្ធនៅក្នុង Project > Properties > C/C++ Build > settings > Tool Settings > MCU C++ Linker > Libraries ចាប់តាំងពីកូដប្រភពនៃស្នូលត្រូវបានផ្តល់។

បើកមុខងារសម្គាល់មុខនៅលើក្របខ័ណ្ឌ
មុខងារសម្គាល់មុខត្រូវបានបង្កើតឡើងនៅលើគំរូក្បួនដោះស្រាយ ML Vision ដែលផ្តល់ជាបណ្ណាល័យឋិតិវន្ត - បណ្ណាល័យពេលវេលាដំណើរការ oasis lite ដោយ NXP ។ បណ្ណាល័យគឺជាបណ្ណាល័យ AI ដ៏តូច មានប្រសិទ្ធភាពខ្ពស់ ប្ដូរតាមបំណង និងធ្វើឱ្យប្រសើរ។ ម៉ូដែល​នេះ​រួម​បញ្ចូល​ទាំង​ការ​សម្គាល់​មុខ ការ​សម្គាល់​មុខ ការ​ចាប់​កញ្ចក់ និង​ការ​រក​ឃើញ​ភាព​រស់​រវើក។ វាផ្តល់ជាចម្បងនូវ API OASISLT_run_extended() ដើម្បីដំណើរការបំពង់ស្គាល់មុខ ខណៈពេលដែលធ្វើបច្ចុប្បន្នភាពលទ្ធផលទៅកាន់អ្នកហៅទូរសព្ទតាមរយៈព្រឹត្តិការណ៍ callbacks និងបន្ថែម/អាប់ដេត/លុបមុខនៅក្នុង database តាមរយៈ face database callbacks បន្ទាប់ពីបញ្ជាក់ព័ត៌មានប្រភពស៊ុម callbacks និង memory អាងដែលប្រើដោយបណ្ណាល័យដោយហៅ API ផ្សេងទៀត OASISLT_init() នៅលើការចាប់ផ្តើម។ ការហៅ APIs និងមុខងារ callback ត្រូវបានអនុវត្តនៅក្នុងចក្ខុវិស័យ algo HAL នៃក្របខ័ណ្ឌ។

បន្ថែមបណ្ណាល័យគំរូ algo

  1. ចម្លងថតអូអេស៊ីសដែលមានបណ្ណាល័យ និងបឋមកថាពាក់ព័ន្ធ file ពី smart HMI\coffee_machine\cm7\libs\ ចូលទៅក្នុងថត libs របស់ exampឡេ SW
  2. បន្ថែមផ្លូវស្វែងរកនៃបឋមកថា file នៅក្នុង Project > Properties > C/C++ Build > settings > Tool Settings > MCU C compiler > Include និង MCU C++ compiler > រួមបញ្ចូល៖ “${workspace_loc:/${ProjName}/libs/oasis/include}”
  3. បន្ថែម lib និងផ្លូវស្វែងរករបស់វានៅលើ Project > Properties > C/C++ Build > settings > MCU C+ + Linker > Liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” និងនិយមន័យម៉ាក្រូទៅ បើកមុខងារនៅលើ គម្រោង > លក្ខណសម្បត្តិ > C/C++ Build > settings > Tool Settings > MCU C compiler > Preprocessor and MCU C++ compiler > Preprocessor: SMART_TLHMI_2D

បើកការមើលឃើញ algo HAL
ចក្ខុវិស័យ algo HAL ជំរុញឱ្យម៉ូដែលចក្ខុវិស័យ algo ដំណើរការ និងឆ្លើយតបលទ្ធផលទៅនឹងលទ្ធផល UI HAL បន្ទាប់ពីទទួលបានព្រឹត្តិការណ៍ពីវា។

ដើម្បីបើកវា ក្លូនកម្មវិធីបញ្ជា HAL ស្រដៀងគ្នាដែលមានស្រាប់ file កន្លែងដែលមុខងារខាងក្រោមត្រូវបានអនុវត្ត៖

  • អនុវត្តការហៅត្រឡប់មកវិញនៃប្រតិបត្តិការមូលដ្ឋានទិន្នន័យមុខ និងការដោះស្រាយព្រឹត្តិការណ៍។
  • ជំរុញឱ្យ Vision algo ដំណើរការដោយហៅ APIs នៃបណ្ណាល័យ oasis ។
  • ចូលប្រើមូលដ្ឋានទិន្នន័យមុខអ្នកប្រើប្រាស់ និងមូលដ្ឋានទិន្នន័យកម្មវិធី (វាមិនចាំបាច់នៅក្នុង exampលេ) ។
  • ទទួលព្រឹត្តិការណ៍ពី និងផ្ញើលទ្ធផលទៅកាន់លទ្ធផល UI HAL។

ការងារសំខាន់ៗដើម្បីអនុវត្ត HAL សម្រាប់អតីតampគឺ៖

  • ក្លូនកម្មវិធីបញ្ជា HAL ស្រដៀងគ្នាដែលមានស្រាប់ file និងផ្លាស់ប្តូរឈ្មោះដែលពាក់ព័ន្ធ។
  • លុបលេខកូដដែលទាក់ទងនឹងប្រតិបត្តិការទិន្នន័យកម្មវិធី។
  • ធ្វើបច្ចុប្បន្នភាពនិយមន័យ និងមុខងារសម្រាប់ដោះស្រាយព្រឹត្តិការណ៍ពីលទ្ធផល UI HAL សម្រាប់អតីតampការរចនាឡេ។
  • បន្ថែមការកំណត់រចនាសម្ព័ន្ធដែលត្រូវការនៅក្នុងការចាប់ផ្តើម oasis ។

ជំហានលម្អិតមានដូចខាងក្រោម៖

  1. ក្លូន hal_vision_algo_oasis_coffeemachine.c. ផ្លាស់ប្តូរ fileឈ្មោះទៅ hal_vision_algo_oasis_guifacerec.c. ហើយជំនួសខ្សែទាំងអស់ CoffeeMachine ជាមួយ GUIFaceRec នៅក្នុង file.
  2. លុបកូដដែលមានខ្សែអក្សរ coffeedb (មិនប្រកាន់អក្សរតូចធំ) ដែលទាក់ទងនឹងមូលដ្ឋានទិន្នន័យកម្មវិធី ឧទាហរណ៍ample, #include hal_sln_coffeedb.h.
  3. កែប្រែមុខងារ HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() សម្រាប់ដោះស្រាយព្រឹត្តិការណ៍ពីលទ្ធផល UI HAL។
    • ផ្លាស់ប្តូរនិយមន័យព្រឹត្តិការណ៍ kEventFaceRecId_RegisterCoffeeSelection ទៅ kEventFaceRecId_RegisterUserFace និងរចនាសម្ព័ន្ធខ្សែអក្សរ regCoffeeSelection ទៅ regGUIFaceRec សម្រាប់ការដោះស្រាយព្រឹត្តិការណ៍ ដើម្បីបន្ថែមទិន្នន័យមុខងារមុខថ្មីទៅក្នុងមូលដ្ឋានទិន្នន័យ។
    • ដើម្បីបង្ហាញដំណើរការស្តង់ដារនៃសកម្មភាពសម្គាល់មុខនៅក្នុង example កែប្រែការគ្រប់គ្រងក្នុងករណី kEventFaceRecID_OasisSetState ជាមួយនឹងនិយមន័យនៃរដ្ឋ៖
      • kOASISLiteState
      • ការចុះឈ្មោះ kOASISLiteState
      • ការទទួលស្គាល់ kOASISLiteState
      • ឈប់
  4. បន្ថែម និងកែប្រែនិយមន័យនៃព្រឹត្តិការណ៍ដែលបានរៀបរាប់នៅក្នុងជំហានខាងលើ។
    • ចម្លងបឋមកថា file smart_tlhmi_event_descriptor.h ពី smart HMI\coffee_machine \cm7\source\event_handlers\ ចូលទៅក្នុងថតប្រភពនៃអតីតampឡេ SW ធ្វើបច្ចុប្បន្នភាព file ដូចខាងក្រោម៖
    • ផ្លាស់ប្តូរនិយមន័យព្រឹត្តិការណ៍ kEventFaceRecId_RegisterCoffeeSelection ទៅ kEventFaceRecId_RegisterUserFace ក្នុងប្រភេទ enum _event_smart_tlhmi_id និងរចនាសម្ព័ន្ធខ្សែអក្សរ regCoffeeSelection ទៅ regGUIFaceRec ក្នុង struct _event_smart_tl ដូច្នេះ ផ្លាស់ប្តូររចនាសម្ព័ន្ធ register_coffee_selection_event_t សម្រាប់ regCoffeeSelection ទៅ register_gui_facerec_event_t ។
    • លុបមាតិកាផ្សេងទៀតដែលប្រើសម្រាប់កម្មវិធីម៉ាស៊ីនកាហ្វេ ឧទាហរណ៍ample, បន្ទាត់កូដអំពីសំឡេង៖ #include “hal_event_descriptor_voice.h”។
    • បន្ថែមប្រភេទ kOASISLiteState_Stopped និង kOASISLiteState_Running ទៅប្រភេទ enum oasis_lite_state_t ក្នុង hal_vision_algo.h ក្រោម framework>hal> vision ក្នុងគម្រោងដូចខាងក្រោម៖
      typedef enum _oasis_lite_state {
      • kOASISLiteState
      • កំពុងដំណើរការ kOASISLiteState
      • បានបញ្ឈប់ kOASISLiteState
      • ការទទួលស្គាល់,
      • kOASISLiteState
      • ការចុះឈ្មោះ, kOASISLiteState
      • DeRegistration, kOASISLiteState
      • ការចុះឈ្មោះពីចម្ងាយ, kOASISLiteState
      • រាប់
    • ប្រើ struct oasis_lite_state_t ដែលបានធ្វើបច្ចុប្បន្នភាពខាងលើ ដើម្បីកែលម្អរចនាសម្ព័ន្ធ oasis_state_event_t ក្នុង hal_event_descriptor_face_rec.h ក្រោម framework>hal> vision ក្នុងគម្រោងដូចខាងក្រោម៖ typedef struct _oasis_state_event_t { oasis_lite_state_state_t } oasis_state_event_t;
  5. ផ្លាស់ប្តូរ kEventInfo_Remote ទាំងអស់ទៅជា kEventInfo_Local សម្រាប់ការផ្ញើព្រឹត្តិការណ៍ពីចក្ខុវិស័យ algo HAL ទៅ HALs ផ្សេងទៀតដែលដំណើរការលើស្នូលដូចគ្នាជាស្នូលតែមួយជំនួសឱ្យ dual-core ត្រូវបានប្រើនៅក្នុងអតីតampលេ
  6. បន្ថែម និងកែប្រែការកំណត់ខាងក្រោមសម្រាប់ការចាប់ផ្តើម oasis នៅក្នុង OASISLT_init():
    • បន្ថែមនិយមន័យម៉ាក្រូ និងផ្នែកអង្គចងចាំសម្រាប់ស៊ុមវីដេអូក្នុង board_define.h៖ #define OASIS_RGB_FRAME_WIDTH 800
      • #កំណត់ OASIS_RGB_FRAME_HEIGHT 600
      • #កំណត់ OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB
      • #កំណត់ OASIS_RGB_FRAME_BYTE_PER_PIXEL ៣
      • #កំណត់ AT_FB_SHEM_SECTION_ALIGN(var, alignbytes) \
      • __attribute__((ផ្នែក(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
      • __attribute__((តម្រឹម(តម្រឹមបៃ)))
    • កំណត់រចនាសម្ព័ន្ធការចាត់តាំងអង្គចងចាំទៅផ្នែកអង្គចងចាំខាងលើ fb_sh_mem នៅលើ គម្រោង > លក្ខណសម្បត្តិ > C/C++ Build > ការកំណត់ MCU ដែលបង្ហាញក្នុងរូបភាពទី 5៖NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (12)
    • ប្រកាសអថេរសកល g_DTCOPBuf ក្នុង lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
    • បន្តបន្ថែមនិយមន័យដែលបានប្រើនៅក្នុងអថេរខាងលើ៖
    • កំណត់ផ្នែកខាងលើក្នុង board_define.h៖
      • #កំណត់ AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
      • attribute__((ផ្នែក(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
      • attribute__((តម្រឹម(តម្រឹមបៃ)))
    • រួមបញ្ចូលបឋមកថា file hal_vision_algo.h ដែលមាននិយមន័យម៉ាក្រូ DTC_OPTIMIZE_BUFFER_SIZE ក្នុង app_config.h រួមបញ្ចូលក្នុង lvgl_gui_face_rec_cm7.cpp ។
  7. កំណត់អថេរ s_debugOption ទៅពិតសម្រាប់បង្ហាញស្ថានភាពវឌ្ឍនភាពនៅលើការសម្គាល់មុខ។
  8. បន្ថែមផ្លូវស្វែងរកនៃបឋមកថា files of the vision HAL on Project > Properties > C/C++ Build > settings > Tool Settings > MCU C compiler > Includes and MCU C++ compiler > Includes: “${workspace_loc:/${ProjName}/framework/hal/vision}”
  9. បន្ថែមនិយមន័យខាងក្រោមដើម្បីបើកការមើលឃើញ algo HAL នៅក្នុង board_define.h៖ #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec

បើកដំណើរការលទ្ធផល UI HAL
លទ្ធផល UI HAL ជូនដំណឹងព្រឹត្តិការណ៍ដល់ចក្ខុវិស័យ algo HAL និងឆ្លើយតបទៅនឹងលទ្ធផលសន្និដ្ឋានពីចក្ខុវិស័យ algo HAL ។ ជាមួយនឹងកម្មវិធី GUI ព្រឹត្តិការណ៍ជាទូទៅត្រូវបានបង្កឡើងដោយកម្មវិធី ហើយលទ្ធផលត្រូវបានបង្ហាញនៅលើកម្មវិធី។

ដើម្បីបើកវា ក្លូនកម្មវិធីបញ្ជា HAL ស្រដៀងគ្នាដែលមានស្រាប់ file ដែលជាទូទៅមុខងារខាងក្រោមត្រូវបានអនុវត្ត៖

  • ជូនដំណឹងដល់ព្រឹត្តិការណ៍សម្រាប់ការស្គាល់មុខ និងការចូលប្រើមូលដ្ឋានទិន្នន័យ។
  • អនុវត្តការហៅត្រឡប់មកវិញសម្រាប់កម្មវិធី GUI ដើម្បីបង្កឱ្យមានព្រឹត្តិការណ៍។
  • ដោះស្រាយលទ្ធផលនៃការសន្និដ្ឋានពីម៉ូឌុល algo ចក្ខុវិស័យ។
  • បង្ហាញដំណើរការ និងលទ្ធផលនៃព្រឹត្តិការណ៍ដែលគ្រប់គ្រងលើ UI ដោយរបារវឌ្ឍនភាពដែលគ្រប់គ្រងដោយឧបករណ៍កំណត់ម៉ោង និងចតុកោណកែងណែនាំមុខ។

ការងារសំខាន់ៗដើម្បីអនុវត្ត HAL សម្រាប់អតីតampដែលប្រើក្នុងឯកសារនេះគឺ៖

  • ក្លូនកម្មវិធីបញ្ជា HAL ស្រដៀងគ្នាដែលមានស្រាប់ file និងផ្លាស់ប្តូរឈ្មោះដែលពាក់ព័ន្ធ។
  • លុបលេខកូដដែលទាក់ទងនឹងកម្មវិធី។
  • ធ្វើបច្ចុប្បន្នភាពមុខងារសម្រាប់ការជូនដំណឹងព្រឹត្តិការណ៍ និងការឆ្លើយតបលទ្ធផលសម្រាប់អតីតampការរចនាឡេ។
  • បន្ថែមការហៅត្រឡប់មកវិញសម្រាប់កម្មវិធី GUI ដើម្បីបង្កព្រឹត្តិការណ៍។

ជំហានលម្អិតមានដូចខាងក្រោម៖

  1. ក្លូន hal_output_ui_coffee_machine.c. ផ្លាស់ប្តូរ fileឈ្មោះទៅ hal_ output_ui_guifacerec.c.
  2. ជំនួសខ្សែទាំងអស់ CoffeeMachine ជាមួយ GUIFaceRec នៅក្នុង file.
  3. លុបលេខកូដដែលទាក់ទងនឹងកម្មវិធី - ម៉ាស៊ីនកាហ្វេ។
    • លុបមុខងារ WakeUp() និង _StandBy() និងកូដដែលពាក់ព័ន្ធ (អាចស្វែងរកខ្សែអក្សរ wake_up និងរង់ចាំសម្រាប់ពួកវា)។
    • លុបមុនview របៀបព្រឹត្តិការណ៍គ្រប់គ្រងកូដដែលពាក់ព័ន្ធនៅក្នុង HAL_OutputDev_UiGUIFaceRec_Input Notify()។
    • លុបមុខងារ UI_xxx_Callback() និងលេខកូដដែលមានខ្សែអក្សរ gui_ និងអេក្រង់ដែលទាក់ទងនឹង GUI របស់ម៉ាស៊ីនកាហ្វេ លើកលែងតែ gui_set_virtual_face() សម្រាប់មុនview មុខងាររបៀប។
    • លុបកូដទាំងអស់ដែលពាក់ព័ន្ធនឹងអថេរ s_IsWaitingAnotherSelection និង s_IsWaitingRegisterSelection ដែលទាក់ទងនឹងកម្មវិធីម៉ាស៊ីនកាហ្វេ។
    • លុបលេខកូដដែលទាក់ទងនឹងសំឡេង សំឡេង និងភាសា។ សម្រាប់អតីតampលេ៖
      • # រួមបញ្ចូល "hal_voice_algo_asr_local.h",
      • # រួមបញ្ចូល “hal_event_descriptor_voice.h”
  4. សម្រាប់ការជូនដំណឹងអំពីព្រឹត្តិការណ៍ផ្សេងៗ សូមអនុវត្តមុខងារថ្មី _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec(), និង DeregisterGUIFaceRec() សំដៅទៅលើមុខងារ _StopFaceRec(), _RegisterCoffeeSelection(), និង DeregisterCoffeeSelection() មុនពេលពួកគេជ្រើសរើស
    • _OutputManagerNotify() អនុវត្តមុខងារលទ្ធផលព្រឹត្តិការណ៍មូលដ្ឋាន ដើម្បីផ្ញើព្រឹត្តិការណ៍មួយទៅកាន់ Vision algo HAL។ មុខងារខាងក្រោមហៅវាដើម្បីផ្ញើព្រឹត្តិការណ៍ផ្ទាល់ខ្លួនរបស់ពួកគេ។
    • _SetFaceRec() ផ្ញើព្រឹត្តិការណ៍ kEventFaceRecID_OasisSetState ដើម្បីកេះ Vision algo សម្រាប់ការចុះឈ្មោះមុខ ការទទួលស្គាល់ និងបញ្ឈប់ algo។
    • _RegisterGUIFaceRec() ផ្ញើព្រឹត្តិការណ៍ kEventFaceRecId_RegisterGUIFaceRec ដែលត្រូវបានកំណត់ក្នុង smart_tlhmi_event_descriptor.h ដើម្បីបន្ថែមទិន្នន័យមុខងារមុខទៅមូលដ្ឋានទិន្នន័យនៅពេលចុះឈ្មោះយល់ព្រម។
    • DeregisterGUIFaceRec() ផ្ញើព្រឹត្តិការណ៍ kEventFaceRecID_DelUser ដើម្បីលុបទិន្នន័យមុខងារមុខចេញពីមូលដ្ឋានទិន្នន័យ នៅពេលឆ្លងកាត់ការសម្គាល់មុខ។
  5. ធ្វើបច្ចុប្បន្នភាពលេខកូដដើម្បីធ្វើសកម្មភាពដែលត្រូវគ្នា រួមទាំងធ្វើឱ្យ GUI ឡើងវិញដោយការហៅ APIs ពីកម្មវិធី LVGL GUI សម្រាប់លទ្ធផលសន្និដ្ឋាននៃការចុះឈ្មោះមុខ និងការទទួលស្គាល់នៅក្នុងមុខងារ _InferComplete_Vision() សម្រាប់អតីតampការរចនាឡេ។ សម្រាប់អតីតample, នៅពេលដែលការចុះឈ្មោះមុខទទួលបានជោគជ័យ,
    • បញ្ឈប់ការបង្ហាញវឌ្ឍនភាពដោយការហៅទៅកាន់ _FaceRecProcess_Stop();
    • បញ្ឈប់ការចុះឈ្មោះមុខដោយការហៅទៅកាន់ _SetFaceRec(kOASISLiteState_Stopped);
    • បង្ហាញលទ្ធផលជោគជ័យនៅលើ GUI៖ gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
    • ចុះឈ្មោះទិន្នន័យមុខទៅមូលដ្ឋានទិន្នន័យ៖ _RegisterUserFace(s_UserId);
  6. បន្ថែមមុខងារហៅត្រឡប់ UI ដើម្បីដោះស្រាយព្រឹត្តិការណ៍៖ មុន។viewការចុះឈ្មោះមុខ ការទទួលស្គាល់ និងការលុបអ្នកប្រើប្រាស់ដែលបានបង្កឡើងពី GUI ។ សម្រាប់អតីតample, ការហៅត្រឡប់មកវិញនៃការចុះឈ្មោះមុខ៖ ចាត់ទុកជាមោឃៈ UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
    • ហើយបន្ថែមមុខងារ _FaceRecProcess_Start() និង _FaceRecProcess_Stop() ដើម្បីបង្ហាញវឌ្ឍនភាព និងស្ថានភាពនៅក្នុងព្រឹត្តិការណ៍ និងលទ្ធផលផ្សេងៗ។
    • ធ្វើបច្ចុប្បន្នភាពមុខងារកំណត់ម៉ោងហៅត្រឡប់ ISR _SessionTimer_Callback() ដើម្បីដោះស្រាយករណីនៃការអស់ពេលដោយការហៅទូរសព្ទ៖ gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
  7. បន្ថែមនិយមន័យខាងក្រោមដើម្បីបើកដំណើរការលទ្ធផល UI HAL នៅក្នុង board_define.h៖ #define ENABLE_OUTPUT_DEV_UiGUIFaceRec

សេចក្តីជូនដំណឹង៖
ដើម្បីបង្ហាញមុខងារសម្គាល់មុខកាន់តែប្រសើរ សូមរក្សាមុខងារដើម្បីបង្ហាញដំណើរការ និងលទ្ធផលនៃការសម្គាល់មុខនៅក្នុងលទ្ធផល UI HAL។ មុខងារត្រូវបានពិពណ៌នាដូចខាងក្រោម

  • ចតុកោណកែងមគ្គុទ្ទេសក៍មុខបង្ហាញពណ៌ខៀវ ហើយរបារវឌ្ឍនភាពបង្ហាញវឌ្ឍនភាពនៅពេលចាប់ផ្តើមការចុះឈ្មោះ ឬស្គាល់មុខ។
  • ចតុកោណកែងណែនាំមុខបង្ហាញពណ៌ក្រហម ពេលចុះឈ្មោះមុខជោគជ័យ។
  • ចតុកោណកែងណែនាំមុខបង្ហាញពណ៌បៃតង នៅពេលដែលការសម្គាល់មុខទទួលបានជោគជ័យ។
  • ចតុកោណកែងមគ្គុទ្ទេសក៍មុខរក្សាពណ៌ខៀវ ហើយរបារវឌ្ឍនភាពបង្ហាញដំណើរការពេញលេញ នៅពេលដែលសកម្មភាពមិនជោគជ័យបន្ទាប់ពីការផុតកំណត់នៃកម្មវិធីកំណត់ម៉ោង។ នៅចំណុចនោះ បញ្ឈប់ការចុះឈ្មោះ ឬការទទួលស្គាល់មុខ។

របារវឌ្ឍនភាព និងចតុកោណកែងមគ្គុទ្ទេសក៍មុខត្រូវបានបង្ហាញជារូបតំណាងដែលត្រូវបានបង្កើតឡើងនៅក្នុងប្រព័ន្ធគោលពីរធនធាន file នឹងត្រូវបានកម្មវិធីចូលទៅក្នុង Flash ។ ចំណុចចង្អុលទៅទិន្នន័យរូបតំណាងនៅលើ SDRAM ត្រូវបានតំឡើងនៅក្នុងមុខងារ LoadIcons(APP_ICONS_BASE) ដែលហៅថា លទ្ធផលចាប់ផ្តើមឧបករណ៍ UI HAL នៅក្នុងលទ្ធផល UI HAL។ វាត្រូវតែអនុវត្តការគាំទ្ររូបតំណាងសម្រាប់មុខងារ។

អនុវត្តការគាំទ្ររូបតំណាង

  1. បង្កើតធនធានដែលរួមបញ្ចូលរូបតំណាងជាមួយរូបភាពដែលបានប្រើនៅក្នុងកម្មវិធី LVGL GUI៖
    • ក្លូនរូបតំណាងទាំងបួន files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h និង virtual_face_red_420x426.h ពី smart HMI
      \coffee machine\resource\icons\ ទៅរូបតំណាងថតថ្មីនៅក្រោមថតធនធានរបស់អតីតampឡេ SW
    • បន្ថែមផ្លូវស្វែងរកសម្រាប់រូបតំណាងទាំងបួន files នៅក្នុង camera_preview_resource.txt file នៅក្នុងថតឯកសារ ឧample៖ រូបតំណាង ../resource/icons/process_bar_240x14.h
    • ប្រតិបត្តិ camera_preview_resource_build.bat ដើម្បីបង្កើតធនធានរូបភាព និងរូបតំណាងដើម្បីបង្កើតធុងសំរាម file camera_preview_resource.bin និងព័ត៌មាន file resource_information_table.txt (សូមមើលរូបភាពទី 6) ។NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (13)
  2. កំណត់អាសយដ្ឋានចាប់ផ្តើមនៅលើ SDRAM និងទំហំនៃរូបតំណាងនៅក្នុង app_config.h ។ អាសយដ្ឋានចាប់ផ្តើមនៅជាប់រូបភាពនៃកម្មវិធី GUI ។ ទំហំត្រូវបានបង្កើតនៅក្នុងព័ត៌មាន file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
  3. ធ្វើបច្ចុប្បន្នភាពទំហំដែលបានកំណត់នៃផ្នែកអង្គចងចាំដែលមានឈ្មោះ res_sh_mem ទៅ 0x200000 ដោយកំណត់វាឡើងវិញនៅក្នុង app_config.h៖ #define RES_SHEME_TOTAL_SIZE 0x200000 និងការកំណត់ដែលត្រូវគ្នានៅក្នុង គម្រោង > លក្ខណសម្បត្តិ > C/C++ Build > MCU settings។
  4. បន្ថែមទំហំរូបតំណាងទៅទំហំសរុបនៃធនធានដែលបានផ្ទុកពី Flash ទៅ SDRAM នៅក្នុងមុខងារ APP_LoadResource() នៅក្នុងមេ file lvgl_gui_face_rec_cm7.cpp៖ memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);

សេចក្តីជូនដំណឹង៖ ដើម្បីបញ្ចប់មុខងារសម្គាល់មុខ ត្រូវការជំនួយកម្មវិធី LVGL GUI ។ មុខងារហៅត្រឡប់ UI នៅក្នុងលទ្ធផល UI HAL ត្រូវបានហៅដោយកម្មវិធី LVGL GUI សម្រាប់គ្រប់គ្រងព្រឹត្តិការណ៍ពីអេក្រង់ UI ។ ម្យ៉ាងវិញទៀត លទ្ធផល UI HAL ហៅ APIs ពីកម្មវិធី LVGL GUI ដើម្បីធ្វើបច្ចុប្បន្នភាព UI ដើម្បីបង្ហាញលទ្ធផល និងស្ថានភាព។ ការអភិវឌ្ឍន៍កម្មវិធី LVGL GUI មានភាពឯករាជ្យ និងត្រូវបានណែនាំនៅក្នុងផ្នែក 4.3 ។

4.1.5 ចាប់ផ្តើមឧបករណ៍ HAL និងអ្នកគ្រប់គ្រងសម្រាប់ការសម្គាល់មុខ
ចក្ខុវិស័យដែលបានបើកដំណើរការ algo HAL និង UI លទ្ធផល HAL និងអ្នកគ្រប់គ្រងរបស់ពួកគេត្រូវបានចាប់ផ្តើមនៅក្នុងមេ file
lvgl_gui_face_rec_cm7.cpp បន្ទាប់​ពី​ការ​បំប្លែង​ការ​អភិវឌ្ឍ​នៅ​លើ​ក្របខណ្ឌ​ដូច​ខាង​ក្រោម៖

  1. រួមបញ្ចូលបឋមកថា file ទាក់ទងនឹងអ្នកគ្រប់គ្រង HAL ពីរនាក់ដោយបន្ថែមបន្ទាត់កូដ:
    • #រួមបញ្ចូល "fwk_output_manager.h"
    • # រួមបញ្ចូល “fwk_vision_algo_manager.h”
  2. ប្រកាសឧបករណ៍ HAL៖
    • HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
    • HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
  3. ចុះឈ្មោះឧបករណ៍ HAL៖
    • HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
    • HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
  4. ចាប់ផ្តើមអ្នកគ្រប់គ្រង៖
    • FWK_MANAGER_INIT(VisionAlgoManager, ret);
    • FWK_MANAGER_INIT(OutputManager, ret);
  5. ចាប់ផ្តើមអ្នកគ្រប់គ្រង៖
    • FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
    • FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
  6. កំណត់អាទិភាពនៃភារកិច្ចរបស់អ្នកគ្រប់គ្រង៖
    • #កំណត់ VISION_ALGO_MANAGER_TASK_PRIORITY 3
    • #កំណត់ OUTPUT_MANAGER_TASK_PRIORITY 1

បន្ថែមការគាំទ្រមូលដ្ឋានទិន្នន័យមុខនៅលើក្របខ័ណ្ឌ
ទិន្នន័យមុខងារមុខដែលបានចុះឈ្មោះត្រូវបានចូលប្រើក្នុងមូលដ្ឋានទិន្នន័យមុខដែលរក្សាទុកនៅលើ Flash តាមរយៈបន្តិច file ប្រព័ន្ធ។ ជំហានដើម្បីបន្ថែមការគាំទ្រមូលដ្ឋានទិន្នន័យមុខត្រូវបានពិពណ៌នាខាងក្រោម។

បន្ថែមកម្មវិធីបញ្ជាសម្រាប់ការផ្ទុក Flash
ចម្លងកម្មវិធីបញ្ជាចំណុចប្រទាក់ Flash FlexSPI files fsl_flexspi.c និង fsl_flexspi.h និងកម្មវិធីបញ្ជាការអ៊ិនគ្រីបទិន្នន័យ files fsl_caam.c និង fsl_caam.h ពីផ្លូវ SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ ទៅថតឯកសាររបស់អតីតampឡេ SW

បន្ថែមការគាំទ្រកម្រិតក្រុមប្រឹក្សាភិបាល

  1. បន្ថែមនិយមន័យនៃ FlexSPI ដែលប្រើសម្រាប់ឧបករណ៍ Flash នៅលើយន្តហោះក្នុង board.h៖
    • #កំណត់ BOARD_FLEXSPI FLEXSPI1
    • #កំណត់ BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
    • #កំណត់ BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
  2. ចម្លងប្រតិបត្តិករ និងការកំណត់រចនាសម្ព័ន្ធ files នៃឧបករណ៍ Flash flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h នៅក្រោមផ្លូវឆ្លាតវៃ HMI\coffee_machineflash\exm7ampឡេ SW
    • ដោះធីក “Exclude resource from build” នៅក្នុង C/C++ Build > Settings បន្ទាប់ពីចុចខាងស្តាំលើ files' name និងបើក Properties សម្រាប់បើកឱ្យគេសាងសង់ក្នុងគម្រោង។
  3. ផ្លាស់ប្តូរបឋមកថាដែលបានរួមបញ្ចូល fileដាក់ឈ្មោះ sln_flash_config.h ទៅ sln_flash_config_w25q256jvs.h ក្នុង sln_flash_config.c និង flexspi_nor_flash_ops.h ។
  4. កំណត់ប្រភពនាឡិកា FlexSPI1 នៅក្នុងប្រអប់ file clock_config.c សំដៅលើកម្មវិធីម៉ាស៊ីនកាហ្វេ។

បន្ថែមអាដាប់ទ័រ និងការគាំទ្រកម្រិតកណ្តាល

  1. ចម្លង files sln_flash.c, sln_flash.h, sln_encrypt.c, និង sln_encrypt.h ជាកម្មវិធីបញ្ជាអាដាប់ទ័រសម្រាប់ file ប្រព័ន្ធ និងកម្មវិធីពីផ្លូវរបស់ smart HMI\coffee_machine\cm7\source\ ទៅកាន់ប្រភពថតឯកសាររបស់អតីតampលេ ធ្វើបច្ចុប្បន្នភាពថ្មី។ files:
    • ដោះធីក “Exclude resource from build” នៅលើពួកវាសម្រាប់ការសាងសង់។
    • ផ្លាស់ប្តូរបឋមកថាដែលបានរួមបញ្ចូលទាំងអស់។ file ឈ្មោះ sln_flash_config.h ទៅ sln_flash_config_w25q256jvs.h ។
  2. ចម្លងថតឯកសារ fileប្រព័ន្ធដែលមាន APIs សម្រាប់តិចតួច fileប្រព័ន្ធ និងកម្មវិធីបញ្ជា HAL ពី smart HMI \coffee_machine\cm7\source\ ទៅកាន់អតីតampឡេ SW ហើយធ្វើបច្ចុប្បន្នភាពសម្រាប់ថតថ្មី៖
    • ដោះធីក “Exclude resource from build” នៅលើវាសម្រាប់ការសាងសង់។
    • បន្ថែមផ្លូវរួមបញ្ចូលសម្រាប់វានៅក្នុងការកំណត់គម្រោង៖ “${workspace_loc:/${ProjName}/fileប្រព័ន្ធ}”
    • ផ្លាស់ប្តូរបឋមកថាដែលបានរួមបញ្ចូល file ដាក់ឈ្មោះ sln_flash_config.h ទៅ sln_flash_config_w25q256jvs.h និង fica_definition.h ទៅ app_config.h ក្នុង file sln_flash_littlefs.h.
  3. ចម្លងថតឯកសារ littlefs ដែលមានទំនិញកណ្តាល - តិចតួច fileប្រព័ន្ធពីផ្លូវ SDK_2_13_0_ MIMXRT1170-EVK\middleware\ ទៅអតីតampឡេ SW ហើយធ្វើបច្ចុប្បន្នភាពថតថ្មី៖
    • ដោះធីក “Exclude resource from build” នៅលើវាសម្រាប់ការសាងសង់។
    • បន្ថែមផ្លូវរួមបញ្ចូលសម្រាប់វានៅក្នុងការកំណត់គម្រោង៖ “${workspace_loc:/${ProjName}/littlefs}”

បន្ថែមកម្មវិធីបញ្ជា HAL 

  • មានឧបករណ៍ HAL ពីរ - file ប្រព័ន្ធ និងមុខមូលដ្ឋានទិន្នន័យ HAL គាំទ្រសម្រាប់លក្ខណៈពិសេសការចូលប្រើមូលដ្ឋានទិន្នន័យ ហើយពួកវាត្រូវបានអនុវត្តរួចហើយនៅក្នុងក្របខ័ណ្ឌដោយគ្មានការផ្លាស់ប្តូរ។ បើកពួកវាដោយបន្ថែមនិយមន័យខាងក្រោមនៅក្នុង board_define.h៖
    • #កំណត់ ENABLE_FLASH_DEV_Littlefs
    • #កំណត់ ENABLE_FACEDB

ហើយផ្លាស់ប្តូរឈ្មោះមូលដ្ឋានទិន្នន័យមុខសម្រាប់អតីតampលេ៖ #define OASIS_FACE_DB_DIR “oasis_gui_face_rec”

បន្ថែមការគាំទ្រកម្រិតកម្មវិធី

  1. ធ្វើបច្ចុប្បន្នភាពមេ file lvgl_gui_face_rec_cm7.cpp៖
    • រួមបញ្ចូលបឋមកថា file ទាក់ទងនឹង Flash file អ្នកគ្រប់គ្រងប្រព័ន្ធ HAL ដោយបន្ថែមបន្ទាត់កូដ៖ #include “fwk_flash.h”
    • ប្រកាស និងចុះឈ្មោះ file ឧបករណ៍ HAL ប្រព័ន្ធ៖
      • HAL_FLASH_DEV_DECLARE(Littlefs);
      • HAL_FLASH_DEV_REGISTER(Littlefs, ret);
        ចំណាំ៖ នេះ។ file ប្រព័ន្ធ HAL ឧបករណ៍ត្រូវតែត្រូវបានចុះឈ្មោះ មុនពេលអ្នកគ្រប់គ្រងឧបករណ៍ទាំងអស់ត្រូវបានចាប់ផ្តើមនៅក្នុងមុខងារ APP_InitFramework()។
    • ហៅមុខងារ BOARD_ConfigMPU() នៅក្នុង APP_BoardInit() ដើម្បីកំណត់រចនាសម្ព័ន្ធ MPU ។
  2. កំណត់ file ការកំណត់ប្រព័ន្ធនៅលើ Flash នៅក្នុង file app_config.h ដោយកំណត់និយមន័យម៉ាក្រូដែលប្រើក្នុង file sln_flash_littlefs.h៖
    • #កំណត់ FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHEM_TOTAL_SIZE)
    • #កំណត់ FICA_FILE_SYS_SIZE (0x280000)

ការកំណត់រចនាសម្ព័ន្ធ
កូដដែលទាក់ទងនឹង Flash មួយចំនួនត្រូវបានប្រតិបត្តិនៅក្នុងតំបន់ SRAM ITC សម្រាប់ដំណើរការគ្រប់គ្រាន់។ ចម្លង linkscripts ថតដែលមានការកំណត់រចនាសម្ព័ន្ធ linker ពី path smart HMI\coffee_machine\cm7\ ទៅកាន់ exampឡេ SW

អនុវត្តកម្មវិធី LVGL GUI
ការអភិវឌ្ឍន៍កម្មវិធី LVGL GUI ផ្អែកលើក្របខ័ណ្ឌហៅ APIs ពីទិន្នផល UI HAL និងផ្តល់ APIs ដើម្បីបញ្ចេញ UI HAL (សូមមើលផ្នែក 4.1.3 សម្រាប់ការអនុវត្តលទ្ធផល UI HAL)។

ទោះជាយ៉ាងណាក៏ដោយ ការអនុវត្តលម្អិតនៃកម្មវិធី LVGL GUI អាស្រ័យលើតម្រូវការ និងការរចនានៃកម្មវិធី។ កម្មវិធី GUI នៅក្នុង example ត្រូវបានរចនាឡើងដូចបានរៀបរាប់នៅដើមផ្នែកទី 4 ។

ខាងក្រោមនេះជាការណែនាំអំពីការអនុវត្ត៖

  1. កូដដែលបានប្ដូរតាមបំណងត្រូវបានអនុវត្តនៅក្នុង custom.c និង custom.h ដែលផ្តល់ដោយ GUI Guider ជាចំណុចប្រទាក់រវាងគម្រោង GUI Guider និងគម្រោងប្រព័ន្ធដែលបានបង្កប់។
    •  បន្ថែមមុខងារថ្មីដែលមានឈ្មោះថា gui_xxx() នៅក្នុង custom.c ដើម្បីសម្រេចបាននូវមុខងារខាងក្រោម៖
      • សម្រាប់លទ្ធផល UI HAL និងកម្មវិធី GUI ដើម្បីធ្វើបច្ចុប្បន្នភាព UI ។
      • សម្រាប់កម្មវិធី GUI ដើម្បីបង្ករព្រឹត្តិការណ៍ដោយហៅមុខងារហៅត្រឡប់ UI ពីលទ្ធផល UI HAL។
        សម្រាប់អតីតampដូច្នេះ មុខងារថ្មី gui_event_face_rec_action() ហៅមុខងារ UI callback ដើម្បីដោះស្រាយព្រឹត្តិការណ៍មួយក្នុងចំណោមព្រឹត្តិការណ៍នៃការចុះឈ្មោះមុខ ការសម្គាល់មុខ និងការលុបអ្នកប្រើប្រាស់ដែលបានបង្កឡើងពីកម្មវិធី GUI នៅពេលដែលប៊ូតុងដែលពាក់ព័ន្ធត្រូវបានចុច។
        ចំណាំ៖ មុខងារ gui_set_virtual_face() បានហៅនៅក្នុងលទ្ធផល UI HAL សម្រាប់មុន។view របៀបត្រូវតែត្រូវបានអនុវត្តនៅក្នុង custom.c:
    •  មុខងារក្លូន gui_set_virtual_face() ពី smart HMI\coffee_machine\cm4\custom \custom.c.
    •  ប្តូរឈ្មោះធាតុក្រាហ្វិក home_img_cameraPreview ទៅ screen_img_camera_preview នៅក្នុងមុខងារ។
    •  អនុវត្តមុខងារ UI callback ជាមួយនឹងគំរូដើមដូចគ្នាចំពោះអ្នកទាំងអស់នៅក្នុងលទ្ធផល UI HAL ក្រោមការគ្រប់គ្រងនៃនិយមន័យម៉ាក្រូ #ifndef RT_PLATFORM ក្នុង custom.c សម្រាប់ភាពឆបគ្នាជាមួយគម្រោង GUI Guider ព្រោះមុខងារទាំងនេះនៅក្នុងលទ្ធផល UI HAL គឺពឹងផ្អែកលើ វេទិកាដែលបានបង្កប់។ នៅក្នុង custom.c ពួកគេពឹងផ្អែកលើកម្មវិធីក្លែងធ្វើនៅលើ GUI guider និងឯករាជ្យចំពោះវេទិកាដែលបានបង្កប់។ សម្រាប់អតីតampដូច្នេះ ការហៅត្រលប់ការចុះឈ្មោះមុខត្រូវបានអនុវត្តដូចខាងក្រោមសម្រាប់កម្មវិធីត្រាប់តាមការណែនាំរបស់ GUI ដែលដំណើរការ៖ #ifndef RT_PLATFORM ទុកជាមោឃៈ UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = មិនពិត; ត្រឡប់មកវិញ; }
      ចំណាំ៖ សូមមើលគំរូដើមដូចគ្នានៃមុខងារដែលបានណែនាំនៅក្នុងជំហានទី 6 នៃផ្នែក 4.1.3
      និយមន័យម៉ាក្រូ RT_PLATFORM ត្រូវបានកំណត់នៅលើការកំណត់គម្រោងរបស់ MCUXpresso ដូចបង្ហាញក្នុងរូបភាពទី 7៖NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (14)
    • ប្រកាសមុខងារទាំងអស់ដែលមានឈ្មោះ UI_xxx_Callback() និង gui_xxx() នៅក្នុង custom.h ហើយបន្ថែម custom.h ដែលរួមបញ្ចូលក្នុង smart_tlhmi_event_descriptor.h ដើម្បីចែករំលែក GUI APIs ទៅ UI លទ្ធផល HAL ។
  2. បង្កើត GUI នៅលើ GUI Guider:
    • ក្លូនកាមេរ៉ាថតមុន។view មានកម្មវិធីគម្រោង GUI Guider នៅក្នុងថតឯកសារ gui_guider ក្នុងកញ្ចប់កម្មវិធីមូលដ្ឋាន lvgl_gui_camera_preview_cm៧. ប្តូរឈ្មោះដែលពាក់ព័ន្ធ camera_preview ដើម្បី face_rec សម្រាប់អតីតថ្មី។ampលេ
    • ចម្លង custom.c ដែលបានធ្វើបច្ចុប្បន្នភាពខាងលើ និងផ្ទាល់ខ្លួន។ h ទៅកាន់កម្មវិធីគម្រោង GUI Guider ថ្មី។
    •  បើកគម្រោង face_rec ថ្មីនៅលើ GUI Guider ។ ធ្វើបច្ចុប្បន្នភាពដូចខាងក្រោម៖
      • បន្ថែមប៊ូតុងថ្មីដែលមានស្លាកលុបអ្នកប្រើប្រាស់។ បន្ថែមទង់ដែលលាក់ទៅវា ដូច្នេះប៊ូតុងនឹងត្រូវបានលាក់នៅពេលដែលកម្មវិធី GUI ចាប់ផ្តើម។
      • បន្ថែមបន្ទាត់កូដនៃការហៅ API gui_event_face_rec_action() ជាមួយនឹងប៉ារ៉ាម៉ែត្រ ID ព្រឹត្តិការណ៍ផ្សេងគ្នានៅលើកេះ "បានចេញផ្សាយ" នៅក្នុងការកំណត់ព្រឹត្តិការណ៍នៃប៊ូតុងទាំងអស់ ការចុះឈ្មោះ ការទទួលស្គាល់ និងលុបអ្នកប្រើប្រាស់សម្រាប់ការកេះព្រឹត្តិការណ៍នៃការចុះឈ្មោះមុខ ការសម្គាល់មុខ និងការលុបអ្នកប្រើប្រាស់។ រូបភាពទី 8 បង្ហាញលេខកូដសម្រាប់ព្រឹត្តិការណ៍នៃការចុះឈ្មោះប៊ូតុង៖NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (15)
  3. ធ្វើបច្ចុប្បន្នភាពកូដដែលបានបង្កើតពី GUI Guider ទៅគម្រោង MCUXpresso ។
    • ជំនួសមាតិកា លើកលែងតែរូបភាពថតនៅក្នុងថតដែលបានបង្កើតនៃគម្រោង MCUXpresso SW ជាមួយនឹងអ្វីដែលត្រូវគ្នានៅក្នុងថតដែលបានបង្កើតគម្រោង GUI Guider SW ។

ចំណាំ៖ សម្រាប់ព័ត៌មានលម្អិតអំពីការកែប្រែដែលបានណែនាំខាងលើ សូមពិនិត្យមើលឧampផ្នែកទន់នៅ https://mcuxpresso.nxp.com/appcodehub.

ការផ្ទៀងផ្ទាត់ជាមួយអតីតampគម្រោង

ដើម្បីទទួលបានអតីតample កញ្ចប់កម្មវិធីដែលមានធនធាន និងឧបករណ៍សម្រាប់កំណត់ចំណាំកម្មវិធីនេះ សូមចូលទៅកាន់៖ https://mcuxpresso.nxp.com/appcodehub. បើកអតីតampគម្រោងនៅលើ MCUXpresso IDE ។ បង្កើត និងកម្មវិធី .axf file ទៅអាស័យដ្ឋាន 0x30000000 ហើយសរសេរកម្មវិធីធុងធនធាន file camera_preview_resource.bin ទៅអាសយដ្ឋាន 0x30800000។

ការសម្គាល់មុខ LVGL GUI ឧample ដំណើរការជាធម្មតាដូចខាងក្រោមៈ

  • មុនview៖ ជាមួយនឹងការបើកថាមពល ការស្ទ្រីមវីដេអូដែលថតដោយកាមេរ៉ាបង្ហាញលើផ្ទៃជាក់លាក់នៃកាមេរ៉ាមុន។view នៅលើអេក្រង់ GUI ។ ស្លាកស្ថានភាពបង្ហាញ “Preview…”។ សម្រាប់ព័ត៌មានលម្អិត សូមមើលរូបភាពទី 3. ប៊ូតុងលុបអ្នកប្រើប្រាស់ត្រូវបានលាក់។ នៅពេលចុចលើផ្ទៃខាងក្រៅប៊ូតុង និងរូបភាព វាបង្ហាញមុន។view បញ្ជាក់ដូចខាងលើ បន្ទាប់ពីការចុះឈ្មោះមុខ ឬសកម្មភាពទទួលស្គាល់បានបញ្ចប់។
  • ការចុះឈ្មោះ៖
    • tartup៖ នៅពេលដែលប៊ូតុងចុះឈ្មោះត្រូវបានចុច ការចុះឈ្មោះមុខនឹងចាប់ផ្តើម។ ស្លាកស្ថានភាពផ្លាស់ប្តូរដើម្បីបង្ហាញ “ការចុះឈ្មោះ…” ចតុកោណកែងណែនាំមុខបង្ហាញពណ៌ខៀវ ហើយរបារវឌ្ឍនភាពចាប់ផ្តើមបង្ហាញវឌ្ឍនភាព។ សូមប្រាកដថាមុខរបស់អ្នកប្រើប្រាស់បង្ហាញចូលទៅក្នុងចតុកោណកែងមគ្គុទ្ទេសក៍មុខពណ៌ខៀវសម្រាប់ការចុះឈ្មោះ។
    • ជោគជ័យ៖ ស្លាកស្ថានភាពបង្ហាញ “ការចុះឈ្មោះ… យល់ព្រម” និងលេខសម្គាល់អ្នកប្រើប្រាស់ដែលបានចុះឈ្មោះ ចតុកោណកែងណែនាំមុខក្លាយជាពណ៌ក្រហម ប្រសិនបើការចុះឈ្មោះមុខជោគជ័យ មុនពេលដំណើរការបង្ហាញពេញនៅលើរបារ។
    • បរាជ័យ -> អស់ពេល៖ ស្លាកស្ថានភាពបង្ហាញ “ការចុះឈ្មោះ…អស់ពេល” ប្រសិនបើការចុះឈ្មោះមុខនៅតែបរាជ័យ នៅពេលដែលដំណើរការបង្ហាញពេញនៅលើរបារ។
    • បរាជ័យ -> ស្ទួន៖ ស្លាកស្ថានភាពបង្ហាញ “ការចុះឈ្មោះ…បរាជ័យ” ចតុកោណកែងមគ្គុទ្ទេសក៍មុខក្លាយជាពណ៌បៃតង ប្រសិនបើមុខដែលបានចុះឈ្មោះត្រូវបានទទួលស្គាល់ មុនពេលដំណើរការបង្ហាញពេញនៅលើរបារ។
  • ការទទួលស្គាល់:
    • ការចាប់ផ្តើម៖ នៅពេលចុចប៊ូតុងទទួលស្គាល់ ការសម្គាល់មុខនឹងចាប់ផ្តើម។ ស្លាកស្ថានភាពផ្លាស់ប្តូរដើម្បីបង្ហាញ “ការទទួលស្គាល់…” ចតុកោណកែងណែនាំមុខបង្ហាញពណ៌ខៀវ ហើយរបារវឌ្ឍនភាពចាប់ផ្តើមបង្ហាញវឌ្ឍនភាព។ សូមប្រាកដថាមុខរបស់អ្នកប្រើប្រាស់ត្រូវបានបង្ហាញជាចតុកោណកែងមគ្គុទ្ទេសក៍មុខពណ៌ខៀវសម្រាប់ការចុះឈ្មោះ។
    • ជោគជ័យ៖ ស្លាកស្ថានភាពបង្ហាញ “ការទទួលស្គាល់…យល់ព្រម” និងលេខសម្គាល់អ្នកប្រើប្រាស់ដែលបានទទួលស្គាល់ ចតុកោណកែងណែនាំមុខក្លាយជាពណ៌បៃតង ប្រសិនបើការសម្គាល់មុខទទួលបានជោគជ័យ មុនពេលដំណើរការបង្ហាញពេញនៅលើរបារ។ នៅចំណុចនោះប៊ូតុងលុបអ្នកប្រើប្រាស់លេចឡើង។ វាមានន័យថាអ្នកប្រើប្រាស់ត្រូវបានអនុញ្ញាតឱ្យលុបតែនៅពេលដែលវាត្រូវបានទទួលស្គាល់។
    • ជំងឺ៖ ស្លាកស្ថានភាពបង្ហាញ “ការទទួលស្គាល់…អស់ពេល” ប្រសិនបើការសម្គាល់មុខនៅតែបរាជ័យ នៅពេលដែលដំណើរការបង្ហាញពេញនៅលើរបារ។
  • លុបអ្នកប្រើប្រាស់៖ នៅពេលដែលប៊ូតុង “លុបអ្នកប្រើប្រាស់” ត្រូវបានចុច បន្ទាប់ពីការសម្គាល់មុខបានជោគជ័យ ស្លាកស្ថានភាពផ្លាស់ប្តូរដើម្បីបង្ហាញ “លុបអ្នកប្រើប្រាស់… យល់ព្រម” ជាមួយនឹងចតុកោណកែងណែនាំមុខក្លាយជាពណ៌ខៀវ ហើយដំណើរការបង្ហាញពេញនៅលើរបារ។ ប៊ូតុងលុបអ្នកប្រើប្រាស់ត្រូវបានលាក់ម្តងទៀត។ មុខ/អ្នកប្រើប្រាស់ដែលត្រូវបានទទួលស្គាល់ត្រូវបានលុបចេញពីមូលដ្ឋានទិន្នន័យ។ វាមានន័យថាមុខ/អ្នកប្រើប្រាស់នេះមិនអាចត្រូវបានទទួលស្គាល់រហូតដល់ត្រូវបានចុះឈ្មោះម្តងទៀត។

ចំណាំអំពីកូដប្រភពនៅក្នុងឯកសារ
Example កូដដែលបង្ហាញក្នុងឯកសារនេះមានសិទ្ធិរក្សាសិទ្ធិ និង BSD-3-Clause ដូចខាងក្រោម៖

រក្សាសិទ្ធិ 2024 NXP ការចែកចាយឡើងវិញ និងការប្រើប្រាស់ក្នុងទម្រង់ប្រភព និងប្រព័ន្ធគោលពីរ ដោយមានឬគ្មានការកែប្រែ ត្រូវបានអនុញ្ញាត ផ្តល់លក្ខខណ្ឌដូចខាងក្រោមត្រូវបានបំពេញ៖

  1. ការចែកចាយឡើងវិញនៃកូដប្រភពត្រូវតែរក្សាការជូនដំណឹងអំពីការរក្សាសិទ្ធិខាងលើ បញ្ជីលក្ខខណ្ឌ និងការបដិសេធខាងក្រោម។
  2. ការចែកចាយឡើងវិញក្នុងទម្រង់គោលពីរត្រូវតែបង្កើតឡើងវិញនូវការជូនដំណឹងអំពីការរក្សាសិទ្ធិខាងលើ បញ្ជីនៃលក្ខខណ្ឌ និងការមិនទទួលខុសត្រូវខាងក្រោមនៅក្នុងឯកសារ និង/ឬសម្ភារៈផ្សេងទៀតត្រូវតែផ្តល់ជូនជាមួយនឹងការចែកចាយ។
  3. ទាំងឈ្មោះនៃម្ចាស់កម្មសិទ្ធិបញ្ញា ឬឈ្មោះអ្នករួមចំណែករបស់វាមិនអាចត្រូវបានប្រើដើម្បីគាំទ្រ ឬផ្សព្វផ្សាយផលិតផលដែលទទួលបានពីកម្មវិធីនេះដោយគ្មានការអនុញ្ញាតជាលាយលក្ខណ៍អក្សរជាមុនជាក់លាក់ណាមួយឡើយ។

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

ប្រវត្តិនៃការពិនិត្យឡើងវិញ

NXP-AN14263-Implement-LVGL-GUI Face-Recognition-on-Framewor-fig- (16)

ព័ត៌មានផ្លូវច្បាប់

និយមន័យ
សេចក្តីព្រាង - ស្ថានភាពព្រាងនៅលើឯកសារបង្ហាញថាខ្លឹមសារនៅតែស្ថិតក្រោមការកែប្រែផ្ទៃក្នុងview និងស្ថិតនៅក្រោមការយល់ព្រមជាផ្លូវការ ដែលអាចបណ្តាលឱ្យមានការកែប្រែ ឬបន្ថែម។ NXP Semiconductors មិនផ្តល់ការតំណាង ឬការធានាណាមួយអំពីភាពត្រឹមត្រូវ ឬពេញលេញនៃព័ត៌មានដែលរួមបញ្ចូលនៅក្នុងកំណែព្រាងនៃឯកសារ ហើយនឹងមិនទទួលខុសត្រូវចំពោះផលវិបាកនៃការប្រើប្រាស់ព័ត៌មាននោះទេ។

ការបដិសេធ

  • ការធានា និងការទទួលខុសត្រូវមានកំណត់ - ព័ត៌មាននៅក្នុងឯកសារនេះត្រូវបានគេជឿថាមានភាពត្រឹមត្រូវ និងអាចទុកចិត្តបាន។ ទោះជាយ៉ាងណាក៏ដោយ NXP Semiconductors មិនផ្តល់ការតំណាង ឬការធានាណាមួយដែលបានបង្ហាញ ឬបង្កប់ន័យចំពោះភាពត្រឹមត្រូវ ឬពេញលេញនៃព័ត៌មាននោះទេ ហើយនឹងមិនទទួលខុសត្រូវចំពោះផលវិបាកនៃការប្រើប្រាស់ព័ត៌មាននោះទេ។ NXP Semiconductors មិនទទួលខុសត្រូវចំពោះខ្លឹមសារនៅក្នុងឯកសារនេះទេ ប្រសិនបើផ្តល់ដោយប្រភពព័ត៌មាននៅខាងក្រៅ NXP Semiconductors។
    នៅក្នុងព្រឹត្តិការណ៍ណាមួយ NXP Semiconductors នឹងមិនទទួលខុសត្រូវចំពោះការខូចខាតដោយប្រយោល ចៃដន្យ ការដាក់ទណ្ឌកម្ម ពិសេស ឬជាលទ្ធផល (រួមទាំង - ដោយគ្មានដែនកំណត់ - ប្រាក់ចំណេញដែលបាត់បង់ ការសន្សំដែលបាត់បង់ ការរំខានអាជីវកម្ម ការចំណាយទាក់ទងនឹងការដកចេញ ឬការជំនួសផលិតផល ឬថ្លៃការងារឡើងវិញ) ថាតើ ឬមិនមែនការខូចខាតបែបនេះគឺផ្អែកលើទារុណកម្ម (រួមទាំងការធ្វេសប្រហែស) ការធានា ការបំពានកិច្ចសន្យា ឬទ្រឹស្តីច្បាប់ផ្សេងទៀត។
    ទោះបីជាការខូចខាតណាមួយដែលអតិថិជនអាចកើតឡើងដោយហេតុផលណាមួយក៏ដោយ ទំនួលខុសត្រូវសរុបរបស់ NXP Semiconductors ចំពោះអតិថិជនចំពោះផលិតផលដែលបានពិពណ៌នានៅទីនេះ នឹងត្រូវកំណត់ដោយអនុលោមតាមលក្ខខណ្ឌនៃការលក់ពាណិជ្ជកម្មរបស់ NXP Semiconductors ។
  • សិទ្ធិធ្វើការផ្លាស់ប្តូរ - NXP Semiconductors រក្សាសិទ្ធិដើម្បីធ្វើការផ្លាស់ប្តូរព័ត៌មានដែលបានបោះពុម្ពផ្សាយនៅក្នុងឯកសារនេះ រួមទាំងការពិពណ៌នាអំពីផលិតផលដោយគ្មានដែនកំណត់ គ្រប់ពេលវេលា និងដោយគ្មានការជូនដំណឹងជាមុន។ ឯកសារនេះជំនួស និងជំនួសព័ត៌មានទាំងអស់ដែលបានផ្តល់មុនការបោះពុម្ពផ្សាយនៅទីនេះ។
  • ភាពស័ក្តិសមសម្រាប់ការប្រើប្រាស់ - ផលិតផល NXP Semiconductors មិនត្រូវបានរចនា អនុញ្ញាត ឬធានាឱ្យមានលក្ខណៈសមរម្យសម្រាប់ប្រើប្រាស់ក្នុងការគាំទ្រជីវិត ប្រព័ន្ធ ឬឧបករណ៍ដែលមានសារៈសំខាន់សម្រាប់ជីវិត ឬសុវត្ថិភាព ឬនៅក្នុងកម្មវិធីដែលការបរាជ័យ ឬដំណើរការខុសប្រក្រតីនៃផលិតផល NXP Semiconductors អាចរំពឹងទុកដោយហេតុផលថានឹងមានលទ្ធផលនៅក្នុង ការរងរបួសផ្ទាល់ខ្លួន ការស្លាប់ ឬទ្រព្យសម្បត្តិធ្ងន់ធ្ងរ ឬការខូចខាតបរិស្ថាន។ NXP Semiconductors និងអ្នកផ្គត់ផ្គង់របស់ខ្លួនមិនទទួលខុសត្រូវចំពោះការដាក់បញ្ចូល និង/ឬការប្រើប្រាស់ផលិតផល NXP Semiconductors នៅក្នុងឧបករណ៍ ឬកម្មវិធីនោះទេ ដូច្នេះការដាក់បញ្ចូល និង/ឬការប្រើប្រាស់បែបនេះគឺស្ថិតក្នុងហានិភ័យផ្ទាល់ខ្លួនរបស់អតិថិជន។
  • កម្មវិធី - កម្មវិធីដែលត្រូវបានពិពណ៌នានៅទីនេះសម្រាប់ផលិតផលណាមួយគឺសម្រាប់គោលបំណងបង្ហាញតែប៉ុណ្ណោះ។ NXP Semiconductors មិនធ្វើតំណាង ឬការធានាថាកម្មវិធីបែបនេះនឹងសាកសមសម្រាប់ការប្រើប្រាស់ដែលបានបញ្ជាក់ដោយមិនចាំបាច់ធ្វើតេស្ត ឬកែប្រែបន្ថែម។
    អតិថិជនត្រូវទទួលខុសត្រូវចំពោះការរចនា និងប្រតិបត្តិការនៃកម្មវិធី និងផលិតផលរបស់ពួកគេដោយប្រើប្រាស់ផលិតផល NXP Semiconductors ហើយ NXP Semiconductors មិនទទួលខុសត្រូវចំពោះជំនួយណាមួយជាមួយកម្មវិធី ឬការរចនាផលិតផលរបស់អតិថិជនឡើយ។ វាជាទំនួលខុសត្រូវតែមួយគត់របស់អតិថិជនក្នុងការកំណត់ថាតើផលិតផល NXP Semiconductors មានលក្ខណៈសមរម្យ និងសមនឹងកម្មវិធី និងផលិតផលរបស់អតិថិជនដែលបានគ្រោងទុក ក៏ដូចជាសម្រាប់កម្មវិធីដែលបានគ្រោងទុក និងការប្រើប្រាស់អតិថិជនភាគីទីបីរបស់អតិថិជនផងដែរ។ អតិថិជនគួរតែផ្តល់នូវការរចនា និងការការពារប្រតិបត្តិការសមស្រប ដើម្បីកាត់បន្ថយហានិភ័យដែលទាក់ទងនឹងកម្មវិធី និងផលិតផលរបស់ពួកគេ។ NXP Semiconductors មិនទទួលយកទំនួលខុសត្រូវណាមួយដែលទាក់ទងនឹងលំនាំដើម ការខូចខាត ការចំណាយ ឬបញ្ហាដែលផ្អែកលើភាពទន់ខ្សោយ ឬលំនាំដើមណាមួយនៅក្នុងកម្មវិធី ឬផលិតផលរបស់អតិថិជន ឬកម្មវិធី ឬការប្រើប្រាស់ដោយអតិថិជនភាគីទីបីរបស់អតិថិជននោះទេ។ អតិថិជនមានទំនួលខុសត្រូវក្នុងការធ្វើតេស្តចាំបាច់ទាំងអស់សម្រាប់កម្មវិធី និងផលិតផលរបស់អតិថិជនដោយប្រើផលិតផល NXP Semiconductors ដើម្បីជៀសវាងការបរាជ័យនៃកម្មវិធី និងផលិតផល ឬនៃកម្មវិធី ឬប្រើប្រាស់ដោយអតិថិជនភាគីទីបីរបស់អតិថិជន។ NXP មិនទទួលយកការទទួលខុសត្រូវណាមួយក្នុងន័យនេះទេ។
  • ល័ក្ខខ័ណ្ឌនៃការលក់ពាណិជ្ជកម្ម - ផលិតផល NXP Semiconductors ត្រូវបានលក់តាមលក្ខខណ្ឌទូទៅនៃការលក់ពាណិជ្ជកម្ម ដូចដែលបានចុះផ្សាយនៅ https://www.nxp.com/profile/លក្ខខណ្ឌ លុះត្រាតែមានការយល់ព្រមផ្សេងពីនេះក្នុងកិច្ចព្រមព្រៀងបុគ្គលដែលមានសុពលភាព។ ក្នុងករណីកិច្ចព្រមព្រៀងបុគ្គលត្រូវបានបញ្ចប់ មានតែលក្ខខណ្ឌនៃកិច្ចព្រមព្រៀងរៀងៗខ្លួនប៉ុណ្ណោះដែលត្រូវអនុវត្ត។ NXP Semiconductors សម្តែងការជំទាស់ចំពោះការអនុវត្តលក្ខខណ្ឌទូទៅរបស់អតិថិជនទាក់ទងនឹងការទិញផលិតផល NXP Semiconductors ដោយអតិថិជន។
  • ការត្រួតពិនិត្យការនាំចេញ - ឯកសារនេះក៏ដូចជាធាតុដែលបានពិពណ៌នានៅទីនេះអាចជាកម្មវត្ថុនៃបទប្បញ្ញត្តិត្រួតពិនិត្យការនាំចេញ។ ការនាំចេញអាចទាមទារការអនុញ្ញាតជាមុនពីអាជ្ញាធរមានសមត្ថកិច្ច។
  • ភាពស័ក្តិសមសម្រាប់ប្រើប្រាស់ក្នុងផលិតផលដែលមិនមានគុណភាពសម្រាប់រថយន្ត — លុះត្រាតែឯកសារនេះបញ្ជាក់យ៉ាងច្បាស់ថាផលិតផល NXP Semiconductors ជាក់លាក់នេះគឺមានលក្ខណៈសម្បត្តិគ្រប់គ្រាន់សម្រាប់យានយន្តនោះ ផលិតផលមិនស័ក្តិសមសម្រាប់ការប្រើប្រាស់រថយន្តទេ។ វាមិនមានលក្ខណៈសម្បត្តិគ្រប់គ្រាន់ ឬត្រូវបានសាកល្បងដោយអនុលោមតាមការធ្វើតេស្តរថយន្ត ឬតម្រូវការកម្មវិធី NXP Semiconductors មិនទទួលខុសត្រូវចំពោះការរួមបញ្ចូល និង/ឬការប្រើប្រាស់ផលិតផលដែលមិនមានគុណភាពសម្រាប់រថយន្តនៅក្នុងឧបករណ៍ ឬកម្មវិធីរថយន្ត។
    ក្នុងករណីដែលអតិថិជនប្រើប្រាស់ផលិតផលសម្រាប់ការរចនា និងប្រើប្រាស់ក្នុងកម្មវិធីរថយន្តទៅនឹងលក្ខណៈបច្ចេកទេស និងស្តង់ដាររថយន្ត អតិថិជន (ក) ត្រូវប្រើប្រាស់ផលិតផលដោយគ្មានការធានារបស់ NXP Semiconductors នៃផលិតផលសម្រាប់កម្មវិធីរថយន្ត ការប្រើប្រាស់ និងលក្ខណៈបច្ចេកទេស និង ( ខ) រាល់ពេលដែលអតិថិជនប្រើប្រាស់ផលិតផលសម្រាប់កម្មវិធីរថយន្តលើសពីលក្ខណៈបច្ចេកទេសរបស់ NXP Semiconductors ការប្រើប្រាស់បែបនេះត្រូវប្រឈមមុខនឹងហានិភ័យផ្ទាល់របស់អតិថិជន ហើយ (គ) អតិថិជននឹងសងសំណងទាំងស្រុងនូវ NXP Semiconductors សម្រាប់ការទទួលខុសត្រូវ ការខូចខាត ឬការទាមទារផលិតផលដែលបរាជ័យដែលបណ្តាលមកពីការរចនា និងការប្រើប្រាស់របស់អតិថិជន។ ផលិតផលសម្រាប់កម្មវិធីរថយន្តលើសពីការធានាស្តង់ដាររបស់ NXP Semiconductors និងផលិតផលជាក់លាក់របស់ NXP Semiconductors ។
  • ការបកប្រែ - កំណែដែលមិនមែនជាភាសាអង់គ្លេស (បកប្រែ) នៃឯកសារ រួមទាំងព័ត៌មានផ្លូវច្បាប់នៅក្នុងឯកសារនោះ គឺសម្រាប់ជាឯកសារយោងតែប៉ុណ្ណោះ។ កំណែជាភាសាអង់គ្លេសនឹងមានសុពលភាពក្នុងករណីមានភាពខុសគ្នារវាងកំណែដែលបានបកប្រែ និងភាសាអង់គ្លេស។
  • សន្តិសុខ - អតិថិជនយល់ថាផលិតផល NXP ទាំងអស់អាចទទួលរងនូវភាពងាយរងគ្រោះដែលមិនស្គាល់អត្តសញ្ញាណ ឬអាចគាំទ្រស្តង់ដារសុវត្ថិភាពដែលបានបង្កើតឡើង ឬលក្ខណៈជាក់លាក់ជាមួយនឹងដែនកំណត់ដែលគេស្គាល់។ អតិថិជនទទួលខុសត្រូវចំពោះការរចនា និងប្រតិបត្តិការនៃកម្មវិធី និងផលិតផលរបស់ខ្លួនពេញមួយវដ្តជីវិតរបស់ពួកគេ ដើម្បីកាត់បន្ថយឥទ្ធិពលនៃភាពងាយរងគ្រោះទាំងនេះលើកម្មវិធី និងផលិតផលរបស់អតិថិជន។ ទំនួលខុសត្រូវរបស់អតិថិជនក៏ពង្រីកដល់បច្ចេកវិទ្យាបើកចំហ និង/ឬកម្មសិទ្ធិផ្សេងទៀតដែលគាំទ្រដោយផលិតផល NXP សម្រាប់ប្រើប្រាស់ក្នុងកម្មវិធីរបស់អតិថិជន។ NXP មិនទទួលខុសត្រូវចំពោះភាពងាយរងគ្រោះណាមួយឡើយ។ អតិថិជនគួរតែពិនិត្យមើលការអាប់ដេតសុវត្ថិភាពពី NXP ជាទៀងទាត់ ហើយតាមដានដោយសមរម្យ។ អតិថិជនត្រូវជ្រើសរើសផលិតផលដែលមានលក្ខណៈពិសេសសុវត្ថិភាពដែលសមស្របបំផុតនឹងច្បាប់ បទប្បញ្ញត្តិ និងស្តង់ដារនៃកម្មវិធីដែលមានបំណង ហើយធ្វើការសម្រេចចិត្តរចនាចុងក្រោយទាក់ទងនឹងផលិតផលរបស់ខ្លួន ហើយទទួលខុសត្រូវទាំងស្រុងចំពោះការអនុលោមតាមតម្រូវការច្បាប់ និយតកម្ម និងសុវត្ថិភាពទាំងអស់ទាក់ទងនឹងផលិតផលរបស់ខ្លួន ដោយមិនគិតពី នៃព័ត៌មាន ឬជំនួយដែលអាចត្រូវបានផ្តល់ដោយ NXP ។

NXP មានក្រុមឆ្លើយតបឧប្បត្តិហេតុសុវត្ថិភាពផលិតផល (PSIRT) (អាចទាក់ទងបាននៅ PSIRT@nxp.com) ដែលគ្រប់គ្រងការស៊ើបអង្កេត ការរាយការណ៍ និងការចេញផ្សាយដំណោះស្រាយចំពោះភាពងាយរងគ្រោះផ្នែកសុវត្ថិភាពនៃផលិតផល NXP ។
NXP B.V. — NXP B.V. មិនមែនជាក្រុមហ៊ុនប្រតិបត្តិការទេ ហើយវាមិនចែកចាយ ឬលក់ផលិតផលទេ។

ពាណិជ្ជសញ្ញា
សេចក្តីជូនដំណឹង៖ ម៉ាកដែលបានយោងទាំងអស់ ឈ្មោះផលិតផល ឈ្មោះសេវាកម្ម និងពាណិជ្ជសញ្ញា គឺជាកម្មសិទ្ធិរបស់ម្ចាស់រៀងៗខ្លួន។

អិន។ ភី។ ភី - ពាក្យនិងនិមិត្តសញ្ញាគឺជាពាណិជ្ជសញ្ញារបស់ NXP BV

AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed Enabled, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile — គឺជាពាណិជ្ជសញ្ញា និង/ឬពាណិជ្ជសញ្ញាដែលបានចុះបញ្ជីរបស់ Arm Limited (ឬសាខា ឬសាខារបស់វា) នៅសហរដ្ឋអាមេរិក និង/ឬ កន្លែងផ្សេងទៀត។ បច្ចេកវិទ្យាដែលពាក់ព័ន្ធអាចត្រូវបានការពារដោយប៉ាតង់ ការរក្សាសិទ្ធិ ការរចនា និងអាថ៌កំបាំងពាណិជ្ជកម្មណាមួយ។ រក្សា​រ​សិទ្ធ​គ្រប់យ៉ាង។

  • i.MX — គឺជាពាណិជ្ជសញ្ញារបស់ NXP BV
  • J-Link - គឺជាពាណិជ្ជសញ្ញារបស់ SEGGER Microcontroller GmbH ។

Microsoft, Azure, និង ThreadX - គឺជាពាណិជ្ជសញ្ញារបស់ក្រុមក្រុមហ៊ុន Microsoft ។

សូមជ្រាបថា ការជូនដំណឹងសំខាន់ៗទាក់ទងនឹងឯកសារនេះ និងផលិតផលដែលបានពិពណ៌នានៅទីនេះ ត្រូវបានដាក់បញ្ចូលក្នុងផ្នែក 'ព័ត៌មានផ្លូវច្បាប់'។

© 2024 NXP BV
សម្រាប់ព័ត៌មានបន្ថែម សូមចូលទៅកាន់៖ https://www.nxp.com

  • កាលបរិច្ឆេទចេញផ្សាយ៖ ១៩ មេសា ២០១១
  • ឧបករណ៍កំណត់អត្តសញ្ញាណឯកសារ: AN14263

សំណួរគេសួរញឹកញាប់

Q: តើអ្វីជាគោលបំណងសំខាន់នៃផលិតផលនេះ?
ចម្លើយ៖ គោលបំណងសំខាន់គឺដើម្បីបើកមុខងារសម្គាល់មុខដោយប្រើគំរូក្បួនដោះស្រាយចក្ខុវិស័យ AI&ML ជាមួយនឹង LVGL GUI សាមញ្ញ។ample នៅលើក្តារ SLN-TLHMI-IOT ។

សំណួរ៖ តើ​អ្នក​អភិវឌ្ឍន៍​អាច​ទទួល​បាន​អត្ថប្រយោជន៍​ពី​កម្មវិធី​ចំណាំ​នេះ​ដោយ​របៀប​ណា?
ចម្លើយ៖ អ្នកអភិវឌ្ឍន៍អាចរៀនពីរបៀបអនុវត្តការសម្គាល់មុខនៅលើក្របខណ្ឌមួយជំហានម្តងមួយៗដោយប្រើឧample និងយល់ពីអ្នកគ្រប់គ្រងឧបករណ៍ ឧបករណ៍ HAL និងយន្តការព្រឹត្តិការណ៍ដែលពាក់ព័ន្ធ។

ឯកសារ/ធនធាន

NXP AN14263 អនុវត្តការទទួលស្គាល់មុខ LVGL GUI នៅលើ Framewor [pdf] ការណែនាំអ្នកប្រើប្រាស់
AN14263 អនុវត្តការទទួលស្គាល់មុខ LVGL GUI នៅលើ Framewor, AN14263, អនុវត្តការទទួលស្គាល់មុខ LVGL GUI នៅលើ Framewor, ការទទួលស្គាល់មុខ LVGL GUI នៅលើ Framewor, ការទទួលស្គាល់មុខនៅលើ Framewor, ការទទួលស្គាល់លើ Framewor, Framewor

ឯកសារយោង

ទុកមតិយោបល់

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ វាលដែលត្រូវការត្រូវបានសម្គាល់ *