Semantic Segmentation و Mask R-CNN | Conv2DTranspose و DeepSORT

DeepSORT، Semantic/Instance Segmentation، Transposed Convolution و تمرین‌ها

توسط admin | گروه هوش مصنوعی | 1405/06/01

نظرات 0

DeepSORT، Semantic/Instance Segmentation، Transposed Convolution و تمرین‌ها

کتاب
Hands-On Machine Learning with Scikit-Learn, Keras & TensorFlow
بخش منبع
DeepSORT Matching; Semantic Segmentation; Transposed Convolution; Other Keras Convolutional Layers; Skip Connections; Instance Segmentation; Mask R-CNN; Exercises
صفحات این PDF
129-134
صفحات چاپی کتاب
531-536
جایگاه در مجموعه
بخش ۶۰ از مجموعهٔ Machine_Learning_405_06؛ مادر: Machine_Learning_405_06_01.html

تکمیل DeepSORT و Hungarian Matching

DeepSORT برای Map کردن Detectionهای جدید به Trackهای موجود از Hungarian Algorithm استفاده می‌کند. Cost Matching ترکیبی از فاصله با Position پیش‌بینی‌شدهٔ Kalman Filter و اختلاف Appearance Embedding است. Hungarian Algorithm مجموعهٔ Assignmentهایی را پیدا می‌کند که Cost کل را کمینه کند.

مثال کتاب دو توپ قرمز و آبی را در نظر می‌گیرد که به هم برخورد می‌کنند و جهتشان عوض می‌شود. Kalman Filter با فرض Motion تقریباً ثابت ممکن است پیش‌بینی کند دو توپ از میان هم عبور می‌کنند. اگر Matching فقط Position را ببیند، Identityها جابه‌جا می‌شوند؛ Appearance Similarity کمک می‌کند Detection قرمز به Track قرمز و آبی به Track آبی متصل شود.

Semantic Segmentation

در Semantic Segmentation به‌جای Bounding Box، هر Pixel بر اساس Class Object خود طبقه‌بندی می‌شود؛ مثل Road، Car، Pedestrian، Building و Bicycle. Objectهای مختلف یک Class از هم جدا نمی‌شوند؛ همهٔ Bicycleها یک Class Map مشترک دارند.

تصویر خیابان و نقشهٔ pixel-wise classهای آسمان، ساختمان، انسان، خودرو و مسیر
شکل 14-27. Semantic Segmentation

چالش اصلی این است که CNN معمولی در مسیر Downsampling، Resolution مکانی را از دست می‌دهد. Layerهای Strided و Pooling ممکن است Feature Map نهایی را مثلاً ۳۲ برابر کوچک‌تر از Input کنند. برای Segmentation باید Output دوباره به Resolution Image برگردد.

Upsampling با Transposed Convolution

روش Fully Convolutional Network ابتدا Classifier Pretrained را به FCN تبدیل می‌کند، سپس Feature Map کم‌Resolution را Upsample می‌کند. Bilinear Interpolation برای Scale کوچک مناسب است، اما Scale بزرگ مانند ×32 جزئیات کافی ندارد. Transposed Convolution Layer قابل‌Trainی است که Spatial Size را افزایش می‌دهد.

افزایش resolution با kernel و stride در convolution transposed
شکل 14-28. Upsampling با Transposed Convolution

می‌توان آن را این‌گونه تصور کرد: ابتدا میان Pixelهای Input Row/Column صفر درج می‌شود، سپس Convolution معمول اجرا می‌شود. در Keras از Conv2DTranspose استفاده می‌شود. برخلاف Conv معمولی، Stride بزرگ‌تر در Transposed Convolution Output بزرگ‌تری می‌سازد.

Convolutionهای دیگر Keras

  • Conv1D برای Signal/Sequenceهای یک‌بعدی مانند Time Series و Text؛
  • Conv3D برای Volumeهای سه‌بعدی مانند Scan پزشکی؛
  • Dilated Convolution با dilation_rate > 1 که میان Weightهای Kernel فاصله می‌اندازد و Receptive Field را بدون Parameter اضافی بزرگ می‌کند.

برای مثال Kernel یک‌بعدی [1,2,3] با Dilation Rate برابر ۴ معادل [1,0,0,0,2,0,0,0,3] از نظر Position Sampleهاست؛ در پیاده‌سازی واقعی Zero Weightها صریح ذخیره نمی‌شوند.

Skip Connection برای بازیابی جزئیات

