دسترسی سریعدسترسی سریع
  • ۰۳۱-۹۱۰۰۱۸۸۱
  • درخواست دمو
بهسان اندیش
  • صفحه اصلی
  • محصولات
    • نرم افزار پلاک خوان
      • نرم افزار ثبت تردد جاده ای
      • نرم افزار مدیریت پارکینگ
      • نرم افزار تعمیرگاه ، کارواش و تعویض روغن
    • نرم افزار باسکول
    • راهکارهای سازمانی
      • نرم افزار انبار و حسابداری
    • محصولات جانبی
      • دوربین پلاک خوان
      • ماژول رله کنترل راهبند
  • نمونه کار ها
    • سامانه جامع پلاکخوان خودرو
    • سامانه جامع مدیریت باسکول
    • سامانه قرائت فرم های چند گزینه ای
  • وبلاگ
  • ارتباط با ما
    • تماس با ما
    • درباره ما
    • دعوت به همکاری
  • جستجو
  • منو

نوشته‌ها

مقاله بررسی سامانه تشخیص خودکار پلاک خودرو

تشخيص پلاک خودرو

بررسی سامانه های تشخیص خودکار پلاک خودرو

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

 

نویسنده: آقایان علی اوحدی و محسن امیدوار

تعداد صفحات : ۴۲

کلیمه عبور فایل : behsanandish.com

دانلود : بررسی سامانه های تشخیص خودکار پلاک

۲۰ بهمن ۱۳۹۸/0 نظرها/توسط محمد مهدی ابراهیمی
http://behsanandish.com/wp-content/uploads/note.jpg 256 256 محمد مهدی ابراهیمی https://behsanandish.com/wp-content/uploads/logo-farsi-englisi-300x195-1.png محمد مهدی ابراهیمی2020-02-09 10:00:472021-01-05 00:13:52مقاله بررسی سامانه تشخیص خودکار پلاک خودرو

شناخت حروف توسط شبکه عصبی

پروژه ها و سورس کدهای پردازش تصویر و بینایی ماشین, پروژه ها و سورس کدهای هوش مصنوعی, تشخیص نوری کاراکتر و تشخیص دست خط

شناسایی حروف توسط شبکه های عصبی

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

سوال : به نظر میرسه باید توی مثال هامون به کامپیوتر بگیم مثلا این A هست و این B هست!
جواب : اون هم نوعی یادگیری هست که بهش اصطلاحا Supervised می گن. اما توی این مثال حالت جالب تر یعنی Unsupervised رو می خوایم بررسی کنیم. به این صورت که فقط به کامپیوتر می گیم ۳ دسته وجود داره و براش چندین مثال می زنیم و خودش مثال ها رو توی ۳ دسته قرار می ده! در نهایت ما مثلا می تونیم بگیم همه ی مثال هایی که در دسته ی دوم قرار گرفتن A هستند.
شاید جالب باشه بدونید گوگل هم برای دسته بندی اطلاعات از همچین روشی استفاده می کنه! البته کمی پیشرفته تر. مثلا ۱۰۰ متن اقتصادی و ۱۰۰ متن ورزشی به کامپیوتر میده و از کامپیوتر می خواد اونها رو به ۲ بخش تقسیم بندی بکنه! ورودی لغت های اون متن ها هستند. “

ابزار مورد نیاز
برای این که شروع کنیم به چند مورد نیاز داریم:

  1. در مورد هوش مصنوعی و شبکه های عصبی یکم اطلاعات داشته باشید.
  2. برنامه ای برای تولید الگو که ورودی شبکه ی عصبی ما خواهد بود. این برنامه رو میتونید از اینجا تهیه کنید.
  3. نرم افزار JOONE Editor. عبارت JOONE مخفف Java Object Oriented Neural Engine هست. که یک ابزار قدرت مند برای بوجود آوردن و آموزش انواع شبکه های عصبی در Java هست. توی این آموزش ما از ویرایشگر این ابزار استفاده می کنیم که محیطی گرافیکی برای تولید شبکه های عصبی داره و کار با اون بسیار ساده هست. این ابزار از اینجا قابل دریافت هست. بدیهیه که برای نصب این ابزار ابتدا باید جاوا روی کامپیوتر شما نصب باشه.
  4. کمی پشتکار و حوصله.

لینک جایگزین برای دانلود JOONE Editor:
https://sourceforge.net/projects/joone/files/

حالا می خوایم یک سری الگو تولید کنیم. الگو همون مثال هایی هست که گفتیم برای کامپیوتر می زنیم تا بتونه یاد بگیره.
برای این کار از برنامه ای که در شماره ی ۲ ابزارها معرفی کردم استفاده می کنیم. این برنامه خیلی ساده کار می کنه و فقط الگو ها رو از حالت تصویری به ۰ و ۱ تبدیل می کنه.
روش کار به این صورت هست که اول تصویر رو به یک ماتریس ۸ در ۸ تقسیم می کنه. یعنی ۶۴ قسمت. وقتی دکمه ی سمت چپ ماوس پایینه در صورتی که ماوس از هر کدوم از اون ۶۴ بخش رد بشه اون بخش رو داخل ماتریس علامت گذاری می کنه (مقدار اون قسمت رو True می کنه). وقتی دکمه ی Learn زده می شه برنامه مقدار تمام قسمت ها رو از بالا به پایین داخل یک فایل ذخیره می کنه. مقدار هر قسمت می تونه ۰ یا False و ۱ یا True باشه. ”
در صورتی که سورس این برنامرو خواستید کافیه توی بخش نظرات بگید تا براتون میل کنم.
کار با این برنامه خیلی آسون هست همونطور که توی شکل مشخصه.

کافیه الگویی که دوست دارید رو داخل فضای سفید بکشید و دکمه ی Learn رو بزنید. Textbox پایینی برای تغییر دادن آدرس فایلی هست که اطلاعات توی اون ذخیره میشه. و Textbox بالایی برای اینه که بگید این الگو چه حرفی هست که توی این مطلب نیازی به پر کردن اون نیست چون ما بحثمون یادگیری Unsupervised هست. توی مطالب بعدی برای یادگیری Supervised به این فیلد نیاز خواهیم داشت.
خوب من برای اینکه مثال پیچیده نشه ۳ حرف رو می خوام به کامپیوتر یاد بدم. A و C و Z!
برای این کار برای هر کدوم از حروف چهار مثال وارد می کنم و دکمه ی Learn رو می زنم. توی شکل زیر می تونید هر ۱۲ الگو رو ببینید.

فایل خروجی مربوط به این الگوهای مثال از اینجا قابل دریافت هست.همونطور که می بینید هر ردیف به نظر من و شما عین هم هستند. اما اگر کمی بیشتر دقت کنیم می بینیم جای مربع های مشکی با هم فرق دارن. به نظر شما کامپیوتر هم خواهد فهمید هر ردیف نشاندهنده ی یک حرف مجزا هست؟
تشکیل شبکه ی عصبیخوب! حالا می خواهیم ساختار شبکه ی عصبی رو طراحی کنیم. برای این کار از JOONE Editor کمک می گیریم.
صفحه ی اول این نرم افزار به این شکل هست:

توی این مثال ما از یک لایه ی ورودی خطی ۶۴ نورونی استفاده می کنیم که هر نورون یک قسمت از ماتریسی که در بخش قبل گفتیم رو به عنوان ورودی می گیره. به عنوان خروجی هم از یک لایه ی ۳ نورونی WinnerTakeAll استفاده می کنیم. در این نوع خروجی یکی از نورون ها ۱ و بقیه ۰ خواهند بود که برای تقسیم بندی بسیار مناسب هست.

برای شروع ابتدا یک لایه ی FileInput ایجاد می کنیم. توسط این ابزار می تونیم یک فایل رو به عنوان ورودی به شبکه بدیم.
روی FileInput کلیک راست کرده و در Properties اون فایل درست شده در مرحله ی قبلی رو به عنوان fileName انتخاب می کنیم و به عنوان Advanced Column Selector مقدار ۱-۶۴ رو وارد می کنیم تا برنامه متوجه بشه باید از ستون های ۱ تا ۶۴ به عنوان ورودی استفاده کنه.

ایجاد یک لایه ی خطی:

مرحله ی بعدی ایجاد یک Linear Layer یا لایه ی خطی هست. بعد از ایجاد این لایه Properties اون باید به شکل زیر باشه:

همونطور که می بینید تعداد ردیف ها ۶۴ مقداردهی شده که دلیلش این هست که ۶۴ ورودی داریم.
حالا با انتخاب FileInput و کشیدن نقطه ی آبی رنگ سمت راست اون روی Linear Layer خروجی FileInput یعنی اطلاعات فایل رو به عنوان ورودی Linear Layer انتخاب می کنیم.
تا این لحظه ما یک لایه ی ۶۴ نورونه داریم که ورودی اون مقادیر مثال های تولید شده در مرحله ی قبل هست.

ایجاد لایه ی WinnerTakeAll :

خوب توی این مرحله لایه ی خروجی که یک لایه ی WinnerTakeAll هست رو تولید می کنیم. Properties این لایه باید به شکل زیر تغییر پیدا کنه تا اطمینان پیدا کنیم الگوها به سه دسته تقسیم میشن:

حالا باید بین لایه ی خطی و لایه ی WinnerTakeAll ارتباط برقرار کنیم. برای این کار باید از Kohonen Synapse استفاده کنیم و Full Synapse جواب نخواهد داد. پس روی دکمه ی Kohonen Synapse کلیک کرده و بین لایه ی خطی و لایه ی WinnerTakeAll ارتباط ایجاد می کنیم.
در آموزش های بعدی فرق انواع سیناپس ها رو بررسی خواهیم کرد.آموزش شبکه

تا این لحظه شبکه باید به این شکل باشه. حالا می تونیم آموزش شبکرو شروع کنیم. برای این کار در منوی Tools بخش Control Panel رو انتخاب می کنیم. و در صفحه ی جدید learningRating و epochs و training pattern و learning رو به شکل زیر تغییر می دیم.

epochs تعداد دفعاتی که مرحله ی آموزش تکرار میشرو تعیین می کنه.
learningRate ضریبی هست که در یادگیری از اون استفاده می شه. بزرگ بودن اون باعث میشه میزان تغییر وزن نورون ها در هر مرحله بیشتر بشه و سرعت رسیدن به حالت مطلوب رو زیاد می کنه اما اگر مقدار اون خیلی زیاد شه شبکه واگرا خواهد شد.
training patterns هم تعداد الگو هایی که برای آموزش استفاده می شن رو نشون می ده که در این مثال ۱۲ عدد بود.
بعد از اینکه تمام تغییرات رو ایجاد کردیم دکمه ی Run رو می زنیم و منتظر می شیم تا ۱۰۰۰۰ بار عملیات یادگیری انجام بشه.

تبریک می گم! شما الان به کامپیوتر سه حرف A و C و Z رو یاد دادید!
اما خوب حالا باید ببینید کامپیوتر واقعا یاد گرفته یا نه.
برای این کار از یک لایه ی FileOutput استفاده می کنیم تا خروجی شبکرو داخل یک فایل ذخیره کنیم.
Properties لایه ی FileOutput باید بصورت زیر باشه:

همونطور که می بینید به عنوان fileName مقدار c:\output.txt رو دادیم. یعنی خروجی شبکه در این فایل ذخیره میشه.
حالا کافیه لایه ی WinnerTakeAll رو به لایه ی FileOutput متصل کنیم.
بعد از متصل کردن این دو لایه شکل کلی باید بصورت زیر باشه:

برای اینکه فایل خروجی ساخته بشه باید یک بار این شبکرو اجرا کنیم. برای این کار مجددا در منوی Tools بخش Control Panel رو انتخاب می کنیم و در اون learning رو False و epochs رو ۱ می کنیم تا شبکه فقط یک بار اجرا شه. پس از تغییرات این صفحه باید به شکل زیر باشه:

حالا با توجه به اینکه من اول چهار مثال A رو وارد کردم و بعد به ترتیب چهار مثال C و چهار مثال Z رو ببینیم خروجی این شبکه به چه شکل شده.
باور کردنی نیست! خروجی به این شکل در اومده:

۱٫۰;۰٫۰;۰٫۰
۱٫۰;۰٫۰;۰٫۰
۱٫۰;۰٫۰;۰٫۰
۱٫۰;۰٫۰;۰٫۰
۰٫۰;۱٫۰;۰٫۰
۰٫۰;۱٫۰;۰٫۰
۰٫۰;۱٫۰;۰٫۰
۰٫۰;۱٫۰;۰٫۰
۰٫۰;۰٫۰;۱٫۰
۰٫۰;۰٫۰;۱٫۰
۰٫۰;۰٫۰;۱٫۰
۰٫۰;۰٫۰;۱٫۰

همونطور که می بینید ۴ خط اول که مربوط به A هستن ستون اولشون ۱ هست و در چهار خط دوم ستون دوم و در چهار خط سوم ستون سوم!
این یعنی کامپیوتر بدون اینکه کسی به اون بگه کدوم مثال ها کدوم حرف هست خودش فهمیده و اون ها رو دسته بندی کرده.
سوال :  ممکنه چون پشت هم دادید مثال هر حرف رو اینطوری نشده؟
جواب : نه! کامپیوتر که نمی دونسته من می خوام مثال های هر حرف رو پشت سر هم بدم! من برای راحتی خودم این کار رو کردم. شما می تونی ورودی هاتو غیر مرتب بدی!
سوال : دلیل خاصی داره که در A ستون اول ۱ هست و …
جواب : نه! ممکن بود برای A ستون دوم ۱ بشه و یا هر حالت دیگه. شما اگر امتحان کنید ممکنه تفاوت پیدا کنه. اما مهم اینه در تمام A ها یک ستون خاص مقدارش ۱ و بقیه ی ستون ها مقدارشون صفر می شه. پس یعنی کامپیوتر تونسته به خوبی تقسیم بندی کنه.

