> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/workflows/hi/blocks/blocks/classical-computer-vision/camera-focus.md).

# कैमरा फ़ोकस

## v2

Tenengrad फोकस माप (Sobel ग्रेडिएंट परिमाण) का उपयोग करके फोकस गुणवत्ता स्कोर की गणना करें ताकि छवि की तीक्ष्णता का आकलन किया जा सके, ब्लर का पता लगाया जा सके, कैमरा फोकस प्रदर्शन का मूल्यांकन किया जा सके, ऑटो-फोकस सिस्टम सक्षम किए जा सकें, छवि गुणवत्ता का आकलन किया जा सके, पहचाने गए ऑब्जेक्ट्स के लिए प्रति-क्षेत्र फोकस माप की गणना की जा सके, और पेशेवर कैमरा नियंत्रण तथा इमेज विश्लेषण वर्कफ़्लो के लिए ज़ेब्रा पैटर्न एक्सपोज़र चेतावनियाँ, फोकस पीकिंग, हेड्स-अप डिस्प्ले, कंपोज़िशन ग्रिड, और सेंटर मार्कर सहित व्यापक विज़ुअलाइज़ेशन ओवरले प्रदान किए जा सकें।

## यह ब्लॉक कैसे काम करता है

यह ब्लॉक Tenengrad फोकस माप की गणना करता है, जो Sobel ऑपरेटरों का उपयोग करके ग्रेडिएंट परिमाण मापकर छवि की तीक्ष्णता को परिमाणित करता है। यह ब्लॉक:

1. एक इनपुट छवि प्राप्त करता है (रंगीन या ग्रेस्केल, रंगीन छवि को प्रोसेसिंग के लिए स्वचालित रूप से ग्रेस्केल में बदलता है)
2. वैकल्पिक रूप से डिटेक्शन बाउंडिंग बॉक्स प्राप्त करता है ताकि विशिष्ट क्षेत्रों के भीतर फोकस माप की गणना की जा सके
3. यदि छवि रंगीन फ़ॉर्मेट में है, तो उसे ग्रेस्केल में बदलता है (Tenengrad माप सिंगल-चैनल छवियों पर काम करता है)
4. क्षैतिज और ऊर्ध्वाधर Sobel ग्रेडिएंट की गणना करता है:
   * ऊर्ध्वाधर किनारों का पता लगाने के लिए क्षैतिज दिशा (gradient X) में Sobel ऑपरेटर लागू करता है
   * क्षैतिज किनारों का पता लगाने के लिए ऊर्ध्वाधर दिशा (gradient Y) में Sobel ऑपरेटर लागू करता है
   * ग्रेडिएंट गणना के लिए 3x3 Sobel kernel का उपयोग करता है
   * वर्गीकृत मानों का उपयोग करके ग्रेडिएंट परिमाण की गणना करता है: sqrt(gx² + gy²) को लगभग gx² + gy² माना जाता है
5. फोकस माप की गणना करता है:
   * क्षैतिज और ऊर्ध्वाधर ग्रेडिएंट घटकों का वर्ग करता है
   * फोकस माप मैट्रिक्स बनाने के लिए वर्गीकृत ग्रेडिएंटों का योग करता है
   * उच्च मान मजबूत किनारों और सूक्ष्म विवरण (अधिक तीक्ष्ण, अधिक फोकस्ड क्षेत्रों) को दर्शाते हैं
   * कम मान कमजोर किनारों और कम विवरण (अधिक धुंधले, कम फोकस्ड क्षेत्रों) को दर्शाते हैं
6. कुल फोकस मान की गणना करता है:
   * पूरी छवि में फोकस माप मैट्रिक्स का औसत निकालता है
   * पूरी छवि के लिए एक एकल संख्यात्मक फोकस स्कोर लौटाता है
7. प्रति-क्षेत्र फोकस माप की गणना करता है (यदि डिटेक्शन प्रदान किए गए हों):
   * डिटेक्शन प्रेडिक्शनों से बाउंडिंग बॉक्स निर्देशांक निकालता है
   * बाउंडिंग बॉक्स को छवि सीमाओं तक क्लिप करता है
   * प्रत्येक बाउंडिंग बॉक्स क्षेत्र के भीतर औसत फोकस माप की गणना करता है
   * फोकस मानों की एक सूची लौटाता है, प्रत्येक डिटेक्शन क्षेत्र के लिए एक
8. वैकल्पिक विज़ुअलाइज़ेशन ओवरले लागू करता है:
   * **ज़ेब्रा पैटर्न चेतावनियाँ**: कम/अधिक एक्सपोज़्ड क्षेत्रों पर तिरछी धारियों वाला ओवरले (कम एक्सपोज़्ड के लिए नीला, अधिक एक्सपोज़्ड के लिए लाल) ताकि एक्सपोज़र समस्याओं की पहचान की जा सके
   * **फोकस पीकिंग**: इन-फोकस क्षेत्रों (फोकस थ्रेशहोल्ड से ऊपर के क्षेत्र) को हाइलाइट करने वाला हरा ओवरले ताकि तीक्ष्ण क्षेत्रों को दृश्य रूप में देखा जा सके
   * **हेड्स-अप डिस्प्ले (HUD)**: ऊपर-बाएँ कोने में एक अर्ध-पारदर्शी ओवरले जो फोकस मान, ब्राइटनेस हिस्टोग्राम (प्रत्येक रंग चैनल और ग्रेस्केल के लिए), और एक्सपोज़र जानकारी दिखाता है
   * **कंपोज़िशन ग्रिड**: कंपोज़िशन सहायता के लिए ग्रिड लाइनों वाला ओवरले (2x2, 3x3 रूल ऑफ़ थर्ड्स, 4x4, या 5x5 विभाजन)
   * **सेंटर मार्कर**: संरेखण और फ्रेमिंग संदर्भ के लिए फ्रेम के केंद्र में क्रॉसहेयर मार्कर
