خانه تکنولوژی

معرفی تکنولوژی روز دنیا

خانه تکنولوژی

معرفی تکنولوژی روز دنیا

مقدمه ای بر بینایی کامپیوتر

مقدمه ای بر بینایی کامپیوتر

عکس سگ من ، پدینگتون ، با محدودیت جعبه هایی که برگها را نشان می دهند قطعاً خوراکی نیستند. (تصویر Roboflow.)

بینایی رایانه می تواند انقلابی در جهان ایجاد کند. تا کنون ، بینایی رایانه ای به انسان کمک کرده است تا مشکلات زیادی را حل کند ، مانند کاهش ترافیک و نظارت بر سلامت محیط.

تصاویر یک راکون جذاب ، لنی ، با حاشیه نویسی جعبه. (تصویر Roboflow.)

از لحاظ تاریخی ، برای انجام بینایی کامپیوتری ، به یک پیش زمینه فنی واقعا قوی نیاز داشتید. پس از خواندن این پست ، باید درک خوبی از بینایی کامپیوتر بدون پیش زمینه فنی قوی داشته باشید و باید مراحل لازم برای حل مشکل بینایی رایانه را بدانید.

بینایی کامپیوتر چیست؟

< p> در یک مفهوم اساسی ، بینایی رایانه ای این توانایی را دارد که یک کامپیوتر بتواند آنچه را که شبیه انسان است ببیند و درک کند.

وقتی می خواهید از یک لیوان آب یک نوشیدنی بخورید ، چندین موارد مرتبط با بینایی اتفاق می افتد:

شما باید تشخیص دهید که چیزی که در پیش رو دارید یک لیوان آب است. باید بدانید که بازو و شیشه شما کجاست ، سپس بازوی خود را در جهت شیشه حرکت دهید. شما باید تشخیص دهید که وقتی دستتان آنقدر نزدیک است که بتوانید شیشه را به درستی بگیرید. باید بدانید صورت شما کجاست ، سپس لیوان را بردارید و آن را به سمت صورت خود ببرید.

بینایی کامپیوتر یک چیز مشابه است ... اما برای رایانه ها!

مشکلات بینایی کامپیوتر در چند سطل مختلف قرار می گیرد. این مهم است زیرا مشکلات مختلف با روش های مختلف حل می شوند.

انواع مختلف مشکلات بینایی رایانه چیست؟

انواع مشکلات بینایی رایانه. اقتباس از دوره استنفورد CS 231N. (تصویر Roboflow.)

شش نوع مشکل بینایی رایانه وجود دارد که چهار مورد از آنها در تصویر بالا نشان داده شده است.