حالا می خوایم شبکرو با سه مثال جدید تست کنیم که در مثال های آموزشی نبوده! برای این کار من با استفاده از برنامه ی تولید الگو ۳ مثال جدید درست می کنم و به عنوان فایل ورودی در شبکه فایل جدید رو انتخاب می کنم.
توی شکل زیر سه مثال جدید رو می تونید ببینید:

برای جذابیت علاوه بر این سه مثال ۲ مثال دیگه هم که حروف خاصی نیستند گذاشتم!

فایل خروجی این مثال ها از اینجا قابل دریافت هست.

خوب حالا بگذارید ببینیم کامپیوتر چه جوابی می ده. با توجه به اینکه اول مثال C بعد مثال Z و بعد مثال A رو وارد کردم. دو مثال بعدی هم به ترتیب مثال بد خط سمت چپ و مثال بد خط سمت راست هستند. و اما جواب:

۰٫۰;۱٫۰;۰٫۰
۰٫۰;۰٫۰;۱٫۰
۱٫۰;۰٫۰;۰٫۰
۰٫۰;۰٫۰;۱٫۰
۰٫۰;۱٫۰;۰٫۰

کامپیوتر سه مورد اول رو به خوبی C و Z و A تشخیص داده. و دو مورد بد خط هم به ترتیب از چپ به راست Z و C تشخیص داده!
حتی برای انسان هم سخته فهمیدن اینکه مورد های چهارم و پنجم چی هستند اما اگر خوب دقت کنید می بینید به مواردی که کامپیوتر خروجی داده نزدیک تر هستند.
کامپیوتر شعور نداره! اما ما سعی کردیم طریقه ی عملکرد مغز رو به صورت خیلی ابتدایی و به ساده ترین نحو توش شبیه سازی کنیم! ”
تو  این مطلب دیدیم که کامپیوتر تونست بدون اینکه ما براش مثال هایی بزنیم و بگیم هر کدوم چه حرفی هستند و فقط با دادن تعداد دسته ها، مثال ها رو به سه دسته همونطوری که انسان ها تقسیم می کنند تقسیم کنه. همونطور که گفتیم به این نوع دسته بندی، دسته بندی Unsupervised میگن.
منبع

۱۹ بهمن ۱۳۹۸/1 دیدگاه/توسط م. دلیری
http://behsanandish.com/wp-content/uploads/source-1.jpg 256 256 م. دلیری https://behsanandish.com/wp-content/uploads/logo-farsi-englisi-300x195-1.png م. دلیری2020-02-08 10:00:492021-03-30 15:59:13شناخت حروف توسط شبکه عصبی

حذف نویز تصاویر با شبکه های عصبی و فیلتر میانی قسمت ۱

آموزش عمومی پردازش تصویر و بینایی ماشین

ارائه الگوریتمی جدید برای حذف نویز از تصاویر دیجیتالی با استفاده از شبکه های عصبی و فیلتر میانی:

مقدمه

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

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

پردازش تصویر

پردازش تصویر شاخه ای از علم رایانه است که هدف آن پردازش تصاویر برداشته شده توسط دوربین دیجیتال و یا تصاویر اسکن شده توسط اسکنر است. پردازش تصویر از دو جنبه به بهبود اطلاعات بصری برای تفسیر بصری توسط انسان و دیگری ارائه یک تصویر با جزئیات مناسب و کارآمد برای تعبیر توسط ماشین مورد توجه است. (McAndrew, 2004)

سیستمهای پردازش تصویر را می توان در سه سطح پردازشی دسته بندی کرد:

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

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

–         سطح بالا: تحلیل و تفسیر محتوایی یک صحنه که اغلب از الگوریتم های یادگیری ماشین در این سطح استفاده می شود.

هر سیستم پردازش تصویر معمولا بر حسب نوع کاربرد و هدف نهایی پردازش شامل بخش های مختلفی است. در گام اول یک تصویر توسط یکی از ابزار های تصویر برداری همچون دوربین دیجیتال یا اسکنر بدست می آید. کیفیت تصویر خروجی بلوک تصویر برداری به شدت بر روی کل سیستم تاثیر گذار است. در گام بعد، پیش پردازشی بر روی تصویر ورودی انجام می شود. هدف این پیش پردازش بهبود ظاهری تصویر، بالا بردن کنتراست، حذف نویز، تصحیح درخشندگی، تمیز کردن تصویر یا از بین بردن تاری ناشی از قرار گرفتن سوژه خارج از فاصله کانونی است. در گام بعدی تصویر بر مبنای معیار های مختلفی از جمله ویژگی های بافتی، مولفه های هم بندی، اشکال هندسی و موارد دیگر بخش بندی می شود. و در نهایت در گام نهایی هر یک از بخش ها بر مبنای همین ویژگی ها مورد تجزیه و تحلیل قرار می گیرد و به هر ناحیه یک برچسب نسبت داده می شود. در تمام این مراحل از یک پایگاه دانش بسته به نوع سیستم استفاده می شود. پایگاه دانش علاوه بر محیا کردن دانش لازم برای هر واحد به تعامل بین بخش ها نیز نظارت دارد.(van bemmel and musen, 1997)

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

–         کاربرد های پزشکی

–         تفسیر خود کار تصاویر پزشکی سونوگرافی، رادیولوژی و مامو گرافی

–         تحلیل تصاویر سلولی از گونه های کروموزوم

–         کشاورزی

–         پردازش تصاویر ماهواره های جهت تعیین محل مناسب برای کشت محصول

–         کنترل کیفیت خود کار محصولات کشاورزی و دسته بندی آن ها در دسته های مختلف

–         صنعت

–         خودکار سازی خط تولید در کارخانه ها

–         تحلیل وضعیت ترافیکی جاده ها

–         دسته بندی محصولات کارخانه ای

–         قضایی

–         تحلیل و بررسی اثر انگشت

–         تعیین هویت شخص از روی نشانه های بیومتریک

–         تعیین هویت تصاویر(جعلی یا واقعی بودن آن ها)

انواع تصاویر دیجیتال