9. छवि संरचना और मेटाडेटा को संरक्षित करता है
10. विज़ुअलाइज़ेशन छवि (यदि ओवरले सक्षम हों), कुल फोकस माप मान, और प्रति-बाउंडिंग-बॉक्स फोकस माप सूची लौटाता है

Tenengrad फोकस माप किनारों की मजबूती और ग्रेडिएंट परिमाण का विश्लेषण करके छवि की तीक्ष्णता को परिमाणित करता है। इन-फोकस छवियों में अनेक तीक्ष्ण किनारे और मजबूत ग्रेडिएंट होते हैं, जिसके परिणामस्वरूप उच्च Tenengrad स्कोर मिलते हैं। आउट-ऑफ-फोकस छवियों में धुंधले किनारे और कमजोर ग्रेडिएंट होते हैं, जिसके परिणामस्वरूप कम Tenengrad स्कोर मिलते हैं। यह माप ग्रेडिएंट को कुशलतापूर्वक गणना करने के लिए Sobel ऑपरेटरों का उपयोग करता है और शोर के प्रति मज़बूत है। उच्च Tenengrad मान बेहतर फोकस दर्शाते हैं, जिनकी सामान्य सीमाएँ छवि सामग्री, रेज़ोल्यूशन और किनारे की घनता पर निर्भर करती हैं। विज़ुअलाइज़ेशन ओवरले पेशेवर कैमरा नियंत्रण सहायक साधन प्रदान करते हैं, जो वास्तविक समय में या विश्लेषण के दौरान फोकस समस्याओं, एक्सपोज़र समस्याओं और कंपोज़िशन अवसरों की पहचान करने में मदद करते हैं।

## सामान्य उपयोग के मामले

* **ऑटो-फोकस सिस्टम**: प्रति-क्षेत्र फोकस विश्लेषण के साथ स्वचालित कैमरा फोकस समायोजन को सक्षम करने के लिए फोकस गुणवत्ता का आकलन करें (उदाहरण के लिए, ऑटो-फोकस संचालन के दौरान फोकस का मूल्यांकन करें, विशिष्ट ऑब्जेक्ट्स के लिए सर्वोत्तम फोकस स्थिति का पता लगाएँ, Tenengrad स्कोर के आधार पर फोकस समायोजन ट्रिगर करें), जिससे उन्नत ऑटो-फोकस वर्कफ़्लो सक्षम हों
* **छवि गुणवत्ता आकलन**: गुणवत्ता नियंत्रण के लिए विज़ुअलाइज़ेशन ओवरले के साथ छवि की तीक्ष्णता का मूल्यांकन करें और धुंधली छवियों का पता लगाएँ (उदाहरण के लिए, HUD डिस्प्ले के साथ कैप्चर पाइपलाइनों में छवि गुणवत्ता का आकलन करें, फोकस पीकिंग के साथ आउट-ऑफ-फोकस छवियों का पता लगाएँ, फोकस थ्रेशहोल्ड का उपयोग करके कम-गुणवत्ता वाली छवियों को फ़िल्टर करें), जिससे व्यापक गुणवत्ता आकलन वर्कफ़्लो सक्षम हों
* **पेशेवर कैमरा नियंत्रण**: मैनुअल कैमरा संचालन के लिए वास्तविक समय फोकस और एक्सपोज़र फ़ीडबैक प्रदान करें (उदाहरण के लिए, मैनुअल फोकस के लिए फोकस पीकिंग दिखाएँ, एक्सपोज़र समायोजन के लिए ज़ेब्रा चेतावनियाँ दिखाएँ, फ्रेमिंग के लिए कंपोज़िशन ग्रिड का उपयोग करें), जिससे पेशेवर कैमरा नियंत्रण वर्कफ़्लो सक्षम हों
* **ऑब्जेक्ट-विशिष्ट फोकस विश्लेषण**: छवियों के भीतर विशिष्ट पहचाने गए ऑब्जेक्ट्स के लिए फोकस गुणवत्ता का मूल्यांकन करें (उदाहरण के लिए, पहचाने गए ऑब्जेक्ट्स पर फोकस का आकलन करें, प्रति बाउंडिंग बॉक्स क्षेत्र फोकस का विश्लेषण करें, विशिष्ट ऑब्जेक्ट वर्गों के लिए फोकस को अनुकूलित करें), जिससे ऑब्जेक्ट-केंद्रित विश्लेषण वर्कफ़्लो सक्षम हों
* **कैमरा कैलिब्रेशन**: व्यापक विज़ुअलाइज़ेशन के साथ कैमरा सेटअप और कैलिब्रेशन के दौरान फोकस प्रदर्शन का मूल्यांकन करें (उदाहरण के लिए, ओवरले के साथ कैमरा कैलिब्रेशन के दौरान फोकस का आकलन करें, HUD फ़ीडबैक का उपयोग करके फोकस सेटिंग्स को अनुकूलित करें, विज़ुअल सहायता के साथ कैमरा प्रदर्शन का मूल्यांकन करें), जिससे बेहतर कैमरा कैलिब्रेशन वर्कफ़्लो सक्षम हों
* **वीडियो फोकस ट्रैकिंग**: प्रति-ऑब्जेक्ट फोकस माप के साथ वीडियो फ्रेमों में फोकस गुणवत्ता की निगरानी करें (उदाहरण के लिए, गतिशील ऑब्जेक्ट्स के लिए फोकस ट्रैक करें, वीडियो स्ट्रीम में फोकस गुणवत्ता की निगरानी करें, फ्रेमों में फोकस स्थिरता का विश्लेषण करें), जिससे वीडियो फोकस ट्रैकिंग वर्कफ़्लो सक्षम हों