طبقه بندی: دسته بندی هر تصویر در یک سطل. به عنوان مثال ، اگر شما یک دسته 100 تصویر داشتید که هر کدام شامل یک گربه یا یک سگ بودند ، طبقه بندی به این معنی است که پیش بینی می کنید تصویری که در دست دارید از گربه است یا سگ. در هر تصویر ، فقط یک شیء وجود دارد که برای برچسب زدن به آن اهمیت می دهید - رایانه شما تشخیص نمی دهد که دو سگ در یک تصویر هستند یا یک گربه و یک سگ وجود دارد - فقط یک تصویر متعلق به سطل "سگ" یا " سطل گربه " یک مثال واقعی از طبقه بندی برای اهداف امنیتی است: استفاده از فیلم ویدئویی و بینایی رایانه ای برای تشخیص اینکه آیا نفوذی بالقوه در تصویر وجود دارد یا خیر. در زیر یک مثال متفاوت نشان می دهیم: یک مدل VGG16 یک اتوبوس مدرسه را درست پیش بینی می کند. Roboflow این تصویر را به عنوان اتوبوس مدرسه و نه تاکسی ، واگن برقی یا چیز دیگری به درستی تشخیص می دهد. (تصویر Roboflow.) طبقه بندی+محلی سازی: دسته بندی هر تصویر در یک سطل و شناسایی جایی که موضوع مورد علاقه در کادر قرار دارد. به عنوان مثال ، اگر یک دسته 100 تصویر داشته باشید که شامل یک سگ یا یک گربه باشد ، رایانه شما قادر خواهد بود تشخیص دهد که آیا تصویر حاوی سگ است یا گربه و کجا در تصویر است. در هر تصویر ، فقط یک شی وجود دارد که به برچسب زدن برای آن اهمیت می دهید.در محلی سازی ، رایانه مشخص می کند که کجا آن شی از چیزی به نام جعبه محدود استفاده می کند. یک نمونه واقعی از طبقه بندی+محلی سازی ، اسکن و تشخیص این است که آیا نشتی در خط لوله وجود دارد یا خیر ، و در صورت وجود ، این نشت کجاست. مثال دیگر استفاده از بینایی رایانه ای برای مقابله با آتش سوزی با تشخیص دود و تلاش برای خاموش کردن آن با آب یک هواپیمای بدون سرنشین قبل از اینکه آتش از کنترل خارج شود GIF دود آتش سوزی در حال تشخیص است. (منبع تصویر.) تشخیص شی: شناسایی محل مورد علاقه ، برای هر مورد مورد علاقه. به عنوان مثال ، اگر شما یک دسته 100 تصویر داشته باشید و هر یک عکس خانوادگی با حیوانات خانگی باشد ، رایانه شما مکان انسانها و حیوانات خانگی را در هر تصویر مشخص می کند. تصاویر می توانند شامل هر تعداد شیء باشند. آنها فقط به یک مورد محدود نمی شوند یک نمونه واقعی از تشخیص شیء استفاده از بینایی رایانه ای برای ارزیابی سرطان با تشخیص گلبول های قرمز ، گلبول های سفید خون و سطح پلاکت ها است. تشخیص نوتروفیل ها ، نوعی گلبول سفید خون که نقش کلیدی در سیستم ایمنی بدن حیوانات دارد. (اعتبار: Matro Sokac ؛ مجاز به استفاده.) تقسیم بندی معنایی: تشخیص مجموعه ای از پیکسل های متعلق به یک کلاس خاص از شی. این مانند تشخیص شی است ، اما تشخیص شی یک کادر محدود کننده در اطراف شیء قرار می دهد ، در حالی که تقسیم بندی معنایی سعی می کند با اختصاص هر پیکسل به یک کلاس ، هر شی را از نزدیک تشخیص دهد. این یک راه حل خوب برای هر گونه مشکل بینایی رایانه است که به چیزی ظریف تر یا خاصتر از یک جعبه محدود کننده نیاز دارد. تصویر زیر نمونه ای از تقسیم بندی معنایی است. یک مثال در دنیای واقعی ممکن است بیشتر اهداف تصویربرداری پزشکی باشد-قرار دادن یک جعبه محدود کننده در قلب یا ریه کافی نیست ، بلکه می خواهیم قلب را با یک مرز دقیق از ریه جدا کنیم. این مقاله یک حرکت عمیق فوق العاده در بخش بندی معنایی است و از مثال ذکر شده در دنیای واقعی الهام گرفته است. اعمال تقسیم بندی معنایی بر روی تصویر سه نفر در دوچرخه. (منبع اصلی.) تقسیم بندی نمونه: بسیار شبیه به تقسیم بندی معنایی است اما بین اشیاء در یک کلاس تفاوت قائل می شود. در تصویر بالا ، سه نفر و سه دوچرخه به نظر می رسد. تقسیم بندی معنایی هر پیکسل را به یک کلاس طبقه بندی می کند ، بنابراین هر پیکسل در سطل "شخص" ، "دوچرخه" یا "پس زمینه" قرار می گیرد. با تقسیم بندی نمونه ، ما قصد داریم بین کلاسهای اشیاء (شخص ، دوچرخه ، پس زمینه) و اشیاء داخل هر کلاس تمایز قائل شویم - به عنوان مثال. بگویید کدام پیکسل متعلق به چه شخصی است و کدام پیکسل متعلق به کدام دوچرخه است. تشخیص نقطه کلیدی: این روش همچنین به عنوان تشخیص نقطه عطفی شناخته می شود ، این رویکردی است که شامل شناسایی نقاط کلیدی یا نقاط مشخص در یک شی و ردیابی آن شی است. در سمت چپ تصویر زیر ، توجه داشته باشید که تصویر چوب مانند انسان دارای کد رنگی است و مکان های مهم (این نقاط کلیدی/نشانه ها!) با یک شماره مشخص شده است. در سمت راست تصویر متوجه می شویم که هر انسانی با یک چوب مشابه مطابقت دارد. در تشخیص نقاط کلیدی ، رایانه تلاش می کند تا نقاط دیدنی هر انسان را شناسایی کند. این مقاله بیشتر توضیح می دهدجزئیات در مورد تشخیص کلیدهای کلیدی. اعمال تشخیص کلید واژه برای پنج نفر. (منبع تصویر.)

