NXP AN14263 განახორციელეთ LVGL GUI სახის ამოცნობა Framewor-ზე
პროდუქტის ინფორმაცია
სპეციფიკაციები
- პროდუქტის დასახელება: LVGL GUI სახის ამოცნობა ჩარჩოზე
- დოკუმენტის გადახედვა: 1 წლის 19 – 2024 აპრილი
- საკვანძო სიტყვები: სახის ამოცნობა, LVGL GUI, ჩარჩო
პროდუქტის გამოყენების ინსტრუქცია
- დასრულდაview
ეს პროდუქტი საშუალებას აძლევს AI&ML ხედვის ალგორითმის მოდელს სახის ამოცნობისთვის ჩარჩოზე, რათა განახორციელოს სახის ამოცნობის ფუნქცია მარტივი LVGL GUI ex-ით.ampSLN-TLHMI-IOT დაფაზე. - ჩარჩო დასრულდაview
გადაწყვეტის პროგრამული უზრუნველყოფა შექმნილია ჩარჩოს არქიტექტურის ირგვლივ, რომელიც მოიცავს მოწყობილობების მენეჯერებს, რომლებიც პასუხისმგებელნი არიან მოწყობილობების მართვაზე, HAL მოწყობილობებს ძირითადი დეტალების აბსტრაქტისათვის და მოვლენებს სხვადასხვა მოწყობილობებს შორის კომუნიკაციისთვის. - მახასიათებლები
პროდუქტი საშუალებას გაძლევთ განახორციელოთ სახის ამოცნობის ფუნქცია წინასწარ კამერის საშუალებითview GUI ეკრანზე ღილაკებით სახის რეგისტრაციის, ამოცნობისა და ამოღების გასააქტიურებლად. რეგისტრირებული სახის მონაცემები ინახება Flash-ზე a file სისტემა. - განაცხადის შენიშვნის შინაარსი
განაცხადის შენიშვნა წარმოადგენს LVGL GUI ეკრანს კამერით წინასწარview და ღილაკები სახესთან დაკავშირებული მოქმედებებისთვის. ის ეხმარება დეველოპერებს გააცნობიერონ ჩარჩო და როგორ განახორციელონ სახის ამოცნობა მოწოდებული ყოფილი გამოყენებითampლე.
დასრულდაview
NXP-მა გამოუშვა გადაწყვეტილებების განვითარების ნაკრები სახელად SLN-TLHMI-IOT, რომელიც ფოკუსირებულია ჭკვიანი HMI აპლიკაციებზე. ის საშუალებას აძლევს ჭკვიან HMI-ს ML ხედვით, ხმით და გრაფიკული ინტერფეისით დანერგილი ერთ NXP i.MX RT117H MCU-ზე. SDK-ზე დაყრდნობით, გადაწყვეტის პროგრამული უზრუნველყოფა აგებულია დიზაინზე, რომელსაც ეწოდება ჩარჩო, რომელიც მხარს უჭერს მოქნილ დიზაინს და ხედვისა და ხმის ფუნქციების პერსონალიზაციას. იმისათვის, რომ მომხმარებლებს დაეხმარონ პროგრამული უზრუნველყოფის პლატფორმის უკეთ გამოყენებაში, მოწოდებულია რამდენიმე ძირითადი დოკუმენტი, მაგample, პროგრამული უზრუნველყოფის განვითარების მომხმარებლის სახელმძღვანელო. სახელმძღვანელო წარმოგიდგენთ აპლიკაციების ძირითად პროგრამულ დიზაინს და არქიტექტურას, რომელიც მოიცავს გადაწყვეტის ყველა კომპონენტს, ჩარჩოს ჩათვლით, რათა დაეხმაროს დეველოპერებს უფრო მარტივად და ეფექტურად განახორციელონ თავიანთი აპლიკაციები SLN-TLHMI-IOT-ის გამოყენებით.
დამატებითი ინფორმაციისთვის გადაწყვეტის და შესაბამისი დოკუმენტების შესახებ ეწვიეთ web NXP EdgeReady Smart HMI Solution-ის გვერდი, რომელიც დაფუძნებულია i.MX RT117H-ზე ML Vision, Voice და გრაფიკული ინტერფეისით. თუმცა, დეველოპერებისთვის ჯერ კიდევ არც ისე ადვილია მათი ჭკვიანი HMI აპლიკაციების დანერგვა ამ ძირითადი სახელმძღვანელოების მითითებით. დაგეგმილია აპლიკაციის შენიშვნების სერია, რათა დაეხმაროს ჩარჩოს განვითარების ეტაპობრივად შესწავლას. აპლიკაციის ეს შენიშვნა ეფუძნება Implement LVGL GUI Camera Preview ჩარჩოზე (დოკუმენტი AN14147). აპლიკაციის ეს შენიშვნა აღწერს, თუ როგორ უნდა ჩართოთ AI&ML ხედვის ალგორითმის მოდელი ჩარჩოზე სახის ამოცნობისთვის, რათა განახორციელოს სახის ამოცნობის ფუნქცია კამერის წინასწარი საშუალებით.view GUI ეკრანზე მარტივი LVGL GUI exampSLN-TLHMI-IOT დაფაზე. განცხადების შენიშვნაში ყოფილიample წარმოგიდგენთ LVGL GUI ეკრანს კამერით წინასწარview და რამდენიმე ღილაკი სახის რეგისტრაციის, ამოცნობისა და ამოღების გასააქტიურებლად. რეგისტრირებული სახის მონაცემები ინახება Flash-ზე ცოტათი file სისტემა.
მაღალ დონეზე, განაცხადის შენიშვნა შეიცავს შემდეგ შინაარსს:
- ჩართეთ სახის ამოცნობის ფუნქცია ჩარჩოზე.
- დაამატეთ სახის მონაცემთა ბაზის მხარდაჭერა ჩარჩოზე file სისტემა Flash-ზე.
- განახორციელეთ LVGL GUI აპი. ზემოთ მოყვანილი შესავლებით, ეს დოკუმენტი ეხმარება დეველოპერებს:
- უფრო ღრმად გაიგეთ ჩარჩო და ჭკვიანი HMI გადაწყვეტის პროგრამული უზრუნველყოფა.
- განავითარეთ მათი AI&ML სახის ამოცნობა ჩარჩოზე LVGL GUI აპლიკაციით.
ჩარჩო დასრულდაview
გადაწყვეტის პროგრამული უზრუნველყოფა, უპირველეს ყოვლისა, შექმნილია ჩარჩოს არქიტექტურის გამოყენების შესახებ, რომელიც შედგება რამდენიმე განსხვავებული ნაწილისგან:
- მოწყობილობის მენეჯერები - ძირითადი ნაწილი
- Hardware Abstraction Layer (HAL) მოწყობილობები
- შეტყობინებები/მოვლენები
როგორც ნაჩვენებია სურათზე 1, ზედview ჩარჩოს მექანიზმი არის:
მოწყობილობის მენეჯერები პასუხისმგებელნი არიან სისტემის მიერ გამოყენებული მოწყობილობების მართვაზე. მოწყობილობის თითოეულ ტიპს (შემავალი, გამომავალი და ა.შ.) აქვს საკუთარი ტიპის სპეციფიკური მოწყობილობის მენეჯერი. როდესაც მოწყობილობის მენეჯერი იწყება მოწყობილობების დარეგისტრირების შემდეგ, ის ელოდება და ამოწმებს შეტყობინებას მოწყობილობებისთვის და სხვა მენეჯერებისთვის მონაცემების გადასაცემად რეგისტრირებული მოწყობილობების ინიციალიზაციისა და გაშვების შემდეგ. HAL მოწყობილობები იწერება ქვედა დონის დრაივერის კოდის თავზე, რაც ხელს უწყობს კოდის გაგების გაზრდას მრავალი ძირითადი დეტალის აბსტრაქციის გზით.
მოვლენები არის საშუალება, რომლითაც ხდება ინფორმაციის კომუნიკაცია სხვადასხვა მოწყობილობებს შორის მათი მენეჯერების მეშვეობით. როდესაც ღონისძიების გააქტიურება ხდება, მოწყობილობა, რომელმაც პირველად მიიღო ღონისძიება, აცნობებს ამ მოვლენას თავის მენეჯერს, შემდეგ კი ის აცნობებს სხვა მენეჯერებს, რომლებიც დანიშნულია ღონისძიების მისაღებად.
ჩარჩოს არქიტექტურული დიზაინი ორიენტირებული იყო სამ ძირითად მიზანზე:
- გამოყენების სიმარტივე
- მოქნილობა/პორტაბელურობა
- შესრულება
ჩარჩო შექმნილია იმისთვის, რომ დააჩქაროს დრო ბაზარზე ხედვისა და მანქანური სწავლების სხვა აპლიკაციებისთვის. მარკეტინგის სწრაფი დროის უზრუნველსაყოფად, მნიშვნელოვანია, რომ თავად პროგრამული უზრუნველყოფა იყოს ადვილად გასაგები და შეცვლილი. ამ მიზნის გათვალისწინებით, ჩარჩოს არქიტექტურა ადვილად შეიცვლება შეზღუდვის გარეშე და შესრულების ხარჯების გარეშე.
ჩარჩოს შესახებ დამატებითი ინფორმაციისთვის იხილეთ Smart HMI Software Development User Guide (დოკუმენტი MCU-SMHMI-SDUG).
მსუბუქი და მრავალმხრივი გრაფიკული ბიბლიოთეკა (LVGL)
LVGL (მსუბუქი და მრავალმხრივი გრაფიკული ბიბლიოთეკა) არის უფასო და ღია კოდის გრაფიკული ბიბლიოთეკა, რომელიც უზრუნველყოფს ყველაფერს, რაც გჭირდებათ ჩაშენებული GUI-ის შესაქმნელად ადვილად გამოსაყენებელი გრაფიკული ელემენტებით, ლამაზი ვიზუალური ეფექტებით და დაბალი მეხსიერების კვალით.
GUI სახელმძღვანელო
GUI Guider არის მოსახერხებელი გრაფიკული მომხმარებლის ინტერფეისის განვითარების ინსტრუმენტი NXP-ისგან, რომელიც იძლევა მაღალი ხარისხის ეკრანების სწრაფ განვითარებას ღია კოდის LVGL გრაფიკული ბიბლიოთეკით. GUI Guider-ის drag-and-drop რედაქტორი აადვილებს LVGL-ის მრავალი მახასიათებლის გამოყენებას, როგორიცაა ვიჯეტები, ანიმაციები და სტილები GUI-ის შესაქმნელად მინიმალური ან საერთოდ კოდირების გარეშე.
ღილაკზე დაწკაპუნებით შეგიძლიათ თქვენი აპლიკაციის გაშვება სიმულაციურ გარემოში ან მისი ექსპორტი სამიზნე პროექტში. GUI Guider-ისგან გენერირებული კოდი მარტივად შეიძლება დაემატოს თქვენს პროექტს, რაც დააჩქარებს განვითარების პროცესს და საშუალებას მოგცემთ შეუფერხებლად დაამატოთ ჩაშენებული მომხმარებლის ინტერფეისი თქვენს აპლიკაციაში. GUI Guider უფასოა NXP-ის ზოგადი დანიშნულების და კროსოვერის MCU-ებთან გამოსაყენებლად და მოიცავს ჩაშენებულ პროექტების შაბლონებს რამდენიმე მხარდაჭერილი პლატფორმისთვის. იმისათვის, რომ შეიტყოთ მეტი LVGL და GUI განვითარების შესახებ GUI Guider-ზე, შეამოწმეთ მსუბუქი და მრავალმხრივი გრაფიკული ბიბლიოთეკა და GUI სახელმძღვანელო.
განვითარების გარემო
პირველ რიგში, მოამზადეთ და დააყენეთ ტექნიკისა და პროგრამული უზრუნველყოფის გარემო ყოფილი პროგრამის განსახორციელებლადampჩარჩოზე.
აპარატურის გარემო
ტექნიკის გარემო შექმნილია ყოფილი შემოწმებისთვისampლე:
- ჭკვიანი HMI განვითარების ნაკრები NXP i.MX RT117H-ზე დაფუძნებული (SLN_TLHMI_IOT ნაკრები)
- SEGGER J-Link 9-პინიანი Cortex-M ადაპტერით და V7.84a ან დრაივერის უფრო ახალი ვერსიით
პროგრამული გარემო
პროგრამული გარემო შექმნილია ყოფილი განვითარებისთვისampლე:
- MCUXpresso IDE V11.7.0
- GUI Guider V1.6.1-GA
- lvgl_gui_camera_preview_სმ7 – მაგampმეორე აპლიკაციის შენიშვნის კოდი, როგორც განვითარების საფუძველი. დეტალებისთვის იხ https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0 – როგორც კოდის რესურსი განვითარებისთვის.
- SLN-TLHMI-IOT პროგრამული უზრუნველყოფა V1.1.2 – ჭკვიანი HMI კოდი, რომელიც გამოქვეყნებულია NXP GitHub საცავში, როგორც კოდის რესურსი განვითარებისთვის. დეტალებისთვის იხილეთ: GitHub – NXP/mcu-smhmi v1.1.2-ზე
პროგრამული უზრუნველყოფის გარემოს შეძენისა და დაყენების შესახებ დეტალებისთვის იხილეთ: SLN-TLHMI-IOT-ის დაწყება.
ხედვის არქიტექტურა ჩარჩოზე
ჩარჩოზე ხედვის არქიტექტურა ნაჩვენებია სურათზე 2. ხედვის ალგო HAL (OASIS_HAL) აქვს შემდეგი პროცესები:
- შეასრულეთ სახის რეგისტრაცია და ამოცნობა AI&ML ხედვის ალგორითმის მოდელის მეშვეობით, გამომავალი UI HAL-დან შესაბამისი მოვლენების მიღების შემდეგ. აცნობეთ დასკვნის შედეგების ალგორითმის მოდელიდან გამომავალი UI HAL.
- წვდომა (დამატება, წაშლა...) სახის მახასიათებლების მონაცემთა ბაზას მცირეზე დაყრდნობით file სისტემა FaceDB HAL-ის API-ების გამოძახებით გამომავალი UI HAL-დან შესაბამისი მოვლენების მიღების შემდეგ.
- სახის რეგისტრაციისა და ამოცნობის შესრულებისას მოითხოვეთ კამერის ვიდეო ჩარჩო კამერისგან HAL.
განახორციელეთ სახის ამოცნობა ჩარჩოზე
LVGL GUI სახის ამოცნობა მაგampლე (ყოფილიampლე მოწოდებულია მოგვიანებით) ჩარჩოზე დანერგილია ყოფილი საფუძველზეampიმპლემენტაციის LVGL GUI კამერის წინა კოდებიview ჩარჩოზე (დოკუმენტი AN14147).
სახის ამოცნობის დემონსტრირებისთვის ყოფილშიampასე რომ, GUI აპლიკაციის ძირითადი ფუნქცია (იხილეთ მთავარი ეკრანი სურათზე 3) შექმნილია როგორც ქვემოთ აღწერილი:
- GUI აპი იწვევს სახის რეგისტრაციის ან ამოცნობის მოვლენას გამომავალ UI HAL-ზე ღილაკზე რეგისტრაცია ან ამოცნობის დაწკაპუნებისას. და გამომავალი UI HAL აცნობებს მომხმარებლის დამატების მოვლენას ხედვის ალგო HAL-ში მას შემდეგ, რაც სახის რეგისტრაცია წარმატებული იქნება.
- GUI აპი იწვევს მომხმარებლის წაშლის მოვლენას გამომავალ UI HAL-ში ღილაკზე Delete User დაწკაპუნების შემდეგ მომხმარებლის სახის ამოცნობის შემდეგ.
- GUI აპი იწვევს ოაზისის ალგოს შეჩერების მოვლენას გამომავალი UI HAL-ზე ღილაკებისა და სურათების გარეთ ეკრანზე დაწკაპუნებისას.
მოამზადეთ პროგრამული პაკეტი ყოფილი განხორციელებისთვისampლე.
- ბაზის პროგრამული უზრუნველყოფის კლონირება lvgl_gui_camera_preview_სმ7. შეცვალეთ პროექტის სახელი და მთავარი fileსახელი lvgl_gui_face_rec_cm7.
- პროგრამული უზრუნველყოფაში საჭიროა ფრეიმერის განახლება, რადგან ჩარჩო ბირთვის წყაროს კოდები საჯარო გახდა GitHub-ზე 1.1.2 ვერსიიდან.
- ჩაანაცვლეთ Framework საქაღალდე V1.1.2-ის ასლით GitHub-ის გარდა files fwk_log.h და fwk_common.h ქვეშ inc\, რადგან ისინი შეცვლილია განაცხადის შენიშვნის სერიისთვის. ოპერაციები ნაჩვენებია სურათზე 4:
- წაშალეთ საქაღალდე framework_cm7 libs ჯგუფის ქვეშ და წაშალეთ ბიბლიოთეკის Framework_cm7 და მისი ძიების გზა, რომელიც არის კონფიგურირებული Project > Properties > C/C++ Build > settings > Tool Settings > MCU C++ Linker > Libraries, ვინაიდან ძირითადი კოდი მოწოდებულია.
ჩართეთ სახის ამოცნობის ფუნქცია ჩარჩოზე
სახის ამოცნობის ფუნქცია აგებულია ML ხედვის ალგორითმის მოდელზე, რომელიც მოწოდებულია სტატიკური ბიბლიოთეკის სახით - Oasis lite Runtime ბიბლიოთეკა NXP-ის მიერ. ბიბლიოთეკა არის პატარა, ძალიან ეფექტური, მორგებული და ოპტიმიზებული AI ბიბლიოთეკა. მოდელი მოიცავს სახის ამოცნობას, სახის ამოცნობას, შუშის ამოცნობას და სიცოცხლის ამოცნობას. ის ძირითადად უზრუნველყოფს API OASISLT_run_extended() სახის ამოცნობის მილსადენის გასაშვებად, აბონენტისთვის შედეგების განახლებისას მოვლენის გამოძახების გზით, და მონაცემთა ბაზის სახეების დამატების/განახლების/წაშლის სახეების მონაცემთა ბაზის გამოძახების მეშვეობით წყაროს ჩარჩოს ინფორმაციის, გამოძახებების და მეხსიერების მითითების შემდეგ. აუზი გამოიყენება ბიბლიოთეკის მიერ ინიციალიზაციისას სხვა API OASISLT_init()-ის გამოძახებით. API-ების გამოძახება და გამოძახების ფუნქციები განხორციელებულია ჩარჩოს ხედვის ალგოში HAL.
დაამატეთ ხედვის ალგოს მოდელის ბიბლიოთეკა
- დააკოპირეთ საქაღალდე ოაზისი, რომელიც შეიცავს ბიბლიოთეკას და შესაბამის სათაურს file ჭკვიანი HMI\ყავის_მანქანიდან\cm7\libs\ ყოფილი საქაღალდის libs-შიample SW.
- დაამატეთ სათაურის საძიებო გზა file პროექტში > თვისებები > C/C++ Build > პარამეტრები > ხელსაწყოების პარამეტრები > MCU C შემდგენელი > მოიცავს და MCU C++ შემდგენელი > შეიცავს: „${workspace_loc:/${ProjName}/libs/oasis/include}“
- დაამატეთ lib და მისი ძიების გზა პროექტზე > თვისებები > C/C++ Build > პარამეტრები > MCU C+ + Linker > ბიბლიოთეკები: liboasis_lite2D_DEFAULT_117f_ae.a „${workspace_loc:/${ProjName}/libs/oasis}“ და მაკრო განსაზღვრება ჩართეთ ფუნქცია Project-ზე > Properties > C/C++ Build > პარამეტრები > Tool Settings > MCU C compiler > Preprocessor and MCU C++ compiler > Preprocessor: SMART_TLHMI_2D
ჩართეთ ხედვის ალგო HAL
ხედვის ალგო HAL ამუშავებს ხედვის ალგო მოდელს და პასუხობს შედეგებს UI გამომავალ HAL-ზე მისგან მოვლენების მიღების შემდეგ.
მის გასააქტიურებლად, კლონირეთ არსებული მსგავსი HAL დრაივერი file სადაც განხორციელებულია შემდეგი ფუნქციები:
- სახეების მონაცემთა ბაზის ოპერაციებისა და მოვლენების დამუშავების გამოძახების განხორციელება.
- მიიყვანეთ ხედვის ალგო ოაზისის ბიბლიოთეკის API-ების გამოძახებით.
- წვდომა მომხმარებლის სახეების მონაცემთა ბაზასა და აპლიკაციების მონაცემთა ბაზაში (ეს არ არის საჭირო მაგampლე).
- მიიღეთ მოვლენები და გაგზავნეთ შედეგები გამომავალი UI HAL.
ძირითადი სამუშაოები HAL-ის განხორციელებაზე ყოფილიampარიან:
- არსებული მსგავსი HAL დრაივერის კლონირება file და შეცვალეთ დაკავშირებული სახელები.
- წაშალეთ აპლიკაციის მონაცემთა ოპერაციებთან დაკავშირებული კოდები.
- განაახლეთ დეფინიციები და ფუნქციები მოვლენების მართვისთვის გამომავალი UI HAL-დან ყოფილი ვერსიის მიხედვითampდიზაინი.
- დაამატეთ ოაზისის ინიციალიზაციისას საჭირო კონფიგურაციები.
დეტალური ნაბიჯები შემდეგია:
- კლონირება hal_vision_algo_oasis_coffeemachine.c. Შეცვალე fileსახელი hal_vision_algo_oasis_guifacerec.c. და შეცვალეთ ყველა სტრიქონი CoffeeMachine-ით GUIFaceRec-ით file.
- წაშალეთ კოდები, რომლებიც შეიცავს coffeedb სტრიქონს (არ არის რეგისტრირებული), რომელიც დაკავშირებულია აპლიკაციის მონაცემთა ბაზასთან, მაგ.ample, #include hal_sln_coffeedb.h.
- შეცვალეთ ფუნქცია HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() გამომავალი UI HAL-ის მოვლენების დასამუშავებლად.
- შეცვალეთ ღონისძიების განმარტება kEventFaceRecId_RegisterCoffeeSelection-ით kEventFaceRecId_RegisterUserFace და სტრუქტურის სტრიქონი regCoffeeSelection regGUIFaceRec-ით, მოვლენების დამუშავებისთვის, რათა დაემატოს ახალი სახის მახასიათებლების მონაცემები მონაცემთა ბაზაში.
- სახის ამოცნობის მოქმედებების სტანდარტული პროცესის ჩვენება მაგampშეცვალეთ დამუშავება kEventFaceRecID_OasisSetState-ის შემთხვევაში მდგომარეობების განსაზღვრებით:
- kOASISLiteState
- რეგისტრაცია kOASISLiteState
- აღიარება kOASISLiteState
- გაჩერდა
- დაამატეთ და შეცვალეთ ზემოთ მოცემულ ნაბიჯში ნახსენები მოვლენების განმარტებები.
- დააკოპირეთ სათაური file smart_tlhmi_event_descriptor.h ჭკვიანი HMI\ყავის_მანქანიდან \cm7\source\event_handlers\ ყოფილი საქაღალდის წყაროშიample SW. განაახლეთ file როგორც ქვემოთ:
- შეცვალეთ ღონისძიების განმარტება kEventFaceRecId_RegisterCoffeeSelection-ით kEventFaceRecId_RegisterUserFace inum ტიპის _event_smart_tlhmi_id და სტრუქტურის სტრიქონი regCoffeeSelection regGUIFaceRec სტრუქტურში _eventh.smart_. ასე რომ, შეცვალეთ struct 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 in hal_vision_algo.h ქვეშ frame>hal>vision პროექტში, როგორც ქვემოთ:
typedef enum _oasis_lite_state {- kOASISLiteState
- გაშვებული, kOASISLiteState
- შეჩერდა, kOASISLiteState
- Აღიარება,
- kOASISLiteState
- რეგისტრაცია, kOASISLiteState
- რეგისტრაციის გაუქმება, kOASISLiteState
- დისტანციური რეგისტრაცია, kOASISLiteState
- დათვალეთ
- გამოიყენეთ ზემოაღნიშნული განახლებული struct oasis_lite_state_t სტრუქტურის დახვეწისთვის oasis_state_event_t hal_event_descriptor_face_rec.h-ში frame>hal>vision პროექტში, როგორც ქვემოთ: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oasis_state_event_t;
- შეცვალეთ ყველა kEventInfo_Remote-ზე kEventInfo_Local, რათა გამოაგზავნოთ მოვლენები ხედვის ალგოდან HAL სხვა HAL-ებზე, რომლებიც მუშაობენ იმავე ბირთვზე, როგორც ერთ ბირთვზე, ნაცვლად ორბირთვიანი, გამოიყენება ყოფილიampლე.
- დაამატეთ და შეცვალეთ ქვემოთ მოცემული კონფიგურაციები Oasis ინიციალიზაციისთვის OASISLT_init():
- დაამატეთ მაკრო განმარტებები და მეხსიერების სექციები ვიდეო ჩარჩოსთვის board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- #define OASIS_RGB_FRAME_HEIGHT 600
- #define OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB
- #define OASIS_RGB_FRAME_BYTE_PER_PIXEL 3
- #define AT_FB_SHMEM_SECTION_ALIGN(var, alignbytes) \
- __ატრიბუტი__((განყოფილება(.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __ატრიბუტი__((გასწორებული (გასწორება (გასწორება)))
- მეხსიერების მინიჭების კონფიგურაცია მეხსიერების ზემოთ განყოფილებაში fb_sh_mem პროექტზე > თვისებები > C/C++ Build > MCU პარამეტრები ნაჩვენებია სურათზე 5:
- გამოაცხადეთ გლობალური ცვლადი 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-ში:
- #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
- ატრიბუტი__((განყოფილება(.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
- ატრიბუტი__((გასწორებული (განლაგებული ბაიტები)))
- ჩართეთ სათაური file hal_vision_algo.h შეიცავს მაკრო განმარტებას DTC_OPTIMIZE_BUFFER_SIZE app_config.h-ში შედის lvgl_gui_face_rec_cm7.cpp.
- დაამატეთ მაკრო განმარტებები და მეხსიერების სექციები ვიდეო ჩარჩოსთვის board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- დააყენეთ ცვლადი s_debugOption-ზე true, რათა ნახოთ პროგრესის სტატუსი სახის ამოცნობაში.
- დაამატეთ სათაურის საძიებო გზა fileხედვის HAL პროექტზე > თვისებები >C/C++ Build > პარამეტრები > ხელსაწყოს პარამეტრები > MCU C შემდგენელი > მოიცავს და MCU C++ შემდგენელი > შეიცავს: „${workspace_loc:/${ProjName}/framework/hal/vision}“
- დაამატეთ ქვემოთ მოცემული განმარტება, რათა ჩართოთ ხედვის ალგო HAL board_define.h-ში: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
ჩართეთ გამომავალი UI HAL
გამომავალი UI HAL აცნობებს მოვლენებს ხედვის ალგო HAL-ს და პასუხობს დასკვნის შედეგებს ხედვის ალგო HAL-დან. GUI აპლიკაციით, მოვლენები, როგორც წესი, აპლიკაციის მიერ ხდება და შედეგები ნაჩვენებია აპლიკაციაში.
მის გასააქტიურებლად, კლონირეთ არსებული მსგავსი HAL დრაივერი file სადაც ზოგადად ხორციელდება შემდეგი ფუნქციები:
- აცნობეთ მოვლენები სახის ამოცნობისა და მონაცემთა ბაზაში წვდომისთვის.
- განახორციელეთ გამოძახებები GUI აპისთვის მოვლენების გასააქტიურებლად.
- გაუმკლავდეს დასკვნის შედეგებს ხედვის ალგო მოდულიდან.
- აჩვენეთ მოვლენების დამუშავების პროცესი და შედეგები UI-ზე პროგრესის ზოლით, რომელიც კონტროლდება ტაიმერებით და სახის სახელმძღვანელო მართკუთხედით.
ძირითადი სამუშაოები HAL-ის განხორციელებაზე ყოფილიampამ დოკუმენტში გამოყენებულია:
- არსებული მსგავსი HAL დრაივერის კლონირება file და შეცვალეთ დაკავშირებული სახელები.
- წაშალეთ აპთან დაკავშირებული კოდები.
- განაახლეთ ფუნქციები მოვლენების შეტყობინებებისა და შედეგების პასუხებისთვის ყოფილი სქემის მიხედვითampდიზაინი.
- დაამატეთ გამოძახებები GUI აპისთვის მოვლენების გასააქტიურებლად.
დეტალური ნაბიჯები შემდეგია:
- კლონირება hal_output_ui_coffee_machine.c. Შეცვალე fileსახელი hal_ output_ui_guifacerec.c.
- შეცვალეთ ყველა სტრიქონი CoffeeMachine-ით GUIFaceRec-ით file.
- წაშალეთ აპლიკაციის – ყავის აპარატთან დაკავშირებული კოდები.
- წაშალეთ ფუნქციები WakeUp() და _StandBy() და შესაბამისი კოდები (შეიძლება მოძებნოთ სტრიქონები wake_up და ლოდინის რეჟიმში).
- წინასწარ ამოიღეთview რეჟიმის მოვლენები, რომლებიც ამუშავებენ დაკავშირებულ კოდებს HAL_OutputDev_UiGUIFaceRec_Input Notify().
- წაშალეთ ფუნქციები UI_xxx_Callback() და კოდები, რომლებიც შეიცავს string gui_-ს და ეკრანს, რომელიც დაკავშირებულია ყავის აპარატის GUI-სთან, გარდა gui_set_virtual_face() წინასთვის.view რეჟიმის ფუნქცია.
- წაშალეთ ყველა კოდი, რომელიც დაკავშირებულია ცვლადებთან s_IsWaitingAnotherSelection და s_IsWaitingRegisterSelection, რომლებიც დაკავშირებულია ყავის აპარატის აპთან.
- ამოიღეთ კოდები, რომლებიც დაკავშირებულია ხმასთან, აუდიოსა და ენასთან. მაგampლე:
- #include "hal_voice_algo_asr_local.h",
- #include "hal_event_descriptor_voice.h"
- სხვადასხვა მოვლენის შეტყობინებებისთვის, განახორციელეთ ახალი ფუნქციები _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec(), და DeregisterGUIFaceRec(), რომლებიც მიუთითებენ ფუნქციებზე _StopFaceRec(), _RegisterCoffeeSelection() და DeregisterCoffeeS გაუქმებამდე.
- _OutputManagerNotify() ახორციელებს ძირითადი მოვლენის გამომავალი ფუნქციას, რათა მოხდეს ღონისძიების გაგზავნა ხედვის ალგო HAL-ში. ქვემოთ მოცემული ფუნქციები მას ეძახიან საკუთარი მოვლენების გაგზავნას.
- _SetFaceRec() აგზავნის მოვლენას kEventFaceRecID_OasisSetState ხედვის ალგოს გასააქტიურებლად სახის რეგისტრაციის, ამოცნობისა და ალგოს შესაჩერებლად.
- _RegisterGUIFaceRec() აგზავნის მოვლენას kEventFaceRecId_RegisterGUIFaceRec, რომელიც განსაზღვრულია smart_tlhmi_event_descriptor.h-ში, რათა დაემატოს სახის მახასიათებლების მონაცემები მონაცემთა ბაზაში, როდესაც რეგისტრაცია OK.
- DeregisterGUIFaceRec() აგზავნის მოვლენას kEventFaceRecID_DelUser, რათა წაშალოს სახის ფუნქციის მონაცემები მონაცემთა ბაზიდან სახის ამოცნობის გავლისას.
- განაახლეთ კოდები შესაბამისი მოქმედებების განსახორციელებლად, მათ შორის GUI-ს განახლების ჩათვლით API-ების გამოძახებით LVGL GUI აპლიკაციიდან სახის რეგისტრაციისა და ამოცნობის შედეგების დასკვნებისთვის _InferComplete_Vision() ფუნქციის შესაბამისად.ampლეს დიზაინი. მაგampროდესაც სახის რეგისტრაცია წარმატებულია,
- შეწყვიტე პროგრესის ჩვენება _FaceRecProcess_Stop();
- შეაჩერე სახის რეგისტრაცია გამოძახებით _SetFaceRec(kOASISLiteState_Stopped);
- წარმატებული შედეგის ჩვენება GUI-ზე: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- დაარეგისტრირეთ სახის მონაცემები მონაცემთა ბაზაში: _RegisterUserFace(s_UserId);
- დაამატეთ UI გამოძახების ფუნქციები მოვლენების დასამუშავებლად: წინასწარview, სახის რეგისტრაცია, ამოცნობა და მომხმარებლის წაშლა გააქტიურებულია GUI-დან. მაგample, სახის რეგისტრაციის გამოძახება: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- და დაამატეთ ფუნქციები _FaceRecProcess_Start() და _FaceRecProcess_Stop(), რათა ნახოთ პროგრესი და სტატუსი სხვადასხვა მოვლენებსა და შედეგებში.
- განაახლეთ ტაიმერის ISR გამოძახების ფუნქცია _SessionTimer_Callback() დროის ამოწურვის შემთხვევაში დარეკვით: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- დაამატეთ ქვემოთ მოცემული განმარტებები, რათა ჩართოთ UI გამომავალი HAL board_define.h-ში: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
შენიშვნა:
სახის ამოცნობის ფუნქციის უკეთ წარმოსაჩენად, შეინახეთ ფუნქცია, რათა აჩვენოს სახის ამოცნობის პროცესი და შედეგები გამომავალ UI HAL-ში. ფუნქცია აღწერილია როგორც ქვემოთ
- სახის სახელმძღვანელო მართკუთხედი აჩვენებს ლურჯს, ხოლო პროგრესის ზოლი აჩვენებს პროგრესს სახის რეგისტრაციის ან ამოცნობის დაწყებისას.
- სახის სახელმძღვანელო ოთხკუთხედი აჩვენებს წითლად, როდესაც სახის რეგისტრაცია წარმატებულია.
- სახის მეგზური მართკუთხედი აჩვენებს მწვანეს, როდესაც სახის ამოცნობა წარმატებულია.
- სახის სახელმძღვანელო ოთხკუთხედი ინარჩუნებს ლურჯს, ხოლო პროგრესის ზოლი აჩვენებს სრულ პროგრესს, როდესაც ქმედება წარუმატებელია ტაიმერის ვადის გასვლის შემდეგ. ამ დროს შეაჩერეთ სახის რეგისტრაცია ან ამოცნობა.
პროგრესის ზოლი და სახის სახელმძღვანელო მართკუთხედი წარმოდგენილია როგორც ხატები, რომლებიც ჩაშენებულია რესურსის ორობით file უნდა დაპროგრამდეს Flash-ში. SDRAM-ზე ხატულების მონაცემების მაჩვენებლები დაყენებულია ფუნქციაში LoadIcons(APP_ICONS_BASE) გამომავალი UI HAL მოწყობილობის ინიციალიზაციაზე გამომავალი UI HAL. მან უნდა განახორციელოს ხატების მხარდაჭერა ფუნქციისთვის.
განახორციელეთ ხატების მხარდაჭერა
- შექმენით რესურსი, რომელიც აერთიანებს ხატებს LVGL GUI აპლიკაციაში გამოყენებულ სურათებთან:
- ოთხი ხატის სათაურის კლონირება files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h და virtual_face_red_420x426.h smart HMI-დან
\ყავის მანქანა\resource\icons\ ახალი საქაღალდის ხატულებში, ყოფილი რესურსის საქაღალდის ქვეშample SW. - დაამატეთ საძიებო გზა ოთხი ხატისთვის files in camera_preview_resource.txt file რესურსების საქაღალდეში, მაგample: ხატულა ../resource/icons/process_bar_240x14.h
- შეასრულეთ camera_preview_resource_build.bat გამოსახულების და ხატების რესურსების შესაქმნელად ურნის გენერირებისთვის file კამერა_წინაview_resource.bin და ინფორმაცია file resource_information_table.txt (იხ. სურათი 6).
- ოთხი ხატის სათაურის კლონირება files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h და virtual_face_red_420x426.h smart HMI-დან
- განსაზღვრეთ საწყისი მისამართი SDRAM-ზე და ხატების ზომა app_config.h-ში. მისამართი იწყება GUI აპლიკაციის სურათების გვერდით. ზომა გენერირებულია ინფორმაციაში file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
- განაახლეთ მეხსიერების განყოფილების მინიჭებული ზომა სახელად res_sh_mem 0x200000-მდე მისი ხელახლა განსაზღვრით app_config.h-ში: #define RES_SHMEM_TOTAL_SIZE 0x200000 და შესაბამისი პარამეტრი Project > Properties > C/C++ Build > MCU settings.
- დაამატეთ ხატულის ზომა 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 უწოდებს API-ებს LVGL GUI აპიდან, რათა განაახლონ UI, რათა აჩვენონ შედეგი და სტატუსი. LVGL GUI აპლიკაციის შემუშავება შედარებით დამოუკიდებელია და წარმოდგენილია 4.3 ნაწილში.
4.1.5 გაუშვით HAL მოწყობილობები და მენეჯერები სახის ამოცნობისთვის
ჩართული ხედვის ალგო HAL და UI გამომავალი HAL და მათი მენეჯერები დაწყებულია ძირითადში file
lvgl_gui_face_rec_cm7.cpp განვითარების კონვერტაციების შემდეგ ჩარჩოზე, როგორც ქვემოთ:
- ჩართეთ სათაური file დაკავშირებულია ორ HAL მენეჯერთან კოდის ხაზის დამატებით:
- #include ” fwk_output_manager.h”
- #include "fwk_vision_algo_manager.h"
- გამოაცხადეთ HAL მოწყობილობები:
- HAL_VALGO_DEV_DECLARE (OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE (UiGUIFaceRec);
- დაარეგისტრირეთ HAL მოწყობილობები:
- HAL_VALGO_DEV_REGISTER (OasisGUIFaceRec, ret);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- მენეჯერების ინიციალიზაცია:
- FWK_MANAGER_INIT(VisionAlgoManager, ret);
- FWK_MANAGER_INIT(OutputManager, ret);
- დაიწყეთ მენეჯერები:
- FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
- FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
- განსაზღვრეთ მენეჯერის ამოცანების პრიორიტეტი:
- #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
- #define 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\ ბილიკიდან ყოფილი დრაივერების საქაღალდემდეample SW.
დაამატეთ დაფის დონის მხარდაჭერა
- დაამატეთ FlexSPI-ის განმარტებები, რომლებიც გამოიყენება Flash მოწყობილობისთვის ბორტზე board.h:
- #define BOARD_FLEXSPI FLEXSPI1
- #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
- #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- დააკოპირეთ ოპერატორები და კონფიგურაციები fileFlash მოწყობილობის s flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h ბილიკის ქვეშ სმარტ HMI\coffe\cmfig_config\chi-მდე სმარტ ფოლდერში.ample SW.
- მოხსენით მონიშვნა „რესურსის გამორიცხვა build-დან“ C/C++ Build > Settings-ზე მარჯვენა ღილაკით დაწკაპუნების შემდეგ. files' სახელი და გახსნა Properties, რათა შესაძლებელი გახდეს მათი ჩაშენება პროექტში.
- შეცვალეთ ჩართული სათაური fileდაასახელეთ sln_flash_config.h to sln_flash_config_w25q256jvs.h sln_flash_config.c და flexspi_nor_flash_ops.h.
- დააყენეთ FlexSPI1 საათის წყარო file clock_config.c ეხება ყავის აპარატის აპს.
დაამატეთ ადაპტერი და საშუალო დონის მხარდაჭერა
- დააკოპირეთ files sln_flash.c, sln_flash.h, sln_encrypt.c და sln_encrypt.h როგორც ადაპტერის დრაივერები file სისტემა და აპლიკაცია ჭკვიანი HMI\ყავის აპარატის\cm7\source\ გზიდან ყოფილი საქაღალდის წყარომდეampლე. განაახლეთ ახალი files:
- მოხსენით მონიშვნა „გამორიცხეთ რესურსი აშენებიდან“ მათზე მშენებლობისთვის.
- შეცვალეთ ყველა ჩართული სათაური file დაასახელეთ sln_flash_config.h to sln_flash_config_w25q256jvs.h.
- დააკოპირეთ საქაღალდე fileსისტემა, რომელიც შეიცავს API-ებს პატარასთვის fileსისტემა და HAL დრაივერი ჭკვიანი HMI \coffee_machine\cm7\source\ example SW. და განაახლეთ ახალი საქაღალდე:
- მოხსენით მონიშვნა „გამორიცხეთ რესურსი აშენებიდან“ მასზე მშენებლობისთვის.
- დაამატეთ მასში ჩართვის გზა პროექტის პარამეტრებში: „${workspace_loc:/${ProjName}/fileსისტემა}”
- შეცვალეთ ჩართული სათაური file დაასახელეთ sln_flash_config.h to sln_flash_config_w25q256jvs.h და fica_definition.h to app_config.h file sln_flash_littlefs.h.
- დააკოპირეთ საქაღალდე littlefs, რომელიც შეიცავს შუა ware – პატარას fileსისტემა SDK_2_13_0_ MIMXRT1170-EVK\middleware\ გზიდან ყოფილამდეample SW. და განაახლეთ ახალი საქაღალდე:
- მოხსენით მონიშვნა „გამორიცხეთ რესურსი აშენებიდან“ მასზე მშენებლობისთვის.
- დაამატეთ მას ჩართვის გზა პროექტის პარამეტრებში: „${workspace_loc:/${ProjName}/littlefs}“
დაამატეთ HAL დრაივერები
- არსებობს ორი HAL მოწყობილობა - file სისტემა და სახე მონაცემთა ბაზა HAL მხარდაჭერილია მონაცემთა ბაზაში წვდომის ფუნქციისთვის და ისინი უკვე დანერგილია ჩარჩოში ყოველგვარი ცვლილების გარეშე. ჩართეთ ისინი ქვემოთ მოცემული განმარტებების დამატებით board_define.h-ში:
- #define ENABLE_FLASH_DEV_Littlefs
- #define ENABLE_FACEDB
და შეცვალეთ სახის მონაცემთა ბაზის სახელი ყოფილისთვისample: #define OASIS_FACE_DB_DIR "oasis_gui_face_rec"
დაამატეთ აპლიკაციის დონის მხარდაჭერა
- განაახლეთ მთავარი file lvgl_gui_face_rec_cm7.cpp:
- ჩართეთ სათაური file Flash-თან დაკავშირებული file სისტემის HAL მენეჯერი კოდის ხაზის დამატებით: #include “fwk_flash.h”
- განაცხადეთ და დარეგისტრირდით file სისტემის HAL მოწყობილობა:
- HAL_FLASH_DEV_DECLARE (პატარა);
- HAL_FLASH_DEV_REGISTER(Littlefs, ret);
შენიშვნა: file სისტემის HAL მოწყობილობა უნდა დარეგისტრირდეს, სანამ ყველა მოწყობილობის მენეჯერი ინიციალიზდება APP_InitFramework() ფუნქციაში.
- გამოიძახეთ ფუნქცია BOARD_ConfigMPU() APP_BoardInit()-ში MPU-ის კონფიგურაციისთვის.
- დააყენეთ file სისტემის მინიჭება Flash-ზე file app_config.h-ში გამოყენებული მაკრო განმარტებების განსაზღვრით file sln_flash_littlefs.h:
- #define FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #define FICA_FILE_SYS_SIZE (0x280000)
კონფიგურაციები
Flash-თან დაკავშირებული ზოგიერთი კოდი შესრულებულია SRAM ITC ზონაში საკმარისი შესრულებისთვის. დააკოპირეთ საქაღალდის ბმული სკრიპტები, რომლებიც შეიცავს ლინკერის კონფიგურაციას ჭკვიანი HMI\ყავის მანქანა\cm7\ ყოფილამდეample SW.
განახორციელეთ LVGL GUI აპი
ჩარჩოზე დაფუძნებული LVGL GUI აპლიკაციის შემუშავება გამოიძახებს API-ებს გამომავალი UI HAL-დან და უზრუნველყოფს API-ებს გამომავალი UI HAL (იხ. სექცია 4.1.3 გამომავალი UI HAL-ის განხორციელებისთვის).
თუმცა, LVGL GUI აპლიკაციის დეტალური განხორციელება დამოკიდებულია აპლიკაციის მოთხოვნებზე და დიზაინზე. GUI აპი ამ ყოფილშიample შექმნილია ისე, როგორც აღწერილია მე-4 ნაწილის დასაწყისში.
ქვემოთ მოცემულია განხორციელების შესავალი:
- მორგებული კოდები დანერგილია 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-ს გამოძახების ფუნქციებს, რათა გაუმკლავდეს სახის რეგისტრაციის, სახის ამოცნობის და მომხმარებლის წაშლის ერთ-ერთ მოვლენას, რომელიც გამოწვეულია 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_pre-ზეview ფუნქციაში.
- განახორციელეთ UI გამოძახების ფუნქციები იგივე პროტოტიპით ყველა გამომავალ UI HAL-ზე მაკრო განმარტების #ifndef RT_PLATFORM კონტროლის ქვეშ custom.c-ში, რათა იყოს თავსებადი GUI Guider პროექტთან, რადგან გამომავალი UI HAL ეს ფუნქციები დამოკიდებულია ჩაშენებული პლატფორმა. custom.c-ში, ისინი დამოკიდებულნი არიან სიმულატორზე GUI-ის სახელმძღვანელოზე და დამოუკიდებლები არიან ჩაშენებული პლატფორმისგან. მაგampასევე, სახის რეგისტრაციის გამოძახება განხორციელებულია როგორც ქვემოთ მოცემული GUI Guider სიმულატორისთვის, რომელიც მუშაობს: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = false; დაბრუნების; }
შენიშვნა: იხილეთ ფუნქციის იგივე პროტოტიპი, რომელიც წარმოდგენილია 6 ნაწილის მე-4.1.3 საფეხურში.
მაკრო განმარტება RT_PLATFORM დაყენებულია MCUXpresso-ს პროექტის პარამეტრებზე, როგორც ნაჩვენებია სურათზე 7: - გამოაცხადეთ ყველა ფუნქცია სახელად UI_xxx_Callback() და gui_xxx() custom.h-ში და დაამატეთ custom.h შედის smart_tlhmi_event_descriptor.h-ში GUI API-ების გასაზიარებლად UI გამომავალი HAL-ისთვის.
- დაამატეთ ახალი ფუნქციები სახელად gui_xxx() custom.c-ში ქვემოთ მოცემული ფუნქციების მისაღწევად:
- შექმენით GUI GUI Guider-ზე:
- საქაღალდის კამერის წინასწარ კლონირებაview რომელიც შეიცავს GUI Guider პროექტის პროგრამულ უზრუნველყოფას საქაღალდეში gui_guider საბაზო პროგრამულ პაკეტში lvgl_gui_camera_preview_სმ7. შეცვალეთ შესაბამისი სახელი camera_preview to face_rec ახალი ყოფილისთვისampლე.
- დააკოპირეთ ზემოთ განახლებული custom.c და custom. h ახალ GUI Guider პროექტის პროგრამულ უზრუნველყოფას.
- გახსენით ახალი face_rec პროექტი GUI Guider-ზე. განაახლეთ როგორც ქვემოთ:
- დაამატეთ ახალი ღილაკი სახელწოდებით Delete User. დაამატეთ მასში დამალული დროშა, რათა ღილაკი დაიმალოს GUI აპლიკაციის გაშვებისას.
- დაამატეთ API-ს გამოძახების კოდის ხაზი gui_event_face_rec_action() სხვადასხვა მოვლენის ID პარამეტრით "გამოშვებული" ტრიგერზე ღონისძიების პარამეტრში ყველა ღილაკების რეგისტრაცია, ამოცნობა და მომხმარებლის წაშლა სახის რეგისტრაციის, სახის ამოცნობის და მომხმარებლის წაშლის მოვლენების გასააქტიურებლად. სურათი 8 გვიჩვენებს ღილაკის რეგისტრაციის მოვლენის კოდს:
- განაახლეთ გენერირებული კოდი GUI Guider-დან MCUXpresso პროექტში.
- შეცვალეთ შიგთავსი, გარდა საქაღალდის სურათებისა MCUXpresso project SW-ის საქაღალდეში გენერირებული საქაღალდეში GUI Guider project SW-ის გენერირებული საქაღალდეში შესაბამისით.
შენიშვნა: ზემოაღნიშნული ცვლილებების შესახებ მეტი ინფორმაციისთვის შეამოწმეთ ყოფილიample პროგრამული უზრუნველყოფა at https://mcuxpresso.nxp.com/appcodehub.
გადამოწმებები ყოფილთანampპროექტი
ყოფილის მისაღებადampპროგრამული პაკეტი, რომელიც შეიცავს რესურსებსა და ინსტრუმენტებს ამ განაცხადის ჩანაწერისთვის, ეწვიეთ: https://mcuxpresso.nxp.com/appcodehub. გახსენით ყოფილიampპროექტი MCUXpresso IDE-ზე. შექმენით და დაპროგრამეთ .axf file მისამართზე 0x30000000 და დაპროგრამეთ რესურსის ყუთი file კამერა_წინაview_resource.bin მისამართზე 0x30800000.
LVGL GUI სახის ამოცნობა მაგampლეი ჩვეულებრივად მუშაობს შემდეგნაირად:
- წინასწარიview: ჩართვით, კამერის მიერ გადაღებული ვიდეო ნაკადები ნაჩვენებია კამერის წინასწარ კონკრეტულ არეალზეview GUI ეკრანზე. სტატუსის ეტიკეტი აჩვენებს „წინასწარview…”. დეტალებისთვის იხილეთ სურათი 3. ღილაკი Delete User დამალულია. ღილაკებისა და სურათების გარეთ მდებარე არეზე დაწკაპუნებისას, ის აჩვენებს წინასწარview აღნიშნეთ როგორც ზემოთ, სახის რეგისტრაციის ან ამოცნობის მოქმედების დასრულების შემდეგ.
- რეგისტრაცია:
- ტარტაპი: როდესაც დააწკაპუნებთ ღილაკზე რეგისტრაცია, იწყება სახის რეგისტრაცია. სტატუსის იარლიყი იცვლება „რეგისტრაციის…“ ჩვენებაზე, სახის სახელმძღვანელო მართკუთხედი აჩვენებს ლურჯს, ხოლო პროგრესის ზოლი იწყებს პროგრესის ჩვენებას. რეგისტრაციისთვის დარწმუნდით, რომ მომხმარებლის სახე გამოჩნდება ლურჯი სახის სახელმძღვანელო ოთხკუთხედში.
- წარმატება: სტატუსის ეტიკეტზე ნაჩვენებია „რეგისტრაცია…OK“ და რეგისტრირებული მომხმარებლის ID ნომერი, სახის სახელმძღვანელო მართკუთხედი ხდება წითელი, თუ სახის რეგისტრაცია წარმატებულია, სანამ პროგრესი სრულად გამოჩნდება ზოლზე.
- წარუმატებლობა -> დროის ამოწურვა: სტატუსის ეტიკეტზე ნაჩვენებია „რეგისტრაცია… დრო ამოიწურა“, თუ სახის რეგისტრაცია მაინც ვერ მოხერხდა, როდესაც პროგრესი სრულად გამოჩნდება ზოლზე.
- წარუმატებლობა -> დუბლირება: სტატუსის ეტიკეტზე ნაჩვენებია „რეგისტრაცია… ვერ მოხერხდა“, სახის სახელმძღვანელო მართკუთხედი მწვანე ხდება, თუ რეგისტრირებული სახე ამოიცნობა სანამ პროგრესი სრულად გამოჩნდება ზოლზე.
- შეცნობა:
- გაშვება: ამოცნობის ღილაკზე დაწკაპუნებისას, სახის ამოცნობა იწყება. სტატუსის იარლიყი იცვლება და აჩვენებს „აღიარება…“, სახის სახელმძღვანელო მართკუთხედი აჩვენებს ლურჯს, ხოლო პროგრესის ზოლი იწყებს პროგრესის ჩვენებას. დარწმუნდით, რომ მომხმარებლის სახე ნაჩვენებია ლურჯი სახის სახელმძღვანელო ოთხკუთხედში რეგისტრაციისთვის.
- წარმატება: სტატუსის იარლიყზე ნაჩვენებია „ამოცნობა…OK“ და აღიარებული მომხმარებლის ID ნომერი, სახის სახელმძღვანელო მართკუთხედი მწვანე გახდება, თუ სახის ამოცნობა წარმატებულია, სანამ პროგრესი სრულად გამოჩნდება ზოლზე. ამ მომენტში გამოჩნდება ღილაკი მომხმარებლის წაშლა. ეს ნიშნავს, რომ მომხმარებლის წაშლის უფლება აქვს მხოლოდ მაშინ, როდესაც ის აღიარებულია.
- აილურა: სტატუსის იარლიყი აჩვენებს „ამოცნობა… დრო ამოიწურა“, თუ სახის ამოცნობა ჯერ კიდევ ვერ მოხერხდა, როდესაც პროგრესი სრულად გამოჩნდება ზოლზე.
- მომხმარებლის წაშლა: ღილაკზე „მომხმარებლის წაშლა“ დაწკაპუნების შემდეგ, სახის ამოცნობის წარმატებით დასრულების შემდეგ, სტატუსის იარლიყი იცვლება „მომხმარებლის წაშლა…OK“ გამოსაჩენად, სახის სახელმძღვანელო ოთხკუთხედით ხდება ლურჯი და პროგრესი სრულად ჩანს ზოლზე. ღილაკი Delete User კვლავ იმალება. ამოცნობილი სახე/მომხმარებელი წაიშლება მონაცემთა ბაზიდან. ეს ნიშნავს, რომ ამ სახის/მომხმარებლის ამოცნობა შეუძლებელია, სანამ ხელახლა არ დარეგისტრირდება.
შენიშვნა დოკუმენტის წყაროს კოდის შესახებ
Exampამ დოკუმენტში ნაჩვენები le კოდს აქვს შემდეგი საავტორო უფლებები და BSD-3-clause ლიცენზია:
საავტორო უფლება 2024 NXP გადანაწილება და გამოყენება წყაროსა და ბინარულ ფორმებში, მოდიფიკაციით ან მის გარეშე, დასაშვებია შემდეგი პირობების დაკმაყოფილების შემთხვევაში:
- წყაროს კოდის გადანაწილებამ უნდა შეინარჩუნოს საავტორო უფლებების შესახებ ზემოაღნიშნული შეტყობინება, პირობების ეს სია და შემდეგი უარი პასუხისმგებლობაზე.
- ორობითი ფორმით ხელახალი გავრცელება უნდა ასახავდეს ზემოხსენებულ საავტორო უფლების შეტყობინებას, პირობების ამ სიას და დოკუმენტაციაში და/ან სხვა მასალებში მოცემული პასუხისმგებლობის შემდეგი შეზღუდვის შესახებ გავრცელებას უნდა მიეწოდოს.
- არც საავტორო უფლებების მფლობელის სახელი და არც მისი კონტრიბუტორების სახელები არ შეიძლება გამოყენებულ იქნას ამ პროგრამული უზრუნველყოფის პროდუქტების მოწონების ან პოპულარიზაციისთვის კონკრეტული წინასწარი წერილობითი ნებართვის გარეშე.
ეს პროგრამული უზრუნველყოფა მოწოდებულია საავტორო უფლებების მფლობელებისა და კონტრიბუტორების მიერ "როგორც არის" და ნებისმიერი გამოხატული ან ნაგულისხმევი გარანტიები, მათ შორის, მაგრამ არ შემოიფარგლება, ნაგულისხმევი გარანტიები სავაჭრო და უსაფთხოების გარანტიით. უარყო. არავითარ შემთხვევაში არ იქნება საავტორო უფლებების მფლობელი ან კონტრიბუტორი პასუხისმგებელი რაიმე პირდაპირი, არაპირდაპირი, შემთხვევითი, განსაკუთრებული, სამაგალითო ან თანმიმდევრული ზიანისთვის (მათ შორის, მაგრამ არ არის შეზღუდული, სერვისები; ამ პროგრამული უზრუნველყოფის გამოყენების გარეშე, მაშინაც კი, თუ ასეთი ზიანის შესაძლებლობა მიიღება.
გადასინჯვის ისტორია
იურიდიული ინფორმაცია
განმარტებები
მონახაზი - დოკუმენტის სტატუსის პროექტი მიუთითებს, რომ შინაარსი ჯერ კიდევ შიდა რეჟიმშია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 Semiconductor-ს ნებისმიერი პასუხისმგებლობისთვის, ზიანისთვის ან პროდუქტის წარუმატებელი პრეტენზიებისთვის, რომლებიც გამოწვეულია მომხმარებლის დიზაინისა და გამოყენების შედეგად. პროდუქტი საავტომობილო აპლიკაციებისთვის NXP Semiconductors-ის სტანდარტული გარანტიისა და NXP Semiconductors-ის პროდუქტის სპეციფიკაციების მიღმა. - თარგმანები — დოკუმენტის არაინგლისური (თარგმნილი) ვერსია, ამ დოკუმენტის იურიდიული ინფორმაციის ჩათვლით, მხოლოდ მითითებისთვისაა. თარგმნილ და ინგლისურ ვერსიებს შორის რაიმე შეუსაბამობის შემთხვევაში უპირატესობა მიენიჭება ინგლისურ ვერსიას.
- უსაფრთხოება — მომხმარებელს ესმის, რომ NXP-ის ყველა პროდუქტი შეიძლება ექვემდებარებოდეს ამოუცნობ დაუცველობას ან შეიძლება მხარი დაუჭიროს უსაფრთხოების დადგენილ სტანდარტებს ან სპეციფიკაციებს ცნობილი შეზღუდვებით. კლიენტი პასუხისმგებელია მისი აპლიკაციებისა და პროდუქტების დიზაინსა და ექსპლუატაციაზე მათი სიცოცხლის ციკლის განმავლობაში, რათა შეამციროს ამ მოწყვლადობის ეფექტი მომხმარებლის აპლიკაციებსა და პროდუქტებზე. კლიენტის პასუხისმგებლობა ასევე ვრცელდება სხვა ღია და/ან საკუთრებაში არსებულ ტექნოლოგიებზე, რომლებიც მხარდაჭერილია NXP პროდუქტებით მომხმარებლის აპლიკაციებში გამოსაყენებლად. NXP არ იღებს პასუხისმგებლობას რაიმე დაუცველობისთვის. მომხმარებელმა რეგულარულად უნდა შეამოწმოს უსაფრთხოების განახლებები NXP-დან და სათანადოდ დაიცვას. მომხმარებელმა უნდა შეარჩიოს უსაფრთხოების მახასიათებლების მქონე პროდუქტები, რომლებიც საუკეთესოდ აკმაყოფილებენ დანიშნულ აპლიკაციის წესებს, რეგულაციებს და სტანდარტებს და მიიღოს საბოლოო დიზაინის გადაწყვეტილებები მის პროდუქტებთან დაკავშირებით და მხოლოდ პასუხისმგებელია მის პროდუქტებთან დაკავშირებული ყველა სამართლებრივი, მარეგულირებელი და უსაფრთხოებასთან დაკავშირებული მოთხოვნების დაცვაზე, მიუხედავად ნებისმიერი ინფორმაციის ან მხარდაჭერის შესახებ, რომელიც შეიძლება მოწოდებული იყოს NXP-ის მიერ.
NXP-ს ჰყავს პროდუქტის უსაფრთხოების ინციდენტების რეაგირების გუნდი (PSIRT) (ხელმისაწვდომია PSIRT@nxp.com-ზე), რომელიც მართავს NXP-ის პროდუქტების უსაფრთხოების დაუცველობაზე გამოძიების, ანგარიშგების და გადაწყვეტილების გათავისუფლებას.
NXP B.V. - NXP B.V. არ არის მოქმედი კომპანია და ის არ ავრცელებს ან ყიდის პროდუქტებს.
სავაჭრო ნიშნები
გაფრთხილება: ყველა მითითებული ბრენდი, პროდუქტის სახელები, მომსახურების სახელები და სავაჭრო ნიშნები მათი შესაბამისი მფლობელების საკუთრებაა.
NXP — სიტყვა და ლოგო არის 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, მრავალმხრივი — არის Arm Limited-ის (ან მისი შვილობილი ან შვილობილი კომპანიების) სავაჭრო ნიშნები და/ან რეგისტრირებული სავაჭრო ნიშნები აშშ-ში და/ან სხვაგან. დაკავშირებული ტექნოლოგია შეიძლება იყოს დაცული ნებისმიერი ან ყველა პატენტით, საავტორო უფლებებით, დიზაინით და სავაჭრო საიდუმლოებით. Ყველა უფლება დაცულია.
- i.MX - არის NXP BV-ის სავაჭრო ნიშანი
- ჯ-ლინკი — არის SEGGER Microcontroller GmbH-ის სავაჭრო ნიშანი.
Microsoft, Azure და ThreadX — არის Microsoft-ის კომპანიების ჯგუფის სავაჭრო ნიშნები.
გთხოვთ გაითვალისწინოთ, რომ მნიშვნელოვანი შენიშვნები ამ დოკუმენტთან და აქ აღწერილი პროდუქტ(ებ)თან დაკავშირებით შეტანილია სექციაში „სამართლებრივი ინფორმაცია“.
© 2024 NXP BV
დამატებითი ინფორმაციისთვის ეწვიეთ: https://www.nxp.com
- გამოშვების თარიღი: 19 წლის 2024 აპრილი
- დოკუმენტის იდენტიფიკატორი: AN14263
FAQ
კითხვა: რა არის ამ პროდუქტის მთავარი დანიშნულება?
პასუხი: მთავარი მიზანია სახის ამოცნობის ფუნქციის ჩართვა AI&ML ხედვის ალგორითმის მოდელის გამოყენებით მარტივი LVGL GUI exampSLN-TLHMI-IOT დაფაზე.
Q: როგორ შეუძლიათ დეველოპერებს სარგებლობა ამ აპლიკაციის შენიშვნით?
პასუხი: დეველოპერებს შეუძლიათ ისწავლონ როგორ განახორციელონ სახის ამოცნობა ჩარჩოზე ეტაპობრივად მოწოდებული მაგალითების გამოყენებითampშეიტყვეთ და გაიგეთ ჩართული მოწყობილობის მენეჯერები, HAL მოწყობილობები და ღონისძიებების მექანიზმები.
დოკუმენტები / რესურსები
![]() | NXP AN14263 განახორციელეთ LVGL GUI სახის ამოცნობა Framewor-ზე [pdf] მომხმარებლის სახელმძღვანელო AN14263 განახორციელეთ LVGL GUI სახის ამოცნობა Framewor-ზე, AN14263, განახორციელეთ LVGL GUI სახის ამოცნობა Framewor-ზე, LVGL GUI Face Recognition on Framewor, Face Recognition on Framewor, Recognition on Framewor |