## अन्य ब्लॉकों से जोड़ना

यह ब्लॉक एक छवि (और वैकल्पिक रूप से डिटेक्शन) प्राप्त करता है और एक विज़ुअलाइज़ेशन छवि, कुल focus\_measure फ़्लोट मान, और bbox\_focus\_measures सूची उत्पन्न करता है:

* **ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन ब्लॉक्स के बाद** ताकि पहचाने गए ऑब्जेक्ट्स के लिए फोकस माप की गणना की जा सके (उदाहरण के लिए, पहचाने गए ऑब्जेक्ट्स पर फोकस का आकलन करें, प्रति डिटेक्शन क्षेत्र फोकस का विश्लेषण करें, ऑब्जेक्ट-विशिष्ट फोकस गुणवत्ता का मूल्यांकन करें), जिससे डिटेक्शन-से-फोकस वर्कफ़्लो सक्षम हों
* **छवि कैप्चर या प्रीप्रोसेसिंग ब्लॉक्स के बाद** कैप्चर की गई या प्रोसेस की गई छवियों की फोकस गुणवत्ता का आकलन करने के लिए (उदाहरण के लिए, छवि कैप्चर के बाद फोकस का मूल्यांकन करें, प्रीप्रोसेसिंग के बाद तीक्ष्णता का आकलन करें, ओवरले के साथ छवि पाइपलाइनों में फोकस मापें), जिससे बेहतर फोकस आकलन वर्कफ़्लो सक्षम हों
* **लॉजिक ब्लॉक्स से पहले** जैसे Continue If, ताकि फोकस गुणवत्ता के आधार पर निर्णय लिए जा सकें (उदाहरण के लिए, यदि फोकस अच्छा है तो जारी रखें, Tenengrad स्कोर के आधार पर छवियों को फ़िल्टर करें, फोकस माप या प्रति-ऑब्जेक्ट फोकस मानों का उपयोग करके निर्णय लें), जिससे फोकस-आधारित निर्णय वर्कफ़्लो सक्षम हों
* **विश्लेषण ब्लॉक्स से पहले** विश्लेषण से पहले छवि गुणवत्ता का आकलन करने के लिए (उदाहरण के लिए, विश्लेषण से पहले फोकस का मूल्यांकन करें, प्रोसेसिंग के लिए तीक्ष्णता का आकलन करें, विश्लेषण से पहले गुणवत्ता मापें), जिससे गुणवत्ता-आधारित विश्लेषण वर्कफ़्लो सक्षम हों
* **ऑटो-फोकस सिस्टम में** जहाँ फोकस मापन, प्रति-ऑब्जेक्ट विश्लेषण के साथ एक फ़ीडबैक लूप का हिस्सा होता है (उदाहरण के लिए, ऑब्जेक्ट प्राथमिकता के साथ ऑटो-फोकस के लिए फोकस मापें, फ़ीडबैक सिस्टम में फोकस का आकलन करें, नियंत्रण लूप में फोकस का मूल्यांकन करें), जिससे उन्नत ऑटो-फोकस सिस्टम वर्कफ़्लो सक्षम हों
* **विज़ुअलाइज़ेशन ब्लॉकों से पहले** फोकस गुणवत्ता जानकारी प्रदर्शित करने के लिए (उदाहरण के लिए, ओवरले के साथ फोकस स्कोर विज़ुअलाइज़ करें, फोकस माप दिखाएँ, पेशेवर कैमरा सहायताओं के साथ फोकस गुणवत्ता दिखाएँ), जिससे व्यापक फोकस विज़ुअलाइज़ेशन वर्कफ़्लो सक्षम हों

## संस्करण अंतर

**v1 से उन्नत:**

* **अलग फोकस एल्गोरिथ्म**: Brenner माप के बजाय Tenengrad फोकस माप (Sobel ग्रेडिएंट परिमाण) का उपयोग करता है, जो अधिक मज़बूत किनारा पहचान और फोकस आकलन प्रदान करता है
* **विज़ुअलाइज़ेशन ओवरले**: इसमें व्यापक विज़ुअलाइज़ेशन सुविधाएँ शामिल हैं, जिनमें ज़ेब्रा पैटर्न एक्सपोज़र चेतावनियाँ, फोकस पीकिंग (तीक्ष्ण क्षेत्रों पर हरा हाइलाइट), फोकस मानों और ब्राइटनेस हिस्टोग्राम वाला हेड्स-अप डिस्प्ले, कंपोज़िशन ग्रिड ओवरले (2x2, 3x3, 4x4, 5x5), और पेशेवर कैमरा नियंत्रण के लिए केंद्र क्रॉसहेयर मार्कर शामिल हैं
* **प्रति-क्षेत्र फोकस विश्लेषण**: विशिष्ट ऑब्जेक्ट क्षेत्रों के भीतर फोकस माप की गणना करने के लिए वैकल्पिक डिटेक्शन बाउंडिंग बॉक्स का समर्थन करता है, जिससे ऑब्जेक्ट-विशिष्ट फोकस आकलन संभव होता है
* **उन्नत आउटपुट**: तीन आउटपुट लौटाता है - विज़ुअलाइज़ेशन छवि, कुल focus\_measure फ़्लोट, और bbox\_focus\_measures सूची (प्रति-डिटेक्शन फोकस मान)
* **कॉन्फ़िगर करने योग्य विज़ुअलाइज़ेशन**: सभी विज़ुअलाइज़ेशन ओवरले कॉन्फ़िगर किए जा सकते हैं (ज़ेब्रा चेतावनियाँ, HUD, फोकस पीकिंग, ग्रिड, सेंटर मार्कर को स्वतंत्र रूप से सक्षम/अक्षम किया जा सकता है)
* **एक्सपोज़र विश्लेषण**: कम/अधिक एक्सपोज़्ड क्षेत्रों के लिए कॉन्फ़िगर करने योग्य थ्रेशहोल्ड के साथ एक्सपोज़र आकलन शामिल है, दृश्य ज़ेब्रा पैटर्न चेतावनियों सहित
* **पेशेवर कैमरा सहायक साधन**: पेशेवर कैमरा डिस्प्ले जैसे उपकरण प्रदान करता है, जिनमें फोकस पीकिंग, हिस्टोग्राम डिस्प्ले, और कंपोज़िशन गाइड शामिल हैं