چگونه می توانم مشکلات بینایی کامپیوتر را حل کنم؟

اگر می خواهید رایانه شما به شما در حل مشکلات مربوط به داده ها کمک کند ، معمولاً یک سری مراحل را دنبال می کنید. همین امر در مورد مشکلات بینایی رایانه صادق است ، مگر اینکه مراحل کمی متفاوت به نظر برسند.

یک فرآیند هفت مرحله ای برای حل مشکلات بینایی رایانه. (تصویر Roboflow.)

ما هر یک از این مراحل را طی می کنیم ، با این هدف که در پایان فرآیند مراحل مورد نیاز برای حل مشکل بینایی کامپیوتر و همچنین یک مشکل خوب را بدانید. نمای کلی رایانه.

جمع آوری: برای استفاده از داده ها برای حل مشکل ، باید داده ها را برای انجام این کار جمع آوری کنید! برای بینایی رایانه ، این داده ها شامل تصاویر و/یا فیلم ها است. این می تواند به سادگی گرفتن عکس یا فیلم در تلفن شما و سپس بارگذاری آنها در سرویسی باشد که می توانید از آن استفاده کنید. Roboflow به شما امکان می دهد با بارگذاری مستقیم از رایانه خود ، مجموعه داده خود را به راحتی ایجاد کنید. (واقعیت سرگرم کننده ای که بینایی رایانه را با فیلم ها آسان تر می کند: ویدیوها فقط تصاویری هستند که به ترتیب مرتب شده اند!) برچسب: در حالی که هدف این است که رایانه ها همانطور که ما انسان ها می بینیم ببینند ، رایانه ها درک می کنند تصاویر بسیار متفاوت! این تصویر (بسیار پیکسلی) از آبراهام لینکلن را ببینید. در سمت چپ ، فقط تصویر را مشاهده می کنید. در وسط ، تصویر را با اعداد داخل هر پیکسل مشاهده می کنید. هر عدد نشان می دهد که پیکسل چقدر روشن یا تیره است - هرچه پیکسل روشن تر باشد ، این عدد بیشتر است. تصویر درست همان چیزی است که کامپیوتر می بیند: فقط اعداد مربوط به هر پیکسل. سه تصویر از آبراهام لینکلن. (منبع اصلی.)

اگر هدف شما این است که رایانه خود را بشناسید تا بفهمد سگ ها چگونه به نظر می رسند ، پس کامپیوتر به شما نیاز دارد که به او بگویید کدام پیکسل ها مربوط به یک سگ است! اینجاست که تصویر خود را برچسب گذاری یا حاشیه نویسی می کنید. در زیر تصویری از مجموعه داده مادون قرمز حرارتی است که به طور فعال در حال حاشیه نویسی است. یک جعبه محدود کننده در اطراف فرد کشیده شده و یک جعبه محدود کننده جداگانه در اطراف سگ کشیده شده است. این کار توسط یک انسان انجام می شود. (از آنجا که این تصویر دارای بیش از یک شیء است و از کادرهای محدود کننده استفاده می کند ، می دانیم که این تصویر برای یک کار تشخیص شی استفاده می شود!) این کادرهای محدود کننده از طریق ابزاری به نام Microsoft VoTT یا ابزار برچسب گذاری ویژوال شی اضافه می شوند. < /p> حاشیه نویسی تصویر با Microsoft VoTT ؛ ما یک آغازگر در مورد نحوه استفاده از VoTT نوشتیم. (تصویر Roboflow.)

این تنها ابزار نیست - شما می توانید از ابزارهای دیگر مانند CVAT (Computer Vision Annotation Tool) ، برنامه وب Roboflow یا خود API بارگذاری ما استفاده کنید.

هنگامی که داده ها را جمع آوری کردید و ابزار خود را برای برچسب گذاری انتخاب کردید ، شروع به برچسب زدن می کنید! شما باید سعی کنید تا آنجا که می توانید تصاویر را برچسب گذاری کنید. اگر تعداد تصاویر شما بیش از آن چیزی است که می توانید برچسب گذاری کنید ، در اینجا چند استراتژی یادگیری فعال برای برچسب زدن موثرتر تصاویر آمده است.

