مقدمهای بر بینایی ماشین (Machine Vision)
كنترل كيفيت خط توليد
شكل 1- نماي ساده شدهاي از يك سيستم بينايي كنترل كيفيت خط توليد غيرواقعي |
عكسبرداري
در اين مثال ما سعي در مكانيزه كردن فرآيندي يكنواخت داريم كه بهصورت معمول و تكراري توسط انسان انجام ميشود. اولين مسأله و مشكل ما اين است كه چگونه عكسهاي تهيه شده از اشيايي كه در حال حركت بر روي نوار نقاله هستند را تبديل به دادههاي قابل فهم و تفسير براي سيستم نماييم، كه اين مشكل توسط دوربين CCD حل ميشود. عملكرد اين دوربين را ميتوان به عملكرد چشم انسان كه قادر است سطوح مختلف نور را تشخيص دهد تشبيه نمود.
چشم انسان
چشم انسان كه در شكل 2 نشان داده شده است، تقريباً يك عدسي كروي با قطر 5/2 سانتيمتر ميباشد كه از چندين لايه مختلف كه درونيترين آنها شبكيه نام دارد تشكيل شده است. ماهيچههاي اطراف چشم اندازه لنز را تنظيم ميكنند كه اينكار چشم را قادر به زوم (zoom) كردن روي اشياء ميكند.
شكل 2- نماي داخلي چشم انسان |
در ميان شبكيه ناحيهاي بهنام نقطه كور وجود دارد كه در آن هيچ گيرندهاي موجود نيست. در اين ناحيه اعصاب بهصورت جداگانه به عصب بينايي كه سيگنالهاي دريافت شده را به قشر بينايي مخ انتقال ميدهند، وصل ميشود.
دوربين CCD
CCD از جهت عملكرد تقريباً مانند چشم انسان كار ميكند. نور از طريق يك عدسي وارد دوربين و برروي يك پرده مخصوص تصوير ميشود كه تحت عنوان تراشه CCD شناخته ميشود. تراشه Charge Coupled Device) CCD) كه تصاوير با استفاده از آن گرفته ميشوند از تعداد زيادي سلول تشكيل شده كه همگي در يك تراشه با الگوي خاصي مرتب شدهاند و تحت عنوان پيكسل (pixels) شناخته ميشوند.
زماني كه تراشه CCD اين اطلا
عات را دريافت ميكند، آنها را به شكل سيگنالهاي ديجيتالي از طريق كابلهايي به سيستم دريافتكننده ميفرستد و بعد تصاوير در اين سيستم به صورت مجموعهاي از اعداد ذخيره ميشوند. همانطور كه در شكل 3 ميبينيد هر عدد نماينده يك پيكسل است.
درك تصوير
با هر تصوير، چه با دوربين گرفته شود و چه با چشم انسان، مقداري تحريف و تغيير شكل و
به عبارتي "نويز (noise) " وجود دارد. البته در مورد مثال ما در سيستم خط توليد اين مسأله چندان اهميت ندارد اما در موقعيتهايي كه نياز به دقت بالا وجود دارد بايد از نورپردازي خاصي براي تصويربرداري استفاده شود.
شكل 4- ترسيم لبه. شكل اول تصوير اصلي ميباشد. در شكل وسط نويزها با فيلترنمودن از بين رفته است. در نهايت شكل 3، تصوير حاصل از بهكار بردن الگوريتم ترسيم لبه ميباشد. |
و اين يعني ما هنوز تصوير ماشين را عليرغم وجود مه ميتوانيم تشخيص دهيم و در مقابل آن عكسالعمل نشاندهيم. و يا مثلاً زماني كه دچار سرگيجه ميشويد، عليرغم اينكه تصاوير اطراف خود را تار و مبهم ميبينيد اما قادر به درك و تشخيص وسايل و تصاوير اطراف خود هستيد. يعني ابتدا صبر نميكنيد تا سرگيجهتان به پايان برسد و بعد تصاوير را تشخيص دهيد و اين يعني با قدرت بينايي انسان، عليرغم خراب شدن تصاوير اطراف، ميتوانيم متوجه فضاي اطراف خود بشويم. اما براي بينايي ماشين ابتدا بايد اين نويزها طي فرآيندي كه تصفيه كردن يا فيلترينگ ناميده ميشود، از بين برود و بعد هر آنچه براي پردازش عكس لازم است انجام شود.
خوشبختانه در حال حاضر تكنيكهايي براي انجام اين كار وجود دارد. از بين بردن نويزها بهصورت نرمال توسط تعدادي از توابع رياضي يا الگوريتمهايي كه تحت عنوان 'treshholding' يا 'quantizing' ناميده ميشود انجام ميگردد. اين فرآيند بسيار حرفهاي و پيچيدهاي است و نياز به دانش و پشتوانه بالاي رياضي دارد. زماني كه خرابيها از بين رفت، ميتوانيم پردازش عكسها را ادامه دهيم كه اين كار با استخراج صورتها و حالتها از يك تصوير انجام ميشود. يك شيوه معمول كه غالباً مورد استفاده قرار ميگيرد استخراج لبهها كه در شكل 4 ديده ميشود، ميباشد.
در مورد مثال ما در سيستم خط توليد، وظيفه اصلي يك اپراتور كنترل كيفيت اين است كه به سرتاسر محصول توليد شده نگاه كرده و با مقايسه آن با استانداردهاي مورد قبول، براي محصول توليدشده جواز عبور يا عدم عبور صادر كنند.
اگر اين كار با استفاده از بينايي ماشين صورت گيرد بايد عكس گرفته شده از محصول توليد شده با عكسي كه از يك محصول استاندارد وجود دارد مقايسه شود. يكي از روشهاي انجام اين كار به اين صورت است:
براي انجام اينكار، يك تصوير از محصول استاندارد در كامپيوتر ذخيره ميشود و سپس از محصولاتي كه از خط توليد عبور ميكنند. تصوير گرفته ميشود و به عنوان نقشه لبه ذخيره ميشود. و بعد سيستم، تصوير گرفته شده را از چپ به راست و از بالا به پايين بهگونهاي كه در هر زمان فقط يك رقم عبور كند، ميلغزاند و عدد ظاهر شده در هر موقعيت را با عدد همان موقعيت در تصوير اصلي مقايسه ميكند و در صورت تفاوت آن را اعلام مينمايد.
لذا عمليات بينايي كامپيوتر در حقيقت مقايسه دو مجموعه عدد است كه اگر تفاوت اين دو مجموعه از يك محدوده خاص فرارتر برود، از پذيرفتن محصول امتناع شده و در غير اينصورت محصول پذيرفته ميشود.
يك مثال پيچيدهتر
در مثال قبل سيستم مورد مطالعه بسيار محدود بود و فقط يك تصوير دو بعدي از يك محصول را با تصوير اصلي و ايدهآل مقايسه ميكرد و احتياجي به بررسي مقادير اندازه و زاويه نبود.
در اين مثال ميخواهيم به سيستم بينايي كه براي يك ربات خانگي كه قادر به تميز كردن خانه، پختن غذا و ... طراحي شده نگاهي بياندازيم. اين مثال بسيار پيچيدهتر از مثال قبلي است و نياز به آگاهي از تغييرات محيط دارد. به عبارت بهتر نياز به يك سيستم هوشمندتر داريم. قبلاً ديديم كه تصاوير چگونه ذخيره و تفسير ميشوند. غالب تكنيكهاي گذشته دوباره در اين مثال بهكار گرفته ميشوند. تفاوت اصلي در تفسير تصاوير گرفته شده است. در مثال قبلي فضاي سيستم بينايي فقط متشكل از يك سري محصول بود، اما در اين مثال ربات بايد از همه آنچه در اطرافش ميگذرد باخبر بوده و اين يعني با دنياي وسيعتر و بزرگتري روبروست. بدينمنظور نياز به تكنيكهاي تشخيص پيچيدهتري وجود دارد.
يعني در اين مثال، يك صحنه فرضي شامل دهها يا حتي صدها شي مختلف در معرض ديد است. اين اشياء در اندازهها و تحت زواياي مختلف كه متأثر از نوع نورپردازي هم هستند به نمايش درميآيند و به همين دليل براي تشخيص اين اشياء نياز به تكنيكهاي هوشمصنوعي (Ai) ميباشد.
پردازش اطلاعات در مغز
شكل 5 - تصوير به نظر دو مثلث ميآيد كه در جهت عكس هم و برروي هم قرار داده شدهاند، ولي از نظر رياضي هيچ مثلثي رسم نشده است و فقط سه دسته از خطوط وجود دارند. |
البته خود ناحيه شبكيه بهعنوان قسمتي از مغز شمرده ميشود. در ضمن اين مسأله هم قبلاً مشخص شده است كه نواحي مختلف قشر بينايي مخ در مقابل تصاوير مختلف عكسالعمل نشان ميدهد. به عبارت ديگر هر قسمت از اين ناحيه مربوط به يك حالت خاص است. مثلاً نواحي معين و مشخصي در مقابل رنگهاي متفاوت عكسالعمل نشان ميدهند و يا مثلاً نواحي وجود دارند كه سلولهايشان در مقابل جزييات دقيق موجود در يك تصوير عكسالعمل نشان ميدهند. مثلاً در شكل 5 شما ميتوانيد يك مثلث سفيد كه بهطور واضح سه راس آن مشخص نشده است را ببيند،
شكل 6- مثلث Penrose: عدم هماهنگي هندسي در لبهها باعث عدم درك صحيح شكل ميشود. |
عليرغم اينكه بهطور واضح و مجزا اين مثلث مشخص نشده است. اما سلولهاي موجود در قشر بينايي ميتوانند تكههاي اين خطوط را كنار هم گذاشته و از آن يك مثلث استنتاج كنند.
زماني كه اطلاعات مربوط به چيزي كه ديده ميشود را دريافت كرديم، مثل شكل ظاهري، لبهها و غيره، مغز نياز به رمزگشايي و كشف اطلاعات بهدست آمده دارد تا دقيقاً نتيجهگيري كند كه آنچه در صحنه ميگذرد چيست. اينجا قسمتي است كه ما خيلي كم در رابطه با آن ميدانيم و مشخص نيست كه دقيقاً مغز چگونه اين كار را انجام ميدهد. اما مسأله مشخص اين است كه سيستم بينايي ما چندان مبرا از خطا نيست و بهراحتي دچار اشتباه ميشود. موارد بسيار زيادي وجود دارد كه اطلاعات كسب شده ميتوانند مبهم و يا حتي اشتباه باشند، مانند مثالهايي كه در شكل 6 و 7 مشاهده ميكنيد.
بهطور خلاصه، با توجه به اينكه سيستم بينايي انسان در بسياري موارد دچار خطا ميشود، نياز به درنظرگرفتن شيوهاي متفاوت براي بينايي ماشين هستيم.
با استفاده از تكنيكهايي كه قبلاً ذكر كرديم، ربات ميتواند شناسايي تركيبات و صورتهاي گوناگون موجود در اطراف خود را با استفاده از شيوه همانندسازي الگو انجام دهد. هر چند تعداد زيادي صورت
و تركيبات گوناگون (template matching) ديگر وجود دارند كه نياز به اخذ شيوههاي متفاوت ديگري براي نمايش آنها وجود دارد. و در اين جاست كه نياز به استفاده از تكنيكهاي هوش مصنوعي مطرح ميشود.
نمايش دانش
متخصصين هوش مصنوعي انواع سيستمها را با استفاده از برنامههاي معمول كامپيوتري و تفاوت قايلشدن بين پردازش اطلاعات (information) و پردازش دانش (knowledge)، شناسايي ميكنند. اينكار منجر به ايجاد سيستمهاي مبتني بر دانش كه كاربرد بسيار زيادي در هوش مصنوعي دارد ميشود.
شكل 8- يك شبكه معنايي براي نمايش قسمتي از آشپزخانه. |
يك شبكه معنايي (Semantic network) يك تكنيك خوش ساخت براي نمايش اشياء يا ماهيت موجود در يك دنيا و ارتباطاتي كه بينشان موجود است، ميباشد. مثلاً قسمتي از دنياي ربات ما آشپزخانه است.
استفاده از يك شبكه معنايي ميتواند راه مناسبي براي نمايش اطلاعات باشد. بدينترتيب آشپزخانه را تحت عنوان يك سري از اشياء و روابط بينشان فرض كنيم. يك شبكه ميتواند جزييات موجود را بهخوبي نمايش داده و ما را قادر به كاوش بيشتر و بهتر در روابط موجود بين اشياء كند. براي مثال، همانطور كه از شكل شماره 8 ميتوان ديد، گوشتهاي سرد در يخچال نگهداري ميشوند. اين آيتمها تحت عنوان غذاها ميتوانند دستهبندي شوند. اگر چه همه غذاها در يخچال نگهداري نميشوند، اما همه محصولات گوشتي ملزم به نگهداري يخچال هستند.
مشخص است كه اين شبكه بايد براي نمايش دنياي اطراف ربات ما بهخوبي گسترش يابد و نياز به نمايش دقيقتر و جزييتري از اشياء و ارتباطات وجود دارد و همچنين اين شبكه بايد اتاقها، افراد، اشياء موجود و غيره را هم نمايش دهد.
پس از ساخته شدن شبكه معنايي ما قادر به ساخت يك پايگاه داده از دانش حاصل از شبكه معنايي در مورد اشياء موجود در دنياي مربوطه هستيم. در مورد مثال ما، وروديهاي مناسب ميتواند به شكل زير باشد:
(سيب - شكل - گرد) (سيب - رنگ - قرمز) (سيب - نما - براق)
(همبرگر- شكل - گرد) (همبرگر- رنگ - قهوهاي) (همبرگر نما - گوشتي)
(يخچال - شكل - مستطيل) (يخچال - رنگ- سفيد) (يخچال - نما - فلزي)
(ظرفميوه - شكل - بيضي) (ظرفميوه - رنگ- نقرهاي) (ظرف ميوه - نما - فلزي)
((ميوه) نگهداري - در (ظرف ميوه))
((سيب) هست - يك (خوردني))
توجه كنيد كه وروديهاي اين پايگاه دانش بايد بهگونهاي باشد كه منجر به سردرگمي ماشين نشود. مثلاً در مورد مثال ما، سيب يك شي براق قرمز گرد معرفي شده است. اشياء زيادي هستند كه ممكن است چنين مشخصهاي داشته باشند و اگر مثلاً شما ربات خود را بفرستيد كه براي شما يك سيب تازه بياورد امكان دارد ربات با يك توپ نزد شما باز گردد.
اين پايگاه دانش تحت عنوان حافظه كاريِ سيستم شناخته ميشود. به منظور استفاده كارا و مناسب از اطلاعات موجود در اين پايگاه، سيستم نياز به داشتن تعدادي قانون دارد. بدينترتيب پس از ساخت پايگاه دانش نياز به ساخت يك پايگاه از قوانين براي برخورد مناسب با اطلاعات موجود در پايگاه دانش هستيم. اگر شما از قبل با زبانهاي برنامهنويسي آشنايي داشته باشيد، با عبارتي مثل If Statement Then آشنا هستيد مثلا If cold Then wear coat ما از چنين ساختاري براي ايجاد پايگاه قوانين استفاده ميكنيم. قسمت IF عبارت تحت عنوان راس قانون و قسمت عمليات يعني قسمت Then تحت عنوان بدنه قانون شناخته ميشوند.
و بدين ترتيب ربات مثلاً ميداند كه يك سيب چيست و در كجا قرار دارد. مثلاً فرض كنيد يكي از كارهايي كه قرار است ربات انجام دهد رفتن به سمت يخچال و برداشتن چيزي از يخچال است، در اين صورت ميتوانيم مجموعهاي از قوانين را به اين منظور بسازيم.
اكنون هم دانش و هم قوانين مربوطه را داريم كه نياز به روشهايي براي تفسيرشان داريم. اين كار توسط سيستم مفسر انجام ميشود. مفسر برنامهاي است كه قوانين را پردازش ميكند. وظيفه آن خواندن هر قانون و بررسي اينكه موقعيتها با هم همخواني دارند يا نه ميباشد. اگر همخواني داشتند عمل موردنظر را انجام ميدهد. اين عمل آنقدر انجام ميشود تا به عملي كه دستور پايان دادهاست، برسد.
گفتيم براي استفاده از تكنيك همسانسازي الگو (Template matching) نياز به ذخيره مقادير بسيار زيادي از دانش در رابطه با هر آيتم موجود در دنياي ربات وجود دارد. با استفاده از قوانين ميتوانيم استفاده از اين اطلاعات را از بين ببريم و ديگر نيازي به آنها حس نميشود. مثلاً در مورد يك صندلي، بهجاي ذخيره يك صندلي از تعدادي زوايا و اندازهها ميتوانيم اطلاعاتي راجعبه برخي خواص و ظواهر صندلي نظير جنس، دستهها، پايهها و ... كه يك سيستم مبتني بر دانش از آنها به منظور تشخيص صندلي استفاده ميكند، ذخيره كنيم. يك صندلي داراي چهار پايه، يك نشيمنگاه و يك تكيهگاه است.
از طرف ديگر ميز هم چهار پايه و يك رويه دارد. بدينترتيب بهجاي ذخيره تعداد زيادي عدد براي هر شي، از خواص آن شي براي توصيفش استفاده كنيم. بدينترتيب نياز به يك پايگاه دانش هست كه چيزهايي نظير اجزا (دستهها، پايهها، ديوارهها و...) خواصي كه اين اجزا را توصيف ميكند (ظاهر و غيره)، و حقايقي در رابطه با اشيايي كه توسط اين اجزا ساخته ميشوند (آشپزخانه چهار ديوار و يك در دارد و غيره) و همچنين يك سري قوانين به منظور پردازش اين اطلاعات را نگهداري نمايد.
خلاصه
همانطور كه ديديم، عمليات زيادي بايد به منظور پردازش اطلاعات تصويري انجام شود. تصاوير غالباً داراي نويز هستند كه باعث خرابي و تحريفشان ميشود. هر چند اين مشكل چندان حادي براي سيستم بينايي انسان به حساب نميآيد اما براي سيستمهاي بينايي ماشين اين نويزها بهطور كامل بايد فيلتر و پاكسازي شوند كه اين عمل با استفاده از تعدادي الگوريتم انجام ميشود.
همچنين ديديم كه اشياء چگونه با استفاده از تكنيك همسانسازي الگو ديده ميشوند هر چند پس از اينكه اشياء داخل صحنه توسط سيستم بينايي مشخص شدند هنوز كار تمام شده است. اطلاعات حاصل بايد به يك نمايش دانش مناسب ترجمه شوند بهطوري كه قابل پردازش باشند.
نتيجهگيري
مثال اول يك مثال محدود شده از نوعي سيستم بود كه در كاربردهاي روزانه مشابه آن را فراوان ميتوان يافت. سيستمهاي بينايي اوليه روز به روز در حال گسترش هستند و هر روز كاربرد جديدي براي آنها يافت ميشود. با توسعه اين سيستمها، كاربردهايي براي ساير محيطها نظير توسعه پردازش نيز يافت ميشود. سيستمهاي بينايي مصنوعي از كاربردهاي پزشكي و نظامي گرفته تا كاربردهاي ساده و معمول روزمره مورد استفاده هستند. و اين شاخه از هوش مصنوعي از كاربرديترين شاخهها ميباشد كه هنوز مسايل حلنشده زيادي در خود دارد .
مریم اسماعیلی
منبع:http://ml.blogfa.com
* تفنگ مغناطیسی
* رقص نور ده کاناله
* کنترل از راه دور مادون قرمز
* چشمک زن با LM317
* نرم افزاری دیگر برای طراحی فیلتر FiltersCAD
* نرم افزار MPLAB
* نرم افزاری برای طراحی فیبر مدار چاپی PCB123
* نرم افزاری برای طراحی انواع فیلتر Filter Wiz LE
* نرم افزاری برای آنالیز مدار circuit designer
* نرم افزاری برای تایمر555
* نرم افزار برای پروگرم کردن آی سی Ic_Prog
* نرم افزار اسیلسکوپ برای ویندوز OSC
* نرم افزاری برای طراحی مدار چاپی PCB
* پروگرمر PIC16F84
* پروگرمر PIC & AVR
* نرم افزار Pspice 9.1
* ساخت پروگرمر حرفه ای برای سری PIC
* تایمر تک کاناله
* مكانيزم های بادامكی
* استفاده از ربات جوشکار در صنایع کشتی سازی
مطالب مشابه :
بینایی ماشین
این فایل pdf که ۵۵ صفحه می باشد. شما را با open cv آشنا می کند. سر فصل هایی که در این فایل با آن آشنا
بینایی ماشین چیست؟
دسترسی رایگان به مقالات معتبر - بینایی ماشین چیست؟ - دسترسی رایگان به مقالات معتبر
بینایی ماشین
بینایی ماشین. دسته بندی : بينايي ماشين سه شنبه ششم اسفند 1392. فایل مربوط به درس بینایی ماشین،
***بینایی ماشین(Machine vision)*** ادامه مطلب...
مهندسی مکانیک بیوسیستم - ***بینایی ماشین(Machine vision)*** ادامه مطلب - ارائه دهنده
بینایی ماشین روبات های شرکت ABB
بینایی ماشین روبات های شرکت abb شرکت abb برای بینایی روباتهای خود در فرآیند pick & place از سیستم
بینایی ماشین (Machine Vision)
مهندسی مكانيك ماشين هاي كشاورزی - بینایی ماشین (Machine Vision) - The Mechanics of Agricultural Machinery Engineering
مقدمهای بر بینایی ماشین (Machine Vision)
- مقدمهای بر بینایی ماشین (Machine Vision) - يكي از كاربردهاي بينايي ماشين در كنترل كيفيت
استفاده از Emgu CV برای پردازش تصاویر در سی شارپ دات نت
در این وبلاگ من اطلاعات مختلفی را که به مهندسی کامپیوتر و بخصوص بینایی ماشین مربوط میشوند
برچسب :
بینایی ماشین