70 lines
7.5 KiB
Markdown
70 lines
7.5 KiB
Markdown
# Сегментација
|
||
|
||
Раније смо учили о детекцији објеката, која нам омогућава да лоцирамо објекте на слици предвиђањем њихових *ограничених оквира*. Међутим, за неке задатке нам нису потребни само ограничени оквири, већ и прецизнија локализација објеката. Овај задатак се назива **сегментација**.
|
||
|
||
## [Квиз пре предавања](https://ff-quizzes.netlify.app/en/ai/quiz/23)
|
||
|
||
Сегментација се може посматрати као **класификација пиксела**, где за **сваки** пиксел слике морамо предвидети његову класу (*позадина* је једна од класа). Постоје два главна алгоритма за сегментацију:
|
||
|
||
* **Семантичка сегментација** само одређује класу пиксела, без разликовања различитих објеката исте класе.
|
||
* **Инстант сегментација** дели класе на различите инстанце.
|
||
|
||
На пример, за инстант сегментацију, ове овце су различити објекти, али за семантичку сегментацију све овце су представљене као једна класа.
|
||
|
||
<img src="../../../../../translated_images/sr/instance_vs_semantic.eee9812bebf8cd45.webp" width="50%">
|
||
|
||
> Слика из [овог блога](https://nirmalamurali.medium.com/image-classification-vs-semantic-segmentation-vs-instance-segmentation-625c33a08d50)
|
||
|
||
Постоје различите неуронске архитектуре за сегментацију, али све имају исту структуру. На неки начин, сличне су аутоенкодеру о којем сте раније учили, али уместо реконструкције оригиналне слике, наш циљ је реконструкција **маске**. Дакле, мрежа за сегментацију има следеће делове:
|
||
|
||
* **Енкодер** извлачи карактеристике из улазне слике.
|
||
* **Декодер** трансформише те карактеристике у **слику маске**, са истом величином и бројем канала који одговарају броју класа.
|
||
|
||
<img src="../../../../../translated_images/sr/segm.92442f2cb42ff4fa.webp" width="80%">
|
||
|
||
> Слика из [ове публикације](https://arxiv.org/pdf/2001.05566.pdf)
|
||
|
||
Посебно треба поменути функцију губитка која се користи за сегментацију. Код класичних аутоенкодера, потребно је измерити сличност између две слике, и за то можемо користити средњу квадратну грешку (MSE). Код сегментације, сваки пиксел у циљној слици маске представља број класе (једнохот-кодиран дуж треће димензије), па је потребно користити функције губитка специфичне за класификацију - губитак унакрсне ентропије, просечен преко свих пиксела. Ако је маска бинарна - користи се **губитак бинарне унакрсне ентропије** (BCE).
|
||
|
||
> ✅ Једнохот-кодирање је начин кодирања ознаке класе у вектор чија је дужина једнака броју класа. Погледајте [овај чланак](https://datagy.io/sklearn-one-hot-encode/) о овој техници.
|
||
|
||
## Сегментација у медицинској дијагностици
|
||
|
||
У овом предавању ћемо видети сегментацију у пракси тако што ћемо обучити мрежу да препозна људске невусе (познате и као младеже) на медицинским сликама. Користићемо <a href="https://www.fc.up.pt/addi/ph2%20database.html">PH<sup>2</sup> базу података</a> дермоскопских слика као извор слика. Овај скуп података садржи 200 слика три класе: типични невус, атипични невус и меланом. Све слике такође садрже одговарајућу **маску** која обележава невус.
|
||
|
||
> ✅ Ова техника је посебно погодна за ову врсту медицинских слика, али које друге примене у стварном свету можете замислити?
|
||
|
||
<img alt="navi" src="../../../../../translated_images/sr/navi.2f20b727910110ea.webp"/>
|
||
|
||
> Слика из PH<sup>2</sup> базе података
|
||
|
||
Обучаваћемо модел да сегментира било који невус од његове позадине.
|
||
|
||
## ✍️ Вежбе: Семантичка сегментација
|
||
|
||
Отворите следеће свеске да бисте сазнали више о различитим архитектурама семантичке сегментације, вежбали рад са њима и видели их у акцији.
|
||
|
||
* [Семантичка сегментација у Pytorch](SemanticSegmentationPytorch.ipynb)
|
||
* [Семантичка сегментација у TensorFlow](SemanticSegmentationTF.ipynb)
|
||
|
||
## [Квиз после предавања](https://ff-quizzes.netlify.app/en/ai/quiz/24)
|
||
|
||
## Закључак
|
||
|
||
Сегментација је веома моћна техника за класификацију слика, која иде даље од ограничених оквира до класификације на нивоу пиксела. То је техника која се користи у медицинској дијагностици, између осталих примена.
|
||
|
||
## 🚀 Изазов
|
||
|
||
Сегментација тела је само један од уобичајених задатака који можемо радити са сликама људи. Други важни задаци укључују **детекцију скелета** и **детекцију позе**. Испробајте [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) са Kaggle-а.
|
||
|
||
---
|
||
|