سازماندهی: آیا در تیمی کار کرده اید که چندین نفر در آن Google Docs را ویرایش می کنند - یا بدتر ، ارسال به اطراف فایل های مایکروسافت ورد؟ تو وممکن است تیم شما هنگام کار با تصاویر با مشکلات مشابهی روبرو شود. شاید از تیم خود خواسته اید که تصاویر را نیز جمع آوری کند. اگر تصاویر زیادی دارید - وقتی یک مدل در حال ساخت است بسیار عالی است! - زمان زیادی برای مرتب سازی و حاشیه نویسی آنها لازم است. علاوه بر این ، احتمالاً می خواهید EDA را روی تصاویر خود (تجزیه و تحلیل داده های اکتشافی) انجام دهید ، مانند بررسی مقادیر از دست رفته و مطمئن شدن از برچسب گذاری صحیح تصاویر. این مرحله ممکن است به نظر برسد که می توانید از آن بگذرید ، اما یک مرحله حیاتی است! فرایند: قبل از ساختن مدلی که به کامپیوتر شما "چگونه می بیند" آموزش می دهد ، گام هایی وجود دارد که می توانید انجام دهید مدل شما حتی بهتر عمل می کند پیش پردازش تصویر شامل مراحلی است که برای اطمینان از یکنواختی تصاویر خود انجام می دهید. اگر برخی از تصاویر مقیاس خاکستری و برخی از تصاویر رنگی قرمز/سبز/آبی را دارید ، ممکن است همه آنها را به مقیاس خاکستری تبدیل کنید. اگر اندازه تصاویر متفاوت است ، اکثر مدلها نیاز دارند که همه تصاویر دارای یک اندازه باشند. تقسیم داده های شما به مجموعه های آموزشی ، تأیید و آزمایش نیز زیر چتر پیش پردازش تصویر قرار می گیرد. برخی مراحل رایج پیش پردازش و افزایش تصویر در Roboflow موجود است. (تصویر Roboflow.)

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

آموزش: این جایی است که رایانه شما می بیند! مدلهای مختلف بینایی رایانه ای وجود دارد که می توانید بسازید - از جمله برخی از مدلهای تشخیص شیء و برخی از مدلهای طبقه بندی تصویر. این امر اغلب نیاز به تخصص بیشتری در برنامه نویسی و یادگیری ماشین نسبت به آنچه امروز ارائه می دهیم ، دارد. (در Roboflow ، پلت فرم قطار مدل ما با یک کلیک در حالت بتا خصوصی قرار دارد. در لیست انتظار آموزش مدل با یک کلیک قرار بگیرید!) قبلاً من از مثال شما استفاده کردم که یک دسته 100 تصویر داشتید که هر کدام شامل یک گربه یا یک سگ معنای "آموزش" این است که رایانه ما اساساً بارها و بارها از طریق آن تصاویر عبور می کند و یاد می گیرد که داشتن یک سگ یا گربه در یک تصویر به چه معناست. امیدوارم تصاویر کافی داشته باشیم و کامپیوتر در نهایت به اندازه کافی یاد بگیرد تا بتواند تصویری از سگی را که قبلاً دیده نشده است ببیند و آن را به عنوان یک سگ تشخیص دهد - مانندسگ من ، پدینگتون ، زیر! نمی توانم در مورد سگها صحبت کنم و تصویری از سگ من ، پدینگتون ندارم! (تصویر توسط نویسنده.)

روشهای مختلفی وجود دارد که ما می توانیم میزان رایانه ما را به خوبی تشخیص دهیم.

برای مشکلات طبقه بندی تصویر ، معیارهای استاندارد طبقه بندی شما مانند دقت یا نمره F1 باید کافی باشد. وقتی صحبت از تشخیص شی می شود ، ما ترجیح می دهیم از میانگین دقت متوسط ​​استفاده کنیم-و چرا در فرایند فکر خود قدم می زنیم؟

مدلهای مختلفی وجود دارد که می توانند برای مشکلات تصویر استفاده شود ، اما رایج ترین (و معمولاً بهترین عملکرد!) شبکه عصبی پیچشی است. اگر از یک شبکه عصبی متغیر استفاده می کنید ، بدانید که بسیاری از قضاوت ها در معماری مدل وارد شده اند که بر قدرت دیدن رایانه شما تأثیر می گذارد! خوشبختانه برای ما ، تعداد زیادی معماری مدل از پیش تعیین شده وجود دارد که برای مشکلات مختلف بینایی رایانه بسیار خوب عمل می کند.