## आवश्यकताएँ

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

### प्रकार पहचानकर्ता

स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें `"type"` फील्ड: `roboflow_core/camera_focus@v2` अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।

### गुण

| **नाम**                          | **प्रकार** | **विवरण**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | संदर्भ |
| -------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------ |
| `name`                           | `str`      | इस स्टेप के लिए एक अद्वितीय पहचानकर्ता दर्ज करें..                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | ❌      |
| `underexposed_threshold_percent` | `float`    | ब्राइटनेस प्रतिशत थ्रेशहोल्ड, जिसके नीचे पिक्सेल को कम एक्सपोज़्ड के रूप में चिह्नित किया जाता है। यह 0.0 और 100.0 के बीच होना चाहिए। डिफ़ॉल्ट 3.0% है, जिसका अर्थ है कि 3% से कम ब्राइटनेस वाले पिक्सेल (लगभग 0-255 रेंज में 8 का मान) कम एक्सपोज़्ड माने जाते हैं। इस थ्रेशहोल्ड से नीचे के पिक्सेल, जब show\_zebra\_warnings सक्षम हो, नीले ज़ेब्रा पैटर्न ओवरले दिखाएँगे। कम मान अधिक सख्त होते हैं (कम पिक्सेल कम एक्सपोज़्ड चिह्नित होते हैं), जबकि अधिक मान अधिक उदार होते हैं (अधिक पिक्सेल कम एक्सपोज़्ड चिह्नित होते हैं)। एक्सपोज़र सहनशीलता और छवि आवश्यकताओं के आधार पर समायोजित करें..                                                               | ❌      |
| `overexposed_threshold_percent`  | `float`    | ब्राइटनेस प्रतिशत थ्रेशहोल्ड, जिसके ऊपर पिक्सेल को अधिक एक्सपोज़्ड के रूप में चिह्नित किया जाता है। यह 0.0 और 100.0 के बीच होना चाहिए। डिफ़ॉल्ट 97.0% है, जिसका अर्थ है कि 97% से अधिक ब्राइटनेस वाले पिक्सेल (लगभग 0-255 रेंज में 247 का मान) अधिक एक्सपोज़्ड माने जाते हैं। इस थ्रेशहोल्ड से ऊपर के पिक्सेल, जब show\_zebra\_warnings सक्षम हो, लाल ज़ेब्रा पैटर्न ओवरले दिखाएँगे। उच्च मान अधिक सख्त होते हैं (कम पिक्सेल अधिक एक्सपोज़्ड चिह्नित होते हैं), जबकि कम मान अधिक उदार होते हैं (अधिक पिक्सेल अधिक एक्सपोज़्ड चिह्नित होते हैं)। एक्सपोज़र सहनशीलता और छवि आवश्यकताओं के आधार पर समायोजित करें..                                                    | ❌      |
| `show_zebra_warnings`            | `bool`     | कम/अधिक एक्सपोज़्ड क्षेत्रों पर तिरछे ज़ेब्रा पैटर्न का ओवरले प्रदर्शित करें। जब सक्षम हो (डिफ़ॉल्ट True), underexposed\_threshold\_percent से नीचे के पिक्सेल नीली ज़ेब्रा धारियाँ दिखाते हैं, और overexposed\_threshold\_percent से ऊपर के पिक्सेल लाल ज़ेब्रा धारियाँ दिखाते हैं। यह एक्सपोज़र समस्याओं के लिए दृश्य फ़ीडबैक प्रदान करता है, जो पेशेवर कैमरा ज़ेब्रा पैटर्न डिस्प्ले जैसा होता है। ज़ेब्रा पैटर्न उन क्षेत्रों की पहचान करने में मदद करता है जिनमें एक्सपोज़र समस्याएँ हैं (बहुत अंधेरा या बहुत उजला) जिन्हें समायोजन की आवश्यकता हो सकती है। यदि आप एक्सपोज़र चेतावनियाँ नहीं चाहते या अधिक साफ़ विज़ुअलाइज़ेशन चाहते हैं, तो इसे अक्षम करें.. | ❌      |
| `grid_overlay`                   | `str`      | फ्रेमिंग सहायता के लिए कंपोज़िशन ग्रिड ओवरले। विकल्प: 'None' (कोई ग्रिड नहीं), '2x2' (चार क्वाड्रेंट), '3x3' (डिफ़ॉल्ट, 9 खंडों वाला रूल ऑफ़ थर्ड्स), '4x4' (16 खंड), या '5x5' (25 खंड)। ग्रिड छवि को खंडों में विभाजित करके कंपोज़िशन और फ्रेमिंग में मदद करता है। 3x3 ग्रिड (रूल ऑफ़ थर्ड्स) संतुलित कंपोज़िशन के लिए आमतौर पर उपयोग किया जाता है। ग्रिड लाइनें ग्रे रंग में खींची जाती हैं। कंपोज़िशन आवश्यकताओं के अनुसार चुनें: सामान्य उपयोग के लिए रूल ऑफ़ थर्ड्स (3x3), सरल क्वाड्रेंट कंपोज़िशन के लिए 2x2, या अधिक विस्तृत कंपोज़िशन गाइड के लिए उच्च विभाजन..                                                                                           | ❌      |
| `show_hud`                       | `bool`     | फोकस स्कोर और ब्राइटनेस हिस्टोग्राम के साथ हेड्स-अप डिस्प्ले (HUD) ओवरले प्रदर्शित करें। जब सक्षम हो (डिफ़ॉल्ट True), ऊपर-बाएँ कोने में एक अर्ध-पारदर्शी काला ओवरले दिखाता है, जिसमें शामिल हैं: फोकस मान ('TFM Focus' लेबल के साथ संख्यात्मक स्कोर), प्रत्येक रंग चैनल (लाल, हरा, नीला) और ग्रेस्केल के लिए वितरण दिखाने वाला ब्राइटनेस हिस्टोग्राम, और एक्सपोज़र लेबल। HUD पेशेवर कैमरा नियंत्रण के लिए व्यापक फोकस और एक्सपोज़र जानकारी प्रदान करता है। यदि आपको HUD डिस्प्ले की आवश्यकता नहीं है या आप अधिक साफ़ विज़ुअलाइज़ेशन चाहते हैं, तो इसे अक्षम करें..                                                                                                 | ❌      |
| `show_focus_peaking`             | `bool`     | इन-फोकस क्षेत्रों को हाइलाइट करने वाला हरा ओवरले (फोकस पीकिंग) प्रदर्शित करें। जब सक्षम हो (डिफ़ॉल्ट True), फोकस थ्रेशहोल्ड से ऊपर के फोकस माप वाले क्षेत्रों को अर्ध-पारदर्शी हरे ओवरले से हाइलाइट किया जाता है। यह दिखाने में मदद करता है कि छवि के कौन-से क्षेत्र तीक्ष्ण फोकस में हैं, जो पेशेवर कैमरा फोकस पीकिंग डिस्प्ले जैसा होता है। हरा हाइलाइट एक नज़र में तीक्ष्ण क्षेत्रों को देखना आसान बनाता है। यदि आप फोकस पीकिंग ओवरले नहीं चाहते या अधिक साफ़ विज़ुअलाइज़ेशन चाहते हैं, तो इसे अक्षम करें..                                                                                                                                                     | ❌      |
| `show_center_marker`             | `bool`     | फ्रेम के केंद्र में क्रॉसहेयर मार्कर प्रदर्शित करें। जब सक्षम हो (डिफ़ॉल्ट True), तो संरेखण और फ्रेमिंग संदर्भ के लिए छवि केंद्र पर एक सफ़ेद क्रॉसहेयर दिखाता है। दृश्यता के लिए क्रॉसहेयर का आकार छवि आयामों के साथ स्केल होता है। यह पेशेवर कैमरा सेंटर मार्कर की तरह कंपोज़िशन संरेखण और केंद्र फ्रेमिंग में मदद करता है। यदि आपको सेंटर मार्कर की आवश्यकता नहीं है या आप अधिक साफ़ विज़ुअलाइज़ेशन चाहते हैं, तो इसे अक्षम करें..                                                                                                                                                                                                                               | ❌      |

