|
|
||
|---|---|---|
| .. | ||
| lab | ||
| README.md | ||
| SemanticSegmentationPytorch.ipynb | ||
| SemanticSegmentationTF.ipynb | ||
README.md
ਸੈਗਮੈਂਟੇਸ਼ਨ
ਅਸੀਂ ਪਹਿਲਾਂ Object Detection ਬਾਰੇ ਸਿੱਖਿਆ ਹੈ, ਜੋ ਸਾਨੂੰ ਚਿੱਤਰ ਵਿੱਚ ਵਸਤੂਆਂ ਨੂੰ ਲੱਭਣ ਲਈ ਉਨ੍ਹਾਂ ਦੇ bounding boxes ਦੀ ਭਵਿੱਖਵਾਣੀ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਹਾਲਾਂਕਿ, ਕੁਝ ਕੰਮਾਂ ਲਈ ਸਾਨੂੰ ਸਿਰਫ਼ bounding boxes ਦੀ ਲੋੜ ਨਹੀਂ ਹੁੰਦੀ, ਸਗੋਂ ਵਸਤੂਆਂ ਦੀ ਹੋਰ ਸਹੀ ਸਥਿਤੀ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇਸ ਕੰਮ ਨੂੰ ਸੈਗਮੈਂਟੇਸ਼ਨ ਕਿਹਾ ਜਾਂਦਾ ਹੈ।
Pre-lecture quiz
ਸੈਗਮੈਂਟੇਸ਼ਨ ਨੂੰ ਪਿਕਸਲ ਕਲਾਸੀਫਿਕੇਸ਼ਨ ਵਜੋਂ ਦੇਖਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਜਿੱਥੇ ਹਰ ਪਿਕਸਲ ਲਈ ਸਾਨੂੰ ਇਸ ਦੀ ਕਲਾਸ ਦੀ ਭਵਿੱਖਵਾਣੀ ਕਰਨੀ ਪੈਂਦੀ ਹੈ (ਪਿਛੋਕੜ ਵੀ ਇੱਕ ਕਲਾਸ ਹੈ)। ਸੈਗਮੈਂਟੇਸ਼ਨ ਦੇ ਦੋ ਮੁੱਖ ਐਲਗੋਰਿਥਮ ਹਨ:
- ਸੈਮੈਂਟਿਕ ਸੈਗਮੈਂਟੇਸ਼ਨ ਸਿਰਫ ਪਿਕਸਲ ਦੀ ਕਲਾਸ ਦੱਸਦੀ ਹੈ, ਅਤੇ ਇੱਕੋ ਕਲਾਸ ਦੀਆਂ ਵੱਖ-ਵੱਖ ਵਸਤੂਆਂ ਵਿੱਚ ਫਰਕ ਨਹੀਂ ਕਰਦੀ।
- ਇੰਸਟੈਂਸ ਸੈਗਮੈਂਟੇਸ਼ਨ ਕਲਾਸਾਂ ਨੂੰ ਵੱਖ-ਵੱਖ instances ਵਿੱਚ ਵੰਡਦੀ ਹੈ।
ਉਦਾਹਰਣ ਲਈ, ਇੰਸਟੈਂਸ ਸੈਗਮੈਂਟੇਸ਼ਨ ਵਿੱਚ ਇਹ ਭੇਡਾਂ ਵੱਖ-ਵੱਖ ਵਸਤੂਆਂ ਹਨ, ਪਰ ਸੈਮੈਂਟਿਕ ਸੈਗਮੈਂਟੇਸ਼ਨ ਵਿੱਚ ਸਾਰੀਆਂ ਭੇਡਾਂ ਨੂੰ ਇੱਕ ਕਲਾਸ ਵਜੋਂ ਦਰਸਾਇਆ ਜਾਂਦਾ ਹੈ।
ਚਿੱਤਰ ਇਸ ਬਲੌਗ ਪੋਸਟ ਤੋਂ ਲਿਆ ਗਿਆ ਹੈ।
ਸੈਗਮੈਂਟੇਸ਼ਨ ਲਈ ਵੱਖ-ਵੱਖ ਨਿਊਰਲ ਆਰਕੀਟੈਕਚਰ ਹਨ, ਪਰ ਇਹ ਸਾਰੇ ਇੱਕੋ ਢਾਂਚੇ ਵਾਲੇ ਹਨ। ਇੱਕ ਤਰੀਕੇ ਨਾਲ, ਇਹ ਉਸ autoencoder ਵਰਗਾ ਹੈ ਜਿਸ ਬਾਰੇ ਤੁਸੀਂ ਪਹਿਲਾਂ ਸਿੱਖਿਆ ਸੀ, ਪਰ ਅਸਲ ਚਿੱਤਰ ਨੂੰ ਡਿਕੋਡ ਕਰਨ ਦੀ ਬਜਾਏ, ਸਾਡਾ ਮਕਸਦ ਇੱਕ ਮਾਸਕ ਨੂੰ ਡਿਕੋਡ ਕਰਨਾ ਹੈ। ਇਸ ਤਰ੍ਹਾਂ, ਸੈਗਮੈਂਟੇਸ਼ਨ ਨੈਟਵਰਕ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤੇ ਹਿੱਸੇ ਹੁੰਦੇ ਹਨ:
- Encoder ਇਨਪੁਟ ਚਿੱਤਰ ਤੋਂ ਫੀਚਰ ਕੱਢਦਾ ਹੈ।
- Decoder ਉਹਨਾਂ ਫੀਚਰਾਂ ਨੂੰ ਮਾਸਕ ਚਿੱਤਰ ਵਿੱਚ ਬਦਲਦਾ ਹੈ, ਜਿਸਦਾ ਆਕਾਰ ਅਤੇ ਚੈਨਲਾਂ ਦੀ ਗਿਣਤੀ ਕਲਾਸਾਂ ਦੀ ਗਿਣਤੀ ਦੇ ਅਨੁਸਾਰ ਹੁੰਦੀ ਹੈ।
ਚਿੱਤਰ ਇਸ ਪ੍ਰਕਾਸ਼ਨ ਤੋਂ ਲਿਆ ਗਿਆ ਹੈ।
ਸਾਨੂੰ ਖਾਸ ਤੌਰ 'ਤੇ ਸੈਗਮੈਂਟੇਸ਼ਨ ਲਈ ਵਰਤੀ ਜਾਣ ਵਾਲੀ ਲਾਸ ਫੰਕਸ਼ਨ ਦਾ ਜ਼ਿਕਰ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਜਦੋਂ ਕਲਾਸਿਕਲ autoencoders ਵਰਤਦੇ ਹਾਂ, ਸਾਨੂੰ ਦੋ ਚਿੱਤਰਾਂ ਦੇ ਵਿਚਕਾਰ ਸਮਾਨਤਾ ਨੂੰ ਮਾਪਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਅਤੇ ਅਸੀਂ mean square error (MSE) ਵਰਤ ਸਕਦੇ ਹਾਂ। ਸੈਗਮੈਂਟੇਸ਼ਨ ਵਿੱਚ, ਟਾਰਗੇਟ ਮਾਸਕ ਚਿੱਤਰ ਵਿੱਚ ਹਰ ਪਿਕਸਲ ਕਲਾਸ ਨੰਬਰ (ਤੀਜੀ ਡਾਇਮੈਂਸ਼ਨ ਦੇ ਨਾਲ one-hot-encoded) ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ, ਇਸ ਲਈ ਸਾਨੂੰ ਕਲਾਸੀਫਿਕੇਸ਼ਨ ਲਈ ਖਾਸ ਲਾਸ ਫੰਕਸ਼ਨ ਵਰਤਣੀ ਪੈਂਦੀ ਹੈ - cross-entropy loss, ਜੋ ਸਾਰੇ ਪਿਕਸਲਾਂ 'ਤੇ ਐਵਰੇਜ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਜੇ ਮਾਸਕ ਬਾਈਨਰੀ ਹੈ - binary cross-entropy loss (BCE) ਵਰਤੀ ਜਾਂਦੀ ਹੈ।
✅ One-hot encoding ਇੱਕ ਤਰੀਕਾ ਹੈ ਜਿਸ ਨਾਲ ਕਲਾਸ ਲੇਬਲ ਨੂੰ ਕਲਾਸਾਂ ਦੀ ਗਿਣਤੀ ਦੇ ਬਰਾਬਰ ਲੰਬਾਈ ਵਾਲੇ ਵੇਕਟਰ ਵਿੱਚ encode ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇਸ ਲੇਖ ਵਿੱਚ ਇਸ ਤਕਨੀਕ ਬਾਰੇ ਵੇਖੋ।
ਮੈਡੀਕਲ ਇਮੇਜਿੰਗ ਲਈ ਸੈਗਮੈਂਟੇਸ਼ਨ
ਇਸ ਪਾਠ ਵਿੱਚ, ਅਸੀਂ ਮੈਡੀਕਲ ਚਿੱਤਰਾਂ ਵਿੱਚ ਮਨੁੱਖੀ nevi (ਜਿਨ੍ਹਾਂ ਨੂੰ ਮੋਲੇ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ) ਨੂੰ ਪਛਾਣਨ ਲਈ ਨੈਟਵਰਕ ਨੂੰ ਟ੍ਰੇਨ ਕਰਕੇ ਸੈਗਮੈਂਟੇਸ਼ਨ ਨੂੰ ਕਾਰਵਾਈ ਵਿੱਚ ਦੇਖਾਂਗੇ। ਅਸੀਂ ਚਿੱਤਰ ਸਰੋਤ ਵਜੋਂ PH2 ਡੇਟਾਬੇਸ ਦੀ ਵਰਤੋਂ ਕਰਾਂਗੇ। ਇਸ ਡੇਟਾਸੈਟ ਵਿੱਚ ਤਿੰਨ ਕਲਾਸਾਂ ਦੇ 200 ਚਿੱਤਰ ਹਨ: typical nevus, atypical nevus, ਅਤੇ melanoma। ਸਾਰੇ ਚਿੱਤਰਾਂ ਵਿੱਚ ਇੱਕ ਮਾਸਕ ਵੀ ਸ਼ਾਮਲ ਹੈ ਜੋ nevus ਨੂੰ outline ਕਰਦਾ ਹੈ।
✅ ਇਹ ਤਕਨੀਕ ਖਾਸ ਤੌਰ 'ਤੇ ਇਸ ਕਿਸਮ ਦੀ ਮੈਡੀਕਲ ਇਮੇਜਿੰਗ ਲਈ ਉਚਿਤ ਹੈ, ਪਰ ਤੁਸੀਂ ਹੋਰ ਕਿਹੜੀਆਂ ਹਕੀਕਤੀ ਦੁਨੀਆ ਦੀਆਂ ਐਪਲੀਕੇਸ਼ਨਸ ਦੀ ਕਲਪਨਾ ਕਰ ਸਕਦੇ ਹੋ?
ਚਿੱਤਰ PH2 ਡੇਟਾਬੇਸ ਤੋਂ ਲਿਆ ਗਿਆ ਹੈ।
ਅਸੀਂ ਮਾਡਲ ਨੂੰ ਕਿਸੇ ਵੀ nevus ਨੂੰ ਇਸਦੇ ਪਿਛੋਕੜ ਤੋਂ ਸੈਗਮੈਂਟ ਕਰਨ ਲਈ ਟ੍ਰੇਨ ਕਰਾਂਗੇ।
✍️ ਅਭਿਆਸ: ਸੈਮੈਂਟਿਕ ਸੈਗਮੈਂਟੇਸ਼ਨ
ਹੇਠਾਂ ਦਿੱਤੇ ਨੋਟਬੁੱਕ ਖੋਲ੍ਹੋ ਤਾਂ ਜੋ ਵੱਖ-ਵੱਖ ਸੈਮੈਂਟਿਕ ਸੈਗਮੈਂਟੇਸ਼ਨ ਆਰਕੀਟੈਕਚਰਾਂ ਬਾਰੇ ਹੋਰ ਜਾਣ ਸਕੋ, ਉਨ੍ਹਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਦੀ ਪ੍ਰੈਕਟਿਸ ਕਰੋ, ਅਤੇ ਉਨ੍ਹਾਂ ਨੂੰ ਕਾਰਵਾਈ ਵਿੱਚ ਦੇਖੋ।
Post-lecture quiz
ਨਿਸ਼ਕਰਸ਼
ਸੈਗਮੈਂਟੇਸ਼ਨ ਚਿੱਤਰ ਕਲਾਸੀਫਿਕੇਸ਼ਨ ਲਈ ਇੱਕ ਬਹੁਤ ਹੀ ਸ਼ਕਤੀਸ਼ਾਲੀ ਤਕਨੀਕ ਹੈ, ਜੋ bounding boxes ਤੋਂ ਅੱਗੇ ਵੱਧ ਕੇ ਪਿਕਸਲ-ਪੱਧਰ ਦੀ ਕਲਾਸੀਫਿਕੇਸ਼ਨ ਤੱਕ ਪਹੁੰਚਦੀ ਹੈ। ਇਹ ਮੈਡੀਕਲ ਇਮੇਜਿੰਗ ਸਮੇਤ ਹੋਰ ਐਪਲੀਕੇਸ਼ਨਸ ਵਿੱਚ ਵਰਤੀ ਜਾਂਦੀ ਹੈ।
🚀 ਚੁਣੌਤੀ
ਬੌਡੀ ਸੈਗਮੈਂਟੇਸ਼ਨ ਚਿੱਤਰਾਂ ਨਾਲ ਕੀਤੇ ਜਾਣ ਵਾਲੇ ਆਮ ਕੰਮਾਂ ਵਿੱਚੋਂ ਇੱਕ ਹੈ। ਹੋਰ ਮਹੱਤਵਪੂਰਨ ਕੰਮਾਂ ਵਿੱਚ ਸਕੈਲੇਟਨ ਡਿਟੈਕਸ਼ਨ ਅਤੇ ਪੋਜ਼ ਡਿਟੈਕਸ਼ਨ ਸ਼ਾਮਲ ਹਨ। OpenPose ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਅਜ਼ਮਾਓ ਅਤੇ ਵੇਖੋ ਕਿ ਪੋਜ਼ ਡਿਟੈਕਸ਼ਨ ਕਿਵੇਂ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ।
ਸਮੀਖਿਆ ਅਤੇ ਸਵੈ ਅਧਿਐਨ
ਇਹ ਵਿਕੀਪੀਡੀਆ ਲੇਖ ਇਸ ਤਕਨੀਕ ਦੇ ਵੱਖ-ਵੱਖ ਐਪਲੀਕੇਸ਼ਨਸ ਦਾ ਚੰਗਾ ਜਾਇਜ਼ਾ ਦਿੰਦਾ ਹੈ। ਇਸ ਖੇਤਰ ਵਿੱਚ Instance segmentation ਅਤੇ Panoptic segmentation ਦੇ ਉਪ-ਡੋਮੇਨ ਬਾਰੇ ਖੁਦ ਹੋਰ ਸਿੱਖੋ।
ਅਸਾਈਨਮੈਂਟ
ਇਸ ਲੈਬ ਵਿੱਚ, ਮਨੁੱਖੀ ਬੌਡੀ ਸੈਗਮੈਂਟੇਸ਼ਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ Segmentation Full Body MADS Dataset ਨੂੰ Kaggle ਤੋਂ ਵਰਤ ਕੇ।
ਅਸਵੀਕਰਤਾ:
ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ Co-op Translator ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀ ਹੋਣ ਦਾ ਯਤਨ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁੱਤੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਇਸ ਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਮੌਜੂਦ ਮੂਲ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਪ੍ਰਮਾਣਿਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੇ ਪ੍ਰਯੋਗ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਮੀਆਂ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆਵਾਂ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।