استقرار: آموزش مدل هنوز پایان کار نیست-احتمالاً می خواهید از آن استفاده کنید مدل در دنیای واقعی! در بسیاری از موارد هدف ایجاد سریع پیش بینی ها است. در بینایی رایانه ای ، ما آن را استنباط می نامیم. (این کمی متفاوت از معنای استنباط در آمار است ، اما ما در اینجا به آن نمی پردازیم.) یک مدل تشخیص شیء YOLOv5 که پیش بینی های زمان واقعی را با دوچرخه ، ماشین و شخص ایجاد می کند. (تصویر Roboflow.)

ممکن است بخواهید مدل خود را در برنامه ای قرار دهید ، بنابراین رایانه شما می تواند پیش بینی ها را در زمان واقعی مستقیماً از تلفن شما ایجاد کند! ممکن است بخواهید به برنامه ای در رایانه خود ، یا به AWS ، یا چیزی داخلی در تیم خود بپردازید. ما قبلاً به طور مفصل در مورد یکی از روشهای استقرار مدل بینایی رایانه در اینجا نوشتیم. اگر حداقل کمی با Python و API ها آشنا هستید ، این مستندات در مورد استنباط در بینایی رایانه می تواند مفید باشد!

نمایش: آیا می خواهید یک قدم جلوتر بروید؟ اگر شما یا فردی در تیم خود با فناوری واقعیت افزوده مانند ARCore گوگل یا ARKit اپل آشنا هستید ، می توانید مدل استقرار یافته خود را به سطح بعدی برسانید.

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

پس از خواندن این مطلب پست ، شما باید درک خوبی از بینایی کامپیوتر بدون پیش زمینه فنی قوی داشته باشید و باید مراحل لازم برای حل مشکل بینایی رایانه را بدانید.

از اینکه تا اینجا با ما همراه بودید متشکریم! هرگونه سوال یا منابع اضافی که در نظرات دارید به ما اطلاع دهید - و اگر چیزی در ارتباط با بینایی رایانه ایجاد می کنید ، خوشحال می شویم ببینیم شما چه کار می کنید!

در ابتدا در https: //blog.roboflow منتشر شده است .com در 23 نوامبر 2020.

نقشه راه برای دید رایانه ای

نقشه راه برای دید رایانه ای

مقدمه ای بر مراحل اصلی تشکیل دهنده یک سیستم بینایی کامپیوتری. از نحوه پیش پردازش تصاویر ، استخراج ویژگی ها و پیش بینی ها شروع می شود.

عکس توسط Ennio Dybeli در مورد Unsplash

مقدمه

دید کامپیوتر (CV) امروزه یکی از کاربردهای اصلی هوش مصنوعی است (به عنوان مثال تشخیص تصویر ، ردیابی اشیاء ، طبقه بندی چند برچسب). در این مقاله ، برخی از مراحل اصلی تشکیل دهنده یک سیستم بینایی رایانه ای را برای شما شرح می دهم. تصاویر وارد سیستم می شوند. از Extractor Feature برای پیش پردازش و استخراج ویژگی ها از این تصاویر استفاده می شود. یک سیستم یادگیری ماشین از ویژگی استخراج شده به ترتیب استفاده می کند. برای آموزش مدل و پیش بینی.

اکنون ما به طور مختصر برخی از فرایندهای اصلی را که ممکن است داده های ما در هر یک از این سه مرحله مختلف طی کنند ، مرور می کنیم.

تصاویر وارد سیستم < /h1>

هنگام تلاش برای پیاده سازی یک سیستم CV ، ما باید دو جزء اصلی را در نظر بگیریم: سخت افزار کسب تصویر و نرم افزار پردازش تصویر. یکی از الزامات اصلی که باید برای استقرار سیستم CV رعایت شود ، آزمایش استحکام آن است. در واقع سیستم ما باید بتواند در تغییرات محیطی (مانند تغییرات روشنایی ، جهت گیری ، مقیاس بندی) تغییر ناپذیر باشد و بتواند وظیفه طراحی شده خود را به طور مکرر انجام دهد. به منظور برآوردن این الزامات ، ممکن است لازم باشد محدودیت هایی را برای سخت افزار یا نرم افزار سیستم خود اعمال کنیم (به عنوان مثال کنترل از راه دور محیط روشنایی).