यह **संदर्भ** कॉलम यह दर्शाता है कि प्रॉपर्टी को गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है, जो `वर्कफ़्लो` रनटाइम में उपलब्ध हैं। अधिक जानकारी के लिए देखें *Bindings* ।

### इनपुट और आउटपुट बाइंडिंग्स

उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। जाँचें कि कौन-से बाइंडिंग प्रकार `कैमरा फोकस` संस्करण में `v2` है।

<details>

<summary>इनपुट और आउटपुट बाइंडिंग्स</summary>

* इनपुट
  * `image` ([*`image`*](/workflows/hi/developer-guide/developer-guide/kinds/image.md)): फोकस गुणवत्ता की गणना करने के लिए इनपुट छवि (रंगीन या ग्रेस्केल)। रंगीन छवियों को प्रोसेसिंग से पहले स्वचालित रूप से ग्रेस्केल में बदल दिया जाता है (Tenengrad फोकस माप सिंगल-चैनल छवियों पर काम करता है)। यह ब्लॉक Sobel ग्रेडिएंट परिमाण का उपयोग करके Tenengrad फोकस माप की गणना करता है ताकि छवि की तीक्ष्णता का आकलन किया जा सके। आउटपुट में एक विज़ुअलाइज़ेशन छवि (यदि सक्षम हों तो वैकल्पिक ओवरले के साथ), एक कुल focus\_measure फ़्लोट मान, और एक bbox\_focus\_measures सूची (यदि डिटेक्शन प्रदान किए गए हों तो प्रति-डिटेक्शन फोकस मान) शामिल है। उच्च Tenengrad मान बेहतर फोकस और अधिक तीक्ष्ण छवियों (मजबूत किनारे और ग्रेडिएंट) को दर्शाते हैं, जबकि कम मान ब्लर और खराब फोकस (कमजोर ग्रेडिएंट) को दर्शाते हैं। फोकस माप ग्रेडिएंट परिमाण को कुशलतापूर्वक गणना करने के लिए Sobel ऑपरेटरों का उपयोग करता है। मूल छवि मेटाडेटा संरक्षित रहता है। इस ब्लॉक का उपयोग फोकस गुणवत्ता का आकलन करने, ब्लर का पता लगाने, ऑटो-फोकस सिस्टम सक्षम करने, ऑब्जेक्ट-विशिष्ट फोकस विश्लेषण करने, या पेशेवर कैमरा नियंत्रण विज़ुअलाइज़ेशन सहायताओं के साथ छवि गुणवत्ता आकलन करने के लिए करें..
  * `detections` (*Union\[*[*`instance_segmentation_prediction`*](/workflows/hi/developer-guide/developer-guide/kinds/instance-segmentation-prediction.md)*,* [*`object_detection_prediction`*](/workflows/hi/developer-guide/developer-guide/kinds/object-detection-prediction.md)*]*): वैकल्पिक डिटेक्शन प्रेडिक्शन (ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन) ताकि बाउंडिंग बॉक्स क्षेत्रों के भीतर फोकस माप की गणना की जा सके। जब प्रदान किए जाते हैं, तो ब्लॉक प्रत्येक डिटेक्शन के बाउंडिंग बॉक्स क्षेत्र के लिए एक अलग फोकस माप की गणना करता है और उन्हें bbox\_focus\_measures सूची आउटपुट में लौटाता है। यह ऑब्जेक्ट-विशिष्ट फोकस विश्लेषण सक्षम करता है, जिससे आप केवल संपूर्ण छवि के बजाय अलग-अलग पहचाने गए ऑब्जेक्ट्स की फोकस गुणवत्ता का आकलन कर सकते हैं। यह विशिष्ट रुचि के ऑब्जेक्ट्स पर फोकस का मूल्यांकन करने, प्रति ऑब्जेक्ट वर्ग फोकस का विश्लेषण करने, या पहचाने गए क्षेत्रों के लिए फोकस को अनुकूलित करने में उपयोगी है। प्रत्येक bbox\_focus\_measure मान उस ऑब्जेक्ट के बाउंडिंग बॉक्स के भीतर औसत Tenengrad फोकस माप के अनुरूप होता है। यदि आपको केवल संपूर्ण छवि के फोकस आकलन की आवश्यकता है, तो इसे None रहने दें..
