nxp-લોગો

NXP AN14263 ફ્રેમવર પર LVGL GUI ફેસ રેકગ્નિશન લાગુ કરો

NXP-AN14263-Implement-LVGL-GUI ફેસ-રેકગ્નિશન-ઓન-ફ્રેમવર-ઉત્પાદન

ઉત્પાદન માહિતી

વિશિષ્ટતાઓ

  • ઉત્પાદન નામ: ફ્રેમવર્ક પર LVGL GUI ફેસ રેકગ્નિશન
  • દસ્તાવેજ પુનરાવર્તન: ૬ – ૧૧ એપ્રિલ ૨૦૨૫
  • કીવર્ડ્સ: ચહેરાની ઓળખ, LVGL GUI, ફ્રેમવર્ક

ઉત્પાદન વપરાશ સૂચનાઓ

  1. ઉપરview
    આ પ્રોડક્ટ એક સરળ LVGL GUI એક્સ સાથે ફેસ રેકગ્નિશન ફંક્શનને અમલમાં મૂકવા માટે ફ્રેમવર્ક પર ચહેરાની ઓળખ માટે AI&ML વિઝન અલ્ગોરિધમ મોડલને સક્ષમ કરે છે.ampSLN-TLHMI-IOT બોર્ડ પર le.
  2. ફ્રેમવર્ક ઓવરview
    સોલ્યુશન સૉફ્ટવેર ફ્રેમવર્ક આર્કિટેક્ચરની આસપાસ ડિઝાઇન કરવામાં આવ્યું છે જેમાં ઉપકરણોના સંચાલન માટે જવાબદાર ઉપકરણ સંચાલકો, અંતર્ગત વિગતોને અમૂર્ત કરવા માટે HAL ઉપકરણો અને વિવિધ ઉપકરણો વચ્ચેના સંચાર માટેની ઇવેન્ટ્સનો સમાવેશ થાય છે.
  3. લક્ષણો
    પ્રોડક્ટ કેમેરા પ્રી દ્વારા ફેસ રેકગ્નિશન ફંક્શનના અમલીકરણ માટે પરવાનગી આપે છેview ચહેરાની નોંધણી, ઓળખાણ અને દૂર કરવા માટે બટનો સાથે GUI સ્ક્રીન પર. રજિસ્ટર્ડ ફેસ ડેટા ફ્લેશ પર a મારફતે સંગ્રહિત થાય છે file સિસ્ટમ
  4. એપ્લિકેશન નોંધ સામગ્રી
    એપ્લિકેશન નોટ કેમેરા પ્રી સાથે LVGL GUI સ્ક્રીન રજૂ કરે છેview અને ચહેરા-સંબંધિત ક્રિયાઓ માટે બટનો. તે વિકાસકર્તાઓને ફ્રેમવર્ક સમજવામાં મદદ કરે છે અને આપેલ એક્સનો ઉપયોગ કરીને ચહેરાની ઓળખ કેવી રીતે લાગુ કરવીample

ઉપરview

NXP એ SLN-TLHMI-IOT નામની સોલ્યુશન ડેવલપમેન્ટ કીટ લોન્ચ કરી છે જે સ્માર્ટ HMI એપ્લિકેશન્સ પર ધ્યાન કેન્દ્રિત કરે છે. તે એક NXP i.MX RT117H MCU પર અમલમાં આવેલ ML વિઝન, વૉઇસ અને ગ્રાફિક્સ UI સાથે સ્માર્ટ HMI ને સક્ષમ કરે છે. SDK પર આધારિત, સોલ્યુશન સૉફ્ટવેરનું નિર્માણ ફ્રેમવર્ક નામની ડિઝાઇન પર કરવામાં આવ્યું છે જે લવચીક ડિઝાઇન અને દ્રષ્ટિ અને વૉઇસ કાર્યોના કસ્ટમાઇઝેશનને સપોર્ટ કરે છે. વપરાશકર્તાઓને સોફ્ટવેર પ્લેટફોર્મનો વધુ સારી રીતે ઉપયોગ કરવામાં મદદ કરવા માટે, કેટલાક મૂળભૂત દસ્તાવેજો પૂરા પાડવામાં આવે છે, ઉદાહરણ તરીકેample, સોફ્ટવેર વિકાસ વપરાશકર્તા માર્ગદર્શિકા. માર્ગદર્શિકા SLN-TLHMI-IOT નો ઉપયોગ કરીને વિકાસકર્તાઓને તેમની એપ્લિકેશનને વધુ સરળતાથી અને અસરકારક રીતે અમલમાં લાવવા માટે ફ્રેમવર્ક સહિત ઉકેલના તમામ ઘટકોને આવરી લેતી એપ્લિકેશનની મૂળભૂત સોફ્ટવેર ડિઝાઇન અને આર્કિટેક્ચરનો પરિચય આપે છે.
ઉકેલ અને સંબંધિત દસ્તાવેજો વિશે વધુ વિગતો માટે, આની મુલાકાત લો web ML વિઝન, વૉઇસ અને ગ્રાફિકલ UI સાથે i.MX RT117H પર આધારિત NXP EdgeReady સ્માર્ટ HMI સોલ્યુશનનું પૃષ્ઠ. જો કે, વિકાસકર્તાઓ માટે આ મૂળભૂત માર્ગદર્શિકાઓનો ઉલ્લેખ કરતી તેમની સ્માર્ટ HMI એપ્લિકેશનોને અમલમાં મૂકવાનું હજી એટલું સરળ નથી. તબક્કાવાર ફ્રેમવર્ક પરના વિકાસનો અભ્યાસ કરવામાં મદદ કરવા એપ્લિકેશન નોંધોની શ્રેણીનું આયોજન કરવામાં આવ્યું છે. આ એપ્લિકેશન નોંધ અમલીકરણ LVGL GUI કેમેરા પ્રી પર આધારિત છેview ફ્રેમવર્ક પર (દસ્તાવેજ AN14147). આ એપ્લિકેશન નોટ કેમેરા પ્રી દ્વારા ચહેરાની ઓળખ કાર્યને અમલમાં મૂકવા માટે ફ્રેમવર્ક પર ચહેરાની ઓળખ માટે AI&ML વિઝન અલ્ગોરિધમ મોડલને કેવી રીતે સક્ષમ કરવું તેનું વર્ણન કરે છે.view સરળ LVGL GUI ex સાથે GUI સ્ક્રીન પરampSLN-TLHMI-IOT બોર્ડ પર le. આવેદનપત્રમાં માજીample કેમેરા પ્રી સાથે LVGL GUI સ્ક્રીન રજૂ કરે છેview અને ચહેરાની નોંધણી, ઓળખાણ અને દૂર કરવા માટે કેટલાક બટનો. રજિસ્ટર્ડ ફેસ ડેટા ફ્લૅશ પર થોડો વડે સ્ટોર થાય છે file સિસ્ટમ

ઉચ્ચ સ્તરે, એપ્લિકેશન નોંધમાં નીચેની સામગ્રીઓ શામેલ છે:

  • ફ્રેમવર્ક પર ચહેરો ઓળખવાની સુવિધાને સક્ષમ કરો.
  • દ્વારા ફ્રેમવર્ક પર ફેસ ડેટાબેઝ સપોર્ટ ઉમેરો file ફ્લેશ પર સિસ્ટમ.
  • LVGL GUI એપ્લિકેશનનો અમલ કરો. ઉપરોક્ત પરિચય દ્વારા, આ દસ્તાવેજ વિકાસકર્તાઓને મદદ કરે છે:
  • ફ્રેમવર્ક અને સ્માર્ટ HMI સોલ્યુશન સોફ્ટવેરને વધુ ઊંડાણપૂર્વક સમજો.
  • LVGL GUI એપ સાથે ફ્રેમવર્ક પર તેમની AI&ML ફેસ રેકગ્નિશન વિકસાવો.

ફ્રેમવર્ક સમાપ્તview
સોલ્યુશન સૉફ્ટવેર મુખ્યત્વે ફ્રેમવર્ક આર્કિટેક્ચરના ઉપયોગની આસપાસ રચાયેલ છે જે ઘણા જુદા જુદા ભાગોથી બનેલું છે:

  • ઉપકરણ સંચાલકો - મુખ્ય ભાગ
  • હાર્ડવેર એબ્સ્ટ્રેક્શન લેયર (HAL) ઉપકરણો
  • સંદેશાઓ/ઇવેન્ટ્સ

આકૃતિ 1 માં બતાવ્યા પ્રમાણે, ઓવરview ફ્રેમવર્કની મિકેનિઝમ છે:

ઉપકરણ સંચાલકો સિસ્ટમ દ્વારા ઉપયોગમાં લેવાતા ઉપકરણોના સંચાલન માટે જવાબદાર છે. દરેક ઉપકરણ પ્રકાર (ઇનપુટ, આઉટપુટ અને તેથી વધુ) પાસે તેના પોતાના પ્રકાર-વિશિષ્ટ ઉપકરણ સંચાલક છે. ડિવાઈસ મેનેજર તેની પર રજીસ્ટર થયા પછી શરૂ થાય છે, તે રજિસ્ટર્ડ ડિવાઈસને આરંભ અને સ્ટાર્ટ કર્યા પછી ડિવાઈસ અને અન્ય મેનેજરોને ડેટા ટ્રાન્સફર કરવા માટે એક મેસેજની રાહ જુએ છે અને ચેક કરે છે. HAL ઉપકરણો નીચલા-સ્તરના ડ્રાઇવર કોડની ટોચ પર લખવામાં આવે છે, જે ઘણી અંતર્ગત વિગતોને અમૂર્ત કરીને કોડની સમજશક્તિ વધારવામાં મદદ કરે છે.

ઇવેન્ટ્સ એ એક માધ્યમ છે જેના દ્વારા વિવિધ ઉપકરણો વચ્ચે તેમના મેનેજરો દ્વારા માહિતીનો સંચાર કરવામાં આવે છે. જ્યારે કોઈ ઇવેન્ટ ટ્રિગર થાય છે, ત્યારે જે ઉપકરણને પ્રથમ ઇવેન્ટ પ્રાપ્ત થઈ છે તે તે ઇવેન્ટને તેના મેનેજરને સંચાર કરે છે, પછી બદલામાં તે ઇવેન્ટ પ્રાપ્ત કરવા માટે નિયુક્ત અન્ય મેનેજરોને સૂચિત કરે છે.

NXP-AN14263-ઇમ્પ્લીમેન્ટ-LVGL-GUI ફેસ-રિકગ્નિશન-ઓન-ફ્રેમવર-ફિગ- (1)

ફ્રેમવર્કની આર્કિટેક્ચરલ ડિઝાઇન ત્રણ પ્રાથમિક ધ્યેયો પર કેન્દ્રિત હતી:

  1. ઉપયોગમાં સરળતા
  2. લવચીકતા/પોર્ટેબિલિટી
  3. પ્રદર્શન