هنگامی که تصویری از دستگاه سخت افزاری ، روشهای زیادی برای نمایش عددی رنگها (Color Spaces) در یک سیستم نرم افزاری وجود دارد. دو مورد از مشهورترین فضاهای رنگی RGB (قرمز ، سبز ، آبی) و HSV (رنگ ، اشباع ، ارزش) هستند. یکی از مزایای اصلی استفاده از فضای رنگی HSV این است که فقط با گرفتن اجزای HS می توانیم روشنایی سیستم خود را ثابت نگه داریم (شکل 1).

شکل 1: فضاهای رنگی RGB در مقابل HSV [1]

استخراج کننده ویژگی

پیش پردازش تصویر

هنگامی که تصویری وارد سیستم می شود و با استفاده از یک فضای رنگی نمایش داده می شود ، می توانیم عملگرهای مختلف را بر روی تصویر اعمال کنیم تا نمای آن بهبود یابد:

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

پس از پردازش یک تصویر ، می توانیم تکنیک های پیشرفته تری را برای استخراج با استفاده از روش هایی مانند تشخیص درجه اول لبه (به عنوان مثال اپراتور Prewitt ، اپراتور Sobel ، Canny Edge Detector) و Hough Transforms ، لبه ها و اشکال درون یک تصویر را مشاهده می کنید.

استخراج ویژگی

یکبار قبل -پردازش یک تصویر ، 4 نوع اصلی مورفولوژی ویژگی وجود دارد که می توان با استفاده از Feature Extractor از یک تصویر استخراج کرد: از استخراج کننده ویژگی یک مثال ساده از یک ویژگی جهانی می تواند یک هیستوگرام از مقادیر پیکسل های ذخیره شده باشد. ویژگی های شبکه ای یا مبتنی بر بلوک: تصویر به بلوک های مختلف تقسیم می شود و ویژگی ها از هر یک از بلوک های مختلف استخراج می شوند. یکی از تکنیک های اصلی برای استخراج ویژگی ها از بلوک های یک تصویر ، DIFF Dense (تغییر ویژگی تغییر اندازه مقیاس) است. این نوع ویژگی ها به طور شایع برای آموزش مدل های یادگیری ماشین استفاده می شود. ویژگی های مبتنی بر منطقه: تصویر به مناطق مختلف تقسیم می شود (به عنوان مثال با استفاده از تکنیک هایی مانند آستانه گذاری یا خوشه بندی K-Means و سپس اتصال آنها به بخش هایی با استفاده از قطعات متصل) و یک ویژگی از هر یک از این مناطق استخراج می شود. ویژگی ها را می توان با استفاده از تکنیک های توصیف منطقه و محدوده مانند Moments و Chain Codes استخراج کرد. ویژگی های محلی: چندین نقطه مورد علاقه در تصویر تشخیص داده می شود و ویژگی ها با تجزیه و تحلیل پیکسل های مجاور نقاط مورد علاقه استخراج می شوند. به دو نوع اصلی از نقاط مورد علاقه که می توان از یک تصویر استخراج کرد گوشه ها و حباب ها هستند ، این نقاط را می توان با استفاده از روش هایی مانند Harris & Stephens Detector و Laplacian of Gaussians استخراج کرد. با استفاده از تکنیک هایی مانند SIFT (Scale Invariant Feature Transform) می توان ویژگی ها را در نهایت از نقاط مورد علاقه شناسایی شده استخراج کرد. ویژگیهای محلی معمولاً به منظور تطبیق تصاویر برای ایجاد بازسازی پانوراما/سه بعدی یا بازیابی تصاویر از پایگاه داده استفاده می شود.

پس از استخراج مجموعه ای از ویژگیهای متمایز ، می توانیم از آنها برای آموزش مدل یادگیری ماشین برای نتیجه گیری توصیف کننده های ویژگی را می توان به راحتی در پایتون با استفاده از کتابخانه هایی مانند OpenCV اعمال کرد. BoVW) به منظور ایجاد یک مجموعه از کلمات بصری ،ما قبل از هر چیز باید با استخراج همه ویژگی ها از مجموعه ای از تصاویر (به عنوان مثال با استفاده از ویژگی های مبتنی بر شبکه یا ویژگی های محلی) یک واژگان ایجاد کنیم. پی در پی ، می توانیم تعداد دفعاتی که یک ویژگی استخراج شده در یک تصویر ظاهر می شود را شمارش کرده و از نتایج یک هیستوگرام فرکانس بسازیم. با استفاده از هیستوگرام فرکانس به عنوان یک الگوی اصلی ، می توان در نهایت دسته بندی کرد که آیا یک تصویر متعلق به یک کلاس است یا نه با مقایسه هیستوگرام آنها (شکل 3).