تصویر در واقع یک تابع دو بعدب مانند (F(x,y است که در آن آرگومان های ورودی x,y مختصات مکانی در هر نقطه به صورت شماره سطر و شماره ستون است. و مقدار تابع شدت روشنایی آن نقطه از تصویر است. از آن جا که مقادیر (F(x,y و x,y مقادیر گسسته اند، تصویر را یک تصویر دیجیتال می نامند. یک تصویر دیجیتال از تعدادی از عناصر با مقدار و موقعیت مشخص تشکیل شده است که به هر یک از این عناصر پیکسل گفته می شود. برای نمایش یک تصویر با ابعاد M*N از یک ماتریس دو بعدی با M  سطر و N ستون استفاده می شود. مقدار هر یک از این عناصر این آرایه شدت روشنایی آن پیکسل را نشان می دهد. بسته به نوع داده ای این آرایه دو بعدی، انواع مختلف از تصاویر بوجود می آیند که در ادامه هر یک از انواع تصاویر به طور خلاصه بررسی می شوند.

تصاویر دودویی

در تصاویر دودویی هر کدام از پیکسل ها می توانند یکی از دو مقدار روشن ۱ و خاموش ۰ را داشته باشند. لذا برای نگهداری هر پیکسل تنها به یک بیت دودویی نیاز است. یکی از اصلی ترین مزایای این گونه تصاویر حجم کم آن ها است و معمولا برای نگهداری نوشته های چاپی و یا دست نویس، اثر انگشت و نقشه های مهندسی از آن استفاده می شود.(Gonzalez and woods, 2005)

تصاویر شدت روشنایی

تصاویر شدت با نام تصاویر خاکستری نیز شناخته می شوند. در این تصاویر مقدار هر یک ار عناصر آرایه دوبعدی تصویر یک عدد ۸ بیتی است که می تواند نقداری بین ۰ (معادل رنگ مشکی) و ۲۵۵ (معادل رنگ سفید) را در خود ذخیره کند. دامنه تغییرات عناصر در این گونه تصاویر، اعداد صحیح بین ۰ تا ۲۵۵ است.

تصاویر رنگی

در تصاویر رنگی هر پیکسل دارای یک رنگ مشخص است که خود ترکیبی از سه مولفه رنگی اصلی قرمز، سبز و آبی است و لذا برای ذخیره کردن یک تصویر رنگی با ابعاد M*N نیاز به سه ماتریس با ابعاد M*N است که هر کدام شدت روشنایی هر کدام از مولفه ها را در خود ذخیره می کنند. به عنوان مثال اگر رنگ یک پیکسل قرمز خالص باشد لایه های رنگی آن به صورت [۰و۰و۲۵۵] می باشند. برای نمایش سفید خالص هر سه مولفه رنگی برابر ۲۵۵ و برای مشکی خالص هر سه مولفه برابر صفر است. تصاویر RGB دارای سه لایه رنگی ۸ بیتی هستند و لذا بانام تصاویر ۲۴ بیتی نیز شناخته می شوند. این تصاویر سه برابر تصاویر سطح خاکستری هم اندازه خود فضا اشغال می کنند. (Gonzalez and woods, 2005)

تصاویر شاخص

یکی از مهم ترین معایب تصاویر ۲۴ بیتی عدم سازگاری با سخت افزار های قدیمی بود که قادر به نمایش هم زمان ۱۶ میلیون رنگ نبودند. علاوه بر این به حجم بالای ذخیره سازی نیاز داشتند. راه اصلی که همزمان دو مشکل را حل می کند استفاده از یک بازنمایی شاخص دار است که در آن از یک آرایه دوبعدی هم اندازه با تصویر استفاده می شود. لذا برای نمایش هر تصویر شاخص دار از یک آرایه دو بعدی ۸ بیتی تصویر و یک نقشه رنگی ۲۵۶ مدخلی استفاده می شود.

الگوریتم مبتنی بر تصمیم گیری

در (srinirasan and Ebenezer 2007) روشی با نام الگوریتم مبتنی بر تصمصم گیری ارائه شده است. در صورتی که مقدار هر پیکسل بین مینیمم و ماکزیمم مقدار درون پنجره فیلتر قرار گیرد، پیکسل سالم معرفی شده و بدون تغییر باقی می ماند. اگر پیکسل نویزی باشد و مقدار میانه پنجره فیلتر در بازه مینیمم و ماکزیمم پنجره باشد مقدار میانه جایگزین پیکسل خواهد شد و در غیر این صورت مقدار پیکسل با پیکسل همسایه اش جایگزین می شود. الگوریتم DBA در چگالی نویز بالا نیز کارامد است.

متدهای مبتنی بر محاسبات نرم

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

در (zvonarev and khryashchev 2005) از ترکیب فیلتر میانه و شبکه عصبی برای بهبود عملکرد حذف نویز استفاده شده است. سیستم پیشنهاد شده، برای جدا سازی پیکسل نویزی از پیکسل سالم از الگوریتم دو مرحله ای استفاده می کند. در تشخیص اولیه، اگر مقدار هر پیکسل درون بازه [min,max] باشد پیکسل سالم و در غیر این صورت نویز تشخیص داده می شود. پیکسل های کاندید برای نویزی بودن به شبکه عصبی فرستاده می شود تا طبقه بندی انجام شود. از ویژگی های محلی آماری برای ورودی شبکه استفاده شده است. مفهوم منطق فازی در سال ۱۹۶۵  توسط آقای زاده به عنوان یک ابزار ریاضی برای مدل سازی عضویت نسبی در مجموعه های معرفی شد. بر خلاف تکنیک های کلاسیک مجموعه ای که تنها عضویت قطعی در آن ها وجود دارد، در منطق فازی امکان تعریف عضویت نسبی وجود دارد.

در منبع (yuksel and besdok 2004)  از یک سیستم فازی عصبی تطبیقی برای آشکار سازی پیکسل نویزی استفاده شده است که شامل دو زیر آشکار گر مبتنی بر شبکه فازی عصبی با منطق فازی نوع سوگنو است که هر کدام از سه ورودی استفاده می کنند. این سه ورودی پیکسل های عمودی و افقی در یک پنجره ۳*۳ هستند. هر زیر آشکارگر برای هر ورودی سه تابع و سه تابع زنگوله ای برای هر ورودی، ۲۷ قاعده برای تصمیم گیری است.که وزن ها بر اساس شدت آتش هر قاعده تعیین می شود. در نهایت میانگین خروجی دو زیر آشکارگر محاسبه می شود و از یک آستانه نهایی برای تشخیص پیکسل نویزی استفاده می شود.

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

در قسمت های قبل مفاهیم پایه و انواع تصاویر و همچنین مدل های مختلف نویز بررسی شد و تاثیر هر کدام از انواع نویز بر روی تصاویر سطح خاکستری نشان داده شد. هر کدام از انواع نویز تاثیر متفاوتی بر روی کیفیت تصویر اصلی می گذارند و بر همین اساس از رویکرد های متفائتی برای کاهش اثر هر کدام از انواع نویز استفاده می شود. متد های فوق و پایه ای در حذف نویز ضربه در این قسمت مرور شد. در ادامه متدی برای کاهش اثر نویز ضربه بر روی تصاویر دیجیتال بررسی می شود.

 

۹ آذر ۱۳۹۸/0 نظرها/توسط م. دلیری
http://behsanandish.com/wp-content/uploads/download-2.jpg 250 340 م. دلیری https://behsanandish.com/wp-content/uploads/logo-farsi-englisi-300x195-1.png م. دلیری2019-11-30 10:00:142021-03-30 22:11:33حذف نویز تصاویر با شبکه های عصبی و فیلتر میانی قسمت 1

تشخیص و شناسایی اثر انگشت

تشخیص هویت زیست سنجی

تشخیص اثر انگشت

 اثر انگشت در انسان، اثری از سایش شیارهای پایانهٔ انگشت است. با توجه به اینکه هیچ دو انسانی اثر انگشت مشابه ندارند، می‌توان از این اثر برای شناسایی افراد بهره‌برد.

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

 

دستگاه اثر انگشت

امروزه در بسیاری از کشورها برای خواندن و ثبت اثر انگشت، از دستگاه‌های پیشرفته استفاده می‌شود.

این روش در تعیین هویت از دقت ۱۰۰٪ برخوردار بوده و حتی در دوقلوهای یکسان (تک‌تخمکی) نیز اثر انگشت متفاوت است. به‌گونه‌ای که امکان شباهت اثر انگشت دو نفر انسان، یک شصت و چهار میلیاردم می‌باشد.

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

در انگشت نگاری مشخصات نقاطی که در آنها خطوط ریز انگشت با هم تلاقی داشته‌اند، انشعاب داشته‌اند یا پایان یافته‌اند بررسی می‌شود. اثر انگشتان یک دست یا دو دست هیچ شباهت یا رابطه‌ای با هم ندارند به همین دلیل در تشخیص هویت و انگشت نگاری از همه انگشتان دو دست نمونه برداری می‌شود.

تاریخچه

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

۸۵۰ سال قبل از میلاد یک بازرگان عرب با نام ابو زید حسن شاهد رسمیت یافتن اسناد وامها در چین بوده‌است. تا سال ۷۰۲ قبل از میلاد، ژاپنی‌ها نیز از روش چینی‌ها برای رسمیت بخشیدن به اسناد استفاده می‌کردند. گرچه احتمالاً مردم در دوران باستان نمییدانستند که اثر انگشت می‌تواند افراد را به صورت منحصربه‌فرد شناسایی نماید، اما در زمان حمورابی، کسانی که دستگیر می‌شدند انگشت نگاری می‌شدند. رشید الدین همدانی، طبیب برجسته ایرانی در کتاب جامع التواریخ به رسم چینی‌ها در شناسایی افراد از طریق اثر انگشت اشاره کرده و توضیح داده‌است که «شواهد و تجربیات نشان می‌دهد که هیچ دو نفری اثر انگشت کاملاً یکسان ندارند». در این زمان در ایران نیز از اثر انگشت شصت برای مهر نمودن اسناد استفاده می‌کردند. همچنین بر دیوار مقبره‌های باستانی مصر و یونان نیز آثار انگشت یافت شده‌است.

 

اثر انگشت سبابه

 

در اوایل قرن بیستم استفاده از تکنیکهای تشخیص اثر انگشت برای تحقیقات جنایی در غرب با الهام از تمدن شرق متداول گشت. در آن زمان لازم بود تصویر هر ۱۰ انگشت با جوهر خاصی ثبت گردد. اما در اواخر دهه ۱۹۶۰، ابداع سیستمهای ثبت اثر انگشت زنده (به صورت الکترونیکی) Live-Scan Systems انقلابی در صنعت تشخیص اثر انگشت به وجود آورد. به سرعت پایگاه‌های داده از اثر انگشت افراد ایجاد شد و محققان هر روز فناوری تازه‌ای معرفی می‌کردند که با دقت و سرعت بیشتری فرد مور نظر را از بین انبوهی از افراد شناسایی می‌کرد.

با پیشرفت تکنولوژی، تبهکاران نیز دست به کار شده و روشهای پیچیده‌ای از تقلب Fake Fingerprint را ابداع نمودند. ساده‌ترین روش تقلب، ثبت اثر انگشت فرد بر روی کاغذ (۲ بعدی) است. فناوری با ترکیب روشهای امنیتی (الکترواستاتیک، ترمودینامیک و…) مختلف به جنگ تقلب در سیستمهای امنیتی رفته‌است.

امروزه تشخیص اثر انگشت به عنوان دقیقترین و سریعترین روش بیومتریک در جهان نظیر کاربردهای امنیتی در سیستمهای کنترل دسترسی و کاربردهای تجاری نظیر ساعتهای حضور و غیاب کاربرد بسیاری دارد.

تحقیقات علمی

زمانی که برای اولین بار انگشت‌نگاری برای تشخیص هویت به کار رفت، بعضی از وکلای دادگستری ایراد گرفتند که ممکن است آثار انگشتانی پیدا کرد که یکسان باشند ولی فرانسیس گالتون،انسان‌شناس معروف انگلیسی در جست و جوهای خود راجع به اثرانگشت و موضوع وراثتی بودن آن به این نتیجه رسید که نقوش سرانگشت توارثی نیست و در کتاب آثار انگشتان از طریق علوم ریاضی ثابت کرد که ممکن نیست بتوانید اثرات انگشت مشابه بیابید. پس از گالتون نیز دانشمند دیگری به نام فورژ و در سال ۱۷۹۲ مطالعه‌ای را روی خانواده‌هایی که ازدواج فامیلی در آنها رسم بود، آغاز کرد و تا سه نسل پیش رفت اما در نهایت به این نتیجه رسید که اثرات انگشت مشابه وجود ندارد.

کاربرد

گذرنامه بیومتریک اروپایی، اثرانگشت دیجیتال دارنده، ثبت‌شده در جلد پاسپورت.

طی سال‌های اخیر وبا توجه به ارزانی و دردسترس بودن وسایل و تجهیزات مربوط به خوانش و ثبت اثر انگشت، تقریباً در همه گروه‌های کاری ازآن استفاده می‌شود. از اثر انگشت برای تشخیص هویت افراد در موارد مختلف استفاده می‌شود و به عنوان مثال تشکیل پرونده‌های قضایی افراد یا دستگاه‌های حضور غیاب پرسنل یا ورود به سیستم بعضی از رایانه‌ها یا تلفن همراه از اثر انگشت برای تشخیص هویت یا صاحب دستگاه استفاده می‌شود.

از کاربردهای مهم انگشت‌نگاری، می‌توان به کنترل روند اقامتهای طولانی‌مدت در کشورهای دیگر، توسط اداره مهاجرت کشور میزبان اشاره نمود. برطبق قوانین مهاجرتی، هرگاه تبعه خارجی قصد اقامت بلندمدت را در کشوری میزبان داشته‌باشد، موظف به انگشت‌نگاری و ثبت اطلاعات فردی در سیستم رایانه‌ای است. هرچند جمهوری اسلامی ایران، این مورد را توهین به شهروندان خود می‌انگارد اما برطبق قوانین تازه بین‌المللی، برای سفر به برخی کشورها، انگشت‌نگاری یک امر بدیهی و طبیعی است. امروزه بسیاری کشورهای عضو پیمان کنترل مهاجرت غیرقانونی و نیز ضد تروریسم، برای متقاضیان گذرنامه در همان کشور مطبوع، اطلاعات فردی و اثر انگشت درون چیپ‌های درون جلد گذرنامه، ثبت و ذخیره شده تا مسافران در هنگام ورود به کشورهای مقصد، درگیر بروکراسی کنترل اثر انگشت نباشند.

منبع


كلمه بيومتريك از كلمه يونانی bios به معنای زندگی و كلمه metrikos به معنای اندازه گيری تشكيل شده است. همه ما می دانيم كه ما برای شناسايی همديگر از يك سری ويژگی هايی استفاده می كنيم كه برای هر شخص به طور انحصاری است و از شخصی به شخص ديگر فرق می كند كه از آن جمله می توان به صورت و گفتار و طرز راه رفتن اشاره كرد. امروزه در زمينه های فراوانی ما به وسايلی نياز داريم كه هويت اشخاص را شناسایی كند و بر اساس ويژگيهای بدن اشخاص آن ها را بازشناسی كند و اين زمينه هر روز بيشتر و بيشتر رشد پيدا می كند و علاقه مندان فراوانی را پيدا كرده است. علاوه بر اين ها امروزه password و ID كارتهايی كه بكار برده می شوند دسترسی را محدود می كنند، اما اين روشها به راحتی می توانند شكسته شوند و لذا غير قابل اطمينان هستند. بيومتری را نمی توان امانت داد يا گرفت، نمی توان خريد يا فراموش كرد و جعل آن هم عملا غير ممكن است.

يك سيستم بيویمتری اساساً يك سيستم تشخيص الگو است كه يك شخص را بر اساس بردار ويژگی های خاص فيزيولوژيك خاص يا رفتاری كه دارد باز شناسی می كند. بردار ويژگی ها پس از استخراج معمولا در پايگاه داده ذخيره می گردد. يك سيستم بيومتری بر اساس ويژگی های فيزيولوژيك اصولا دارای ضريب اطمينان بالایی است. سيستم های بيومتری می توانند در دو مد تاييد و  شناسایی كار كنند. در حالی كه شناسايی شامل مقايسه اطلاعات كسب شده در قالب خاصی با تمام كاربران در پايگاه داده است، تاييد فقط شامل مقايسه با يك قالب خاص می شود كه ادعا شده است. بنابراين لازم است كه به اين دو مسئله به صورت جدا پرداخته شود.

يك سيستم بيومتری ساده دارای چهار بخش اساسی است :

۱) بلوك سنسور: كه كار دريافت اطلاعات بيومتری را بر عهده دارد.
۲) بلوك استخراج ويژگيها: كه اطلاعات گرفته شده را می گيرد و بردار ويژگی هاي آن را استخراج می كند.
۳) بلوك مقايسه: كه كار مقايسه بردار حاصل شده با قالبها را بر عهده دارد.
۴) بلوك تصميم: كه اين قسمت هويت را شنااسايي مي كند يا هويت را قبول كرده يا رد مي كند.

هر خصيصه اي از انسان مي تواند به عنوان يك ويژگي در بيو متري بكار برده شود به شرطي كه شروط زير ر ا بر آورده كند :
۱) عمومي بودن : هر شخصي آن خصيصه را داشته باشد.
۲) متفاوت بودن : در اشخاص ، متفاوت باشد و دو تا شبيه هم نباشد.
۳) دوام داشتن : در يك بازه زماني ثابت باشد.
۴) قابل بدست آوردن باشد.
در كاربردهاي زندگي روزمره سه فاكتور ديگر نيز بايد رعايت شود: كارايي (دقت، سرعت)، دسترسي (براي كاربران بي ضرر باشد) امنيت بالا.
در اين مقاله ما به معرفي تعدادي از عواملي كه دربيو متري مورد استفاده قرار مي گيرند مي پردازيم.

باز شناسي هويت از طريق اثر انگشت

اين روش قديمي ترين روش آزمايش تشخيص هويت از راه دور است. اگرچه قبلاً اثر انگشت تنها در زمينه جرم قابل بحث بود، تحقيقات در بسياري كشورها سطحي از پذيرش را نشان ميدهد كه به اين روش اجازه استفاده در برنامه هاي عمومي را مي دهد. سيستمها ميتوانند جزئياتي از اثر انگشت (نقاطي مانند تقاطعها يا كناره هاي برجستگيها) يا كل تصوير را بگيرند. الگوهاي مرجع كه براي حفظ اين جزئيات بكار ميرود در حدود ۱۰۰ بايت هستند كه در مقايسه با تصوير كاملي كه از اثر انگشت با حجم ۵۰۰ تا ۱۵۰۰ بايت ميباشد، بسيار كوچكتر هستند.

در برنامه هاي عمومي مشكلاتي در ثبات وجود دارد. بعضي كارگران و معتادان شديد به سيگار, اغلب انگشتاني دارند كه تحليل اثرانگشت آنان مشكل است. با اين وجود، طرحهاي بلند مدت و موفق زيادي در استفاده از اثر انگشت وجود داشته است. در حال حاضر اثر انگشت خوانهاي زيادي در دامنه وسيعي وجود دارند كه به همراه بعضي كارتخوانها استفاده ميشوند. اگرچه در حال حاضر قيمت آنها چندان پايين نيست اما ميزان عرضه آنان در فروشگاههاي كامپيوتر عادي باعث افت سريع قيمت آنان خواهد شد. به طور مثال شركت هواپيمايي آلماني لوفتانزا، آزمايش بليت هاي بيومتريك را آغاز كرده است. اين بليت ها با اطلاعات مربوط به اثر انگشت شصت مسافران رمزگذاري شده اند و انتظار ميرود سرعت كنترل را بدون پيچيدگي هاي امنيتي افزايش دهند.

نكته قابل توجه ديگر در سيستم هاي توليد توليد شده با استفاده از فناوري بيومتريك (اثر انگشت) قابل ملاحظه است، استقبال رو به گسترش مردم از خريد اين محصولات است. به طور مثال، شركت لنوو (Lenovo) با فروش بيش از يك ميليون كامپيوترهاي كيفي بيومتريكي كه اثر انگشت فرد صاحب آن را اسكن مي كند، به يكي از بزرگترين فروشندگان كامپيوترهاي بيومتريكي در جهان تبديل شده است.
در اين بخش سعي بر آن شده است كه اصول كلي، موانع و محدوديت هاي سيستمهاي تشخيص اثر انگشت بررسي شوند.

اصول كلي در سيستمهاي تشخيص اثر انگشت:

