تطبیق تصویر یک کار بسیار جالب است که در آن هدف پیدا کردن است هر شی مورد علاقه ، یا انسان ، در یک تصویر و حذف پس زمینه آن. دستیابی به این وظیفه به دلیل پیچیدگی آن ، یافتن شخص ، افراد یا اشیاء با خط کامل بسیار دشوار است. این پست یک تکنیک هیجان انگیز را با استفاده از الگوریتم های بینایی رایانه ای اساسی برای دستیابی به این کار مرور می کند. الگوریتم GrabCut سریع است اما برای اجسام پیچیده مانند انسان یا حیوانات چندان دقیق نیست. با این وجود ، می تواند در زمینه های خاص مفید باشد و اولین پروژه کاربردی کامل برای شروع در بینایی رایانه و پایتون است! همانطور که در بالا ذکر شد ، پیاده سازی از Google Colab استفاده می کند ، بنابراین هیچ الزامات یا راه اندازی لازم نیست ، و این یک پروژه هیجان انگیز برای تکرار برای یادگیری است.
یک مثال ماتینگ GrabCut. تصویر نویسنده.این پیاده سازی الگوریتم GrabCut اساساً توزیع رنگ مورد پیش زمینه و پس زمینه را با استفاده از مدل مخلوط گاوسی تخمین می زند. ما یک مستطیل روی شی مورد نظر (پیش زمینه) ترسیم می کنیم و به طور مکرر سعی می کنیم با ترسیم قسمت ها نتایج را بهبود ببخشیم. این الگوریتم نتوانست پیکسل ها را به پیش زمینه اضافه کند یا مجموعه ای از پیکسل ها را از پیش زمینه حذف کند. به همین دلیل است که ما اغلب از "صفحه سبز" استفاده می کنیم و به الگوریتم ها کمک می کنیم تا فقط پیکسل های سبز را حذف کرده و بقیه را به نتایج نهایی واگذار کنیم. اما وقتی به چنین صفحه سبز دسترسی نداریم ، نتایج آنقدرها عالی نیستند.
این الگوریتم از مستطیل ساخته شده توسط کاربر برای شناسایی مورد پیش زمینه استفاده می کند. سپس ، کاربر می تواند ویرایش کند تا اشیاء را به پیش زمینه اضافه یا حذف کند. پس از اتمام کار ، پس زمینه را حذف می کند ، آن را شفاف می کند (کانال آلفا را اضافه می کند) و آن را ذخیره می کند.
این یک نوت بوک ساده است که الگوریتم GrabCut را نشان می دهد که در ویدئویی که در مورد ModNet تهیه کردم نشان داده می شود ، یک تکنیک جدید برای مات شدن تصویر.
هنگامی که دفترچه یادداشت را باز می کنید ، 7 سلول پایتون با کد و نظرات در آنها مشاهده خواهید کرد. این دفترچه کاملاً ساده است:
توجه: [سلول ها] به پیاده سازی نوت بوک اشاره دارند.
این یک مثال است که الگوریتم در اولین آزمایش کار می کند و ما فقط به مراحل 1 تا 3 نیاز داریم. ما اساساً بارگذاری می کنیمتصویر ، یک مستطیل در اطراف شی مورد نظر (سگ ما) بکشید ، و تمام! می توانید تصویر را با کانال آلفا در png ذخیره کنید.
این نمونه ای است که الگوریتم در اولین آزمایش کار می کند ، و ما فقط به مراحل 1 تا 6 نیاز داریم. ما اساساً تصویر را بارگذاری می کنیم ، یک مستطیل در اطراف شی مورد نظر (سگ دوم) می کشیم و حلقه تنظیم دقیق را وارد می کنیم. در اینجا ، خطوط تصادفی را با استفاده از کلیک چپ ترسیم می کنیم تا نتایج بیشتر بهبود یابد. پس از اتمام کار ، می توانید با استفاده از بقیه کد ، تصویر را با کانال آلفا در png ذخیره کنید.
اجرای کامل کد در GitHub در دسترس است! به راحتی می توانید آن را در دستگاه Google Colab باز کرده و بلافاصله بدون هیچ پیش نیاز یا راه اندازی مورد نیاز اجرا کنید. فقط تصاویر خود را در Google Colab وارد کنید و کد را اجرا کنید!
اگر در حال حاضر به طور کلی پایتون یا بینایی رایانه را یاد می گیرید ، با خیال راحت این کد را پیاده کنید و سعی کنید آن را بهبود بخشید! این بسیار سرگرم کننده است و راهی عالی برای یادگیری عملکردهای مهم و مکرر هنگام کار در بینایی رایانه است! لطفاً با هرگونه به روزرسانی کد با من تماس بگیرید یا آنها را در مخزن GitHub برای به روزرسانی ارسال کنید!
اگر از کار من خوشتان می آید و می خواهید با هوش مصنوعی به روز باشید ، قطعاً باید از من در سایر موارد من پیروی کنید حساب های رسانه های اجتماعی (LinkedIn ، Twitter) و مشترک خبرنامه هوش مصنوعی هفتگی من شوید!
[1] استخراج پیش زمینه تعاملی با استفاده از الگوریتم GrabCut ، OpenCV ، (2013) ، https://opencv-python-tutroals.readthedocs.io /en/latest/py_tutorials/py_imgproc/py_grabcut/py_grabcut.html