چشم انداز رایانه ای

چشم انداز رایانه ای

بهترین پروژه برای شروع در چشم انداز رایانه ای با پایتون

GrabCut - پیاده سازی دفترچه یادداشت Google Colab برای تطبیق تصویر (حذف پس زمینه)

مقاله را همراه با اجرای کامل کد در GitHub دنبال کنید. دفترچه یادداشت را در Google Colab باز کنید ، تصویر (ها) خود را وارد کنید و سلول ها را اجرا کنید! که ابتدا در louisbouchard.ai منتشر شده بود ، 2 روز قبل آن را در وبلاگ من بخوانید! عکس توسط کوین کو در Unsplash

تطبیق تصویر یک کار بسیار جالب است که در آن هدف پیدا کردن است هر شی مورد علاقه ، یا انسان ، در یک تصویر و حذف پس زمینه آن. دستیابی به این وظیفه به دلیل پیچیدگی آن ، یافتن شخص ، افراد یا اشیاء با خط کامل بسیار دشوار است. این پست یک تکنیک هیجان انگیز را با استفاده از الگوریتم های بینایی رایانه ای اساسی برای دستیابی به این کار مرور می کند. الگوریتم GrabCut سریع است اما برای اجسام پیچیده مانند انسان یا حیوانات چندان دقیق نیست. با این وجود ، می تواند در زمینه های خاص مفید باشد و اولین پروژه کاربردی کامل برای شروع در بینایی رایانه و پایتون است! همانطور که در بالا ذکر شد ، پیاده سازی از Google Colab استفاده می کند ، بنابراین هیچ الزامات یا راه اندازی لازم نیست ، و این یک پروژه هیجان انگیز برای تکرار برای یادگیری است.

یک مثال ماتینگ GrabCut. تصویر نویسنده.

پروژه - GrabCut [1]

این پیاده سازی الگوریتم GrabCut اساساً توزیع رنگ مورد پیش زمینه و پس زمینه را با استفاده از مدل مخلوط گاوسی تخمین می زند. ما یک مستطیل روی شی مورد نظر (پیش زمینه) ترسیم می کنیم و به طور مکرر سعی می کنیم با ترسیم قسمت ها نتایج را بهبود ببخشیم. این الگوریتم نتوانست پیکسل ها را به پیش زمینه اضافه کند یا مجموعه ای از پیکسل ها را از پیش زمینه حذف کند. به همین دلیل است که ما اغلب از "صفحه سبز" استفاده می کنیم و به الگوریتم ها کمک می کنیم تا فقط پیکسل های سبز را حذف کرده و بقیه را به نتایج نهایی واگذار کنیم. اما وقتی به چنین صفحه سبز دسترسی نداریم ، نتایج آنقدرها عالی نیستند.

این الگوریتم از مستطیل ساخته شده توسط کاربر برای شناسایی مورد پیش زمینه استفاده می کند. سپس ، کاربر می تواند ویرایش کند تا اشیاء را به پیش زمینه اضافه یا حذف کند. پس از اتمام کار ، پس زمینه را حذف می کند ، آن را شفاف می کند (کانال آلفا را اضافه می کند) و آن را ذخیره می کند.

این یک نوت بوک ساده است که الگوریتم GrabCut را نشان می دهد که در ویدئویی که در مورد ModNet تهیه کردم نشان داده می شود ، یک تکنیک جدید برای مات شدن تصویر.

چگونه کار می کند؟

هنگامی که دفترچه یادداشت را باز می کنید ، 7 سلول پایتون با کد و نظرات در آنها مشاهده خواهید کرد. این دفترچه کاملاً ساده است:

تصویر خود را بارگذاری کنید. [سلول سوم] یک مستطیل روی تصویر خود ایجاد کنید ، شامل همه اشیاء پیش زمینه خود. [سلول چهارم] پس زمینه را با استفاده از الگوریتم GrabCut حذف کنید. [سلول پنجم] در صورت نیاز به بهبود ، روی تصویر بکشید ، چپ کلیک کنید (سفید) = پیش زمینه و راست کلیک (سیاه) = پس زمینه. [سلول ششم] پس زمینه را با استفاده از الگوریتم GrabCut حذف کنید. [سلول ششم] بازگشت به مرحله 4 یا پایان. [سلول ششم] نتایج خود را ذخیره کنید. [سلول هفتم]