આ ફ્રેમવર્ક વિઝન અને અન્ય મશીન-લર્નિંગ એપ્લીકેશન માટે માર્કેટમાં સમયને ઝડપી બનાવવાના ધ્યેય સાથે ડિઝાઇન કરવામાં આવ્યો છે. બજાર માટે ઝડપી સમયની ખાતરી કરવા માટે, તે મહત્વપૂર્ણ છે કે સોફ્ટવેર પોતે સમજવા અને સંશોધિત કરવા માટે સરળ છે. આ ધ્યેયને ધ્યાનમાં રાખીને, ફ્રેમવર્કના આર્કિટેક્ચરને પ્રતિબંધિત કર્યા વિના અને પ્રદર્શનની કિંમત પર આવ્યા વિના સંશોધિત કરવું સરળ છે.
ફ્રેમવર્ક વિશે વધુ વિગતો માટે, સ્માર્ટ HMI સોફ્ટવેર ડેવલપમેન્ટ વપરાશકર્તા માર્ગદર્શિકા (દસ્તાવેજ MCU-SMHMI-SDUG) જુઓ.

લાઇટ એન્ડ વર્સેટાઇલ ગ્રાફિક્સ લાઇબ્રેરી (LVGL)
LVGL (લાઇટ અને વર્સેટાઇલ ગ્રાફિક્સ લાઇબ્રેરી) એ એક મફત અને ઓપન સોર્સ ગ્રાફિક્સ લાઇબ્રેરી છે જે તમને ઉપયોગમાં સરળ ગ્રાફિકલ તત્વો, સુંદર વિઝ્યુઅલ ઇફેક્ટ્સ અને ઓછી મેમરી ફૂટપ્રિન્ટ સાથે એમ્બેડેડ GUI બનાવવા માટે જરૂરી બધું પ્રદાન કરે છે.

GUI માર્ગદર્શક
GUI ગાઇડર એ NXP તરફથી વપરાશકર્તા-મૈત્રીપૂર્ણ ગ્રાફિકલ વપરાશકર્તા ઇન્ટરફેસ વિકાસ સાધન છે જે ઓપન-સોર્સ LVGL ગ્રાફિક્સ લાઇબ્રેરી સાથે ઉચ્ચ ગુણવત્તાવાળા ડિસ્પ્લેના ઝડપી વિકાસને સક્ષમ કરે છે. GUI ગાઇડરનું ડ્રેગ-એન્ડ-ડ્રોપ એડિટર LVGL ની ઘણી વિશેષતાઓનો ઉપયોગ કરવાનું સરળ બનાવે છે જેમ કે વિજેટ્સ, એનિમેશન અને શૈલીઓ ન્યૂનતમ અથવા બિલકુલ કોડિંગ વિના GUI બનાવવા માટે.

બટનને ક્લિક કરીને, તમે તમારી એપ્લિકેશનને સિમ્યુલેટેડ વાતાવરણમાં ચલાવી શકો છો અથવા તેને લક્ષ્ય પ્રોજેક્ટમાં નિકાસ કરી શકો છો. GUI ગાઇડરમાંથી જનરેટ કરેલ કોડ તમારા પ્રોજેક્ટમાં સરળતાથી ઉમેરી શકાય છે, વિકાસ પ્રક્રિયાને વેગ આપે છે અને તમને તમારી એપ્લિકેશનમાં એકીકૃત વપરાશકર્તા ઇન્ટરફેસ ઉમેરવાની મંજૂરી આપે છે. GUI ગાઇડર NXP ના સામાન્ય હેતુ અને ક્રોસઓવર MCUs સાથે વાપરવા માટે મફત છે અને તેમાં કેટલાક સપોર્ટેડ પ્લેટફોર્મ્સ માટે બિલ્ટ-ઇન પ્રોજેક્ટ ટેમ્પ્લેટ્સનો સમાવેશ થાય છે. GUI ગાઇડર પર LVGL અને GUI વિકાસ વિશે વધુ જાણવા માટે, લાઇટ અને વર્સેટાઇલ ગ્રાફિક્સ લાઇબ્રેરી અને GUI ગાઇડર તપાસો.

વિકાસ પર્યાવરણ

પ્રથમ, એક્સના અમલીકરણ માટે હાર્ડવેર અને સોફ્ટવેર પર્યાવરણ તૈયાર કરો અને સેટ કરોampફ્રેમવર્ક પર લે.

હાર્ડવેર પર્યાવરણ
હાર્ડવેર પર્યાવરણ ભૂતપૂર્વ ચકાસવા માટે સુયોજિત થયેલ છેampલે:

  • NXP i.MX RT117H (SLN_TLHMI_IOT કિટ) પર આધારિત સ્માર્ટ HMI ડેવલપમેન્ટ કીટ
  • 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 - દા.તampવિકાસના આધાર સોફ્ટવેર તરીકે બીજી એપ્લિકેશન નોટનો le કોડ. વિગતો માટે, જુઓ 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) નીચેની પ્રક્રિયાઓ ધરાવે છે:

  • આઉટપુટ UI HAL માંથી સંબંધિત ઇવેન્ટ્સ પ્રાપ્ત કર્યા પછી AI&ML વિઝન અલ્ગોરિધમ મોડલ દ્વારા ફેસ રજીસ્ટ્રેશન અને ઓળખાણ કરો. અલ્ગોરિધમ મોડલથી આઉટપુટ UI HAL ને અનુમાન પરિણામોને સૂચિત કરો.
  • નાના પર આધારિત ફેસ ફિચર ડેટાબેઝને એક્સેસ (ઉમેરો, કાઢી નાખો...) કરે છે file આઉટપુટ UI HAL થી સંબંધિત ઇવેન્ટ્સ પ્રાપ્ત કર્યા પછી FaceDB HAL ના API ને કૉલ કરીને સિસ્ટમ.
  • ચહેરાની નોંધણી અને ઓળખ કરતી વખતે કેમેરા HAL થી કેમેરા વિડિયો ફ્રેમની વિનંતી કરો.

NXP-AN14263-ઇમ્પ્લીમેન્ટ-LVGL-GUI ફેસ-રિકગ્નિશન-ઓન-ફ્રેમવર-ફિગ- (3)

ફ્રેમવર્ક પર ચહેરાની ઓળખ લાગુ કરો

LVGL GUI ફેસ રેકગ્નિશન એક્સample (ભૂતપૂર્વample પછીથી પ્રદાન કરવામાં આવે છે) ફ્રેમવર્ક પર ભૂતપૂર્વના આધારે લાગુ કરવામાં આવે છેampLVGL GUI કેમેરા પ્રી અમલીકરણના le કોડ્સview ફ્રેમવર્ક પર (દસ્તાવેજ AN14147).

ભૂતપૂર્વમાં ચહેરાની ઓળખ દર્શાવવા માટેample, GUI એપ્લિકેશનનું મૂળભૂત કાર્ય (આકૃતિ 3 માં મુખ્ય સ્ક્રીન જુઓ) નીચે વર્ણવ્યા પ્રમાણે ડિઝાઇન કરવામાં આવ્યું છે:

  • GUI એપ રજીસ્ટ્રેશન અથવા રેકગ્નિશન બટનને ક્લિક કરતી વખતે ફેસ રજીસ્ટ્રેશન અથવા રેકગ્નિશન ઇવેન્ટને આઉટપુટ UI HAL પર ટ્રિગર કરે છે. અને આઉટપુટ UI HAL ચહેરાની નોંધણી સફળ થયા પછી વિઝન અલ્ગો HAL માં વપરાશકર્તાને ઉમેરવાની ઘટનાની સૂચના આપે છે.
  • GUI એપ વપરાશકર્તાના ચહેરાની ઓળખ થયા પછી વપરાશકર્તાને કાઢી નાખો બટન પર ક્લિક કરતી વખતે આઉટપુટ UI HALમાંથી વપરાશકર્તાને કાઢી નાખવાની ઘટનાને ટ્રિગર કરે છે.
  • GUI એપ બટનો અને ઈમેજીસની બહાર સ્ક્રીન પર ક્લિક કરતી વખતે આઉટપુટ UI HAL પર ચાલતા ઓએસિસ અલ્ગોને રોકવાની ઘટનાને ટ્રિગર કરે છે.

NXP-AN14263-ઇમ્પ્લીમેન્ટ-LVGL-GUI ફેસ-રિકગ્નિશન-ઓન-ફ્રેમવર-ફિગ- (10)

એક્સના અમલીકરણ માટે સોફ્ટવેર પેકેજ તૈયાર કરોample

  • બેઝ સોફ્ટવેર lvgl_gui_camera_pre ને ક્લોન કરોview_cm7. પ્રોજેક્ટનું નામ અને મુખ્ય બદલો filelvgl_gui_face_rec_cm7 ને નામ આપો.
  • ફ્રેમવર્કને સોફ્ટવેરમાં અપડેટ કરવાની જરૂર છે કારણ કે ફ્રેમવર્ક કોર માટેના સ્ત્રોત કોડ્સ આવૃત્તિ 1.1.2 થી GitHub પર સાર્વજનિક થવાનું શરૂ થયું છે.
  • ફ્રેમવર્ક ફોલ્ડરને GitHub માંથી V1.1.2 ની કૉપિ સાથે બદલો સિવાય files fwk_log.h અને fwk_common.h inc\ હેઠળ કારણ કે તેમાં એપ્લિકેશન નોંધની શ્રેણી માટે ફેરફાર કરવામાં આવ્યા છે. કામગીરી આકૃતિ 4 માં બતાવવામાં આવી છે:NXP-AN14263-ઇમ્પ્લીમેન્ટ-LVGL-GUI ફેસ-રિકગ્નિશન-ઓન-ફ્રેમવર-ફિગ- (11)
  • libs જૂથ હેઠળ ફોલ્ડર framework_cm7 કાઢી નાખો અને લાઇબ્રેરી ફ્રેમવર્ક_cm7 અને તેનો પ્રોજેક્ટ > પ્રોપર્ટીઝ > C/C++ બિલ્ડ > સેટિંગ્સ > ટૂલ સેટિંગ્સ > MCU C++ Linker > Libraries માં ગોઠવેલ શોધ પાથને દૂર કરો કારણ કે કોરનો સોર્સ કોડ આપવામાં આવ્યો છે.

ફ્રેમવર્ક પર ચહેરો ઓળખવાની સુવિધાને સક્ષમ કરો
ફેસ રેકગ્નિશન ફીચર સ્ટેટિક લાઇબ્રેરી તરીકે પ્રદાન કરવામાં આવેલ ML વિઝન અલ્ગોરિધમ મોડલ પર બનાવવામાં આવ્યું છે - NXP દ્વારા ઓએસિસ લાઇટ રનટાઇમ લાઇબ્રેરી. લાઇબ્રેરી એક નાનકડી, અત્યંત કાર્યક્ષમ, કસ્ટમાઇઝ્ડ અને ઑપ્ટિમાઇઝ AI લાઇબ્રેરી છે. મોડેલમાં ચહેરાની ઓળખ, ચહેરાની ઓળખ, કાચની શોધ અને જીવંતતા શોધનો સમાવેશ થાય છે. તે મુખ્યત્વે API OASISLT_run_extended() ને ઈવેન્ટ કૉલબેક્સ દ્વારા કૉલરને પરિણામો અપડેટ કરતી વખતે ચહેરાની ઓળખ પાઈપલાઈન ચલાવવા માટે અને સ્રોત ફ્રેમ માહિતી, કૉલબૅક્સ અને મેમરીનો ઉલ્લેખ કર્યા પછી ફેસ ડેટાબેઝ કૉલબૅક્સ દ્વારા ડેટાબેઝમાં ચહેરા ઉમેરવા/અપડેટ/ડિલીટ કરવા માટે પ્રદાન કરે છે. આરંભ પર અન્ય API OASISLT_init() ને કૉલ કરીને લાઇબ્રેરી દ્વારા ઉપયોગમાં લેવાતો પૂલ. એપીઆઈની કોલિંગ અને કોલબેક ફંક્શન્સ ફ્રેમવર્કના વિઝન એલ્ગો HAL માં લાગુ કરવામાં આવે છે.

વિઝન અલ્ગો મોડલ લાઇબ્રેરી ઉમેરો

  1. લાઇબ્રેરી અને સંબંધિત હેડર ધરાવતા ફોલ્ડર ઓએસિસની નકલ કરો file સ્માર્ટ HMI\coffee_machine\cm7\libs\ માંથી ભૂતપૂર્વ ફોલ્ડર libs માંample SW.
  2. હેડરનો શોધ પાથ ઉમેરો file પ્રોજેક્ટ > પ્રોપર્ટીઝ > C/C++ બિલ્ડ > સેટિંગ્સ > ટૂલ સેટિંગ્સ > MCU C કમ્પાઇલર > સમાવેશ થાય છે અને MCU C++ કમ્પાઇલર > સમાવેશ થાય છે: “${workspace_loc:/${ProjName}/libs/oasis/include}”
  3. પ્રોજેક્ટ > પ્રોપર્ટીઝ > C/C++ બિલ્ડ > સેટિંગ્સ > MCU C+ + Linker > Libraries: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” પર lib અને તેનો શોધ પાથ ઉમેરો અને મેક્રોની વ્યાખ્યા પ્રોજેક્ટ > પ્રોપર્ટીઝ > C/C++ બિલ્ડ > સેટિંગ્સ > ટૂલ સેટિંગ્સ > MCU C કમ્પાઇલર > પ્રીપ્રોસેસર અને MCU C++ કમ્પાઇલર > પ્રીપ્રોસેસર: SMART_TLHMI_2D પર સુવિધાને સક્ષમ કરો

વિઝન અલ્ગો HAL સક્ષમ કરો
વિઝન અલ્ગો HAL એ વિઝન અલ્ગો મોડલને કામ કરવા માટે ચલાવે છે અને તેમાંથી ઇવેન્ટ્સ પ્રાપ્ત કર્યા પછી UI આઉટપુટ HAL ને પરિણામોનો પ્રતિસાદ આપે છે.

તેને સક્રિય કરવા માટે, અસ્તિત્વમાં રહેલા સમાન HAL ડ્રાઇવરને ક્લોન કરો file જ્યાં નીચેના કાર્યો અમલમાં મૂકવામાં આવે છે:

  • ફેસ ડેટાબેઝ ઓપરેશન્સ અને ઇવેન્ટ્સ હેન્ડલિંગના કૉલબૅક્સને અમલમાં મૂકો.
  • ઓએસિસ લાઇબ્રેરીના API ને કૉલ કરીને વિઝન અલ્ગોને કાર્ય કરવા માટે ચલાવો.
  • યુઝર ફેસ ડેટાબેઝ અને એપ ડેટાબેઝને એક્સેસ કરો (તેની પૂર્વમાં જરૂર નથીampલે).
  • માંથી ઇવેન્ટ્સ મેળવો અને આઉટપુટ UI HAL પર પરિણામો મોકલો.

ભૂતપૂર્વ માટે એચએએલના અમલીકરણના મુખ્ય કાર્યોample છે:

  • અસ્તિત્વમાં રહેલા સમાન HAL ડ્રાઇવરને ક્લોન કરો file અને સંબંધિત નામો બદલો.
  • એપ્લિકેશન ડેટા ઓપરેશન્સથી સંબંધિત કોડ્સ દૂર કરો.
  • ભૂતપૂર્વ દીઠ આઉટપુટ UI HAL માંથી ઇવેન્ટ્સને હેન્ડલ કરવા માટે વ્યાખ્યાઓ અને કાર્યોને અપડેટ કરોampલે ડિઝાઇન.
  • ઓએસિસ આરંભમાં જરૂરી રૂપરેખાંકનો ઉમેરો.

વિગતવાર પગલાં નીચે મુજબ છે:

  1. ક્લોન hal_vision_algo_oasis_coffeemachine.c. બદલો filehal_vision_algo_oasis_guifacerec.c.નું નામ. અને માં GUIFaceRec સાથે તમામ સ્ટ્રીંગ્સ CoffeeMachine ને બદલો file.
  2. એપ ડેટાબેઝથી સંબંધિત કોફીડબી (કેસ સેન્સિટિવ નહીં) સ્ટ્રિંગ ધરાવતા કોડ્સ દૂર કરો, ભૂતપૂર્વ માટેample, #include hal_sln_coffeedb.h.
  3. આઉટપુટ UI HAL માંથી ઇવેન્ટ્સને હેન્ડલ કરવા માટે HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() ફંક્શનમાં ફેરફાર કરો.
    • ઇવેન્ટની વ્યાખ્યા kEventFaceRecId_RegisterCoffeeSelection ને kEventFaceRecId_RegisterUserFace અને સ્ટ્રક્ચર સ્ટ્રિંગ regCoffeeSelection ને regGUIFaceRec માં બદલો જેથી ડેટાબેઝમાં નવા ફેસ ફીચર ડેટા ઉમેરવા ઇવેન્ટ હેન્ડલિંગ માટે.
    • ભૂતપૂર્વમાં ચહેરો ઓળખવાની ક્રિયાઓની પ્રમાણભૂત પ્રક્રિયા બતાવવા માટેample, રાજ્યોની વ્યાખ્યાઓ સાથે kEventFaceRecID_OasisSetState ના કિસ્સામાં હેન્ડલિંગમાં ફેરફાર કરો:
      • kOASISLIteState
      • નોંધણી kOASISLIteState
      • ઓળખ kOASISLIteState
      • અટકી ગયો
  4. ઉપરના પગલામાં ઉલ્લેખિત ઘટનાઓની વ્યાખ્યાઓ ઉમેરો અને સંશોધિત કરો.
    • હેડરની નકલ કરો file smart_tlhmi_event_descriptor.h smart HMI\coffee_machine \cm7\source\event_handlers\ માંથી ભૂતપૂર્વના ફોલ્ડર સ્ત્રોતમાંample SW. અપડેટ કરો file નીચે પ્રમાણે:
    • ઇવેન્ટ વ્યાખ્યા kEventFaceRecId_RegisterCoffeeSelection ને enum પ્રકાર _event_smart_tlhmi_id માં kEventFaceRecId_RegisterUserFace અને સ્ટ્રક્ચર _event_smart_smart માં regGUIFaceRec માં સ્ટ્રક્ચર સ્ટ્રિંગ regCoffeeSelection માં બદલો. તેથી, regCoffeeSelection માટે સ્ટ્રક્ચર register_coffee_selection_event_t ને register_gui_facerec_event_t માં બદલો.
    • કોફી મશીન એપ્લિકેશન માટે ઉપયોગમાં લેવાતી અન્ય સામગ્રીઓ કાઢી નાખો, ઉદાહરણ તરીકેample, અવાજ વિશે કોડ લાઇન: # "hal_event_descriptor_voice.h" નો સમાવેશ કરો.
    • નીચે પ્રમાણે પ્રોજેક્ટમાં ફ્રેમવર્ક>hal>વિઝન હેઠળ hal_vision_algo.h માં enum પ્રકાર oasis_lite_state_t માં kOASISLiteState_Stopped અને kOASISLiteState_Running પ્રકારો ઉમેરો:
      typedef enum _oasis_lite_state {
      • kOASISLIteState
      • ચાલી રહ્યું છે, kOASISLIteState
      • રોકાયેલ, kOASISLIteState
      • ઓળખ,
      • kOASISLIteState
      • નોંધણી, kOASISLIteState
      • ડી-રજીસ્ટ્રેશન, kOASISLIteState
      • રીમોટ રજીસ્ટ્રેશન, kOASISLIteState
      • ગણતરી
    • નીચે પ્રમાણે પ્રોજેક્ટમાં ફ્રેમવર્ક>hal>વિઝન હેઠળ hal_event_descriptor_face_rec.h માં સ્ટ્રક્ટ oasis_state_event_t ને રિફાઇન કરવા માટે ઉપરોક્ત અપડેટ કરેલ struct oasis_lite_state_t નો ઉપયોગ કરો: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } ઓએસિસ_સ્ટેટ_ઇવેન્ટ_ટી;
  5. તમામ kEventInfo_Remote ને kEventInfo_Local માં બદલો વિઝન એલ્ગો HAL થી અન્ય HAL ને સમાન કોર પર ચાલી રહેલ ઘટનાઓ મોકલવા માટે જેમ કે ડ્યુઅલ-કોરને બદલે સિંગલ કોરનો ઉપયોગ થાય છે.ample
  6. 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 3 વ્યાખ્યાયિત કરો
      • # AT_FB_SHMEM_SECTION_ALIGN(var, alignbytes) વ્યાખ્યાયિત કરો \
      • __એટ્રીબ્યુટ__((વિભાગ(“.bss.$fb_sh_mem,\"aw\",%nobits @"))) var
      • __લક્ષણ__((સંરેખિત(સંરેખિત)))
    • પ્રોજેક્ટ > પ્રોપર્ટીઝ > C/C++ બિલ્ડ > MCU સેટિંગ્સ પર આકૃતિ 5 માં બતાવેલ ઉપરોક્ત મેમરી વિભાગ fb_sh_mem પર મેમરી અસાઇનમેન્ટને ગોઠવો:NXP-AN14263-ઇમ્પ્લીમેન્ટ-LVGL-GUI ફેસ-રિકગ્નિશન-ઓન-ફ્રેમવર-ફિગ- (12)
    • lvgl_gui_face_rec_cm7.cpp માં વૈશ્વિક ચલ g_DTCOPBuf જાહેર કરો: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
    • ઉપરોક્ત ચલમાં વપરાયેલી વ્યાખ્યાઓ ઉમેરવાનું ચાલુ રાખો:
    • ઉપરોક્ત વિભાગને board_define.h માં વ્યાખ્યાયિત કરો:
      • # AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) વ્યાખ્યાયિત કરો \
      • વિશેષતા__((વિભાગ(“.bss.$SRAM_DTC_cm7,\"aw\",%nobits @"))) var
      • વિશેષતા__((સંરેખિત(સંરેખિત)))
    • હેડર શામેલ કરો file hal_vision_algo.h એ lvgl_gui_face_rec_cm7.cpp માં સમાવિષ્ટ app_config.h માં મેક્રો વ્યાખ્યા DTC_OPTIMIZE_BUFFER_SIZE ધરાવે છે.
  7. ચહેરાની ઓળખ પર પ્રગતિ સ્થિતિ દર્શાવવા માટે ચલ s_debugOption ને true પર સેટ કરો.
  8. હેડરનો શોધ પાથ ઉમેરો fileપ્રોજેક્ટ > પ્રોપર્ટીઝ >C/C++ બિલ્ડ > સેટિંગ્સ > ટૂલ સેટિંગ્સ > MCU C કમ્પાઇલર > સમાવિષ્ટ અને MCU C++ કમ્પાઇલર > સમાવે છે: “${workspace_loc:/${ProjName}/framework/hal/vision}” પરના વિઝન HAL
  9. board_define.h માં વિઝન અલ્ગો HAL ને સક્ષમ કરવા માટે નીચેની વ્યાખ્યા ઉમેરો: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec

આઉટપુટ UI HAL સક્ષમ કરો
આઉટપુટ UI HAL એ ઘટનાઓની વિઝન અલ્ગો HAL ને સૂચિત કરે છે અને વિઝન અલ્ગો HAL ના અનુમાન પરિણામોને પ્રતિભાવ આપે છે. GUI એપ્લિકેશન સાથે, ઇવેન્ટ્સ સામાન્ય રીતે એપ્લિકેશન દ્વારા ટ્રિગર થાય છે અને પરિણામો એપ્લિકેશન પર બતાવવામાં આવે છે.

તેને સક્રિય કરવા માટે, અસ્તિત્વમાં રહેલા સમાન HAL ડ્રાઇવરને ક્લોન કરો file જ્યાં સામાન્ય રીતે નીચેના કાર્યો અમલમાં મૂકવામાં આવે છે:

  • ફેસ રેકગ્નિશન અને ડેટાબેઝ એક્સેસ માટે ઇવેન્ટ્સને સૂચિત કરો.
  • ઇવેન્ટ્સને ટ્રિગર કરવા માટે GUI એપ્લિકેશન માટે કૉલબેક્સનો અમલ કરો.
  • વિઝન અલ્ગો મોડ્યુલમાંથી અનુમાનના પરિણામોને હેન્ડલ કરો.
  • ટાઈમર અને ફેસ ગાઈડ લંબચોરસ વડે નિયંત્રિત પ્રોગ્રેસ બાર દ્વારા UI પર હેન્ડલિંગ કરતી ઘટનાઓની પ્રક્રિયા અને પરિણામો બતાવો.

ભૂતપૂર્વ માટે એચએએલના અમલીકરણના મુખ્ય કાર્યોampઆ દસ્તાવેજમાં વપરાયેલ le છે:

  • અસ્તિત્વમાં રહેલા સમાન HAL ડ્રાઇવરને ક્લોન કરો file અને સંબંધિત નામો બદલો.
  • એપ્લિકેશનથી સંબંધિત કોડ્સ દૂર કરો.
  • ઈવેન્ટ્સ નોટિફિકેશન માટે ફંક્શન અપડેટ કરો અને એક્સ દીઠ રિઝલ્ટ રિસ્પોન્સampલે ડિઝાઇન.
  • ઇવેન્ટ્સને ટ્રિગર કરવા માટે GUI એપ્લિકેશન માટે કૉલબેક્સ ઉમેરો.

વિગતવાર પગલાં નીચે મુજબ છે:

  1. ક્લોન hal_output_ui_coffee_machine.c. બદલો filehal_ output_ui_guifacerec.c ને નામ આપો.
  2. માં GUIFaceRec સાથે તમામ સ્ટ્રીંગ્સ CoffeeMachine ને બદલો file.
  3. એપ્લિકેશન - કોફી મશીનથી સંબંધિત કોડ્સ દૂર કરો.
    • WakeUp() અને _StandBy() અને સંબંધિત કોડ્સ (સ્ટ્રિંગ wake_up અને તેમના માટે સ્ટેન્ડબાય શોધી શકે છે) ને દૂર કરો.
    • પૂર્વ દૂર કરોview HAL_OutputDev_UiGUIFaceRec_Input Notify() માં સંબંધિત કોડ સંભાળતી મોડ ઇવેન્ટ્સ.
    • ફંક્શન્સ UI_xxx_Callback() અને gu_set_virtual_face() સિવાય કોફી મશીનના GUI સાથે સંબંધિત સ્ટ્રિંગ gui_ અને સ્ક્રીન ધરાવતા કોડ્સ દૂર કરો.view મોડ સુવિધા.
    • કોફી મશીન એપ્લિકેશનથી સંબંધિત s_IsWaitingAnotherSelection અને s_IsWaitingRegisterSelection વેરીએબલ સાથે સંકળાયેલા તમામ કોડ્સ દૂર કરો.
    • વૉઇસ, ઑડિયો અને ભાષા સંબંધિત કોડ્સ દૂર કરો. માજી માટેampલે:
      • # "hal_voice_algo_asr_local.h" નો સમાવેશ કરો,
      • # "hal_event_descriptor_voice.h" નો સમાવેશ કરો
  4. વિવિધ ઈવેન્ટ્સ નોટિફિકેશન માટે, નવા ફંક્શન્સ _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec(), અને DeregisterGUIFaceRec() _StopFaceRec(), _RegisterCoffeeSelection(), અને deregisterCoffee(deelectionSelection) પહેલા ફંક્શનનો ઉલ્લેખ કરતા અમલ કરો.
    • _OutputManagerNotify() એ વિઝન અલ્ગો HAL ને ઇવેન્ટ મોકલવા માટે મૂળભૂત ઇવેન્ટ આઉટપુટ ફંક્શનનો અમલ કરે છે. નીચે આપેલા કાર્યો તેને તેમની પોતાની ઇવેન્ટ્સ મોકલવા માટે કહે છે.
    • _SetFaceRec() ચહેરાની નોંધણી, ઓળખાણ અને અલ્ગોને રોકવા માટે વિઝન અલ્ગોને ટ્રિગર કરવા kEventFaceRecID_OasisSetState ઇવેન્ટ મોકલે છે.
    • _RegisterGUIFaceRec() એ ઇવેન્ટ kEventFaceRecId_RegisterGUIFaceRec મોકલે છે જે smart_tlhmi_event_descriptor.h માં વ્યાખ્યાયિત થયેલ છે જેથી રજીસ્ટ્રેશન બરાબર થાય ત્યારે ડેટાબેઝમાં ફેસ ફીચર ડેટા ઉમેરવા માટે.
    • DeregisterGUIFaceRec() ફેસ રેકગ્નિશન પાસ કરતી વખતે ડેટાબેઝમાંથી ફેસ ફિચર ડેટા ડિલીટ કરવા ઇવેન્ટ kEventFaceRecID_DelUser મોકલે છે.
  5. પૂર્વ દીઠ ફંક્શન _InferComplete_Vision() માં ચહેરાની નોંધણી અને માન્યતાના અનુમાન પરિણામો માટે LVGL GUI એપ્લિકેશનમાંથી API ને કૉલ કરીને GUI ને તાજું કરવા સહિત સંબંધિત ક્રિયાઓ કરવા માટે કોડ્સ અપડેટ કરો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. board_define.h માં UI આઉટપુટ HAL ને સક્ષમ કરવા માટે નીચેની વ્યાખ્યાઓ ઉમેરો: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec

સૂચના:
ફેસ રેકગ્નિશન ફીચરને વધુ સારી રીતે પ્રસ્તુત કરવા માટે, આઉટપુટ UI HAL માં ફેસ રેકગ્નિશનની પ્રક્રિયા અને પરિણામો બતાવવા માટે ફંક્શન રાખો. કાર્ય નીચે પ્રમાણે વર્ણવેલ છે

  • ચહેરો માર્ગદર્શિકા લંબચોરસ વાદળી બતાવે છે, અને જ્યારે ચહેરો નોંધણી અથવા ઓળખ શરૂ થાય છે ત્યારે પ્રગતિ પટ્ટી પ્રગતિ દર્શાવે છે.
  • જ્યારે ચહેરો નોંધણી સફળ થાય છે ત્યારે ચહેરો માર્ગદર્શિકા લંબચોરસ લાલ બતાવે છે.
  • જ્યારે ચહેરો ઓળખ સફળ થાય છે ત્યારે ચહેરો માર્ગદર્શિકા લંબચોરસ લીલો રંગ બતાવે છે.
  • ચહેરો માર્ગદર્શિકા લંબચોરસ વાદળી રાખે છે, અને જ્યારે ટાઈમર સમાપ્ત થયા પછી ક્રિયા અસફળ હોય ત્યારે પ્રગતિ પટ્ટી સંપૂર્ણ પ્રગતિ દર્શાવે છે. તે સમયે, ચહેરાની નોંધણી અથવા ઓળખ બંધ કરો.

પ્રોગ્રેસ બાર અને ફેસ ગાઈડ લંબચોરસ એ ચિહ્નો તરીકે રજૂ કરવામાં આવે છે જે સંસાધન બાઈનરીમાં બનેલ છે file ફ્લેશમાં પ્રોગ્રામ કરવા માટે. 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 સ્માર્ટ HMI થી
      ભૂતપૂર્વના સંસાધન ફોલ્ડર હેઠળ નવા ફોલ્ડર ચિહ્નો માટે \coffee machine\resource\icons\ample SW.
    • ચાર આયકન માટે શોધ પાથ ઉમેરો fileકેમેરા_પ્રી માં છેview_resource.txt file સંસાધન ફોલ્ડરમાં, ઉદાહરણ તરીકેample: icon ../resource/icons/process_bar_240x14.h
    • કૅમેરા_પ્રી ચલાવોview_resource_build.bat ડબ્બાને જનરેટ કરવા માટે ઈમેજો અને આઈકન્સ સંસાધનો બનાવવા માટે file કૅમેરા_પ્રીview_resource.bin અને માહિતી file resource_information_table.txt (આકૃતિ 6 જુઓ).NXP-AN14263-ઇમ્પ્લીમેન્ટ-LVGL-GUI ફેસ-રિકગ્નિશન-ઓન-ફ્રેમવર-ફિગ- (13)
  2. SDRAM પર પ્રારંભ સરનામું અને app_config.h માં ચિહ્નોનું કદ વ્યાખ્યાયિત કરો. સરનામું GUI એપ્લિકેશનની છબીઓની બાજુમાં શરૂ થાય છે. કદ માહિતીમાં જનરેટ થાય છે file. # APP_ICONS_BASE વ્યાખ્યાયિત કરો (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) # APP_ICONS_SIZE 0x107c40 વ્યાખ્યાયિત કરો
  3. res_sh_mem નામના મેમરી વિભાગના સોંપેલ કદને app_config.h માં ફરીથી વ્યાખ્યાયિત કરીને 0x200000 પર અપડેટ કરો: # define RES_SHMEM_TOTAL_SIZE 0x200000 અને પ્રોજેક્ટ > પ્રોપર્ટીઝ > C/C++ બિલ્ડ > MCU સેટિંગ્સમાં અનુરૂપ સેટિંગ.
  4. મુખ્યમાં APP_LoadResource() ફંક્શનમાં ફ્લેશથી SDRAM પર લોડ થયેલા સંસાધનના કુલ કદમાં આઇકનનું કદ ઉમેરો file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);

નોટિસ: ફેસ રેકગ્નિશન ફીચરને પૂર્ણ કરવા માટે, LVGL GUI એપ સપોર્ટની જરૂર છે. આઉટપુટ UI HAL માં UI કૉલબેક ફંક્શન્સને UI સ્ક્રીનમાંથી ઇવેન્ટ્સને હેન્ડલ કરવા માટે LVGL GUI એપ્લિકેશન દ્વારા કૉલ કરવામાં આવે છે. બીજી બાજુ, આઉટપુટ UI HAL પરિણામ અને સ્થિતિ બતાવવા માટે UI ને અપડેટ કરવા માટે LVGL GUI એપ્લિકેશનમાંથી API ને કૉલ કરે છે. LVGL GUI એપ્લિકેશનનો વિકાસ પ્રમાણમાં સ્વતંત્ર છે અને વિભાગ 4.3 માં રજૂ કરવામાં આવ્યો છે.

