AI-For-Beginners/translations/mr/lessons/4-ComputerVision/12-Segmentation/README.md

78 lines
11 KiB
Markdown

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "d7f8a25ff13cfe9f4cd671cc23351fad",
"translation_date": "2025-08-26T09:10:26+00:00",
"source_file": "lessons/4-ComputerVision/12-Segmentation/README.md",
"language_code": "mr"
}
-->
# विभागणी
आम्ही यापूर्वी ऑब्जेक्ट डिटेक्शनबद्दल शिकले, ज्यामुळे आम्हाला प्रतिमेमधील वस्तूंचे स्थान त्यांच्या *bounding boxes* च्या अंदाजाने शोधता येते. परंतु, काही कार्यांसाठी आपल्याला फक्त bounding boxes पुरेसे नसून वस्तूंचे अधिक अचूक स्थान आवश्यक असते. या कार्याला **विभागणी** म्हणतात.
## [Pre-lecture quiz](https://red-field-0a6ddfd03.1.azurestaticapps.net/quiz/112)
विभागणीला **पिक्सेल वर्गीकरण** म्हणून पाहिले जाऊ शकते, जिथे प्रतिमेतील **प्रत्येक** पिक्सेलसाठी त्याचा वर्ग (*background* हा वर्गांपैकी एक आहे) अंदाज करणे आवश्यक असते. विभागणीसाठी दोन मुख्य अल्गोरिदम आहेत:
* **सामान्य विभागणी (Semantic segmentation)** फक्त पिक्सेलचा वर्ग सांगते आणि त्याच वर्गातील वेगवेगळ्या वस्तूंमध्ये फरक करत नाही.
* **इन्स्टन्स विभागणी (Instance segmentation)** वर्गांना वेगवेगळ्या उदाहरणांमध्ये विभागते.
उदाहरणार्थ, इन्स्टन्स विभागणीसाठी या मेंढ्या वेगवेगळ्या वस्तू आहेत, परंतु सामान्य विभागणीसाठी सर्व मेंढ्या एकाच वर्गाने दर्शविल्या जातात.
<img src="images/instance_vs_semantic.jpeg" width="50%">
> प्रतिमा [या ब्लॉग पोस्टमधून](https://nirmalamurali.medium.com/image-classification-vs-semantic-segmentation-vs-instance-segmentation-625c33a08d50)
विभागणीसाठी वेगवेगळ्या न्यूरल आर्किटेक्चर्स आहेत, परंतु त्यांची रचना सारखीच असते. एका प्रकारे, हे तुम्ही यापूर्वी शिकलेल्या ऑटोएन्कोडरप्रमाणे आहे, परंतु मूळ प्रतिमा विघटित करण्याऐवजी, आपले लक्ष्य **मास्क** विघटित करणे आहे. त्यामुळे, विभागणी नेटवर्कमध्ये खालील भाग असतात:
* **एन्कोडर** इनपुट प्रतिमेतून वैशिष्ट्ये काढतो.
* **डिकोडर** त्या वैशिष्ट्यांना **मास्क प्रतिमेमध्ये** रूपांतरित करतो, ज्याचा आकार आणि चॅनेलची संख्या वर्गांच्या संख्येशी जुळते.
<img src="images/segm.png" width="80%">
> प्रतिमा [या प्रकाशनातून](https://arxiv.org/pdf/2001.05566.pdf)
आपण विभागणीसाठी वापरल्या जाणाऱ्या लॉस फंक्शनचा विशेष उल्लेख करायला हवा. पारंपरिक ऑटोएन्कोडर वापरताना, आपल्याला दोन प्रतिमांमधील समानता मोजावी लागते, आणि त्यासाठी आपण mean square error (MSE) वापरू शकतो. विभागणीमध्ये, लक्ष्य मास्क प्रतिमेतील प्रत्येक पिक्सेल वर्ग क्रमांकाचे प्रतिनिधित्व करते (तिसऱ्या परिमाणावर एक-हॉट-एन्कोड केलेले), त्यामुळे वर्गीकरणासाठी विशिष्ट लॉस फंक्शन्स वापरणे आवश्यक आहे - क्रॉस-एन्क्रॉपी लॉस, सर्व पिक्सेल्सवर सरासरी. जर मास्क बायनरी असेल - **बायनरी क्रॉस-एन्क्रॉपी लॉस** (BCE) वापरला जातो.
> ✅ एक-हॉट एन्कोडिंग ही वर्ग लेबलला वर्गांच्या संख्येइतक्या लांबीच्या व्हेक्टरमध्ये एन्कोड करण्याची पद्धत आहे. [या लेखात](https://datagy.io/sklearn-one-hot-encode/) या तंत्राबद्दल अधिक जाणून घ्या.
## वैद्यकीय प्रतिमांसाठी विभागणी
या धड्यात, आपण विभागणी प्रत्यक्षात पाहू, जिथे नेटवर्कला वैद्यकीय प्रतिमांवर मानवी नेवी (म्हणजेच मोल्स) ओळखण्यासाठी प्रशिक्षण दिले जाईल. आपण <a href="https://www.fc.up.pt/addi/ph2%20database.html">PH<sup>2</sup> Database</a> चा वापर प्रतिमांच्या स्रोत म्हणून करू. या डेटासेटमध्ये तीन वर्गांच्या 200 प्रतिमा आहेत: सामान्य नेवस, असामान्य नेवस, आणि मेलानोमा. सर्व प्रतिमांमध्ये नेवसची रूपरेषा दर्शविणारा **मास्क** देखील आहे.
> ✅ ही तंत्र वैद्यकीय प्रतिमांसाठी विशेषतः योग्य आहे, परंतु तुम्ही इतर कोणत्या वास्तविक-जगातील अनुप्रयोगांची कल्पना करू शकता?
<img alt="navi" src="images/navi.png"/>
> प्रतिमा PH<sup>2</sup> Database मधून
आपण मॉडेलला नेवसला त्याच्या पार्श्वभूमीपासून विभागण्यासाठी प्रशिक्षण देऊ.
## ✍️ सराव: सामान्य विभागणी
खालील नोटबुक उघडा, वेगवेगळ्या सामान्य विभागणी आर्किटेक्चर्सबद्दल अधिक जाणून घ्या, त्यांच्यासोबत काम करण्याचा सराव करा, आणि त्यांना प्रत्यक्षात पाहा.
* [Semantic Segmentation Pytorch](../../../../../lessons/4-ComputerVision/12-Segmentation/SemanticSegmentationPytorch.ipynb)
* [Semantic Segmentation TensorFlow](../../../../../lessons/4-ComputerVision/12-Segmentation/SemanticSegmentationTF.ipynb)
## [Post-lecture quiz](https://red-field-0a6ddfd03.1.azurestaticapps.net/quiz/212)
## निष्कर्ष
विभागणी ही प्रतिमा वर्गीकरणासाठी एक अत्यंत शक्तिशाली तंत्र आहे, जी bounding boxes च्या पलीकडे जाऊन पिक्सेल-स्तरीय वर्गीकरण करते. हे वैद्यकीय प्रतिमांसह इतर अनेक अनुप्रयोगांमध्ये वापरले जाते.
## 🚀 आव्हान
शरीर विभागणी ही लोकांच्या प्रतिमांसह आपण करू शकणाऱ्या सामान्य कार्यांपैकी एक आहे. आणखी एक महत्त्वाचे कार्य म्हणजे **स्नायू शोधणे** आणि **पोज शोधणे**. [OpenPose](https://github.com/CMU-Perceptual-Computing-Lab/openpose) लायब्ररी वापरून पोज शोधणे कसे वापरले जाऊ शकते ते पाहा.
## पुनरावलोकन आणि स्व-अभ्यास
[विकिपीडिया लेख](https://wikipedia.org/wiki/Image_segmentation) या तंत्राच्या विविध अनुप्रयोगांचे चांगले विहंगावलोकन देते. या क्षेत्रातील इन्स्टन्स विभागणी आणि पॅनोप्टिक विभागणीच्या उपडोमेनबद्दल स्वतः अधिक जाणून घ्या.
## [असाइनमेंट](lab/README.md)
या प्रयोगशाळेत, [Segmentation Full Body MADS Dataset](https://www.kaggle.com/datasets/tapakah68/segmentation-full-body-mads-dataset) वापरून **मानवी शरीर विभागणी** करण्याचा प्रयत्न करा.
**अस्वीकरण**:
हा दस्तऐवज AI भाषांतर सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) वापरून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी कृपया लक्षात ठेवा की स्वयंचलित भाषांतरे त्रुटी किंवा अचूकतेच्या अभावाने ग्रस्त असू शकतात. मूळ भाषेतील दस्तऐवज हा अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी, व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर करून उद्भवलेल्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थासाठी आम्ही जबाबदार नाही.