Upsample مستقیم ×32 هنوز خشن است. FCNهای بهتر از Feature Mapهای Layerهای پایین‌تر که Resolution بیشتری دارند Skip Connection می‌گیرند. مسیر نمونه: Output شبکه ×2 Upsample می‌شود، با Feature Map متناظر Layer پایین جمع می‌شود، دوباره ×2 Upsample و با Layer پایین‌تر دیگری جمع می‌شود، سپس ×8 Upsample می‌گردد.

downsampling و upsampling همراه اتصال میان‌بر از feature map سطح پایین
شکل 14-29. بازیابی Resolution با Skip Layerها

این اتصال‌ها Detail مکانی از دست‌رفته را بازیابی می‌کنند. ایدهٔ مشابه در Architectureهای Segmentation مدرن بسیار رایج است. Upsampling حتی می‌تواند فراتر از Resolution Input برود و برای Super-Resolution استفاده شود.

Instance Segmentation

در Instance Segmentation Objectهای مختلف یک Class از هم جدا می‌شوند؛ یعنی هر Bicycle Mask مستقل دارد. Mask R-CNN Faster R-CNN را با یک Head اضافی گسترش می‌دهد که برای هر Bounding Box یک Pixel Mask تولید می‌کند. بنابراین خروجی شامل Bounding Box، Class Probability و Mask دقیق Object است. Modelهای Pretrained این Family برای Datasetهایی مانند COCO در Hubها و Frameworkهای مختلف موجودند.

Deep Computer Vision به‌سرعت در حال تغییر است. CNNها هنوز بخش بزرگی از Foundation را تشکیل می‌دهند، ولی Transformerها نیز وارد Vision شده‌اند. موضوع‌های پیشرفته شامل Adversarial Robustness، Explainability، Image Generation، Few/One-Shot Learning، Video Prediction و Modelهای Multimodal Text+Image هستند.

تمرین‌های فصل ۱۴

  1. مزیت‌های CNN نسبت به Fully Connected DNN برای Image Classification را توضیح دهید.
  2. برای CNN سه‌لایه با Kernelهای 3×3، Stride=2 و Same Padding، با 100/200/400 Feature Map و Input RGB با اندازهٔ 200×300، تعداد Parameter و حداقل RAM موردنیاز برای Inference و Training روی Batch پنجاه‌تایی را محاسبه کنید.
  3. اگر GPU هنگام Training CNN با Out-of-Memory مواجه شد، حداقل پنج راه برای کاهش Memory پیشنهاد کنید.
  4. چرا ممکن است Max Pooling را به Conv با Stride مشابه ترجیح دهید؟
  5. Local Response Normalization چه کاربردی داشت و چرا امروز کمتر استفاده می‌شود؟
  6. نوآوری‌های اصلی AlexNet نسبت به LeNet-5 و سپس GoogLeNet، ResNet، SENet، Xception و EfficientNet را مقایسه کنید.
  7. Fully Convolutional Network چیست و Dense Layer چگونه به Conv Layer معادل تبدیل می‌شود؟
  8. مشکل فنی اصلی Semantic Segmentation چیست؟
  9. یک CNN از ابتدا برای MNIST بسازید و Accuracy را تا حد ممکن افزایش دهید.
  10. برای Image Classification بزرگ از Transfer Learning استفاده کنید: حداقل ۱۰۰ Image برای هر Class جمع‌آوری کنید، Train/Validation/Test Split بسازید، Input Pipeline و Data Augmentation را طراحی و یک Model Pretrained را Fine-Tune کنید.
  11. Tutorial رسمی TensorFlow Style Transfer را اجرا کنید و با ترکیب Content و Style Imageها خروجی هنری بسازید.

راه‌حل تمرین‌ها در Notebook فصل در https://homl.info/colab3 ارائه شده است.

امتیاز کاربران به این مقاله

☆☆☆☆☆

0 نفر امتیاز داده اند. میانگین: 0.0 از 5

 

0 نظر

نظر محترم شما در مورد مقاله های وب سایت برنامه نویسی و پایگاه داده

نظرات محترم شما در خدمات رسانی بهتر ما را یاری می نمایند. لطفا اگر مایل بودید یک نظر ما را مهمان فرمائید. آدرس ایمیل و وب سایت شما نمایش داده نخواهد شد.

0 / 500

اطلاعات تماس

  • آدرس:اصفهان-خیابان ام کلثوم غربی - بعد خیابان تخم چی - بیست متر بعد از پیتزا ننه شب - کوچه تعمیر گاه سمار زغالی - پلاک 354 - درب مشکی - طبقه هفتم
  • آدرس ایمیل:najafzade@gmail.com
  • وب سایت:http://www.a00b.com/
  • تلفن ثابت:(+98)9131253620
  • تلفن همراه:09131253620