* आउटपुट
  * `image` ([`image`](/workflows/hi/developer-guide/developer-guide/kinds/image.md)): वर्कफ़्लो में छवि।
  * `focus_measure` ([`float`](/workflows/hi/developer-guide/developer-guide/kinds/float.md)): फ़्लोट मान।
  * `bbox_focus_measures` ([`list_of_values`](/workflows/hi/developer-guide/developer-guide/kinds/list-of-values.md)): किसी भी प्रकार के मानों की सूची।

</details>

<details>

<summary>उदाहरण JSON परिभाषा</summary>

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/camera_focus@v2",
	    "image": "$inputs.image",
	    "underexposed_threshold_percent": "<block_does_not_provide_example>",
	    "overexposed_threshold_percent": "<block_does_not_provide_example>",
	    "show_zebra_warnings": "<block_does_not_provide_example>",
	    "grid_overlay": "<block_does_not_provide_example>",
	    "show_hud": "<block_does_not_provide_example>",
	    "show_focus_peaking": "<block_does_not_provide_example>",
	    "show_center_marker": "<block_does_not_provide_example>",
	    "detections": "$steps.object_detection_model.predictions"
	}
```

</details>

## v1

Brenner फ़ंक्शन माप का उपयोग करके फोकस गुणवत्ता स्कोर की गणना करें ताकि छवि की तीक्ष्णता का आकलन किया जा सके, ब्लर का पता लगाया जा सके, कैमरा फोकस प्रदर्शन का मूल्यांकन किया जा सके, ऑटो-फोकस सिस्टम सक्षम किए जा सकें, छवि गुणवत्ता का आकलन किया जा सके, और कैमरा कैलिब्रेशन तथा छवि कैप्चर वर्कफ़्लो के लिए सर्वोत्तम फोकस सेटिंग्स निर्धारित की जा सकें।

## यह ब्लॉक कैसे काम करता है

यह ब्लॉक Brenner फोकस माप की गणना करता है, जो सूक्ष्म स्तर पर टेक्सचर विवरण मापकर छवि की तीक्ष्णता को परिमाणित करता है। यह ब्लॉक:

1. एक इनपुट छवि प्राप्त करता है (रंगीन या ग्रेस्केल, रंगीन छवि को स्वचालित रूप से ग्रेस्केल में बदलता है)
2. यदि छवि रंगीन फ़ॉर्मेट में है, तो उसे ग्रेस्केल में बदलता है (Brenner माप सिंगल-चैनल छवियों पर काम करता है)
3. सटीक गणनाओं के लिए ग्रेस्केल छवि को 16-बिट पूर्णांक फ़ॉर्मेट में बदलता है
4. क्षैतिज और ऊर्ध्वाधर तीव्रता अंतरों की गणना करता है:
   * क्षैतिज रूप से 2 पोज़िशन दूर पिक्सेल की तुलना करके क्षैतिज अंतर की गणना करता है: `pixel[x+2] - pixel[x]`
   * ऊर्ध्वाधर रूप से 2 पोज़िशन दूर पिक्सेल की तुलना करके ऊर्ध्वाधर अंतर की गणना करता है: `pixel[y+2] - pixel[y]`
   * केवल सकारात्मक अंतरों को रखने के लिए क्लिपिंग का उपयोग करता है (तीक्ष्ण किनारों और विवरणों को हाइलाइट करता है)
   * तेज़ तीव्रता परिवर्तनों को मापता है जो सूक्ष्म-स्तरीय टेक्सचर और तीक्ष्ण किनारों को दर्शाते हैं
5. फोकस माप मैट्रिक्स की गणना करता है:
   * प्रत्येक पिक्सेल स्थान पर क्षैतिज और ऊर्ध्वाधर अंतरों में से अधिकतम लेता है
   * बड़े परिवर्तनों को अधिक महत्व देने के लिए अंतरों का वर्ग करता है (तीक्ष्ण किनारों के प्रति अधिक मज़बूत प्रतिक्रिया)
   * एक ऐसा मैट्रिक्स बनाता है जिसमें उच्च मान अधिक तीक्ष्ण, अधिक फोकस्ड क्षेत्रों को दर्शाते हैं
6. विज़ुअलाइज़ेशन फ़ॉर्मेट में सामान्यीकृत और परिवर्तित करता है:
   * प्रदर्शन के लिए फोकस माप मैट्रिक्स को 0-255 रेंज में सामान्यीकृत करता है
   * विज़ुअलाइज़ेशन के लिए 8-बिट फ़ॉर्मेट में बदलता है
   * पूरी छवि में फोकस गुणवत्ता दिखाने वाला एक दृश्य प्रतिनिधित्व बनाता है
7. छवि पर Brenner मान का टेक्स्ट ओवरले करता है:
   * छवि के ऊपर-बाएँ भाग में औसत फोकस माप मान प्रदर्शित करता है
   * आसान आकलन के लिए फोकस गुणवत्ता को संख्यात्मक स्कोर के रूप में दिखाता है
8. छवि संरचना और मेटाडेटा को संरक्षित करता है
9. विज़ुअलाइज़ेशन छवि और औसत फोकस माप मान को फ़्लोट के रूप में लौटाता है

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

## सामान्य उपयोग के मामले

* **ऑटो-फोकस सिस्टम**: स्वचालित कैमरा फोकस समायोजन सक्षम करने के लिए फोकस गुणवत्ता का आकलन करें (उदाहरण के लिए, ऑटो-फोकस संचालन के दौरान फोकस का मूल्यांकन करें, सर्वोत्तम फोकस स्थिति का पता लगाएँ, Brenner स्कोर के आधार पर फोकस समायोजन ट्रिगर करें), जिससे ऑटो-फोकस वर्कफ़्लो सक्षम हों
* **छवि गुणवत्ता आकलन**: गुणवत्ता नियंत्रण के लिए छवि की तीक्ष्णता का मूल्यांकन करें और धुंधली छवियों का पता लगाएँ (उदाहरण के लिए, कैप्चर पाइपलाइनों में छवि गुणवत्ता का आकलन करें, आउट-ऑफ-फोकस छवियों का पता लगाएँ, कम-गुणवत्ता वाली छवियों को फ़िल्टर करें), जिससे गुणवत्ता आकलन वर्कफ़्लो सक्षम हों
* **कैमरा कैलिब्रेशन**: कैमरा सेटअप और कैलिब्रेशन के दौरान फोकस प्रदर्शन का मूल्यांकन करें (उदाहरण के लिए, कैमरा कैलिब्रेशन के दौरान फोकस का आकलन करें, फोकस सेटिंग्स को अनुकूलित करें, कैमरा प्रदर्शन का मूल्यांकन करें), जिससे कैमरा कैलिब्रेशन वर्कफ़्लो सक्षम हों
* **ब्लर डिटेक्शन**: इमेज प्रोसेसिंग पाइपलाइनों में धुंधली छवियों का पता लगाएँ (उदाहरण के लिए, अस्वीकृति के लिए धुंधली छवियों की पहचान करें, फोकस समस्याओं का पता लगाएँ, छवि की तीक्ष्णता का आकलन करें), जिससे ब्लर डिटेक्शन वर्कफ़्लो सक्षम हों
* **फोकस अनुकूलन**: छवि कैप्चर सिस्टम के लिए सर्वोत्तम फोकस सेटिंग्स निर्धारित करें (उदाहरण के लिए, सर्वोत्तम फोकस स्थिति खोजें, फोकस पैरामीटर अनुकूलित करें, सेटिंग्स के पार फोकस का मूल्यांकन करें), जिससे फोकस अनुकूलन वर्कफ़्लो सक्षम हों
* **इमेज विश्लेषण**: इमेज विश्लेषण वर्कफ़्लो के हिस्से के रूप में छवि की तीक्ष्णता का आकलन करें (उदाहरण के लिए, प्रोसेसिंग से पहले छवि गुणवत्ता का मूल्यांकन करें, विश्लेषण कार्यों के लिए फोकस का आकलन करें, छवि तीक्ष्णता मीट्रिक्स मापें), जिससे फोकस विश्लेषण वर्कफ़्लो सक्षम हों

## अन्य ब्लॉकों से जोड़ना

यह ब्लॉक एक छवि प्राप्त करता है और एक फोकस माप विज़ुअलाइज़ेशन छवि तथा एक focus\_measure फ़्लोट मान उत्पन्न करता है:

* **छवि कैप्चर या प्रीप्रोसेसिंग ब्लॉक्स के बाद** कैप्चर की गई या प्रोसेस की गई छवियों की फोकस गुणवत्ता का आकलन करने के लिए (उदाहरण के लिए, छवि कैप्चर के बाद फोकस का मूल्यांकन करें, प्रीप्रोसेसिंग के बाद तीक्ष्णता का आकलन करें, छवि पाइपलाइनों में फोकस मापें), जिससे फोकस आकलन वर्कफ़्लो सक्षम हों
* **लॉजिक ब्लॉक्स से पहले** जैसे Continue If, ताकि फोकस गुणवत्ता के आधार पर निर्णय लिए जा सकें (उदाहरण के लिए, यदि फोकस अच्छा है तो जारी रखें, फोकस स्कोर के आधार पर छवियों को फ़िल्टर करें, फोकस माप का उपयोग करके निर्णय लें), जिससे फोकस-आधारित निर्णय वर्कफ़्लो सक्षम हों
* **विश्लेषण ब्लॉक्स से पहले** विश्लेषण से पहले छवि गुणवत्ता का आकलन करने के लिए (उदाहरण के लिए, विश्लेषण से पहले फोकस का मूल्यांकन करें, प्रोसेसिंग के लिए तीक्ष्णता का आकलन करें, विश्लेषण से पहले गुणवत्ता मापें), जिससे गुणवत्ता-आधारित विश्लेषण वर्कफ़्लो सक्षम हों
* **ऑटो-फोकस सिस्टम में** जहाँ फोकस मापन, एक फ़ीडबैक लूप का हिस्सा होता है (उदाहरण के लिए, ऑटो-फोकस के लिए फोकस मापें, फ़ीडबैक सिस्टम में फोकस का आकलन करें, नियंत्रण लूप में फोकस का मूल्यांकन करें), जिससे ऑटो-फोकस सिस्टम वर्कफ़्लो सक्षम हों
* **विज़ुअलाइज़ेशन ब्लॉकों से पहले** फोकस गुणवत्ता जानकारी प्रदर्शित करने के लिए (उदाहरण के लिए, फोकस स्कोर विज़ुअलाइज़ करें, फोकस माप दिखाएँ, फोकस गुणवत्ता दिखाएँ), जिससे फोकस विज़ुअलाइज़ेशन वर्कफ़्लो सक्षम हों
* **छवि गुणवत्ता नियंत्रण पाइपलाइनों में** जहाँ फोकस आकलन गुणवत्ता जाँच का हिस्सा होता है (उदाहरण के लिए, गुणवत्ता पाइपलाइनों में फोकस का आकलन करें, QC वर्कफ़्लो में तीक्ष्णता का मूल्यांकन करें, गुणवत्ता नियंत्रण के लिए फोकस मापें), जिससे गुणवत्ता नियंत्रण वर्कफ़्लो सक्षम हों

## आवश्यकताएँ

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

### प्रकार पहचानकर्ता

स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें `"type"` फील्ड: `roboflow_core/camera_focus@v1` अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।

### गुण

| **नाम** | **प्रकार** | **विवरण**                                          | संदर्भ |
| ------- | ---------- | -------------------------------------------------- | ------ |
| `name`  | `str`      | इस स्टेप के लिए एक अद्वितीय पहचानकर्ता दर्ज करें.. | ❌      |

यह **संदर्भ** कॉलम यह दर्शाता है कि प्रॉपर्टी को गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है, जो `वर्कफ़्लो` रनटाइम में उपलब्ध हैं। अधिक जानकारी के लिए देखें *Bindings* ।

### इनपुट और आउटपुट बाइंडिंग्स

उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। जाँचें कि कौन-से बाइंडिंग प्रकार `कैमरा फोकस` संस्करण में `v1` है।

<details>

<summary>इनपुट और आउटपुट बाइंडिंग्स</summary>

* इनपुट
  * `image` ([*`image`*](/workflows/hi/developer-guide/developer-guide/kinds/image.md)): फोकस गुणवत्ता की गणना करने के लिए इनपुट छवि (रंगीन या ग्रेस्केल)। रंगीन छवियों को प्रोसेसिंग से पहले स्वचालित रूप से ग्रेस्केल में बदल दिया जाता है (Brenner फोकस माप सिंगल-चैनल छवियों पर काम करता है)। यह ब्लॉक छवि की तीक्ष्णता का आकलन करने के लिए सूक्ष्म-स्तरीय टेक्सचर और किनारे के विवरण को मापने वाला Brenner फ़ंक्शन स्कोर गणना करता है। आउटपुट में एक विज़ुअलाइज़ेशन छवि (जिसमें फोकस माप मान प्रदर्शित होता है) और एक संख्यात्मक focus\_measure फ़्लोट मान दोनों शामिल हैं। उच्च Brenner मान बेहतर फोकस और अधिक तीक्ष्ण छवियों (अधिक सूक्ष्म-स्तरीय टेक्सचर और तीक्ष्ण किनारे) को दर्शाते हैं, जबकि कम मान ब्लर और खराब फोकस (सूक्ष्म विवरण की कमी) को दर्शाते हैं। फोकस माप सूक्ष्म-स्तरीय टेक्सचर का पता लगाने के लिए 2 स्थान दूर पिक्सेलों के बीच तीव्रता अंतर का उपयोग करता है। मूल छवि मेटाडेटा संरक्षित रहता है। इस ब्लॉक का उपयोग फोकस गुणवत्ता का आकलन करने, ब्लर का पता लगाने, ऑटो-फोकस सिस्टम सक्षम करने, या छवि गुणवत्ता आकलन करने के लिए करें..
* आउटपुट
  * `image` ([`image`](/workflows/hi/developer-guide/developer-guide/kinds/image.md)): वर्कफ़्लो में छवि।
  * `focus_measure` ([`float`](/workflows/hi/developer-guide/developer-guide/kinds/float.md)): फ़्लोट मान।

</details>

<details>

<summary>उदाहरण JSON परिभाषा</summary>

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/camera_focus@v1",
	    "image": "$inputs.image"
	}
```

</details>