4.1.5 ચહેરાની ઓળખ માટે HAL ઉપકરણો અને મેનેજરો શરૂ કરો
સક્ષમ વિઝન અલ્ગો 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(આઉટપુટ મેનેજર, ret);
  5. મેનેજરો શરૂ કરો:
    • FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
    • FWK_MANAGER_START(આઉટપુટ મેનેજર, OUTPUT_MANAGER_TASK_PRIORITY, ret);
  6. મેનેજરના કાર્યોની પ્રાથમિકતા વ્યાખ્યાયિત કરો:
    • # VISION_ALGO_MANAGER_TASK_PRIORITY 3 વ્યાખ્યાયિત કરો
    • # OUTPUT_MANAGER_TASK_PRIORITY 1 વ્યાખ્યાયિત કરો

ફ્રેમવર્ક પર ફેસ ડેટાબેઝ સપોર્ટ ઉમેરો
રજિસ્ટર્ડ ફેસ ફીચર ડેટાને ફ્લૅશ પર સ્ટોર કરેલા ફેસ ડેટાબેઝમાં થોડો દ્વારા એક્સેસ કરવામાં આવે છે file સિસ્ટમ ફેસ ડેટાબેઝ સપોર્ટ ઉમેરવાનાં પગલાં નીચે વર્ણવેલ છે.

ફ્લેશ સ્ટોરેજ માટે ડ્રાઇવરો ઉમેરો
ફ્લેશ ઈન્ટરફેસ 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.

બોર્ડ-લેવલ સપોર્ટ ઉમેરો

  1. board.h માં બોર્ડ પર ફ્લેશ ઉપકરણ માટે ઉપયોગમાં લેવાતા FlexSPI ની વ્યાખ્યાઓ ઉમેરો:
    • # BOARD_FLEXSPI FLEXSPI1 ને વ્યાખ્યાયિત કરો
    • # BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1 વ્યાખ્યાયિત કરો
    • # BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE વ્યાખ્યાયિત કરો
  2. ઓપરેટરો અને રૂપરેખાંકનોની નકલ કરો fileફ્લેશ ઉપકરણ flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h ના પાથ હેઠળ પાથ સ્માર્ટ HMI\flash_ops.ample SW.
    • પર જમણું-ક્લિક કર્યા પછી C/C++ બિલ્ડ > સેટિંગ્સમાં "બિલ્ડમાંથી સંસાધન બાકાત કરો" ને અનચેક કરો fileનું નામ અને પ્રોપર્ટીઝ ખોલીને તેમને પ્રોજેક્ટમાં બિલ્ટ કરવા સક્ષમ બનાવવા માટે.
  3. સમાવેશ હેડર બદલો filesln_flash_config.c અને flexspi_nor_flash_ops.h માં sln_flash_config.h થી sln_flash_config_w25q256jvs.h ને નામ આપો.
  4. માં FlexSPI1 ઘડિયાળ સ્ત્રોત સેટ કરો file clock_config.c કોફી મશીન એપ્લિકેશનનો ઉલ્લેખ કરે છે.

