11 KiB
உங்கள் IoT சாதனத்திலிருந்து உங்கள் பொருள் கண்டறிவியை அழைக்கவும் - Wio Terminal
உங்கள் பொருள் கண்டறிவி வெளியிடப்பட்டவுடன், அதை உங்கள் IoT சாதனத்திலிருந்து பயன்படுத்தலாம்.
படத்தை வகைப்படுத்தும் திட்டத்தை நகலெடுக்கவும்
உங்கள் பொருள் கண்டறிவியின் பெரும்பாலான பகுதி நீங்கள் முந்தைய பாடத்தில் உருவாக்கிய பட வகைப்படுத்திய திட்டத்துடன் ஒரே மாதிரியானது.
பணிகள் - படத்தை வகைப்படுத்தும் திட்டத்தை நகலெடுக்கவும்
-
உங்கள் ArduCam-ஐ Wio Terminal-க்கு இணைக்கவும், தயாரிப்பு திட்டத்தின் பாடம் 2 இல் உள்ள படிகளைப் பின்பற்றவும்.
நீங்கள் கேமராவை ஒரு நிலையான இடத்தில் சரிசெய்ய விரும்பலாம், உதாரணமாக, கேபிளை ஒரு பெட்டியின் மேல் அல்லது டினின் மேல் தொங்கவிடுவதன் மூலம், அல்லது இரு பக்க டேப்பைப் பயன்படுத்தி கேமராவை ஒரு பெட்டியில் சரிசெய்து.
-
PlatformIO-ஐப் பயன்படுத்தி ஒரு புதிய Wio Terminal திட்டத்தை உருவாக்கவும். இந்த திட்டத்திற்கு
stock-counterஎன்று பெயரிடவும். -
கேமராவில் இருந்து படங்களைப் பிடிக்க தயாரிப்பு திட்டத்தின் பாடம் 2 இல் உள்ள படிகளைப் பின்பற்றவும்.
-
உங்கள் IoT சாதனத்திலிருந்து படங்களை வகைப்படுத்த தயாரிப்பு திட்டத்தின் பாடம் 2 இல் உள்ள படிகளைப் பின்பற்றவும். இந்த குறியீட்டின் பெரும்பகுதி பொருள்களை கண்டறிய மீண்டும் பயன்படுத்தப்படும்.
வகைப்படுத்தும் குறியீட்டிலிருந்து படத்தை கண்டறியும் குறியீட்டிற்கு மாற்றவும்
படங்களை வகைப்படுத்த நீங்கள் பயன்படுத்திய குறியீடு பொருள்களை கண்டறிய பயன்படுத்தப்படும் குறியீட்டுடன் மிகவும் ஒத்ததாக உள்ளது. முக்கிய வேறுபாடு Custom Vision-இல் இருந்து பெறப்பட்ட URL மற்றும் அழைப்பின் முடிவுகள்.
பணிகள் - வகைப்படுத்தும் குறியீட்டிலிருந்து படத்தை கண்டறியும் குறியீட்டிற்கு மாற்றவும்
-
main.cppகோப்பின் மேல் பின்வரும் include directive-ஐ சேர்க்கவும்:#include <vector> -
classifyImageசெயல்பாட்டைdetectStockஎன்று பெயரிடவும், செயல்பாட்டின் பெயர் மற்றும்buttonPressedசெயல்பாட்டில் உள்ள அழைப்பை மாற்றவும். -
detectStockசெயல்பாட்டின் மேல், குறைந்த சாத்தியக்கூறுகளைக் கொண்ட எந்தவொரு கண்டறிவுகளையும் வடிகட்ட ஒரு threshold-ஐ அறிவிக்கவும்:const float threshold = 0.3f;ஒரு பட வகைப்படுத்தி ஒவ்வொரு டேக்கிற்கும் ஒரு முடிவை மட்டுமே திருப்பும், ஆனால் பொருள் கண்டறிவி பல முடிவுகளை திருப்பும், எனவே குறைந்த சாத்தியக்கூறுகளைக் கொண்டவை வடிகட்டப்பட வேண்டும்.
-
detectStockசெயல்பாட்டின் மேல், முன்னறிவிப்புகளை செயல்படுத்த ஒரு செயல்பாட்டை அறிவிக்கவும்:void processPredictions(std::vector<JsonVariant> &predictions) { for(JsonVariant prediction : predictions) { String tag = prediction["tagName"].as<String>(); float probability = prediction["probability"].as<float>(); char buff[32]; sprintf(buff, "%s:\t%.2f%%", tag.c_str(), probability * 100.0); Serial.println(buff); } }இது முன்னறிவிப்புகளின் பட்டியலை எடுத்து, அவற்றை சீரியல் மானிட்டரில் அச்சிடுகிறது.
-
detectStockசெயல்பாட்டில், முன்னறிவிப்புகளை மடக்கி மடக்கி செல்லும்forloop-இன் உள்ளடக்கத்தை பின்வருமாறு மாற்றவும்:std::vector<JsonVariant> passed_predictions; for(JsonVariant prediction : predictions) { float probability = prediction["probability"].as<float>(); if (probability > threshold) { passed_predictions.push_back(prediction); } } processPredictions(passed_predictions);இது முன்னறிவிப்புகளை மடக்கி மடக்கி செல்லும் போது சாத்தியக்கூறுகளை threshold-இன் மீது ஒப்பிடுகிறது. threshold-ஐ விட அதிக சாத்தியக்கூறுகளைக் கொண்ட அனைத்து முன்னறிவிப்புகளும் ஒரு
list-க்கு சேர்க்கப்பட்டுprocessPredictionsசெயல்பாட்டிற்கு அனுப்பப்படும். -
உங்கள் குறியீட்டை பதிவேற்றவும் மற்றும் இயக்கவும். கேமராவை ஒரு தட்டில் உள்ள பொருட்களுக்குப் பாய்ந்து C பொத்தானை அழுத்தவும். நீங்கள் சீரியல் மானிட்டரில் வெளியீட்டை காணலாம்:
Connecting to WiFi.. Connected! Image captured Image read to buffer with length 17416 tomato paste: 35.84% tomato paste: 35.87% tomato paste: 34.11% tomato paste: 35.16%💁 உங்கள் படங்களுக்கு ஏற்ற ஒரு மதிப்பிற்கு
threshold-ஐ சரிசெய்ய வேண்டியிருக்கலாம்.எடுத்த படத்தை நீங்கள் காண முடியும், மேலும் இந்த மதிப்புகளை Custom Vision இல் Predictions தாவலில் காணலாம்.
💁 இந்த குறியீட்டை code-detect/wio-terminal கோப்புறையில் காணலாம்.
😀 உங்கள் stock counter திட்டம் வெற்றிகரமாக முடிந்தது!
குறிப்பு:
இந்த ஆவணம் Co-op Translator என்ற AI மொழிபெயர்ப்பு சேவையைப் பயன்படுத்தி மொழிபெயர்க்கப்பட்டுள்ளது. நாங்கள் துல்லியத்திற்காக முயற்சிக்கின்றோம், ஆனால் தானியங்கி மொழிபெயர்ப்புகளில் பிழைகள் அல்லது தவறான தகவல்கள் இருக்கக்கூடும் என்பதை கவனத்தில் கொள்ளவும். அதன் தாய்மொழியில் உள்ள மூல ஆவணம் அதிகாரப்பூர்வ ஆதாரமாக கருதப்பட வேண்டும். முக்கியமான தகவல்களுக்கு, தொழில்முறை மனித மொழிபெயர்ப்பு பரிந்துரைக்கப்படுகிறது. இந்த மொழிபெயர்ப்பைப் பயன்படுத்துவதால் ஏற்படும் எந்த தவறான புரிதல்கள் அல்லது தவறான விளக்கங்களுக்கு நாங்கள் பொறுப்பல்ல.