همانگونه كه اشاره شد، اثر انگشت يكي از روشهاي مطمئن براي شناسايي افراد مي باشد و در زمينه هايي نظير رسيدگي به جرم، سيستم هاي كنترل حوادث، كنترل مرزهاي ملي و … به كار مي رود. دليل اصلي انتخاب اثر انگشت براي شناسايي افراد اين است كه اثر انگشت هر فرد منحصر به فرد بوده و بعضي از ويژگي هاي آن تا آخر عمر ثابت باقي مي ماند و از همين ويژگي ها در تطبيق اثر انگشت استفاده مي شود. براي تطبيق دستي اثر انگشت روشهاي استانداردي وجود دارد، اما روش دستي تطبيق اثر انگشت كاري مشكل و بسيار وقت گير بوده و كارايي لازم را ندارد.البته از آنجا كه بانكهاي اطلاعاتي داراي ميليونها اثر انگشت مي باشد، عملاً تطبيق دستي اثر انگشت امري محال مي شود.

به منظور اتوماتيك كردن تطبيق بايد روشي براي تصوير و يا كد كردن اثر انگشت تعريف گردد. اين بيان تصوير بايستي شرايط زير را داشته باشد:
۱) توانايي تمايز هر اثر انگشت در سطوح مختلف رزولوشن،
۲)  محاسبات ساده
۳)  قابليت بكارگيري در الگوريتم هاي تطبيق اتوماتيك،
۴)  پايداري و عدم تغيير با نويز و خرابي ها
۵) كارا بودن و نشان دادن تصاوير به صورت فشرده

اگر تصوير به صورت خام ذخيره شود، حافظه زيادي مورد نياز است و سيستم كارايي لازم را نخواهد داشت. در روشهاي ساختاري ويژگي ها از تصوير استخراج و تصوير با اين ويژگي ها شناخته شده و همچنين با استفاده از همين ويژگيها عمل تطبيق صورت مي گيرد.

اثر انگشت از برآمدگي ها و فرو رفتگي اي فلو مانندي تشكيل شده است كه بسته به وضعيت قرار گرفتن آنها ويژگي هاي مختلفي به وجود مي آيد. تا كنون ۱۸ ويژگي براي اثر انگشت شناخته شده است كه دو ويژگي مهم آن، انتهاي برآمدگي و دوشاخه شدن برآمدگي مي باشدكه اصطلاحاً به آنها مينوتيا مي گويند. در شكل زير اين دو ويژگي نشان داده شده است:

 

 

 

اطلاعات مينوتيا در مولفه هاي x , y و زاويه برآمدگي ها آنها قرار دارد. ساختار توپولوژيكي مينوتاي يك اثر انگشت منحصر به فرد بوده و با گذشت زمان تغيير نمي كند. در نتيجه مي توان تشخيص اثر انگشت را بر مبناي تطبيق ساختار توپولوژيكي مينوتيا استوار ساخت. در يك تصوير انگشت با كيفيت نسبتاً خوب در حدود ۷۰ تا ۸۰ مينوتا وجود دارد كه البته اين تعداد در تصويرهاي جزئي به حدود ۲۰ تا ۳۰ ويژگي كاهش مي يابد، اما باز هم بااين تعداد مي توان عمل تطبيق اثر انگشت را انجام داد.

اكثر سيستمهاي تشخيص اثر انگشت، ساختاري بر مبناي مينوتيا دارند. در اين سيستمها سه مرحله اساسي براي تشخيص وجود دارد كه عبارتند از:
۱)  پيش پردازش
۲) استخراج مينوتيا
۳) تطبيق مينوتيا
مرحله اول براي افزايش كيفيت تصوير انجام مي گيرد، مرحله دوم براي استخراج ويژگي هاي تصوير و مرحله آخر براي مقايسه مورد استفاده قرار مي گيرد.

در مورد تطبيق، روشهاي گوناگوني وجود دارد كه از جمله مي توان به موارد ذيل اشاره كرد:
۱)  تطبيق مجموعه نقاط
۲) تطبيق گراف
۳) همشكلي دو زير گراف
البته عمل تطبيق بنا به دلايل زير نياز به محاسبات پيچيده دارد:
۱) معمولاً كيفيت اثر انگشت پايين است.
۲) بانك اطلاعاتي اثر انگشت ها بزرگ است.
۳) تصوير هايي كه به صورت ساختاري آسيب ديده اند، به الگوريتم هاي نيرومندي جهت تطبيق نياز دارند.

در سيستمهاي تشخيص اثر انگشت موجود دربازار كه از اين دو ويژگي (انتهاي برآمدگي و دوشاخه شدن برآمدگي) استفاده مي شود، به علت بزرگ بودن بانك اطلاعاتي و نويز دار بودن تصاوير، يك تطبيق يك به يك عملاً مشكل بوده و از اين رو يكسري از تصوير هاي تطبيق يافته تهيه و سپس تطبيق نهايي توسط افراد متخصص انجام مي گيرد.

  استخراج ساير ويژگي ها:

علاوه بر ويژگي هاي بيان شده، در بسياري از سيستمهاي تشخيص اثر انگشت، از ويژگي هاي سطح بالا نيز استفاده مي شود. اين امر باعث افزايش صحت عمل تطبيق مي گردد. يكي از اين ويژگي هاي مهم كلاس الگوي اثر انگشت مي باشد.

اثر انگشت به پنج كلاس اصلي تقسيم مي شود كه عبارت است از:
۱) كمان
۲) كمان مايل
۳) حلقه چپ
۴) حلقه راست
۵) مارپيچ

در تصاوير نويز دار و جزئي ممكن است كلاس الگو نامشخص باشد، كه در اينصورت از يك ويژگي سطح بالاتري به نام چگالي برآمدگي ها به جاي كلاس الگو استفاده مي شود كه بيانگر تعداد برآمدگي ها در واحد طول تعريف مي شود. به منظور مستقل كردن چگالي برآمدي ها از جهت تصوير، تعداد برآمدگي ها بين دو نقطه منفرد محاسبه مي شود. نقاط منفرد در اثر انگشت هسته و دلتا مي باشند. هسته بالاترين نقطه در داخلي ترين برآمدگي و دلتا يك نقطه سه شاخه است كه سه برآمدگي از كنار آن عبور مي كند. در شكل زير اين نقاط نمايش داده شده است:

 

 

 

کد کردن اطلاعات

در ادامه به بررسي مختصري از مراحل كد كردن اطلاعات اثر انگشت مي پردازيم:

  ۱)  نحوه به دست آمدن تصوير اثر انگشت:

۱-۱) كاغذ و مركب : در سالهاي گذشته بيشتر از روش كاغذ و مركب استفاده مي شد به اين ترتيب كه در ابتدا اثر انگشت فرد با استفاده از مركب بروي كاغذ ثبت و سپس تصوير اثر انگشت اسكن شده و فايل تصويري آن آماده مي شد، كه اين روش اكنون به علت مشكلات خاص خود و البته پيشرفت تكنولوژي كم كم منسوخ مي شود. معمولا چون كيفيت تصوير به دست آمده پايين است با
استفاده از تكنيك هاي پردازش تصوير اين نقيصه تا حدي مرتفع مي گردد.

       ۱-۲)  روش اسكن مستقيم نوري:

روشهاي گوناگوني براي انجام اين نوع تصوير گيري وجود دارد. نمونه اي از آن در شكل زير آمده است:

 

 

۱-۳) با استفاده از سنسور LE

در اين روش از تكنولوژي نيمه هادي ها استفاده مي گردد. به اين ترتيب كه انگشت شخص بر روي سنسور LE كه از جنس نيمه هادي مي باشد، قرار گرفته و در نتيجه در محل هاي برآمدگي پوست انگشت كه در تماس با سنسور مي باشند، فوتون آزاد شده و به اين ترتيب اثر انگشت ثبت مي گردد.
امروزه اسكنر هايي كه براي ارتباط با كامپيوتر طراحي شده اند، به راحتي اطلاعات تصويراثر انگشت را تهيه و از طريق درگاه هاي كامپيوتر در اختيار نرم افزارهاي مربوطه قرار مي دهند.

نحوه استخراج ويژگي ها:

در اكثر سيستم ها از روشهاي ساختاري كه بر مبناي مينوتا هستند براي استخراج ويژگي ها استفاده مي شود. در اين سيستم ها در ابتداپيش پردازشهاي اوليه اي مانند يكنواخت كردن هيستوگرام، تشخيص برآمدگي ها و نازك كردن آنها روي تصوير اعمال ميگردد. سپس با استفاده از روشهاي زير به استخراج ويژگي ها و شناسايي اثر انگشت مبادرت مي ورزند:
۱) روش فازي
۲) روش شبكه هاي عصبي
۳) ساختن گراف مربوطه به هر تصوير با استفاده از ميدان جهت دار و الگوريتم راتا
پياده سازي اين روشها يا با استفاده از كامپيوتر انجام گرفته و يا از مدارات مجتمعي كه به همين منظور ساخته شده است، انجام مي گيرد.

منبع

 

۴ آبان ۱۳۹۸/0 نظرها/توسط م. دلیری
http://behsanandish.com/wp-content/uploads/220px-Fingerprint_scanner_identification.jpg 256 256 م. دلیری https://behsanandish.com/wp-content/uploads/logo-farsi-englisi-300x195-1.png م. دلیری2019-10-26 11:00:002021-03-30 16:51:09تشخیص و شناسایی اثر انگشت

الگوریتم کلونی زنبور عسل مصنوعی

آموزش های عمومی هوش مصنوعی

الگوریتم کلونی زنبور عسل مصنوعی Artificial Bee Colony (ABC) Algorithm

الگوریتم جستجوی جدیدی مبتنی بر جمعیت به نام الگوریتم زنبور عسل (BA) ارایه شده است . الگوریتم  کلونی زنبور عسل رفتار جست و جوی غذای گروه زنبورهای عسل را تقلید می کند . در مدل پایه ای آن الگوریتم نوعی از جستجوی همسایگی ترکیب شده با جستجوی تصادفی را انجام می دهد و می تواند برای هر دوی بهینه سازی ترکیبی یا بهینه سازی تابعی مورد استفاده قرار گیرد.

مقدمه

طبیعت الهام بخش محققان برای توسعه مدل هایی برای حل مسائل و مشکلات آنهاست. به عنوان مثال “بهینه سازی” زمینه ای است که بارها این مدل ها توسعه و به کار برده شده اند . الگوریتم ژنتیک انتخاب طبیعی و عملگرهای ژنتیک را شبیه سازی می کند ، الگوریتم بهینه سازی خرده گروه ها ، دسته های پرندگان و مدرسه ماهی ها را شبیه سازی می کند، سیستم حفاظتی مصنوعی توده های سلولی سیستم حفاظتی را شبیه سازی می کند ، الگوریتم بهینه سازی کلونی مورچه ها رفتار کاوشی مورچه ها را شبیه سازی می کند و الگوریتم کلونی زنبورهای مصنوعی رفتار کاوشی زنبورهای عسل را شبیه سازی می کند. اینها نمونه هایی بود از الگوریتم های بهینه سازی الهام شده از طبیعت . الگوریتم دیگری که رفتار کاوشی زنبورها را با یک مدل الگوریتمی متفاوت شبیه سازی می کند الگوریتم زنبور عسل BA است .
در این مقاله دو الگوریتم کلونی زنبورهای مصنوعی و الگوریتم زنبور عسل را معرفی می کنیم.

۱٫ الگوریتم کلونی زنبورهای مصنوعی

الگوریتم کلونی زنبورهای مصنوعی (ABC) توسط کارابوگا در سال ۲۰۰۵ برای بهینه سازی واقعی پارامترها ارایه شد، این الگوریتم یک الگوریتم بهینه سازی جدیدا معرفی شده است و رفتار کاوشی کلونی زنبورها را برای مسایل بهینه سازی بدون محدودیت شبیه سازی می کند. برای حل مسائل بهینه سازی با محدودیت یک روش اداره محدودیت با این الگوریتم ترکیب می شود.

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

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

۱- مقدار دهی اولیه به موقعیت های منابع غذایی
۲- هر زنبور کارگر یک منبع غذایی جدید در مکان منبع غذایی خود تولید می کند و منبع بهتر را استخراج می کند .
۳- هر زنبور دیده ور یک منبع را وابسته به کیفیت راه حلش انتخاب می کند و یک منبع غذایی جدید رادر مکان منبع غذایی انتخاب شده تولید می کند و منبع بهتر را استخراج می کند.
۴- تعیین منبعی که باید متروک شود و تخصیص زنبورهای کارگر آن به عنوان دیده ور برای جستجوی منابع غذایی جدید.
۵- بخاطر سپردن بهترین منبع غذایی پیدا شده تا کنون.
۶- تکرار مرحله های ۲ – ۵ تا زمانی که معیار توقف مقتضی شود.

در مرحله اول الگوریتم ، xi (i = 1, . . . , SN) راه حل ها به صورت تصادفی تولید می شوند که در آن SN تعداد منابع غذایی است . در مرحله دوم الگوریتم ، برای هر زنبور کارگر ، که تعداد کل آنها برابر با نصف تعداد منابع غذایی است ، یک منبع جدید بوسیله رابطه زیر تولید می شود:

