PDA

View Full Version : تشخیص نور در تصویر



svhasvha
دوشنبه 10 دی 1397, 08:47 صبح
سلام خدمت همه دوستان و سروران محترم
صورت مسئله:
من تو یه کار خونه تولید شیر کنترل آبگرمکن وبخاری کار میکنم تو یه مرحله از کار برای تست نشتی گاز از شیر کنترل توی یه اتاقک تاریک اپراتور بعد از تزریق گاز به شیر کنترل با یه شعله دور تا دور شیر رو کنترل میکنه که نشتی وجود نداشته باشه
حالا به خاطر خطا های انسانی پیش آمده تو تشخیص نشتی قرار شد کارو سیستمیش کنیم
اول رفتیم سراغ دور بین ها مادون قرمز و تشخیص حرارتو ..... که هم هزینش خیلی بالا بود هم حساسیتش در اون حد نبود که بتونه شعله های ریزو تشخیص بده
به ذهنم زد با پردازش تصویر بشه این کار رو کرد....
تا اتصال و انتقال تصویر دوربین به محیط سی شارپ اوکیه
ولی برای بعدش ایده خاصی توذهنم نیست و اینکه خیلی با تصویر کار نکردم تا حالا
ایده کلی که تو ذهن خودمه اینه که یه اتاقک تاریک که شیر متصل به گاز تو اون قرارداده یه شعله برای چند ثانبه کل شیرو میپوشونه و بعد خاموش میشه حالا دوربین فعال میشه اکه تو تصویر دوربین نوری دید(نور شعله احتمالی از نشتی) یه عکس بگیره
یا اینکه محیط اتاق از رنگ ایزوله باشه یعنی هیچ رنگی تو محیط نباشه و کل اتاقک سیاه باشه رنگ شیرم که یه رنگ خاصه حالا بعد از روش شدن دوربین در صورتی که رنگی خارج از طیف رنگ مشکی ورنگ خود شیر تو تصویر بود از تصویر یه عکس بگیره
حالا نمیدونم اگه دوستان ایده ای به ذهنشون میرسه یه کدی میتونن در اختیار بزارن ممنونشون میشم

hamid_hr
دوشنبه 10 دی 1397, 14:51 عصر
اگه عکس همش مشکی باشه وقتی اتیش روشن بشه همون قسمت رنگی میشه
میتونین از کتابخانه OpenCV استفاده کنید ابتدا تصویر رو سیاه و سفید کنید و سپس لبه یابی یا مثلا نقاط غیر مشکی رو پیدا کنید و اگه از یک تعداد پیکسل بیشتر باشه میشه اتیش

svhasvha
دوشنبه 10 دی 1397, 16:08 عصر
ممنون از جوابت اما خود شیر که مشکی نیست
تک رنگه ولی مشکی نیست

hamid_hr
سه شنبه 11 دی 1397, 07:58 صبح
وقتی تو مود سیاه و سفید بره یا سیاه میشه یا سفید. منطقه شیر تو عکس مشخصه کجاست دیگه اونو منطقه رو استثنا قرار میدین

farhad_shiri_ex
سه شنبه 11 دی 1397, 12:23 عصر
سلام خدمت همه دوستان و سروران محترم
صورت مسئله:
من تو یه کار خونه تولید شیر کنترل آبگرمکن وبخاری کار میکنم تو یه مرحله از کار برای تست نشتی گاز از شیر کنترل توی یه اتاقک تاریک اپراتور بعد از تزریق گاز به شیر کنترل با یه شعله دور تا دور شیر رو کنترل میکنه که نشتی وجود نداشته باشه
حالا به خاطر خطا های انسانی پیش آمده تو تشخیص نشتی قرار شد کارو سیستمیش کنیم
اول رفتیم سراغ دور بین ها مادون قرمز و تشخیص حرارتو ..... که هم هزینش خیلی بالا بود هم حساسیتش در اون حد نبود که بتونه شعله های ریزو تشخیص بده
به ذهنم زد با پردازش تصویر بشه این کار رو کرد....
تا اتصال و انتقال تصویر دوربین به محیط سی شارپ اوکیه
ولی برای بعدش ایده خاصی توذهنم نیست و اینکه خیلی با تصویر کار نکردم تا حالا
ایده کلی که تو ذهن خودمه اینه که یه اتاقک تاریک که شیر متصل به گاز تو اون قرارداده یه شعله برای چند ثانبه کل شیرو میپوشونه و بعد خاموش میشه حالا دوربین فعال میشه اکه تو تصویر دوربین نوری دید(نور شعله احتمالی از نشتی) یه عکس بگیره
یا اینکه محیط اتاق از رنگ ایزوله باشه یعنی هیچ رنگی تو محیط نباشه و کل اتاقک سیاه باشه رنگ شیرم که یه رنگ خاصه حالا بعد از روش شدن دوربین در صورتی که رنگی خارج از طیف رنگ مشکی ورنگ خود شیر تو تصویر بود از تصویر یه عکس بگیره
حالا نمیدونم اگه دوستان ایده ای به ذهنشون میرسه یه کدی میتونن در اختیار بزارن ممنونشون میشم

باید از یادگیری ماشین و بینایی ماشین استفاده کنید ! که کتابخانه هایی مثل opencv هم خیلی خوب می تونند این کار را انجام دهند منتهی در صورتی که تصویر را باینری کنید تنها دوکانال خواهید داشت که یا کانال مشکی هستند ویا کانال سفید بعد همونطور که دربالا هم اشاره شد می تونید با تکنیک های لبه یابی و فیلتر کردن پیکسل ها نقطه موردنظر خودتون را تشخیص بدید و مطمنا این پیسکل های مرجع همیشه در یک ناحیه نخواهند بود اینجاست که یادگیری ماشین به کمکتون میاد می تونید در مدت زمان کوتاهی (بستگی به شرایط تست و حجم تست شما داره) این pattern ها را تشخیص بدید و دریک بانک ذخیره کنید و بدین ترتیب هربار که تصویر جدیدی دریافت میکنید ماشین داده های خودش را با اون همگام میکنه.
البته من این کار را تو سی شارپ نکردم ولی قاعدتا نباید مشکلی باشه البته اگر از ++C استفاده کنید و CUDA پردازش ها را تو gpu انجام بدید سرعت و دقت خوبی هم نصیبتون خواهد شد.
این لینک هم بد نیست برای شروع...
https://www.codeproject.com/Articles/257502/Creating-Your-First-EMGU-Image-Processing-Project