توجه: [سلول ها] به پیاده سازی نوت بوک اشاره دارند.

نحوه عملکرد آن در نمایشیهای ویدیویی با کد

نمونه ای با یک تکرار که تنها به اولین گذر الگوریتم نیاز دارد

این یک مثال است که الگوریتم در اولین آزمایش کار می کند و ما فقط به مراحل 1 تا 3 نیاز داریم. ما اساساً بارگذاری می کنیمتصویر ، یک مستطیل در اطراف شی مورد نظر (سگ ما) بکشید ، و تمام! می توانید تصویر را با کانال آلفا در png ذخیره کنید.

نمونه ای با تصویر چالش برانگیزتر و تکرارهای متعدد مورد نیاز

این نمونه ای است که الگوریتم در اولین آزمایش کار می کند ، و ما فقط به مراحل 1 تا 6 نیاز داریم. ما اساساً تصویر را بارگذاری می کنیم ، یک مستطیل در اطراف شی مورد نظر (سگ دوم) می کشیم و حلقه تنظیم دقیق را وارد می کنیم. در اینجا ، خطوط تصادفی را با استفاده از کلیک چپ ترسیم می کنیم تا نتایج بیشتر بهبود یابد. پس از اتمام کار ، می توانید با استفاده از بقیه کد ، تصویر را با کانال آلفا در png ذخیره کنید.

خودتان آن را پیاده سازی کنید!

اجرای کامل کد در GitHub در دسترس است! به راحتی می توانید آن را در دستگاه Google Colab باز کرده و بلافاصله بدون هیچ پیش نیاز یا راه اندازی مورد نیاز اجرا کنید. فقط تصاویر خود را در Google Colab وارد کنید و کد را اجرا کنید!

louisfb01/iterative-grabcut این الگوریتم از مستطیل ساخته شده توسط کاربر برای شناسایی مورد پیش زمینه استفاده می کند. سپس ، کاربر می تواند برای افزودن یا… github.com

نتایج مشخص

src = "https://cdn-images-1.medium.com/max/426/1*WOHtQZpchV3WrM9yuj7xVQ.png"> نمونه های ماتینگ GrabCut.

نتیجه گیری

اگر در حال حاضر به طور کلی پایتون یا بینایی رایانه را یاد می گیرید ، با خیال راحت این کد را پیاده کنید و سعی کنید آن را بهبود بخشید! این بسیار سرگرم کننده است و راهی عالی برای یادگیری عملکردهای مهم و مکرر هنگام کار در بینایی رایانه است! لطفاً با هرگونه به روزرسانی کد با من تماس بگیرید یا آنها را در مخزن GitHub برای به روزرسانی ارسال کنید!

اگر از کار من خوشتان می آید و می خواهید با هوش مصنوعی به روز باشید ، قطعاً باید از من در سایر موارد من پیروی کنید حساب های رسانه های اجتماعی (LinkedIn ، Twitter) و مشترک خبرنامه هوش مصنوعی هفتگی من شوید!

برای حمایت از من:

بهترین راه حمایت از من این است که من را اینجا در Medium دنبال کنید یا مشترک شوید اگر از قالب ویدئویی خوشتان آمد کانال من در YouTube. از کارهای من در Patreon حمایت کنید به انجمن Discord ما بپیوندید: با هم AI را بیاموزید و پروژه ها ، مقالات ، بهترین دوره های خود را به اشتراک بگذارید ، Kaggle را بیابید هم تیمی ها ، و خیلی بیشتر!

مراجع

[1] استخراج پیش زمینه تعاملی با استفاده از الگوریتم GrabCut ، OpenCV ، (2013) ، https://opencv-python-tutroals.readthedocs.io /en/latest/py_tutorials/py_imgproc/py_grabcut/py_grabcut.html

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد