engiAI

  • आवश्यकताएं
विंडोज 10/11 x64। सीपीयू और जीपीयू का विश्लेषण - RTX 50+ संस्करण।

⬇ engiAI.rar (900 MB)

⬇ engiAI-ZONA-PARA-HI.pdf (5.8 MB)

⬇ engiAI-doc-new-HI.pdf (12 MB)

SICK IDS Camera Manager ⬇ ids-software-suite-win-4.96.1.zip (184 MB)

SICK IDS Camera Manager - link 2

पंजीकरण

engiAI के लिए आवेदन करें

EngiAI (engiAI Ethernet Systemयह एक डेस्कटॉप एप्लिकेशन है जो तकनीकी दृष्टि (टेक्निकल विजन) पर आधारित है और इसका उपयोग औद्योगिक निरीक्षण और उत्पादन लाइन पर उत्पादों की गुणवत्ता जांच के लिए किया जाता है। यह C# (.NET 9, WinForms) में लिखा गया है और विंडोज x64 के लिए एक स्टैंडअलोन (self-contained) AOT निष्पादन योग्य फ़ाइल के रूप में बनाया गया है।

  • यह क्या करता है
कैमरों से डेटा प्राप्त करना: औद्योगिक Hikrobot (SDK), USB/DirectShow, IDS uEye, और साथ ही OpenCV के माध्यम से Android कैमरे। एक साथ कई कैमरों का उपयोग।

AI निरीक्षण: YOLO (ONNX Runtime / GPU-CUDA या CPU) नामक न्यूरल नेटवर्क वास्तविक समय में वस्तुओं और दोषों की पहचान करते हैं।

ROI क्षेत्र: अनुकूलन योग्य नियंत्रण क्षेत्र, जिनमें कक्षाएं और नियम शामिल हैं, नामित क्षेत्र, और एक सूची।

रिजेक्टर (डिस्प्ले): यह, आर्टिफिशियल इंटेलिजेंस (AI) के परिणाम के आधार पर, एक अलग आउटपुट (त्रुटि को रीसेट करना) के लिए संकेत देता है, जिसमें पिनआउट का कॉन्फ़िगरेशन और एक टेस्टर के साथ जांच शामिल है।

ट्रिगर: बाहरी सिग्नल के आधार पर फ्रेम की शूटिंग (डिस्क्रेट इनपुट, एन्कोडर)।

मॉडल को प्रशिक्षित करना: डेटासेट, सिंथेटिक डेटा (घूर्णन/दर्पण/चमक), YOLO11 को सीधे प्रोग्राम से प्रशिक्षित करना।

भंडारण: स्थानीय SQLite डेटाबेस (rejectors.db) - मॉडल, क्षेत्र, ट्रिगर लॉग, कैमरों की स्थिति।

  • लाइसेंसिंग
एकल संकलन: मोड (परीक्षण / लाइसेंस / प्रतिबंध)

बिना लाइसेंस के - 20 मिनट के लिए परीक्षण मोड; लाइसेंस के साथ - बिना किसी प्रतिबंध के।

हार्डवेयर के साथ एकीकरण, सभी चल रहे उदाहरणों पर नियंत्रण।

engiAI Ethernet System
ज़ोन-पेयर - प्रिंटेड सर्किट बोर्ड और असेंबली का दृश्य निरीक्षण

engiAI का इंटरफ़ेस हिन्दी में उपलब्ध है: इस मैनुअल में बटनों और फ़ील्ड के नाम वैसे ही दिए गए हैं जैसे वे प्रोग्राम में दिखाई देते हैं।

निरीक्षण का मुख्य उद्देश्य - विभिन्न क्षेत्रों के बीच तुलना करना। सर्किट पर चिह्नित क्षेत्र होते हैं - प्रत्येक क्षेत्र की जांच की जानी होती है। एक मॉडल प्रत्येक क्षेत्र के लिए "सामान्य / विसंगति" के दो वर्ग रखता है और केवल उन दो के बीच तुलना करता है। उदाहरण के लिए, मैनुअल में दो क्षेत्र हैं: C30 संधारित्र और BR1 ब्रिज; वास्तविक सर्किट में, इनकी संख्या सैकड़ों तक हो सकती है, लेकिन विधि समान है।
सिंथेटिक डेटा - स्वचालित रूप से आधार से तत्व को स्थानांतरित करना। यह प्रोग्राम घटक को साथ ही, आस-पास के सर्किट बोर्ड के हिस्से (जैसे, लाइनें, ट्रेसेस, आधार का रंग) के साथ लेता है, क्षेत्र को घटक के आकार तक कम कर देता है और उसे स्थानांतरित या घुमाता है। दोषों को प्रशिक्षण के लिए दो क्लिक में, एक भी दोषपूर्ण बोर्ड के बिना, बनाया जा सकता है।
उपयोगकर्ता पुस्तिका: कैमरा कैसे कनेक्ट करें, क्षेत्र को चिह्नित करें, संरेखण क्षेत्र को लॉक करें, सामान्य और असामान्य स्थितियों को रिकॉर्ड करें, मॉडल को प्रशिक्षित करें, निरीक्षण शुरू करें और इसे रिजेक्टर से कनेक्ट करें: SICK और HIKROBOT कैमरों की ध्वनि चेतावनी, डिस्क्रीट आउटपुट और TCP-संदेशों के माध्यम से रोबोट या पीएलसी के साथ।
पहला चरणकैमरा
चरण 2क्षेत्रों का जाल
चरण 3सामान्य और असामान्य मामले
चरण 4प्रशिक्षण
चरण 5निरीक्षण
चरण 6आउटपुट और TCP
सभी स्क्रीनशॉट एक कार्यरत प्रोग्राम से लिए गए हैं: vtlift, USB कैमरा 3264×2448, मॉडल model_4, दो क्षेत्रों के लिए 256×256 (C30 कैपेसिटर और BR1 ब्रिज), जो ग्रे शेड्स में प्रशिक्षित है। यह प्रोग्राम HIKROBOT (GigE और USB3), SICK picoCam (uEye), USB/वेब कैम और IP कैमरों के साथ RTSP के माध्यम से काम करता है। संस्‍करण 3 - सितंबर 2026।

सामग्री

  1. 1. engiAI और ज़ोन-पेयर विधि क्यों?
  2. 1.1. संपूर्ण छवि के वर्गीकरण की तुलना में, इस विधि का क्या लाभ है?
  3. 1.2. गति: एआई केवल प्रासंगिक अंशों पर ध्यान केंद्रित करता है।
  4. 1.3. आप किस स्तर की सटीकता की उम्मीद कर सकते हैं: अपने कैमरे के आधार पर गणना
  5. 1.4. त्वरित शुरुआत: सेटिंग्स समायोजित, क्षेत्र और मॉडल कुछ क्लिक में।
  6. 2. कार्यक्रम का इंटरफ़ेस एक मिनट में
  7. 3. कैमरे: कनेक्शन और सेटअप
  8. 3.1. कौन से कैमरे समर्थित हैं
  9. 3.2. कैमरे का विंडो: जोड़ें, फिर से कनेक्ट करें, हटाएं
  10. 3.3. HIKROBOT और SICK के लिए "कैमरा" टैब
  11. 3.4. कैमरा टैब: USB/वेबकैम के लिए
  12. 3.5. संरक्षित कैमरा सेटिंग्स (सेट)
  13. 3.6. GigE नेटवर्क और फिर से कनेक्शन
  14. 4. ज़ोन-पेयर मॉडल: ग्रिड से प्रशिक्षित मॉडल तक
  15. 4.1. इस विधि की संरचना: एक मॉडल, प्रत्येक क्षेत्र के लिए एक वर्ग।
  16. 4.2. एक मॉडल बनाएं
  17. 4.3. भुगतान के लिए क्षेत्रों को चिह्नित करना
  18. 4.4. संदर्भ छवि को चिह्नित करें: संरेखण क्षेत्र
  19. 4.5. क्षेत्र-वार छवियां: सामान्य और उसके सिंथेटिक डेटा
  20. 4.6. सिंथेटिक डेटा में दो बार क्लिक करने पर त्रुटि: तत्व आधार के साथ स्थानांतरित हो जाता है।
  21. 4.7. असामान्य क्षेत्र: सेटिंग्स का विकल्प
  22. 4.8. संदर्भ छवि: जिसमें वेल्डिंग के क्षेत्र और क्षेत्र संपादक शामिल हैं।
  23. 4.9. मॉडल को प्रशिक्षित करना
  24. 5. निरीक्षण
  25. 5.1. मॉडल का चयन करें और क्षेत्रों की जांच करें
  26. 5.2. क्षेत्र की पहचान की सीमा
  27. 5.3. गतिशील कन्वेयर: किसी भी स्थिति में उपयोग करने योग्य
  28. 5.4. किस सिग्नल का विश्लेषण करना है
  29. 5.5. पीले क्षेत्र: क्लिक करके क्षेत्र को बंद करें
  30. 5.6. स्क्रीन और कंसोल पर क्या दिखाई देता है
  31. 6. ट्रिगर: कैमरे के इनपुट पर बाहरी सेंसर
  32. 7. आउटपुट: रिजेक्टर, अलग-अलग कैमरों के लिए आउटपुट और TCP
  33. 7.1. मार्गदर्शिका: आउटपुट: संपर्क और टेस्टर के साथ जांच
  34. 7.2. आउटपुट विंडो: क्षेत्र के लिए नियम
  35. 7.3. TCP-पैकेट को रोबोट या पीएलसी को भेजना
  36. 7.4. कैमरे से अलग-अलग प्रकार की छवियां
  37. 7.5. ध्वनि चेतावनी: प्रत्येक क्षेत्र के लिए अपनी ध्वनि
  38. 7.6. क्रियान्वयन लॉग और डेटाबेस
  39. 8. अन्य मोड और कार्य
  40. 9. सेटिंग्स, कंसोल, आवश्यकताएं और लाइसेंस
  41. 10. एक संक्षिप्त जाँच सूची और खराबी की पहचान

इस मैनुअल का उपयोग कैसे करें: पहला भाग बताता है कि इस विधि का उपयोग क्यों करना है और इससे किस परिणाम की उम्मीद की जा सकती है। भाग 3-5 एक खाली प्रोग्राम से लेकर एक कार्यात्मक निरीक्षण तक की प्रक्रिया को दर्शाते हैं, और आपको उन्हें क्रम से पूरा करना चाहिए। भाग 6-7 में सेंसर, आउटपुट और TCP को कनेक्ट करने के निर्देश दिए गए हैं। भाग 8-10 में अन्य सुविधाओं, सेटिंग्स और चेकलिस्ट दी गई हैं।

1. engiAI और ज़ोन-पेयर विधि क्यों?

engiAI Ethernet System - एक विजुअल निरीक्षण कार्यक्रम जो उत्पादन लाइन के लिए है। यह एक औद्योगिक या सामान्य कैमरे से एक फ्रेम लेता है, उसे क्षेत्रों में विभाजित करता है, प्रत्येक क्षेत्र की जांच एक प्रशिक्षित न्यूरल नेटवर्क द्वारा करता है, और परिणाम को एक क्रिया में बदल देता है: कैमरे के एक डिस्क्रीट आउटपुट पर सिग्नल, एक रोबोट या पीएलसी को एक टीसीपी संदेश, या लॉग में रिकॉर्ड। "ज़ोन-पेयर" विधि उन उत्पादों के लिए बनाई गई है, जिनमें "सही" तरीके से हर जगह एक निश्चित विशेषता होती है: प्रिंटेड सर्किट, असेंबली, लॉजमेंट में पुर्जों के सेट, और पैकेजिंग।

1 मॉडल
सभी क्षेत्रों के लिए, अलग-अलग मॉडलों के बजाय
2 क्षेत्र
उदाहरण के तौर पर: C30 कैपेसिटर और BR1 ब्रिज। इस सर्किट में सैकड़ों घटक हो सकते हैं।
≈5 px
"सामान्य / दोष" सीमा पर सेट किए गए तत्व की स्थिति।
2 बार क्लिक करें
लाइव फ्रेम से लेकर सामान्य और सिंथेटिक दोषों तक, प्रशिक्षण के लिए:

1.1. यह विधि, पूरे फ्रेम के वर्गीकरण की तुलना में क्या लाभ प्रदान करती है?

एक सामान्य दृष्टिकोण यह है कि पूरे फ्रेम या सभी क्षेत्रों पर एक ही मॉडल का उपयोग किया जाए, जिसमें "सामान्य / विसंगति" के दो वर्ग हों। लेकिन यह प्लेट पर काम नहीं करता: प्लेट के क्षेत्र 2 में BR1 पुल के नीचे की खाली जगह एक दोष है, जबकि प्लेट के किसी अन्य कोने में भी इसी तरह की खाली जगह सामान्य हो सकती है। एक ही मॉडल में इन दोनों को व्यक्त करना संभव नहीं है। दूसरा चरम दृष्टिकोण यह है कि प्रत्येक घटक के लिए एक अलग मॉडल का उपयोग किया जाए, जिसके लिए कई प्रशिक्षण और मेमोरी में कई फ़ाइलें आवश्यक होंगी।

ज़ोन-पेयर इसे इस तरह हल करता है: एक मॉडल होता है, और कक्षाओं की संख्या उस क्षेत्र की संख्या के बराबर होती है। "क्षेत्र" एक ऐसा आयत होता है जो एक घटक के चारों ओर होता है। "कक्षा" एक फ़ोल्डर होता है जिसमें चित्र होते हैं, जिन पर नेटवर्क सीखता है। प्रत्येक क्षेत्र का अपना युग्म होता है: "zone_001" (सामान्य क्षेत्र 1, उदाहरण के लिए, संधारित्र C30) और "zone_001_anomaly" (दोष क्षेत्र 1); "zone_002" और "zone_002_anomaly" - BR1 पुल। जब क्षेत्र 1 की जाँच की जाती है, तो प्रोग्राम केवल उसके युग्म पर ध्यान केंद्रित करता है, क्षेत्र 2 के बारे में उत्तरों का उपयोग नहीं किया जाता है। असामान्य कक्षाओं की आवश्यकता नहीं है: दोष क्षेत्र के स्वरूप को बदल देता है, और "सामान्य" में विश्वास स्वतः ही कम हो जाता है; लेकिन सिंथेटिक डेटा (4.6 अनुभाग) के साथ, उन्हें एक क्लिक में बनाया जा सकता है और वे विश्वसनीयता में उल्लेखनीय रूप से वृद्धि करते हैं।

उदाहरण में, लाइव फ्रेम: दो क्षेत्र - BR1 पुल ऊपर दाईं ओर और C30 कैपेसिटर नीचे बाईं ओर, दोनों हरे रंग के और "सामान्य" लेबल के साथ। नीले रेखाएं संरेखण क्षेत्र की सीमाएं हैं, नीले बिंदु वे опорные बिंदु हैं जिनके द्वारा फ्रेम में प्लेट का पता लगाया जाता है।
उदाहरण में, लाइव फ्रेम: दो क्षेत्र - BR1 पुल ऊपर दाईं ओर और C30 कैपेसिटर नीचे बाईं ओर, दोनों हरे रंग के और "सामान्य" लेबल के साथ। नीले रेखाएं संरेखण क्षेत्र की सीमाएं हैं, नीले बिंदु वे опорные बिंदु हैं जिनके द्वारा फ्रेम में प्लेट का पता लगाया जाता है।
एक दूसरे के बीच का निर्णय17 नंबर क्षेत्र की जांच में, नेटवर्क से केवल दो आउटपुट पर ध्यान दिया जाता है: "सामान्य क्षेत्र 17" और "क्षेत्र 17 का विसंगति"। अन्य सौ वर्ग इस निर्णय में शामिल नहीं हैं, इसलिए समान पड़ोसी क्षेत्र भी निर्णय को प्रभावित नहीं करते हैं।
किसी अन्य नेटवर्क में, यह सामान्य रूप से काम नहीं करेगायदि दो या अधिक नेटवर्क क्षेत्र 10% से कम आउटपुट उत्पन्न करते हैं, तो उस क्षेत्र को "अज्ञात" माना जाता है। इसका मतलब है कि यह एक अलग नेटवर्क है या नेटवर्क में कोई गड़बड़ी है। इस प्रकार के क्षेत्र को दोषपूर्ण माना जाता है, न कि "उच्च संभावना के साथ सामान्य"।
दोष क्षेत्र के अनुरूप है सिंथेटिक दोषों का आकार और स्थिति क्षेत्र के आकार के सापेक्ष होती है। 8 मेगापिक्सल के एक पूरे फ्रेम में 0.5 मिलीमीटर पर किसी तत्व की विस्थापन को पहचानना मुश्किल है, जबकि 128×128 पिक्सेल के क्षेत्र में, यह 5-6 पिक्सेल के बराबर है, जो एक महत्वपूर्ण अंतर है।
पूर्ण अनुमति108–137 पिक्सेल का क्षेत्र लगभग बिना किसी बदलाव के 128×128 नेटवर्क पर भेजा जाता है। पूरे फ्रेम को उसी 128 पिक्सेल में संपीड़ित करना होगा, जिससे कई गुना विवरण खो जाएंगे।
लक्ष्य सीमा "सामान्य / दोष"सिंथेटिक डेटा सामान्य में 0-2 पिक्सेल का विचलन होता है, जबकि सिंथेटिक डेटा में 5 पिक्सेल का विचलन होता है। नेटवर्क इस सीमा को सीखता है, न कि प्रकाश में होने वाले यादृच्छिक अंतरों को।
लक्ष्यित परिणामप्रत्येक क्षेत्र में एक स्थिर पता (मॉडल, तालिका, सेल) और एक नाम होता है। आप किसी भी क्षेत्र पर अपना नियम लागू कर सकते हैं, जैसे कि ध्वनि चेतावनी, क्षेत्र संख्या के साथ TCP संदेश भेजना, या कैमरे से अलग-अलग आउटपुट।
किसी भी स्थिति में मापऑपरेटर कैमरे में संरेखण क्षेत्र को चिह्नित करता है - सर्किट बोर्ड पर विवरण वाले क्षेत्र। प्रत्येक फ्रेम को संदर्भ छवि के साथ संरेखित किया जाता है, और निरीक्षण क्षेत्र नए सर्किट बोर्ड पर होते हैं, भले ही इसे कोण पर रखा गया हो, जिसमें 180° भी शामिल है (अनुभाग 4.4)।
प्लेट से दोष सिंथेटिक दोष - यह एक चित्रित धब्बा नहीं है, बल्कि एक स्थानांतरित या घुमाई हुई वस्तु, साथ ही आधार का एक टुकड़ा है। मॉडल "वस्तु ↔ प्लेट" के संबंध को सीखता है, न कि धब्बे के रंग को। यह दो क्लिक (अनुभाग 4.6) में किया जाता है।
समस्याओं की जानकारी धीरे-धीरे दी जाती हैदोष केवल उन जगहों पर जोड़े जाते हैं जहाँ वास्तव में दोष मौजूद होता है: सोल्डरिंग के पुल, गायब घटक, विस्थापन, खरोंच। मॉडल को फिर से प्रशिक्षित किया जाता है, जबकि ग्रिड वही रहता है।

1.2. गति: AI केवल आवश्यक भागों पर ध्यान केंद्रित करता है

न्यूरल नेटवर्क कभी भी पूरे फ्रेम को नहीं देखता। प्रत्येक क्षेत्र के लिए, केवल उसकी आयत काटा जाता है, और क्षेत्र की संख्या दो वर्गों में से एक का चयन करती है। एक ही फ्रेम के क्षेत्रों को समानांतर (अधिकतम चार थ्रेड्स) माना जाता है, और सभी क्षेत्रों के परिणाम एक साथ स्क्रीन पर प्रदर्शित होते हैं, न कि एक-एक करके।

  • विश्लेषण की गति समय के अनुसार निर्धारित की जाती है। "कैमरे" टैब पर "सेकंड में विश्लेषण (AI)" स्लाइडर का मतलब है कि प्रति सेकंड ठीक N विश्लेषण किए जा रहे हैं, न कि "हर N-वें फ्रेम"। यह कैमरा की आवृत्ति और अनुमान के समय पर निर्भर करता है।
  • डिफ़ॉल्ट रूप से GPU का उपयोग होता है। यह ONNX रनटाइम और CUDA के माध्यम से इन्फेरेंस करता है। यदि NVIDIA ग्राफिक्स कार्ड नहीं है, तो प्रोग्राम स्वचालित रूप से प्रोसेसर पर स्विच हो जाता है और इसके बारे में जानकारी स्थिति में प्रदर्शित करता है (GPU (CUDA) या CPU)।
  • बिना कचरे के बफर। मेमोरी को एक बार में प्रत्येक स्ट्रीम में अलग-अलग हिस्सों में विभाजित किया जाता है और फिर से उपयोग किया जाता है; विश्लेषण का समय एक फ्रेम से दूसरे फ्रेम में नहीं बदलता।
  • मॉडल को कार्य के अनुसार अनुकूलित किया गया। ज़ोन-पेयर प्रोग्राम स्वचालित रूप से इनपुट आकार को 128 पिक्सेल पर सेट करता है और YOLO11 नेटवर्क का उपयोग करता है, जिसका आकार "s" है। इस कॉन्फ़िगरेशन में, ज़ोन का आकार लगभग स्केल नहीं होता है, और नेटवर्क में सैकड़ों क्लास जोड़े को संसाधित करने के लिए पर्याप्त क्षमता होती है।
  • लाइव कन्वेयर, कर्मचारियों की बचत करता है। जब कोई कर्मचारी कन्वेयर पर काम करता है, तो वह एक निश्चित अवधि के लिए काम पर रहता है, जिससे कर्मचारियों की आवश्यकता कम होती है। सर्किट बोर्ड की खोज और उसे एक बार व्यवस्थित करने के बाद ही कटिंग की प्रक्रिया शुरू होती है।
  • यह प्रदर्शन विश्लेषण में बाधा नहीं डालता। यह टाइल 25 बार प्रति सेकंड से अधिक नहीं खींची जाती है और केवल कैमरे की नई फ़्रेम के आधार पर, छवि को स्क्रीन पर प्रदर्शित होने तक टाइल के आकार में छोटा किया जाता है, जबकि लॉग बैकग्राउंड थ्रेड द्वारा फ़ाइल में लिखा जाता है। 8-मेगापिक्सेल फ़्रेम और सैकड़ों क्षेत्रों के साथ, इंटरफ़ेस 8-मेगापिक्सेल फ़्रेम पर भी प्रतिक्रियाशील रहता है।

वीडियो के ऊपर स्थित स्टेटस बार में वास्तविक संख्याएं दिखाई देती हैं: fps (प्रति सेकंड फ्रेम) और अंतिम विश्लेषण के बाद की मिलीसेकंड, साथ ही Eff - प्रति सेकंड कितने विश्लेषण वास्तव में हुए।

1.3. आप किस स्तर की सटीकता की उम्मीद कर सकते हैं: अपने कैमरे के साथ गणना करें

यह प्रोग्राम "0.5 मिमी" की सटीकता की गारंटी नहीं देता, जो कैमरे और लेंस पर निर्भर करता है। विचलन की संवेदनशीलता यह निर्धारित होती है कि प्रति मिलीमीटर कितने पिक्सेल हैं, और मॉडल को किस सीमा तक प्रशिक्षित किया गया है। इसे दो पंक्तियों में दर्शाया गया है:

px/मिमी = फ्रेम की चौड़ाई (पिक्सेल में) ÷ दृश्य क्षेत्र की चौड़ाई (मिमी में)
न्यूनतम दृश्यमान बदलाव लगभग 5 पिक्सेल है, जो (पिक्सेल प्रति मिलीमीटर) के अनुपात से मापा जाता है।

संख्या 5 पिक्सेल - अनुशंसित असामान्यताओं के सेटिंग्स में सिंथेटिक विचलन की निचली सीमा (इसकी विचलन सामान्य रूप से 0-2 पिक्सेल है)। डिफ़ॉल्ट सेटिंग्स 11 पिक्सेल/मिमी पर आधारित हैं: इस पैमाने पर, 0.5 मिमी का अर्थ है 5-6 पिक्सेल, जो कि विकास के दौरान तय की गई लक्ष्य के अनुरूप है। अपनी मानों को डालें:

कैमरा (फ्रेम की चौड़ाई)दृश्य क्षेत्र 100 मिमी200 मिमी300 मिमी400 मिमी
3264 पिक्सेल (USB 8 मेगापिक्सेल, जैसे कि तस्वीरों में)0.03 मिमी/पिक्सेल → विचलन ≈ 0.15 मिमी0.06 → ≈ 0.3 मिमी0.09 → ≈ 0.45 मिमी0.12 → ≈ 0.6 मिमी
2448 पिक्सेल (HIKROBOT 5 मेगापिक्सेल)0.04 → ≈ 0.2 मिमी0.08 → ≈ 0.4 मिमी0.12 → ≈ 0.6 मिमी0.16 → ≈ 0.8 मिमी
1920 पिक्सेल (SICK picoCam, HIKROBOT 2 मेगापिक्सेल)0.05 → ≈ 0.25 मिमी0.10 → ≈ 0.5 मिमी0.16 → ≈ 0.8 मिमी0.21 → ≈ 1.0 मिमी
यह महत्वपूर्ण है। यह एक निचला-ऊपरी सीमा का मूल्यांकन है, जो तेजी से बदलते फ्रेम और स्थिर प्रकाश में किसी तत्व की स्थिति का निर्धारण करता है। वास्तविक सीमा की जांच करने के लिए, "ज़ोन-पेयर: क्षेत्र ↔ मॉडल" बटन और सीमा पहचान (अनुभाग 5.2) का उपयोग करें: प्रत्येक क्षेत्र की अपनी सीमाएं होती हैं, इसलिए प्रत्येक क्षेत्र की अपनी सटीकता होती है। जितना छोटा क्षेत्र होगा और कैमरे में जितने अधिक पिक्सेल होंगे, मॉडल उतनी ही छोटी त्रुटि को पहचान पाएगा।

1.4. त्वरित शुरुआत: सेटिंग्स पहले से ही समायोजित, क्षेत्र और मॉडल कुछ क्लिक में

यह विधि इस बात पर केंद्रित है कि एक ऐसे व्यक्ति को, जिसके पास मशीन लर्निंग का अनुभव नहीं है, एक कामकाजी मॉडल एक ही शिफ्ट में मिल जाए। जो भी पहले से समायोजित किया जा सकता है, वह पहले से ही समायोजित है और प्रोग्राम के डेटाबेस में संग्रहीत है:

  • मिनटों में क्षेत्र निर्धारित करना। ROI संपादक में, उस क्षेत्र के चारों ओर एक फ्रेम खींचें और क्षेत्र का आकार (उदाहरण के लिए, 256 पिक्सेल) निर्दिष्ट करें। यदि आपके पास कई वस्तुएं हैं जो एक सीधी रेखा में व्यवस्थित हैं, तो पूरे भुगतान पर फ्रेम खींचें - प्रोग्राम स्वचालित रूप से ग्रिड की पंक्तियों और स्तंभों की गणना करेगा।
  • सिंथेटिक डेटा: सामान्य और त्रुटि पूर्व-निर्धारित हैं। "डिफ़ॉल्ट," "तत्वों का स्थानांतरण," और "रंग और पेंट" बटन पूर्वनिर्धारित प्रोफाइल बदलते हैं। फ़ाइलों की संख्या, कैमरे से प्राप्त फ़्रेम, और अनुमानित समय "शुरू करें" बटन दबाने से पहले प्रदर्शित होते हैं।
  • प्रशिक्षण पैरामीटर स्वचालित रूप से निर्धारित किए जाते हैं। पहली छवि के बाद, प्रोग्राम आकार 128, मॉडल आकार s, युगों 50, बैच 64 सेट करता है, और प्रशिक्षण के दौरान, उन डेटा वृद्धि को अक्षम कर देता है जो असामान्य वर्गों के साथ संघर्ष करते हैं।
  • कैमरा बटन के माध्यम से सेट किया जा सकता है। "स्वचालित रूप से AI (फ्रेम के आधार पर) के लिए सेटिंग्स" एक्सपोजर, कंट्रास्ट, गामा और व्हाइट बैलेंस को समायोजित करता है; USB कैमरों के लिए "फॉर्म के आधार पर स्वचालित चयन" और "पैरामीटर को लॉक करना" विकल्प उपलब्ध हैं।
  • कैमरे की सेटिंग्स के पैक। पूर्व-निर्धारित सेटिंग्स को एक नाम के साथ सहेजा जाता है और सूची से चुना जा सकता है। कैमरा उन्हें तुरंत स्वीकार करता है और अपने मेमोरी में संग्रहीत करता है।
  • एक ONNX फ़ाइल आउटपुट के रूप में। प्रशिक्षित मॉडल स्वचालित रूप से निर्यात किया जाता है और तुरंत निरीक्षण के लिए आवंटित किया जाता है, जिसमें कोई अतिरिक्त कदम शामिल नहीं हैं।

पूरा प्रक्रिया: कैमरा कनेक्ट करें → मॉडल बनाएं → क्षेत्रों को चिह्नित करें → संरेखण क्षेत्र को कैप्चर करें → "क्षेत्रों के अनुसार" कई ठीक किए गए बोर्डों पर → "क्षेत्रों में विसंगतियां" → AI मॉडल को प्रशिक्षित करें → "निरीक्षण" टैब। इसके बाद, क्षेत्रों पर ध्वनि, आउटपुट और TCP को जोड़ना बाकी है। शुरुआत के लिए आवश्यक: विंडोज 10/11 वाला कंप्यूटर (तेजी से निरीक्षण के लिए - NVIDIA ग्राफिक्स कार्ड), कैमरा, एक ठीक किया हुआ बोर्ड और प्रशिक्षण वातावरण स्थापित करने के लिए एक बार इंटरनेट। दोषपूर्ण बोर्डों की आवश्यकता नहीं है।

2. प्रोग्राम इंटरफेस एक मिनट में

मुख्य विंडो को दो भागों में विभाजित किया गया है। बाईं ओर - कैमरों से लाइव वीडियो और उसके ऊपर एक स्थिति बार। दाईं ओर - एक पैनल जिसमें सभी नियंत्रण मौजूद हैं। भागों के बीच की सीमा को ड्रैग किया जा सकता है; सभी विंडो के आकार, स्थिति और लेआउट को प्रोग्राम अपने डेटाबेस में याद रखता है।

मुख्य विंडो: बाईं ओर, दो क्षेत्रों (दोनों हरे रंग के - "सामान्य") वाले सर्किट बोर्ड की लाइव छवि, और दाईं ओर "Inspect" टैब जिसमें model_4\best.onnx मॉडल दिखाया गया है। लाइव कन्वेयर चालू है, और "सामान्य · 112 पॉइंट्स" का इंडिकेटर दिखाई दे रहा है।
मुख्य विंडो: बाईं ओर, दो क्षेत्रों (दोनों हरे रंग के - "सामान्य") वाले सर्किट बोर्ड की लाइव छवि, और दाईं ओर "Inspect" टैब जिसमें model_4\best.onnx मॉडल दिखाया गया है। लाइव कन्वेयर चालू है, और "सामान्य · 112 पॉइंट्स" का इंडिकेटर दिखाई दे रहा है।

वीडियो के ऊपर बटन

बटनयह क्या खोलता है
वीडियो को छिपाएंस्क्रीन से चित्र हटा देता है। केवल ड्राइंग को संसाधित किया जाता है, इसलिए ऊर्जा की बचत होती है।
आउटपुटसंदर्भ विंडो: HIKROBOT और SICK कैमरों के डिस्क्रीट आउटपुट के संपर्क, टेस्टर के साथ जांच, लोड को कनेक्ट करना (अनुभाग 7.1)।
कैमरे"कनेक्टेड कैमरों की सेटिंग्स" विंडो: कैमरों को जोड़ना, फिर से कनेक्ट करना, कैमरों को हटाना और हार्डवेयर से पढ़े गए सभी मापदंडों को देखना (अनुभाग 3.2)।
ट्रिगरकैमरे के डिस्क्रीट इनपुट में बाहरी सेंसर को कनेक्ट करने के लिए, सर्किट आरेख और पिनआउट का उपयोग करना (अनुभाग 6)।
सामान्य मॉडल"कैमरा → मॉडल" के नामित सेट, जिन्हें पूरे स्टैंड पर एक ही चयन के माध्यम से असाइन किया जा सकता है (अनुभाग 8)।
लेआउट (कॉलम)कितने कैमरे एक पंक्ति में दिखाने हैं; «■» - एकल मोड (चयनित कैमरा बड़ा), «ऑटो» - सभी कैमरों में से एक, «⛶» - पूरे मॉनिटर पर कैमरे (Esc दबाएं)।
ROI क्षेत्र को दर्शानाक्या वीडियो पर क्षेत्र के ग्रिड को चित्रित करना उचित है?

दाएं ओर टैब

टैबनियुक्ति
Cameraचुने गए कैमरे के पैरामीटर: शटर स्पीड, एक्सपोजर, रंग, रिज़ॉल्यूशन, AI के लिए ऑटो-सेटिंग, सहेजे गए सेटिंग्स, विश्लेषण की गति। AI की सीमा अब यहां नहीं है - यह केवल "इंस्पेक्ट" टैब में ही उपलब्ध है।
OUTPUTरिजेक्टर: क्षेत्र-विशिष्ट नियम - TCP-संदेशों को रोबोट/पीएलसी, कैमरे के डिस्क्रीट आउटपुट और ध्वनि अलर्ट, ट्रिगर लॉग और डेटाबेस को भेजना।
AI Modelमॉडल बनाना: फ़ोल्डर, कक्षाएं, क्षेत्र, क्षेत्र-वार तस्वीरें, क्षेत्र-वार विसंगतियां, सर्किट बोर्ड की संदर्भ छवि, और प्रशिक्षण के लिए सेटिंग्स और लॉन्च।
Inspectकार्यशील टैब: कौन सा मॉडल निरीक्षण कर रहा है, क्षेत्र का निरीक्षण और सीमा, लाइव कन्वेयर, किस सिग्नल पर फ्रेम लेना है, बहु-मॉडल निरीक्षण के लिए स्लॉट।
Settingsइंटरफ़ेस भाषा (14 भाषाएँ), लाइसेंस खरीदना, सेटिंग्स को सहेजना और लोड करना, वीडियो रिकॉर्ड करना।
Consoleघटना लॉग: कैमरों का कनेक्शन, प्रशिक्षण की प्रगति, रिजेक्टर का सक्रिय होना, चेतावनियाँ। स्क्रीन पर 800-1000 नवीनतम पंक्तियों को प्रदर्शित किया जाता है, और सभी जानकारी logs\engiai-*.log फ़ाइलों में लिखी जाती है।

स्थिति पंक्ति

कнопों के ऊपर, सक्रिय कैमरे की स्थिति दिखाई जाती है: लाइव (एंड्रॉइड): 3264×2448 [एचडी यूएसबी कैमरा] — प्रकार, रिज़ॉल्यूशन और नाम; एआई: वेटिंग या एआई: जीपीयू (CUDA) — मॉडल किस पर काम कर रहा है और अंतिम विश्लेषण में कितने मिलीसेकंड लगे; नेट: कुल … सक्रिय … एमबी/से — गीगे-कैमरों से नेटवर्क पर पड़ने वाला लोड (हर 40% तक हरा, 70% तक नारंगी, उसके बाद लाल)। एक्सप लोड बैंड दर्शाता है कि एक्सपोजर फ्रेम अंतराल का कितना हिस्सा लेता है: यदि यह दाईं ओर जा रहा है, तो कैमरा अपेक्षित आवृत्ति को नहीं बनाए रख पाएगा।

प्रत्येक कैमरे के ऊपर एक शीर्षक होता है जिसमें उसका नाम, स्थिति "LIVE | AI:ON" और रीकनेक्ट बटन होता है। स्क्रीन पर राइट-क्लिक करने से क्षेत्र का मेनू खुलता है, और राइट-क्लिक करके स्क्रीन को पैन करना संभव होता है।

3. कैमरे: कनेक्शन और सेटअप

3.1. कौन से कैमरे समर्थित हैं

प्रकारकनेक्शन कैसे करेंप्रोग्राम से क्या कॉन्फ़िगर किया जा सकता है
HIKROBOT MV-CS
(GigE, USB3)
नैटिव MVS SDK। यह केवल सीरियल नंबर के द्वारा खुलता है, क्रम महत्वपूर्ण नहीं है।6 माइक्रोमीटर का एक्सपोजर, dB में वृद्धि, FPS, रिज़ॉल्यूशन (AOI), ब्लैक लेवल 0…4095, सभी GenICam नोड्स (ऑटो-मोड, गामा, शार्पनेस, व्हाइट बैलेंस R/G/B, डिजिटल शिफ्ट, फ्लिप, GigE पैकेट)। ये पैरामीटर कैमरे के UserSet1 में लिखे जाते हैं। लाइन 0, लाइन 1 और GPIO लाइन 2 के लिए डिस्क्रीट इनपुट, आउटपुट।
SICK picoCam
(IDS uEye, GigE)
uEye ड्राइवर। कैमरा IDS Camera Manager में "सही ढंग से कॉन्फ़िगर" स्थिति के साथ दिखाई देना चाहिए। सीरियल नंबर कैमरे के साथ मिलान किया जाता है, क्योंकि uEye में DeviceID प्रत्येक बार चलने पर बदल जाता है।आउटपुट, एम्पलीफिकेशन 0…100, एफपीएस, रिज़ॉल्यूशन, ब्लैक लेवल 0…255, पिक्सेल क्लॉक, एम्पलीफिकेशन बूस्ट, आर/G/B चैनल के लिए हार्डवेयर एम्पलीफिकेशन, हार्डवेयर गामा, बायर लेआउट। ये पैरामीटर कैमरे की मेमोरी में लिखे जाते हैं। ऑप्टोपेयर पर ट्रिगर इनपुट, फ्लैश आउटपुट (150 mA)।
यूएसबी/वेबकैम।
(सूची में - एंड्रॉइड)
OpenCV के माध्यम से DirectShow, जो moniker के अनुसार भिन्न होते हैं, इसलिए दो समान कैमरे भ्रमित नहीं होते।8K तक का रिज़ॉल्यूशन, FPS, और ड्राइवर के सभी गुण: चमक, कंट्रास्ट, संतृप्ति, टोन, शार्पनेस, गामा, एम्प्लीफिकेशन, ऑटो-फोकस, ऑटो-ब्लेंस, आदि। इसमें कोई प्रत्यक्ष इनपुट और आउटपुट नहीं हैं, केवल TCP उपलब्ध है।
RTSP IP कैमरा`rtsp://admin:पासवर्ड@192.168.1.64:554/` जैसा लिंक मैन्युअल रूप से जोड़ा जाता है।कैमरे के वेब इंटरफेस में एक्सपोजर, एम्प्लीफिकेशन, रिज़ॉल्यूशन और FPS सेट किए जा सकते हैं। इसमें ज़ोन, मॉडल और TCP शामिल हैं।

कैमरों की संख्या पर कोई सख्त सीमा नहीं है: कैमरे एक ग्रिड में व्यवस्थित किए जा सकते हैं, और वास्तविक सेटअप पर 8 और 9 कैमरे एक साथ काम कर रहे थे। प्रत्येक कैमरे में अपने-अपने मॉडल, ज़ोन, सीमा और विश्लेषण की गति होती है।

3.2. कैमरा विंडो: जोड़ें, रीकनेक्ट करें, हटाएं

1
वीडियो के ऊपर "कैमरे" पर क्लिक करें। "जुड़े हुए कैमरों के लिए सेटिंग्स" नामक एक विंडो पूरी स्क्रीन पर खुल जाएगी (बंद करने के लिए - Esc)।
2
"+ 'कैमरों को जोड़ें' पर क्लिक करें। प्रोग्राम नेटवर्क और USB दोनों से जानकारी प्राप्त करेगा और एक ही सूची में सभी खोजे गए उपकरणों को दिखाएगा: Hikrobot … SN: … IP: …, SICK … SN: … DeviceID: …, Android …। SICK कैमरों को 4 सेकंड तक जांचने की आवश्यकता होती है, क्योंकि GigE डिवाइस तुरंत ड्राइवर में दिखाई नहीं देता। यदि कोई SICK डिवाइस उपयोग में है या गलत तरीके से कॉन्फ़िगर किया गया है, तो इसे ⚠ के साथ चिह्नित किया जाएगा, जिसमें कारण भी शामिल होगा।
3
उन कैमरों को चिह्नित करें जिन्हें आप जोड़ना चाहते हैं और "जोड़ें" बटन पर क्लिक करें। IP कैमरे को "+ RTSP कैमरे के लिंक पर" बटन के माध्यम से जोड़ें। जब कैमरे कनेक्ट होते हैं, तो एक स्क्रीन दिखाई देती है जिसमें "कैमरे को छोड़ें" बटन होता है।
4
कैमरा सूची में "नाम | प्रकार | सीरियल नंबर | लाइव या ऑफलाइन | AI: चालू | डिस्प्ले: चालू" के रूप में दिखाई देगा, और इसका वीडियो मुख्य विंडो के बाईं ओर दिखाई देगा।

सूची के अंतर्गत दिए गए चेक, चुने गए कैमरे के लिए सक्रिय होते हैं: कैमरा चालू (अन्यथा, यह डिवाइस से डिस्कनेक्ट हो जाता है और स्क्रीन से गायब हो जाता है), वीडियो/क्षेत्र प्रदर्शित करें (केवल रेंडरिंग, विश्लेषण हमेशा चलता रहता है), चुने गए कैमरे के लिए AI सक्रियपुन: कनेक्ट करें बटन, AI और मॉडल के पूर्ण डिस्कनेक्शन और पुनः कनेक्शन के साथ, धारा को पुनः शुरू करता है और मॉडल को पुनः लोड करता है।

विंडो के दाहिने हिस्से में कैमरे से प्राप्त सभी पैरामीटर प्रदर्शित होते हैं, जो हार्डवेयर के साथ कनेक्ट होने पर एकत्र किए जाते हैं, साथ ही समूहों और इकाइयों के साथ: "कौन से पैरामीटर प्रदर्शित करें", कैमरे से पुनः प्राप्त करें, बफर में कॉपी करें। यह केवल देखने के लिए है: आप कैमरे के टैब पर पैरामीटर बदल सकते हैं।

महत्वपूर्ण। HIKROBOT का GigE कैमरा एक विशिष्ट कनेक्शन का उपयोग करता है। यदि प्रोग्राम अचानक बंद हो जाता है, तो यह तब तक व्यस्त रहता है जब तक कि हार्टबीट समाप्त नहीं हो जाती; प्रोग्राम 25 सेकंड (10 प्रयासों) तक इंतजार करता है और "कैमरा किसी अन्य प्रक्रिया द्वारा उपयोग में है" संदेश प्रदर्शित करता है। SICK के मामले में, यदि IP पता गलत है, तो प्रोग्राम स्वचालित रूप से इसे ठीक करने का प्रयास करता है, लेकिन केवल तभी जब यह नेटवर्क के भीतर न हो।

3.3. HIKROBOT और SICK के लिए "कैमरा" टैब

यह मॉड्यूल कैमरे के साथ काम करता है, जिसका फ्रेम नीले रंग का है। जब यह कनेक्ट होता है, तो यह कैमरे में कुछ भी नहीं रिकॉर्ड करता: कैमरा सच्चाई का स्रोत है, जबकि स्लाइडर उसकी वैल्यू के अनुसार समायोजित होते हैं। केवल "पैरामीटर सहेजें" बटन (Сохранить параметры) का उपयोग करके सेटिंग्स को सहेजा जा सकता है।

1
नीचे दिए गए फ़ील्ड में, "चौड़ाई (W)" और "ऊंचाई (H)" फ़्रेम (या सूची से एक प्रीसेट चुनें, जिसमें केवल वे आकार शामिल हैं जो यह कैमरा सपोर्ट करता है), और "रिज़ॉल्यूशन लागू करें" पर क्लिक करें। आमतौर पर, पूरे कैमरे का फ़्रेम लिया जाता है। आकार को कैमरे के AOI के चरण के अनुसार नीचे की ओर राउंड किया जाता है।
2
"AI के लिए ऑटो-सेटिंग (फ्रेम के अनुसार) पर क्लिक करें। यह प्रोग्राम एक्सपोजर (प्राथमिकता) और एन्हांसमेंट (अधिकतम 40) को समायोजित करता है ताकि 99.5 प्रतिशत चमक का स्तर 220…248 के बीच रहे, बिना किसी चमक के, फिर यह गामा 1.50, संतृप्ति 115%, और ऑटो-व्हाइट बैलेंस सेट करता है। "ऑटो" चेक के साथ, यह लगातार मोड को सक्रिय करता है: हर 3 सेकंड में जांच और समायोजन, यदि प्रकाश बदल जाए।
3
आवश्यकतानुसार, निम्नलिखित सेटिंग्स को मैन्युअल रूप से समायोजित करें: एक्सपोजर (माइक्रोसेकंड में स्लाइडर, मिलीसेकंड में लेबल, 1 सेकंड तक), गेन, एफपीएस, ब्लैक लेवल. SICK के लिए, अतिरिक्त रूप से पिक्सेल क्लॉक (एफपीएस की अधिकतम सीमा और न्यूनतम एक्सपोजर निर्धारित करता है), गेन बूस्ट, हार्डवेयर गामा, डब्ल्यूबी रेड / ग्रीन / ब्लू.
4
"सेटिंग्स सहेजें" पर क्लिक करें: यह फ़ाइल "camera_params\<SN>.ini" को सहेजता है और HIKROBOT (डिफ़ॉल्ट सेटिंग्स के साथ "UserSet1" पर) के मेमोरी में और SICK के EEPROM में डेटा लिखता है। परिणाम बटन पर प्रदर्शित होता है ("✔ सहेजा गया")। HIKROBOT के लिए, एक विकल्प है: "परिवर्तन के 5 सेकंड बाद कैमरे (UserSet1) में स्वचालित रूप से सहेजें।"

"Hikrobot: कैमरा पैरामीटर (GenICam)" ब्लॉक

केवल वही प्रदर्शित होता है जो कैमरा कैप्चर करता है। पंक्तियाँ: ऑटो-एक्सपोजर (ऑफ / एक बार / निरंतर), ऑटो-एम्प्लीफिकेशन, गामा और गामा मोड, शार्पनेस, टोन, संतृप्ति, ऑटो-व्हाइट बैलेंस, चैनल के अनुसार व्हाइट बैलेंस, डिजिटल शिफ्ट, ब्लैक लेवल चालू, FPS की सीमा चालू, क्षैतिज और ऊर्ध्वाधर में घुमाव, GigE: पैकेट का आकार, GigE: पैकेट के बीच का विलंब, GigE: बैंडविड्थ की सीमा, परीक्षण छवि। "कैमरा से पैरामीटर को फिर से लोड करें" बटन तालिका को फिर से कॉन्फ़िगर करता है।

"इमेज का रंग" ब्लॉक

बाइयर का रंग पैटर्न (ऑटो / BGGR / RGGB / GRBG / GBRG), संतृप्ति 0…200 %, गामा 0,30…3,00, कंट्रास्ट 50…200 %, रीसेट बटन। यह प्रोग्रामिंग सभी फ्रेम के उपभोक्ताओं पर लागू होती है: प्रदर्शन, रिकॉर्डिंग, अनुमान और प्रशिक्षण के लिए चित्र, इसलिए प्रशिक्षण और निरीक्षण के दौरान चित्र समान होते हैं। HIKROBOT के लिए, रंग पैटर्न कैमरे के पिक्सेल फॉर्मेट से लिया जाता है, जबकि SICK के लिए, यह सेंसर से लिया जाता है और पहले फ्रेम के अनुसार समायोजित किया जाता है।

पैरामीटरयह क्या करता हैप्रभाव
सेकंड में AI विश्लेषण (AI)निरीक्षण की गति की ऊपरी सीमा, 1...200कम — वीडियो कार्ड पर कम लोड; कैमरे से कनेक्शन पर निर्भर नहीं
एआई की सीमाकैमरे टैब पर निर्धारित नहींक्षेत्र की पहचान की सीमा - केवल "इंस्पेक्ट" टैब (5.2 अनुभाग) पर, एक प्रति कैमरा
Exposureएक्सपोजर का समयसंक्षेप में - चलती वस्तुओं पर कम प्रभाव; शून्य स्वीकार्य नहीं
Gain / Gain boostमैट्रिक्स सिग्नल को बढ़ानाचमक बढ़ाता है, लेकिन शोर भी जोड़ता है
Pixel clock (SICK)सेंसर की आवृत्तियह FPS और एक्सपोजर की रेंज को बदल देता है, और उन्हें फिर से पढ़ा जाता है
FPSमुक्त मोड में फ्रेम दरट्रिगर मोड में उपयोग नहीं किया जाता
चौड़ाई / ऊँचाईफ्रेम का आकार (AOI)छोटा फ्रेम - उच्च आवृत्ति और कम ट्रैफ़िक
यह महत्वपूर्ण है। प्रशिक्षण के लिए, उसी परिस्थितियों में तस्वीरें लें, जिनमें लाइन काम करेगी: समान प्रकाश, समान गति, समान कैमरा स्थिति। जब आप सेटिंग्स बदलते हैं, तो प्रोग्राम कंसोल पर एक संदेश प्रदर्शित करता है, जिसमें कहा गया है कि मॉडल को नए फ़्रेम पर फिर से प्रशिक्षित करने की आवश्यकता है।

3.4. कैमरा टैब के लिए USB/वेबकैम

USB कैमरों के लिए, टैब "USB-कैमरा: रिज़ॉल्यूशन, FPS और गुण" दिखाता है। कैमरे द्वारा प्रदान नहीं किए जाने वाले ड्राइवर के गुण प्रदर्शित नहीं होते हैं; फ़ील्ड की सीमाएँ प्रोग्राम द्वारा निर्धारित की जाती हैं, क्योंकि DirectShow रेंज के बारे में कोई जानकारी नहीं होती है।

1
अनुमति और लागू करें। "जांचें" बटन, वीजीए से लेकर 8K तक, मानक रिज़ॉल्यूशन की जांच करता है और केवल उन रिज़ॉल्यूशन को सूची में दिखाता है जिन्हें कैमरा स्वीकार करता है। "कैमरा प्रारूप" पंक्ति वास्तविक रिज़ॉल्यूशन और फ्रेम प्रति सेकंड (FPS) को दर्शाती है।
2
सबसे पहले, ऑटो-एक्सपोजर, ऑटोफोकस और ऑटो-बीबी को सेट करें, फिर "पैरामीटर को लॉक करें (ऑटो को बंद करें, जैसा है वैसा सहेजें)" पर क्लिक करें: ऑटो बंद हो जाएगा, और प्रोग्राम उसी चमक के लिए मैन्युअल एक्सपोजर को स्वचालित रूप से समायोजित करेगा (जब ऑटो चालू होता है, तो यह पहले से चयनित एक्सपोजर के बजाय अंतिम मैन्युअल एक्सपोजर का उपयोग करता है)। मान और प्रारूप डेटाबेस में सहेजे जाते हैं और प्रत्येक बार जब यह कैमरा फिर से कनेक्ट होता है, तो वे प्रदर्शित होते हैं।
3
श्रेणी: AI के तहत: आटोमेटिक रूप से आकार का चयन (20-60 सेकंड, लाइव छवियों में एक्सपोजर और कंट्रास्ट को समायोजित करना, मानदंड - बिना किसी चमक के स्पष्ट किनारों के साथ), बिना रंग के आकार, नरम आकार, वापस, मानक.
4
फ़ील्ड में दर्ज की गई जानकारी तुरंत कैमरे में चली जाती है, बिना "Enter" बटन के, और तुरंत डेटाबेस में दर्ज हो जाती है। "कैमरे से प्रॉपर्टी को फिर से पढ़ना" बटन यह दर्शाता है कि कैमरा वास्तव में जानकारी प्राप्त कर चुका है।
सलाह. कृत्रिम बुद्धिमत्ता (एआई) के लिए, रंग को हटाने के लिए कैमरे की संतृप्ति (कैमरा सैचुरेशन) को समायोजित करने के बजाय, "कैमरा" टैब में एक सामान्य विकल्प का उपयोग करना बेहतर है: ग्रेस्केल में प्रशिक्षित करें (मॉडल की सामान्य सेटिंग)। इस विकल्प को "एआई मॉडल" टैब में भी "ग्रेस्केल में प्रशिक्षित करें" के रूप में जाना जाता है। इस तरह, प्रशिक्षण और निरीक्षण दोनों के लिए छवियां ग्रेस्केल में होंगी, जबकि कैमरा ऑपरेटर के लिए रंग प्रदर्शित करना जारी रखेगा। उदाहरण में दिए गए मॉडल को ग्रेस्केल में प्रशिक्षित किया गया है।

3.5. सहेजे गए कैमरे के सेटिंग्स (सेट)

"सहेजे गए कैमरे के सेटिंग्स" USB, SICK और HIKROBOT के लिए प्रदर्शित होते हैं। उपयुक्त पैरामीटर के साथ, उन्हें इस नाम से सहेजें: किसी अन्य प्लेट या अन्य प्रकाश व्यवस्था के लिए, सूची से एक सेट का चयन करना पर्याप्त है।

  • से सहेजें… - यह वर्तमान मूल्यों को कैमरे से पढ़ता है और सेट का नाम पूछता है। यदि नाम पहले से मौजूद है, तो यह इसे बदलने का विकल्प देता है।
  • सूची में सेट का चयन तुरंत कैमरे में पैरामीटर दर्ज करता है और उन्हें सुरक्षित रखता है: USB के लिए - डेटाबेस में, SICK और HIKROBOT के लिए - पैरामीटर फ़ाइल और कैमरे की मेमोरी (UserSet1 / EEPROM) में। फिर पैनल हार्डवेयर से मान पढ़ता है और दिखाता है कि कितने पैरामीटर स्वीकार किए गए हैं और कितने अस्वीकार किए गए हैं।
  • पुन: सहेजें वर्तमान मूल्यों से चयनित सेट को फिर से लिखता है, नाम बदलें और हटाएं केवल डेटाबेस में मौजूद प्रविष्टि पर ही लागू होते हैं, कैमरे में सेट किए गए पैरामीटर नहीं बदलते।

सेट में शामिल: USB के लिए - रिज़ॉल्यूशन, FPS, ड्राइवर के गुण और ऑटो-मोड; SICK के लिए - एम्प्लीफिकेशन, एक्सपोजर, FPS, ब्लैक लेवल, पिक्सेल क्लॉक, गेन बूस्ट, व्हाइट बैलेंस R/G/B, हार्डवेयर गामा और सॉफ्टवेयर कलर; HIKROBOT के लिए - एम्प्लीफिकेशन, एक्सपोजर, FPS, ब्लैक लेवल और सभी GenICam नोड्स। औद्योगिक कैमरों के फ्रेम का आकार सेट में शामिल नहीं है: इसे बदलने से रिकॉर्डिंग फिर से शुरू हो जाती है। सभी एक ही प्रकार के कैमरों के लिए सेट समान होते हैं, इसलिए एक ही प्रकार के कैमरों के स्टैंड पर, एक सेट को प्रत्येक पर लगाया जाता है।

3.6. GigE नेटवर्क और रीकनेक्ट

  • HIKROBOT के GigE पैकेट का आकार स्वचालित रूप से इष्टतम पर सेट होता है जब यह खुलता है; इसे मैन्युअल रूप से GenICam ब्लॉक में भी ठीक किया जा सकता है। Jumbo-फ्रेम 8164–9000 लोड को कम करते हैं, जबकि टूटे हुए फ्रेम के लिए 1500 का उपयोग करें और पैकेट के बीच विलंबता बढ़ाएँ।
  • `Net` पंक्ति प्रत्येक कैमरे से आने वाले लोड को उसकी अपनी जानकारी (उपयोगी भार × आवृत्ति) के अनुसार मापती और इसे नेटवर्क कार्ड से आने वाले वास्तविक ट्रैफ़िक के साथ तुलना करती है। यदि इनमें महत्वपूर्ण अंतर है, तो इसका मतलब है कि कुछ फ़्रेम खो गए हैं या बाहरी ट्रैफ़िक आ रहा है। इस गणना में शामिल वर्चुअल एडाप्टर और NDIS फ़िल्टर (जैसे GigEVision, uEye, Npcap) को ध्यान में नहीं रखा गया है।
  • यदि कैमरा दिखाई दे रहा है, लेकिन डेटा नहीं आ रहा है, तो "रीसेट करें" बटन पर क्लिक करें (कैमरे के विंडो या टाइल पर)। आमतौर पर, इसका कारण नेटवर्क या USB की कम क्षमता होता है।
  • SICK picoCam, जब यह एक विवरण को बंद करता है, तो यह अपने सेटिंग्स खो देता है। यदि कैमरे में कोई सेट नहीं है, तो प्रोग्राम पैरामीटर फ़ाइल का उपयोग करता है और "पैरामीटर सहेजें" पर क्लिक करने का सुझाव देता है ताकि उन्हें कैमरे में सहेज सकें।

4. ज़ोन-पेयर मॉडल: ग्रिड से प्रशिक्षित मॉडल तक

4.1. विधि कैसे काम करती है: प्रत्येक क्षेत्र के लिए एक मॉडल, प्रत्येक क्षेत्र के लिए एक वर्ग।

ज़ोन-पेयर मॉडल एक सामान्य YOLO11 वर्गीकरण नेटवर्क है, जिसमें वर्गों की संख्या उन क्षेत्रों की संख्या के बराबर होती है, साथ ही कुछ वैकल्पिक असामान्य वर्गों भी होते हैं। एक वर्ग एक फ़ोल्डर होता है जो `train` और `val` के अंदर स्थित होता है। प्रोग्राम स्वचालित रूप से सभी फ़ोल्डरों का निर्माण करता है; मैन्युअल रूप से कुछ भी बनाने की आवश्यकता नहीं है। प्रशिक्षण के बाद, इस प्रकार एक मॉडल फ़ोल्डर दिखाई देता है:

फ़ोल्डर model_4: ट्रेन और वेल - छवियां, data.json - क्षेत्र, live_template - संदर्भ छवि, board.json - सीमा, best.onnx - प्रशिक्षित नेटवर्क।
फ़ोल्डर model_4: ट्रेन और वेल - छवियां, data.json - क्षेत्र, live_template - संदर्भ छवि, board.json - सीमा, best.onnx - प्रशिक्षित नेटवर्क।
model_4 ट्रेनिंग\ प्रशिक्षण के लिए छवियां zone_001\ सामान्य क्षेत्र 1 (C30): real_… कैमरे से, syn_… सिंथेटिक डेटा zone_001_anomaly\ त्रुटि क्षेत्र 1: syn_…_combo1_d, _rotate1 … zone_002\ सामान्य क्षेत्र 2 (BR1) zone_002_anomaly\ त्रुटि क्षेत्र 2 वैल\ परीक्षण डेटा: समान चार फ़ोल्डर, जो स्वचालित रूप से भर जाते हैं data.json क्षेत्र: तालिकाएँ, निर्देशांक, आकार, रंग, चालू/बंद; वर्ग; स्लॉट live_template.png / .txt संदर्भ छवि प्लेट: फ्रेम, संरेखण क्षेत्र, लाल (छोड़े गए) क्षेत्र live_template_zones.png चित्रित क्षेत्रों और संख्याओं के साथ संदर्भ छवि board.json क्षेत्र की पहचान सीमा ({ "threshold": 0.50 }) train_gray.txt "ग्रे शेड्स" सुविधा best.onnx प्रशिक्षित मॉडल — इसे निरीक्षण के लिए असाइन किया जाता है रन\ diag\ *.cache सहायक: प्रशिक्षण की प्रगति, विश्लेषण के लिए छवियां, प्रशिक्षण के लिए कैश
प्रशिक्षण: प्रत्येक क्षेत्र के लिए दो फ़ोल्डर - सामान्य और असामान्य।
प्रशिक्षण: प्रत्येक क्षेत्र के लिए दो फ़ोल्डर - सामान्य और असामान्य।
मूल्यांकन: समान संरचना, जो कैमरे में शूटिंग के दौरान स्वचालित रूप से भर जाती है।
मूल्यांकन: समान संरचना, जो कैमरे में शूटिंग के दौरान स्वचालित रूप से भर जाती है।

फ़ाइलें `real_…jpg` - ये कैमरे से सीधे लिए गए चित्र हैं (ये "ट्रेन" और "वेल" दोनों सेट में मौजूद हैं)। `syn_…jpg` - ये सिंथेटिक डेटा हैं। `edit_…jpg` - ये ज़ोन एडिटर से लिए गए चित्र हैं। उदाहरण के लिए, कुछ प्लेटों की छवियों को लेने के बाद: `zone_001` - "ट्रेन" में 502 फ़ाइलें और "वेल" में 111 फ़ाइलें हैं; `zone_001_anomaly` - "ट्रेन" में 680 फ़ाइलें और "वेल" में 144 फ़ाइलें हैं; `zone_002` - "ट्रेन" में 813 फ़ाइलें और "वेल" में 181 फ़ाइलें हैं; `zone_002_anomaly` - "ट्रेन" में 340 फ़ाइलें और "वेल" में 60 फ़ाइलें हैं।

एक स्टोरेज स्थान। मॉडल में सभी मार्किंग - निरीक्षण क्षेत्र, संरेखण क्षेत्र, कक्षाएं और स्लॉट - केवल मॉडल फ़ोल्डर में स्थित हैं: data.json और live_template.txt. प्रोग्राम के डेटाबेस में अब कोई निरीक्षण क्षेत्र नहीं है, इसलिए ROI संपादक AI मॉडल टैब और निरीक्षण टैब दोनों पर एक ही क्षेत्र दिखाता है, और मॉडल फ़ोल्डर को बिना किसी नुकसान के किसी अन्य कंप्यूटर पर पूरी तरह से कॉपी किया जा सकता है। पुराने मॉडल पहली बार खोलने पर स्वचालित रूप से फ़ाइल में स्थानांतरित हो जाते हैं।

यह प्रोग्राम स्वचालित रूप से "भुगतान" के मॉडल को पहचानता है, जब zone_NNN जैसे वर्गों की उपस्थिति होती है। वर्ग संख्या - ग्रिड में क्षेत्र की समग्र संख्या (1…N)। इसी के आधार पर विधि के मुख्य नियम हैं:

यह महत्वपूर्ण है। क्षेत्र मॉडल का हिस्सा हैं। एक बार कक्षाएं शूट करने के बाद, उन्हें बदला नहीं जा सकता (टेबल जोड़ना, हटाना या पुनर्व्यवस्थित करना): क्षेत्रों की संख्या कक्षाओं के साथ मेल नहीं खाएगी, और ऐसे क्षेत्रों को NO_ZONE_CLASS लेबल दिया जाएगा। यदि क्षेत्रों को बदलना है, तो एक नया मॉडल बनाएं।

4.2. मॉडल बनाना

1
"एआई मॉडल" नामक टैब खोलें और "एक नया एआई मॉडल बनाएं" पर क्लिक करें।
2
माता-पिता फ़ोल्डर और मॉडल का नाम निर्दिष्ट करें (प्रोग्राम पहले से model_N उपलब्ध है)। डिफ़ॉल्ट सूची में सामान्य और असामान्य शामिल हैं; ज़ोन-पेयर के लिए, उन्हें आवश्यक नहीं है - ज़ोन के लिए पहली बार स्नैप लेने पर ज़ोन की कक्षाएं स्वचालित रूप से बनाई जाएंगी। आप उन्हें हटा सकते हैं या खाली छोड़ सकते हैं: प्रशिक्षण से पहले, प्रोग्राम खाली कक्षाओं को हटाने का सुझाव देगा।
3
"Создать मॉडल" पर क्लिक करें। डिस्क पर "train" और "val" नामक फ़ोल्डर बन जाएंगे, और मॉडल संपादन के लिए खुल जाएगा (लेकिन यह निरीक्षण के लिए उपलब्ध नहीं होगा)। यदि मॉडल पहले से मौजूद है, तो "मॉडल फ़ोल्डर का चयन करें" का विकल्प चुनें।

4.3. बोर्ड पर क्षेत्रों को चिह्नित करना

1
कैमरे के सामने, प्लेट को ठीक उसी तरह रखें जिस तरह वह लाइन पर स्थित होगा। "ROI → क्लास में जोड़ें (प्रशिक्षण मॉडल)" पर क्लिक करें।
2
"ROI को श्रेणी में बनाए रखने" संवाद में, किसी भी श्रेणी का चयन करें (यह लेबलिंग के लिए महत्वपूर्ण नहीं है) या एक नई नाम दर्ज करें और "ओके + ROI खोलें" पर क्लिक करें। बाद में, यहां सभी क्षेत्रों की श्रेणियां, जो zone_### पैटर्न के अनुसार समूहीकृत हैं, दिखाई देंगी: समूह पर क्लिक करने से वह चयनित हो जाएगा, दूसरी बार क्लिक करने से चयन हट जाएगा; "समूह हटाएं" बटन पूरे समूह और छवियों को हटा देगा।
3
"ROI (निवेश पर प्रतिफल) चयन" विंडो खुल जाएगी। बाएँ माउस बटन का उपयोग करके, उस क्षेत्र के चारों ओर एक बॉक्स बनाएं। "क्षेत्र का आकार, पिक्सेल" नामक एक फ़ील्ड दिखाई देगा: आकार दर्ज करें (यह 32 के गुणज पर खींचा जाएगा, उदाहरण के लिए 256) और Enter दबाएं - बॉक्स एक समान वर्ग बन जाएगा जिसमें आकार का लेबल होगा। प्रत्येक क्षेत्र की जांच करने के लिए, इस प्रक्रिया को दोहराएं। इस उदाहरण में दो क्षेत्र हैं: C30 के चारों ओर और BR1 के चारों ओर।
4
यदि विवरण बहुत अधिक हैं और वे एक समान रूप से व्यवस्थित हैं, तो ग्रिड का उपयोग करना अधिक सुविधाजनक है: पूरे प्लेट पर फ्रेम को फैलाएं और क्षेत्र के आकार को निर्दिष्ट करें - यह आपको बताएगा कि कितने पंक्तियों और स्तंभों का परिणाम हुआ। या, ब्लॉक क्षेत्रों का ग्रिड में पंक्तियों, स्तंभों, चौड़ाई और ऊंचाई को निर्दिष्ट करें और ग्रिड बनाएं पर क्लिक करें। आप माउस का उपयोग करके ग्रिड को सटीक रूप से उत्पाद पर खींच सकते हैं।
5
दायां पैनल प्रत्येक ज़ोन तालिका को दिखाता है, जिसमें ज़ोन का आकार और "सक्रिय" का चिह्न (चेक मार्क) होता है। निष्क्रिय ज़ोन कोई भी क्लास नहीं देता, और छिपा हुआ तालिका पूरी तरह से निरीक्षण में शामिल नहीं होता है। यहां निम्नलिखित बटन दिए गए हैं: "सभी ज़ोन ✓ / ✗", "रंग", "हटाएं", "सभी ज़ोन हटाएं।" एंटर कुंजी दबाकर विंडो बंद करें - ज़ोन data.json में सहेजे जाएंगे और वीडियो पर पीले रंग में दिखाई देंगे।
AI मॉडल टैब पर परिणाम: लाइव छवि पर दो पीले क्षेत्र - BR1 ऊपरी दाएं और C30 निचले बाएं। दाएं - ज़ोन-पेयर मॉडल के बटन, "चिह्नों के आधार पर उत्पाद से क्षेत्रों को लॉक करें" और प्रशिक्षण सेटिंग्स।
AI मॉडल टैब पर परिणाम: लाइव छवि पर दो पीले क्षेत्र - BR1 ऊपरी दाएं और C30 निचले बाएं। दाएं - ज़ोन-पेयर मॉडल के बटन, "चिह्नों के आधार पर उत्पाद से क्षेत्रों को लॉक करें" और प्रशिक्षण सेटिंग्स।
सुझाव। घटक को क्षेत्र का एक महत्वपूर्ण हिस्सा घेरना चाहिए, और उसके चारों ओर कुछ जगह खाली छोड़ देनी चाहिए: जैसे कि, ट्रेसेस, लेबल और प्लेटफ़ॉर्म। यही "आधार" का उपयोग बाद में सिंथेटिक डेटा (4.6 अनुभाग) में किया जाता है। 0603-1206 के घटकों वाले प्लेटों के लिए, जहां 11 पिक्सेल प्रति मिलीमीटर का उपयोग किया जाता है, 128 पिक्सेल अच्छी तरह से काम करते हैं। जबकि, कैपेसिटर, ब्रिज और पोर्ट के लिए, 192-256 पिक्सेल का उपयोग किया जा सकता है, जैसा कि उदाहरण में दिखाया गया है। नेटवर्क इनपुट का आकार (इमेज साइज) को क्षेत्र के आकार के लगभग बराबर रखा जाना चाहिए।

लाल क्षेत्र: एक क्लिक से सिंथेटिक डेटा से क्षेत्र को हटा दें

"एआई मॉडल" टैब में, पहले से बनाए गए क्षेत्र पर वीडियो पर सीधे बाएं क्लिक करें: क्षेत्र लाल हो जाएगा और यह क्षेत्र-आधारित स्नैपशॉट और विसंगतियों में शामिल नहीं होगा। दोबारा क्लिक करने पर यह वापस सामान्य हो जाएगा। सिंथेटिक डेटा विंडो में फ़ाइल काउंटर्स तुरंत अपडेट हो जाते हैं, और फ़्रेम के ऊपर "बंद N" लिखा हुआ दिखाता है कि कितने क्षेत्र बंद हैं। लाल क्षेत्रों की सूची कैमरे और मॉडल के अनुसार संग्रहीत की जाती है; "इंस्पेक्ट" टैब में, वही क्षेत्र सामान्य रहता है (वहां पीले क्षेत्र होते हैं - अनुभाग 5.5)।

4.4. संदर्भ छवि को लॉक करें: संरेखण क्षेत्र

निरीक्षण क्षेत्र एक-एक सर्किट बोर्ड के आधार पर चिह्नित किए जाते हैं। ताकि एक अन्य सर्किट बोर्ड को, जिसमें थोड़ा सा अंतर और घुमाव हो, लाइन पर डाला जा सके, तो प्रोग्राम "संदर्भ छवि" को याद रखता है: एक लाइव फ्रेम और "संरेखण क्षेत्र" - यह सर्किट बोर्ड का वह भाग है जिसमें उत्पाद की तलाश प्रत्येक नए फ्रेम में की जाती है। जब यह क्षेत्र मिल जाता है, तो प्रोग्राम निरीक्षण क्षेत्रों को नए सर्किट बोर्ड पर स्थानांतरित कर देता है। इसी तरह, रिकॉर्डिंग, सिंथेटिक डेटा और निरीक्षण किया जाता है।

दो अलग-अलग आयताकार क्षेत्र। निरीक्षण क्षेत्र वे क्षेत्र हैं जिन्हें मॉडल (हरे रंग में) जांचता है। संरेखण क्षेत्र वह मार्कर है जिसके द्वारा भुगतान (नारंगी रंग का फ्रेम) खोजा जाता है। समर्थन बिंदु कभी भी निरीक्षण क्षेत्रों के भीतर नहीं लगाए जाते: यदि भुगतान को सबसे पहले सबसे निकटतम कैपेसिटर के आधार पर खोजा जाता है, तो स्थानांतरित कैपेसिटर न केवल उस क्षेत्र को, बल्कि दोष को भी छिपा देगा। इसलिए, संरेखण क्षेत्र में, आपको स्क्रीन प्रिंटिंग, छेद, ट्रेसेस, और आस-पास के माइक्रोचिप को ध्यान में रखना चाहिए, लेकिन टेबल और कन्वेयर को नहीं।
1
"AI मॉडल" टैब पर, "उत्पाद के लिए मार्करों के आधार पर क्षेत्रों को चिह्नित करें" विकल्प को चेक करें और "खोज अवधि, मिलीसेकंड में" (डिफ़ॉल्ट रूप से 100) निर्धारित करें। कैमरे के नीचे प्लेट रखें और "संदर्भ छवि को चिह्नित करें" पर क्लिक करें।
2
"संरेखण क्षेत्र: कैसे खोजें" नामक एक विंडो खुलेगी, जिसमें एक लाइव दृश्य और हरे रंग के निरीक्षण क्षेत्र दिखाई देंगे। बाएँ माउस बटन का उपयोग करके, सर्किट बोर्ड के उस हिस्से पर एक फ्रेम खींचें जिसमें विवरण हों। दाईं ओर, आपको "आधार बिंदुओं: N · संरेखण: सख्त / दृष्टिकोण" दिखाई देंगे, जिसमें सैकड़ों बिंदु होंगे। यदि "कम - क्षेत्र को बड़ा करें" विकल्प का उपयोग किया जाता है, तो फ्रेम को विस्तारित करें। नया फ्रेम पुराने को बदल देगा, और दाहिना बटन इसे हटा देगा।
3
" выделенной क्षेत्र के अनुसार क्षेत्र खोजें" पर क्लिक करें। दूसरा बटन " निरीक्षण क्षेत्रों के अनुसार क्षेत्र खोजें" उन क्षेत्रों को खोजता है जिनमें क्षेत्र मौजूद हैं - केवल तभी जब उनके आस-पास कुछ न हो। यदि "हर बार संरेखण क्षेत्र के बारे में पूछें" पर टिक दिया गया है, तो अगला फ़िक्सिंग पिछले क्षेत्र को बिना विंडो के दोहराएगा।
4
यह प्रोग्राम "संदर्भ छवि दर्ज की गई। क्षेत्र N, 1 लिंक, बिंदु K" लिखता है और live_template.png और live_template.txt (फ्रेम, क्षेत्र, लाल क्षेत्र) को सहेजता है। "फ्रेम पर शूटिंग क्षेत्र दिखाएं" चेक बॉक्स, वीडियो पर पाए गए क्षेत्रों को दर्शाता है, जबकि भुगतान के आधार पर निर्धारित बिंदु, नीले बिंदुओं के रूप में दिखाई देते हैं - जिससे यह स्पष्ट होता है कि प्रोग्राम किस आधार पर काम कर रहा है।
विंडो संरेखण क्षेत्र: नारंगी फ्रेम - सर्किट बोर्ड पर विवरण (3000 सपोर्ट पॉइंट्स), हरे - C30 और BR1 निरीक्षण क्षेत्र, जो फ्रेम में शामिल नहीं हैं।
विंडो संरेखण क्षेत्र: नारंगी फ्रेम - सर्किट बोर्ड पर विवरण (3000 सपोर्ट पॉइंट्स), हरे - C30 और BR1 निरीक्षण क्षेत्र, जो फ्रेम में शामिल नहीं हैं।
फिक्स करने के बाद की छवि: क्षेत्र अपने विवरणों पर पाए गए हैं और "सामान्य" के रूप में चिह्नित हैं, नीले रेखाएं - संरेखण क्षेत्र की सीमाएं, नीले बिंदु - सर्किट बोर्ड पर मेल खाने वाले सपोर्ट पॉइंट्स (जो इन क्षेत्रों में नहीं आते)।
फिक्स करने के बाद की छवि: क्षेत्र अपने विवरणों पर पाए गए हैं और "सामान्य" के रूप में चिह्नित हैं, नीले रेखाएं - संरेखण क्षेत्र की सीमाएं, नीले बिंदु - सर्किट बोर्ड पर मेल खाने वाले सपोर्ट पॉइंट्स (जो इन क्षेत्रों में नहीं आते)।
मिलाने का मॉडलकब चुनें
ऑटो (अनुशंसित)सर्किट को कसकर मिलाया जाता है (स्लाइड, घुमाव, स्केल); यदि यह स्पष्ट रूप से बेहतर ढंग से मेल खाता है, तो ही कैमरा कनेक्ट होता है। छोटे संरेखण क्षेत्र में सटीकता - 1-2 पिक्सेल।
कठोरकैमरा सीधे ऊपर से देखता है, सर्किट सपाट होता है। यदि संरेखण क्षेत्र छोटा है, तो यह सबसे स्थिर विकल्प है।
दृष्टिकोणकैमरा कोण पर या सर्किट को झुकाया जाता है। पूरे चौड़ाई में बिंदुओं के साथ एक बड़ा क्षेत्र चाहिए, अन्यथा होमोग्राफी "झुक जाएगी"।

"संदर्भ छवि के साथ क्षेत्र" बटन, जो पहले से सहेजी गई संदर्भ छवि (जिसमें ग्रिड और क्षेत्रों के नंबर हैं - अनुभाग 4.8) को खोलता है, का उपयोग किया जाता है। पाई गई सर्किट को तार्किक रूप से जांचा जाता है: क्षेत्र 0.5 से 2 क्षेत्रों तक, एक उत्तल चतुर्भुज, और समर्थन बिंदु प्रत्येक अक्ष पर कम से कम एक चौथाई क्षेत्र को घेरने चाहिए - अन्यथा परिणाम को अस्वीकार कर दिया जाता है, और कंसोल पर "सर्किट नहीं मिला" लिखा जाता है।

यह महत्वपूर्ण है। यदि पहले, फ्रेम में कम संख्या में "क्षेत्र" दिखाई देते थे, इसका कारण यह था कि शुल्क उन क्षेत्रों के लिए ही वसूला जाता था। कृपया इस गाइड के अनुसार, платы के विवरणों के साथ संरेखण क्षेत्र का संदर्भ छवि फिर से कैप्चर करें। इस गाइड में दिए गए платы पर पाए गए क्षेत्रों की संख्या 46-51 से बढ़कर 106-112 हो गई है, जो कि 134 है।

4.5. क्षेत्र के अनुसार छवि: सामान्य और उसके सिंथेटिक डेटा

"ज़ोन-पेयर: क्षेत्र-आधारित सुविधा का मुख्य कार्य: यह लाइव छवि को क्षेत्रों में विभाजित करता है, प्रत्येक क्षेत्र के स्निपेट को उसके संबंधित वर्ग zone_NNN में रखता है, और सिंथेटिक डेटा सामान्य जोड़ता है। सिंथेटिक डेटा सामान्य, वास्तविक डेटा की विसंगति नहीं है, बल्कि यह कुछ मामूली अंतरों को दर्शाता है, जैसे कि कैमरा थोड़ा गलत तरीके से लगाया गया है, प्रकाश थोड़ा अलग है, या सेंसर में शोर है।

"ज़ोन-पेयर: क्षेत्र-आधारित स्नैपशॉट": विकल्पों की संख्या, समय के अनुसार स्नैपशॉट, "वैल" में प्रतिशत, पूरे फ्रेम में क्षेत्र विंडो का स्नैपशॉट, जिसमें "कहाँ" का चयन शामिल है, प्रकाश और शोर, और फ़ाइलों की कुल संख्या। विंडो माउस से विस्तारित होती है।
"ज़ोन-पेयर: क्षेत्र-आधारित स्नैपशॉट": विकल्पों की संख्या, समय के अनुसार स्नैपशॉट, "वैल" में प्रतिशत, पूरे फ्रेम में क्षेत्र विंडो का स्नैपशॉट, जिसमें "कहाँ" का चयन शामिल है, प्रकाश और शोर, और फ़ाइलों की कुल संख्या। विंडो माउस से विस्तारित होती है।
सेटिंगयह क्या करता है और डिफ़ॉल्ट रूप से क्या सेट करना चाहिए
प्रत्येक क्षेत्र के लिए सिंथेटिक विकल्पएक कट पर कितने सिंथेटिक फ़ाइलें बनाई जा सकती हैं। अनुशंसित 20, 0 - केवल संदर्भ छवि, अधिकतम 500।
समय के अनुसार: प्रत्येक विकल्प एक नए कैमरे के फ्रेम सेसमावेश, 800–1200 मिलीसेकंड (न्यूनतम एक्सपोजर)। प्रत्येक विकल्प एक नए, वास्तविक फ्रेम से लिया जाता है: वास्तविक सेंसर शोर, कंपन और प्रकाश की चमक, न कि चित्रित।
प्रत्येक विकल्प के साथ, % संभावना भी दी गई है20 %. संदर्भ छवि हमेशा val में होती है: Ultralytics में, प्रत्येक वर्ग दोनों फ़ोल्डरों में होना चाहिए।
ग्रे रंग में प्रशिक्षणमॉडल के लिए सामान्य ध्वज: रंग सामान्य, असामान्य और निरीक्षण से हटा दिया जाता है। एक ही मॉडल में रंगीन और ग्रे फ़ाइलों को मिलाना संभव नहीं है, प्रोग्राम आपको चेतावनी देगा।
स्लाइड, पिक्सेल · कहाँ"यह क्षेत्र की विंडो, चिह्नित दिशाओं (← → ↑ ↓) में 0…2 पिक्सेल तक पूरी फ्रेम में स्थानांतरित होती है; छूटे हुए भाग को आस-पास के सर्किट बोर्ड के क्षेत्र से लिया जाता है, जिससे कट साफ रहता है। 'चेक' (सभी दिशाएं) प्रत्येक दिशा के लिए एक फ़ाइल बनाता है, जबकि 'एक यादृच्छिक' एक ही फ़ाइल बनाता है।"
घूर्णन, डिग्री · कहाँडिफ़ॉल्ट रूप से बंद: संरेखण क्षेत्र में, कोई घुमाव नहीं होता, और चालू करने पर दोष की सीमा धुंधली हो जाती है। "बाएं / दाएं", "सभी दिशाएं / एक यादृच्छिक" - यह स्लाइड की तरह है।
स्केल, % · कमी / वृद्धिडिफ़ॉल्ट रूप से यह बंद रहता है। दो चेकबॉक्स - दो पहलू: कम करना (<100) और बढ़ाना (>100, यह विंडो क्षेत्र के आस-पास के क्षेत्रों को शामिल करता है)। प्रत्येक चिह्नित पहलू - एक अलग फ़ाइल।
चमक / कंट्रास्ट / गामाप्रत्येक विकल्प के लिए रेंज से यादृच्छिक मान: चमक 88…112, कंट्रास्ट 88…112 %, गामा 98…102 % (छवि में); "तत्वों की ऑफसेट" प्रोफाइल में, प्रकाश को चौड़ा रखा गया है ताकि यह कोई संकेत न बने।
शोर (सिग्मा) / धुंधलापनसेंसर का ग्रेन 3…8 स्तर, हल्की फोकस 0.4…0.8 px।
"सामान्य" कॉलमजब चेक किया जाता है, तो यह अन्य के साथ सामान्य फ़ाइल में शामिल होता है; बिना चेक किए, यह एक अलग फ़ाइल "संदर्भ छवि + केवल यह दृश्य" बनाता है। जितने अधिक अलग-अलग, उतने ही अधिक फ़ाइलें प्रत्येक विकल्प के लिए।
1
"ज़ोन-पेयर: ज़ोन के अनुसार तस्वीरें" विकल्प पर क्लिक करें। संवाद के निचले भाग में, यह पहले से ही निम्नलिखित मान दर्ज करता है: "एक फ़ाइल के लिए: 1, ज़ोन के लिए: 21 (ट्रेन में), लगभग 5 (वैल में)। कुल मिलाकर, एक तस्वीर में लगभग 52 फ़ाइलें। कैमरे से 20, लगभग 16 फ़ोटो।" (दो ज़ोन के लिए)।
2
अपनी पसंद का विकल्प चुनें: डिफ़ॉल्ट (0–2 पिक्सेल का बदलाव, चमक ±5, कंट्रास्ट 95–105 %), तत्वों की स्थिति (0–1 पिक्सेल का बदलाव, चमक -10…10) या रंग और टोन (0–2 पिक्सेल का बदलाव, चमक ±2, कंट्रास्ट और गामा बंद, ताकि टोन एक विशेषता बनी रहे)।
3
"रद्द करें पर क्लिक करें। प्रक्रिया पृष्ठभूमि में चल रही है, जिसमें "ज़ोन 1/2 · 26 फ़ाइलें · फ्रेम 4/20" नामक प्रगति विंडो और रद्द करने का बटन शामिल है। प्रक्रिया पूरी होने पर: "पूर्ण: 2 ज़ोन → कक्षाएं zone_001…zone_002, फ़ाइलें: 52"। प्रोग्राम तुरंत प्रशिक्षण के लिए सेटिंग्स प्रदर्शित करता है: इमेज साइज़ 128, मॉडल साइज़ s, इपोच 50, बैच 64 (अनुभाग 4.9)।"
4
एक ही बटन को कई अलग-अलग सही प्लेटों पर बार-बार क्लिक करें। एक विश्वसनीय मॉडल के लिए, प्रत्येक श्रेणी में कम से कम 80 फ़ाइलें होनी चाहिए, और सबसे महत्वपूर्ण बात यह है कि कई वास्तविक उदाहरण (5-10 प्लेट) होने चाहिए, न कि केवल 100 विकल्पों वाली एक तस्वीर।
train\zone_001 — सामान्य C30, जो कि एक प्रकार का कंडक्टर है: real_... कैमरे से और.. syn_..._n1...n20, जिनमें "शिफ्ट" से संबंधित प्रत्यय (जैसे shiftd, shiftl, shiftr, shiftu) लगे हैं। यह शिलालेख हमेशा आधार के सापेक्ष अपनी सही स्थिति पर होता है।
train\zone_001 — सामान्य C30, जो कि एक प्रकार का कंडक्टर है: real_... कैमरे से और.. syn_..._n1...n20, जिनमें "शिफ्ट" से संबंधित प्रत्यय (जैसे shiftd, shiftl, shiftr, shiftu) लगे हैं। यह शिलालेख हमेशा आधार के सापेक्ष अपनी सही स्थिति पर होता है।
train\zone_002 — सामान्य बीआर1: real_... तीन अलग-अलग तरीकों और हल्के घुमाव (रोटल, रोटआर) और बदलाव वाले विकल्प।
train\zone_002 — सामान्य बीआर1: real_... तीन अलग-अलग तरीकों और हल्के घुमाव (रोटल, रोटआर) और बदलाव वाले विकल्प।

4.6. सिंथेटिक डेटा दो क्लिक में: तत्व आधार के साथ स्थानांतरित होता है

जिस डेटा पर यह मॉडल आधारित है। यह मॉडल विशेष रूप से तब अच्छा प्रदर्शन करता है जब इसे दोष के रूप में एक ऐसा क्षेत्र दिखाया जाता है जो न तो चित्रित है और न ही जिस क्षेत्र की जांच की जा रही है, साथ ही उसके आसपास के सर्किट के तत्व: जैसे कि स्क्रीन प्रिंटिंग लाइनें, ट्रेसेस, रंग और आधार का बनावट। यह प्रोग्राम क्षेत्र को उस तत्व के आकार तक छोटा कर देता है, और फिर उस क्षेत्र को स्थानांतरित या घुमाता है, ताकि आस-पास के फ्रेम के पिक्सेल से किनारों को भर दिया जा सके। परिणामस्वरूप, तत्व अपने मूल स्थान पर नहीं रहता है, बल्कि बिल्कुल उसी तरह दिखता है जैसा कि वास्तविक दोष, सेंसर की वास्तविक शोर, वास्तविक प्रकाश और वास्तविक सर्किट को देखकर कंट्रोलर को दिखाई देता है।

एक सामान्य क्षेत्र और एक असामान्य क्षेत्र केवल एक तत्व की आधार के सापेक्ष स्थिति में भिन्न होते हैं। बाकी सब कुछ समान होता है, इसलिए नेटवर्क "तत्व ↔ सर्किट बोर्ड" के बीच संबंध सीखता है, न कि धब्बे के रंग या प्रकाश व्यवस्था के बारे में।

दो क्लिक

1
ज़ोन-पेयर: क्षेत्र-आधारित छविछवि लें. प्रत्येक क्षेत्र से 20 अलग-अलग प्रकार की छवियों (0-2 पिक्सेल की शिफ्ट, प्रकाश, शोर) को zone_NNN में वर्गीकृत किया जाता है।
2
ज़ोन-पेयर: ज़ोन में विसंगतियाँबनाएँ. डिफ़ॉल्ट सेटिंग्स में दोनों प्रकार की विस्थापन शामिल हैं: ज़ोन की विस्थापन 5-12 px सभी दिशाओं में और एलिमेंट के क्षेत्र का घुमाव (70% क्षेत्र, वृत्त) 15-180° पर। फाइलें zone_NNN_anomaly में जाती हैं।

अब और कुछ करने की आवश्यकता नहीं है: न तो दोषों को चिह्नित करना है, और न ही दोषपूर्ण सर्किट ढूंढना है। इसके बाद, AI मॉडल को प्रशिक्षित करें

पहले और बाद में: प्रोग्राम क्या हासिल करता है

पहले: एक सही प्लेट की लाइव छवि। दोनों क्षेत्र हरे हैं - "सामान्य"।
पहले: एक सही प्लेट की लाइव छवि। दोनों क्षेत्र हरे हैं - "सामान्य"।
बाद में: समान क्षेत्रों में सिंथेटिक डेटा को असामान्य फ़ोल्डरों से डाला जाता है - C30 दाईं ओर और नीचे की ओर स्थानांतरित, BR1 घुमाया गया है। दोनों क्षेत्र लाल हैं - "असामान्य"। इसी तरह, वास्तविक दोष होने पर प्लेट कैसी दिखेगी।
बाद में: समान क्षेत्रों में सिंथेटिक डेटा को असामान्य फ़ोल्डरों से डाला जाता है - C30 दाईं ओर और नीचे की ओर स्थानांतरित, BR1 घुमाया गया है। दोनों क्षेत्र लाल हैं - "असामान्य"। इसी तरह, वास्तविक दोष होने पर प्लेट कैसी दिखेगी।
बड़ा, क्षेत्र 1 (C30): कैमरे से बाईं ओर सामान्य, दाईं ओर सिंथेटिक डेटा - तत्व और आधार को नीचे-दाएं की ओर स्थानांतरित किया गया है, किनारे पर पड़ोसी फ्रेम से भरा हुआ है।
बड़ा, क्षेत्र 1 (C30): कैमरे से बाईं ओर सामान्य, दाईं ओर सिंथेटिक डेटा - तत्व और आधार को नीचे-दाएं की ओर स्थानांतरित किया गया है, किनारे पर पड़ोसी फ्रेम से भरा हुआ है।
बड़ा, क्षेत्र 2 (BR1): दाईं ओर तत्व का क्षेत्र 180° पर घुमाया गया है - प्लेट पर जगहें सही जगह पर हैं, लेकिन शरीर गलत दिशा में दिख रहा है।
बड़ा, क्षेत्र 2 (BR1): दाईं ओर तत्व का क्षेत्र 180° पर घुमाया गया है - प्लेट पर जगहें सही जगह पर हैं, लेकिन शरीर गलत दिशा में दिख रहा है।

ये फ़ोल्डर, उपयोगकर्ता द्वारा देखे गए असामान्य तत्वों को दर्शाते हैं।

4.5 अनुभाग में सामान्य फ़ोल्डरों के साथ तुलना करें: अंतर केवल आधार के सापेक्ष तत्वों की स्थिति में है।

train\zone_001_anomaly — त्रुटि कोड: C30। प्रत्येक t000, t001... जैसे फ़ाइल में नौ फ़ाइलें हैं: combo1_d"_dl", "_dr", "_l", "_r", "_u", "_ul", "_ur" - ये क्षेत्र 5-12 पिक्सेल तक, आठ दिशाओं में खिसकाए गए हैं (नीचे = 'd', ऊपर = 'u', बाएं = 'l', दाएं = 'r'), और "rotate1" - इसका मतलब है कि संधारित्र का क्षेत्र घुमाया गया है।
train\zone_001_anomaly — त्रुटि कोड: C30। प्रत्येक t000, t001... जैसे फ़ाइल में नौ फ़ाइलें हैं: combo1_d"_dl", "_dr", "_l", "_r", "_u", "_ul", "_ur" - ये क्षेत्र 5-12 पिक्सेल तक, आठ दिशाओं में खिसकाए गए हैं (नीचे = 'd', ऊपर = 'u', बाएं = 'l', दाएं = 'r'), और "rotate1" - इसका मतलब है कि संधारित्र का क्षेत्र घुमाया गया है।
train\zone_002_anomaly — त्रुटि BR1: सर्किट बोर्ड के चारों ओर लगे पिन, आठ अलग-अलग दिशाओं में मुड़े हुए हैं और एक अनियमित कोण पर हैं। सर्किट बोर्ड और पिन वास्तविक हैं।
train\zone_002_anomaly — त्रुटि BR1: सर्किट बोर्ड के चारों ओर लगे पिन, आठ अलग-अलग दिशाओं में मुड़े हुए हैं और एक अनियमित कोण पर हैं। सर्किट बोर्ड और पिन वास्तविक हैं।
फाइल नामों को कैसे पढ़ें। syn_<तारीख>_t003_combo1_dr.jpg — कॉपी 3, सामान्य फाइल, नीचे-दाएं की ओर बदलाव (d = नीचे, r = दाएं, u = ऊपर, l = बाएं); …_rotate1.jpg — तत्व के क्षेत्र का घुमाव; …_scale1_dn/_up — छोटे या बड़े आकार में स्केल करना; …_tl/_c/_br — क्षेत्र कहाँ था (कोण, केंद्र)। नाम के माध्यम से, यह हमेशा स्पष्ट होता है कि फाइल में कौन सी त्रुटि है, और अतिरिक्त डेटा को "सिंथेटिक डेटा क्लास (ट्रेन + वेल)" बटन के माध्यम से हटा दिया जाता है।

तत्वों का लेबलिंग: "गहरा" निशान क्यों है और इसे कैसे सेट किया जाता है

भागों के परतों पर एक लेबल होता है - 1-2 पिक्सेल की मोटाई वाले अक्षरों और रेखाएँ। यह लेबल एक बैच से दूसरे बैच में बदलता रहता है: अलग-अलग फ़ॉन्ट, कैपेसिटर पर लिखे अक्षरों की दिशा, कुछ प्रतीकों को मिटा दिया जाता है। यदि "खरोंच" जैसी कृत्रिम दोष को इसी तरह की पतली रेखा से दर्शाया जाता है, तो सेंसर इसे लेबल की रेखा और सेंसर की शोर से अलग नहीं कर पाएगा और दूसरे बैच के सही भागों को अस्वीकार करना शुरू कर देगा।

सिंथेटिक डेटा ज़ोन-पेयर इस समस्या को दोनों तरफ से हल करता है। पहले, मुख्य दोष - तत्व का विस्थापन - लेबल को शरीर के साथ ले जाता है, इसलिए लेबल एक सामान्य और असामान्य दोनों स्थितियों में समान दिखता है। दूसरे, डिफ़ॉल्ट रूप से खींचा गया रेखा/खरोंच मोटा (⅛ क्षेत्र, 3px से कम नहीं) होता है और यह स्पष्ट रूप से लेबल की रेखा जैसा नहीं होता। अब, रेखा की मोटाई को स्पष्ट रूप से परिभाषित किया जा सकता है: रेखा की मोटाई, px (0 = ऑटो) फ़ील्ड रेखा और क्रॉस दोनों पर लागू होता है।

चित्रित दोष (जैसे कि आयत, वृत्त, रेखा, "गायब तत्व", धुंधली пятन और अन्य) को एक संकुचित समूह में व्यवस्थित किया गया है: "उत्पादित क्षेत्र पर सिंथेटिक दोष"। डिफ़ॉल्ट रूप से, यह संकुचित और अक्षम होता है: बोर्ड पर मुख्य दोष - विस्थापन। इसे विशिष्ट कार्यों के लिए चालू करें: भरा हुआ क्षेत्र, अतिरिक्त बूंद, मिटा हुआ लेबल।

आकृतियों के पैरामीटरयह क्या निर्धारित करता है
आकार: ... से ... तक, क्षेत्र के प्रतिशत में / pxआकृति का आकार या लंबाई। प्रतिशत में - क्षेत्र के छोटे पक्ष से (किसी भी क्षेत्र के लिए); px में - सभी क्षेत्रों में समान, जो उपयोगी है जब वास्तविक दोष का आकार पिक्सेल में ज्ञात हो।
भरनापूर्ण / सीमा / मिश्रण (सीमा भी "गहरी" है)।
रेखा की मोटाई, pxरेखा / निशान और क्रॉस। 0 - ऑटो (गहरी)। तत्वों को लेबल करने के लिए 3px से कम न जाएं।
दोष कहाँ हैकेंद्र में, बाईं ओर, दाईं ओर, ऊपर, नीचे - आप आकृति को कहाँ रखना चाहते हैं (थोड़ी सी अनियमितता के साथ)। "सभी स्थितियाँ" विकल्प चुनने पर, प्रत्येक चिह्नित स्थान के लिए एक अलग फ़ाइल बनेगी; "एक यादृच्छिक" विकल्प चुनने पर, एक फ़ाइल बनेगी और स्थान चिह्नित स्थानों में से यादृच्छिक रूप से चुना जाएगा। विंडो के निचले भाग में स्थित फ़ाइल काउंटर, इन विकल्पों को ध्यान में रखते हुए तुरंत गणना करता है।
आकृतियों के रंग: 5 स्लॉटपांच स्लॉट, नाम की सूची के बजाय। चेक - स्लॉट सक्रिय है, रंग यादृच्छिक रूप से चिह्नित रंगों में से लिया जाता है (±12 के चैनल में, ताकि यह एक ही रंग न हो)। नमूना बटन - पैलेट से रंग चुनें, 💧 पिपेट - कैमरे की लाइव फ़्रेम पर क्लिक करें (पहिया - ज़ूम, दाहिना बटन - पैन), और वास्तविक विवरण या प्लेट से रंग लें। डिफ़ॉल्ट रूप से दो स्लॉट सक्रिय हैं - गहरा और हल्का, बाकी तीन निष्क्रिय हैं।
"सामान्य" कॉलमकिसी दोष का प्रकार सामान्य फ़ाइल में अन्य "सामान्य" दोषों (जैसे, किसी स्थानांतरित तत्व पर खरोंच) के साथ एक साथ दर्ज किया जाता है। यदि चेक नहीं है, तो यह एक अलग फ़ाइल "सामान्य + केवल यह दोष" होगा। "सभी स्थितियों" वाला प्रकार हमेशा अलग होगा।

4.7. क्षेत्र में विसंगतियाँ: सेटिंग विंडो

"ज़ोन-पेयर: असामान्य क्षेत्र" बटन सामान्य कटआउट से zone_NNN_anomaly कक्षाएं बनाता है। सभी क्षेत्र, सिवाय लाल (AI मॉडल के फ्रेम पर क्लिक करके बंद किए गए) क्षेत्रों को शामिल किया जाता है। असामान्यताओं की कक्षाएं हर जगह आवश्यक नहीं हैं: उन्हें केवल उन क्षेत्रों के लिए जोड़ें जहां वास्तव में दोष मौजूद है, जबकि अन्य क्षेत्रों को मॉडल पहचान के माध्यम से जांचा जाएगा।

"क्षेत्र-जोड़ी: क्षेत्र विसंगतियाँ" विंडो: दोष के ऊपर प्रतिलिपि; पैरामीटर, स्थान और पैलेट के साथ खींची गई आकृतियों का एक संकुचित समूह; क्षेत्र को आकार और ±% पैमाने के साथ स्थानांतरित, घुमाएँ और स्केल करें; उप-क्षेत्र; दोष पर प्रकाश; समय और val के अनुसार।
"क्षेत्र-जोड़ी: क्षेत्र विसंगतियाँ" विंडो: दोष के ऊपर प्रतिलिपि; पैरामीटर, स्थान और पैलेट के साथ खींची गई आकृतियों का एक संकुचित समूह; क्षेत्र को आकार और ±% पैमाने के साथ स्थानांतरित, घुमाएँ और स्केल करें; उप-क्षेत्र; दोष पर प्रकाश; समय और val के अनुसार। माउस से विंडो का विस्तार होता है।
सेटिंगयह क्या करता है
दोष पर प्रतिलिपिएक ही संख्या सभी प्रकारों के लिए: प्रत्येक चिह्नित प्रकार के लिए कितने प्रतियां नई यादृच्छिक मापदंडों के साथ बनाई जाएं (डिफ़ॉल्ट रूप से 10)।
▸ कट के बाद सिंथेटिक दोषडिफ़ॉल्ट रूप से एकत्रित समूह: आयत, छोटे आयत, वृत्त, दीर्घवृत्त, त्रिभुज, आठ, रेखा/झुर्री, क्रॉस, गायब तत्व, धुंधली пятन, शोर भरा क्षेत्र, किसी अन्य क्षेत्र का टुकड़ा। आकृतियों, स्थान और रंग योजना के पैरामीटर - अनुभाग 4.6।
स्लाइड, पिक्सेल · कहां · आकारमुख्य दोष: प्लेट का वह क्षेत्र (वृत्त या वर्ग) 5-12 पिक्सेल तक निर्दिष्ट दिशाओं में (← → ↑ ↓ और दो विकर्ण ⤡ ⤢) स्थानांतरित होता है। ऊर्ध्वाधर / क्षैतिज पैमाने, ±% - क्षेत्र का आकार: 0 - पूरा क्षेत्र, -30 - 30% छोटा क्षेत्र (केवल तत्व स्थानांतरित होता है, आधार बरकरार रहता है), +30 - क्षेत्र बड़ा क्षेत्र (पिक्सेल से आस-पास के तत्वों को शामिल करता है)। सभी दिशाएँ - प्रत्येक दिशा के लिए फ़ाइल में।
घूर्णन, डिग्री · आकारक्षेत्र (वृत्त या वर्ग, समान पैमाना ±%) एक यादृच्छिक कोण पर दो दिशाओं में घूमता है।
स्केल, % · कमी / वृद्धिक्षेत्र को दोष के रूप में: 60–85% तक कम करना या 120–160% तक बढ़ाना। प्रत्येक चिह्नित पक्ष के लिए एक अलग फ़ाइल। आमतौर पर यह बंद रहता है।
"सामान्य" स्लाइस और घूर्णन के लिएयदि दोनों चेकबॉक्स टिके हुए हैं, तो इसका मतलब है कि "एक फ़ाइल में एक ही ऑब्जेक्ट": स्थानांतरण (शिफ्ट) और रोटेशन दोनों एक ही रूपांतरण (ट्रांसफॉर्मेशन) द्वारा लागू किए जाते हैं (एक के बाद एक नहीं, अन्यथा यह "गड़बड़" हो जाता), और क्षेत्र का आकार और आकृति सामान्य होते हैं और स्थानांतरण (शिफ्ट) में परिभाषित किए जाते हैं।
▸ उप-क्षेत्रक्षेत्र को 2, 4 या 9 भागों में विभाजित किया जाता है, और प्रत्येक के भीतर एक अलग क्षेत्र घूमता या स्लाइड होता है; "प्रत्येक उप-क्षेत्र के लिए अलग-अलग छवि" विकल्प प्रत्येक भाग के लिए एक फ़ाइल देता है। यह बड़े क्षेत्रों के लिए उपयोगी है जिनमें कई तत्व हैं।
प्रत्येक दोष वाली फ़ाइल पर प्रकाश और शोरचालू और सामान्य: दोष को आकार में भिन्न होना चाहिए, न कि प्रकाश में।
समय के अनुसार / val में छवियांप्रत्येक प्रति, जो कैमरे की नई फ़्रेम (800 मिलीसेकंड) से ली गई है, 20% val में, पहली फ़ाइल हमेशा val में।
1
"ज़ोन-पेयर: असामान्य क्षेत्र" पर क्लिक करें। परिणाम पहले से ज्ञात है: "क्षेत्र: 2 · प्रति प्रति: 2 फ़ाइलें · प्रति क्षेत्र: 20 · कुल ≈ 40 (+ val में कुछ भाग)"। "सभी दिशाओं" में, फ़ाइलों की प्रति प्रति में 9 बदलाव होते हैं, जैसा कि ऊपर दिए गए फ़ोल्डरों में है।
2
प्रोफाइल चुनें: डिफ़ॉल्ट (5–12 पिक्सेल का क्षेत्र, क्षेत्र, आकृतियों और उप-क्षेत्रों को स्थानांतरित और घुमाया जा सकता है, और उन्हें बंद किया जा सकता है), तत्वों को स्थानांतरित करना (केवल 4–12 पिक्सेल का स्थानांतरण, सामान्य के समान प्रकाश), या रंग और रंग (आकृतियाँ, "तत्व गायब", पैलेट से रंग, बिना किसी स्थानांतरण के)। यह विंडो तुरंत आपके परिवर्तनों को याद रखती है, हर बार जब आप क्लिक करते हैं।
3
"Создать" पर क्लिक करें। "zone_NNN_anomaly" नामक कक्षाएं मॉडल ट्री में दिखाई देंगी। वास्तविक दोष, जो लाइन से आए हैं, उन्हें उसी कक्षा में "<ROI → कक्षा में जोड़ें" के माध्यम से जोड़ें।
यह महत्वपूर्ण है। सिंथेटिक शिफ्ट की निचली सीमा (5px) सामान्य सीमा (0-2px) के ठीक ऊपर स्थित है। सामान्य सीमा को 5px तक न बढ़ाएं और असामान्य सीमा को 2px तक न सीमित करें: इससे सीमा गायब हो जाएगी और मॉडल वास्तविक प्लेटों पर अस्थिर हो जाएगा। यदि आपको अलग-अलग संवेदनशीलता की आवश्यकता है, तो दोनों सीमाओं को एक साथ बदलें और उन्हें मिलीमीटर में फिर से गणना करें (अनुभाग 1.3)।

4.8. संदर्भ छवि के साथ क्षेत्र: सोल्डरिंग प्लेट और क्षेत्र संपादक

"संदर्भ छवि के साथ क्षेत्र" बटन, जो पहले से सहेजी गई सर्किट बोर्ड की संदर्भ छवि को खोलता है, जिसमें ग्रिड शामिल है। यहां, कैमरा के बिना सिंथेटिक डेटा बनाया जा सकता है: पहिया - ज़ूम, दाहिना बटन - पैन, बायां - क्षेत्र का चयन (Ctrl - जोड़ें, खींचें - सीमा के साथ, Ctrl+A - सभी), डबल क्लिक - क्षेत्र संपादक।

  • चुने हुए क्षेत्रों के लिए सोल्डरिंग नट्स… — "सोल्डरिंग नट्स: ट्रैक के बीच शॉर्ट सर्किट" नामक विंडो। यह प्रोग्राम स्वचालित रूप से क्षेत्र में ट्रैक (ओत्ज़ की सीमा, 2px या उससे अधिक चौड़ी हल्के पट्टियाँ) ढूंढता है, और आसन्न ट्रैकों के बीच एक अंतराल में सोल्डरिंग नट लगाता है, जो ट्रैकों के रंग, एक गहरे किनारे और चमक के साथ होता है। सेटिंग्स: ऊर्ध्वाधर या क्षैतिज ट्रैकों के बीच, 1 से 3 तस्वीरों पर सोल्डरिंग नट्स, क्षेत्र के 8 से 18% का आकार, क्षेत्र के लिए 5 तस्वीरें, जहाँ लगाना है - विसंगति में या सामान्य में, सतह पर प्रकाश, val - एक नई तस्वीर जिसमें अलग प्रकाश हो या सटीक प्रतिलिपि।
  • क्षेत्र संपादक: ब्रश, पिपेट, रंग से दाग, क्षेत्र की प्रतिलिपि, सम्मिलित करें, स्टैम्प, प्लेट क्षेत्र; "सल्डर / क्षेत्र", "प्लेट", "छाया / मास्क", सफेद, काला; "प्रतिलिपि" फ़ील्ड और छवि बनाएँ बटन। इस प्रकार, एक दोष बनाया जाता है जो पहले रेखा पर मौजूद नहीं था: भरा हुआ क्षेत्र, अतिरिक्त तत्व, गायब लेबल।

एडिटर की फाइलें "edit_…" जैसे नामों से जानी जाती हैं और ये या तो "ज़ोन" श्रेणी में या फिर इसके किसी "असामान्य" पहलू में वर्गीकृत होती हैं। "इंस्पेक्ट" टैब में, वही विंडो खुलती है, लेकिन केवल देखने के लिए।

4.9. मॉडल का प्रशिक्षण

"AI मॉडल" टैब में "प्रशिक्षण सेटिंग्स" को स्वचालित रूप से पहली बार स्कैन के बाद क्षेत्रों के अनुसार भर दिया जाता है: इमेज साइज़ 128, मॉडल साइज़ s, एपोच 50, बैच 64। ये मान 108-137 पिक्सेल के क्षेत्रों के लिए हैं। 256 पिक्सेल के क्षेत्रों के लिए, जैसा कि उदाहरण में दिखाया गया है, इमेज साइज़ 192 या 256 सेट करें - इस स्थिति में कट लगभग सिकुड़ नहीं होगा (मुख्य विंडो में एपोच 100 और इमेज साइज़ 192 सेट हैं)। मूल्यों की जांच करें और "AI मॉडल को प्रशिक्षित करें" पर क्लिक करें।

पैरामीटरइसका क्या मतलब हैइसे कैसे चुनें
Epochsमॉडल कितनी बार पूरी सेट देखेगाडिफ़ॉल्ट रूप से 50; यदि असामान्य वर्गों की संख्या अधिक है, तो 100–150
Batch Sizeएक चरण में कितने चित्र64; यदि वीडियो मेमोरी कम है, तो कम करें
Image Sizeकटआउट किस आकार में होते हैं, जो 32 से गुणा होता हैलगभग क्षेत्र का आकार: 128 के लिए 108–137 पिक्सेल का क्षेत्र; 256 पिक्सेल के लिए 192–256, जैसा कि उदाहरण में
Model Sizen / s / m / l / xs — सैकड़ों युग्मों के लिए इष्टतम; n पर्याप्त नहीं है, m और उससे ऊपर — धीमा
Deviceसीखने के लिए क्या इस्तेमाल करें0 (जीपीयू) NVIDIA वीडियो कार्ड के साथ; बिना CUDA के, प्रोग्राम स्वचालित रूप से सीपीयू पर स्विच कर देगा
Workersडेटा तैयार करने की संख्या12 डिफ़ॉल्ट रूप से मल्टी-कोर प्रोसेसर के लिए
1
प्रारंभ करने से पहले, प्रोग्राम निम्नलिखित जांच करता है: यह खाली क्लास, अतिरिक्त फ़ोल्डरों को हटाने का सुझाव देता है, और यह सुनिश्चित करता है कि 'val' में जहां खाली है, वहां 'val' मौजूद है। पहली बार चलाने पर, प्रशिक्षण वातावरण स्थापित किया जाता है (Python 3, ultralytics, onnx, onnxslim, onnxruntime पैकेज) - इंटरनेट और कुछ मिनटों की आवश्यकता होती है।
2
'ज़ोन-पेयर' मॉडल के लिए, 'erasing', 'flip', 'crop' और 'randaugment' का उपयोग नहीं किया जाता है: ये ऑगमेंटेशन विसंगतिपूर्ण वर्गों (उल्टा क्षेत्र - यह पहले से ही एक अलग क्षेत्र है) के साथ संघर्ष करते हैं। कंसोल में संबंधित पंक्ति लिखी जाती है।
3
"स्टॉप एआई मॉडल" बटन लाल हो जाता है। दाईं ओर की रिंग प्रत्येक युग के लिए प्रतिशत दिखाती है। प्रशिक्षण की प्रगति कंसोल में दिखाई देती है। दो ज़ोन और 100 युगों के साथ, ग्राफिक्स कार्ड पर यह प्रशिक्षण लगभग 10-15 मिनट में पूरा होता है।
4
प्रोग्राम के अंत में, यह best.onnx को मॉडल फ़ोल्डर के रूट में निर्यात करता है और तुरंत इसे निरीक्षण के लिए आवंटित करता है। "ONNX निर्यात" बटन बिना किसी पुन: प्रशिक्षण के निर्यात को दोहराता है।
सलाह। दोष जोड़ने या नए प्लेटफ़ॉर्म जोड़ने के बाद, प्रशिक्षण प्रक्रिया उसी बटन के माध्यम से जारी रखी जाती है: डेटासेट को बढ़ाया जाता है, और फिर एआई मॉडल को प्रशिक्षित किया जाता है। best.onnx इसे फिर से लिखा जा रहा है। इस प्रक्रिया के दौरान, ग्रिड को न छुएं।

5. निरीक्षण

पूरा काम "Inspect" टैब पर होता है। मॉडल को प्रशिक्षण के बाद पहले से ही सेट कर दिया गया है; अब आपको क्षेत्रों की जांच करनी है, सीमा निर्धारित करनी है, गति का स्रोत चुनना है, और यदि भुगतान किसी भी स्थिति में आता है, तो लाइव कन्वेयर को चालू करना है।

"इंस्पेक्ट" टैब का उपयोग: मॉडल model_4\best.onnx, "इंस्पेक्शन क्लास: प्लेट - क्षेत्र 2, असामान्यताओं का वर्ग 2। क्षेत्र N को zone_N / zone_N_anomaly के भीतर हल किया जाता है, सीमा 50%, 2000 मिलीसेकंड की अवधि के साथ एक सक्रिय कन्वेयर, और "सामान्य - 112 पॉइंट्स" संकेतक।
"इंस्पेक्ट" टैब का उपयोग: मॉडल model_4\best.onnx, "इंस्पेक्शन क्लास: प्लेट - क्षेत्र 2, असामान्यताओं का वर्ग 2। क्षेत्र N को zone_N / zone_N_anomaly के भीतर हल किया जाता है, सीमा 50%, 2000 मिलीसेकंड की अवधि के साथ एक सक्रिय कन्वेयर, जिसमें "सामान्य" और "112 पॉइंट्स" का इंडिकेटर है, नीचे गति और "GPU", "ग्रे एनालिसिस" के प्रतीक हैं। फ्रेम में दोनों क्षेत्र हरे हैं - "सामान्य"।

5.1. मॉडल और क्षेत्रों को निर्दिष्ट करें और जांचें

1
यदि मॉडल निर्दिष्ट नहीं है, तो "ONNX मॉडल का निरीक्षण के लिए चुनें" पर क्लिक करें और मॉडल फ़ोल्डर में "best.onnx" निर्दिष्ट करें। "निरीक्षण के वर्ग" पंक्ति सभी वर्गों को दिखाएगा; नाम सीधे ONNX फ़ाइल से लिए जाते हैं, इसलिए आउटपुट नंबर निश्चित रूप से नामों से मेल खाते हैं।
2
कृपया क्लिक करें। ज़ोन-पेयर: क्षेत्र ↔ मॉडल (जांच करें, सीमा)।खिड़की में यह जानकारी दिखाई दे रही है: "ग्रिड में ज़ोन: 2 / कक्षाएं"। zone_NNN मॉडल में: 2, विसंगतियों की श्रेणियां: 2 / "प्रत्येक ग्रिड क्षेत्र की अपनी श्रेणी होती है।" "मॉडल में श्रेणीहीन क्षेत्र" या "ग्रिड में श्रेणीहीन क्षेत्र" जैसे चेतावनी संदेशों का अर्थ है कि प्रशिक्षण के बाद ग्रिड में बदलाव किया गया था।
3
AI का उपयोग न करें अस्थायी रूप से इस कैमरे पर विश्लेषण को बंद कर देता है, लेकिन सेटिंग्स को नहीं मिटाता (प्रत्येक कैमरे के लिए एक विशिष्ट फ़्लैग); मॉडल हटाएं मॉडल और स्लॉट को पूरी तरह से हटा देता है।

5.2. क्षेत्र की पहचान सीमा

प्रत्येक क्षेत्र के लिए, नेटवर्क सभी वर्गों की संभावनाएँ प्रदान करता है, लेकिन निर्णय केवल दो वर्गों के बीच लिया जाता है। सामान्य संभावना q = p(zone_N) / (p(zone_N) + p(zone_N_anomaly)) को "पहचान" से गुणा किया जाता है - यानी, क्या दो वर्गों ने नेटवर्क से निकलने का रास्ता वास्तव में लिया है (यदि पूर्ण पहचान 10% या उससे अधिक है)। अंतिम मूल्यांकन 0…100% की तुलना एक सीमा से की जाती है: यदि यह सीमा से ऊपर है, तो यह "सामान्य" होगा, और यदि यह सीमा से नीचे है, तो यह "असामान्य" होगा।

डिफ़ॉल्ट सीमा 50% है, जो मॉडल के साथ board.json में संग्रहीत होती है और तुरंत लागू होती है, बिना रीस्टार्ट किए। 50% से कम सीमा को सामान्य रूप से और अधिक लागू किया जाता है: 25% → 6% का कट-ऑफ, 10% → 0.4%, 1% → लगभग सभी हरे; 99% केवल आत्मविश्वास वाले क्षेत्रों को ही पास करते हैं। इस पैमाने का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि ऑपरेटर 5% और 99% के बीच के अंतर को देख सके, न कि केवल लाल क्षेत्रों को।

सुझाव। 10 ज्ञात अच्छे प्लेटों पर एक सीमा निर्धारित करें: इसे तब तक बढ़ाएं जब तक कि सभी क्षेत्र हरे रंग में रहें, फिर ज्ञात दोष वाले प्लेटों पर जांच करें। हर 10 सेकंड में, प्रोग्राम कंसोल में "[क्षेत्र-युगल] … सामान्य N, विसंगति M, सीमा 0.50; सबसे खराब q: z17:0.31 ..." जैसे स्ट्रिंग लिखता है - इससे पता चलता है कि कौन से क्षेत्र सीमा के सबसे करीब हैं।

5.3. लाइव पाइपलाइन: किसी भी स्थिति में

लाइव कन्वेयर: किसी भी स्थिति में प्लेट की खोज में, प्रत्येक विश्लेषण से पहले प्लेट को संरेखण क्षेत्र में खोजने की प्रक्रिया शामिल है: एक फ्रेम को संदर्भ छवि के साथ मिलाया जाता है, संयुक्त छवि से क्षेत्र काटे जाते हैं, और वीडियो में संरेखण क्षेत्र और क्षेत्रों की सीमाएं (हरे - सामान्य, लाल - असामान्य) चिह्नित की जाती हैं। अवधि, मिलीसेकंड फ़ील्ड, प्लेट को कितनी बार खोजा जाए, यह निर्धारित करता है (डिफ़ॉल्ट रूप से 1000, तस्वीर में 2000)। आस-पास का इंडिकेटर: हरा "सामान्य · N बिंदु", लाल "असामान्य · N बिंदु", नारंगी "प्लेट नहीं मिली" या "कोई संदर्भ छवि नहीं - रिकॉर्ड करें"। निर्णय एक विश्लेषण पर आधारित होता है, बिना किसी जानकारी को जमा किए।

संदर्भ छवि और संरेखण क्षेत्र को उसी बटन संदर्भ छवि को लॉक करें के माध्यम से लॉक किया जाता है, जैसा कि शूटिंग के दौरान किया जाता है (अनुभाग 4.4); संदर्भ छवि और क्षेत्र इसे देखने के लिए खोलता है। वीडियो में संरेखण क्षेत्र की सीमाएं और नीले समर्थन बिंदु दर्शाए जाते हैं, जिन पर भुगतान मेल खाता है। संरेखण के बाद फ्रेम के किनारों से बाहर निकलने वाले क्षेत्रों को SKIP लेबल के साथ छोड़ दिया जाता है।

5.4. किस सिग्नल पर विश्लेषण करना है

'टेम्प' का स्रोत हमेशा एक ही होता है: जब एक नया स्थापित किया जाता है, तो पुराना हटा दिया जाता है।

तरीकाकैसे चालू करेंकब उपयोग करें
कैमरे के माध्यम से"कैमरे के माध्यम से" चेक बॉक्सनिरंतर निगरानी; गति को "सेकंड में विश्लेषण" स्लाइडर के माध्यम से सीमित करें
टाइमर के माध्यम से"टाइमर" चेक बॉक्स और अंतराल (मिलीसेकंड में)नियमित और कम अंतराल पर निगरानी, जैसे प्रति सेकंड एक बार
ट्रिगर के माध्यम से"ट्रिगर" सूची में से एक कनेक्शन चुनें और "इनपुट पर +" या "−" के लिए फ्रंट चुनेंकैमरे पर सेंसर के साथ कन्वेयर: उत्पाद के आने के समय पर फ्रेम लिया जाता है - सबसे सटीक तरीका (अनुभाग 6)
GPU"GPU" चेकबॉक्सडिफ़ॉल्ट रूप से चालू होता है; स्विच करने पर मॉडल को रीस्टार्ट किया जाता है
ग्रे विश्लेषण"ग्रे विश्लेषण" चेकबॉक्सयह स्वचालित रूप से उन मॉडलों के लिए चालू होता है जिन्हें ग्रे में प्रशिक्षित किया गया है; अनुमान लगाने से पहले कटआउट ग्रे में परिवर्तित किए जाते हैं

5.5. पीले क्षेत्र: क्लिक करके क्षेत्र को बंद करें

लाइन पर, कुछ क्षेत्रों को अस्थायी रूप से नियंत्रण से बाहर करने की आवश्यकता हो सकती है: यह इसलिए हो सकता है क्योंकि कोई घटक इस बैच में स्थापित नहीं है, या कोई क्षेत्र किसी उपकरण से अवरुद्ध है, या सिस्टम का परीक्षण चल रहा है। इसके लिए, आपको ग्रिड या मॉडल को संपादित करने की आवश्यकता नहीं है; क्षेत्र सीधे वीडियो पर, केवल "निरीक्षण" टैब पर, निष्क्रिय किए जा सकते हैं।

1
कैमरे के पटल पर किसी क्षेत्र पर बायां बटन क्लिक करें: वह क्षेत्र पीला हो जाएगा और विश्लेषण से बाहर हो जाएगा। फिर से क्लिक करने से वह फिर से सक्रिय हो जाएगा।
2
क्षेत्रों का समूह: बाएं बटन को दबाएं और सर्किट बोर्ड पर फ्रेम को खींचें। फ्रेम में आने वाले सभी क्षेत्रों को बंद कर दिया जाता है; यदि वे पहले से ही पीले थे, तो फ्रेम उन्हें फिर से चालू कर देता है। यह पहिया को बढ़ाने पर भी काम करता है।
3
पीले क्षेत्रों की सूची कैमरे और मॉडल के अनुसार डेटाबेस में संग्रहीत होती है, और यह प्रोग्राम और कैमरे के रीस्टार्ट के साथ-साथ अपडेट होती है। कंसोल में "\[क्षेत्र] ... क्षेत्र बंद: N" लिखा जाता है।

"पीले क्षेत्र क्या करते हैं, यह सामान्य चेकबॉक्स पीले (क्लिक करके अक्षम) क्षेत्र चुप रहते हैं आउटपुट विंडो में "ऑडियो" टैब पर (डिफ़ॉल्ट रूप से सक्षम):"

चेकबॉक्सपीले क्षेत्रों का व्यवहार
चालू (डिफ़ॉल्ट रूप से)क्षेत्र का विश्लेषण बिल्कुल नहीं होता: कटआउट नेटवर्क में नहीं भेजा जाता, "ऑफ" लेबल होता है, कोई आवाज या TCP-संदेश नहीं, और कैमरे का बंद होना। लाइव कन्वेयर में, पीले क्षेत्र का "सामान्य / विसंगति" पर कोई प्रभाव नहीं पड़ता।
बंदपीला बॉर्डर केवल एक नोट के रूप में रहता है: क्षेत्र का विश्लेषण किया जा रहा है और यह सामान्य रूप से काम कर रहा है। यह सुविधाजनक है ताकि जांच के लिए क्षेत्रों को चिह्नित किया जा सके, बिना नियंत्रण को बंद किए।
सुझाव। पीले क्षेत्रों में रिजेक्टर के नियम हटाने की आवश्यकता नहीं है: जब चेकबॉक्स चालू होता है, तो वे परिणाम प्राप्त नहीं करते हैं, लेकिन जब इसे फिर से बंद किया जाता है, तो क्षेत्र तुरंत काम करना शुरू कर देगा।

5.6. स्क्रीन और कंसोल पर क्या दिखाई देता है

  • क्षेत्र के ऊपर परिणाम दर्ज किया गया है; क्षेत्र का ढांचा - रंग के अनुसार, जब कोई ट्रिगर सक्रिय होता है तो यह लाल रंग का होता है। जब 50 से अधिक क्षेत्र होते हैं, तो केवल हरे रंग का ढांचा दिखाई देता है, जबकि असामान्य और अनिश्चित क्षेत्र लाल रंग में दर्शाए जाते हैं। प्रत्येक फ्रेम में सैकड़ों क्षेत्रों के कारण, चित्र को पढ़ना और रेंडर करना मुश्किल हो गया था। पीले रंग के क्षेत्र को क्लिक करके बंद किया जा सकता है (अनुभाग 5.5)।
  • नीचे दिए गए "ट्रिगर द्वारा विश्लेषण" पैनल में, टैब का निचला भाग प्रत्येक ट्रिगर इवेंट को एक पंक्ति में दिखाता है: `[घंटे:मिनट:सेकंड.मिलीसेकंड] कैमरा इनपुट + ट्रिगर 4 मिलीसेकंड | एआई 12 मिलीसेकंड #57` और प्रत्येक क्षेत्र के लिए परिणाम। ये पंक्तियाँ डेटाबेस में नहीं लिखी जाती हैं।
  • वीडियो में किसी क्षेत्र पर राइट-क्लिक करने पर: "इस क्षेत्र में 'क्लास' → इसे '…' के रूप में मानें" इस क्षेत्र के लिए मॉडल की प्रतिक्रिया का नाम बदल देता है (यह मॉडल को नहीं बदलता, लेकिन रिजेक्टर और लॉग में एक नया नाम दिखाई देगा); साथ ही, "इस क्षेत्र के लिए रिजेक्टर बनाएं" और नियमों की गणना भी।
  • जांच के चित्रों को सहेजें: निरीक्षण के चित्रों और फ़ाइलों को सहेजने का विकल्प। "फ़ोल्डर:" विकल्प में, उन फ़ाइलों को सहेजा जाएगा जिनमें चित्रित क्षेत्र शामिल हैं, और उनका फ़ाइल एक्सटेंशन "inspect_….jpg" होगा। प्रत्येक कैमरे के लिए यह सेटिंग अलग-अलग होती है।
  • हर 10 मिनट में, "diag" नामक उप-फ़ोल्डर में, एक लाइव कन्वेयर बेल्ट की फ़्रेम और क्षेत्रों की एक टेक्स्ट सूची लिखी जाती है, और अंतिम 20 फ़ोटो संग्रहीत की जाती हैं - ताकि विवादित मामलों की जांच बिना फ़ोल्डर के आकार में वृद्धि के की जा सके।

6. ट्रिगर: कैमरे के इनपुट पर बाहरी सेंसर

मुख्य मोड: कन्वेयर के लिए, कैमरा सेंसर के एक निश्चित इनपुट से विद्युत सिग्नल के माध्यम से एक फ्रेम कैप्चर करता है। यह सबसे सटीक फ्रेम कैप्चरिंग का क्षण है: उत्पाद हमेशा एक ही फ्रेम में होता है, और विश्लेषण केवल एक बार उत्पाद पर किया जाता है। विंडो "ट्रिगर" सेंसर और कैमरे के बीच के कनेक्शन को एकत्र करता है और चयनित कनेक्टर के तहत कनेक्शन का एक आरेख बनाता है।

HIKROBOT के लिए ट्रिगर विंडो (6 पिन): PNP सेंसर, सिग्नल पिन 2 पर, ग्राउंड पिन 5 पर, पिनआउट।
HIKROBOT के लिए ट्रिगर विंडो (6 पिन): PNP सेंसर, सिग्नल पिन 2 पर, ग्राउंड पिन 5 पर, पिनआउट।
इसी तरह, SICK picoCam (6 पिन) के लिए: सिग्नल पिन 4 (ट्रिगर +) पर, और सामान्य पिन 3 (ट्रिगर -) पर।
इसी तरह, SICK picoCam (6 पिन) के लिए: सिग्नल पिन 4 (ट्रिगर +) पर, और सामान्य पिन 3 (ट्रिगर -) पर।
1
वीडियो के ऊपर "ट्रिगर" पर क्लिक करें। "ट्रिगर उपकरण" (सूची में ऑप्टिकल सेंसर BAOLSEN QAF-Q2P, 4 तार; कोई भी PNP या NPN आउटपुट वाला सेंसर इसी तरह कनेक्ट होता है), "कैमरा पोर्ट" (HIKROBOT 6 पिन या SICK picoCam 6 पिन), "कैमरा (कौन सा)" और "सेंसर का प्रकार": PNP - सिग्नल "प्लस" को स्विच करता है (सामान्य स्थिति), NPN - "माइनस" को स्विच करता है, +24V पर 1-4.7kΩ प्रतिरोधक की आवश्यकता होती है।
2
चित्र के अनुसार सर्किट को बनाएं: सेंसर और कैमरे को 24V की एक ही बिजली आपूर्ति से कनेक्ट करें, सेंसर के सिग्नल वायर को कैमरे के इनपुट से कनेक्ट करें, इनपुट के विपरीत वायर को 0V पर कनेक्ट करें। सेंसर के सफेद वायर को दूसरी आउटपुट के रूप में उपयोग करें, और इसे कनेक्ट न करें।
3
"कनेक्शन बनाएं" पर क्लिक करें। कनेक्शन डेटाबेस में सहेजे जाते हैं; समान कनेक्शन दोहराए नहीं जाते। "कनेक्शन हटाएं" बटन चयनित कनेक्शन को हटा देता है।
4
"Inspect" टैब में, "Trigger" सूची में से एक कनेक्शन चुनें और "इनपुट पर + का विश्लेषण" (24V के आने पर फ्रेम) या "इनपुट पर - का विश्लेषण" विकल्प चुनें। यह प्रोग्राम कैमरे को ट्रिगर मोड में बदल देता है: HIKROBOT में TriggerMode = On, TriggerSource = Line0, जबकि SICK कैमरे की कैप्चरिंग बंद कर देता है, मोड सेट करता है और फिर से शुरू करता है। आस-पास का वृत्त इनपुट स्तर को दर्शाता है।

कनेक्टरों का विवरण

पिHIKROBOT MV-CS, 6 pinSICK picoCam, 6 pin
1DC_PWR — कैमरे के लिए 9-24 वॉट की बिजली आपूर्तिजीएनडी - कैमरे का पावर स्रोत
2OPTO_IN — लाइन 0 में प्रवेश (+), ट्रिगर सिग्नलवीसीसी - कैमरे का 12-24 वॉट का पावर स्रोत
3जीपीआईओ - लाइन 2, इनपुट या आउटपुटट्रिगर — — इनपुट ट्रिगर, ऑप्टोरे (-)।
4OPTO_OUT - लाइन 1 का पॉजिटिव टर्मिनल (पॉजिटिव कनेक्शन)।ट्रिगर + — ऑप्टोरेक्टर का इनपुट, (+)
5OPTO_GND — एक सामान्य ऑप्टो-पार, जिसमें विपरीत तार शामिल हैं।फ्लैश + - डिस्क्रीट आउटपुट (+)
6जीएनडी - कैमरे का पावर स्रोतफ्लैश - - डिस्क्रीट आउटपुट (-)
महत्वपूर्ण। कैमरे पर "पापा" कनेक्टर और केबल पर "मम्मा" कनेक्टर एक दूसरे के दर्पण छवि हैं। एकमात्र मार्गदर्शन कुंजी (ओब की बड़ी कट) है; SICK में यह 1 और 6 के बीच स्थित है और दर्पण के साथ दाईं ओर की ओर जाता है। उन संपर्कों को गिनें जिन्हें आप अपने हाथ में पकड़ रहे हैं। यदि किसी संपर्क में गलती है, तो बिजली और आउटपुट दोनों एक साथ जल जाएंगे। SICK के कनेक्शन की पुष्टि करने के लिए, ध्वनि परीक्षण करें।
सुझाव। "तुल्य" के सापेक्ष, "आगे" की दिशा में शूटिंग करें, न कि "नीचे" की दिशा में: वास्तविक उपकरण पर, फ्रेम की अवधि का फैलाव "आगे" की दिशा में 4.2 मिलीसेकंड था, जबकि "नीचे" की दिशा में 40.7 मिलीसेकंड था। सेंसर का परीक्षण: भूरा↔नीला हमेशा 24V होता है, यह बिजली की आपूर्ति है; सिग्नल को काले और नीले के बीच देखें, जहाँ प्रकाश किरण बाधित होती है। यदि यह नहीं बदलता है, तो काले रंग से भूरे रंग पर 2-10 ओम का प्रतिरोधक लगाएं; 24↔0V का मतलब NPN है।

7. आउटपुट: रिजेक्टर, कैमरे के डिस्क्रीट आउटपुट और टीसीपी

रिजेक्टर निरीक्षण के परिणाम को कार्रवाई में बदल देता है। यह नियम किसी विशिष्ट क्षेत्र (या मॉडल, वर्ग या चिह्नित क्षेत्रों में सभी क्षेत्रों पर) पर बनाया जाता है और तब सक्रिय होता है जब मॉडल उस क्षेत्र में निर्दिष्ट वर्ग को देखता है। क्रियाएं तीन हैं: कैमरे को या तो एक रोबोट या पीएलसी को एक TCP-पैकेट भेजना, कैमरे के डिजिटल आउटपुट को बदलना और ऑपरेटर को एक ध्वनि चेतावनी देना। प्रत्येक सक्रियण को लॉग में दर्ज किया जाता है।

7.1. आउटपुट: संपर्क और टेस्टर के साथ जांच

वीडियो पर स्थित "बाहर" बटन एक सूचनात्मक विंडो खोलता है, जो कुछ भी कॉन्फ़िगर नहीं करता है। यह दिखाता है कि किस संपर्क पर आउटपुट है, इसे बिना बिजली के टेस्टर से कैसे जांचा जाए, और लोड को कैसे कनेक्ट किया जाए।

HIKROBOT - लाइन 1 (ऑप्टोपार) पर आउटपुट, पिन 4 (+) और 5 (−) पर, अधिकतम करंट 25 मिलीएम्पीयर।
HIKROBOT - लाइन 1 (ऑप्टोपार) पर आउटपुट, पिन 4 (+) और 5 (−) पर, अधिकतम करंट 25 मिलीएम्पीयर।
SICK picoCam - फ्लैश पिन (ऑप्टोपार) पिन 5 (+) और 6 (−) पर, 150 मिलीएम्पीयर लगातार।
SICK picoCam - फ्लैश पिन (ऑप्टोपार) पिन 5 (+) और 6 (−) पर, 150 मिलीएम्पीयर लगातार।
  • आउटपुट - "ड्राई कॉन्टैक्ट" वाला ऑप्टोपार: यह अपनी वोल्टेज नहीं देता, बल्कि केवल सर्किट को पूरा करता है। बाहरी पावर स्रोत की आवश्यकता होती है।
  • टेस्टर का उपयोग करके जांच: आउटपुट बंद - खुले सर्किट (OL), चालू - सैकड़ों ओम। ज़ूमर दोनों मामलों में चुप रहता है, इसलिए संख्याएं देखें। यदि कुछ नहीं बदलता है - तो щуप्स को पलट दें, ऑप्टोपार ध्रुवीकृत है।
  • भार: +24 В → लैंप → पिन «+», पिन «−» → GND। HIKROBOT के लिए 25 mA — सीमा: 27 mA पर सिग्नलिंग उपकरण, यदि इससे अधिक है, तो बिजली कम करें या एक इंटरमीडिएट रिले लगाएं। SICK के लिए, 20–30 mA पर लैंप सीधे कनेक्ट किया जा सकता है।

7.2. आउटपुट विंडो: क्षेत्र के लिए नियम

दाएं पैनल पर स्थित "OUTPUT" बटन (या क्षेत्र पर राइट-क्लिक करके → "इस क्षेत्र के लिए रिजेक्टर बनाएं") "OUTPUT - TCP-पैकेट और कैमरों की डिस्क्रीट आउटपुट" विंडो खोलता है। बाईं ओर, "कैमरे → AI मॉडल → कक्षाएँ → क्षेत्र" ट्री, जिसमें क्षेत्रों पर चेक शामिल हैं; दाईं ओर, "क्षेत्र के नियम", "ट्रिगर लॉग", और "डेटाबेस" टैब।

आउटपुट विंडो: बाएं ओर क्षेत्रों की सूची, क्षेत्र के नियमों की सूची, "नियम" समूह और TCP टैब के साथ विकल्प।
आउटपुट विंडो: बाएं ओर क्षेत्रों की सूची, क्षेत्र के नियमों की सूची, "नियम" समूह और TCP टैब के साथ विकल्प।
1
एक क्षेत्र का चयन करें (दाएं ओर का शीर्षक HD USB कैमरा → model_5 → 1 → क्षेत्र 1 (T1.C1) मार्ग दिखाएगा)। "+ नया TCP", "+ नया डिस्क्रीट" या "+ नया ऑडियो" पर क्लिक करें।
2
`नियम` समूह में, `एआई वर्ग` का चयन करें, जिसके अनुसार यह सक्रिय होगा (क्षेत्र-जोड़ी के लिए यह `असामान्य` या `सामान्य` होगा; `*` - कोई भी वर्ग), `सक्रिय` विकल्प को चुनें, यदि आवश्यक हो तो `जब तक वर्ग सक्रिय रहता है, तब तक दोहराएं` विकल्प का उपयोग करें, जिसमें दोहराव की अवधि और `वर्ग परिवर्तन की पुष्टि, मिलीसेकंड` (डिफ़ॉल्ट रूप से 1500: नया वर्ग तब तक सक्रिय रहना चाहिए जब तक कि परिवर्तन को स्वीकार किया न जाए)।
3
TCP (अनुभाग 7.3), कैमरे का आउटपुट (अनुभाग 7.4) या ध्वनि (अनुभाग 7.5) में दिए गए विकल्पों को भरें।
4
दोष की प्रतीक्षा किए बिना, श्रृंखला की जाँच करें: इस नियम की जाँच करें (यह एक पैकेज भेजता है या एक आउटपुट संकेत देता है), क्षेत्र के सक्रिय होने का अनुकरण करें (यह क्षेत्र के सभी नियमों को एक सुरक्षात्मक क्रम के माध्यम से चलाता है)।
5
"1 क्षेत्र पर बनाएँ" पर क्लिक करें। यदि कई क्षेत्रों को चिह्नित किया गया है, तो बटन "N क्षेत्रों पर बनाएँ" में बदल जाएगा; मॉडल के नोड पर - "पूरे मॉडल पर सहेजें", क्लास के नोड पर - "क्लास पर सहेजें"। नीचे: "चिह्नित क्षेत्रों को सक्षम / अक्षम / हटाएं"।

एक क्षेत्र कई TCP नियमों (विभिन्न रिसीवर) को धारण कर सकता है, लेकिन एक वर्ग के लिए केवल एक डिस्क्रीट आउटपुट नियम और एक वर्ग के लिए केवल एक ध्वनि अनुमति है। नियम डेटाबेस में संग्रहीत होते हैं और इन्फेरेंस स्ट्रीम से काम करते हैं: नियम मेमोरी में संग्रहीत होते हैं, एक क्षेत्र के पते पर एक खोज प्रत्येक फ्रेम में की जाती है, और सॉकेट और कैमरे के SDK को एक अलग फ़्लो-मैनेजर द्वारा संभाला जाता है ताकि विश्लेषण नेटवर्क पर निर्भर न रहे।

7.3. TCP पैकेट रोबोट या पीएलसी को

यह प्रोग्राम TCP-क्लाइंट के रूप में काम करता है: यह IP-एड्रेस और पोर्ट वाले रिसीवर से कनेक्ट होता है, कनेक्शन को खुला रखता है और उसका पुन: उपयोग करता है। जब कनेक्शन टूट जाता है, तो यह एक बार पुनः कनेक्ट करने और पुनः प्रयास करने का प्रयास करता है। स्ट्रिंग UTF-8 में CR+LF के साथ समाप्त होती है।

फ़ील्डनियुक्ति
कनेक्शन का समय, मिलीसेकंडडिफ़ॉल्ट रूप से 1000, 100…10000।
नियम भेजने का समय, मिलीसेकंडस्वचालित नियमों को भेजने के बीच न्यूनतम अंतराल; 0 — कोई अंतराल नहीं। यहां तक कि क्लास बदलने का भी इंतजार होता है।
कमांडशब्द जैसा है वैसा ही: "अप" - "अप" पैकेज। एक क्लास-एंगल की आवश्यकता है - एक प्रतिस्थापन जोड़ें: "J6 {class}" → "J6 235"। खाली - "डेटा" टेम्पलेट का उपयोग किया जाता है।
अपनी डेटायह एक वैकल्पिक पाठ है, जो `{data}` के स्थान पर डाला जाता है।
डेटानमूना पैकेज। खाली = "क्षेत्र संख्या और नाम" ({zoneId} {zone})। इस पर क्लिक करने से यह जोड़ा जाएगा, फिर से क्लिक करने से हटाया जाएगा; "सभी फ़ील्ड" एक संरचित टेम्पलेट बनाता है।
स्थापनाअर्थस्थापनाअर्थ
{zoneId}क्षेत्र संख्या (1, 2, 3...){camera}कैमरे का नाम
{zone}क्षेत्र का नाम (आधार में संपादित किया जा सकता है){model}एआई मॉडल का नाम
{class}मॉडल ने जो वर्ग देखा{time}समय (घंटे:मिनट:सेकंड.मिलीसेकंड)
{conf}आत्मविश्वास, % (बिंदु विभाजक के रूप में){date}दिनांक (वर्ष-महीना-दिन)
{data}"अपनी डेटा" से टेक्स्ट

एक संरचित टेम्पलेट का उदाहरण: zoneId={zoneId};zone={zone};class={class};conf={conf};camera={camera};model={model};time={time};date={date};data={data}. संख्याएँ हमेशा एक निश्चित प्रारूप में होती हैं ताकि "87,6" जैसे मान PLC द्वारा संसाधित न किए जा सकें।

  • कनेक्शन की जांच केवल सॉकेट को खोलता है और "कनेक्शन स्थापित" या "N मिलीसेकंड के बाद कोई प्रतिक्रिया नहीं" बताता है।
  • टेस्ट भेजना वास्तव में एक स्ट्रिंग भेज रहा है; परिणाम बटन के बगल में दिखाई देता है, न कि विंडो में।
  • पुष्टि करना। यदि "पुन: भेजें" विकल्प में टिक न हो, तो यह एक ही पैकेज भेजता है जब श्रेणी बदलती है, और जब तक रिसीवर "ok <पैकेज>" लिखकर जवाब नहीं देता, तब तक यह पैकेज को बार-बार भेजता रहता है। यदि टिक हो, तो यह एक निश्चित अंतराल पर पैकेज को भेजता रहता है, जब तक कि श्रेणी बनी रहती है।
  • "अंतिम कमांड जीतती है": यदि मॉडल ने कुछ परिणाम दिए हैं, जबकि ऑपरेटर व्यस्त है, तो अंतिम परिणाम सफल होगा। कतार 512 कार्यों तक सीमित है।

7.4. कैमरे से अलग-अलग आउटपुट

"कैमरा आउटपुट" टैब: आउटपुट का तरीका, लाइन, स्तर, पल्स, मैन्युअल जांच के लिए बटन। USB कैमरों में अलग-अलग आउटपुट नहीं होते हैं - केवल TCP उपलब्ध है।
"कैमरा आउटपुट" टैब: आउटपुट का तरीका, लाइन, स्तर, पल्स, मैन्युअल जांच के लिए बटन। USB कैमरों में अलग-अलग आउटपुट नहीं होते हैं - केवल TCP उपलब्ध है।
फ़ील्डनियुक्ति
आउटपुटतरीका: ऑटो, SICK के लिए - फ्लैश पल्स (स्थिर स्तर) या GPIO; HIKROBOT के लिए - UserOutputValue या LineInverter (स्ट्रोब बंद)। MV-CS020/016-10GC नोड पर UserOutput का उपयोग नहीं किया जा सकता - प्रोग्राम स्वचालित रूप से LineInverter का चयन करेगा।
लाइनSICK के लिए फ्लैश पल्स / GPIO1…6; HIKROBOT के लिए Line1 (आउटपुट), Line2 (दोतरफा)
स्तरtrue / false / off। "off" का मतलब है कि नियम लागू है, लेकिन आउटपुट प्रभावित नहीं होता।
पल्स, ms (0 - चालू रखें)0 - स्तर तब तक चालू रहता है जब तक कि क्लास बदल न जाए; अन्यथा, 10…5000 ms की पल्स के साथ वापस आ जाता है।

"बाहर की सुविधा चालू करें, बाहर की सुविधा बंद करें, इम्पल्स की जांच एक टेस्टर या लैंप का उपयोग करके की जाती है; कैमरा क्या कर सकता है सभी तरीकों का पता लगाता है और रिपोर्ट तैयार करता है। मैनुअल परीक्षण उसी जर्नल में लिखे जाते हैं।

एक ही आउटपुट पर कई क्षेत्र। यदि एक पिन पर कई क्षेत्रों के नियम जुड़े हों, तो आउटपुट को एक तार्किक "AND" के रूप में माना जाता है: केवल तभी जब सभी क्षेत्र "HIGH" मांगते हैं, भले ही उनमें से एक "LOW" हो, तब आउटपुट "LOW" होगा। इसे लॉग में इस प्रकार दर्शाया जाता है: "आउटपुट N पर क्षेत्र, जो "LOW" मांगते हैं → HIGH/LOW"। इस प्रकार, एक आउटपुट को प्लेट पर सैकड़ों क्षेत्रों से बनाया जाता है।
महत्वपूर्ण। SICK में, फ्लैश पिन का उपयोग डिस्क्रीट आउटपुट और लाइटिंग दोनों के लिए एक ही होता है: यदि इसमें एक импульсная लैंप जुड़ा हुआ है, तो GPIO का उपयोग करें। एंटी-नॉइज नियम: डिफ़ॉल्ट रूप से 500 मिलीसेकंड (न्यूनतम 200 मिलीसेकंड), बिना किसी घटना के लॉग में कोई प्रविष्टि नहीं लिखी जाएगी।

7.5. ध्वनि चेतावनी: प्रत्येक क्षेत्र के लिए अलग ध्वनि

तीसरी प्रकार का नियम - कंप्यूटर पर प्रोग्राम के माध्यम से ध्वनि। ऑपरेटर को स्क्रीन देखने की आवश्यकता नहीं है: ध्वनि के संकेत के माध्यम से, वे सुनते हैं कि क्षेत्र दोष में चला गया है, और विभिन्न क्षेत्रों की अलग-अलग ध्वनियाँ बताती हैं कि यह कहाँ है। यह ध्वनि USB और RTSP जैसे सभी कैमरों के लिए उपलब्ध है, जिनमें अलग-अलग आउटपुट नहीं हैं।

1
एक क्षेत्र चुनें और "+ नई ध्वनि" पर क्लिक करें। "नियम" समूह में, एक वर्ग (उदाहरण के लिए, "असामान्य") निर्दिष्ट करें और "सक्रिय" चेकबॉक्स पर टिक करें।
2
"ध्वनि" टैब में, सूची से एक संकेत चुनें। इसमें दस अंतर्निहित संकेत हैं: छोटा, दोहरा, तीन गुना, निम्न और उच्च पिच, ऊपर और नीचे की ओर, अलार्म-सिरेना, लंबी हॉर्न, घंटी। "प्ले" बटन चयनित संकेत को चलाता है।
3
अपनी ध्वनि: "अपनी फ़ाइल अपलोड करें" पर क्लिक करें और WAV, MP3 या WMA चुनें। फ़ाइल प्रोग्राम के बगल में "sounds\custom" नामक फ़ोल्डर में कॉपी हो जाती है (फ्लैश ड्राइव निकाला जा सकता है) और "अपनी" लेबल के साथ सूची में दिखाई देती है। "ध्वनि फ़ोल्डर" बटन इस फ़ोल्डर को खोलता है: आप यहां फ़ाइलें सीधे डाल सकते हैं।
4
ध्वनियों के बीच का समय, मिलीसेकंड में, 1000 से 10000 तक निर्धारित करें। इस अवधि के दौरान, जब भी कोई संकेत मिले, ध्वनि फिर से नहीं बजेगी, भले ही क्षेत्र का वर्ग बदल जाए: 10000 मिलीसेकंड में, ऑपरेटर 10 सेकंड में एक से अधिक बार संकेत नहीं सुनेगा।
5
"Создать" पर क्लिक करें या सभी क्षेत्रों को चेक करके तुरंत नियम बनाएं। प्रत्येक क्षेत्र के लिए अलग-अलग ध्वनि का उपयोग करें: अन्य क्षेत्रों के लिए अलग-अलग संकेतों का उपयोग करें।
6
"जाली बॉक्स पीले (क्लिक करके बंद) क्षेत्र शांत रहते हैं को डिफ़ॉल्ट रूप से चालू किया गया है: जिन क्षेत्रों को "इंस्पेक्ट" टैब (अनुभाग 5.5) पर क्लिक करके बंद किया गया है, वे ध्वनि नहीं करते हैं और पूरे मॉडल में TCP और कैमरे के आउटपुट को बंद कर देते हैं।
कार्यप्रणालीयह कैसे काम करता है
"पुन: दोहराएँ" विकल्प के बिनाजब क्षेत्र का वर्गीकरण सफलतापूर्वक बदल दिया जाता है ( "वर्गीकरण परिवर्तन की पुष्टि" के बाद), तो ध्वनि एक बार बजती है। जब तक वर्गीकरण बना रहता है, तब तक कोई ध्वनि नहीं होती।
"वर्गीकरण बनाए रखने तक दोहराएँ" विकल्प के साथसिग्नल "पुनरावृत्ति अंतराल" के माध्यम से दोहराया जाता है, लेकिन जब तक क्षेत्र निर्दिष्ट वर्गीकरण में रहता है, तब तक यह अंतराल के बीच बार-बार नहीं बजता।
एक साथ कई दोषपूर्ण क्षेत्रप्रत्येक क्षेत्र अपनी ध्वनि बजाता है; विभिन्न क्षेत्रों के सिग्नल एक-दूसरे को नहीं दबाते, केवल एक ही क्षेत्र की ध्वनि को दबाया जाता है।
लॉगहर बार जब कोई ध्वनि उत्पन्न होती है, तो यह "सрабатываний का लॉग" में "ध्वनि..." के रूप में दर्ज की जाती है। यदि फ़ाइल नहीं मिलती है या ध्वनि उपकरण विफल हो जाता है, तो लॉग में एक त्रुटि संदेश दर्ज किया जाता है, और प्रोग्राम का संचालन जारी रहता है।
जाँचइस नियम की जाँच करें तुरंत ध्वनि उत्पन्न करता है; क्षेत्र के सक्रिय होने का अनुकरण करें ध्वनि को TCP और आउटपुट के माध्यम से, युद्ध के क्रम के साथ उत्पन्न करता है।
सुझाव। सबसे महत्वपूर्ण क्षेत्रों (कनेक्शन, शक्ति तत्व) पर एक सिरेना या तीन-तरफा सिग्नल लगाएं, और बाकी क्षेत्रों पर छोटे सिग्नल लगाएं। इससे एक ही ध्वनि के माध्यम से यह स्पष्ट हो जाएगा कि तुरंत लाइन की ओर दौड़ना है या नहीं। पूरे मॉडल के लिए एक ध्वनि नियम बनाने के लिए, मॉडल या क्लास को ट्री में से चुनें: एक सिग्नल किसी भी दोष के लिए।

7.6. क्रियान्वयन लॉग और डेटाबेस

"सक्रियता लॉग" टैब में पिछले 300 रिकॉर्ड प्रदर्शित होते हैं, जिनमें निम्नलिखित जानकारी पंक्तियों में दिखाई जाती है: "घंटे:मिनट:सेकंड.मिलीसेकंड ✔/✖ कैमरा · मॉडल · श्रेणी · क्षेत्र → क्रिया [संदेश]।" यह जानकारी वास्तविक समय में अपडेट होती रहती है। यहां "अपडेट करें" और "लॉग साफ़ करें" जैसे बटन उपलब्ध हैं।

"डेटाबेस" टैब: डेटा कहाँ संग्रहीत है, प्रतिलिपि और एक ही फ़ाइल में डेटाबेस का पुनर्प्राप्ति।
"डेटाबेस" टैब: डेटा कहाँ संग्रहीत है, प्रतिलिपि और एक ही फ़ाइल में डेटाबेस का पुनर्प्राप्ति।

टैब (Tab) डेटाबेस।यह प्रोग्राम सभी डेटा को एक SQLite फ़ाइल में संग्रहीत करता है। rejectors.db "exe" फ़ाइल के बगल में कोई अलग सेवा नहीं है, पोर्ट काम नहीं कर रहा है, और कुछ भी स्थापित करने की आवश्यकता नहीं है। तालिकाएँ: "सेटिंग्स" (सेटिंग्स), "कैमरा" (कैमरा प्रोफाइल)। camera_models (कैमरों पर मौजूद मॉडल), क्षेत्र (क्षेत्रों के नाम और ज्यामिति), अस्वीकारकर्ता (नियम)। reject_log (पत्रिका) camera_param_files (कैमरों के मापदंडों की प्रतियां), camera_presets (कैमरों की सेटिंग्स के समूह)। डेटाबेस की एक प्रति सहेजें... यह उपकरण VACUUM INTO कमांड का उपयोग करके, सीधे चल रहे डेटाबेस का एक संपूर्ण स्नैपशॉट (नकल) बनाता है। डेटाबेस को कॉपी से लोड करें... यह प्रक्रिया पहले मौजूदा डेटा को सुरक्षित रखती है और फिर उसे पुनर्स्थापित करती है। आप DBeaver प्रोग्राम को बंद किए बिना, डेटाबेस को DBeaver में देख सकते हैं; हालांकि, डेटाबेस में बाहर से सीधे बदलाव करने की सलाह नहीं दी जाती है।

8. अन्य मोड और कार्य

सामान्य मॉडल: सामान्य / असामान्य और किसी भी श्रेणी।

उसी संपादक ROI का उपयोग सामान्य वर्गीकरण के लिए भी किया जा सकता है: गोलियां, ढक्कन, लेबल, और लॉट में मौजूद हिस्से। कक्षाएं "नया AI मॉडल" संवाद में निर्धारित की जाती हैं (डिफ़ॉल्ट रूप से normal और anomaly, नाम लैटिन अक्षरों में), क्षेत्र उत्पादों पर सेट किए जाते हैं, और "छवि बनाएं" बटन पर 1...50 के साथ, कैमरा (फ्रेम/स्लॉट) या एन्कोडर के माध्यम से, "छवियां बनाएं" श्रृंखला। "AI के लिए सिंथेटिक डेटा": सटीक 90°/180° के कोण, 360° का पूर्ण घूर्णन, चरण और सीमा के साथ, दर्पण, "डिग्री के अनुसार कक्षाएं" (प्रत्येक कोण को TCP के माध्यम से भेजा जाता है), चमक और कंट्रास्ट की सीमाएं। प्रशिक्षण - अल्ट्रालायटिस के पूर्ण ऑगमेंटेशन के साथ। इन मॉडलों के लिए आत्मविश्वास सीमा को "Inspect" टैब पर, ज़ोन-पेयर के समान ही स्थान पर निर्धारित किया जाता है।

बहु-मॉडल निरीक्षण (स्लॉट 1-20)

एक कैमरे में 20 मॉडल तक रखे जा सकते हैं: "ONNX को स्लॉट में जोड़ें", फिर "ROI → चयनित मॉडल में क्लास जोड़ें" - प्रत्येक मॉडल के लिए स्लॉट में अलग-अलग क्षेत्र चिह्नित किए जाते हैं, और सभी मॉडलों के परिणाम एक ही फ्रेम पर दिखाई देते हैं।

आमतौर पर, ज़ोन-पेयर स्लॉट के लिए आवश्यक नहीं होते हैं। एक मॉडल पहले से ही पूरे प्लेट को कवर करता है: प्रत्येक क्षेत्र के अपने-अपने दो वर्ग होते हैं, इसलिए "समान वर्गों को मिलाने" के उद्देश्य से जो पहले कई मॉडल बनाए जाते थे, अब इसकी आवश्यकता नहीं है। एक मानक सेटअप में, एक प्लेट पर एक ज़ोन-पेयर होता है, और स्लॉट खाली होते हैं।

जब बहु-शैली दृष्टिकोण का उपयोग किया जाता है:

परिस्थितिइसे कैसे सेट करें
एक ही फ्रेम में विभिन्न कार्यज़ोन-पेयर, लेआउट और तत्वों की उपस्थिति की जांच करता है, जबकि सामान्य मॉडल दूसरे स्लॉट में, लेबल, स्टिकर, कनेक्टर का रंग या की का दिशा की जानकारी प्रदान करता है। दूसरे मॉडल के क्षेत्र को "ROI → चयनित मॉडल में क्लास जोड़ें" के माध्यम से अलग-अलग सेट किया जा सकता है।
गैर-स्थिर ग्रिड वाली वस्तुगोलियाँ, ढक्कन, और घटक: सामान्य मॉडलों में, विभिन्न प्रकार की वस्तुओं को अलग-अलग वर्गों में व्यवस्थित किया जाता है ताकि वे एक-दूसरे के साथ मिश्रित न हों।
एक ही फ्रेम में दो अलग-अलग प्लेटअलग-अलग स्लॉट में दो ज़ोन-पेयर मॉडल, जिनमें से प्रत्येक की अपनी संदर्भ छवि और ग्रिड होती है। मुख्य मॉडल की संदर्भ छवि के साथ एक लाइव कन्वेयर काम करता है।
स्थानांतरण अवधिपुराना प्रशिक्षित मॉडल तब तक एक स्लॉट में रहता है जब तक कि नया ज़ोन-पेयर डेटा एकत्र नहीं कर लेता; दोनों एक ही फ्रेम में दिखाई देते हैं, और रिजेक्टर के नियम विश्वास के आधार पर स्थानांतरित किए जाते हैं।

सीमा, विश्लेषण की गति, पीले क्षेत्र और रिजेक्टर के नियम सभी कैमरों के मॉडलों पर लागू होते हैं। "मॉडल हटाएं" बटन स्लॉट को साफ़ करता है और इसलिए पुष्टि मांगता है; "चुना हुआ हटाएं" एक मॉडल को स्लॉट से हटा देता है, लेकिन उसके फ़ाइलें और क्षेत्र डेटाबेस में बने रहते हैं।

सामान्य मॉडल

"सामान्य मॉडल" बटन "कैमरा → मॉडल" के सेट को निम्नलिखित नामों से सहेजता है: वर्तमान मॉडलों से बनाएं, सभी कैमरों पर लागू करें, वर्तमान से अपडेट करें, नाम बदलें, सेट हटाएं. आठ कैमरों से किसी अन्य उत्पाद में बदलाव करना एक ही विकल्प है। सेट को हटाने से केवल समूह हट जाता है: फ़ोल्डर, ONNX, क्षेत्र और नियम बरकरार रहते हैं। क्षेत्र "कैमरा + मॉडल" के जोड़े से संबंधित हैं: आठ कैमरों पर एक मॉडल - आठ स्वतंत्र लेबल।

कन्वेयर पर एन्कोडर और रिजेक्टर

COM-पोर्ट पर एन्कोडर वाले लाइनों के लिए (115200, ESP32): एन्कोडर कनेक्ट करें, ऑटो-कनेक्शन, स्थिति, शॉट की लंबाई और सुधार, शून्य सेट करें + शॉट लें। प्रशिक्षण और विश्लेषण के लिए "एन्कोडर के माध्यम से" शॉट लेना संभव है, जिससे उत्पाद के मार्ग पर फ्रेम समान रूप से होते हैं। पुराना रिजेक्टर समय के साथ, देरी और स्पैम विरोधी के रूप में, एन्कोडर कंट्रोलर पर REJECT कमांड भेजता है।

वीडियो और छवियों का रिकॉर्ड

सेटिंग्स टैब: सक्रिय कैमरे से वीडियो रिकॉर्डिंग शुरू करें और इसे `record_तारीख_समय.avi` (MJPG, कैमरे की वास्तविक फ्रेम प्रति सेकंड दर) फ़ाइल में सहेजें। प्रशिक्षण के लिए तस्वीरें `real_….jpg` प्रारूप में होंगी, और निरीक्षण के लिए तस्वीरें `inspect_….jpg` प्रारूप में होंगी, जिनमें चिह्नित क्षेत्र होंगे।

9. सेटिंग्स, कंसोल, आवश्यकताएं और लाइसेंस

Settings

  • फ़ाइल में सहेजें / फ़ाइल से लोड करें - सभी सेटिंग्स (कैमरा, मॉडल, नियम) JSON प्रारूप में, जो कि रीइंस्टॉलेशन या दूसरे कंप्यूटर पर स्थानांतरित करने से पहले उपयोगी है। मूल स्रोत - डेटाबेस, JSON - डेटाबेस अनुपलब्ध होने की स्थिति में एक सुरक्षा उपाय। प्रत्येक सेटिंग्स में किए गए बदलाव स्वचालित रूप से सहेजे जाते हैं।
  • शुरुआती सेटिंग्स को रीसेट करना - यह अपरिवर्तनीय है: यह कॉन्फ़िगरेशन और विंडो लेआउट को हटा देता है।
  • इंटरफेस की भाषा - 14 भाषाएं; मुख्य विंडो तुरंत स्विच हो जाती है, जबकि अन्य विंडो अगली बार खुलने पर दिखाई देती हैं।
  • सभी विंडो की स्थिति, आकार और मॉनिटर, विभाजकों की स्थिति - डेटाबेस में संग्रहीत हैं; जब मॉनिटर बंद होता है, तो विंडो दृश्य क्षेत्र में वापस आ जाती है।

Console

"कैमरा" और "ट्रिगर" पर चिह्नित विकल्प डिफ़ॉल्ट रूप से अक्षम हैं और संबंधित संदेशों को प्रदर्शित करते हैं (कैमरे के संदेश "ट्रिगर" मोड में जाते हैं); सभी डेटा, फिल्टर तक, फ़ाइलों logs\engiai-*.log में लिखा जाता है। कंसोल को बिना किसी रुकावट के हफ्तों तक चलने के लिए डिज़ाइन किया गया है: स्क्रीन पर 800 पंक्तियाँ प्रदर्शित होती हैं, और 1000 पुरानी पंक्तियों को हटा दिया जाता है; नई पंक्तियाँ प्रति सेकंड 4 बार एकत्र की जाती हैं, न कि एक-एक करके; नीचे की ओर स्क्रॉलिंग चालू है जब तक कि आप स्वयं ऊपर की ओर स्क्रॉल न कर लें; कंसोल में कोई ध्वनि नहीं है। क्षेत्र के वर्गीकरण को प्रति सेकंड 10 पंक्तियों से अधिक नहीं लिखा जाता है (शेष को एक काउंटर में रखा जाता है), लॉग फ़ाइल 20 एमबी तक की होती है, 14 दिनों से पुरानी फ़ाइलें शुरू होने पर हटा दी जाती हैं, लॉग में पिछले 20,000 रिकॉर्ड संग्रहीत होते हैं। बिना संसाधित त्रुटियाँ crash.log में, जबरन बंद करने के कारण runtime.log के पास स्थित हैं। यदि कुछ ठीक से काम नहीं कर रहा है, तो सबसे पहले यहां देखें।

आवश्यकताएं

घटकआवश्यकता
ऑपरेटिंग सिस्टमWindows 10/11 x64.
निरीक्षण के लिए वीडियो कार्डNVIDIA (CUDA ड्राइवर के साथ); CUDA 13 और cuDNN 9 लाइब्रेरी प्रोग्राम के साथ शामिल हैं। बिना वीडियो कार्ड के, निरीक्षण स्वचालित रूप से प्रोसेसर पर होता है।
प्रशिक्षणपायथन 3 (इंस्टॉलेशन के दौरान "python.exe" को PATH में जोड़ने के विकल्प को चेक करते हुए) और अल्ट्रालायटिक्स, ऑनएक्स, ऑनएक्सस्लिम, ऑनएक्सटाइम - ये पैकेज, पहली बार प्रशिक्षण के दौरान स्वचालित रूप से स्थापित हो जाते हैं। इंटरनेट की आवश्यकता होती है। प्रशिक्षण के लिए GPU का उपयोग PyTorch द्वारा निर्धारित किया जाता है। CUDA के बिना, CPU पर प्रशिक्षण धीमा होता है, लेकिन परिणाम वही होता है।
SICK कैमरेIDS uEye ड्राइवर; कैमरे को IDS Camera Manager में दिखाई देना चाहिए।
HIKROBOT कैमरेMVS SDK (लाइब्रेरी प्रोग्राम के साथ शामिल है); GigE के लिए - जम्बो-फ्रेम का समर्थन करने वाला नेटवर्क कार्ड।

लाइसेंस और परीक्षण मोड

जब प्रोग्राम शुरू होता है, तो यह engi.live नामक लाइसेंस सर्वर से संपर्क करता है; केवल हार्डवेयर और संस्करण की पहचान के हैश भेजे जाते हैं, बिना किसी सीरियल नंबर या उपयोगकर्ता के नाम के। यदि सर्वर उपलब्ध नहीं है और अनुमति कैश में है, तो प्रोग्राम कैश का उपयोग करके काम करता है (इंटरनेट के बिना लाइनों के लिए)। बिना लाइसेंस के, 20 मिनट की परीक्षण अवधि सक्रिय होती है: विंडो के शीर्षक और "परीक्षण एमएम:СС" पंक्ति में एक काउंटर चलता है, और "सेटिंग्स" टैब पर "खरीदें" बटन खरीदारी पृष्ठ खोलता है। जब लाइसेंस सक्रिय होता है, तो काउंटर सक्रिय नहीं होता।

10. संक्षिप्त चेकलिस्ट और समस्या निवारण

शून्य से शुरुआत के लिए चेकलिस्ट

1
कैमरा → «+ कैमरे जोड़ें» → अपने कैमरे को चिह्नित करें → जोड़ें।
2
कैमरा टैब: रिज़ॉल्यूशन → «AI (प्रति फ्रेम) के लिए ऑटो-सेटिंग» (या USB पर «पैरामीटर सेट करें») → «पैरामीटर सहेजें» → «... के रूप में सहेजें» सेटिंग्स। यदि चाहें तो, «ग्रे स्केल में प्रशिक्षित करें»।
3
AI मॉडल → «नया AI मॉडल बनाएं» → नाम।
4
«ROI → प्रशिक्षण मॉडल में जोड़ें» → प्रत्येक घटक के चारों ओर एक फ्रेम → क्षेत्र का आकार (उदाहरण के लिए, 256) → Enter। सैकड़ों समान घटकों के लिए, पूरे बोर्ड पर फ्रेम और ग्रिड।
5
«चिह्न के आधार पर उत्पाद के लिए क्षेत्र को चिह्नित करें» → «संदर्भ छवि को चिह्नित करें» → फ्रेम में घटक वाले बोर्ड के क्षेत्र को चिह्नित करें (निरीक्षण क्षेत्र नहीं) → «✔ चयनित क्षेत्र के अनुसार क्षेत्र खोजें»।
6
«क्षेत्र-आधारित: क्षेत्र की तस्वीरें» → «शुरू करें»। 3-5 अच्छे बोर्ड पर दोहराएं। अनावश्यक क्षेत्रों को फ्रेम पर क्लिक करके पहले से बंद कर दें (लाल)।
7
«ज़ोन-पेयर: ज़ोन में विसंगतियाँ» → «बनाएँ»: तत्व और आधार को साथ में घुमाना और मोड़ना पहले से ही शामिल है। यदि आवश्यक हो, तो "संदर्भ छवि में ज़ोन" में सोल्डरिंग प्लेट्स का उपयोग करें।
8
एआई मॉडल को प्रशिक्षित करें (छवि का आकार 128, s, 50 युग) → 100% तक प्रतीक्षा करें → best.onnx को स्वयं निर्दिष्ट करें।
9
जाँच → «ज़ोन-पेयर: ज़ोन ↔ मॉडल» → जाँच → सीमा। "कैमरे" या ट्रिगर का चयन करें। यदि यह एक गतिशील प्लेट है, तो "लाइव कन्वेयर" का उपयोग करें।
10
आउटपुट → ज़ोन का चयन → विसंगति (ध्वनि, TCP या कैमरे का आउटपुट) के लिए नियम → "ज़ोन की क्रिया को अनुकरण करें" → "N ज़ोन पर बनाएँ"।

यदि कुछ गलत हो गया

लक्षणजाँच करने के लिए
कैमरा सूची में दिखाई नहीं दे रहाबिजली और केबल; SICK के लिए - IDS कैमरा मैनेजर और IP, जो नेटवर्क के अंतर्गत है; HIKROBOT के लिए - आपातकालीन बंद होने के बाद 25 सेकंड तक प्रतीक्षा करें और "पुनः कनेक्ट" करें।
छवि अंधेरी, ग्रे या गलत रंगों मेंकैमरा → "AI के लिए ऑटो-सेटिंग"; रंगीन SICK के लिए - बायर का लेआउट और व्हाइट बैलेंस; USB के लिए - "मानक", फिर "पैरामीटर को लॉक करें"।
फ्रेम कट हो रहे हैं, नेटवर्क लाल हैGigE: पैकेट का आकार 1500 या जम्बो, नेटवर्क कार्ड पर, पैकेटों के बीच विलंबता; कम FPS या कम फ्रेम; कैमरे के लिए अलग नेटवर्क कार्ड
"प्लेट नहीं मिला" / छवि छूट गईसंदर्भ छवि को कैप्चर नहीं किया गया या किसी अन्य प्रकाश में; कम सपोर्ट बिंदु - संरेखण क्षेत्र को बड़ा करें और विवरण के साथ; क्षेत्र में एक टेबल या कन्वेयर आ गया; खोज अवधि बढ़ाएं
क्षेत्र दूसरे प्लेट पर चले जा रहे हैंप्लेट को निरीक्षण क्षेत्रों के अनुसार खोजा जा रहा है: प्लेट के चारों ओर (अनुभाग 4.4) संरेखण क्षेत्र के साथ संदर्भ छवि को फिर से कैप्चर करें; "ऑटो" मिलान मॉडल
अन्य बैच के सही प्लेटों की कमीबॉडी पर अलग-अलग लेबल: इस बैच की सामान्य छवियों को जोड़ें; 3px से अधिक पतले सिंथेटिक खरोंच न करें (अनुभाग 4.6); जांचें कि दोष - विस्थापन है, रंग नहीं
NO_ZONE_CLASS चिह्नित क्षेत्रसीखने के बाद ग्रिड बदल गया; ग्रिड को वापस लाएं या एक नया मॉडल बनाएं और फिर से कैप्चर करें
सभी क्षेत्र सही प्लेट पर लाल हैंअन्य भुगतान या अन्य स्थिति, जिसमें कोई लाइव कन्वेयर सिस्टम न हो; सीमा बहुत अधिक है; तस्वीरें किसी अन्य प्रकाश में ली गई हैं; रंगीन और ग्रे फ़ाइलों को मिलाया गया है
मॉडल तत्व में बदलाव को नहीं पहचानताpx/mm को फिर से गणना करें (अनुभाग 1.3): छोटे पैमाने पर, बदलाव 5px से कम होना चाहिए; दृश्य क्षेत्र को कम करें या उच्च रिज़ॉल्यूशन वाला कैमरा लें; सामान्य रूप से बदलाव को न बढ़ाएं
प्रशिक्षण धीमा हो जाता है या बहुत धीमाडिवाइस = CPU, यदि NVIDIA ग्राफिक्स कार्ड नहीं है; बैच आकार को कम करें; कंसोल देखें; जांचें कि Python PATH में है
निरीक्षण विफल हो जाता हैक्या best.onnx चुना गया है; क्या टेम्पो स्रोत चालू है (कैमरे / टाइमर / ट्रिगर के माध्यम से); क्या "AI का उपयोग न करें" बटन दबाया गया है; क्या कैमरे पर "AI चालू" चेकबॉक्स चिह्नित है
"N क्षेत्रों में बनाएं" नियम चुप रहता है"सक्रिय" चेक बॉक्स दबाया गया है; नियम का वर्ग मॉडल के उत्तर से मेल खाता है (सामान्य / असामान्य); बाहर निकलने के लिए, स्तर "बंद" नहीं होना चाहिए; USB कैमरों में कोई आउटपुट नहीं है, केवल TCP
ध्वनि नहीं बजतीयह नियम बनाया गया है और इसे शामिल किया गया है। फ़ाइल "साउंड्स" फ़ोल्डर में मौजूद है (या "साउंड्स\कस्टम")। क्या ध्वनि के बीच कोई रुकावट है? यदि "पुन: चलाएं" विकल्प का उपयोग नहीं किया जाता है, तो ध्वनि केवल कक्षा बदलने पर ही बजती है। विंडोज की ध्वनि और आउटपुट डिवाइस की सेटिंग।
TCP पैकेट एक बार भेजा जाता है।"दोहराएँ" नियम के अनुसार, रिसीवर को "ओके <पैकेज>" प्रतिक्रिया की प्रतीक्षा करनी होगी। या, "क्लास चालू रहने तक दोहराएँ" विकल्प को चालू करें या PLC के पक्ष पर प्रतिक्रिया को कॉन्फ़िगर करें।

engiAI Ethernet System। बटन और फ़ील्ड के नाम आपके भाषा में जिस तरह से प्रदर्शित होते हैं, उसी तरह दिए गए हैं (स्क्रीनशॉट - रूसी इंटरफ़ेस से)। स्क्रीनशॉट मॉडल "model_4" पर लिए गए हैं (दो 256x256 क्षेत्र: C30 कैपेसिटर और BR1 ब्रिज), USB कैमरा 3264x2448, मॉडल ग्रे शेड्स में प्रशिक्षित किया गया है। संपादन 3, सितंबर 2026: दो क्षेत्रों का उदाहरण, मॉडल के फ़ोल्डरों का निर्माण, संरेखण क्षेत्र, सिंथेटिक डेटा "आधार वाली वस्तु" के साथ "पहले / बाद" चित्रों, रंग पैलेट और रेखा की मोटाई, लाल क्षेत्र, कंसोल।