vij = xij + φij (xij – xkj) (1

φij یک عدد تصادفی بطور یکنواخت توزیع شده در بازه [-۱,۱] است که تولید موقعیت منابع غذایی همسایه را در اطراف xij کنترل می کند، K شاخص راه حل است که به صورت تصادفی از کلونی انتخاب شده است (K=int(rand ∗ SN) + 1), j = 1, . . .,D و D ابعاد مسئله است . بعد از تولید vi این راه حل جدید با xi مقایسه می شود و زنبور کارگر منبع بهتر را استخراج می کند . در مرحله سوم الگوریتم ، یک زنبور ناظر یک منبع غذایی را با احتمال (۲) انتخاب می کند و منبع جدیدی را در مکان منبع غذایی انتخاب شده توسط (۱) تولید می کند و به همان شکل روش زنبور کارگر، منبع بهتر برای استخراج شدن مورد تصمیم گیری قرار می گیرد.

Fiti میزان شایستگی راه حل xi است.

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

بوسیله رابطه (۳) xij = xj min + (xj max – xjmin )*rand

منبع : http://www.ecg-pnum.ir


۲٫ الگوریتم زنبور عسل

۲٫۱٫ زنبورها در طبیعت

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

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

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

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

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

زنبورهای پیرو بیشتری به قطعه زمین هایی با امید بخشی بیشتر فرستاده می شود این موضوع به کلونی اجازه می دهد تا غذا را سریعتر و کارآمدتر جمع آوری کند.

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

۲٫۲٫ الگوریتم زنبور عسل معرفی شده

همان طور که اشاره شد، الگوریتم زنبور عسل یک الگوریتم بهینه سازی است که از رفتار کاوشی طبیعی زنبورهای عسل برای پیدا کردن راه حل بهینه الهام شده است. شکل ۱ شبهه کد الگوریتم را در ساده ترین حالت آن نشان می دهد. این الگوریتم نیازمند تنظیم تعدادی پارامتر است: تعداد زنبورهای دیده ور (n)، تعداد مکانهای انتخاب شده از مکانهای بازدید شده (m)، تعداد بهترین مکان ها از مکانهای انتخاب شده (e)، تعداد زنبورهای تازه نفس استخدام شده برای بهترین مکانهای e (nep)، تعداد زنبورهای استخدام شده برای سایر (m-e) مکان های انتخاب شده (nsp)، اندازه اولیه قطعه زمینها (ngh) که شامل مکان و همسایه های آن می شود و معیار توقف الگوریتم.

الگوریتم با n زنبور دیده ور که به صورت تصادفی در فضای جستجو قرار می گیرند شروع می شود . تابع شایستگی مکان هایی که توسط زنبورهای دیده ور ملاقات می شوند در مرحله ۲ ارزیابی می شود.

۱- مقدار دهی اولیه جمعیت با راه حلهای تصادفی
۲- ارزیابی تابع شایستگی جمعیت
۳- تا زمانی که (شرط توقف ملاقات نشده است)
// تشکیل جمعیت جدید.
۴- انتخاب مکان هایی برای جستجوی همسایه ها
۵- استخدام زنبورها برای مکانهای جدید (زنبورهای بیشتر برای بهترین مکان های e)
۶- انتخاب مناسب ترین زنبور از هر قطعه زمین گل
۷- تخصیص زنبورهای باقی مانده برای جستجوی تصادفی و ارزیابی شایستگی های آنها
۸- پایان حلقه

در مرحله ۴ زنبورهایی که بالاترین شایستگی را دارند به عنوان “زنبورهای انتخاب شده” انتخاب می شوند و مکان های ملاقات شده توسط آنها برای جستجوی همسایگی انتخاب می شود. سپس، در مرحله های ۵ و ۶، الگوریتم جستجوها را در همسایگی های مکانهای انتخاب شده هدایت می کند، و زنبورهای بیشتری را نزدیک بهترین مکانهای e تخصیص می دهد. زنبورها می توانند مستقیماً بر اساس شایستگی مکان هایی که آنها ملاقاتش کرده اند انتخاب شوند. متناوباً ، مقادیر شایستگی برای تعیین احتمال اینکه کدام زنبورها انتخاب خواهند شد استفاده می شوند.

جستجوها در همسایگی بهترین مکانهای e که راه حلهای امید بخشتری را ارائه می دهد ، نسبت به سایر زنبورهای انتخاب شده ، به واسطه فرستادن زنبورهای تازه نفس بیشتر برای پیروی از آنها با جزئیات بیشتری همراه می شود. همراه با دیده وری، این نفر گیری تفاضلی کلید عملیات در الگوریتم زنبور عسل است.

به هر حال، در مرحله ۶ برای هر قطعه زمین تنها زنبور عسلی با بالاترین شایستگی انتخاب خواهد شد تا جمعیت زنبور عسل بعدی را تشکیل دهد. در طبیعت چنین محدودیتی وجود ندارد، این محدودیت در اینجا برای کاهش نقاط مورد کاوش قرار گرفته معرفی شده است. در مرحله ۷، زنبورهای باقی مانده در جمعیت به صورت تصادفی در اطراف فضای جستجو تخصیص می یابند تا برای راه حلهای بالقوه جدید دیده وری کنند. این مراحل تا زمانی که یک معیار توقف ملاقات شود تکرار می یابد. در انتهای هر تکرار، کلونی دو بخش در جمعیت جدید خود دارد.

– نمایندگانی از هر قطعه زمین انتخاب شده و سایر زنبورهای دیده وری که برای انجام جستجوهای تصادفی تخصیص می یابند. 

منبع


شرح الگوریتم زنبور عسل

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

هنگامی که جستجوی تمام گلزارها پایان یافت، هر زنبور دیده‌بان، بالای گلزاری که اندوختهٔ کیفی مطمئنی از نکتار و گرده دارد، رقص خاصی را اجرا می‌کند. این رقص که به نام رقص چرخشی شناخته می‌شود، اطلاعات مربوط به جهت تکه گلزار (نسبت به کندو)، فاصله تا گلزار و کیفیت گلزار را به زنبورهای دیگر انتقال می‌دهد. این اطلاعات زنبورهای اضافی و پیرو را به سوی گلزار می‌فرستد. بیش‌تر زنبورهای پیرو به سوی گلزارهایی می­روند که امید بخش­تر هستند و امید بیش‌تری برای یافتن نکتار و گرده در آن‌ها وجود دارد. وقتی همهٔ زنبورها به سمت ناحیه‌ای مشابه بروند، دوباره به صورت تصادفی و به علت محدوده­ی رقصشان در پیرامون گلزار پراکنده می‌شوند تا به موجب این کار سرانجام نه یک گلزار، بلکه بهترین گل­های موجود درون آن تعیین موقعیت شوند.

الگوریتم زنبور عسل هر نقطه را در فضای پارامتری – متشکل از پاسخ‌های ممکن- به عنوان منبع غذا تحت بررسی قرار می‌دهد. زنبورهای دیده‌بان – کارگزاران شبیه‌سازی شده – به صورت تصادفی فضای پاسخ­ها را ساده می­کنند و به وسیله­ی تابع شایستگی کیفیت موقعیت­های بازدید شده را گزارش می­دهند. جواب‌های ساده شده رتبه بندی می‌شوند و دیگر زنبورها نیروهای تازه­ای هستند که فضای پاسخ‌ها را در پیرامون خود برای یافتن بالاترین رتبه محل‌ها جستجو می‌کنند که گلزار نامیده می‌شود. الگوریتم به صورت گزینشی دیگر گلزارها را برای یافتن نقطه­ی بیشینه­ی تابع شایستگی جستجو می‌کند

کاربردها 

برخی کاربردهای الگوریتم زنبور در مهندسی:

* آموزش شبکه عصبی برای الگو شناسی

* زمان بندی کارها برای ماشین‌های تولیدی

* دسته‌بندی اطلاعات

* بهینه‌سازی طراحی اجزای مکانیکی

* بهینه‌سازی چند گانه

* میزان کردن کنترل کننده‌های منطق فازی برای ربات‌های ورزشکار

هم چنبن نوشته ای با عنوان مقاله های الگوریتم کلونی زنبور عسل (Artificial Bee Colony (ABC) Algorithm) و کاربردهای آن شامل مقالات داخلی و خارجی در همین سایت قرار داده شده است.

الگوریتم زنبور شامل گروهی مبتنی بر الگوریتم جستجو است که اولین بار در سال ۲۰۰۵ توسعه یافت ؛ این الگوریتم شبیه سازی رفتار جستجوی غذای گروههای زنبور عسل است. در نسخه ابتدایی این الگوریتم، الگوریتم نوعی از جستجوی محلی انجام می دهد که با جستجوی کتره ای (Random) ترکیب شده و می تواند برای بهینه سازی ترکیبی {زمانی که بخواهیم چند متغیر را همزمان بهینه کنیم.}یا بهینه سازی تابعی به کار رود.

جستجوی غذا در طبیعت

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

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

این رقص که به نام “رقص چرخشی”(حرکتی مانند حرکت قرقره) شناخته می شود، اطلاعات مربوط به جهت تکه گلزار(نسبت به کندو)، فاصله تا گلزار و کیفیت گلزار را به زنبور های دیگر انتقال می دهد. این اطلاعات زنبور های اضافی و پیرو را به سوی گلزار می فرستد.
بیشتر زنبور های پیرو به سوی گلزار هایی میروند که امید بخش تر هستند و امید بیشتری برای یافتن نکتار و گرده در آنها، وجود دارد.
وقتی همه ی زنبور ها به سمت ناحیه ای مشابه بروند، دوباره به صورت کتره ای (Random) و به علت محدوده ی رقصشان در پیرامون گلزار پراکنده می شوند تا به موجب این کار سرانجام نه یک گلزار ، بلکه بهترین گل های موجود درون آن تعیین موقعیت شوند.

الگوریتم

الگوریتم زنبور هر نقطه را در فضای پارامتری_ متشکل از پاسخ های ممکن_به عنوان منبع غذا تحت بررسی قرار می دهد.”زنبور های دیده بان”_ کارگزاران شبیه سازی شده _به صورت کتره ای (Random) فضای پاسخ ها را ساده می کنند و به وسیله ی تابع شایستگی کیفیت موقعیت های بازدید شده را گزار ش می دهند. جواب های ساده شده رتبه بندی می شوند، و دیگر “زنبورها” نیروهای تازه ای هستند که فضای پاسخ ها را در پیرامون خود برای یافتن بالا ترین رتبه محل ها جستجو می کنند(که “گلزار” نامیده می شود) الگوریتم به صورت گزینشی دیگر گلزار ها را برای یافتن نقطه ی بیشینه ی تابع شایستگی جستجو می کند.

الگوريتم زنبور عسل

الگوریتم زنبور شامل گروهی مبتنی بر الگوریتم جستجو است که اولین بار در سال ۲۰۰۵ توسعه یافت ؛ این الگوریتم شبیه سازی رفتار جستجوی غذای گروه های زنبور عسل است. در نسخه ابتدایی این الگوریتم نوعی از جستجوی محلی انجام می دهد که با جستجوی کتره ای{Random } ترکیب شده و می تواند برای بهینه سازی ترکیبی {زمانی که بخواهیم چند متغیر را همزمان بهینه کنیم.}یا بهینه سازی تابعی به کار رود.

جستجوی غذا در طبیعت

یک کلونی زنبور عسل می تواند در مسافت زیادی و نیز در جهت های گوناگون پخش شود تا از منابع غذایی بهره برداری کند.

قطعات گلدار با مقادیر زیادی نکتار و گرده که با تلاشی کم قابل جمع آوری است،به وسیله ی تعداد زیادی زنبور بازدید می شود؛ به طوری که قطعاتی از زمین که گرده یا نکتار کمتری دارد، تعداد کمتری زنبور را جلب می کند.

پروسه ی جستجوی غذای یک کلونی به وسیله ی زنبورهای دیده بان آغاز می شود که برای جستجوی گلزار های امید بخش {دارای امید بالا برای وجود نکتار یا گرده}فرستاده می شوند. زنبورهای دیده بان به صورت کتره ای{Random } از گلزاری به گلزار دیگر حرکت می کنند.
در طول فصل برداشت محصول{گل دهی}، کلونی با آماده نگه داشتن تعدادی از جمعیت کلونی به عنوان زنبور دیده بان به جستجوی خود ادامه می دهند. هنگامی که جستجوی تمام گلزار ها پایان یافت، هر زنبور دیده -بان ، بالای گلزاری که اندوخته ی کیفی مطمئنی از نکتار و گرده دارد، رقص خاصی را اجرا می کند.
این رقص که به نام “رقص چرخشی”{حرکتی مانند حرکت قرقره} شناخته می شود، اطلاعات مربوط به جهت تکه گلزار{نسبت به کندو}، فاصله تا گلزار و کیفیت گلزار را به زنبور های دیگر انتقال می دهد. این اطلاعات زنبور های اضافی و پیرو را به سوی گلزار می فرستد.
بیشتر زنبور های پیرو به سوی گلزار هایی میروند که امید بخش تر هستند و امید بیشتری برای یافتن نکتار و گرده در آنها، وجود دارد.
وقتی همه ی زنبور ها به سمت ناحیه ای مشابه بروند، دوباره به صورت کتره ای {Random } و به علت محدوده ی رقصشان در پیرامون گلزار پراکنده می شوند تا به موجب این کار سرانجام نه یک گلزار ، بلکه بهترین گل های موجود درون آن تعیین موقعیت شوند.

الگوریتم زنبور هر نقطه را در فضای پارامتری- متشکل از پاسخ های ممکن- به عنوان منبع غذا تحت بررسی قرار می دهد.”زنبور های دیده بان”- کارگزاران شبیه سازی شده – به صورت کتره ای{Random } فضای پاسخ ها را ساده می کنند و به وسیله ی تابع شایستگی کیفیت موقعیت های بازدید شده را گزار ش می دهند. جوابهای ساده شده رتبه بندی می شوند، و دیگر “زنبورها” نیروهای تازه ای هستند که فضای پاسخ ها را در پیرامون خود برای یافتن بالا ترین رتبه محل ها جستجو می کنند{که “گلزار” نامیده می شود} الگوریتم به صورت گزینشی دیگر گلزار ها را برای یافتن نقطه ی بیشینه ی تابع شایستگی جستجو می کند.

حال در ادامه با دو الگوريتم از الگويتم های کلونی زنبورها آشنا خواهيم شد. اولين الگوريتم، الگوريتم کلونی زنبورهای مصنوعی است که کاربرد اصلی آن در بهينه سازی می باشد. الگوريتم دوم الگوريتم کاوش زنبورهای عسل میباشد که آن نيز در بهينه سازی کاربرد دارد.

منبع: http://faraebtekari.ir


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

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

به علاوه آنها يک مدل کمينه از از رفتار کاوشگرانه زنبورها ارائه داند. اين مدل شامل سه مولفه مهم میباشد: ۱)منبع غذايي ۲(زنبورهای کارگر ۳(زنبورهای غيرکارگر. اين مدل دو نوع رفتار را دربرمیگيرد: سربازگيری برای يک منبع شهد و ترک منبع. Teodorovic پيشنهاد داد تا از هوش جمعی زنبورها در توسعه و بهبود سيستمهای مصنوعی با هدف حل مسائل پيچيده در حمل و نقل و ترافيک استفاده شود، همچنين او الگوريتم BCO (Bee Colony Optimization)را ارائه کرد که قادر است مسائل ترکيبی قطعی را همانند مسائل ترکيبی به خوبی حل نمايد. Drias يک روش هوشمندانه جديد را معرفی نمود با نام BSO که الهام گرفته از زنبورهای واقعی است. Wedde يک الگوريتم مسيريابی جديد با نام BeeHive ارائه کرد که الهام گرفته از متدهای ارتباطی و ارزيابی و همچنين رفتار زنبورهای عسل میباشد. در اين الگوريتم عاملها در منطقه شبکه که محدودهی کاوش ناميده میشود، در طول مسيرشان اطلاعات وضعيتی شبکه را به منظور بهنگام سازی جدول مسيريابی محلی جمع آوری می کنند.

کارهای انجام شده که در پاراگراف های قبلی ذکرشد، شامل انواع مختلفی از مسائل بود. تنها دو الگوريتم بهينه سازی عددی در مقالات مبتنی بر رفتار جمعی زنبورهای عسل وجود دارد. Yang الگوريتم زنبورهای مجازی برای حل( (VBAبهينه سازی توابع عددی ارائه داده است. در ابتدا يک تجمع از زنبورهای مجازی ايجاد میشود و تجمع شروع به حرکت کردن در فضای مسئله به صورت تصادفی مینمايد. اين زنبورها هنگامی که يک يا چند منبع غذايي را يافتند که متناظر است با يافتن مقدار تابع، با يکديگر تعامل برقرار میکنند راهحل برای مسئله بهينه سازی از شدت و قوت تعاملات زنبورها با يکديگر بدست خواهد آمد. برای بهينه سازی توابع چندمتغييره Karaboga الگوريتم کلونی زنبورهای مصنوعی ( ABC ) را ارئه داد که با الگوريتم زنبورهای مجازی تفاوت دارد.

الگوریتم زنبور عسل

الگوریتم کلونی زنبور عسل مانند سایر الگوریتم های هوش ازدحامی مرتبط بر رفتار تصادفی المان های آن است و برای حل مسائل بهینه سازی کاربرد دارد. بسیاری از الگوریتم های هوش ازدحامی با الهام گرفتن از طبیعت ایجاد شده اند مانند الگوریتم کلونی مورچگان، الگوریتم پرندگان، الگوریتم فاخته و الگوریتم کلونی زنبور عسل یا Artificial bee colony algorithm که به صورت مخفف BCO نامیده میشود (Bee Colony Optimization) .

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

یکی دیگر از روش های حل مسائل بهینه سازی الگوریتم های هوش ازدحامی است که الگوریتم زنبور عسل از جمله این الگوریتم ها است. الگوریتم زنبور (Bee Algorithm) یک الگوریتم گروهی مبتنی بر جستجو است که در سال ۲۰۰۵ میلادی ابداع شده است.این الگوریتم شبیه‌ سازی رفتار جستجوی غذای گروه‌های زنبور عسل است. در نسخه ابتدایی این الگوریتم، الگوریتم نوعی از جستجوی محلی انجام می‌دهد که با جستجوی تصادفی کتره­­ا ترکیب شده و می‌تواند برای بهینه سازی ترکیبی یا بهینه‌ سازی تابعی استفاده شود.

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

منبع: http://faraebtekari.ir


الگوریتم کلونی زنبور عسل (ABC)

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

اگر یک الگوریتم یک قانون احتمالی را برای بهبود راه حل بکار بگیرد سپس آن را احتمال یا اتفاقی نامیده میشود. یکی دیگر از طبقه بندی را می توان بسته به ماهیت پدیده توسط الگوریتم شبیه سازی کرد.این نوع طبقه بندی ، عمدتا دارای دو گروه مهم از الگوریتم جمعیت هستند که براساس : الگوریتم های تکاملی (EA) و الگوریتم های مبتنی بر هوش جمعی. از محبوب ترین الگوریتم های تکاملی الگوریتم ژنتیک(GA) است. درGA تلاش شده است تکامل طبیعی یک پدیده شبیه سازی شود. در تکامل طبیعی ، هر گونه جستجو برای سازگاری سودمند در یک محیط در حال تغییر است. به عنوان یک گونه تکامل یافته ، ویژگی های جدیدی در کروموزوم های فردی کد گذاری می شوند.

این اطلاعات توسط جهش تصادفی تغییرمی یابد ، اما بطورواقعی نیروی محرکه باعث توسعه تکاملی درترکیب و جایگزینی مواد کروموزومی در طول تولید مثل میشود. اگر چه تلاش های متعددی برای گنجاندن این اصول در روال بهینه سازی دراوایل دهه ۱۹۶۰انجام شده ، الگوریتم های ژنتیک برای اولین بار بر یک مبنای نظری صوتی ایجاد شده بودند. این اصطلاح جمعی در حالت کلی برای اشاره به هر مجموعه دار از تعامل افراد مورد استفاده قرار می گیرد. به عنوان یک مثال کلاسیک از ازدحام زنبورهایی که در اطراف کندوی خود تجمع کردند ، اما در استعاره به راحتی می توان به سیستم هایی معماری مشابهی دارند توسعه داد. در کلونی مورچه ها،مورچه ها می توانند به عنوان گروهی ازعوامل تصور شوند ، همچنین ازدحام پرندگان گروهی از پرندگان است. یک سیستم ایمنی ، گروهی از سلول ها ومولکول ها است در حالی که یک جمعیت شامل گروهی از مردم است.

الگوریتم بهینه سازی ازدحام ذرات (PSO) شبیه سازی می کند رفتار اجتماعی پرندگان یا ماهی ها توسط ابرهارت و کندی در سال ۱۹۹۵ معرفی شده است. روش های گوناگونی به مدل رفتار هوشمند خاص ازدحام زنبور عسل پیشنهاد شده است و برای حل مسایل از نوع ترکیبی استفاده شده است.آنها یک ایده روبات بر رفتار جستجوی غذا از زنبورها را ایجاد کرده اند . معمولا ، همه %

۲۴ مهر ۱۳۹۸/توسط م. دلیری
http://behsanandish.com/wp-content/uploads/tej28557.jpg 256 256 م. دلیری https://behsanandish.com/wp-content/uploads/logo-farsi-englisi-300x195-1.png م. دلیری2019-10-16 11:00:272021-03-30 21:51:05الگوریتم کلونی زنبور عسل مصنوعی

سیستم های چند عاملی چیست؟

آموزش های عمومی هوش مصنوعی

سیستم های چندعاملی (Multi Agent Systems)

سیستم های چندعاملی (Multi Agent Systems) یا به اختصار MAS روش نوینی برای حل مسائل و پیاده‌سازی پروژه‌های نرم‌افزاری رایانه‌ای می باشد.

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

این نوع سیستم‌ها نسبت به سیستم‌های معمولی و تک‌عاملی، مزایای زیادی دارند؛ از جمله اینکه در اکثر شرایط کار می‌کنند. به این معنا که چون مغز متفکر واحد ندارند و تصمیم‌گیری در آنها به صورت توزیع‌شده است، چنانچه حتی بخشی از آنها نیز از کار بیفتد باز هم به کار خود ادامه می‌دهند.

همچنین این نوع سیستم‌ها برای محیط‌هایی با مقیاس وسیع(Large Scale) و محیط‌های ناشناخته نیز گزینه مناسبی نسبت به سیستم‌های تک‌عاملی به شمار می‌آیند.

سیستم‌های مبتنی بر عامل، پردازش موازی را آسان کرده و به راحتی موازی می‌شوند. منظور از پردازش موازی این است که به جای انجام یک پروژه با محاسبات زیاد و پردازش‌های سنگین توسط یک پردازشگر، همان پروژه را به پردازش‌‌های کوچکتر با حجم محاسبات کمتر شکسته و آن را توسط چندین عامل انجام دهیم. مثلاً میزی را تصور کنید که برای بلند کردنش به ۱۰۰ نیوتن نیرو احتیاج داریم،

حال هم می‌توانیم آن را توسط یک نفر که توانایی اعمال ۱۰۰ نیوتن نیرو را دارد، بلند کنیم و هم این کار را به کمک چهار نفر که هر کدام ۲۵ نیوتن نیرو به اشتراک می‌گذارند، انجام دهیم. در نتیجه، هزینه‌ها در چنین سیستمی پایین می‌آید و نیازی به صرف هزینه کلان جهت ایجاد امکان پردازش سنگین برای یک عامل نیست.

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

تعریف سیستم چندعاملی

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

بدین ترتیب تعریف دیگری که برای عامل می‌توان داشت این است که یک عامل یک برنامه کامپیوتری‌ است که در بعضی محیط‌ها قادر به انجام کارهای خودمختار یا به اصطلاح autonomous است.

در دسته‌بندی ساده‌ای از عامل‌ها می‌توان به دو نوع عامل اشاره کرد، یکی عامل‌های ساده و کم‌اهمیت‌تر (Trivial Agents) که مثال ساده آن، ترموستات‌ها هستند و دوم عامل‌های هوشمند (Intelligent Agents ) که در واقع همان برنامه کامپیوتری‌ است که در بعضی محیط‌ها قادر به انجام اعمال خودمختار و انعطاف‌پذیر است.
در اینجا منظور از انعطاف‌پذیر، انجام اعمال واکنش‌دار (دارای عکس‌العمل) و پیش‌بینی یک واکنش و انجام زودتر عمل مناسب است.

به عنوان اولین تعریف برای یک سیستم چندعاملی می‌توان گفت: سیستم چندعاملی به سیستمی گفته می‌شود که از تعدادی عامل (agent) تشکیل‌شده‌ است. این عامل‌ها هر کدام به نوبه خود فعل و انفعالات داخلی داشته و در محیط خارج نیز با یکدیگر ارتباط دارند.

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

برای داشتن ارتباطات داخلی موفق بین عامل‌ها، آنها نیاز دارند که با یکدیگر همکاری کنند، هماهنگ باشند و مذاکره دوطرفه داشته باشند. درست به همان اندازه که انسان‌ها در ارتباطات روزانه خود با هم ارتباط دارند و به مذاکره و داد و ستد می‌پردازند.

دو مسئله کلیدی در طراحی سیستم های چندعاملی

دو مسئله کلیدی که در طراحی سیستم‌ های چندعاملی مطرح است: اول طراحی عامل و دوم طراحی محیطی برای عملکرد و ارتباط میان عامل‌ها. در طراحی عامل، چگونگی ساخت عاملی که قادر به انجام کارهای مستقل و اعمال خودمختار باشد مدنظر است.

به گونه‌ای که بتواند کارهایی که بر عمده‌اش گذاشته‌ایم را با موفقیت انجام دهد. در طراحی اجتماع یا محیط عامل‌ها، نکته اساسی این است که چگونه عامل‌هایی طراحی کنیم که قادر به برقراری ارتباط با یکدیگر باشند.

منظور از این ارتباط همان همکاری، هماهنگی و مذاکره بین عامل‌هاست. این کار برای انجام موفقیت‌آمیز وظایفی که بر عهده آنها گذاشته‌ایم، ضروری است؛ چرا که همه عامل‌ها اهداف مشترک ندارند یا نمی‌توانند با علایق یکسان ساخته شوند.

مثالی از کاربرد عامل‌ها کنترل سفینه فضایی (Aircraft control) است. وقتی یک کاوشگر فضایی (سفینه فضایی) برای انجام کارهای تحقیقاتی به فضا یا به کرات دیگر عزیمت می‌کند، یک سفر طولانی‌مدت در پیش دارد.

از زمانی که این سفینه و گروه تحقیقاتی، پرواز خود را از سطح کره زمین آغاز می‌کند یک تیم زمینی با تعداد افراد زیاد لازم است تا به طور مدام مراحل پیشرفت و حرکت سفینه را دنبال و بررسی کنند و در مورد حوادث غیرمنتظره که ممکن است برای سفینه پیش‌آید تصمیم بگیرند.

این امر بسیار پرهزینه است و اگر نیاز به تصمیم‌گیری فوری و ضروری داشته ‌باشد کارایی چندانی ندارد. به همین دلیل سازمان‌های هوایی و فضایی مانند NASA به طور جدی مشغول تحقیق و بررسی روی امکان ساخت کاوشگری فضایی هستند که بیشتر خودکار باشد تا بتوانند تنها در مواقع ضروری تصمیمات فوری را به صورت بهینه بگیرند و به نظارت کنترلی و مراقبت ۲۴ساعته از روی زمین نیاز نداشته باشند.

این امر یک افسانه یا داستان نیست و مهندسین NASA مشغول بررسی و ساخت چنین سفینه‌ای بر اساس سیستم های چندعاملی هستند. طبق اطلاعات موجود و خواص سیستم‌ های چندعاملی، برای دستیابی به این هدف عامل‌ها ابزار بسیار مناسبی شناخته شده‌اند.

ارتباط بین عامل ها در سیستم های چند عاملی

دو مثال از کاربرد سیستم‌ های چندعاملی

مثال دیگری از کاربرد عامل‌ها، جست‌وجوی اینترنت است که توسط عامل‌های اینترنتی انجام می‌شود. جست‌وجو در اینترنت برای یافتن جواب یک سئوال خاص، می‌تواند پروسه طولانی و خسته‌کننده‌ای باشد. بنابراین چرا این اجازه را به برنامه‌های کامپیوتری- عامل- ندهیم که عمل جست‌وجو را برای ما انجام دهند.

به عنوان مثال، می‌توان سئوال یا مسئله‌ای را به یک عامل داد که پاسخ آن نیازمند ترکیبی از اطلاعات اینترنتی‌ است و لازم است که منابع مختلفی در وب جست‌وجو شود. این عمل به راحتی می‌تواند توسط برنامه تحت وبی که ما می‌نویسیم و عاملی که بر روی اینترنت ایجاد می‌کنیم، انجام شود.

سئوالی که مطرح می‌شود این است که آیا عامل‌ها همان سیستم خبره هستند ولی با نامی متفاوت؟ ابتدا ببینیم سیستم خبره چیست؟ سیستم خبره، یک برنامه کامپیوتری است که عملیات مربوط به تصمیم‌گیری و استدلال و اظهار نظر در رابطه با یک موضوع را با ترکیبی از اطلاعات، تعقل و دانش و همچنین با در دست داشتن دانش و تجربه یک متخصص انجام می‌دهد و بر این اساس، وظیفه حل مشکلات یا ارائه مشاوره را بر عهده دارد.

سیستم‌های خبره به طور معمول بدون بدنه و ساختاری بیرونی هستند که در یک زمینه خاصی متخصص و یا به اصطلاح خبره می‌شوند. برای مثال سیستم MYCIN نمونه‌ای از یک سیستم خبره است که مطالب زیادی درباره بیماری‌های خونی انسان‌ها می‌داند. در این سیستم، اطلاعات بسیار وسیعی در مورد بیماری‌ها و امراض خونی به فرم یک سری قاعده و دستورات ذخیره شده که می‌تواند با گرفتن مشخصات بیمار و شرایط موجود، نوع بیماری را تشخیص دهد. یک پزشک به راحتی می‌تواند با دادن واقعیت‌های موجود به سیستم، توصیه‌های تخصصی و در اکثر مواقع قابل‌اعتمادی را از این ماشین دریافت کند.
تفاوت اصلی سیستم‌های خبره با سیستم‌ های چندعاملی را می‌توان در دو مورد زیر بیان کرد:

۱- عامل‌ها در محیطی قرار می‌گیرند که می‌توانند روی آن تاثیرگذار باشند و از آن تاثیر بپذیرند؛ در حالی که عملکرد سیستم‌های خبره مانند MYCIN کاملاً مستقل از محیط بوده و از دنیای اطراف آگاه نیست و اطلاعات به دست آمده از سیستم خبره مبتنی بر پایگاه دانش‌اش و سئوالاتی است که از کاربر می‌پرسد.

۲- عامل به عنوان نماینده‌ای از طرف کاربر، عملی را انجام می‌دهد ولی سیستم خبره مانند MYCIN هیچ عملی در محیط یا روی بیمار انجام نمی‌دهد.

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

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

عامل‌های هوشمند و هوش مصنوعی (AI)

سئوالی که در مورد سیستم‌ های چندعاملی و هوش مصنوعی به ذهن می‌آید این است که آیا طراحی سیستم‌ های چندعاملی همان پروژه‌های مطرح در هوش مصنوعی است؟ آیا ساختن یک عامل تماماً همان موضوعات مورد بحث در هوش مصنوعی نیست؟

در جواب باید گفت، هدف هوش مصنوعی، ساختن سیستم‌های هوشمندی است که بتوانند به خوبی زبان طبیعی را بفهمند، احساس را درک کنند و قادر به استفاده از حواس پنج‌گانه انسانی بوده، دارای فکر خلاق باشند و غیره… که کار بسیار مشکلی است. پس آیا ساخت یک عامل توسط الگوریتم‌های هوش مصنوعی که بتواند همه این کارها را انجام دهد، نیازمند حل همه این الگوریتم‌ها نیست؟ مسلماً جواب مثبت است.

ولی ما در هنگام ساخت یک عامل، به طور ساده سیستمی می‌خواهیم که بتواند در یک محیط محدود عمل مناسب و درست را انتخاب کرده و انجام دهد. بنابراین برای ساخت یک عامل ما ملزم به حل همه مسائل موجود در هوش مصنوعی نیستیم.

همانطور که گفته شد با وجود عمر کم سیستم‌های مبتنی بر چندعامل، به دلیل قابلیت بالا در موازی‌سازی، روش طراحی براساس عامل و حل مسائل به صورت توزیع‌شده جزء موفق‌ترین روش‌های حل مسئله است و این سیستم‌ها ابزار بسیار بدیعی برای شبیه‌سازی کامپیوتری فراهم آورده‌اند که می‌تواند نور امیدی برای روشن شدن انواع مسائل مربوط به انسان و زندگی او باشد.
منبع


۱۸ مهر ۱۳۹۸/0 نظرها/توسط م. دلیری
http://behsanandish.com/wp-content/uploads/imas-cover.gif 256 256 م. دلیری https://behsanandish.com/wp-content/uploads/logo-farsi-englisi-300x195-1.png م. دلیری2019-10-10 10:00:312019-10-07 11:47:12سیستم های چند عاملی چیست؟

پروژه به همراه آموزش تشخیص پلاک خودرو با پردازش تصویر

آموزش پردازش تصویر در نرم افزار متلب (Matlab), پروژه ها و سورس کدهای پردازش تصویر و بینایی ماشین, تشخيص پلاک خودرو

خوانش پلاک خودرو از تصاویر جاده‌ای

(پیاده سازی شده برای پلاک های ایرانی)

این الگوریتم (تشخیص پلاک خودرو) با نرم افزار MATLAB 2011 نوشته شده است برای خواندن پلاک که بدون نویز و خرابی هستند خوب جواب میدهد…البته دیتا بیس کاراکترها رو خودتون به راحتی میتوانید بیشتر کنید تا پاسخ دهی قویتر شود …فعلا فقط یک تصویر به عنوان آزمایش جهت تست برنامه قرار داده شده .

همچنین به علت ضیق وقت قسمت شناسای کاراکترها و تبدیل آنها به عدد و حروف فارسی رو قوی نکردم…شما میتونید این قسمت را برای جوابدهی بهتر دستکاری کنید… در ضمن اگر خواستین از نحوه فرمولبندی و کارکرد برنامه سر دربیارید حدود ۲۰ صفحه هم گزارش تهیه شده ، فایل پاور پوینتی که برای ارائه پروژه تشخیص پلاک خودرو آماده شده نیز آپلود گردیده است.

فقط قبل از اجرای برنامه این مراحل رو طی کنید:
۱- مسیر عکس خودرو(glx.jpg) رو وارد کنید
۲-دیتا بیس (فایل زیپ) رو دانلود کنید
۳-مسیر دیتا-بیس کاراکترها رو درست وارد کنید.
۴-برنامه رو اجرا کنید-نتایج رو صفحه کامند matlab نمایش داده میشود.
۵-هر جا خواستید از پشت دستور imshow و figure علامت % رو حذف کنید تا کارهای که روی تصویر انجام میشود رو مرحله به مرحله ببینید.
۶-برنامه را اجرا کنید و نتایج را در صفحه متلب ببیند.

 

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

تعداد صفحات پی دی اف : ۱۸

تعداد صفحات پاور پوینت : ۱۸

سورس کد : نرم افزار متلب Matlab

قیمت : رایگان

کلمه عبور فایل : behsanandish.com

 

دانلود

 

 

 

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

سورس برنامه در نرم افزار متلب:


clear all
close all
clc

p0=imread('E:\NIT\DIP\dip data proj\car\glx.jpg');
p=rgb2gray(p0);
p=im2double(p);

f=fspecial('gaussian');
pf=imfilter(p,f,'replicate');
%imshow(pf)
%figure
Pm=mean2(pf); %Average or mean of matrix elements
Pv=((std2(pf))^2); %the variance of an M-by-N matrix is the square of the standard deviation
T=Pm+Pv;

% taerife astane............................................
[m n]=size(pf);
for j=1:n
 for i=1:m
 if pf(i,j)>T;
 pf(i,j)=1;
 else
 pf(i,j)=0;
 end
 end
end

ps=edge(pf,'sobel');
%imshow(ps)
%figure
pd=imdilate(ps,strel('diamond',1));
pe=imerode(pd,strel('diamond',1));
pl=imfill(pe,'holes');
[m n]=size(pl);

%barchasb gozary..............................................
pll=bwlabel(pl);
stat =regionprops(pll,'Area','Extent','BoundingBox','Image','Orientation','Centroid');
index = (find([stat.Area] == max([stat.Area]))); %meghdare barchasb dakhele bozorgtarin masahat ra mikhanad
ppout=stat(index).Image;
%imshow(ppout);
%figure

% biron keshidane mokhtasate pelak.............................
x1 = floor(stat(index).BoundingBox(1)); %shomare stone awalin pixel (B = floor(A) rounds the elements of A to the nearest integers less than or equal to A)
x2 = ceil(stat(index).BoundingBox(3)); %pahnaye abject dar sathe ofoghi(B = ceil(A) rounds the elements of A to the nearest integers greater than or equal to A)
y1 = ceil(stat(index).BoundingBox(2)); %shomare satre avalin pixel(B = ceil(A) rounds the elements of A to the nearest integers greater than or equal to A)
y2 = ceil(stat(index).BoundingBox(4)); %pahnaye abject dar sathe amodi(B = ceil(A) rounds the elements of A to the nearest integers greater than or equal to A)
bx=[y1 x1 y2 x2];
ppc=imcrop(p0(:,:,:),[x1,y1,x2,y2]);
%imshow(ppc)
%figure
ppg=imcrop(p(:,:),[x1,y1,x2,y2]);
%imshow(ppg)
%figure

%plate enhancment..............................................
ppcg=rgb2gray(ppc);
ppcg=imadjust(ppcg, stretchlim(ppcg), [0 1]); % specify lower and upper limits that can be used for contrast stretching image(J = imadjust(I,[low_in; high_in],[low_out; high_out]))
ppg=im2double(ppcg);
pb=im2bw(ppg);%im2bw(I, level) converts the grayscale image I to a binary image
%imshow(pb)
%figure

%rotate correction..............................................
if abs(stat(index).Orientation) >=1; %The orientation is the angle between the horizontal line and the major axis of ellipse=angle
 ppouto=imrotate(ppout,-stat(index).Orientation); %B = imrotate(A,angle) rotates image A by angle degrees in a counterclockwise direction around its center point. To rotate the image clockwise, specify a negative value for angle.
 pbo=imrotate(pb,-stat(index).Orientation);
 angle = stat(index).Orientation;
else
 pbo=pb;
end;
%imshow(pbo)

pbod=imdilate(pbo,strel('line',1,0));
pbodl=imfill(pbod,'holes');
px = xor(pbodl , pbod);

pz= imresize(px, [44 250]); % 4*(57*11)=(chahar barabar size plake khodroye irani)

%barchasb zanye plak..........................................
stat1 = regionprops(bwlabel(pz,4),'Area','Image');
index1 = (find([stat1.Area] == max([stat1.Area])));
maxarea =[stat1(index1).Area];%braye hazfe neweshteye iran va khatahaye ehtemali
pzc=bwareaopen(pz,maxarea-200); %maxarea(1,1) meghdare structur ra adres dehi mikonad,va migoyad object haye ka mte z an ra hazf konad
%histogram plak......
%v=sum(pzc);
%plot(v);

%biron keshidan karakterha......................................
stat2=regionprops(pzc,'Area','BoundingBox','Image','Orientation','Centroid');
cx=cell(1,8);
for i=1:8
 x=stat2(i).Image;
 rx=imresize(x, [60 30]);
 %imshow(rx)
 %figure
 cx{1,i}=rx;
 %fx=mat2gray(cx{1,1});
 %imshow(cx{1,2})
 
 imwrite(rx,['E:\NIT\DIP\dip data proj\char\car\glx\' num2str(i) '.jpg']);
end

%khandane karakterha.........mini database1...................

for i=1:1
 for j=1:8
 temp=imread(['E:\NIT\DIP\dip data proj\char\car\glx\' num2str(j) '.jpg']);
 temp=im2bw(temp);
 nf1=temp.*cx{1,i};
 nf2=sum(sum(nf1));
 nf(j)=nf2/(sum(sum(temp)));
 mx=max(nf(j));
 
 
 if nf(1,1)== mx
 disp(1);
 else
 if nf(1,2)== mx
 disp(5);
 else
 if nf(1,3)== mx
 disp('j');
 else
 if nf(1,4)== mx
 disp(6);
 else
 if nf(1,5)== mx
 disp(3);
 else
 if nf(1,6)== mx
 disp(1);
 else
 if nf(1,7)== mx
 disp(7);
 else
 if nf(1,8)== mx
 disp(2);
 
 
 end
 end
 end
 end
 end
 end
 
 end
 
 end
 
 
 end
 
end

 

۲۵ شهریور ۱۳۹۸/3 نظرها/توسط محمد مهدی ابراهیمی
http://behsanandish.com/wp-content/uploads/source-1.jpg 256 256 محمد مهدی ابراهیمی https://behsanandish.com/wp-content/uploads/logo-farsi-englisi-300x195-1.png محمد مهدی ابراهیمی2019-09-16 14:45:192021-01-05 00:30:19پروژه به همراه آموزش تشخیص پلاک خودرو با پردازش تصویر

پردازش و قطعه بندی تصاویر رنگی

آموزش عمومی پردازش تصویر و بینایی ماشین

چکیده

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

کلمات کلیدی: ارتقای تصاویر رنگی ، قطعه بندی تصاویر رنگی ، رویکردهای غیر کلاسیک، رویکرهای غیر کلاسیک

مقدمه

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

نسبت ها ی محاسباتی وابسته به اجزای رنگها ، همبستگی ورودی و نمایش مشخصه های غیر خطی می باشد.

گام اصلی در پردازش تصاویر دیجیتالی ۱-پیش پردازش داده ها برای آماده سازی داده ها برای ارتقای کنتراست ، کاهش نویز و یا فیلترینگ است. ۲- استخراج ویژگیها برای بازیابی اطلاعات غیر زائد و با ارزش از یک تصویر.

این عملیات هدفی برای بدست آوردن زمان بهینه و کاهش نمونه داده هاست که توسط کشف، تمرکز و معین کردن موقعیت ها و جایگاهی و تطبیقی از اشیاء است. اهداف بسیاری از الگوریتم های موجود اشیاء مورد اشاره هستند که هر از چند گاهی قابلیت استنتاج را پیدا می کنند .

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

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

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

به طور پیش فرض چند اندازه برای نمایش حالتها انتخاب می کنند مانند E که برای نمایش آنتروپی استفاده می شود. اندازه های مفید تجربی برای انعکاس قابلیت های قطعه بندی استفاده می شوند. اندازه های با مقادیر پائین قابلیت های بهتری از قطعه بندی را بدست می آورند.

رویکردهای کلاسیک در قطعه بندی و پردازش تصاویر رنگی

تکنیک های فیلترینگ برای حذف نویز و ارتقا لبه ها در سالهای اخیر به یک مسئله مهم و معروف تبدیل شده است. فلیتر بردار جهت دار (VDF) با در نظر گرفتن مقادیر سیگنال نقش مهمی در پردازش تصاویر عهده دار است. پردازش اندازه و جهت سیگنال در این کلاس از فیلتر های مستقل انجام می شود. فیلتر های چندگانه ارتقا لبه بر اساس بردار میانگین برای ارتقاء لبه های خفیف در تصاویر رنگی ارائه کردند. در این روش از سه زیر فیلتر (sub filter) استفاده می شود و سر انجام خروجی این زیر فیلتر ها با بردار میانگین مقایسه می شودو یک روش دیگر با توجه به نویز برای اطلاعات چندگانه فیلتر های نزدیکترین  همسایگی سازگار است. این فیلتر از ضرائب اطلاعات مستقل براساس یک روش اندازه گیری فاصله جدید که شامل بردار هاوی (جهت) فیلتر واندازه بردار فیلتر می باشد بهره می برد.

یک چهارچوب کاملا متفاوت را برای فیلتره ای رنگی ارائه می کنیم . این روش براساس رمز نگاری تصاویر رنگی و غیر رنگی کار می کنند . تا به حال چند رزولوشن بر اساس نظریه گراف ارائه شده است. این تکنیک بر اساس ویژگی و شباهت و ارتباط بین نواحی مشابه و ارتباط بین نواحی همسایه استفاده می کند و در نهایت برای اشیاء برای قطعه بندی ایده ال نواحی گروه بندی می شوند. ما می توانیم از مسائل خطی بجای مقادیر ویژه در مسائل قطعه بندی گراف استفاده کنیم . الگوریتم آنالیز میانگین شیفت دهی برای تخمین دقیق رنگ مرکز کلاسترهای فضای رنگ استفاده می کند. می توان همین روش را با استفاده از روش های پارتیشن بندی توسعه داد.

مدل های (MRF) برای مدل کردن وآنالیز عکس های چند طیفی استفاده می شود. چند جایگزین برای MRF پیشنهاد می شود تا پیچدگی زمانی آن را کاهش دهند . الگوریتم EM برای تخمین پارامترهای مدل های مخفی مارکوف برای کاهش وابستگی ساختاری در این روش استفاده می شود.  می توان این الگوریتم را برای تخمین پارمترهای مدل دوباره دسته بندی کرد. این تهمین از فاکتور جریمه برای داده های مستقل برای داده های مستقل برای ماکزیمم کردن احتمال کلی مجموعه داده ها و در نتیجه کاهش مرجع محاسبات استفاده می کنند.

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

رویکردها دیگر از پردازش و قطعه بندی تصاویر رنگی

بیشتر رویکردهای کلاسیک نیاز به دانش اولیه از داده ها ی تصویر برای پردازش تصویر و قطعه بندی آن و توزیع شدت های رنگ  اصلی و پارامترهای عملیاتی تصاویر دارند. در رویکردهای غیر کلاسیک که شامل  عصبی ،فازی، ژنتیک و wavelet می شوند نیازی به توزیع ها و پارمترهای عملیاتی ندارند. در این قسمت انواع این روشها را شرح می دهیم:

الف- روش های مبتنی بر شبکه های عصبی

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

از یادگیری رقابتی CL برای خوشه های رنگی مبتنی بر کمترین مجموع مربعات معیارها بکار گیری می شود.

Clهمگن  محلی برای خوشه بندی رنگی بهینه است. در مقایسه کارایی CLبا الگوریتم های خوشه بندی موجود شبیه CMA ,GCMA ,HCL می توان گفت که دو  روش GCMA ,HCL در مقابل شرط ابتدایی حساسیتی را از خود نشان نمی دهند نتایج GCMA اکثر مواقع بهینه است ولی دارای هزینه محاسباتی بالایی می باشد در مقابل HCL دارای هزینه محاسباتی کم می باشد ولی بهینه نیست. در نتیجه در خوشه بندی سریع از CL برای خوشه بندی داده ها استفاده می شود.

Som در بسیاری از موارد استفاده می شود در دامنه نظر به اینکه می تواند بازیابی کند محتوای رنگی برجسته را از تصاویر . به طور کلی از چندین شبکه som برای خوشه بندی مبتنی بر رنگ و ویژگیهای فضایی از پیکسل های تصاویر استفاده می شود. خروجی خوشه بندی، یک رویه مطلوب از قطعه بندی تصویر است.  Som تولید کرد نتایج خوشه بندی اولیه را مبتنی بر آموزش مجموعه ها از بردار ۵ بعدی (R,G,B,x,y). تصاویر قطعاتی که توسط الحاق بلوکهای پراکنده و حذف پیکسل های ایزوله شده بوجود آمده اند. در یک مدل چند سطحی سازماندهی شبکه های عصبی (PSONN) بهینه است در استخراج رنگ های اشیاء از نویزهای رنگی تصاویر. بکارگیری معماری (PSONN) برای قطعه بندی رنگ ها  حقیقی تصاویر استفاده می شوند برای  چندین سطح از تابع های فعال سازی  مشخصه های تصاویر  توسط پارامترهای آستانه گیری ثابت و یکسان .

ب- رویکرد های مبتنی بر منطق فازی

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

الگوریتم  قطعه بندی تصاویر تکرار شونده در منطق فازی توسعه پیدا کرد . فضای رنگی  HSV مبتنی بر رویکرد فازی برای شناسایی رنگ ها اشیا در پشت زمینه های پیچیده بکارگیری شد که شامل روشنایی های متفاوت  می با شد. یک رویکرد دینامیکی فازی مبتنی بر خواص پیکسا های تصویر وجود دارد. توطعه پیدا کرد شبکه عصبی min-max بر پایه تکنیک های قعه بندی تصاویر (FMMSIS) برای کشف تصاویر مصنوعی. روش ارائه شده برای پیدا کردن مرزهای مینیمم مربعی (MBR) برای نمایش اشیاء در تصاویر بکار می رود.برچسب عصب فازی یک نمونه قابل توجیه مبتنی بر بردار تدریجی، الگوریتم  عصب گازی در جهت نماهای خوشه بندی است.

سیستم های فازی عصبی مبتنی بر یک نوع جدید از شبکه های عصبی مصنوعی هستند که  شبکه عصبی افزاینده وزن دار نامیده می شود (WINN). این سیستم ها  در سه گام عمل میکند: در ابتدا مجموعه داده های ورودی وزن دهی می شوند در شبکه . انعکاس پیدا می کنند و  شامل کاهش دهنده ها می شود .

در گام بعدی از نتایج وزن های اتصالات شبکه  برای رویه ی آب پخشان در مسائل تک بعدی استفاده می شود.تعدادی از جداکننده های اتصالات وزن دار زیر شبکه ها خوشه هایی را با یک زیر شبکه برای هر خوشه  بدست می آورد. در هر صورت همه ی گره های زیر شبکه دارای برچسب هستند. در نهایت نتایج خوشه ها بر روی مجموعه داده های مورد استفاده ورودی طبقه بنده های مجاور نگاشت می شود.رویکردها ی کاهش حافظه و  محاسباتی دارای data setهای بزرگی هستند.

ج- رویکردهای مبتنی بر الگوریتم ژنتیک

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

 ۱) کاربرد پارامترهای انتخابی قطعه بندی برای استخراج قطعات خروجی

۲) کاربرد پیکسل های سطحی قطعه بندی برای استخراج برچسب نواحی

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

د- wavelet

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

نتیجه گیری

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

نتیجه کلی که می توان از این مقاله گرفت این است که رنگ ها قابلیت آستانه گیری در قطعه بندی را دارند.

۱۰ شهریور ۱۳۹۸/0 نظرها/توسط م. دلیری
http://behsanandish.com/wp-content/uploads/Untitled-3.png 300 881 م. دلیری https://behsanandish.com/wp-content/uploads/logo-farsi-englisi-300x195-1.png م. دلیری2019-09-01 14:45:102019-08-30 16:18:46پردازش و قطعه بندی تصاویر رنگی



استخدام برنامه نویس آشنا به پردازش تصویر
بیمه + حقوق + پاداش

  • سامانه مدیریت پارکینگ خصوصی بهسان در شرکت توزیع برق شهر کرد۲ مرداد ۱۴۰۰ - ۰۵:۳۲
  • سامانه ثبت تردد جاده ای بهسان درشهرداری چرمهین۲۶ خرداد ۱۴۰۰ - ۱۱:۲۳
  • سامانه مدیریت پارکینگ خصوصی بهسان در شرکت توزیع برق شهر کرد۱۳ خرداد ۱۴۰۰ - ۰۶:۰۸
  • سامانه جامع مدیریت پارکینگ بهسان۲۶ آبان ۱۳۹۹ - ۱۲:۱۴

دسته‌ها

  • آموزش پردازش تصویر در نرم افزار متلب (Matlab)
  • آموزش عمومی پردازش تصویر و بینایی ماشین
  • آموزش های زبان برنامه نویسی سی شارپ
  • آموزش های عمومی هوش مصنوعی
  • اخبار
  • بینایی ماشین (Machine Vision) و بینایی کامپیوتر
  • پردازش تصویر با کتابخانه متن باز OpenCV
  • پروژه ها و سورس کدهای پردازش تصویر و بینایی ماشین
  • پروژه ها و سورس کدهای هوش مصنوعی
  • تشخيص پلاک خودرو
  • تشخیص نوری کاراکتر و تشخیص دست خط
  • تشخیص هویت زیست سنجی
  • دسته‌بندی نشده
  • دوربین (camera)
  • مقالات
  • مقالات ، سمینارها و کنفرانس های پردازش تصویر
  • مقالات، سمینارها و کنفرانس های هوش مصنوعی
  • هوش محاسباتی
  • وبلاگ

تلفن های تماس:

تلفن: ۹۱۰۰۱۸۸۱(۰۳۱)
بازرگانی و فروش:۰۹۳۶۷۳۷۸۴۶۹
پشتیبانی: ۰۹۱۱۷۶۱۰۲۷۵

ساعات کاری

از شنبه تا چهارشنبه : ۰۹:۰۰ تا ۱۷:۰۰

پنچ شنبه ها : از ۰۹:۰۰ تا ۱۳:۳۰

پیوند ها :

  • درخواست دمو
  • مطالب و آموزش ها
  • همکاری با بهسان اندیش
  • درباره ما

محصولات :

  • پلاک خوان
  • نرم افزار ثبت تردد جاده ای
  • نرم افزار مدیریت پارکینگ
  • نرم افزار مدیریت کارواش
  • نرم افزار تعمیرگاه خودرو
  • نرم افزار جامع مدیریت باسکول
  • ماژول رله کنترل راهبند
تمامی حقوق مالکیت معنوی این ‌سایت برای شرکت بهسان اندیش سپهر، محفوظ است.
  • Instagram
  • Facebook
  • Youtube
  • Linkedin
  • Mail
رفتن به بالا