એડેપ્ટર અને મધ્યમ સ્તરનો સપોર્ટ ઉમેરો

  1. નકલ કરો files sln_flash.c, sln_flash.h, sln_encrypt.c, અને sln_encrypt.h માટે એડેપ્ટર ડ્રાઇવરો તરીકે file સિસ્ટમ અને એપ્લિકેશન સ્માર્ટ HMI\coffee_machine\cm7\source\ થી ભૂતપૂર્વ ફોલ્ડર સ્ત્રોત સુધીample નવું અપડેટ કરો files:
    • બિલ્ડિંગ માટે તેમના પર "બિલ્ડમાંથી સંસાધન બાકાત કરો" ને અનચેક કરો.
    • બધા સમાવેશ હેડર બદલો file નામ sln_flash_config.h થી sln_flash_config_w25q256jvs.h.
  2. ફોલ્ડરની નકલ કરો fileનાના માટે APIs ધરાવતી સિસ્ટમ fileસિસ્ટમ અને HAL ડ્રાઈવર સ્માર્ટ HMI \coffee_machine\cm7\source\ થી example SW. અને નવા ફોલ્ડર માટે અપડેટ કરો:
    • બિલ્ડિંગ માટે તેના પર "બિલ્ડમાંથી સંસાધન બાકાત કરો" ને અનચેક કરો.
    • પ્રોજેક્ટ સેટિંગ્સમાં તેના માટેનો સમાવેશ પાથ ઉમેરો: “${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. ફોલ્ડર લિટલફ્સ જેમાં મિડલ વેર – થોડું કોપી કરો fileસિસ્ટમ SDK_2_13_0_ MIMXRT1170-EVK\middleware\ થી example SW. અને નવા ફોલ્ડરને અપડેટ કરો:
    • બિલ્ડિંગ માટે તેના પર "બિલ્ડમાંથી સંસાધન બાકાત કરો" ને અનચેક કરો.
    • પ્રોજેક્ટ સેટિંગ્સમાં તેના માટેનો સમાવેશ પાથ ઉમેરો: “${workspace_loc:/${ProjName}/littlefs}”

HAL ડ્રાઇવરો ઉમેરો 

  • ત્યાં બે HAL ઉપકરણો છે - file સિસ્ટમ અને ફેસ ડેટાબેઝ HAL ડેટાબેઝ એક્સેસ ફીચર માટે સપોર્ટેડ છે અને તે પહેલાથી જ કોઈપણ ફેરફાર વગર ફ્રેમવર્કમાં અમલમાં છે. board_define.h માં નીચેની વ્યાખ્યાઓ ઉમેરીને તેમને સક્ષમ કરો:
    • #ENABLE_FLASH_DEV_Littlefs ને વ્યાખ્યાયિત કરો
    • #ENABLE_FACEDB વ્યાખ્યાયિત કરો

અને ભૂતપૂર્વ માટે ચહેરો ડેટાબેઝ નામ બદલોample: #define OASIS_FACE_DB_DIR “oasis_gui_face_rec”

એપ-લેવલ સપોર્ટ ઉમેરો

  1. મુખ્ય અપડેટ કરો file lvgl_gui_face_rec_cm7.cpp:
    • હેડર શામેલ કરો file ફ્લેશ સાથે સંબંધિત file કોડ લાઇન ઉમેરીને સિસ્ટમ HAL મેનેજર: #include “fwk_flash.h”
    • જાહેર કરો અને નોંધણી કરો file સિસ્ટમ HAL ઉપકરણ:
      • HAL_FLASH_DEV_DECLARE(લિટલફ્સ);
      • HAL_FLASH_DEV_REGISTER(Littlefs, ret);
        નોંધ: ધ file બધા ઉપકરણ સંચાલકો ફંક્શન APP_InitFramework() માં પ્રારંભ થાય તે પહેલાં સિસ્ટમ HAL ઉપકરણ નોંધાયેલ હોવું આવશ્યક છે.
    • MPU રૂપરેખાંકિત કરવા માટે APP_BoardInit() માં BOARD_ConfigMPU() ફંક્શનને કૉલ કરો.
  2. સેટ કરો file માં ફ્લેશ પર સિસ્ટમ સોંપણી file app_config.h માં વપરાયેલ મેક્રો વ્યાખ્યાઓને વ્યાખ્યાયિત કરીને file sln_flash_littlefs.h:
    • #FICA_IMG_ વ્યાખ્યાયિત કરોFILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
    • #FICA_ વ્યાખ્યાયિત કરોFILE_SYS_SIZE (0x280000)

રૂપરેખાંકનો
કેટલાક ફ્લેશ-સંબંધિત કોડ પૂરતા પ્રદર્શન માટે SRAM ITC વિસ્તારમાં ચલાવવામાં આવે છે. પાથ સ્માર્ટ HMI\coffee_machine\cm7\ થી example SW.

LVGL GUI એપ્લિકેશનનો અમલ કરો
ફ્રેમવર્ક પર આધારિત LVGL GUI એપ્લિકેશનનો વિકાસ આઉટપુટ UI HAL માંથી API ને કૉલ કરે છે અને UI HAL ને આઉટપુટ કરવા માટે API પ્રદાન કરે છે (આઉટપુટ UI HAL ના અમલીકરણ માટે વિભાગ 4.1.3 જુઓ).

જો કે, LVGL GUI એપ્લિકેશનનું વિગતવાર અમલીકરણ એપ્લિકેશનની જરૂરિયાતો અને ડિઝાઇન પર આધારિત છે. આ ભૂતપૂર્વ માં GUI એપ્લિકેશનample વિભાગ 4 ની શરૂઆતમાં વર્ણવ્યા પ્રમાણે ડિઝાઇન કરવામાં આવી છે.

નીચે અમલીકરણ પરિચય છે:

  1. કસ્ટમાઇઝ્ડ કોડ્સ GUI ગાઇડર દ્વારા આપવામાં આવેલ custom.c અને custom.h માં GUI ગાઇડર પ્રોજેક્ટ અને એમ્બેડેડ સિસ્ટમ પ્રોજેક્ટ વચ્ચેના ઇન્ટરફેસ તરીકે લાગુ કરવામાં આવે છે.
    •  નીચે આપેલા કાર્યોને પ્રાપ્ત કરવા માટે custom.c માં gui_xxx() નામના નવા ફંક્શન ઉમેરો:
      • UI ને અપડેટ કરવા માટે આઉટપુટ UI HAL અને GUI એપ્લિકેશન માટે.
      • GUI એપ્લિકેશન માટે આઉટપુટ UI HAL માંથી UI કૉલબેક ફંક્શન્સને કૉલ કરીને ઇવેન્ટ્સને ટ્રિગર કરવા માટે.
        માજી માટેample, નવું ફંક્શન gui_event_face_rec_action() જ્યારે સંબંધિત બટન પર ક્લિક કરવામાં આવે ત્યારે ચહેરાની નોંધણી, ચહેરાની ઓળખ અને GUI એપ્લિકેશનમાંથી ટ્રિગર થયેલા વપરાશકર્તાને કાઢી નાખવાની ઘટનાઓમાંથી એકને હેન્ડલ કરવા માટે UI કૉલબેક ફંક્શનને કૉલ કરે છે.
        નોંધ: ફંક્શન gui_set_virtual_face() આઉટપુટ UI HAL માં પ્રી માટે કહેવાય છેview મોડને custom.c માં લાગુ કરવાની જરૂર છે:
    •  સ્માર્ટ HMI\coffee_machine\cm4\custom \custom.c થી ક્લોન ફંક્શન gui_set_virtual_face()
    •  વિજેટનું નામ home_img_cameraPre બદલોview સ્ક્રીન_img_camera_pre માટેview કાર્યમાં.
    •  GUI ગાઇડર પ્રોજેક્ટ સાથે સુસંગત રહેવા માટે custom.c માં મેક્રો ડેફિનેશન #ifndef RT_PLATFORM ના નિયંત્રણ હેઠળ આઉટપુટ UI HAL માંના તમામ પ્રોટોટાઇપ સાથે સમાન પ્રોટોટાઇપ સાથે UI કૉલબેક ફંક્શન્સ લાગુ કરો કારણ કે આઉટપુટ UI HAL માં આ ફંક્શન્સ પર આધારિત છે. એમ્બેડેડ પ્લેટફોર્મ. custom.c માં, તેઓ GUI ગાઇડર પરના સિમ્યુલેટર પર આધાર રાખે છે અને એમ્બેડેડ પ્લેટફોર્મ માટે સ્વતંત્ર છે. માજી માટેample, GUI ગાઇડર સિમ્યુલેટર ચાલી રહેલ માટે નીચે પ્રમાણે ફેસ રજીસ્ટ્રેશન કોલબેક લાગુ કરવામાં આવ્યો છે: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = false; પરત }
      નોંધ: વિભાગ 6 ના પગલા 4.1.3 માં રજૂ કરાયેલ ફંક્શનના સમાન પ્રોટોટાઇપનો સંદર્ભ લો
      આકૃતિ 7 માં બતાવ્યા પ્રમાણે MCUXpresso ના પ્રોજેક્ટ સેટિંગ્સ પર મેક્રો વ્યાખ્યા RT_PLATFORM સેટ કરેલ છે:NXP-AN14263-ઇમ્પ્લીમેન્ટ-LVGL-GUI ફેસ-રિકગ્નિશન-ઓન-ફ્રેમવર-ફિગ- (14)
    • custom.h માં UI_xxx_Callback() અને gui_xxx() નામના તમામ કાર્યોને જાહેર કરો અને UI આઉટપુટ HAL સાથે GUI API ને શેર કરવા માટે smart_tlhmi_event_descriptor.h માં સમાવિષ્ટ custom.h ઉમેરો.
  2. GUI ગાઇડર પર GUI નો વિકાસ કરો:
    • ફોલ્ડર કેમેરા પૂર્વ ક્લોન કરોview બેઝ સોફ્ટવેર પેકેજમાં gui_guider ફોલ્ડરમાં GUI ગાઇડર પ્રોજેક્ટ સોફ્ટવેર ધરાવે છે lvgl_gui_camera_preview_cm7. સંબંધિત નામ કૅમેરા_પ્રી બદલોview નવા ભૂતપૂર્વ માટે face_recample
    • ઉપરોક્ત અપડેટ કરેલ custom.c અને કસ્ટમની નકલ કરો. h નવા GUI ગાઇડર પ્રોજેક્ટ સોફ્ટવેર માટે.
    •  GUI ગાઇડર પર નવો face_rec પ્રોજેક્ટ ખોલો. નીચે પ્રમાણે અપડેટ કરો:
      • વપરાશકર્તા કાઢી નાખો લેબલ થયેલ નવું બટન ઉમેરો. તેમાં છુપાયેલ ધ્વજ ઉમેરો જેથી કરીને જ્યારે GUI એપ સ્ટાર્ટ થાય ત્યારે બટન છુપાવવામાં આવશે.
      • ચહેરાની નોંધણી, ચહેરાની ઓળખ અને વપરાશકર્તાને કાઢી નાખવાની ઘટનાઓને ટ્રિગર કરવા માટે નોંધણી, ઓળખ અને વપરાશકર્તા કાઢી નાખો બધા બટનોની ઇવેન્ટ સેટિંગમાં “રિલીઝ્ડ” ટ્રિગર પર અલગ-અલગ ઇવેન્ટ ID પેરામીટર સાથે API gui_event_face_rec_action() ને કૉલ કરવાની કોડ લાઇન ઉમેરો. આકૃતિ 8 બટનની નોંધણીની ઘટના માટે કોડ બતાવે છે:NXP-AN14263-ઇમ્પ્લીમેન્ટ-LVGL-GUI ફેસ-રિકગ્નિશન-ઓન-ફ્રેમવર-ફિગ- (15)
  3. MCUXpresso પ્રોજેક્ટમાં GUI ગાઇડરમાંથી જનરેટ કરેલા કોડને અપડેટ કરો.
    • MCUXpresso પ્રોજેક્ટ SW ના જનરેટ કરેલ ફોલ્ડરમાં ફોલ્ડર ઈમેજીસ સિવાયના સમાવિષ્ટોને GUI ગાઈડર પ્રોજેક્ટ SW ના જનરેટ કરેલ ફોલ્ડરમાં અનુરૂપ છબીઓ સાથે બદલો.

નોંધ: ઉપર રજૂ કરેલા ફેરફારો વિશે વધુ વિગતો માટે, ભૂતપૂર્વ તપાસોampલે સોફ્ટવેર ખાતે https://mcuxpresso.nxp.com/appcodehub.

ભૂતપૂર્વ સાથે ચકાસણીampલે પ્રોજેક્ટ

ભૂતપૂર્વ મેળવવા માટેampઆ એપ્લિકેશન નોંધ માટે સંસાધનો અને સાધનો ધરાવતું le સોફ્ટવેર પેકેજ, મુલાકાત લો: https://mcuxpresso.nxp.com/appcodehub. ભૂતપૂર્વ ખોલોampMCUXpresso IDE પર le પ્રોજેક્ટ. .axf બનાવો અને પ્રોગ્રામ કરો file 0x30000000 સરનામાં પર અને સંસાધન બિનને પ્રોગ્રામ કરો file કૅમેરા_પ્રીview0x30800000 સરનામાં પર _resource.bin.

LVGL GUI ફેસ રેકગ્નિશન એક્સample નીચે પ્રમાણે સામાન્ય રીતે કામ કરે છે:

  • પ્રિview: પાવર અપ સાથે, કૅમેરા દ્વારા કૅપ્ચર કરાયેલ વિડિયો સ્ટ્રીમ કૅમેરા પૂર્વના ચોક્કસ વિસ્તાર પર બતાવે છેview GUI સ્ક્રીન પર. સ્ટેટસ લેબલ “પ્રીview…” વિગતો માટે, આકૃતિ 3 જુઓ. વપરાશકર્તા કાઢી નાખો બટન છુપાયેલ છે. બટનો અને ઈમેજોની બહારના વિસ્તારને ક્લિક કરતી વખતે, તે પૂર્વ બતાવે છેview ચહેરાની નોંધણી અથવા ઓળખની ક્રિયા સમાપ્ત થયા પછી ઉપર મુજબ જણાવો.
  • નોંધણી:
    • ટાર્ટઅપ: જ્યારે નોંધણી બટન ક્લિક કરવામાં આવે છે, ત્યારે ચહેરાની નોંધણી શરૂ થાય છે. સ્ટેટસ લેબલ “નોંધણી…” પ્રદર્શિત કરવા બદલાય છે, ફેસ ગાઈડ લંબચોરસ વાદળી બતાવે છે અને પ્રોગ્રેસ બાર પ્રોગ્રેસ બતાવવાનું શરૂ કરે છે. ખાતરી કરો કે નોંધણી માટે વપરાશકર્તાનો ચહેરો વાદળી ચહેરા માર્ગદર્શિકા લંબચોરસમાં દેખાઈ રહ્યો છે.
    • સફળતા: સ્ટેટસ લેબલ “નોંધણી…ઓકે” અને રજિસ્ટર્ડ યુઝર આઈડી નંબર બતાવે છે, જો ફેસ રજીસ્ટ્રેશન સફળ થાય તો બાર પર પ્રોગ્રેસ સંપૂર્ણ દેખાય તે પહેલાં ફેસ ગાઈડ લંબચોરસ લાલ થઈ જાય છે.
    • નિષ્ફળતા -> સમય સમાપ્ત: સ્થિતિ લેબલ "નોંધણી...સમય સમાપ્ત" બતાવે છે જો ચહેરાની નોંધણી હજુ પણ નિષ્ફળ રહી છે જ્યારે પ્રગતિ બાર પર સંપૂર્ણ દેખાય છે.
    • નિષ્ફળતા -> ડુપ્લિકેશન: સ્ટેટસ લેબલ "નોંધણી...નિષ્ફળ" બતાવે છે, જો બાર પર પ્રગતિ પૂર્ણ દેખાય તે પહેલાં નોંધાયેલ ચહેરો ઓળખાય તો ચહેરો માર્ગદર્શિકા લંબચોરસ લીલો થઈ જાય છે.
  • ઇકોગ્નિશન:
    • સ્ટાર્ટઅપ: જ્યારે ઓળખ બટન ક્લિક કરવામાં આવે છે, ત્યારે ચહેરાની ઓળખ શરૂ થાય છે. સ્ટેટસ લેબલ “ઓળખાણ…” પ્રદર્શિત કરવા બદલાય છે, ફેસ ગાઈડ લંબચોરસ વાદળી બતાવે છે અને પ્રોગ્રેસ બાર પ્રોગ્રેસ બતાવવાનું શરૂ કરે છે. ખાતરી કરો કે નોંધણી માટે વપરાશકર્તાનો ચહેરો વાદળી ચહેરા માર્ગદર્શિકા લંબચોરસમાં બતાવવામાં આવ્યો છે.
    • સફળતા: સ્ટેટસ લેબલ “ઓળખ…ઓકે” અને માન્ય યુઝર આઈડી નંબર બતાવે છે, જો બાર પર પ્રગતિ પૂર્ણ દેખાય તે પહેલા ચહેરાની ઓળખ સફળ થાય તો ફેસ ગાઈડ લંબચોરસ લીલો થઈ જાય છે. બિંદુ પર, વપરાશકર્તા કાઢી નાખો બટન દેખાય છે. તેનો અર્થ એ છે કે જ્યારે વપરાશકર્તા ઓળખાય છે ત્યારે જ તેને કાઢી નાખવાની મંજૂરી છે.
    • રોગ: સ્થિતિ લેબલ "ઓળખાણ...સમય સમાપ્ત" બતાવે છે જો ચહેરાની ઓળખ હજુ પણ નિષ્ફળ રહી છે જ્યારે પ્રગતિ બાર પર સંપૂર્ણ દેખાય છે.
  • વપરાશકર્તા કાઢી નાખો: જ્યારે "વપરાશકર્તાને કાઢી નાખો" બટનને ક્લિક કરવામાં આવે છે, ચહેરાની ઓળખ સફળ થયા પછી, સ્ટેટસ લેબલ "વપરાશકર્તાને કાઢી નાખો...ઓકે" દર્શાવવા માટે બદલાય છે અને ચહેરો માર્ગદર્શિકા લંબચોરસ વાદળી બની જાય છે અને બાર પર સંપૂર્ણ પ્રગતિ દર્શાવે છે. વપરાશકર્તા કાઢી નાખો બટન ફરીથી છુપાયેલ છે. ઓળખાયેલ ચહેરો/વપરાશકર્તા ડેટાબેઝમાંથી કાઢી નાખવામાં આવે છે. તેનો અર્થ એ કે આ ચહેરો/વપરાશકર્તા જ્યાં સુધી ફરીથી નોંધણી ન થાય ત્યાં સુધી ઓળખી શકાશે નહીં.

દસ્તાવેજમાં સ્ત્રોત કોડ વિશે નોંધ
Exampઆ દસ્તાવેજમાં દર્શાવેલ le કોડમાં નીચેના કૉપિરાઇટ અને BSD-3-ક્લોઝ લાઇસન્સ છે:

કૉપિરાઇટ 2024 NXP પુનઃવિતરણ અને સ્ત્રોત અને દ્વિસંગી સ્વરૂપોમાં, ફેરફાર સાથે અથવા તેના વગર ઉપયોગની પરવાનગી છે, જો નીચેની શરતો પૂરી થઈ હોય:

  1. સ્રોત કોડના પુનઃવિતરણમાં ઉપરોક્ત કૉપિરાઇટ સૂચના, શરતોની આ સૂચિ અને નીચેનું અસ્વીકરણ જાળવી રાખવું આવશ્યક છે.
  2. દ્વિસંગી સ્વરૂપમાં પુનઃવિતરણ માટે ઉપરોક્ત કૉપિરાઇટ સૂચનાનું પુનઃઉત્પાદન કરવું આવશ્યક છે, શરતોની આ સૂચિ અને દસ્તાવેજીકરણ અને/અથવા અન્ય સામગ્રીઓમાં નીચે આપેલ અસ્વીકરણ વિતરણ સાથે પ્રદાન કરવું આવશ્યક છે.
  3. કોપીરાઈટ ધારકના નામ કે તેના યોગદાનકર્તાઓના નામનો ઉપયોગ ચોક્કસ પૂર્વ લેખિત પરવાનગી વિના આ સૉફ્ટવેરમાંથી મેળવેલા ઉત્પાદનોને સમર્થન અથવા પ્રોત્સાહન આપવા માટે થઈ શકશે નહીં.

આ સૉફ્ટવેર કૉપિરાઇટ ધારકો અને યોગદાનકર્તાઓ દ્વારા “જેમ છે તેમ” અને કોઈપણ સ્પષ્ટ અથવા ગર્ભિત વોરંટી, સહિત, પરંતુ આના સુધી મર્યાદિત નથી, સૂચિત વોરંટી અને જવાબદારીની જવાબદારી હેતુ અસ્વીકૃત છે. કોઈ પણ સંજોગોમાં કૉપિરાઇટ ધારક અથવા યોગદાનકર્તાઓ કોઈપણ પ્રત્યક્ષ, પરોક્ષ, આકસ્મિક, વિશેષ, અનુકરણીય અથવા પરિણામી નુકસાન માટે જવાબદાર રહેશે નહીં (સહિત, પરંતુ મર્યાદિત નહીં અથવા સેવાઓનો ઉપયોગ, ડેટા અથવા નફો અથવા વ્યવસાયમાં વિક્ષેપ) જો કે, કોઈપણ જવાબદારીના સિદ્ધાંત પર, પછી ભલે તે કરારમાં હોય, કડક જવાબદારી હોય, અથવા બિનસલાહભર્યા હોય; આ સૉફ્ટવેરના ઉપયોગમાંથી કોઈપણ રીતે, જો આવા નુકસાનની સંભાવનાની સલાહ આપવામાં આવે તો પણ.

પુનરાવર્તન ઇતિહાસ

NXP-AN14263-ઇમ્પ્લીમેન્ટ-LVGL-GUI ફેસ-રિકગ્નિશન-ઓન-ફ્રેમવર-ફિગ- (16)

કાનૂની માહિતી

વ્યાખ્યાઓ
ડ્રાફ્ટ — દસ્તાવેજ પરની ડ્રાફ્ટ સ્થિતિ સૂચવે છે કે સામગ્રી હજી પણ આંતરિક પુનઃપ્રાપ્તિ હેઠળ છેview અને ઔપચારિક મંજૂરીને આધીન છે, જે ફેરફારો અથવા વધારામાં પરિણમી શકે છે. NXP સેમિકન્ડક્ટર્સ દસ્તાવેજના ડ્રાફ્ટ સંસ્કરણમાં સમાવિષ્ટ માહિતીની ચોકસાઈ અથવા સંપૂર્ણતા વિશે કોઈ રજૂઆત અથવા વોરંટી આપતા નથી અને આવી માહિતીના ઉપયોગના પરિણામો માટે તેમની કોઈ જવાબદારી રહેશે નહીં.

અસ્વીકરણ

  • મર્યાદિત વોરંટી અને જવાબદારી — આ દસ્તાવેજમાંની માહિતી સચોટ અને વિશ્વસનીય હોવાનું માનવામાં આવે છે. જો કે, NXP સેમિકન્ડક્ટર આવી માહિતીની સચોટતા અથવા સંપૂર્ણતા તરીકે વ્યક્ત અથવા ગર્ભિત કોઈપણ રજૂઆત અથવા વોરંટી આપતા નથી અને આવી માહિતીના ઉપયોગના પરિણામો માટે તેમની કોઈ જવાબદારી રહેશે નહીં. જો NXP સેમિકન્ડક્ટર્સની બહારના કોઈ માહિતી સ્ત્રોત દ્વારા પ્રદાન કરવામાં આવે તો NXP સેમિકન્ડક્ટર્સ આ દસ્તાવેજમાંની સામગ્રી માટે કોઈ જવાબદારી લેતા નથી.
    કોઈપણ ઘટનામાં NXP સેમિકન્ડક્ટર કોઈપણ પરોક્ષ, આકસ્મિક, શિક્ષાત્મક, વિશેષ અથવા પરિણામી નુકસાન માટે જવાબદાર રહેશે નહીં (સહિત - મર્યાદા વિના - ગુમાવેલ નફો, ખોવાયેલી બચત, વ્યવસાયમાં વિક્ષેપ, કોઈપણ ઉત્પાદનોને દૂર કરવા અથવા બદલવા સંબંધિત ખર્ચ અથવા પુનઃકાર્ય શુલ્ક) અથવા આવા નુકસાન ટોર્ટ (બેદરકારી સહિત), વોરંટી, કરારનો ભંગ અથવા અન્ય કોઈપણ કાનૂની સિદ્ધાંત પર આધારિત નથી.
    ગ્રાહકને કોઈપણ કારણોસર કોઈપણ નુકસાન થઈ શકે છે તે છતાં, NXP સેમિકન્ડક્ટર્સની અહીં વર્ણવેલ ઉત્પાદનો માટે ગ્રાહક પ્રત્યેની એકંદર અને સંચિત જવાબદારી NXP સેમિકન્ડક્ટર્સના વ્યવસાયિક વેચાણના નિયમો અને શરતો અનુસાર મર્યાદિત રહેશે.
  • ફેરફારો કરવાનો અધિકાર — NXP સેમિકન્ડક્ટર્સ આ દસ્તાવેજમાં પ્રકાશિત માહિતીમાં ફેરફાર કરવાનો અધિકાર અનામત રાખે છે, જેમાં મર્યાદા સ્પષ્ટીકરણો અને ઉત્પાદન વર્ણનો વિના, કોઈપણ સમયે અને સૂચના વિના. આ દસ્તાવેજ અહીંના પ્રકાશન પહેલાં પૂરી પાડવામાં આવેલી તમામ માહિતીને સ્થાનાંતરિત કરે છે અને બદલે છે.
  • ઉપયોગ માટે યોગ્યતા — NXP સેમિકન્ડક્ટર પ્રોડક્ટ્સ લાઇફ સપોર્ટ, લાઇફ-ક્રિટિકલ અથવા સેફ્ટી-ક્રિટિકલ સિસ્ટમ્સ અથવા સાધનોમાં ઉપયોગ માટે યોગ્ય હોય તેવી ડિઝાઇન, અધિકૃત અથવા વૉરંટેડ નથી અથવા એવી ઍપ્લિકેશનમાં કે જ્યાં NXP સેમિકન્ડક્ટર પ્રોડક્ટની નિષ્ફળતા અથવા ખામીને પરિણામે વ્યાજબી રીતે અપેક્ષિત છે. વ્યક્તિગત ઈજા, મૃત્યુ અથવા ગંભીર મિલકત અથવા પર્યાવરણીય નુકસાન. NXP સેમિકન્ડક્ટર્સ અને તેના સપ્લાયર્સ આવા સાધનો અથવા એપ્લિકેશન્સમાં NXP સેમિકન્ડક્ટર ઉત્પાદનોના સમાવેશ અને/અથવા ઉપયોગ માટે કોઈ જવાબદારી સ્વીકારતા નથી અને તેથી આવા સમાવેશ અને/અથવા ઉપયોગ ગ્રાહકના પોતાના જોખમે છે.
  • અરજીઓ - આમાંના કોઈપણ ઉત્પાદનો માટે અહીં વર્ણવેલ એપ્લિકેશનો માત્ર દૃષ્ટાંતરૂપ હેતુઓ માટે છે. NXP સેમિકન્ડક્ટર્સ એવી કોઈ રજૂઆત અથવા વોરંટી આપતા નથી કે આવી એપ્લિકેશનો વધુ પરીક્ષણ અથવા ફેરફાર કર્યા વિના ઉલ્લેખિત ઉપયોગ માટે યોગ્ય રહેશે.
    NXP સેમિકન્ડક્ટર ઉત્પાદનોનો ઉપયોગ કરીને ગ્રાહકો તેમની એપ્લિકેશનો અને ઉત્પાદનોની ડિઝાઇન અને સંચાલન માટે જવાબદાર છે, અને NXP સેમિકન્ડક્ટર એપ્લિકેશન્સ અથવા ગ્રાહક ઉત્પાદન ડિઝાઇન સાથેની કોઈપણ સહાય માટે કોઈ જવાબદારી સ્વીકારતા નથી. NXP સેમિકન્ડક્ટર પ્રોડક્ટ ગ્રાહકની એપ્લીકેશન અને આયોજિત ઉત્પાદનો માટે તેમજ ગ્રાહકના તૃતીય પક્ષ ગ્રાહક(ઓ)ના આયોજિત એપ્લિકેશન અને ઉપયોગ માટે યોગ્ય અને યોગ્ય છે કે કેમ તે નિર્ધારિત કરવાની એકમાત્ર જવાબદારી ગ્રાહકની છે. ગ્રાહકોએ તેમની એપ્લિકેશનો અને ઉત્પાદનો સાથે સંકળાયેલા જોખમોને ઘટાડવા માટે યોગ્ય ડિઝાઇન અને ઓપરેટિંગ સલામતી પ્રદાન કરવી જોઈએ. NXP સેમિકન્ડક્ટર કોઈપણ ડિફોલ્ટ, નુકસાન, ખર્ચ અથવા સમસ્યાને લગતી કોઈપણ જવાબદારી સ્વીકારતા નથી જે ગ્રાહકની એપ્લિકેશન અથવા ઉત્પાદનોમાં કોઈપણ નબળાઈ અથવા ડિફોલ્ટ પર આધારિત હોય, અથવા ગ્રાહકના તૃતીય પક્ષ ગ્રાહક(ઓ) દ્વારા એપ્લિકેશન અથવા ઉપયોગ પર આધારિત હોય. એપ્લિકેશન્સ અને પ્રોડક્ટ્સ અથવા એપ્લિકેશનના ડિફોલ્ટને ટાળવા માટે ગ્રાહકના તૃતીય પક્ષ ગ્રાહક(ઓ) દ્વારા ઉપયોગ અથવા ઉપયોગને ટાળવા માટે ગ્રાહકની એપ્લિકેશનો અને ઉત્પાદનો માટે NXP સેમિકન્ડક્ટર ઉત્પાદનોનો ઉપયોગ કરીને તમામ જરૂરી પરીક્ષણો કરવા માટે ગ્રાહક જવાબદાર છે. NXP આ સંદર્ભમાં કોઈ જવાબદારી સ્વીકારતું નથી.
  • વ્યાપારી વેચાણના નિયમો અને શરતો — https://www.nxp.com/pro પર પ્રકાશિત થયા મુજબ, NXP સેમિકન્ડક્ટર્સના ઉત્પાદનો વ્યાવસાયિક વેચાણના સામાન્ય નિયમો અને શરતોને આધીન વેચવામાં આવે છે.file/શરતો, જ્યાં સુધી માન્ય લેખિત વ્યક્તિગત કરારમાં અન્યથા સંમત ન હોય. જો કોઈ વ્યક્તિગત કરાર પૂર્ણ થાય તો માત્ર સંબંધિત કરારના નિયમો અને શરતો લાગુ થશે. NXP સેમિકન્ડક્ટર આથી ગ્રાહક દ્વારા NXP સેમિકન્ડક્ટર ઉત્પાદનોની ખરીદીના સંદર્ભમાં ગ્રાહકના સામાન્ય નિયમો અને શરતો લાગુ કરવા પર સ્પષ્ટપણે વાંધો ઉઠાવે છે.
  • નિકાસ નિયંત્રણ — આ દસ્તાવેજ તેમજ અહીં વર્ણવેલ આઇટમ(ઓ) નિકાસ નિયંત્રણ નિયમોને આધીન હોઈ શકે છે. નિકાસ માટે સક્ષમ સત્તાવાળાઓ પાસેથી પૂર્વ અધિકૃતતાની જરૂર પડી શકે છે.
  • બિન-ઓટોમોટિવ લાયક ઉત્પાદનોમાં ઉપયોગ માટે યોગ્યતા — જ્યાં સુધી આ દસ્તાવેજ સ્પષ્ટપણે જણાવે છે કે આ વિશિષ્ટ NXP સેમિકન્ડક્ટર ઉત્પાદન ઓટોમોટિવ લાયકાત ધરાવે છે, ઉત્પાદન ઓટોમોટિવ ઉપયોગ માટે યોગ્ય નથી. તે ઓટોમોટિવ પરીક્ષણ અથવા એપ્લિકેશન આવશ્યકતાઓ અનુસાર ન તો લાયક છે કે ન તો તેનું પરીક્ષણ કરવામાં આવ્યું છે. NXP સેમિકન્ડક્ટર ઓટોમોટિવ સાધનો અથવા એપ્લિકેશન્સમાં બિન-ઓટોમોટિવ લાયકાત ધરાવતા ઉત્પાદનોના સમાવેશ અને/અથવા ઉપયોગ માટે કોઈ જવાબદારી સ્વીકારતા નથી.
    ગ્રાહક ઓટોમોટિવ વિશિષ્ટતાઓ અને ધોરણો માટે ઓટોમોટિવ એપ્લિકેશન્સમાં ડિઝાઇન-ઇન અને ઉપયોગ માટે ઉત્પાદનનો ઉપયોગ કરે છે તે ઘટનામાં, ગ્રાહક (a) આવા ઓટોમોટિવ એપ્લિકેશન્સ, ઉપયોગ અને વિશિષ્ટતાઓ માટે ઉત્પાદનની NXP સેમિકન્ડક્ટરની વોરંટી વિના ઉત્પાદનનો ઉપયોગ કરશે, અને ( b) જ્યારે પણ ગ્રાહક એનએક્સપી સેમિકન્ડક્ટરના સ્પષ્ટીકરણોથી આગળ ઓટોમોટિવ એપ્લિકેશન્સ માટે ઉત્પાદનનો ઉપયોગ કરે છે, ત્યારે તેનો ઉપયોગ ફક્ત ગ્રાહકના પોતાના જોખમે થશે, અને (c) ગ્રાહક ગ્રાહક ડિઝાઇન અને ઉપયોગના પરિણામે કોઈપણ જવાબદારી, નુકસાન અથવા નિષ્ફળ ઉત્પાદન દાવા માટે ગ્રાહક NXP સેમિકન્ડક્ટર્સને સંપૂર્ણ રીતે વળતર આપે છે. એનએક્સપી સેમિકન્ડક્ટર્સની સ્ટાન્ડર્ડ વોરંટી અને એનએક્સપી સેમિકન્ડક્ટર્સની પ્રોડક્ટ વિશિષ્ટતાઓથી આગળ ઓટોમોટિવ એપ્લિકેશન્સ માટેનું ઉત્પાદન.
  • અનુવાદો - દસ્તાવેજનું બિન-અંગ્રેજી (અનુવાદિત) સંસ્કરણ, તે દસ્તાવેજમાંની કાનૂની માહિતી સહિત, ફક્ત સંદર્ભ માટે છે. અનુવાદિત અને અંગ્રેજી સંસ્કરણો વચ્ચે કોઈપણ વિસંગતતાના કિસ્સામાં અંગ્રેજી સંસ્કરણ પ્રબળ રહેશે.
  • સુરક્ષા — ગ્રાહક સમજે છે કે તમામ NXP ઉત્પાદનો અજાણી નબળાઈઓને આધીન હોઈ શકે છે અથવા જાણીતી મર્યાદાઓ સાથે સ્થાપિત સુરક્ષા ધોરણો અથવા વિશિષ્ટતાઓને સમર્થન આપી શકે છે. ગ્રાહકની એપ્લિકેશનો અને ઉત્પાદનો પર આ નબળાઈઓની અસરને ઘટાડવા માટે ગ્રાહક તેમના જીવનકાળ દરમિયાન તેની એપ્લિકેશનો અને ઉત્પાદનોની ડિઝાઇન અને સંચાલન માટે જવાબદાર છે. ગ્રાહકની જવાબદારી ગ્રાહકની એપ્લિકેશનમાં ઉપયોગ માટે NXP ઉત્પાદનો દ્વારા સમર્થિત અન્ય ખુલ્લી અને/અથવા માલિકીની તકનીકો સુધી પણ વિસ્તરે છે. NXP કોઈપણ નબળાઈ માટે કોઈ જવાબદારી સ્વીકારતું નથી. ગ્રાહકે નિયમિતપણે NXP તરફથી સુરક્ષા અપડેટ્સ તપાસવા જોઈએ અને યોગ્ય રીતે અનુસરવું જોઈએ. ગ્રાહક સુરક્ષા વિશેષતાઓ સાથે ઉત્પાદનો પસંદ કરશે જે ઇચ્છિત એપ્લિકેશનના નિયમો, વિનિયમો અને ધોરણોને શ્રેષ્ઠ રીતે પૂર્ણ કરે છે અને તેના ઉત્પાદનો વિશે અંતિમ ડિઝાઇન નિર્ણયો લેશે અને તેના ઉત્પાદનો સંબંધિત તમામ કાનૂની, નિયમનકારી અને સુરક્ષા સંબંધિત આવશ્યકતાઓનું પાલન કરવા માટે સંપૂર્ણપણે જવાબદાર છે. NXP દ્વારા પૂરી પાડવામાં આવેલ કોઈપણ માહિતી અથવા સમર્થનની.

NXP પાસે પ્રોડક્ટ સિક્યોરિટી ઇન્સિડેન્ટ રિસ્પોન્સ ટીમ (PSIRT) છે (PSIRT@nxp.com પર પહોંચી શકાય છે) જે NXP પ્રોડક્ટ્સની સુરક્ષા નબળાઈઓની તપાસ, રિપોર્ટિંગ અને સોલ્યુશન રિલીઝનું સંચાલન કરે છે.
NXP BV — NXP BV એ ​​ઓપરેટિંગ કંપની નથી અને તે ઉત્પાદનોનું વિતરણ કે વેચાણ કરતી નથી.

ટ્રેડમાર્ક્સ
નોટિસ: તમામ સંદર્ભિત બ્રાન્ડ્સ, ઉત્પાદન નામો, સેવાના નામો અને ટ્રેડમાર્ક્સ તેમના સંબંધિત માલિકોની મિલકત છે.

એનએક્સપી — વર્ડમાર્ક અને લોગો NXP BV ના ટ્રેડમાર્ક છે

AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed સક્ષમ, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, વર્સેટાઇલ — યુએસ અને/અથવા આર્મ લિમિટેડ (અથવા તેની પેટાકંપનીઓ અથવા આનુષંગિકો) ના ટ્રેડમાર્ક અને/અથવા નોંધાયેલ ટ્રેડમાર્ક છે અન્યત્ર. સંબંધિત ટેક્નોલોજી કોઈપણ અથવા તમામ પેટન્ટ, કોપીરાઈટ, ડિઝાઇન અને વેપાર રહસ્યો દ્વારા સુરક્ષિત હોઈ શકે છે. બધા હકો અમારી પાસે રાખેલા છે.

  • i.MX - NXP BV નો ટ્રેડમાર્ક છે
  • જે-લિંક — SEGGER Microcontroller GmbH નો ટ્રેડમાર્ક છે.

Microsoft, Azure અને ThreadX — Microsoft જૂથના કંપનીઓના ટ્રેડમાર્ક છે.

મહેરબાની કરીને ધ્યાન રાખો કે આ દસ્તાવેજ અને અહીં વર્ણવેલ ઉત્પાદન(ઓ) સંબંધિત મહત્વપૂર્ણ સૂચનાઓ, વિભાગ 'કાનૂની માહિતી' માં સમાવવામાં આવી છે.

© 2024 NXP BV
વધુ માહિતી માટે, કૃપા કરીને મુલાકાત લો: https://www.nxp.com

  • પ્રકાશનની તારીખ: 19 એપ્રિલ 2024
  • દસ્તાવેજ ઓળખકર્તા: AN14263

FAQ

પ્ર: આ ઉત્પાદનનો મુખ્ય હેતુ શું છે?
A: મુખ્ય હેતુ એ છે કે સરળ LVGL GUI એક્સ સાથે AI&ML વિઝન એલ્ગોરિધમ મોડલનો ઉપયોગ કરીને ચહેરાની ઓળખ કાર્યને સક્ષમ કરવુંampSLN-TLHMI-IOT બોર્ડ પર le.

પ્ર: વિકાસકર્તાઓને આ એપ્લિકેશન નોટથી કેવી રીતે ફાયદો થઈ શકે?
A: ડેવલપર્સ આપેલ એક્સનો ઉપયોગ કરીને સ્ટેપ બાય સ્ટેપ ફ્રેમવર્ક પર ચહેરાની ઓળખ કેવી રીતે અમલમાં મૂકવી તે શીખી શકે છેample અને તેમાં સામેલ ઉપકરણ સંચાલકો, HAL ઉપકરણો અને ઇવેન્ટ મિકેનિઝમ્સને સમજો.

દસ્તાવેજો / સંસાધનો

NXP AN14263 ફ્રેમવર પર LVGL GUI ફેસ રેકગ્નિશન લાગુ કરો [પીડીએફ] વપરાશકર્તા માર્ગદર્શિકા
AN14263 Framwor પર LVGL GUI ફેસ રેકગ્નિશન, AN14263, Framwor પર LVGL GUI ફેસ રેકગ્નિશન, Framwor પર LVGL GUI ફેસ રેકગ્નિશન, Framwor પર ફેસ રેકગ્નિશન, Framwor પર ઓળખ,

સંદર્ભો

એક ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. જરૂરી ક્ષેત્રો ચિહ્નિત થયેલ છે *