NXP AN14263 ఫ్రేమ్వర్పై LVGL GUI ఫేస్ రికగ్నిషన్ని అమలు చేయండి
ఉత్పత్తి సమాచారం
స్పెసిఫికేషన్లు
- ఉత్పత్తి పేరు: ఫ్రేమ్వర్క్పై LVGL GUI ఫేస్ రికగ్నిషన్
- డాక్యుమెంట్ రివిజన్: 1 – 19 ఏప్రిల్ 2024
- కీలకపదాలు: ముఖ గుర్తింపు, LVGL GUI, ఫ్రేమ్వర్క్
ఉత్పత్తి వినియోగ సూచనలు
- పైగాview
ఈ ఉత్పత్తి సాధారణ LVGL GUI ఎక్స్తో ముఖ గుర్తింపు ఫంక్షన్ను అమలు చేయడానికి ఫ్రేమ్వర్క్లో ముఖ గుర్తింపు కోసం AI&ML విజన్ అల్గారిథమ్ మోడల్ను ప్రారంభిస్తుందిampSLN-TLHMI-IOT బోర్డులో le. - ముసాయిదా ముగిసిందిview
పరిష్కార సాఫ్ట్వేర్ ఫ్రేమ్వర్క్ ఆర్కిటెక్చర్ చుట్టూ రూపొందించబడింది, ఇందులో పరికరాల నిర్వహణకు బాధ్యత వహించే పరికర నిర్వాహకులు, అంతర్లీన వివరాలను సంగ్రహించడానికి HAL పరికరాలు మరియు విభిన్న పరికరాల మధ్య కమ్యూనికేషన్ కోసం ఈవెంట్లు ఉంటాయి. - ఫీచర్లు
కెమెరా ప్రీ ద్వారా ఫేస్ రికగ్నిషన్ ఫంక్షన్ని అమలు చేయడానికి ఉత్పత్తి అనుమతిస్తుందిview ముఖ నమోదు, గుర్తింపు మరియు తొలగింపును ట్రిగ్గర్ చేయడానికి బటన్లతో GUI స్క్రీన్పై. నమోదిత ముఖ డేటా ఒక ద్వారా ఫ్లాష్లో నిల్వ చేయబడుతుంది file వ్యవస్థ. - అప్లికేషన్ నోట్ కంటెంట్
అప్లికేషన్ నోట్ కెమెరా ప్రీతో కూడిన LVGL GUI స్క్రీన్ను అందిస్తుందిview మరియు ముఖ-సంబంధిత చర్యల కోసం బటన్లు. ఇది డెవలపర్లకు ఫ్రేమ్వర్క్ను అర్థం చేసుకోవడంలో సహాయపడుతుంది మరియు అందించిన మాజీని ఉపయోగించి ముఖ గుర్తింపును ఎలా అమలు చేయాలిample.
పైగాview
NXP స్మార్ట్ HMI అప్లికేషన్లపై దృష్టి సారించే SLN-TLHMI-IOT అనే సొల్యూషన్ డెవలప్మెంట్ కిట్ను ప్రారంభించింది. ఇది ఒక 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తో GUI స్క్రీన్పైampSLN-TLHMI-IOT బోర్డులో le. అప్లికేషన్ నోట్లో, మాజీample కెమెరా ప్రీతో ఒక LVGL GUI స్క్రీన్ను అందిస్తుందిview మరియు ముఖ నమోదు, గుర్తింపు మరియు తొలగింపును ట్రిగ్గర్ చేయడానికి కొన్ని బటన్లు. నమోదిత ముఖం డేటా కొద్దిగా ద్వారా ఫ్లాష్లో నిల్వ చేయబడుతుంది file వ్యవస్థ.
అధిక స్థాయిలో, అప్లికేషన్ నోట్ కింది విషయాలను కలిగి ఉంటుంది:
- ఫ్రేమ్వర్క్లో ముఖ గుర్తింపు లక్షణాన్ని ప్రారంభించండి.
- ద్వారా ఫ్రేమ్వర్క్లో ఫేస్ డేటాబేస్ మద్దతును జోడించండి file ఫ్లాష్లో సిస్టమ్.
- LVGL GUI యాప్ని అమలు చేయండి. పై పరిచయాల ద్వారా, ఈ పత్రం డెవలపర్లకు సహాయం చేస్తుంది:
- ఫ్రేమ్వర్క్ మరియు స్మార్ట్ HMI సొల్యూషన్ సాఫ్ట్వేర్ను మరింత లోతుగా అర్థం చేసుకోండి.
- LVGL GUI యాప్తో ఫ్రేమ్వర్క్లో వారి AI&ML ముఖ గుర్తింపును అభివృద్ధి చేయండి.
ముసాయిదా ముగిసిందిview
సొల్యూషన్ సాఫ్ట్వేర్ ప్రాథమికంగా అనేక విభిన్న భాగాలతో కూడిన ఫ్రేమ్వర్క్ ఆర్కిటెక్చర్ ఉపయోగం చుట్టూ రూపొందించబడింది:
- పరికర నిర్వాహకులు - ప్రధాన భాగం
- హార్డ్వేర్ అబ్స్ట్రాక్షన్ లేయర్ (HAL) పరికరాలు
- సందేశాలు/ఈవెంట్లు
మూర్తి 1లో చూపిన విధంగా, ఓవర్view ఫ్రేమ్వర్క్ యొక్క యంత్రాంగం:
సిస్టమ్ ఉపయోగించే పరికరాల నిర్వహణకు పరికర నిర్వాహకులు బాధ్యత వహిస్తారు. ప్రతి పరికర రకం (ఇన్పుట్, అవుట్పుట్ మరియు మొదలైనవి) దాని స్వంత రకం-నిర్దిష్ట పరికర నిర్వాహికిని కలిగి ఉంటుంది. డివైజ్ మేనేజర్తో డివైజ్లు రిజిస్టర్ చేయబడిన తర్వాత, అది రిజిస్టర్డ్ డివైజ్లను ప్రారంభించి, ప్రారంభించిన తర్వాత డివైజ్లకు మరియు ఇతర మేనేజర్లకు డేటాను బదిలీ చేయడానికి మెసేజ్ వేచి ఉండి తనిఖీ చేస్తుంది. HAL పరికరాలు దిగువ-స్థాయి డ్రైవర్ కోడ్ పైన వ్రాయబడ్డాయి, అనేక అంతర్లీన వివరాలను సంగ్రహించడం ద్వారా కోడ్ అర్థాన్ని పెంచడంలో సహాయపడతాయి.
ఈవెంట్లు అనేది వివిధ పరికరాల మధ్య వారి మేనేజర్ల ద్వారా సమాచారాన్ని కమ్యూనికేట్ చేసే సాధనం. ఈవెంట్ ట్రిగ్గర్ చేయబడినప్పుడు, ఈవెంట్ను ముందుగా స్వీకరించిన పరికరం ఆ ఈవెంట్ను దాని మేనేజర్కి కమ్యూనికేట్ చేస్తుంది, ఆపై ఈవెంట్ను స్వీకరించడానికి నియమించబడిన ఇతర మేనేజర్లకు తెలియజేస్తుంది.
ఫ్రేమ్వర్క్ యొక్క నిర్మాణ రూపకల్పన మూడు ప్రాథమిక లక్ష్యాలపై కేంద్రీకృతమై ఉంది:
- వాడుకలో సౌలభ్యం
- ఫ్లెక్సిబిలిటీ/పోర్టబిలిటీ
- ప్రదర్శన
విజన్ మరియు ఇతర మెషిన్-లెర్నింగ్ అప్లికేషన్ల కోసం మార్కెట్ చేయడానికి సమయాన్ని వేగవంతం చేసే లక్ష్యంతో ఫ్రేమ్వర్క్ రూపొందించబడింది. మార్కెట్కి వేగవంతమైన సమయాన్ని నిర్ధారించడానికి, సాఫ్ట్వేర్ను అర్థం చేసుకోవడం మరియు సవరించడం చాలా సులభం. ఈ లక్ష్యాన్ని దృష్టిలో ఉంచుకుని, ఫ్రేమ్వర్క్ యొక్క నిర్మాణాన్ని నిర్బంధించకుండా మరియు పనితీరు ఖర్చు లేకుండా సవరించడం సులభం.
ఫ్రేమ్వర్క్ గురించి మరిన్ని వివరాల కోసం, స్మార్ట్ HMI సాఫ్ట్వేర్ డెవలప్మెంట్ యూజర్ గైడ్ (పత్రం MCU-SMHMI-SDUG) చూడండి.
కాంతి మరియు బహుముఖ గ్రాఫిక్స్ లైబ్రరీ (LVGL)
LVGL (లైట్ అండ్ వెర్సటైల్ గ్రాఫిక్స్ లైబ్రరీ) అనేది ఒక ఉచిత మరియు ఓపెన్ సోర్స్ గ్రాఫిక్స్ లైబ్రరీ, మీరు సులభంగా ఉపయోగించగల గ్రాఫికల్ ఎలిమెంట్స్, అందమైన విజువల్ ఎఫెక్ట్స్ మరియు తక్కువ మెమరీ ఫుట్ప్రింట్తో ఎంబెడెడ్ GUIని సృష్టించడానికి అవసరమైన ప్రతిదాన్ని అందిస్తుంది.
GUI గైడర్
GUI గైడర్ అనేది NXP నుండి వినియోగదారు-స్నేహపూర్వక గ్రాఫికల్ వినియోగదారు ఇంటర్ఫేస్ డెవలప్మెంట్ సాధనం, ఇది ఓపెన్ సోర్స్ LVGL గ్రాఫిక్స్ లైబ్రరీతో అధిక నాణ్యత గల డిస్ప్లేల యొక్క వేగవంతమైన అభివృద్ధిని అనుమతిస్తుంది. GUI గైడర్ యొక్క డ్రాగ్-అండ్-డ్రాప్ ఎడిటర్ తక్కువ లేదా కోడింగ్ లేకుండా GUIని సృష్టించడానికి విడ్జెట్లు, యానిమేషన్లు మరియు స్టైల్స్ వంటి LVGL యొక్క అనేక లక్షణాలను ఉపయోగించడాన్ని సులభతరం చేస్తుంది.
ఒక బటన్ క్లిక్తో, మీరు మీ అప్లికేషన్ను అనుకరణ వాతావరణంలో అమలు చేయవచ్చు లేదా లక్ష్య ప్రాజెక్ట్కి ఎగుమతి చేయవచ్చు. GUI గైడర్ నుండి రూపొందించబడిన కోడ్ మీ ప్రాజెక్ట్కు సులభంగా జోడించబడుతుంది, అభివృద్ధి ప్రక్రియను వేగవంతం చేస్తుంది మరియు మీ అప్లికేషన్కు పొందుపరిచిన వినియోగదారు ఇంటర్ఫేస్ను సజావుగా జోడించడానికి మిమ్మల్ని అనుమతిస్తుంది. GUI గైడర్ NXP యొక్క సాధారణ ప్రయోజనం మరియు క్రాస్ఓవర్ MCUలతో ఉపయోగించడానికి ఉచితం మరియు అనేక మద్దతు ఉన్న ప్లాట్ఫారమ్ల కోసం అంతర్నిర్మిత ప్రాజెక్ట్ టెంప్లేట్లను కలిగి ఉంటుంది. GUI గైడర్లో LVGL మరియు GUI డెవలప్మెంట్ గురించి మరింత తెలుసుకోవడానికి, లైట్ మరియు బహుముఖ గ్రాఫిక్స్ లైబ్రరీ మరియు GUI గైడర్ని తనిఖీ చేయండి.
అభివృద్ధి పర్యావరణం
ముందుగా, మాజీని అమలు చేయడానికి హార్డ్వేర్ మరియు సాఫ్ట్వేర్ వాతావరణాన్ని సిద్ధం చేసి సెటప్ చేయండిampఫ్రేమ్వర్క్పై లే.
హార్డ్వేర్ పర్యావరణం
మాజీని ధృవీకరించడం కోసం హార్డ్వేర్ పర్యావరణం సెటప్ చేయబడిందిampలే:
- NXP i.MX RT117H (SLN_TLHMI_IOT కిట్) ఆధారంగా స్మార్ట్ HMI డెవలప్మెంట్ కిట్
- 9-పిన్ కార్టెక్స్-M అడాప్టర్ మరియు V7.84a లేదా డ్రైవర్ యొక్క కొత్త వెర్షన్తో SEGGER J-Link
సాఫ్ట్వేర్ పర్యావరణం
మాజీని అభివృద్ధి చేయడానికి సాఫ్ట్వేర్ పర్యావరణం ఏర్పాటు చేయబడిందిampలే:
- MCUXpresso IDE V11.7.0
- GUI గైడర్ V1.6.1-GA
- lvgl_gui_camera_preview_సెం7 - ఉదాampఅభివృద్ధి యొక్క ఆధార సాఫ్ట్వేర్గా రెండవ అప్లికేషన్ నోట్ యొక్క le కోడ్. వివరాల కోసం, చూడండి https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0 – అభివృద్ధి కోసం కోడ్ వనరుగా.
- SLN-TLHMI-IOT సాఫ్ట్వేర్ V1.1.2 – అభివృద్ధి కోసం కోడ్ వనరుగా NXP GitHub రిపోజిటరీలో విడుదల చేయబడిన స్మార్ట్ HMI సోర్స్ కోడ్. వివరాల కోసం, చూడండి: V1.1.2 వద్ద GitHub – NXP/mcu-smhmi
సాఫ్ట్వేర్ వాతావరణం యొక్క కొనుగోలు మరియు సెటప్ గురించి వివరాల కోసం, చూడండి: SLN-TLHMI-IOTతో ప్రారంభించడం.
ఫ్రేమ్వర్క్పై విజన్ ఆర్కిటెక్చర్
ఫ్రేమ్వర్క్పై విజన్ ఆర్కిటెక్చర్ మూర్తి 2లో చూపబడింది. విజన్ ఆల్గో HAL (OASIS_HAL) క్రింది ప్రక్రియలను కలిగి ఉంది:
- అవుట్పుట్ UI HAL నుండి సంబంధిత ఈవెంట్లను స్వీకరించిన తర్వాత AI&ML విజన్ అల్గారిథమ్ మోడల్ ద్వారా ఫేస్ రిజిస్ట్రేషన్ మరియు రికగ్నిషన్ చేయండి. అల్గోరిథం మోడల్ నుండి అవుట్పుట్ UI HALకి అనుమితి ఫలితాలను తెలియజేయండి.
- కొద్దిగా ఆధారంగా ఫేస్ ఫీచర్ డేటాబేస్ను యాక్సెస్ చేస్తుంది (జోడించండి, తొలగించండి...). file అవుట్పుట్ UI HAL నుండి సంబంధిత ఈవెంట్లను స్వీకరించిన తర్వాత FaceDB HAL యొక్క APIలకు కాల్ చేయడం ద్వారా సిస్టమ్.
- ముఖం నమోదు మరియు గుర్తింపు చేస్తున్నప్పుడు కెమెరా HAL నుండి కెమెరా వీడియో ఫ్రేమ్ను అభ్యర్థించండి.
ఫ్రేమ్వర్క్లో ముఖ గుర్తింపును అమలు చేయండి
LVGL GUI ముఖ గుర్తింపు మాజీampలే (మాజీample తరువాత అందించబడుతుంది) ఫ్రేమ్వర్క్లో మాజీ ఆధారంగా అమలు చేయబడుతుందిampLVGL GUI కెమెరా ప్రీని అమలు చేయడానికి కోడ్లుview ఫ్రేమ్వర్క్పై (పత్రం AN14147).
మాజీలో ముఖ గుర్తింపును ప్రదర్శించడం కోసంample, GUI యాప్ యొక్క ప్రాథమిక విధి (మూర్తి 3లోని ప్రధాన స్క్రీన్ని చూడండి) దిగువ వివరించిన విధంగా రూపొందించబడింది:
- GUI యాప్ రిజిస్ట్రేషన్ లేదా రికగ్నిషన్ బటన్ను క్లిక్ చేసినప్పుడు అవుట్పుట్ UI HALకి ఫేస్ రిజిస్ట్రేషన్ లేదా రికగ్నిషన్ ఈవెంట్ను ట్రిగ్గర్ చేస్తుంది. మరియు అవుట్పుట్ UI HAL ఫేస్ రిజిస్ట్రేషన్ విజయవంతమైన తర్వాత విజన్ ఆల్గో HALకి వినియోగదారుని జోడించే ఈవెంట్ను తెలియజేస్తుంది.
- GUI యాప్ యూజర్ యొక్క ముఖం గుర్తించబడిన తర్వాత వినియోగదారుని తొలగించు బటన్ను క్లిక్ చేసినప్పుడు అవుట్పుట్ UI HALకి వినియోగదారుని తొలగించే ఈవెంట్ను ట్రిగ్గర్ చేస్తుంది.
- GUI యాప్ బటన్లు మరియు ఇమేజ్ల వెలుపల స్క్రీన్పై క్లిక్ చేసినప్పుడు అవుట్పుట్ UI HALకి నడుస్తున్న ఒయాసిస్ ఆల్గోను ఆపివేసే సంఘటనను ట్రిగ్గర్ చేస్తుంది.
మాజీ అమలు కోసం సాఫ్ట్వేర్ ప్యాకేజీని సిద్ధం చేయండిample.
- ప్రాథమిక సాఫ్ట్వేర్ lvgl_gui_camera_preని క్లోన్ చేయండిview_సెం.7. ప్రాజెక్ట్ పేరు మరియు ప్రధాన పేరు మార్చండి fileపేరు lvgl_gui_face_rec_cm7.
- ఫ్రేమ్వర్క్ కోర్ కోసం సోర్స్ కోడ్లు GitHubలో వెర్షన్ 1.1.2 నుండి పబ్లిక్గా ఉండటం ప్రారంభించినందున ఫ్రేమ్వర్క్ సాఫ్ట్వేర్లో నవీకరించబడాలి.
- ఫ్రేమ్వర్క్ ఫోల్డర్ను GitHub నుండి V1.1.2 కాపీతో భర్తీ చేయండి files fwk_log.h మరియు fwk_common.h inc\ కింద అప్లికేషన్ నోట్ సిరీస్ కోసం సవరించబడ్డాయి. ఆపరేషన్లు మూర్తి 4లో చూపబడ్డాయి:
- libs సమూహంలో ఉన్న framework_cm7 ఫోల్డర్ను తొలగించండి మరియు కోర్ యొక్క సోర్స్ కోడ్ అందించబడినందున ప్రాజెక్ట్ > ప్రాపర్టీస్ > C/C++ బిల్డ్ > సెట్టింగ్లు > టూల్ సెట్టింగ్లు > MCU C++ లింకర్ > లైబ్రరీలలో కాన్ఫిగర్ చేయబడిన లైబ్రరీ framework_cm7 మరియు దాని శోధన మార్గాన్ని తీసివేయండి.
ఫ్రేమ్వర్క్లో ముఖ గుర్తింపు లక్షణాన్ని ప్రారంభించండి
NXP ద్వారా ఒయాసిస్ లైట్ రన్టైమ్ లైబ్రరీ - స్టాటిక్ లైబ్రరీగా అందించబడిన ML విజన్ అల్గారిథమ్ మోడల్పై ఫేస్ రికగ్నిషన్ ఫీచర్ నిర్మించబడింది. లైబ్రరీ అనేది ఒక చిన్న, అత్యంత సమర్థవంతమైన, అనుకూలీకరించిన మరియు ఆప్టిమైజ్ చేయబడిన AI లైబ్రరీ. మోడల్లో ఫేస్ డిటెక్షన్, ఫేస్ రికగ్నిషన్, గ్లాస్ డిటెక్షన్ మరియు లైవ్నెస్ డిటెక్షన్ ఉన్నాయి. ఈవెంట్ కాల్బ్యాక్ల ద్వారా కాలర్కు ఫలితాలను అప్డేట్ చేస్తున్నప్పుడు ముఖ గుర్తింపు పైప్లైన్ను అమలు చేయడానికి ఇది ప్రధానంగా API OASISLT_run_extended()ని అందిస్తుంది మరియు సోర్స్ ఫ్రేమ్ సమాచారం, కాల్బ్యాక్లు మరియు మెమరీని పేర్కొన్న తర్వాత ఫేస్ డేటాబేస్ కాల్బ్యాక్ల ద్వారా డేటాబేస్లో ముఖాలను జోడించడం/నవీకరించడం/తొలగించడం. ప్రారంభించబడినప్పుడు మరొక API OASISLT_init()ని కాల్ చేయడం ద్వారా లైబ్రరీ ద్వారా పూల్ ఉపయోగించబడుతుంది. APIల కాలింగ్ మరియు కాల్బ్యాక్ ఫంక్షన్లు ఫ్రేమ్వర్క్ యొక్క విజన్ ఆల్గో HALలో అమలు చేయబడతాయి.
విజన్ ఆల్గో మోడల్ లైబ్రరీని జోడించండి
- లైబ్రరీ మరియు సంబంధిత హెడర్ని కలిగి ఉన్న ఫోల్డర్ ఒయాసిస్ను కాపీ చేయండి file స్మార్ట్ HMI\coffee_machine\cm7\libs\ నుండి మాజీ యొక్క ఫోల్డర్ లిబ్స్లోకిampలే SW.
- హెడర్ యొక్క శోధన మార్గాన్ని జోడించండి file ప్రాజెక్ట్ > ప్రాపర్టీస్ > C/C++ బిల్డ్ > సెట్టింగ్లు > టూల్ సెట్టింగ్లు > MCU C కంపైలర్ > కలిపి మరియు MCU C++ కంపైలర్ > వీటిని కలిగి ఉంటుంది: “${workspace_loc:/${ProjName}/libs/oasis/include}”
- ప్రాజెక్ట్ > ప్రాపర్టీస్ > సి/సి++ బిల్డ్ > సెట్టింగ్లు > MCU C+ + లింకర్ > లైబ్రరీలు: 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కి ఫలితాలను పంపండి.
మాజీ కోసం HAL అమలు చేయడానికి ప్రధాన పనులుampఅవి:
- ఇప్పటికే ఉన్న ఇలాంటి HAL డ్రైవర్ను క్లోన్ చేయండి file మరియు సంబంధిత పేర్లను మార్చండి.
- యాప్ డేటా ఆపరేషన్లకు సంబంధించిన కోడ్లను తీసివేయండి.
- అవుట్పుట్ UI HAL నుండి ఈవెంట్లను నిర్వహించడానికి నిర్వచనాలు మరియు ఫంక్షన్లను నవీకరించండిample డిజైన్.
- ఒయాసిస్ ప్రారంభించడంలో అవసరమైన కాన్ఫిగరేషన్లను జోడించండి.
వివరణాత్మక దశలు క్రింది విధంగా ఉన్నాయి:
- క్లోన్ hal_vision_algo_oasis_coffeemachine.c. మార్చు fileపేరు hal_vision_algo_oasis_guifacerec.c. మరియు అన్ని స్ట్రింగ్స్ CoffeeMachineని GUIFaceRecతో భర్తీ చేయండి file.
- యాప్ డేటాబేస్కు సంబంధించిన స్ట్రింగ్ coffeedb (కేస్ సెన్సిటివ్ కాదు) ఉన్న కోడ్లను తీసివేయండి, ఉదాహరణకుample, #include hal_sln_coffeedb.h.
- అవుట్పుట్ UI HAL నుండి ఈవెంట్లను నిర్వహించడానికి HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() ఫంక్షన్ను సవరించండి.
- ఈవెంట్ డెఫినిషన్ kEventFaceRecId_RegisterCoffeeSelectionని kEventFaceRecId_RegisterUserFaceకి మార్చండి మరియు ఈవెంట్ హ్యాండ్లింగ్ కోసం స్ట్రింగ్ స్ట్రింగ్ regCoffeeSelectionని regGUIFaceRecకి మార్చండి.
- మాజీలో ముఖ గుర్తింపు చర్యల యొక్క ప్రామాణిక ప్రక్రియను చూపించడానికిample, రాష్ట్రాల నిర్వచనాలతో kEventFaceRecID_OasisSetState విషయంలో నిర్వహణను సవరించండి:
- kOASISLiteState
- నమోదు kOAISLiteState
- గుర్తింపు kOAISLiteState
- ఆగిపోయింది
- పై దశలో పేర్కొన్న ఈవెంట్ల నిర్వచనాలను జోడించండి మరియు సవరించండి.
- శీర్షికను కాపీ చేయండి file స్మార్ట్ HMI\coffee_machine \cm7\source\event_handlers\ నుండి smart_tlhmi_event_descriptor.h మాజీ ఫోల్డర్ సోర్స్లోకిampలే SW. నవీకరించండి file క్రింది విధంగా:
- enum రకం _event_smart_tlhmi_idలో ఈవెంట్ డెఫినిషన్ kEventFaceRecId_RegisterCoffeeSelectionని kEventFaceRecId_RegisterUserFaceకి మార్చండి మరియు స్ట్రక్ట్ _event_smartలో regGUIFaceRecకి స్ట్రింగ్ స్ట్రింగ్ regCoffeeSelection మార్చండి. కాబట్టి, regCoffeeSelection కోసం struct register_coffee_selection_event_tని register_gui_facerec_event_tకి మార్చండి.
- కాఫీ మెషిన్ యాప్ కోసం ఉపయోగించిన ఇతర కంటెంట్లను తొలగించండి, ఉదాహరణకుample, వాయిస్ గురించి కోడ్ లైన్: #include “hal_event_descriptor_voice.h”.
- ప్రాజెక్ట్లో ఫ్రేమ్వర్క్>హాల్>విజన్ కింద hal_vision_algo.hలోని enum రకం oasis_lite_state_tకి kOAISISLiteState_Stopped మరియు kOAISISLiteState_Running రకాలను జోడించండి:
typedef enum _oasis_lite_state {- kOASISLiteState
- రన్నింగ్, kOASISLiteState
- ఆపివేయబడింది, kOASISLiteState
- గుర్తింపు,
- kOASISLiteState
- నమోదు, kOASISLiteState
- డి-రిజిస్ట్రేషన్, kOASISLiteState
- రిమోట్ రిజిస్ట్రేషన్, kOASISLiteState
- లెక్కించు
- దిగువన ఉన్న ప్రాజెక్ట్లో ఫ్రేమ్వర్క్>హాల్>విజన్ కింద hal_event_descriptor_face_rec.hలో స్ట్రక్ట్ oasis_state_event_tని మెరుగుపరచడానికి ఎగువ అప్డేట్ చేయబడిన struct oasis_lite_state_tని ఉపయోగించండి: typedef struct _oasis_state_event_t {oasis_litte_state_; } ఒయాసిస్_స్టేట్_ఈవెంట్_టి;
- విజన్ ఆల్గో HAL నుండి ఈవెంట్లను ఇతర HALలకు పంపడం కోసం అన్ని kEventInfo_Remoteని kEventInfo_Localగా మార్చండిample.
- OAISLT_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) \
- __attribute__((“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __attribute__((సమలేఖనం చేయబడింది(alignbytes)))
- మూర్తి 5లో చూపిన ప్రాజెక్ట్ > ప్రాపర్టీస్ > C/C++ బిల్డ్ > MCU సెట్టింగ్లలో fb_sh_mem పై మెమరీ విభాగానికి మెమరీ అసైన్మెంట్ను కాన్ఫిగర్ చేయండి:
- lvgl_gui_face_rec_cm7.cppలో గ్లోబల్ వేరియబుల్ g_DTCOPBufని ప్రకటించండి: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- పై వేరియబుల్లో ఉపయోగించిన నిర్వచనాలను జోడించడాన్ని కొనసాగించండి:
- బోర్డు_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 మాక్రో డెఫినిషన్ని కలిగి ఉంది.
- board_define.hలో వీడియో ఫ్రేమ్ కోసం స్థూల నిర్వచనాలు మరియు మెమరీ విభాగాలను జోడించండి: #define OASIS_RGB_FRAME_WIDTH 800
- ముఖ గుర్తింపుపై ప్రోగ్రెస్ స్థితిని చూపడం కోసం వేరియబుల్ s_debugOptionని trueకి సెట్ చేయండి.
- హెడర్ యొక్క శోధన మార్గాన్ని జోడించండి fileప్రాజెక్ట్ > ప్రాపర్టీస్ >C/C++ బిల్డ్ > సెట్టింగ్లు > టూల్ సెట్టింగ్లు > MCU C కంపైలర్ > కలిగి ఉంటుంది మరియు MCU C++ కంపైలర్ > వీటిని కలిగి ఉంటుంది: “${workspace_loc:/${ProjName}/ఫ్రేమ్వర్క్/hal/vision}”
- Board_define.hలో విజన్ ఆల్గో HALని ఎనేబుల్ చేయడానికి క్రింది నిర్వచనాన్ని జోడించండి: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
అవుట్పుట్ UI HALని ప్రారంభించండి
అవుట్పుట్ UI HAL ఈవెంట్లను విజన్ ఆల్గో HALకి తెలియజేస్తుంది మరియు విజన్ ఆల్గో HAL నుండి అనుమితి ఫలితాలకు ప్రతిస్పందిస్తుంది. GUI యాప్తో, ఈవెంట్లు సాధారణంగా యాప్ ద్వారా ట్రిగ్గర్ చేయబడతాయి మరియు ఫలితాలు యాప్లో చూపబడతాయి.
దీన్ని ఎనేబుల్ చేయడానికి, ఇప్పటికే ఉన్న ఇలాంటి HAL డ్రైవర్ను క్లోన్ చేయండి file ఇక్కడ సాధారణంగా క్రింది విధులు అమలు చేయబడతాయి:
- ముఖ గుర్తింపు మరియు డేటాబేస్ యాక్సెస్ కోసం ఈవెంట్లను తెలియజేయండి.
- ఈవెంట్లను ట్రిగ్గర్ చేయడానికి GUI యాప్ కోసం కాల్బ్యాక్లను అమలు చేయండి.
- విజన్ ఆల్గో మాడ్యూల్ నుండి అనుమితి ఫలితాలను నిర్వహించండి.
- టైమర్లు మరియు ఫేస్ గైడ్ దీర్ఘచతురస్రంతో నియంత్రించబడే ప్రోగ్రెస్ బార్ ద్వారా UIలో ఈవెంట్ల నిర్వహణ ప్రక్రియ మరియు ఫలితాలను చూపండి.
మాజీ కోసం HAL అమలు చేయడానికి ప్రధాన పనులుampఈ పత్రంలో ఉపయోగించబడినవి:
- ఇప్పటికే ఉన్న ఇలాంటి HAL డ్రైవర్ను క్లోన్ చేయండి file మరియు సంబంధిత పేర్లను మార్చండి.
- యాప్కు సంబంధించిన కోడ్లను తీసివేయండి.
- ఈవెంట్ల నోటిఫికేషన్ కోసం ఫంక్షన్లను అప్డేట్ చేయండి మరియు ఒక్కో మాజీ ఫలితాల ప్రతిస్పందనample డిజైన్.
- ఈవెంట్లను ట్రిగ్గర్ చేయడానికి GUI యాప్ కోసం కాల్బ్యాక్లను జోడించండి.
వివరణాత్మక దశలు క్రింది విధంగా ఉన్నాయి:
- క్లోన్ hal_output_ui_coffee_machine.c. మార్చు fileపేరు hal_ output_ui_guifacerec.c.
- అన్ని స్ట్రింగ్స్ CoffeeMachineని GUIFaceRecతో భర్తీ చేయండి file.
- యాప్కి సంబంధించిన కోడ్లను తీసివేయండి – కాఫీ మెషిన్.
- వేక్అప్() మరియు _స్టాండ్బై() ఫంక్షన్లు మరియు సంబంధిత కోడ్లను తీసివేయండి (స్ట్రింగ్ వేక్_అప్ మరియు వాటి కోసం స్టాండ్బైని శోధించవచ్చు).
- ముందుగా తీసివేయండిview HAL_OutputDev_UiGUIFaceRec_Input Notify()లో సంబంధిత కోడ్లను నిర్వహించే మోడ్ ఈవెంట్లు.
- ప్రీ కోసం gui_set_virtual_face() మినహా కాఫీ మెషీన్ యొక్క GUIకి సంబంధించిన UI_xxx_Callback() ఫంక్షన్లు మరియు స్ట్రింగ్ gui_ మరియు స్క్రీన్ని కలిగి ఉన్న కోడ్లను తీసివేయండిview మోడ్ ఫీచర్.
- కాఫీ మెషిన్ యాప్కు సంబంధించిన s_IsWaitingAnotherSelection మరియు s_IsWaitingRegisterSelection అనే వేరియబుల్స్తో ఉన్న అన్ని కోడ్లను తీసివేయండి.
- వాయిస్, ఆడియో మరియు భాషకు సంబంధించిన కోడ్లను తీసివేయండి. ఉదాహరణకుampలే:
- #"hal_voice_algo_asr_local.h"ని చేర్చండి,
- #"hal_event_descriptor_voice.h"ని చేర్చండి
- వివిధ ఈవెంట్ల నోటిఫికేషన్ కోసం, కొత్త ఫంక్షన్లను అమలు చేయండి
- _OutputManagerNotify() విజన్ ఆల్గో HALకి ఈవెంట్ను పంపడానికి ప్రాథమిక ఈవెంట్ అవుట్పుట్ ఫంక్షన్ను అమలు చేస్తుంది. దిగువ ఫంక్షన్లు తమ స్వంత ఈవెంట్లను పంపడానికి దీన్ని పిలుస్తాయి.
- _SetFaceRec() ముఖం నమోదు, గుర్తింపు మరియు ఆల్గోను ఆపడానికి విజన్ ఆల్గోను ట్రిగ్గర్ చేయడానికి kEventFaceRecID_OasisSetState ఈవెంట్ను పంపుతుంది.
- _RegisterGUIFaceRec() నమోదు సరే అయినప్పుడు డేటాబేస్కు ఫేస్ ఫీచర్ డేటాను జోడించడానికి smart_tlhmi_event_descriptor.hలో నిర్వచించబడిన kEventFaceRecId_RegisterGUIFaceRec ఈవెంట్ను పంపుతుంది.
- DeregisterGUIFaceRec() ఫేస్ రికగ్నిషన్ను పాస్ చేస్తున్నప్పుడు డేటాబేస్ నుండి ఫేస్ ఫీచర్ డేటాను తొలగించడానికి ఈవెంట్ kEventFaceRecID_DelUserని పంపుతుంది.
- GUIని రిఫ్రెష్ చేయడంతో పాటు సంబంధిత చర్యలను తీసుకోవడానికి కోడ్లను అప్డేట్ చేయండి, LVGL GUI యాప్ నుండి APIలకు కాల్ చేయడం ద్వారా ముఖ నమోదు మరియు ఫంక్షన్లో _InferComplete_Vision() ఫంక్షన్లో గుర్తింపుampలే యొక్క రూపకల్పన. ఉదాహరణకుample, ముఖం నమోదు విజయవంతం అయినప్పుడు,
- _FaceRecProcess_Stop()కి కాల్ చేయడం ద్వారా పురోగతిని చూపడం ఆపివేయండి;
- _SetFaceRec(kOAISISLiteState_Stopped)కి కాల్ చేయడం ద్వారా ముఖ నమోదును ఆపివేయండి;
- GUIలో విజయవంతమైన ఫలితాన్ని చూపండి: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- డేటాబేస్కు ఫేస్ డేటాను నమోదు చేయండి: _RegisterUserFace(s_UserId);
- ఈవెంట్లను నిర్వహించడానికి UI కాల్బ్యాక్ ఫంక్షన్లను జోడించండి: ప్రీview, ముఖ నమోదు, గుర్తింపు మరియు GUI నుండి ట్రిగ్గర్ చేయబడిన వినియోగదారుని తొలగించడం. ఉదాహరణకుample, ముఖం రిజిస్ట్రేషన్ కాల్బ్యాక్: శూన్యం UI_Registration_Callback(){ _SetFaceRec(kOAISISLiteState_Registration); _FaceRecProcess_Start(); }
- మరియు వివిధ ఈవెంట్లు మరియు ఫలితాలలో పురోగతి మరియు స్థితిని చూపించడానికి _FaceRecProcess_Start() మరియు _FaceRecProcess_Stop() ఫంక్షన్లను జోడించండి.
- కాల్ చేయడం ద్వారా సమయం ముగిసిన సందర్భాన్ని నిర్వహించడానికి టైమర్ ISR కాల్బ్యాక్ ఫంక్షన్ _SessionTimer_Callback()ని నవీకరించండి: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- Board_define.hలో UI అవుట్పుట్ HALని ప్రారంభించడానికి క్రింది నిర్వచనాలను జోడించండి: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
నోటీసు:
ముఖ గుర్తింపు లక్షణాన్ని మెరుగ్గా ప్రదర్శించడానికి, అవుట్పుట్ UI HALలో ముఖ గుర్తింపు ప్రక్రియ మరియు ఫలితాలను చూపడానికి ఫంక్షన్ను ఉంచండి. ఫంక్షన్ క్రింది విధంగా వివరించబడింది
- ఫేస్ గైడ్ దీర్ఘచతురస్రం నీలం రంగును చూపుతుంది మరియు ముఖ నమోదు లేదా గుర్తింపును ప్రారంభించేటప్పుడు ప్రోగ్రెస్ బార్ పురోగతిని చూపుతుంది.
- ముఖం నమోదు విజయవంతం అయినప్పుడు ఫేస్ గైడ్ దీర్ఘచతురస్రం ఎరుపు రంగును చూపుతుంది.
- ముఖ గుర్తింపు విజయవంతమైనప్పుడు ఫేస్ గైడ్ దీర్ఘచతురస్రం ఆకుపచ్చ రంగును చూపుతుంది.
- ఫేస్ గైడ్ దీర్ఘచతురస్రం నీలం రంగులో ఉంటుంది మరియు టైమర్ గడువు ముగిసిన తర్వాత చర్య విజయవంతం కానప్పుడు ప్రోగ్రెస్ బార్ పూర్తి పురోగతిని చూపుతుంది. ఆ సమయంలో, ముఖ నమోదు లేదా గుర్తింపును ఆపివేయండి.
ప్రోగ్రెస్ బార్ మరియు ఫేస్ గైడ్ దీర్ఘచతురస్రం రిసోర్స్ బైనరీలో నిర్మించబడిన చిహ్నాలుగా ప్రదర్శించబడతాయి file ఫ్లాష్లోకి ప్రోగ్రామ్ చేయాలి. SDRAMలోని చిహ్నాల డేటాకు సంబంధించిన పాయింటర్లు అవుట్పుట్ UI HALలో అవుట్పుట్ UI HAL పరికర ప్రారంభానికి సంబంధించిన ఫంక్షన్ LoadIcons(APP_ICONS_BASE)లో సెటప్ చేయబడ్డాయి. ఇది ఫంక్షన్ కోసం చిహ్నాల మద్దతును తప్పనిసరిగా అమలు చేయాలి.
చిహ్నాల మద్దతును అమలు చేయండి
- LVGL GUI యాప్లో ఉపయోగించిన చిత్రాలతో చిహ్నాలను కలపడం ద్వారా వనరును రూపొందించండి:
- నాలుగు ఐకాన్ హెడర్ను క్లోన్ చేయండి fileస్మార్ట్ HMI నుండి s process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h మరియు virtual_face_red_420x426.h
మాజీ రిసోర్స్ ఫోల్డర్ క్రింద ఉన్న కొత్త ఫోల్డర్ చిహ్నాలకు \coffee machine\resource\icons\ampలే SW. - నాలుగు చిహ్నం కోసం శోధన మార్గాన్ని జోడించండి fileకెమెరా_ప్రీలో లుview_resource.txt file రిసోర్స్ ఫోల్డర్లో, ఉదాహరణకుample: చిహ్నం ../resource/icons/process_bar_240x14.h
- కెమెరా_ప్రీని అమలు చేయండిview_resource_build.bat బిన్ను రూపొందించడానికి చిత్రాలను మరియు చిహ్నాల వనరులను రూపొందించడానికి file కెమెరా_పూర్వview_resource.bin మరియు సమాచారం file resource_information_table.txt (మూర్తి 6 చూడండి).
- నాలుగు ఐకాన్ హెడర్ను క్లోన్ చేయండి fileస్మార్ట్ HMI నుండి s process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h మరియు virtual_face_red_420x426.h
- SDRAMలో ప్రారంభ చిరునామా మరియు app_config.hలోని చిహ్నాల పరిమాణాన్ని నిర్వచించండి. చిరునామా GUI యాప్ చిత్రాల పక్కన ప్రారంభమవుతుంది. పరిమాణం సమాచారంలో రూపొందించబడింది file. #APP_ICONS_BASEని నిర్వచించండి (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #APP_ICONS_SIZE 0x107c40ని నిర్వచించండి
- res_sh_mem పేరుతో కేటాయించబడిన మెమరీ విభాగం యొక్క పరిమాణాన్ని app_config.hలో పునర్నిర్వచించడం ద్వారా 0x200000కి నవీకరించండి: #RES_SHMEM_TOTAL_SIZE 0x200000ని మరియు ప్రాజెక్ట్ > ప్రాపర్టీస్ > C/C++ బిల్డ్ > MCU సెట్టింగ్లలో సంబంధిత సెట్టింగ్ని నిర్వచించండి.
- మెయిన్లో APP_LoadResource() ఫంక్షన్లో Flash నుండి SDRAMకి లోడ్ చేయబడిన వనరు మొత్తం పరిమాణానికి చిహ్నం పరిమాణాన్ని జోడించండి file lvgl_gui_face_rec_cm7.cpp: memcpy((శూన్యం *)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 కింది విధంగా ఫ్రేమ్వర్క్లో అభివృద్ధి యొక్క మార్పిడులను అనుసరించి:
- శీర్షికను చేర్చండి file కోడ్ లైన్ జోడించడం ద్వారా ఇద్దరు HAL మేనేజర్లకు సంబంధించినది:
- #include ” fwk_output_manager.h “
- #"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(అవుట్పుట్ మేనేజర్, OUTPUT_MANAGER_TASK_PRIORITY, ret);
- మేనేజర్ టాస్క్ల ప్రాధాన్యతను నిర్వచించండి:
- # VISION_ALGO_MANAGER_TASK_PRIORITYని నిర్వచించండి 3
- #ఔట్పుట్_మేనేజర్_టాస్క్_ప్రాధాన్యాన్ని నిర్వచించండి 1
ఫ్రేమ్వర్క్లో ఫేస్ డేటాబేస్ మద్దతును జోడించండి
రిజిస్టర్డ్ ఫేస్ ఫీచర్ డేటా కొద్దిగా ఫ్లాష్లో స్టోర్ చేయబడిన ఫేస్ డేటాబేస్లో యాక్సెస్ చేయబడుతుంది file వ్యవస్థ. ఫేస్ డేటాబేస్ మద్దతును జోడించే దశలు క్రింద వివరించబడ్డాయి.
ఫ్లాష్ నిల్వ కోసం డ్రైవర్లను జోడించండి
ఫ్లాష్ ఇంటర్ఫేస్ FlexSPI డ్రైవర్ను కాపీ చేయండి files fsl_flexspi.c మరియు fsl_flexspi.h, మరియు డేటా ఎన్క్రిప్షన్ డ్రైవర్ files fsl_caam.c మరియు fsl_caam.h మార్గం SDK_2_13_0_MIMXRT1170-EVK\పరికరాలు \MIMRX1176\డ్రైవర్లు\ నుండి మాజీ డ్రైవర్ల ఫోల్డర్కుampలే SW.
బోర్డు-స్థాయి మద్దతును జోడించండి
- బోర్డు.hలో ఫ్లాష్ పరికరం కోసం ఉపయోగించే FlexSPI నిర్వచనాలను జోడించండి:
- #BOARD_FLEXSPI FLEXSPI1ని నిర్వచించండి
- #BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1ని నిర్వచించండి
- #BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASEని నిర్వచించండి
- ఆపరేటర్లు మరియు కాన్ఫిగరేషన్లను కాపీ చేయండి 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\coffee_7 పాత్\coffee_machine\coffee_machine మార్గంలోampలే SW.
- C/C++ బిల్డ్ > సెట్టింగ్లలో కుడి-క్లిక్ చేసిన తర్వాత "బిల్డ్ నుండి వనరును మినహాయించండి" ఎంపికను తీసివేయండి fileయొక్క పేరు మరియు వాటిని ప్రాజెక్ట్లో నిర్మించడానికి వీలుగా ప్రాపర్టీలను తెరవడం.
- చేర్చబడిన హెడర్ను మార్చండి filesln_flash_config.c మరియు flexspi_nor_flash_ops.hలో sln_flash_config.h నుండి sln_flash_config_w25q256jvs.h అని పేరు పెట్టండి.
- FlexSPI1 క్లాక్ సోర్స్ని సెట్ చేయండి file clock_config.c కాఫీ మెషిన్ యాప్ను సూచిస్తోంది.
అడాప్టర్ మరియు మధ్య స్థాయి మద్దతును జోడించండి
- కాపీ చేయండి 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 అని పేరు పెట్టండి.
- ఫోల్డర్ను కాపీ చేయండి fileకొద్దిగా కోసం APIలను కలిగి ఉన్న సిస్టమ్ fileసిస్టమ్ మరియు HAL డ్రైవర్ స్మార్ట్ HMI \coffee_machine\cm7\source\ నుండి exampలే 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.
- మిడిల్ వేర్ను కలిగి ఉన్న ఫోల్డర్ను కొద్దిగా కాపీ చేయండి fileసిస్టమ్ SDK_2_13_0_ MIMXRT1170-EVK\మిడిల్వేర్\ నుండి మాజీ వరకుampలే SW. మరియు కొత్త ఫోల్డర్ని నవీకరించండి:
- బిల్డింగ్ కోసం దానిపై “బిల్డ్ నుండి వనరును మినహాయించండి” ఎంపికను తీసివేయండి.
- ప్రాజెక్ట్ సెట్టింగ్లలో దాని కోసం చేర్చబడిన మార్గాన్ని జోడించండి: “${workspace_loc:/${ProjName}/littlefs}”
HAL డ్రైవర్లను జోడించండి
- రెండు HAL పరికరాలు ఉన్నాయి - file సిస్టమ్ మరియు ఫేస్ డేటాబేస్ HAL డేటాబేస్ యాక్సెస్ ఫీచర్కు మద్దతు ఇస్తుంది మరియు అవి ఏ మార్పు లేకుండా ఇప్పటికే ఫ్రేమ్వర్క్లో అమలు చేయబడ్డాయి. board_define.hలో దిగువ నిర్వచనాలను జోడించడం ద్వారా వాటిని ప్రారంభించండి:
- #నిర్వచించండి ENABLE_FLASH_DEV_Littlefs
- #ENABLE_FACEDBని నిర్వచించండి
మరియు మాజీ కోసం ఫేస్ డేటాబేస్ పేరును మార్చండిample: #OASIS_FACE_DB_DIR “oasis_gui_face_rec”ని నిర్వచించండి
యాప్-స్థాయి మద్దతును జోడించండి
- ప్రధానమైనది నవీకరించండి file lvgl_gui_face_rec_cm7.cpp:
- శీర్షికను చేర్చండి file ఫ్లాష్కి సంబంధించినది file కోడ్ లైన్ జోడించడం ద్వారా సిస్టమ్ HAL మేనేజర్: #include “fwk_flash.h”
- ప్రకటించి నమోదు చేసుకోండి file సిస్టమ్ HAL పరికరం:
- HAL_FLASH_DEV_DECLARE(లిటిల్ఫ్స్);
- HAL_FLASH_DEV_REGISTER(లిటిల్ఫ్స్, రెట్);
గమనిక: ది file APP_InitFramework() ఫంక్షన్లో అన్ని పరికర నిర్వాహకులు ప్రారంభించబడటానికి ముందు సిస్టమ్ HAL పరికరం తప్పనిసరిగా నమోదు చేయబడాలి.
- MPUని కాన్ఫిగర్ చేయడానికి APP_BoardInit()లో BOARD_ConfigMPU() ఫంక్షన్కి కాల్ చేయండి.
- సెట్ చేయండి 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\ నుండి మాజీకి కాపీ చేయండిampలే SW.
LVGL GUI యాప్ని అమలు చేయండి
ఫ్రేమ్వర్క్ ఆధారంగా ఒక LVGL GUI యాప్ అభివృద్ధి అనేది అవుట్పుట్ UI HAL నుండి APIలను కాల్ చేస్తుంది మరియు UI HALని అవుట్పుట్ చేయడానికి APIలను అందిస్తుంది (అవుట్పుట్ UI HAL అమలు కోసం విభాగం 4.1.3 చూడండి).
అయితే, LVGL GUI యాప్ యొక్క వివరణాత్మక అమలు అప్లికేషన్ యొక్క అవసరాలు మరియు రూపకల్పనపై ఆధారపడి ఉంటుంది. ఈ మాజీలో GUI యాప్ampసెక్షన్ 4 ప్రారంభంలో వివరించిన విధంగా le రూపొందించబడింది.
అమలు పరిచయాలు క్రింద ఉన్నాయి:
- GUI గైడర్ ప్రాజెక్ట్ మరియు ఎంబెడెడ్ సిస్టమ్ ప్రాజెక్ట్ మధ్య ఇంటర్ఫేస్గా GUI గైడర్ అందించిన custom.c మరియు custom.hలో అనుకూలీకరించిన కోడ్లు అమలు చేయబడతాయి.
- కింది ఫంక్షన్లను సాధించడానికి custom.cలో gui_xxx() పేరుతో కొత్త ఫంక్షన్లను జోడించండి:
- UIని అప్డేట్ చేయడానికి UI HAL మరియు GUI యాప్ అవుట్పుట్ కోసం.
- అవుట్పుట్ UI HAL నుండి UI కాల్బ్యాక్ ఫంక్షన్లకు కాల్ చేయడం ద్వారా ఈవెంట్లను ట్రిగ్గర్ చేయడానికి GUI యాప్ కోసం.
ఉదాహరణకుample, కొత్త ఫంక్షన్ gui_event_face_rec_action() సంబంధిత బటన్ను క్లిక్ చేసినప్పుడు GUI యాప్ నుండి ట్రిగ్గర్ చేయబడిన ముఖ నమోదు, ముఖ గుర్తింపు మరియు వినియోగదారుని తొలగించడం వంటి ఈవెంట్లలో ఒకదానిని నిర్వహించడానికి UI కాల్బ్యాక్ ఫంక్షన్లను పిలుస్తుంది.
గమనిక: ఫంక్షన్ gui_set_virtual_face() ముందుగా అవుట్పుట్ UI HALలో పిలువబడుతుందిview మోడ్ని custom.cలో అమలు చేయాలి:
- స్మార్ట్ HMI\coffee_machine\cm4\కస్టమ్ \custom.c నుండి క్లోన్ ఫంక్షన్ gui_set_virtual_face().
- విడ్జెట్ పేరు home_img_cameraPreని మార్చండిview స్క్రీన్_img_camera_preకిview ఫంక్షన్ లో.
- GUI గైడర్ ప్రాజెక్ట్కి అనుకూలంగా ఉండటం కోసం మాక్రో డెఫినిషన్ #ifndef RT_PLATFORM నియంత్రణలో #ifndef RT_PLATFORM అవుట్పుట్ UI HALలోని అన్ని వాటికి ఒకే ప్రోటోటైప్తో UI కాల్బ్యాక్ ఫంక్షన్లను అమలు చేయండి ఎందుకంటే అవుట్పుట్ UI HALలోని ఈ ఫంక్షన్లు ఎంబెడెడ్ ప్లాట్ఫారమ్. custom.cలో, అవి GUI గైడర్లోని సిమ్యులేటర్పై ఆధారపడి ఉంటాయి మరియు ఎంబెడెడ్ ప్లాట్ఫారమ్కు స్వతంత్రంగా ఉంటాయి. ఉదాహరణకుample, GUI గైడర్ సిమ్యులేటర్ రన్నింగ్ కోసం ఫేస్ రిజిస్ట్రేషన్ కాల్బ్యాక్ క్రింది విధంగా అమలు చేయబడుతుంది: #ifndef RT_PLATFORM శూన్యం UI_Registration_Callback() {gui_hide_del_user_btn(true); s_InAction = తప్పు; తిరిగి; }
గమనిక: సెక్షన్ 6 యొక్క 4.1.3వ దశలో ప్రవేశపెట్టిన ఫంక్షన్ యొక్క అదే నమూనాను చూడండి
స్థూల నిర్వచనం RT_PLATFORM మూర్తి 7లో చూపిన విధంగా MCUXpresso యొక్క ప్రాజెక్ట్ సెట్టింగ్లపై సెట్ చేయబడింది: - UI_xxx_Callback() మరియు gui_xxx() పేరుతో ఉన్న అన్ని ఫంక్షన్లను custom.hలో ప్రకటించండి మరియు GUI APIలను UI అవుట్పుట్ HALకి భాగస్వామ్యం చేయడానికి smart_tlhmi_event_descriptor.hలో చేర్చబడిన custom.hని జోడించండి.
- కింది ఫంక్షన్లను సాధించడానికి custom.cలో gui_xxx() పేరుతో కొత్త ఫంక్షన్లను జోడించండి:
- GUI గైడర్లో GUIని అభివృద్ధి చేయండి:
- ఫోల్డర్ కెమెరాను ముందుగా క్లోన్ చేయండిview బేస్ సాఫ్ట్వేర్ ప్యాకేజీ lvgl_gui_camera_preలోని gui_guider ఫోల్డర్లో GUI గైడర్ ప్రాజెక్ట్ సాఫ్ట్వేర్ని కలిగి ఉందిview_సెం.7. సంబంధిత పేరు camera_preని మార్చండిview కొత్త మాజీ కోసం face_recample.
- ఎగువన నవీకరించబడిన custom.c మరియు అనుకూలతను కాపీ చేయండి. కొత్త GUI గైడర్ ప్రాజెక్ట్ సాఫ్ట్వేర్కు h.
- GUI గైడర్లో కొత్త face_rec ప్రాజెక్ట్ని తెరవండి. క్రింది విధంగా నవీకరించండి:
- వినియోగదారుని తొలగించు అని లేబుల్ చేయబడిన కొత్త బటన్ను జోడించండి. దానికి దాచిన ఫ్లాగ్ను జోడించండి, తద్వారా GUI యాప్ ప్రారంభమైనప్పుడు బటన్ దాచబడుతుంది.
- అన్ని బటన్ల ఈవెంట్ సెట్టింగ్లో “విడుదల చేయబడిన” ట్రిగ్గర్లో API gui_event_face_rec_action()కి వివిధ ఈవెంట్ ID పరామితితో కాల్ చేసే కోడ్ లైన్ను జోడించండి, ముఖ నమోదు, ముఖ గుర్తింపు మరియు వినియోగదారుని తొలగించడం వంటి ఈవెంట్లను ట్రిగ్గర్ చేయడం కోసం నమోదు, గుర్తింపు మరియు వినియోగదారుని తొలగించండి. మూర్తి 8 బటన్ నమోదు యొక్క ఈవెంట్ కోసం కోడ్ను చూపుతుంది:
- GUI గైడర్ నుండి రూపొందించబడిన కోడ్ను MCUXpresso ప్రాజెక్ట్కి అప్డేట్ చేయండి.
- MCUXpresso ప్రాజెక్ట్ SW రూపొందించిన ఫోల్డర్లోని ఫోల్డర్ చిత్రాలను మినహాయించి కంటెంట్లను GUI గైడర్ ప్రాజెక్ట్ SW యొక్క ఫోల్డర్లోని సంబంధిత వాటితో భర్తీ చేయండి.
గమనిక: పైన ప్రవేశపెట్టిన సవరణల గురించి మరిన్ని వివరాల కోసం, మాజీని తనిఖీ చేయండిample సాఫ్ట్వేర్ వద్ద https://mcuxpresso.nxp.com/appcodehub.
మాజీతో ధృవీకరణలుampలే ప్రాజెక్ట్
మాజీ పొందడానికిampఈ అప్లికేషన్ నోట్ కోసం వనరులు మరియు సాధనాలను కలిగి ఉన్న సాఫ్ట్వేర్ ప్యాకేజీని సందర్శించండి: https://mcuxpresso.nxp.com/appcodehub. మాజీని తెరవండిampMCUXpresso IDE పై ప్రాజెక్ట్. .axfని నిర్మించి, ప్రోగ్రామ్ చేయండి file 0x30000000 చిరునామాకు మరియు రిసోర్స్ బిన్ను ప్రోగ్రామ్ చేయండి file కెమెరా_పూర్వview0x30800000 చిరునామాకు _resource.bin.
LVGL GUI ముఖ గుర్తింపు మాజీample సాధారణంగా క్రింది విధంగా పనిచేస్తుంది:
- ముందుగాview: పవర్ అప్తో, కెమెరా క్యాప్చర్ చేసిన వీడియో స్ట్రీమ్లు కెమెరా ప్రీ నిర్దిష్ట ప్రాంతంలో చూపబడతాయిview GUI స్క్రీన్పై. స్థితి లేబుల్ “ప్రీview…”. వివరాల కోసం, మూర్తి 3 చూడండి. వినియోగదారుని తొలగించు బటన్ దాచబడింది. బటన్లు మరియు ఇమేజ్ల వెలుపల ఉన్న ప్రాంతాన్ని క్లిక్ చేసినప్పుడు, అది ప్రీని చూపుతుందిview ముఖం నమోదు లేదా గుర్తింపు చర్య ముగిసిన తర్వాత పైన పేర్కొన్న విధంగా పేర్కొనండి.
- నమోదు:
- టార్టప్: రిజిస్ట్రేషన్ బటన్ను క్లిక్ చేసినప్పుడు, ముఖం నమోదు ప్రారంభమవుతుంది. స్టేటస్ లేబుల్ “రిజిస్ట్రేషన్…”ని ప్రదర్శించడానికి మారుతుంది, ఫేస్ గైడ్ దీర్ఘచతురస్రం నీలం రంగును చూపుతుంది మరియు ప్రోగ్రెస్ బార్ ప్రోగ్రెస్ని చూపడం ప్రారంభిస్తుంది. రిజిస్ట్రేషన్ కోసం వినియోగదారు ముఖం నీలిరంగు ముఖ మార్గదర్శిని దీర్ఘచతురస్రాకారంలో కనిపిస్తోందని నిర్ధారించుకోండి.
- విజయం: స్టేటస్ లేబుల్ “రిజిస్ట్రేషన్…సరే” మరియు రిజిస్టర్డ్ యూజర్ ID నంబర్ని చూపుతుంది, బార్లో ప్రోగ్రెస్ పూర్తిగా చూపడానికి ముందు ఫేస్ రిజిస్ట్రేషన్ విజయవంతమైతే ఫేస్ గైడ్ దీర్ఘచతురస్రం ఎరుపుగా మారుతుంది.
- వైఫల్యం -> సమయం ముగిసింది: బార్లో పురోగతి పూర్తిగా కనిపించినప్పుడు ముఖ నమోదు విఫలమైతే స్టేటస్ లేబుల్ “రిజిస్ట్రేషన్...టైమ్ అవుట్” చూపిస్తుంది.
- వైఫల్యం -> డూప్లికేషన్: స్టేటస్ లేబుల్ “రిజిస్ట్రేషన్...విఫలమైంది” అని చూపిస్తుంది, బార్లో ప్రోగ్రెస్ పూర్తిగా చూపించడానికి ముందు రిజిస్టర్డ్ ముఖం గుర్తించబడితే ఫేస్ గైడ్ దీర్ఘచతురస్రం ఆకుపచ్చగా మారుతుంది.
- గుర్తింపు:
- స్టార్టప్: రికగ్నిషన్ బటన్ను క్లిక్ చేసినప్పుడు, ఫేస్ రికగ్నిషన్ ప్రారంభమవుతుంది. స్టేటస్ లేబుల్ “గుర్తింపు…”ని ప్రదర్శించడానికి మారుతుంది, ఫేస్ గైడ్ దీర్ఘచతురస్రం నీలం రంగును చూపుతుంది మరియు ప్రోగ్రెస్ బార్ ప్రోగ్రెస్ని చూపడం ప్రారంభిస్తుంది. రిజిస్ట్రేషన్ కోసం వినియోగదారు ముఖం నీలిరంగు ముఖ మార్గదర్శిని దీర్ఘచతురస్రంలో చూపబడిందని నిర్ధారించుకోండి.
- విజయం: స్టేటస్ లేబుల్ "గుర్తింపు...సరే" మరియు గుర్తించబడిన వినియోగదారు ID సంఖ్యను చూపుతుంది, బార్లో పురోగతి పూర్తిగా చూపబడటానికి ముందు ముఖ గుర్తింపు విజయవంతమైతే ఫేస్ గైడ్ దీర్ఘచతురస్రం ఆకుపచ్చగా మారుతుంది. పాయింట్ వద్ద, వినియోగదారుని తొలగించు బటన్ కనిపిస్తుంది. వినియోగదారుని గుర్తించినప్పుడు మాత్రమే తొలగించడానికి అనుమతించబడుతుందని దీని అర్థం.
- జబ్బు: బార్లో పురోగతి పూర్తిగా కనిపించినప్పుడు కూడా ముఖ గుర్తింపు విఫలమైతే స్టేటస్ లేబుల్ “గుర్తింపు... సమయం ముగిసింది” అని చూపుతుంది.
- వినియోగదారుని తొలగించండి: "వినియోగదారుని తొలగించు" బటన్ను క్లిక్ చేసినప్పుడు, ముఖ గుర్తింపు విజయవంతమైన తర్వాత, ఫేస్ గైడ్ దీర్ఘచతురస్రం నీలం రంగులోకి మారడంతో మరియు బార్లో పురోగతి పూర్తిగా చూపడంతో "వినియోగదారుని తొలగించు...సరే"ని ప్రదర్శించడానికి స్థితి లేబుల్ మారుతుంది. వినియోగదారుని తొలగించు బటన్ మళ్లీ దాచబడింది. గుర్తించబడిన ముఖం/వినియోగదారు డేటాబేస్ నుండి తొలగించబడతారు. అంటే ఈ ముఖం/వినియోగదారు మళ్లీ రిజిస్టర్ అయ్యే వరకు గుర్తించబడదు.
డాక్యుమెంట్లోని సోర్స్ కోడ్ గురించి గమనించండి
Exampఈ డాక్యుమెంట్లో చూపబడిన le కోడ్ కింది కాపీరైట్ మరియు BSD-3-క్లాజ్ లైసెన్స్ను కలిగి ఉంది:
కాపీరైట్ 2024 NXP పునఃపంపిణీ మరియు మూలాధారం మరియు బైనరీ ఫారమ్లలో, సవరణతో లేదా లేకుండా, కింది షరతులు పాటించబడితే అనుమతించబడతాయి:
- సోర్స్ కోడ్ యొక్క పునఃపంపిణీ తప్పనిసరిగా పై కాపీరైట్ నోటీసు, ఈ షరతుల జాబితా మరియు క్రింది నిరాకరణను కలిగి ఉండాలి.
- బైనరీ రూపంలో పునఃపంపిణీలు తప్పనిసరిగా పై కాపీరైట్ నోటీసును పునరుత్పత్తి చేయాలి, ఈ షరతుల జాబితా మరియు డాక్యుమెంటేషన్ మరియు/లేదా ఇతర మెటీరియల్లలోని క్రింది నిరాకరణ తప్పనిసరిగా పంపిణీతో అందించబడాలి.
- నిర్దిష్ట ముందస్తు వ్రాతపూర్వక అనుమతి లేకుండా ఈ సాఫ్ట్వేర్ నుండి ఉత్పన్నమైన ఉత్పత్తులను ఆమోదించడానికి లేదా ప్రచారం చేయడానికి కాపీరైట్ హోల్డర్ పేరు లేదా దాని కంట్రిబ్యూటర్ల పేర్లు ఉపయోగించబడవు
ఈ సాఫ్ట్వేర్ కాపీరైట్ హోల్డర్లు మరియు కంట్రిబ్యూటర్ల ద్వారా అందించబడుతుంది మరియు "ఉన్నట్లే" మరియు ఏదైనా ఎక్స్ప్రెస్ లేదా ఇంప్లైడ్ వారెంటీలతో సహా, కానీ సూచించిన వాటికి పరిమితం కాదు. ఒక ప్రత్యేక ప్రయోజనం కోసం నిరాకరణ. ఏ సందర్భంలోనైనా కాపీరైట్ హోల్డర్ లేదా కంట్రిబ్యూటర్లు ఏదైనా ప్రత్యక్ష, పరోక్ష, యాదృచ్ఛిక, ప్రత్యేక, ఆదర్శప్రాయమైన, లేదా తత్ఫలితంగా జరిగే నష్టాలకు (ప్రతిదాయక, నష్టపరిహారం, సహకరిస్తూ) బాధ్యత వహించరు. ప్రత్యామ్నాయ వస్తువులు లేదా సేవలను కోల్పోవడం, డేటా లేదా లాభాలు లేదా వ్యాపార అంతరాయం) మరియు ఏదైనా బాధ్యత సిద్ధాంతం (కాంట్రాక్ట్, అయితే; నిర్లక్ష్యం లేదా ఇతరత్రా) ఈ సాఫ్ట్వేర్ వినియోగం నుండి ఏ విధంగానైనా తలెత్తడం, అటువంటి నష్టం జరిగే అవకాశం ఉందని సలహా ఇచ్చినప్పటికీ.
పునర్విమర్శ చరిత్ర
చట్టపరమైన సమాచారం
నిర్వచనాలు
డ్రాఫ్ట్ — ఒక డాక్యుమెంట్పై డ్రాఫ్ట్ స్టేటస్ కంటెంట్ ఇప్పటికీ అంతర్గత రీ కింద ఉందని సూచిస్తుందిview మరియు అధికారిక ఆమోదానికి లోబడి, మార్పులు లేదా చేర్పులకు దారితీయవచ్చు. డాక్యుమెంట్ యొక్క డ్రాఫ్ట్ వెర్షన్లో చేర్చబడిన సమాచారం యొక్క ఖచ్చితత్వం లేదా సంపూర్ణతకు సంబంధించి NXP సెమీకండక్టర్లు ఎటువంటి ప్రాతినిధ్యాలు లేదా వారెంటీలను ఇవ్వవు మరియు అటువంటి సమాచారాన్ని ఉపయోగించడం వల్ల కలిగే పరిణామాలకు ఎటువంటి బాధ్యత ఉండదు.
నిరాకరణ
- పరిమిత వారంటీ మరియు బాధ్యత - ఈ పత్రంలోని సమాచారం ఖచ్చితమైనది మరియు నమ్మదగినది అని నమ్ముతారు. అయితే, NXP సెమీకండక్టర్స్ అటువంటి సమాచారం యొక్క ఖచ్చితత్వం లేదా సంపూర్ణతకు సంబంధించి వ్యక్తీకరించబడిన లేదా సూచించిన ఎటువంటి ప్రాతినిధ్యాలు లేదా వారెంటీలను ఇవ్వవు మరియు అటువంటి సమాచారాన్ని ఉపయోగించడం వల్ల కలిగే పరిణామాలకు ఎటువంటి బాధ్యత ఉండదు. NXP సెమీకండక్టర్స్ వెలుపలి సమాచార మూలం అందించినట్లయితే, ఈ డాక్యుమెంట్లోని కంటెంట్కు NXP సెమీకండక్టర్స్ ఎటువంటి బాధ్యత వహించదు.
ఎట్టి పరిస్థితుల్లోనూ NXP సెమీకండక్టర్స్ ఏదైనా పరోక్ష, యాదృచ్ఛిక, శిక్షాత్మక, ప్రత్యేక లేదా పర్యవసానమైన నష్టాలకు బాధ్యత వహించదు (పరిమితి లేకుండా - నష్టపోయిన లాభాలు, కోల్పోయిన పొదుపులు, వ్యాపార అంతరాయం, ఏదైనా ఉత్పత్తుల తొలగింపు లేదా భర్తీకి సంబంధించిన ఖర్చులు లేదా రీవర్క్ ఛార్జీలు) లేదా అలాంటి నష్టాలు టార్ట్ (నిర్లక్ష్యంతో సహా), వారంటీ, ఒప్పంద ఉల్లంఘన లేదా ఏదైనా ఇతర చట్టపరమైన సిద్ధాంతంపై ఆధారపడి ఉండవు.
ఏ కారణం చేతనైనా కస్టమర్కు ఏవైనా నష్టాలు సంభవించినప్పటికీ, NXP సెమీకండక్టర్స్ యొక్క వాణిజ్య విక్రయ నిబంధనలు మరియు షరతులకు అనుగుణంగా ఇక్కడ వివరించిన ఉత్పత్తుల కోసం కస్టమర్పై NXP సెమీకండక్టర్ల యొక్క మొత్తం మరియు సంచిత బాధ్యత పరిమితం చేయబడుతుంది. - మార్పులు చేసుకునే హక్కు — NXP సెమీకండక్టర్స్ ఈ డాక్యుమెంట్లో ప్రచురించబడిన సమాచారాన్ని పరిమితి లేకుండా మరియు ఉత్పత్తి వివరణలతో సహా, ఎప్పుడైనా మరియు నోటీసు లేకుండా మార్పులు చేసే హక్కును కలిగి ఉంది. ఈ పత్రం దీని ప్రచురణకు ముందు అందించిన మొత్తం సమాచారాన్ని భర్తీ చేస్తుంది మరియు భర్తీ చేస్తుంది.
- ఉపయోగం కోసం అనుకూలత — NXP సెమీకండక్టర్స్ ఉత్పత్తులు లైఫ్ సపోర్ట్, లైఫ్-క్రిటికల్ లేదా సేఫ్టీ-క్రిటికల్ సిస్టమ్స్ లేదా ఎక్విప్మెంట్లో లేదా NXP సెమీకండక్టర్స్ ఉత్పత్తి యొక్క వైఫల్యం లేదా పనిచేయకపోవడం వంటివి సహేతుకంగా ఆశించిన అప్లికేషన్లలో ఉపయోగించేందుకు తగినవిగా రూపొందించబడలేదు, అధికారం లేదా హామీ ఇవ్వబడలేదు. వ్యక్తిగత గాయం, మరణం లేదా తీవ్రమైన ఆస్తి లేదా పర్యావరణ నష్టం. NXP సెమీకండక్టర్స్ మరియు దాని సరఫరాదారులు NXP సెమీకండక్టర్స్ ఉత్పత్తులను అటువంటి పరికరాలు లేదా అప్లికేషన్లలో చేర్చడం మరియు/లేదా ఉపయోగించడం కోసం ఎటువంటి బాధ్యతను అంగీకరించరు మరియు అందువల్ల అటువంటి చేరిక మరియు/లేదా ఉపయోగం కస్టమర్ యొక్క స్వంత పూచీపై ఉంటుంది.
- అప్లికేషన్లు — ఈ ఉత్పత్తులలో దేనికైనా ఇక్కడ వివరించబడిన అప్లికేషన్లు సచిత్ర ప్రయోజనాల కోసం మాత్రమే. NXP సెమీకండక్టర్స్ అటువంటి అప్లికేషన్లు తదుపరి పరీక్ష లేదా మార్పు లేకుండా పేర్కొన్న ఉపయోగానికి అనుకూలంగా ఉంటాయని ఎటువంటి ప్రాతినిధ్యాన్ని లేదా హామీని ఇవ్వదు.
NXP సెమీకండక్టర్స్ ఉత్పత్తులను ఉపయోగించి వారి అప్లికేషన్లు మరియు ఉత్పత్తుల రూపకల్పన మరియు ఆపరేషన్కు కస్టమర్లు బాధ్యత వహిస్తారు మరియు NXP సెమీకండక్టర్లు అప్లికేషన్లు లేదా కస్టమర్ ప్రోడక్ట్ డిజైన్తో ఎలాంటి సహాయానికి బాధ్యత వహించవు. NXP సెమీకండక్టర్స్ ప్రోడక్ట్ కస్టమర్ యొక్క అప్లికేషన్లు మరియు ప్లాన్ చేసిన ఉత్పత్తులకు, అలాగే కస్టమర్ యొక్క థర్డ్ పార్టీ కస్టమర్(ల) యొక్క ప్రణాళికాబద్ధమైన అప్లికేషన్ మరియు వినియోగానికి అనుకూలంగా ఉందో లేదో నిర్ధారించడం కస్టమర్ యొక్క ఏకైక బాధ్యత. కస్టమర్లు తమ అప్లికేషన్లు మరియు ఉత్పత్తులకు సంబంధించిన రిస్క్లను తగ్గించడానికి తగిన డిజైన్ మరియు ఆపరేటింగ్ రక్షణలను అందించాలి. NXP సెమీకండక్టర్స్ కస్టమర్ యొక్క అప్లికేషన్లు లేదా ఉత్పత్తులలో ఏదైనా బలహీనత లేదా డిఫాల్ట్ లేదా కస్టమర్ యొక్క థర్డ్ పార్టీ కస్టమర్(లు) అప్లికేషన్ లేదా వినియోగానికి సంబంధించిన ఏదైనా డిఫాల్ట్, డ్యామేజ్, ఖర్చులు లేదా సమస్యకు సంబంధించిన ఎలాంటి బాధ్యతను అంగీకరించదు. NXP సెమీకండక్టర్స్ ఉత్పత్తులను ఉపయోగించి కస్టమర్ యొక్క అప్లికేషన్లు మరియు ప్రోడక్ట్ల కోసం అవసరమైన అన్ని టెస్టింగ్లు చేయడం కోసం కస్టమర్ బాధ్యత వహిస్తాడు, అప్లికేషన్లు మరియు ఉత్పత్తులు లేదా అప్లికేషన్ యొక్క డిఫాల్ట్ను నివారించడం లేదా కస్టమర్ యొక్క మూడవ పక్షం కస్టమర్(ల) ద్వారా ఉపయోగించడం. ఈ విషయంలో NXP ఎటువంటి బాధ్యతను అంగీకరించదు. - వాణిజ్య విక్రయానికి సంబంధించిన నిబంధనలు మరియు షరతులు — NXP సెమీకండక్టర్స్ ఉత్పత్తులు https://www.nxp.com/proలో ప్రచురించబడిన వాణిజ్య విక్రయం యొక్క సాధారణ నిబంధనలు మరియు షరతులకు లోబడి విక్రయించబడతాయిfile/నిబంధనలు, చెల్లుబాటు అయ్యే వ్రాతపూర్వక వ్యక్తిగత ఒప్పందంలో అంగీకరించకపోతే. ఒక వ్యక్తి ఒప్పందం ముగిసిన సందర్భంలో సంబంధిత ఒప్పందం యొక్క నిబంధనలు మరియు షరతులు మాత్రమే వర్తిస్తాయి. కస్టమర్ ద్వారా NXP సెమీకండక్టర్స్ ఉత్పత్తుల కొనుగోలుకు సంబంధించి కస్టమర్ యొక్క సాధారణ నిబంధనలు మరియు షరతులను వర్తింపజేయడానికి NXP సెమీకండక్టర్స్ దీని ద్వారా స్పష్టంగా అభ్యంతరం వ్యక్తం చేస్తాయి.
- ఎగుమతి నియంత్రణ - ఈ పత్రం అలాగే ఇక్కడ వివరించిన అంశం(లు) ఎగుమతి నియంత్రణ నిబంధనలకు లోబడి ఉండవచ్చు. ఎగుమతి చేయడానికి సమర్థ అధికారుల నుండి ముందస్తు అనుమతి అవసరం కావచ్చు.
- నాన్-ఆటోమోటివ్ క్వాలిఫైడ్ ప్రోడక్ట్లలో ఉపయోగించడానికి అనుకూలత — ఈ నిర్దిష్ట NXP సెమీకండక్టర్స్ ఉత్పత్తి ఆటోమోటివ్ క్వాలిఫైడ్ అని ఈ పత్రం స్పష్టంగా పేర్కొంటే తప్ప, ఉత్పత్తి ఆటోమోటివ్ వినియోగానికి తగినది కాదు. ఇది ఆటోమోటివ్ టెస్టింగ్ లేదా అప్లికేషన్ అవసరాలకు అనుగుణంగా అర్హత పొందలేదు లేదా పరీక్షించబడలేదు. NXP సెమీకండక్టర్స్ ఆటోమోటివ్ పరికరాలు లేదా అప్లికేషన్లలో నాన్-ఆటోమోటివ్ క్వాలిఫైడ్ ఉత్పత్తులను చేర్చడం మరియు/లేదా ఉపయోగించడం కోసం ఎటువంటి బాధ్యతను అంగీకరించదు.
వినియోగదారుడు ఆటోమోటివ్ స్పెసిఫికేషన్లు మరియు ప్రమాణాలకు ఆటోమోటివ్ అప్లికేషన్లలో డిజైన్-ఇన్ మరియు ఉపయోగం కోసం ఉత్పత్తిని ఉపయోగిస్తే, కస్టమర్ (a) అటువంటి ఆటోమోటివ్ అప్లికేషన్లు, ఉపయోగం మరియు స్పెసిఫికేషన్ల కోసం ఉత్పత్తి యొక్క NXP సెమీకండక్టర్ల వారంటీ లేకుండానే ఉత్పత్తిని ఉపయోగించాలి, మరియు ( బి) కస్టమర్ NXP సెమీకండక్టర్స్ స్పెసిఫికేషన్లకు మించి ఆటోమోటివ్ అప్లికేషన్ల కోసం ఉత్పత్తిని ఉపయోగించినప్పుడు, అటువంటి ఉపయోగం పూర్తిగా కస్టమర్ యొక్క స్వంత పూచీతో ఉంటుంది మరియు (సి) కస్టమర్ డిజైన్ మరియు ఉపయోగం కారణంగా ఏర్పడే ఏదైనా బాధ్యత, నష్టాలు లేదా విఫలమైన ఉత్పత్తి క్లెయిమ్ల కోసం కస్టమర్ పూర్తిగా NXP సెమీకండక్టర్లకు నష్టపరిహారం చెల్లిస్తారు. NXP సెమీకండక్టర్స్ స్టాండర్డ్ వారంటీ మరియు NXP సెమీకండక్టర్స్ ప్రోడక్ట్ స్పెసిఫికేషన్లకు మించిన ఆటోమోటివ్ అప్లికేషన్ల కోసం ఉత్పత్తి. - అనువాదాలు — ఆ పత్రంలోని చట్టపరమైన సమాచారంతో సహా పత్రం యొక్క ఆంగ్లేతర (అనువాదం) వెర్షన్ కేవలం సూచన కోసం మాత్రమే. అనువదించబడిన మరియు ఆంగ్ల సంస్కరణల మధ్య ఏదైనా వ్యత్యాసం ఉన్నట్లయితే ఆంగ్ల సంస్కరణ ప్రబలంగా ఉంటుంది.
- భద్రత — అన్ని NXP ఉత్పత్తులు గుర్తించబడని దుర్బలత్వాలకు లోబడి ఉండవచ్చని లేదా తెలిసిన పరిమితులతో ఏర్పాటు చేయబడిన భద్రతా ప్రమాణాలు లేదా స్పెసిఫికేషన్లకు మద్దతు ఇవ్వవచ్చని కస్టమర్ అర్థం చేసుకున్నారు. కస్టమర్ యొక్క అప్లికేషన్లు మరియు ఉత్పత్తులపై ఈ దుర్బలత్వాల ప్రభావాన్ని తగ్గించడానికి వారి జీవితచక్రాల పొడవునా దాని అప్లికేషన్లు మరియు ఉత్పత్తుల రూపకల్పన మరియు ఆపరేషన్కు కస్టమర్ బాధ్యత వహిస్తాడు. కస్టమర్ యొక్క బాధ్యత కస్టమర్ యొక్క అప్లికేషన్లలో ఉపయోగించడం కోసం NXP ఉత్పత్తుల ద్వారా మద్దతు ఇచ్చే ఇతర ఓపెన్ మరియు/లేదా యాజమాన్య సాంకేతికతలకు కూడా విస్తరించింది. ఏదైనా దుర్బలత్వానికి NXP ఎటువంటి బాధ్యతను అంగీకరించదు. కస్టమర్ NXP నుండి సెక్యూరిటీ అప్డేట్లను క్రమం తప్పకుండా తనిఖీ చేయాలి మరియు తగిన విధంగా అనుసరించాలి. కస్టమర్ ఉద్దేశించిన అప్లికేషన్ యొక్క నియమాలు, నిబంధనలు మరియు ప్రమాణాలకు ఉత్తమంగా అనుగుణంగా ఉండే భద్రతా లక్షణాలతో ఉత్పత్తులను ఎంచుకుంటారు మరియు దాని ఉత్పత్తులకు సంబంధించి అంతిమ రూపకల్పన నిర్ణయాలను తీసుకుంటారు మరియు దాని ఉత్పత్తులకు సంబంధించిన అన్ని చట్టపరమైన, నియంత్రణ మరియు భద్రతా సంబంధిత అవసరాలకు అనుగుణంగా పూర్తి బాధ్యత వహిస్తారు. NXP ద్వారా అందించబడే ఏదైనా సమాచారం లేదా మద్దతు.
NXP ప్రోడక్ట్ సెక్యూరిటీ ఇన్సిడెంట్ రెస్పాన్స్ టీమ్ (PSIRT)ని కలిగి ఉంది (PSIRT@nxp.comలో చేరుకోవచ్చు) ఇది NXP ఉత్పత్తుల యొక్క భద్రతా లోపాలపై పరిశోధన, రిపోర్టింగ్ మరియు పరిష్కార విడుదలను నిర్వహిస్తుంది.
NXP BV — NXP BV ఒక ఆపరేటింగ్ కంపెనీ కాదు మరియు ఇది ఉత్పత్తులను పంపిణీ చేయదు లేదా విక్రయించదు.
ట్రేడ్మార్క్లు
గమనించండి: అన్ని సూచించబడిన బ్రాండ్లు, ఉత్పత్తి పేర్లు, సేవా పేర్లు మరియు ట్రేడ్మార్క్లు వాటి సంబంధిత యజమానుల ఆస్తి.
NXP — వర్డ్మార్క్ మరియు లోగో NXP BV యొక్క ట్రేడ్మార్క్లు
AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, ఆర్టిసన్, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed ఎనేబుల్డ్, నియాన్, POP,View, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, బహుముఖ — అనేవి US మరియు/లేదా ఆర్మ్ లిమిటెడ్ (లేదా దాని అనుబంధ సంస్థలు లేదా అనుబంధ సంస్థలు) యొక్క ట్రేడ్మార్క్లు మరియు/లేదా నమోదిత ట్రేడ్మార్క్లు. మరెక్కడా. సంబంధిత సాంకేతికత ఏదైనా లేదా అన్ని పేటెంట్లు, కాపీరైట్లు, డిజైన్లు మరియు వాణిజ్య రహస్యాల ద్వారా రక్షించబడవచ్చు. అన్ని హక్కులు ప్రత్యేకించబడ్డాయి.
- i.MX - NXP BV యొక్క ట్రేడ్మార్క్
- J-లింక్ — SEGGER మైక్రోకంట్రోలర్ GmbH యొక్క ట్రేడ్మార్క్.
Microsoft, Azure మరియు ThreadX — ఇవి Microsoft గ్రూప్ ఆఫ్ కంపెనీల ట్రేడ్మార్క్లు.
దయచేసి ఈ పత్రం మరియు ఇక్కడ వివరించిన ఉత్పత్తి(ల)కి సంబంధించిన ముఖ్యమైన నోటీసులు 'చట్టపరమైన సమాచారం' విభాగంలో చేర్చబడ్డాయని గుర్తుంచుకోండి.
© 2024 NXP BV
మరింత సమాచారం కోసం, దయచేసి సందర్శించండి: https://www.nxp.com
- విడుదల తేదీ: 19 ఏప్రిల్ 2024
- డాక్యుమెంట్ ఐడెంటిఫైయర్: AN14263
తరచుగా అడిగే ప్రశ్నలు
ప్ర: ఈ ఉత్పత్తి యొక్క ప్రధాన ప్రయోజనం ఏమిటి?
జ: సాధారణ LVGL GUI ఎక్స్తో AI&ML విజన్ అల్గారిథమ్ మోడల్ని ఉపయోగించి ముఖ గుర్తింపు ఫంక్షన్ను ప్రారంభించడం ప్రధాన ఉద్దేశ్యం.ampSLN-TLHMI-IOT బోర్డులో le.
ప్ర: ఈ అప్లికేషన్ నోట్ నుండి డెవలపర్లు ఎలా ప్రయోజనం పొందవచ్చు?
A: డెవలపర్లు అందించిన మాజీని ఉపయోగించి దశలవారీగా ఫ్రేమ్వర్క్లో ముఖ గుర్తింపును ఎలా అమలు చేయాలో తెలుసుకోవచ్చుampపరికర నిర్వాహకులు, HAL పరికరాలు మరియు ఈవెంట్ మెకానిజమ్లను అర్థం చేసుకోండి.
పత్రాలు / వనరులు
![]() |
NXP AN14263 ఫ్రేమ్వర్పై LVGL GUI ఫేస్ రికగ్నిషన్ని అమలు చేయండి [pdf] యూజర్ గైడ్ AN14263 ఫ్రేమ్వర్పై LVGL GUI ఫేస్ రికగ్నిషన్ను అమలు చేయండి, AN14263, ఫ్రేమ్వర్పై LVGL GUI ఫేస్ రికగ్నిషన్ను అమలు చేయండి, ఫ్రేమ్వర్లో LVGL GUI ఫేస్ రికగ్నిషన్, ఫ్రేమ్వర్పై ఫేస్ రికగ్నిషన్, ఫ్రేమ్వర్మ్ రికగ్నిషన్, రికగ్నిషన్, |