این فرایند را می توان در چند مرحله زیر خلاصه کرد:

ما ابتدا با استخراج ویژگی های مختلف از مجموعه داده های تصاویر با استفاده از الگوریتم های استخراج ویژگی مانند SIFT و DIFT Sense ، واژگانی را ایجاد می کنیم. در مرحله دوم ، همه ویژگی های واژگان خود را دسته بندی می کنیم. با استفاده از الگوریتم هایی مانند K-Means یا DBSCAN و استفاده از مرکز خوشه ها به منظور جمع بندی توزیع داده های ما. در نهایت ، ما می توانیم با شمارش تعداد دفعات مختلف ویژگی های متفاوت ، یک هیستوگرام فرکانس از هر تصویر بسازیم. واژگان در تصویر ظاهر می شوند.

تصاویر جدید را می توان با تکرار همین فرایند برای هر تصویری که می خواهیم طبقه بندی کنیم و سپس با استفاده از هر الگوریتم طبقه بندی طبقه بندی کنیم تا دریابیم کدام تصویر در واژگان ما بیشتر شبیه آزمایش ما است تصویر.

شکل 3: کیف واژه های بصری [2]

امروزه به لطف ایجاد معماری شبکه های عصبی مصنوعی مانند Convolutional شبکه های عصبی (CNNs) و شبکه های عصبی مصنوعی مکرر (RCNNs) ، امکان ایجاد یک گردش کار جایگزین برای دید رایانه ای (شکل 4) وجود دارد.

شکل 4: گردش کار بینایی کامپیوتر [3]

در این حالت ، الگوریتم یادگیری عمیق هر دو مرحله استخراج ویژگی و طبقه بندی رایانه را در بر می گیرد. گردش کار بینایی هنگام استفاده از شبکه های عصبی کانولوشن ، هر لایه از شبکه عصبی تکنیک های مختلف استخراج ویژگی را در توضیحات خود اعمال می کند (به عنوان مثال ، لایه 1 لبه ها را تشخیص می دهد ، لایه 2 شکل هایی را در یک تصویر پیدا می کند ، لایه 3 تصویر را تقسیم می کند ، و غیره ...) قبل از ارائه ویژگی بردارهای طبقه بندی لایه متراکم.

برنامه های کاربردی دیگر یادگیری ماشین در بینایی رایانه ای شامل مناطقی مانند طبقه بندی چند برچسب و تشخیص اشیا می شود. در طبقه بندی چند برچسب ، ما قصد داریم مدلی بسازیم که بتواند به درستی تعداد اجسام موجود در یک تصویر را مشخص کند و به چه طبقه ای تعلق دارد. در عوض ، در تشخیص اشیاء ، هدف ما این است که این مفهوم را با شناسایی موقعیت اشیاء مختلف در تصویر ، گامی فراتر ببریم. جدیدترین مقالات و پروژه ها مرا در Medium دنبال کنید و در لیست پستی من مشترک شوید. اینها برخی از اطلاعات تماس های من است:

Linkedin وبلاگ شخصی وب سایت شخصی نمایه متوسط ​​ GitHub Kaggle

کتابشناسی

[1] ربات مدولار که به عنوان پاک کننده ساحل استفاده می شود ، Felippe Roza. دروازه تحقیق. قابل دسترسی در: https://www.researchgate.net/figure/RGB-left-and-HSV-right-color-spaces_fig1_310474598

[2] مجموعه ای از کلمات بصری در گروه OpenCV ، Vision & Graphics. یان کوندراک. قابل دسترسی در: https://vgg.fiit.stuba.sk/2015-02/bag-of-visual-words-in-opencv/

[3] Deep Learning Vs. دید رایانه ای سنتی. Haritha Thilakarathne ، NaadiSpeaks. قابل دسترسی در: https://naadispeaks.wordpress.com/2018/08/12/deep-learning-vs-traditional-computer-vision/