بایگانی برچسب برای: هوش مصنوعی

منطق فازی (fuzzy logic) چیست؟

منطق فازی (Fuzzy Logic) قسمت 1
منطق فازی (Fuzzy Logic) قسمت 2

در سال 1965 توسط دکتر لطفی زاده معرفی شد.
منطق فازی در واقع میگه که یه گزاره لزومی نداری یا درست باشه یا غلط (صفر باشه یا یک) ممکنه مثلا یه گزاره 0.7 درست باشه!
درکش یه مقدار در ابتدا سخته! بگذارید یه مثال بزنم، شما از دوستتون می پرسید بنظرت حسین بلنده یا نه؟ دوستتون جواب میده ایییی، بلند نیست اما کوتاه هم نمیشه بهش گفت! اما در منطق باینری (یا منطقی که اکثر ما باهاش تو کامپیوتر آشنا هستیم) هیچ وقت برای یه گزاره همچین جوابی نمیده.
توی منطق باینری ما میگیم اگه قد مساوی یا بلند تر از 175 بود بگو بلند اگه کوتاه تر بود بگو کوتاه! اما آدم اینطوری نیست منطقش مثل مثال قبلی که زدم.
حالا این سوال پیش میاد که ما در حال حاضر از همین منطق باینری جواب های خیلی خوبی میگیریم، فازی به چه دردی میخوره؟
برای جواب به این سوال یه مثال دیگه میزنم! مثلا یه شرکت می خواد یه کارخونه بزنه در فاصله ی ماکزیمم 200 کیلومتری تهران، که به تولید کننده ی یه مدل مواد اولیه نزدیک تر از 10 کیلومتر باشه و قیمت زمین هم اونجا هر چی کمتر باشه بهتر.اول یه بار با منطق باینری میریم پیش، اولین نمونه فاصلش با تهران 190 هست و با مواد اولیه هم 9 کیلومتر فاصله داره و قیمت زمین هم اونجا 2000 واحد هست، چندین تا نمونه دیگه هم برسی میشن که دو شرط اول رو ندارن، در آخر هم یه نمونه پیدا میشه که فاصلش تا تهران 201 کیلومتر هست و فاصلش با مواد اولیه 3 کیلومتره و قیمتش هم 1000 واحده! طبق منطق باینری این نمونه رد میشه چون فاصلش 201 هست و بیشتر از 200! اما حالا فرض کنید خود شما دارین تصمییم میگیرین، می یاین می بینید دو شرط آخر این مورد خیلی بهتر از اولین نمونس و تنها مشکل شرط اوله که 1 کیلومتر بیشتر از اون چیزیه که میخواین، با خودتون میگید خوب 1 کیلومتر در مقابل اون شرایط خوب که چیزی نیس و این مورد آخر رو انتخاب می کنید!
منطق فازی دقیقا همینو میگه! یعنی مثل منطق باینری که کاملا سخت گیرانه شرایط رو چک میکنه عمل نمی کنه بلکه مثل مغز آدم انعطاف پذیره.
این روزا تو خیلی چیزها از منطق فازی استفاده میشه، مثلا چند تاشون که شاید جالب باشن اینان:

  • ترمز های ABS و سیستم کروز.
  • دوربین ها
  • ماشین ظرف شویی
  • آسانسور ها
  • ماشین لباس شویی
  • بازی های رایانه ای
  • شناخت الگو ها
  • سیستم های تهویه

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

کد پی‌اچ‌پی:
IF x AND y THEN z
IF a OR b THEN c

همونطور که می دونید if در زبان برنامه نویسی چیز جدیدی نیست! اما با یه مثال ساده شاید بشه فرقش رو نشون داد.
در نظر بگیرید دارید یه سیستم تهویه طراحی می کنید، توی سیستم های فازی بجای استفاده از شرط هایی مثل temprature>60C یا 30C<temprature<60C از اصطلاحات زیر استفاده می کنیم:

کد پی‌اچ‌پی:

IF temperature IS very cold THEN stop fan

IF temperature IS cold THEN turn down fan

IF temperature IS normal THEN maintain level

IF temperature IS hot THEN speed up fan

دقیقا مثل وقتی که شما توی ماشین نشستین، می بینید هوا خیلی گرمه بدون اینکه دمای دقیق توی ماشین رو بدونید کولر ماشین رو روشن می کنید و روی دمای کم میگذارید!
اگر دقت کنید هیچ ELSEای وجود نداره، چون دما می تونه هم سرد باشه هم متوسط با درجه های مختلف!
اپراتور های AND، OR و NOT که باهاشون توی منطق باینری آشنا هستیم توی منطق فازی هم وجود دارن.
قبل از تعریف این عملگر ها باید بدونیم مجموعه های فازی یا Fuzzy sets به چه معنی هستند. همونطور که گفتیم توی منطق فازی درجه ی درستی لزوما نباید 0 یا 1 باشه و یه گزاره می تونه مثلا 0.3 درست باشه.
بعد گفتیم که تو منطق فازی می تونیم از هوای گرم یا قد بلند صحبت کنیم، اما باید اول اونارو برای سیستم فازیمون تعریف کنیم! هر کدوم از این دسته ها یه مجموعه ی فازی رو تشکیل میدن.
در واقع یه مجموعه ی فازی یه جفت (A, m) هست که A یه مجموعه هست و m یه تابع با دامنه ی A و برد [0,1]. به ازای هر x عضو (A، m(x درجه ی عضویت یا درستی x رو نشون میده!
می دونم یه کلمه از چند تا جمله ی قبل نفهمیدین الان بصورت نمودار میبینیدشون و می فهمید که چیز خیلی پیچیده ای نیست!
خوب حالا که تعریف فازی ست هارو فهمیدیم میریم که اونارو توی نمودار ببینیم و عملگر هارو هم از روی شکل و با توجه به تعریفشون بررسی کنیم:
[عکس: 6.gif]
به عنوان مثال این شکل مجموعه ی فازی جوان رو نشون میده، شما وقتی از دوستتون می پرسین بنظرت علی جوونه؟
دوستتون اگه علی 17 سالش باشه میگه آره، اگه 25 سالش باشه میگه اییی، آره هنوز میشه بهش گفت جوونه، اگه 28 سالش باشه میگه خیلی جوون نیس و اگه 50 سالش باشه میگه نه!
این مجموعه ی فازی هم در واقع همین رو میگه! همونطور که میبینید قبل از 20 سال (m(B یک هست، یعنی 0 تا 20 کاملا عضو مجموعه ی جوان هست، هر چی که میریم جلوتر عضویت توی مجموعه ی جوانی کمتر شده، توی 25 سالگی درجه ی عضویت یا درستی 0.5 هست و توی 28 سالگی 0.2 و بعد از 30 سالگی 0 که یعنی از این سن به بعد اصلا جوان نیست!
بنظرم الان یکم بهتر مطلب جا افتاده باشه! حالا فرض کنید دو تا مجموعه ی فازی زیر رو داشته باشیم:
[عکس: 7.gif]
[عکس: 8.gif]
مجموعه ی اول رو در ابتدا در نظر میگیریم. تعریف NOT توی شکل بصورت زیره:
[عکس: 9.gif]
یا به عبارتی:

کد پی‌اچ‌پی:
NOT A = (1- m(A))

خوب حالا دو مجموعرو که بالاتر نمودارشون هست رو در نظر بگیرین، تعریف AND روی اون دو مجموعه بصورت زیره:
[عکس: 10.gif]
یا به عبارتی:

کد پی‌اچ‌پی:
A AND B = minimum(m(A), m(B))

OR هم قاعدتا تا الان حدس زدید به چه صورت خواهد بود:
[عکس: 11.gif]

کد پی‌اچ‌پی:
A OR B = maximum(m(A), m(B))[/list]

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


منطق فازی

منطق فازی (fuzzy logic) اولین بار در پی تنظیم نظریهٔ مجموعه‌های فازی به وسیلهٔ پروفسور لطفی زاده (۱۹۶۵ م) در صحنهٔ محاسبات نو ظاهر شد.
واژهٔ fuzzy به معنای غیردقیق، ناواضح و مبهم (شناور) است.

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

مقدمه

دانش مورد نیاز برای بسیاری از مسائل مورد مطالعه به دو صورت متمایز ظاهر می‌شود:

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

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

تاریخچه

منطق فازی بیش از بیست سال پس از ۱۹۶۵ از درگاه دانشگاه‌ها به بیرون راه نیافت زیرا کمتر کسی معنای آنرا درک کرده بود. در اواسط دهه ۸۰ میلادی قرن گذشته صنعتگران ژاپنی معنا و ارزش صنعتی این علم را دریافته و منطق فازی را به کار گرفتند. اولین پروژه آنها طرح هدایت و کنترل تمام خودکار قطار زیرزمینی شهر سندای بود که توسط شرکت هیتاچی برنامه‌ریزی و ساخته شد. نتیجهٔ این طرح موفق و چشم‌گیر ژاپنی‌ها به طور ساده اینگونه خلاصه می‌شود: آغاز حرکت نامحسوس (تکان‌های ضربه‌ای) قطار، شتاب‌گرفتن نامحسوس، ترمز و ایستادن نامحسوس و صرفه جویی در مصرف برق.

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

ملاحظات آغازین

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

مجموعه‌های قطعی

مجموعه‌های قطعی (Crisp sets) درواقع همان مجموعه‌های عادی و معمولی هستند که در ابتدای نظریهٔ کلاسیک مجموعه‌ها معرفی می‌شوند. افزودن صفت قطعی به واقع وجه تمایزی را ایجاد می‌نماید که به کمک آن می‌شود یکی از مفاهیم ابتکاری و حیاتی در منطق فازی موسوم به تابع عضویت را به آسانی در ذهن به وجود آورد.

در حالت مجموعه‌های قطعی، تابع عضویت فقط دو مقدار در برد خود دارد (در ریاضیات، برد یک تابع برابر با مجموعه تمام خروجی‌های تابع است).

آری و خیر (یک و صفر) که همان دو مقدار ممکن در منطق دوارزشی کلاسیک هستند؛ بنابراین:

{\displaystyle \mathbf {\mu } _{A}(x)=\left\{{\begin{matrix}1&{\mbox{if}}\ x\in A,\\0&{\mbox{if}}\ x\notin A.\end{matrix}}\right.}

که در اینجا {\displaystyle \mathbf {\mu } _{A}(x)} تابع عضویت عنصر x در مجموعه قطعی A است.

مجموعه‌های فازی

مجموعه‌های فازی (fuzzy sets) از تعمیم نظریهٔ کلاسیک مجموعه‌ها حاصل می‌آید که در منطق فازی کاربرد دارد.

برد تابع عضویت از {\displaystyle \{0,1\}} در مورد مجموعه‌های قطعی به بازهٔ بستهٔ {\displaystyle [0,1]} برای مجموعه‌های فازی تبدیل می‌شود.

متغیرهای زبانی

منطق فازی دما

متغیرهای زبانی به متغیرهایی گفته می‌شود که مقادیر مورد قبول برای آن‌ها به جای اعداد، کلمات و جملات زبان‌های انسانی یا ماشینی هستند.
همانگونه که در محاسبات ریاضی از متغیرهای عددی استفاده می‌گردد، در منطق فازی نیز از متغیرهای زبانی (گفتاری یا غیر عددی) استفاده می‌گردد. متغیرهای زبانی بر اساس ارزش‌های زبانی (گفتاری) که در مجموعه عبارت (کلمات/اصطلاحات) قرار دارند بیان می‌شود. عبارت زبانی (Linguistic terms) صفاتی برای متغیرهای زبانی هستند. به عنوان مثال: متغیر زبانی «سن» بسته به تقسیمات مورد نظر شخصی و شرایط می‌تواند مجموعه عباراتی از قبیل «نوجوان»، «جوان»، «میان سال» و «سالمند» باشد.

مجموعه عبارات (اصطلاحات) فازی (سن) = { «جوان»، «نه جوان»، «نه چندان جوان»، «خیلی جوان» ،… ، «میان سال»، «نه چندان میان سال»… ، «پیر»، «نه پیر»، «خیلی پیر»، «کم و بیش پیر»… ، «نه خیلی جوان و نه خیلی پیر»، «نه جوان و نه پیر»…}

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

{پایین، بالا، ضعیف، متوسط، قوی} = (فشار)T

توابع عضویت

درجه عضویت \mu _{{A}}(x) بیانگر میزان عضویت عنصر x به مجموعه فازی {\tilde A} است. اگر درجه عضویت یک عنصر از مجموعه برابر با صفر باشد، آن عضو کاملاً از مجموعه خارج است و اگر درجه عضویت یک عضو برابر با یک باشد، آن عضو کاملاً در مجموعه قرار دارد. حال اگر درجه عضویت یک عضو مابین صفر و یک باشد، این عدد بیانگر درجه عضویت تدریجی می‌باشد.

عدم قطعیت

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

انگیزه‌ها و اهداف

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

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

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

متغیرها در طبیعت یا در محاسبات بر دو نوعند: ارزش‌های کمی که می‌توان با یک عدد معین بیان نمود و ارزش‌های کیفی که براساس یک ویژگی بیان می‌شود. این دو ارزش قابل تبدیل‌اند.
مثلاً در مورد قد افراد، اگر آن‌ها با ارزش عددی (سانتی‌متر) اندازه‌گیری نماییم و افراد را به دسته‌های قدکوتاه و قدبلند تقسیم‌بندی کنیم و در این دسته‌بندی، حد آستانه ۱۸۰ سانتی‌متر برای بلندی قد مدنظر باشد، در اینصورت تمامی افراد زیر ۱۸۰ سانتی‌متر براساس منطق قدیم قد کوتاه‌اند. حتی اگر قد فرد ۱۷۹ سانتی‌متر باشد؛ ولی در مجموعه فازی هر یک از این صفات براساس تابع عضویت تعریف و بین صفر تا یک ارزشگذاری می‌شود.

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

کاربردهای صنعتی

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

برخی از کاربردها عبارتند از:

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

نرم‌افزارهای برای سیستم منطق فازی

  • Peach محاسبات هوشمند در پایتون
  • DotFuzzy کتابخانهٔ متن‌باز منطق فازی سی شارپ
  • JFuzzyLogic بستهٔ نرم‌افزاریِ متن باز منطق فازی برای جاوا
  • بسته pyFuzzyLib کتابخانهٔ منطق فازی در پایتون
  • بسته pyfuzzy کتابخانهٔ منطق فازی در پایتون
  • FisPro سیستم استنتاج فازی حرفه‌ای
  • (KBCT (Knowledge Base Configuration Tool ابزار پیکربندی پایگاه اطلاعات

منبع

منطق فازی (Fuzzy Logic) قسمت 1
منطق فازی (Fuzzy Logic) قسمت 2

ردیابی دقیق اشیاء بر اساس اطلاعات حرکت و الگوریتم k-means اتوماتیک

ﭼﮑﯿﺪه

ردﯾﺎﺑﯽ اﺷﯿﺎء ﻣﺘﺤﺮك ﯾﮑﯽ از ﭘﺮﮐﺎرﺑﺮدﺗﺮﯾﻦ ﻣﻘﻮﻟﻪﻫﺎ در ﺣﻮزه ﺑﯿﻨﺎﯾﯽ ﻣﺎﺷﯿﻦ ﻣﯽﺑﺎﺷﺪ ﮐﻪ در ﻃﻮل دﻫﻪﻫﺎي اﺧﯿﺮ ﺗﻮﺟﻪ ﻣﺤﻘﻘﺎن زﯾﺎدي را ﺑﻪ ﺧﻮد ﺟﻠﺐ ﮐﺮده اﺳﺖ .در اﯾﻦ ﻣﻘﺎﻟﻪ روﺷﯽ ﺟﺪﯾﺪ ﺑﺮاي ردﯾﺎﺑﯽ ﭼﻨﺪﯾﻦ ﺷﯽ ﻣﺘﺤﺮك ﺑﺼﻮرت ﻫﻤﺰﻣﺎن اراﺋﻪ ﻣﯽﮐﻨﯿﻢ. ﺑﺮاي اﯾﻦ ﮐﺎر اﺑﺘﺪا از اﻃﻼﻋﺎت ﺣﺮﮐﺖ ﻣﺮﺑﻮط ﺑﻪ “ﻧﻘﺎط وﯾﮋﮔﯽ ﺧﻮب ﺑﺮاي ردﯾﺎﺑﯽ” ﺑﺮاي ﺑﺪﺳﺖ آوردن ﻧﻘﺎط وﯾﮋﮔﯽ ﻣﺮﺗﺒﻂ ﺑﻪ اﺷـﯿﺎء ﻣﺘﺤـﺮك اﺳـﺘﻔﺎده ﺧﻮاﻫﯿﻢ ﮐﺮد. ﭘﺲ از اﯾﻨﮑﻪ ﻧﻘﺎط وﯾﮋﮔﯽ ﻣﺮﺗﺒﻂ ﺑﻪ اﺷﯿﺎء ﻣﺘﺤﺮك را ﻣﺸﺨﺺ ﮐﺮدﯾﻢ ﺑﺎ اﺳﺘﻔﺎده از اﻟﮕﻮرﯾﺘﻢ ﺧﻮﺷﻪﺑﻨﺪي k-means ﮐـﻪ در آن ﺗﻌﺪاد ﮐﻼﺳﺘﺮﻫﺎ ﺑﺪون داﺷﺘﻦ اﻃﻼﻋﺎت ﻗﺒﻠﯽ در ﻣﻮرد ﺗﻌﺪاد و ﻧﻮع اﺷﯿﺎء ﺑﺼﻮرت اﺗﻮﻣﺎﺗﯿﮏ ﺗﺨﻤﯿﻦ زده ﻣﯽﺷﻮد ﺑﻪ ﺧﻮﺷﻪﺑﻨﺪي ﻧﻘـﺎط وﯾﮋﮔﯽ ﺑﻌﻨﻮان اﺷﯿﺎء ﻣﺘﺤﺮك ﻣﺠﺰا بررسی خواهیم کرد .در اﯾﻦ ﻣﻘﺎﻟﻪ از ﺑﺮدار وﯾﮋﮔﯽ ﺷﺎﻣﻞ اﻧﺪازه ﺣﺮﮐﺖ، ﺟﻬﺖ ﺣﺮﮐﺖ، ﺷﺪت روﺷﻨﺎﯾﯽ و ﻣﻮﻗﻌﯿﺖ ﻧﻘﺎط وﯾﮋﮔﯽ اﺳﺘﻔﺎده ﮐﺮدﯾﻢ .ﻧﺘﺎﯾﺞ روش ﭘﯿﺸﻨﻬﺎدي ﻧﺸﺎن دﻫﻨﺪه دﻗﺖ ﺑﺎﻻ ﺑﺮاي ﺗﺨﻤﯿﻦ ﺗﻌﺪاد اﺷﯿﺎء ﻣﺘﺤﺮك ﻣﻮﺟﻮد در ﺻﺤﻨﻪ و ردﯾﺎﺑﯽ ﺳﺮﯾﻊ آنﻫﺎ دارد.

ﮐﻠﻤﺎت ﮐﻠﯿﺪي

اﺷﯿﺎء ﻣﺘﺤﺮك، ردﯾﺎﺑﯽ، ﻧﻘﺎط وﯾﮋﮔﯽ ﺧﻮب ﺑﺮای ردیابی، KLT

فایل PDF – در 6 صفحه- نویسندگان : عزیز کزمیانی، ناصر فرج زاده، حامد خانی

ردیابی دقیق اشیا بر اساس اطلاعات حرکت و الگوریتم k-means اتوماتیک

پسورد فایل : behsanandish.com


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

چکیده

 

 

 

 

 

 

 

 

فایل PDF – در 15 صفحه- نویسندگان : حمید رجبی، منوچهر نحوی

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

پسورد فایل : behsanandish.com

 


Image Processing Algorithms for Real-Time Tracking and Control of an Active Catheter

الگوریتم پردازش تصویر برای ردیابی زمان واقعی و کنترل کاتتر فعال

Abstract—In this paper, we investigate vision-based robotassisted active catheter insertion. A map of the vessels is extracted using image processing techniques and the locations of the junctions of the blood vessels are detected. The desired path of the catheter and the target is selected by the user/clinician. The tip of the catheter is tracked in real-time and the robot and the active catheter are controlled based on the position of the catheter inside the vessels. The active catheter is commanded by an autonomous guidance algorithm to bend in the appropriate direction at the branches. The stroke length for the robotic insertion is controlled by the autonomous guidance algorithm to ensure smooth motion of the catheter inside arteries. A PI controller has been implemented to overcome flexing in the catheter and maintain smooth motion. The catheter is autonomously guided from the point of entry to the target via appropriate commands, thereby shielding the surgeon from radiation exposure due to the X-rays in X-ray fluoroscopy and relieving him/her of stress and fatigue. Experimental results for the insertion algorithms are shown using a laboratory testbed. Index terms — Real-time catheter tracking, angioplasty, catheter insertion, tip position control, active catheter, image processing, hybrid impedance control.

فایل PDF – در 8 صفحه- نویسنده : M. Azizian , J. Jayender , R.V. Patel

Image Processing Algorithms for Real-Time Tracking and Control of an Active Catheter

پسورد فایل : behsanandish.com


BraMBLe: A Bayesian Multiple-Blob Tracker

ردیاب چندگانه بیزی

Abstract

Blob trackers have become increasingly powerful in recent years largely due to the adoption of statistical appearance models which allow effective background subtraction and robust tracking of deforming foreground objects. It has been standard, however, to treat background and foreground modelling as separate processes – background subtraction is followed by blob detection and tracking – which prevents a principled computation of image likelihoods. This paper presents two theoretical advances which address this limitation and lead to a robust multiple-person tracking system suitable for single-camera real-time surveillance applications.

The first innovation is a multi-blob likelihood function which assigns directly comparable likelihoods to hypotheses containing different numbers of objects. This likelihood function has a rigorous mathematical basis: it is adapted from the theory of Bayesian correlation, but uses the assumption of a static camera to create a more specific back- ground model while retaining a unified approach to back- ground and foreground modelling. Second we introduce a Bayesian filter for tracking multiple objects when the number of objects present is unknown and varies over time. We show how a particle filter can be used to perform joint inference on both the number of objects present and their configurations. Finally we demonstrate that our system runs comfortably in real time on a modest workstation when the number of blobs in the scene is small.

فایل PDF – در 8 صفحه- نویسنده :M. hard , J. MacCormick

BraMBLe A Bayesian Multiple-Blob Tracker

پسورد فایل : behsanandish.com

 


Identification Of F117 Fighter With Image Processing By Using Labview

شناسایی جنگنده F117 با پردازش تصویر با استفاده از Labview

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

Abstract – In this paper, a method for tracking (identifying) the fighter F117 is introduced. Because of its individual design and also the material that is used to build the fighter body, it cannot be identified and tracked with the conventional radars. In this work, an operational method based on image processing and by using LabView software is presented. By extraction the special geometrical properties of this fighter, an accurate and high speed tracking system is introduced.

Keywords – Boundary conditions, Cameras, Data acquisition , Entropy

فایل PDF – در 4 صفحه- نویسنده :H. Ghayoumi zadeh , H. Goodarzi dehrizi , J. Haddadnia

Identification Of F117 Fighter With Image Processing By Using Labview

پسورد فایل : behsanandish.com


Multi-Camera Multi-Person Tracking for EasyLiving

ردیابی چند نفره چند دوربین برای زندگی بهتر

Abstract : While intelligent environments are often cited as a reason for doing work on visual person-tracking, really making an intelligent environment exposes many realworld problems in visual tracking that must be solved to make the technology practical. In the context of our EasyLiving project in intelligent environments, we created a practical person-tracking system that solves most of the real-world problems. It uses two sets of color stereo cameras for tracking multiple people during live demonstrations in a living room. The stereo images are used for locating people, and the color images are used for maintaining their identities. The system runs quickly enough to make the room feel responsive, and it tracks multiple people standing, walking, sitting, occluding, and entering and leaving the space.
Keywords: multi- person tracking, multiple stereo/color cameras, intelligent environment

فایل PDF – در 8 صفحه- نویسنده :John Krumm, Steve Harris, Brian Meyers, Barry Brumitt, Michael Hale, Steve Shafer

Multi-Camera Multi-Person Tracking for EasyLiving

پسورد فایل : behsanandish.com


Real-Time Multitarget Tracking by a Cooperative Distributed Vision System

پیگیری چند هدفه در زمان واقعی توسط سیستم بینایی توزیع شده تعاونی

Target detection and tracking is one of the most important and fundamental technologies to develop real-world computer vision systems such as security and traffic monitoring systems. This paper first categorizes target tracking systems based on characteristics of scenes, tasks, and system architectures. Then we present a real-time cooperative multitarget tracking system. The system consists of a group of active vision agents (AVAs), where an AVA is a logical model of a network-connected computer with an active camera. All AVAs cooperatively track their target objects by dynamically exchanging object information with each other. With this cooperative tracking capability,the system as a whole can trackmultiple moving objects persistently even under complicated dynamic environments in the real world. In this paper, we address the technologies employed in the system and demonstrate their effectiveness.
Keywords—Cooperative distributed vision, cooperative tracking, fixed-viewpoint camera, multi-camera sensing, multitarget tracking, real-time cooperation by multiple agents, real-time tracking.

فایل PDF – در 15 صفحه- نویسنده :TAKASHI MATSUYAMA AND NORIMICHI UKITA

Real-Time Multitarget Tracking by a Cooperative Distributed Vision System

پسورد فایل : behsanandish.com


Machine Vision: Tracking I

بینایی ماشین: ردیابی-بخش 1

فایل PDF از یک فایل Power Point – در 31 صفحه- نویسنده :ناشناس

MachineVision_4

پسورد فایل : behsanandish.com

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

منبع

انسان موجود کاملی نیست و به همین دلیل همواره نیازهای فراوانی در زندگی وی ظاهر می‌شوند. این نیازها در ادوار مختلف تمدن بشری، از نظر نوع و شدت، تغییرات فراوانی داشته‌اند. در بسیاری از مواقع، نیازهای دو نسل پیاپی از انسان‌ها، تفات‌های بسیاری با هم دارند و مسائلی برای افراد یک نسل اهمیت دارند که نسل پیشین یا پسین، کاملا نسبت به آن مسائل، بی توجه هستند. اما چیزی که در میان تمام نسل‌های بشری مشترک است، تلاش برای رفع نیازها و کمبودهای ذاتی است.علی رغم کمبودها و نیازهای بسیاری که همراه انسان هستند، قدرت تفکر و نوآوری انسان، این امکان را به او می‌دهد که بتواند با ابداع و اختراع، بخش قابل توجهی از محدودیت‌ها و نیازهایش را جبران کند.
انسان از نظر توان فیزیکی، موجودی محدود است. در میان جاندارانی که در خشکی، دریا و هوا حرکت می‌کنند؛ انسان جایگاه قابل توجهی ندارد. سرعت حرکت انسان در خشکی و آب،کاملا محدود است. اقامت انسان در زیر آب فقط محدود به مدت زمان کوتاهی بوده و پرواز در آسمان نیز برای انسان غیر ممکن است. انسان قدرت بلند کردن هر وزنه‌ای را ندارد. با درک چنین نیازهایی، در طول قرون و اعصار مختلف، اختراعاتی چون: هواپیما، کشتی، چاقو، جرثقیل، لباس و تجهیزات غواصی و طناب اختراع شده‌اند. تمامی اختراعات یاد شده، در جهت رفع محدودیت‌های فیزیکی انسان‌ها ایجاد شده‌اند.
پس از مدتی که تمدن نوپای بشری کار خود را آغاز نمود، نوع دیگری از نیازها برای انسان مطرح شدند. نیازهایی که در مقایسه با نیازهای فیزیکی، قدری لوکس‌تر به نظر می‌رسند. انسان در این مرحله، علاقه‌مند به ثبت وقایع و دستاوردهای خود شد. نقاشی‌هایی که امروزه در غارها کشف می‌شوند و سنگ‌نوشته‌ها و کتیبه‌هایی که در موزه‌های مختلف وجود دارند نشان از علاقه‌مندی بشر، به حفظ و انتقال اطلاعات دارد. نیاز به ذخیره‌سازی و تبادل اطلاعات، در زمان‌های مختلف توسط بشر حس شده است و اختراعات و ابداعاتی از قبیل دیسک‌های نوری، دوربین عکاسی، خط، تلفن، کبوتر نامه‌بر، و اینترنت، همگی محصول توجه به این نیاز بوده‌اند.
دسته‌ی دیگری از محدودیت‌هایی که انسان رفته رفته بیشتر با آن‌ها روبرو شد، و سعی در رفع آن‌ها نمود، شامل خستگی، محدودیت سرعت کار، و عدم مصونیت از خطا است. به عنوان مثال، محاسبات سنگین و حجیم، حتی اگر توسط انسان قابل انجام هم باشد؛ قطعا مصون از خطا و اشتباه نخواهد بود. انسان نمی‌تواند یک طرح را صدها بار بدون هیچ تفاوت (حتی جزئی) اجرا نماید. ساعات کار مفید انسان، در هر کاری که باشد، کاملا محدود و متاثر از محدودیت‌های فیزیکی اوست. به خصوص اگر ماهیت کار به نوعی باشد که با قوای فکری و محاسباتی انسان مرتبط باشد. قطعا با طولانی‌تر شدن زمان کار، کیفیت کار نیز خدشه‌دار خواهد شد. این نوع از نیازها و محدودیت‌ها منجر به ایجاد اختراعاتی چود ساعت، چاپگر، و کامپیوتر شدند. این اختراعات، مجموعه‌ای از کارها (احتمالا تکراری) را بدون هیچ خستگی یا خطایی انجام می‌دهند.
بشر امروز، علاوه بر نیازهای فیزیکی، ثبت و انتقال اطلاعات و پردازش دقیق نوع دیگری از نیاز را تجربه می‌کند. نیازی که تا 50 سال پیش، هیچ گاه به صورت جدی برای انسان مطرح نشده بود. تا پیش از این، انسان در پی ایجاد ابزارهایی بود که به جای او: کارهای فیزیکی انجام دهند، اطلاعات را به یاد داشته باشند (و منتقل کنند) و به جای او محاسبه کنند! اما امروزه انسان در پی ایجاد ابزارها و ادواتی است که به جای او فکر کنند، یاد بگیرند و تصمیم گیری کنند. ابزارهایی که از قدرت تحلیل و هوش انسان تقلید می‌کنند. به این ترتیب بود که هوش مصنوعی (Artificial Intelligence) به عنوان یکی از نیازهای عصر جدید مورد توجه انسان‌ها قرار گرفت.
فرض کنید که به جای استفاده از یک هوش انسانی در زمینه کنترل امنیت یک سازمان یا اداره، از سیستمی استفاده شود که قدرت تشخیص اثر انگشت، چهره و صدای افراد را دارد و می‌تواند تمام افراد وارد شونده یا خارج شونده را شناسایی نماید. این کاربرد نمونه، نیازمند استفاده از چندین تخصص از رشته‌های مختلف علمی و مهندسی است که اصلی‌ترین مورد در میان آن‌ها، بحث هوش مصنوعی می باشد. سیستم‌هایی همچون خلبان خودکار در هواپیما، کنترل کننده‌های ترافیک شهری، ادوات مراقبت پزشکی هوشمند، ابزارهای تبدیل صوت به متن و روبات‌های هوشمند، از جمله مظاهر استفاده از هوش مصنوعی در زندگی روزمره هستند.
هوش مصنوعی از جمله مباحثی است که تا پیش از اختراع کامپیوترها صحبت کردن در مورد آن‌ها عملا غیر ممکن بود. پس از ورود کامپیوترها به زندگی بشری بود که بحث در خصوص هوش مصنوعی به یکی از مباحث داغ تبدیل شد. هوش مصنوعی از نظر علمی، بخشی از علوم کامپیوتر است و امروزه به عنوان مبحثی اساسی و کاربردی در رشته‌های مختلف علوم پایه و مهندسی مورد مطالعه و پژوهش قرار می‌گیرد. اطلاعات بیشتر درباره آن را می توانید در این دو بخش (1 – 2) بخوانید.

هوش محاسباتی (Computational Intelligence)

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

محاسبات تکاملی (Evolutionary Computation)

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

هوش ازدحامی (Swarm Intelligence)

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

شبکه‌های عصبی مصنوعی (Artificial Neural Networks)

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

سیستم‌های فازی (Fuzzy Systems)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


شبکه‌های عصبی مصنوعی

شبکه های عصبی مصنوعی یا شبکه های عصبی صناعی (Artificial Neural Network – ANN) یا به زبان ساده‌تر شبکه های عصبی سیستم‌ها و روش‌های محاسباتی نوین برای یادگیری ماشینی، نمایش دانش و در انتها اعمال دانش به دست آمده در جهت بیش‌بینی پاسخ‌های خروجی از سامانه‌های پیچیده هستند. ایدهٔ اصلی این گونه شبکه‌ها تا حدودی الهام‌گرفته از شیوهٔ کارکردسیستم عصبی زیستی برای پردازش داده‌ها و اطلاعات به منظور یادگیری و ایجاد دانش قرار دارد. عنصر کلیدی این ایده، ایجاد ساختارهایی جدید برای سامانهٔ پردازش اطلاعات است.

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

تعریف‌ها

توافق دقیقی بر تعریف شبکه عصبی در میان محققان وجود ندارد؛ اما اغلب آنها موافقند که شبکه عصبی شامل شبکه‌ای از عناصر پردازش ساده (نورونها) است، که می‌تواند رفتار پیچیده کلی تعیین شده‌ای از ارتباط بین عناصر پردازش و پارامترهای عنصر را نمایش دهد. منبع اصلی و الهام بخش برای این تکنیک، از آزمایش سیستم مرکزی عصبی و نورونها (آکسون‌ها، شاخه‌های متعدد سلولهای عصبی و محلهای تماس دو عصب) نشأت گرفته‌است، که یکی از قابل توجه‌ترین عناصر پردازش اطلاعات سیستم عصبی را تشکیل می‌دهد. در یک مدل شبکه عصبی، گره‌های ساده (بطور گسترده «نورون»، «نئورونها»، «PE «ها (» عناصر پردازش «) یا» واحدها «) برای تشکیل شبکه‌ای از گره‌ها، به هم متصل شده‌اند—به همین دلیل به آن، اصطلاح» شبکه های عصبی» اطلاق می‌شود. در حالی که یک شبکه عصبی نباید به خودی خود سازگارپذیر باشد، استفاده عملی از آن بواسطه الگوریتمهایی امکان‌پذیر است، که جهت تغییر وزن ارتباطات در شبکه (به منظور تولید سیگنال موردنظر) طراحی شده باشد.

کارکرد

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

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

اگر یک شبکه را هم‌ارز با یک گراف بدانیم، فرایند آموزش شبکه تعیین نمودن وزن هر یال و base اولیهٔ خواهد بود.

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

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

نه تنها نروفیزیولوژیست‌ها بلکه روان‌شناسان و مهندسان نیز در پیشرفت شبیه‌سازی شبکه های عصبی تأثیر داشتند. در سال ۱۹۵۸ شبکه پرسپترون توسط روزنبلات معرفی گردید. این شبکه نظیر واحدهای مدل شده قبلی بود. پرسپترون دارای سه لایه می‌باشد، به همراه یک لایه وسط که به عنوان لایه پیوند شناخته شده‌است. این سیستم می‌تواند یاد بگیرد که به ورودی داده شده خروجی تصادفی متناظر را اعمال کند. سیستم دیگر مدل خطی تطبیقی نورون می‌باشد که در سال ۱۹۶۰ توسط ویدرو و هاف (دانشگاه استنفورد) به وجود آمد که اولین شبکه های عصبی به کار گرفته شده در مسائل واقعی بودند. Adalaline یک دستگاه الکترونیکی بود که از اجزای ساده‌ای تشکیل شده بود، روشی که برای آموزش استفاده می‌شد با پرسپترون فرق داشت.

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

با وجود اینکه اشتیاق عمومی و سرمایه‌گذاری‌های موجود به حداقل خود رسیده بود، برخی محققان تحقیقات خود را برای ساخت ماشین‌هایی که توانایی حل مسائلی از قبیل تشخیص الگو را داشته باشند، ادامه دادند. از جمله گراسبگ که شبکه‌ای تحت عنوان Avalanch را برای تشخیص صحبت پیوسته و کنترل دست ربات مطرح کرد. همچنین او با همکاری کارپنتر شبکه‌های ART را بنانهادند که با مدل‌های طبیعی تفاوت داشت. اندرسون و کوهونن نیز از اشخاصی بودند که تکنیک‌هایی برای یادگیری ایجاد کردند. ورباس در سال ۱۹۷۴ شیوه آموزش پس انتشار خطا را ایجاد کرد که یک شبکه پرسپترون چندلایه البته با قوانین نیرومندتر آموزشی بود.

پیشرفت‌هایی که در سال ۱۹۷۰ تا ۱۹۸۰ بدست آمد برای جلب توجه به شبکه های عصبی بسیار مهم بود. برخی فاکتورها نیز در تشدید این مسئله دخالت داشتند، از جمله کتاب‌ها و کنفرانس‌های وسیعی که برای مردم در رشته‌های متنوع ارائه شد. امروز نیز تحولات زیادی در تکنولوژی ANN ایجاد شده‌است.

در ایران

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

دیگر نقاط دنیا

فیس‌بوک از یک شبکه عصبی مصنوعی ۹ لایه با بیش از ۱۲۰میلیون ارتباط وزنی، برای شناسایی و تشخیص چهره در طرح عمق‌صورت (به انگلیسی:DeepFace) استفاده میکند. ادعا میشود دقت شناسایی چهره در این سامانه ۹۷٪ است که در مقایسه با سامانه نسل‌بعدی‌شناسایی (به انگلیسی: Next Generation Identification) مورد استفاده اداره تحقیقات فدرال آمریکا که مدعی است تا ۸۵٪ دقت دارد جهش بلندی در جمع‌اوری و تحلیل اطلاعات شخصی محسوب میشود. قابل ذکر است فیس‌بوک بدلیل قوانین محافظت از اطلاعات شخصی در اتحادیه اروپا از این سامانه در این کشورها استفاده نمیکند.

 


معرفی شبکه عصبی مصنوعی

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

 

در این حافظه یا شبکهٔ عصبی نورونها دارای دو حالت فعال (روشن یا ۱) و غیرفعال (خاموش یا ۰) اند و هر یال (سیناپس یا ارتباط بین گره‌ها) دارای یک وزن می‌باشد. یال‌های با وزن مثبت، موجب تحریک یا فعال کردن گره غیرفعال بعدی می‌شوند و یال‌های با وزن منفی، گره متصل بعدی را غیرفعال یا مهار (در صورتی که فعال بوده باشد) می‌کنند.

 

تحقیقات اخیر

در تاریخ Dec 17, 2009 ابرکامپیوتر شرکت IBM در آمریکا توانست در حدود billion 1 (میلیارد) نورون را با حدود 10 trillion سیناپس مصنوعی شبیه‌سازی کند که نشان دهنده این واقعیت هست که نورون‌های مصنوعی به سیستم‌های قدرتمندی برای اجرا نیاز دارند و برای شبیه‌سازی مغز انسان احتمالاً به کامپیوتر کوانتومی نیاز خواهد بود. همچنین با دانستن این موضوع که مورچه ۲۵۰٬۰۰۰ نورون و زنبور در حدود ۹۶۰٬۰۰۰ و گربه ۷۶۰٬۰۰۰٬۰۰۰ نورون و در حدود 1013 سیناپس دارد می‌شود نتیجه گرفت که با ابرکاپیوترهای کنونی تا حدودی بتوان این موجودات را شبیه‌سازی کرد. (لیست موجودات مختلف بر اساس تعداد نورون‌ها و سیناپس‌ها)

 

در تاریخ Dec 9, 2014 شرکت IBM از تراشه SyNAPSE خود رونمایی کرد. این چیپ که با سرمایه‌گذاری DARPA (سازمان پروژه‌های تحقیقاتی پیشرفتهٔ دفاعی ایالت متحده) به بهره‌برداری رسیده، به گونه‌ای طراحی شده که فعالیت‌های مغز انسان را شبیه‌سازی کند و به طور کلی از چارچوب منطق بولین و باینری خارج شود. این تراشه متشکل از ۱ میلیون نورون مجازی است که با استفاده از ۲۵۶ میلیون سیناپس مجازی به یکدیگر متصل شده‌اند. سیناپس بزرگ‌ترین تراشه‌ای است که شرکت IBM تاکنون تولید کرده است، چراکه در آن ۵٫۴ میلیارد ترانزیستور استفاده شده است.

 

همچنین مجموعهٔ ترانزیستورهای مورد استفاده متشکل از ۴٫۰۹۶ هستهٔ neuroSynaptic است که روی تراشه قرار گرفته‌اند. مصرف این تراشه تنها ۷۰ میلی‌وات mW است که در مقایسه با تراشه‌های کنونی بسیار کمتر است. List of CPU power dissipation figures از نظر مقیاس، تراشهٔ سیناپس برابر با مغز یک زنبور عسل است و تعداد نئورون‌ها و سیناپس‌های مورد استفاده با آن برابری می‌کند، با این وجود این تراشه بسیار ضعیف‌تر از مغز انسان‌ها است. مغز هر انسان از حدود ۸۶ میلیارد نورون و ۱۰۰ تریلیوین سیناپس تشکیل شده است. البته تیم توسعهٔ SyNAPSE نشان داده که می‌توان با اتصال تراشه‌های سیناپس به یکدیگر، تراشهٔ بزرگ‌تر و قوی‌تری ساخت.

 

در حال حاضر IBM موفق شده یک بورد قابل برنامه‌ریزی و کارآمد با استفاده از ۱۶ عدد چیپ SyNAPSE ایجاد نماید که همگی در هماهنگی کامل با یکدیگر فعالیت می‌کنند. این بورد نمایانگر قدرت ۱۶ میلیون نورون است که بنا بر گفتهٔ محققان این پروژه، در پردازش سنتی با استفاده از تعداد زیادی رک (مکان قرارگیری چندین کامپیوتر پر قدرت بزرگ) و مجموعه‌های عظیم کامپیوتری قابل دستیابی بود؛ و با وجود مجتمع نمودن ۱۶ چیپ در یک سیستم، باز هم با مصرف نیروی به شدت پایینی روبرو هستیم که در نتیجهٔ آن حرارت بسیار پایین‌تری نیز تولید می‌شود. در حقیقت چیپ SyNAPSE جدید آنچنان انقلابی بوده و دنیای پردازش را از نگرش دیگری نمایان می‌سازد که IBM مجبور شده برای همراهی با توسعهٔ آن به ایجاد یک زبان برنامه‌نویسی جدید بپردازد و یک برنامهٔ آموزشی گستردهٔ اطلاع‌رسانی تحت نام دانشگاه SyNAPSE راه‌اندازی کند.

 

در تاریخ March 16, 2016 شرکت Google بخش DeepMind توانست توسط هوش مصنوعی خود قهرمان جهان را در بازی GO (شطرنج چینی با قدمتی بیش از ۲۵۰۰ سال) با نتیجه ۴ به ۱ شکست دهند که این دستاورد بزرگی برای هوش مصنوعی بود. گوگل در این هوش مصنوعی از تکنولوژی Deep Learning و short-term memory بهره برده است و این سیستم به نوعی مشابهTuring Machine هست اما به صورت end-to-end دارای تفاوت‌های قابل تشخیص می‌باشد و این تکنولوژی‌ها به اون اجازه داده است که با gradient descent به صورت مؤثری قابل تعلیم باشد.

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

بزرگ‌ترین نتیجهٔ توسعهٔ آلفاگو، عدم توسعهٔ این سیستم با قوانین از پیش تعیین شده است. در عوض این سیستم از روش‌های مبتنی بر یادگیری ماشین و شبکه عصبی توسعه یافته و تکنیک‌های برد در بازی گو را به خوبی یادگرفته و حتی می‌تواند تکنیک‌های جدیدی را ایجاد و در بازی اعمال کند. کریس نیکولسون، مؤسس استارت آپ Skymind که در زمینهٔ تکنولوژی‌های یادگیری عمیق فعالیت می‌کند، در این خصوص این چنین اظهار نظر کرده است: ” از سیستم‌های مبتنی بر شبکهٔ عصبی نظیر آلفاگو می‌توان در هر مشکل و مسئله‌ای که تعیین استراتژی برای رسیدن به موفقیت اهمیت دارد، استفاده کرد. کاربردهای این فناوری می‌تواند از اقتصاد، علم یا جنگ گسترده باشد. “

اهمیت برد آلفاگو :در ابتدای سال ۲۰۱۴ میلادی، برنامهٔ هوش مصنوعی Coulom که Crazystone نام داشت موفق شد در برابر نوریموتو یودا، بازیکن قهار این رشتهٔ ورزشی پیروز شود؛ اما موضوعی که باید در این پیروزی اشاره کرد، انجام ۴ حرکت پی در پی ابتدایی در این رقابت توسط برنامهٔ هوش مصنوعی توسعه یافته بود که برتری بزرگی در بازی گو به شمار می‌رود. در آن زمان Coulom پیش‌بینی کرده بود که برای غلبه بر انسان، نیاز به یک بازهٔ زمانی یک دهه‌ای است تا ماشین‌ها بتوانند پیروز رقابت با انسان‌ها در بازی GO باشند.

چالش اصلی در رقابت با بهترین بازیکن‌های گو، در طبیعت این بازی نهفته است. حتی بهترین ابررایانه‌های توسعه یافته نیز برای آنالیز و پیش‌بینی نتیجهٔ حرکت‌های قابل انجام از نظر قدرت پردازشی دچار تزلرل شده و نمی‌توانند قدرت پردازشی مورد نیاز را تأمین کنند. در واقع نیروی پردازشی این رایانه‌ها مناسب نبوده و در نتیجه زمان درازی را برای ارائهٔ نتیجهٔ قابل قبول مورد نیاز است. زمانی که ابررایانهٔ موسوم به Deep Blue که توسط IBM توسعه یافته بود، موفق شد تا در سال ۱۹۹۷، گری کاسپاروف، قهرمان شطرنج جهان را شکست دهد، بسیاری به قدرت این ابررایانه پی بردند؛ چراکه این ابررایانه با قدرت زیادی کاسپاروف را شکست داد. علت پیروزی قاطع این Deep Blue، قدرت بالای این ابررایانه در کنار قدرت تحلیل و نتیجه‌گیری از هر حرکت احتمالی ممکن در بازی بود که تقریباً هیچ انسانی توانایی انجام آن را ندارد.

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

تلاش‌های پیشین: در سال ۲۰۱۴ محققان در DeepMind، دانشگاه ادینبورگ و facebook امیدوار بودند تا با استفاده از شبکه های عصبی، سیستم‌هایی مبتنی بر شبکه های عصبی توسعه دهند که قادر باشد تا با نگاه کردن به تختهٔ بازی، همچون انسان‌ها به بازی بپردازند. محققان در فیس‌بوک موفق شده‌اند تا با کنار هم قراردادن تکنیک درخت مونت کارلو و یادگیری عمیق، شماری از بازیکنان را در بازی گو شکست دهد. البته سیستم فیس‌بوک قادر به برد در برابر CrazyStone و سایر بازیکنان شناخته شدهٔ این رشتهٔ ورزشی نشد.

سخت‌افزار مورد نیاز سیستم یادگیری عمیق دیپ مایند: براساس اطلاعات ارائه شده، سیستم DeepMind قادر است روی رایانه‌ای با چند پردازندهٔ گرافیکی نیز به خوبی کار کند؛ اما در مسابقه‌ای که آلفاگو در برابر فان هوی برگزار کرد، این سیستم مبتنی بر شبکهٔ عصبی از وجود شبکه‌های از رایانه‌ها بهره می‌برد که شامل بیش از ۱۷۰ پردازندهٔ گرافیکی Nvidia و ۱٬۲۰۰ پردازنده بود.

در تاریخ October 4, 2016 شرکت Google از نوعی رباتیک ابری رونمایی کرد که در ان شبکه های عصبی روبات‌ها قادر به به اشتراک گذاشتن یادگیری هایشان با یکدیگر بودند؛ که این عمل باعث کاهش زمان مورد نیاز برای یادگیری مهارت‌ها توسط ربات‌ها می‌شود و به جای اینکه هر ربات به شکل جداگانه عمل کند، ربات‌ها تجربه‌های خود را به صورت جمعی در اختیار یکدیگر قرار می‌دهند. برای مثال یک ربات به ربات دیگر آموزش می‌دهد که چطور کار ساده‌ای مانند در باز کردن را انجام دهد یا جسمی را جابه‌جا کند و در فواصل زمانی معین، ربات‌ها آنچه را که یادگرفته‌اند به سرور آپلود می‌کنند. ضمن این که آخرین نسخه از یادگیری آن موضوع را هم دانلود می‌کنند تا به این وسیله هر ربات به تصویر جامع‌تری از تجربه‌های فردی خود دست پیدا کند.

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

 

شبکه های عصبی مصنوعی چیست؟ قسمت 1
شبکه های عصبی مصنوعی چیست؟ قسمت 2
شبکه های عصبی مصنوعی چیست؟ قسمت 3
شبکه های عصبی مصنوعی چیست؟ قسمت 4

هوش مصنوعی چیست؟

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

هوش مصنوعی به هوشی که یک ماشین از خود نشان می‌دهد و یا به دانشی در کامپیوتر که سعی در ایجاد آن دارد گفته می‌شود. بیشتر نوشته‌ها و مقاله‌های مربوط به هوش مصنوعی آن را «دانش شناخت و طراحی عامل‌های هوشمند» تعریف کرده‌اند. یک عامل هوشمند سیستمی است که با شناخت محیط اطراف خود، شانس موفقیت خود را بالا می‌برد.[۲] جان مکارتی که واژه هوش مصنوعی را در سال ۱۹۵۶ استفاده نمود، آن را «دانش و مهندسی ساخت ماشین‌های هوشمند» تعریف کرده‌است. تحقیقات و جستجوهایی انجام شده برای رسیدن به ساخت چنین ماشین‌هایی مرتبط با بسیاری از رشته‌های علمی دیگر می‌باشد، مانند علوم رایانه، روان‌شناسی، فلسفه، عصب شناسی، علوم ادراکی، تئوری کنترل، احتمالات، بهینه سازی و منطق.

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

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

نام هوش مصنوعی در سال ۱۹۶۵ میلادی به عنوان یک دانش جدید ابداع گردید. البته فعالیت درزمینه این علم از سال ۱۹۶۰ میلادی شروع شده‌بود.

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

این اصطلاح (هوش مصنوعی) برای اولین بار توسط جان مکارتی (John Mccorthy) که از آن به‌عنوان پدر «علم و دانش تولید ماشینهای هوشمند» یاد می‌شود استفاده شد.آقای جان مکارتی مخترع یکی از زبانهای برنامه نویسی هوش مصنوعی به نام (lisp) نیز هستند. با این عنوان می‌توان به هویت هوشمند یک ابزار مصنوعی اشاره کرد. (ساختهٔ دست بشر، غیر طبیعی، مصنوعی)

حال آنکه AI به عنوان یک اصطلاح عمومی پذیرفته شده که شامل محاسبات هوشمندانه و ترکیبی (مرکب از مواد مصنوعی) می‌باشد.

از اصطلاح strong and weak AI می‌توان تا حدودی برای معرفی رده‌بندی سیستم‌ها استفاده کرد. AI‌ها در رشته‌های مشترکی چون علم کامپیوتر، روانشناسی و فلسفه مورد مطالعه قرار می‌گیرند، که مطابق آن باعث ایجاد یک رفتار هوشمندانه، یادگیری و سازش می‌شود و معمولاً نوع پیشرفتهٔ آن در ماشینها و کامپیوترها استفاده می‌شود.

آزمون تورینگ

آزمون تورینگ آزمونی است که توسط آلن تورینگ در سال ۱۹۵۰ در نوشته‌ای به نام «محاسبات ماشینی و هوشمندی» مطرح شد. در اين آزمون شرايطي فراهم مي شود كه شخصي با ماشين تعامل برقرار كند و پرسش هاي كافي براي بررسي هوشمندي او بپرسد. چنانچه در پايان آزمايش نتواند تعيين كند كه با انسان در تعامل بوده است يا با ماشين، تست تورينگ با موفقيت انجام شده است. تا كنون هيچ ماشيني از اين آزمون با موفقيت بيرون نيامده است. کوشش این آزمون برای تشخیص درستی هوشمندی یک سیستم است که سعی در شبیه سازی انسان دارد.
منبع

تعریف و طبیعت هوش مصنوعی

هنوز تعریف دقیقی که مورد قبول همهٔ دانشمندان این علم باشد برای هوش مصنوعی ارائه نشده‌است، و این امر، به هیچ وجه مایهٔ تعجّب نیست. چرا که مقولهٔ مادر و اساسی‌تر از آن، یعنی خود هوش هم هنوز بطور همه‌جانبه و فراگیر تن به تعریف نداده‌است. در واقع، می‌توان نسل‌هایی از دانشمندان را سراغ گرفت که تمام دوران زندگی خود را صرف مطالعه و تلاش در راه یافتن جوابی به این سؤال عمده نموده‌اند که: هوش چیست؟

اما اکثر تعریف‌هایی که در این زمینه ارایه شده‌اند بر پایه یکی از ۴ باور زیر قرار می‌گیرند:

1. سیستم‌هایی که به طور منطقی فکر می‌کنند
2. سیستم‌هایی که به طور منطقی عمل می‌کنند
3. سیستم‌هایی که مانند انسان فکر می‌کنند
4. سیستم‌هایی که مانند انسان عمل می‌کنند

شاید بتوان هوش مصنوعی را این گونه توصیف کرد: «هوش مصنوعی عبارت است از مطالعه این که چگونه کامپیوترها را می‌توان وادار به کارهایی کرد که در حال حاضر انسان‌ها آنها را بهتر انجام می‌دهند».

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

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

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

فلسفهٔ هوش مصنوعی

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

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

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

اتاق چینی

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

مدیریت پیچیدگی

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

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

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

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

هر چند نمونه بالا ممکن است کمی آرمانی به نگر برسد، ولی به هیچ عنوان دور از دسترس نمی‌باشد. دانشمندان, عموماً برای تولید چنین ماشینهایی، از وجود مدلهای زنده‌ای که در طبیعت وجود، به ویژه آدمی نیز سود برده‌اند.

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

تکنیک‌ها وزبان‌های برنامه نویسی هوش مصنوعی

عملکرد اولیه برنامه نویسی هوش مصنوعی ایجاد ساختار کنترلی مورد لزوم برای محاسبه سمبولیک است زبانهای برنامه نویسی LISP,PROLOG علاوه بر اینکه از مهمترین زبانهای مورد استفاده در هوش مصنوعی هستند خصوصیات نحوی ومعنایی انها باعث شده که انها شیوه‌ها و راه حل‌های قوی برای حل مسئله ارایه کنند. تاثیر قابل توجه این زبانها بر روی توسعه AI از جمله توانایی‌های انها بعنوان «ابزارهای فکرکردن» می باشد. در حقیقت همانطور که هوش مصنوعی مراحل رشد خود را طی می‌کند زبانهای LISP ,PROLOG بیشتر مطرح می‌شوند این زبانها کار خود را در محدوده توسعه سیستم‌های AIدر صنعت ودانشگاه‌ها دنبال می‌کنند و طبیعتاً اطلاعات در مورد این زبانها بعنوان بخشی از مهارت هر برنامه نویس AIمی‌باشد. PROLOGیک زبان برنامه نویسی منطقی است. یک برنامه منطقی دارای یک سری ویژگیهای قانون ومنطق است.

در حقیقت خود این نام از برنامه نویسی PROدر LOGIC می‌آید. در این زبان یک مفسر برنامه را بر اساس یک منطق می‌نویسد.ایده استفاده توصیفی محاسبهٔ اولیه برای بیان خصوصیات حل مسئله یکی از محوریتهای مشارکت PROLOG می باشد که برای علم کامپیوتر بطور کلی و بطور اخص برای زبان برنامه نویسی هوشمند مورد استفاده قرار می‌گیرند. LISP اصولاً LISP یک زبان کامل است که دارای عملکردها و لیست‌های لازمه برای توصیف عملکردهای جدید، تشخیص تناسب و ارزیابی معانی می‌باشد. LISP به برنامه نویس قدرت کامل برای اتصال به ساختارهای اطلاعاتی را می‌دهد گر چه LISP یکی از قدیمی ترین ترین زبانهای محاسباتی است که هنوز فعال است ولی دقت کافی در برنامه نویسی وطراحی توسعه باعث شده که این یک زبان برنامه نویسی فعال باقی بماند. در حقیقت این مدل برنامه نویسی طوری موثر بوده‌است که تعدادی از دیگر زبانها براساس عملکرد برنامه نویسی آن بنا شده‌اند: مثل FP ،ML ،SCHEME یکی از مهمترین برنامه‌های مرتبط با LISP برنامه SCHEME می‌باشد که یک تفکر دوباره در باره زبان در آن وجود دارد که بوسیله توسعه AI وبرای آموزش واصول علم کامپیوتر مورد استفاده قرار می‌گیرد.
منبع

عامل‌های هوشمند

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

سیستم‌های خبره

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

ﺑﺎﺯﻧﻤﺎیی و ﺍﺳﺘﺨﺮﺍﺝ ﻭﻳﮋﮔﻴﻬﺎ-سومین و آخرین بخش OCR

باﺯﻧﻤﺎیی و ﺍﺳﺘﺨﺮﺍﺝ ﻭﻳﮋﮔﻴﻬﺎ :

ﺑﺎﺯﻧﻤﺎیی ﺗﺼﺎﻭﻳﺮ ﻣﻬﻤﺘﺮﻳﻦ ﻧﻘﺶ ﺭﺍ ﺩﺭ ﺳﻴﺴﺘﻤﻬﺎﻱ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺣﺮﻭﻑ ﺍﻳﻔﺎ ﻣﻲكند. در ﺳﺎﺩﻩﺗﺮﻳﻦ ﺣﺎﻟﺖ، ﺗﺼﺎﻭﻳﺮ ﺳﻄﺢ ﺧﺎﻛﺴﺘﺮﻱ ﻳﺎ ﺑﺎﻳﻨﺮﻱ ﺑﻪ ﻳﻚ ﺑﺎﺯﺷﻨﺎﺳﻲ ﻛﻨﻨﺪﻩ ﺩﺍﺩﻩ ﻣﻲ ﺷﻮﻧﺪ. ﻟﻴﻜﻦ ﺩﺭ ﺑﻴﺸﺘﺮ ﺳﻴﺴﺘﻤﻬﺎﻱ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺑﻤﻨﻈﻮﺭ ﺍﺟﺘﻨﺎﺏ ﺍﺯ ﭘﻴﭽﻴﺪﮔﻲ ﺍﺿﺎﻓﻲ ﻭ ﺍﻓﺰﺍﻳﺶ ﺩﻗﺖ ﺍﻟﮕﻮﺭﻳﺘﻤﻬﺎ، ﻳﻚ ﺭﻭﺵ ﺑﺎﺯﻧﻤﺎیی ﻓﺸﺮﺩﻩ ﺗﺮ ﻭ ﺑﺎ ﻗﺪﺭﺕ ﺗﻤﺎﻳﺰ ﺑﻴﺸﺘﺮ ﻣﻮﺭﺩ ﻧﻴﺎﺯ است. ﺑﺮﺍﻱ ﺍﻳﻦ ﻣﻨﻈﻮﺭ ﻣﺠﻤﻮﻋﻪ ﺍﻱ ﺍﺯ ﻭﻳﮋﮔﻴﻬﺎ ﻫﺮ ﻛﻼﺱ ﺍﺳﺘﺨﺮﺍﺝ ﻣﻲشوند ﻛﻪ ﺑﻪ ﺗﺸﺨﻴﺺ ﺁﻥ ﺍﺯ ﺳﺎﻳﺮ ﻛﻼﺳﻬﺎ ﻛﻤﻚ ﻣﻲ گیرد. ﺩﺭ ﻋﻴﻦ ﺣﺎﻟﻲ ﻛﻪ ﻧﺴﺒﺖ ﺑﻪ ﺗﻐﻴﻴﺮﺍﺕ ﻣﺸﺨﺼﺎﺕ ﺍﻋﻀﺎﻱ ﻳﻚ ﻛﻼﺱ ﻣﺴﺘﻘﻞ ﺑﺎﻗﻲ ﻣﻲ ﻣﺎﻧﺪ. ﻭﻳﮋﮔﻴﻬﺎﻱ ﺍﻧﺘﺨﺎﺏ ﺷﺪﻩ ﺑﺎﻳﺴﺘﻲ ﻧﺴﺒﺖ ﺑﻪ ﺍﻋﻮﺟﺎﺟﻬﺎ ﻭ ﺗﻐﻴﻴﺮﺍﺕ ﺍﺣﺘﻤﺎﻟﻲ ﻛﻪ ﻛﺎﺭﺍﻛﺘﺮﻫﺎ ﺩﺭ ﻳﻚ ﻛﺎﺭﺑﺮﺩ ﺧﺎﺹ پیدا كنند، ﺗﻐﻴﻴﺮﻧﺎﭘﺬﻳﺮ ﺑﺎﺷﻨﺪ. ﻫﻤﭽﻨﻴﻦ ﭘﺪﻳﺪﻩﺍﻱ ﺗﺤﺖ ﻋﻨﻮﺍﻥ « ﻧﻔﺮﻳﻦ ابعادی » (Curse of Dimensionality) به ما ﻫﺸﺪﺍﺭ ﻣﻲ ﺩﻫﺪ ﻛﻪ ﺑﺎ ﻳﻚ ﻣﺠﻤﻮﻋﺔ ﺁﻣﻮﺯﺷﻲ ﻣﺤﺪﻭﺩ ﭼﻨﺎﻧﭽﻪ ﺑﺨﻮﺍﻫﻴﻢ ﺍﺯ ﻳﻚ ﻃﺒﻘﻪ ﺑﻨﺪﻱ ﻛﻨﻨﺪﺓ ﺁﻣﺎﺭﻱ ﺍﺳﺘﻔﺎﺩﻩ ﻛﻨﻴﻢ، ﺗﻌﺪﺍﺩ ﻭﻳﮋﮔﻴﻬﺎ ﺑﻄﻮﺭ ﻣﻨﻄﻘﻲ ﺑﺎﻳﺴﺘﻲ ﻛﻮﭼﻚ ﺑﺎﺷﺪ. ﺑﺮﻃﺒﻖ ﻳﻚ ﻗﺎﻧﻮﻥ ﺗﺠﺮﺑﻲ، ﺗﻌﺪﺍﺩ ﺍﻟﮕﻮﻫﺎﻱ ﺁﻣﻮﺯﺷﻲ ﻫﺮ ﻛﻼﺱ ﺑﺎﻳﺴﺘﻲ 5 تا 10 برابر ابعاد بردار ویژگی انتخابی باشد. در عمل مقتضیات ﺭﻭﺷﻬﺎﻱ ﺑﺎﺯﻧﻤﺎیی، ﺍﻧﺘﺨﺎﺏ ﺑﻬﺘﺮﻳﻦ ﺭﻭﺵ ﺑﺮﺍﻱ ﻳﻚ ﻛﺎﺭﺑﺮﺩ ﺧﺎﺹ ﺭﺍ ﺑﺎ ﻣﺸﻜﻞ ﻣﻮﺍﺟﻪ ﻣﻲﻛﻨﺪ. ﻫﻤﭽﻨﻴﻦ ﺍﻳﻦ ﻣﺴﺌﻠﻪ ﺭﺍ ﻧﻴﺰ ﺑﺎﻳﺪ ﻣﺪ ﻧﻈﺮ ﻗﺮﺍﺭ ﺩﺍﺩ ﻛﻪ ﺁﻳﺎ ﺣﺮﻭﻑ ﻳﺎ ﻛﻠﻤﺎﺗﻲ ﻛﻪ ﻣﻲ ﺑﺎﻳﺴﺖ ﺗﺸﺨﻴﺺ ﺩﺍﺩﻩ ﺷﻮﻧﺪ  ﺟﻬﺖ ﻭ ﺍﻧﺪﺍﺯﺓ ﻣﺸﺨﺼﻲ ﺩﺍﺭﻧﺪ ﻳﺎ ﺧﻴﺮ، ﺩﺳﺘﻨﻮﻳﺲ ﻳﺎ ﭼﺎﭘﻲ ﻫﺴﺘﻨﺪ، ﻭ ﻳﺎ ﻣﻤﻜﻦ ﺍﺳﺖ ﺗﺎ ﭼﻪ ﺣﺪ ﺑﻮﺳﻴﻠﺔ ﻧﻮﻳﺰ ﻣﻐﺸﻮﺵ ﺷﺪﻩ ﺑﺎﺷﻨﺪ. ﺍﺯ ﻃﺮﻑ ﺩﻳﮕﺮ ﺩﺭ ﻣﻮﺭﺩ ﺣﺮﻭﻓﻲ ﻛﻪ ﺑﻪ ﭼﻨﺪﻳﻦ ﺷﻜﻞ ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮﻧﺪ. (ﻣﺎﻧﻨﺪ ’a‘ ﻭ ’A‘) ﻣﻤﻜﻦ ﺍﺳﺖ ﻻﺯﻡ ﺑﺎﺷﺪ ﻛﻪ ﺑﻴﺶ ﺍﺯ ﻳﻚ ﻛﻼﺱ ﺍﻟﮕﻮ ﺑﻪ ﻳﻚ ﻛﺎﺭﺍﻛﺘﺮ ﺧﺎﺹ ﺗﻌﻠﻖ ﻳﺎﺑﺪ.
ﻫﻤﺎﻧﻄﻮﺭ ﻛﻪ ﻋﻨﻮﺍﻥ ﺷﺪ، ﺑﺎﺯﻧﻤﺎیی ﻳﻚ ﻣﺮﺣﻠﺔ ﺑﺴﻴﺎﺭ ﻣﻬﻢ ﺩﺭ ﺣﺼﻮﻝ ﺭﺍﻧﺪﻣﺎﻥ ﻣﻨﺎﺳﺐ ﺑﺮﺍﻱ ﺳﻴﺴﺘﻤﻬﺎﻱ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺣﺮﻭﻑ ﺍﺳﺖ؛ ﻟﻴﻜﻦ ﺟﻬﺖ ﺩﺳﺘﻴﺎﺑﻲ ﺑﻪ ﻋﻤﻠﻜﺮﺩ ﺑﻬﻴﻨﻪ ﻻﺯﻡ ﺍﺳﺖ ﻛﻪ ﺳﺎﻳﺮ ﻣﺮﺍﺣﻞ ﻧﻴﺰ ﺑﻬﻴﻨﻪ ﮔﺮﺩﻧﺪ ﻭ ﺑﺎﻳﺴﺘﻲ ﺗﻮﺟﻪ ﻧﻤﻮﺩ ﻛﻪ ﺍﻳﻦ ﻣﺮﺍﺣﻞ ﻣﺴﺘﻘﻞ ﻧﻤﻲ ﺑﺎﺷﻨﺪ. ﺍﺳﺘﺨﺮﺍﺝ ﻳﻚ ﺭﻭﺵ ﺧﺎﺹ ﺍﺳﺘﺨﺮﺍﺝ ﻭﻳﮋﮔﻴﻬﺎ، ﻃﺒﻴﻌﺖ ﺧﺮﻭﺟﻲ ﻣﺮﺣﻠﺔ ﭘﻴﺶ ﭘﺮﺩﺍﺯﺵ ﺭﺍ ﺑﻪ ﻣﺎ ﺩﻳﻜﺘﻪ ﻣﻲ ﻛﻨﺪ ﻭ ﻳﺎ ﺣﺪﺍﻗﻞ ﻣﺎ ﺭﺍ ﺩﺭ ﺍﻧﺘﺨﺎﺑﻤﺎﻥ ﻣﺤﺪﻭﺩ ﻣﻲ ﺳﺎﺯﺩ. ﺑﻌﻀﻲ ﺍﺯ ﺭﻭﺷﻬﺎﻱ ﺍﺳﺘﺨﺮﺍﺝ ﻭﻳﮋﮔﻴﻬﺎ ﺑﺮ ﺭﻭﻱ ﺗﺼﺎﻭﻳﺮ ﺳﻄﺢ ﺧﺎﻛﺴﺘﺮﻱ ﺣﺮﻭﻑ ﻣﻨﻔﺮﺩ ﻋﻤﻞ ﻣﻲ ﻧﻤﺎﻳﻨﺪ. ﺩﺭﺣﺎﻟﻴﻜﻪ ﺳﺎﻳﺮ ﺭﻭﺷﻬﺎ ﺑﺮ ﺭﻭﻱ ﺳﻤﺒﻠﻬﺎﻱ ﺑﺎ ﭘﻴﻮﺳﺘﮕﻲ ﻣﺮﺗﺒﺔ 4 یا 8 كه از ﺗﺼﻮﻳﺮ ﺑﺎﻳﻨﺮﻱ ﺍﺻﻠﻲ ﺟﺪﺍ ﮔﺮﺩﻳﺪﻩ ﻳﺎ ﺑﺮ ﺭﻭﻱ ﺳﻤﺒﻠﻬﺎﻱ ﻧﺎﺯﻙ ﺷﺪﻩ ﻳﺎ ﺑﺮ ﺭﻭﻱ ﻛﺎﻧﺘﻮﺭ ﺳﻤﺒﻠﻬﺎ ﺍﻋﻤﺎﻝ ﻣﻲ ﮔﺮﺩﻧﺪ.
ﻋﻼﻭﻩ ﺑﺮ ﺍﻳﻦ، ﻧﻮﻉ ﻓﺮﻣﺖ ﻭﻳﮋﮔﻴﻬﺎﻱ ﺍﺳﺘﺨﺮﺍﺝ ﺷﺪﻩ ﺑﺎﻳﺴﺘﻲ ﺑﺎ ﻧﻴﺎﺯﻣﻨﺪﻳﻬﺎﻱ ﻃﺒﻘﻪ ﺑﻨﺪﻱ ﻛﻨﻨﺪﺓ ﻣﻨﺘﺨﺐ ﻣﻄﺎﺑﻘﺖ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ. ﻭﻳﮋﮔﻴﻬﺎﻱ ﻧﻮﻉ ﮔﺮﺍﻓﻲ ﻳﺎ ﮔﺮﺍﻣﺮﻱ ﺑﺮﺍﻱ ﻃﺒﻘﻪ ﺑﻨﺪﻱ ﻛﻨﻨﺪﻩ ﻫﺎﻱ ﺳﺎﺧﺘﺎﺭﻱ ﻳﺎ ﻧﺤﻮﻱ ﻣﻨﺎﺳﺐ ﻣﻲ ﺑﺎﺷﻨﺪ.
ﻭﻳﮋﮔﻴﻬﺎﻱ ﮔﺴﺴﺘﻪ ﻛﻪ ﻓﺮﺿﺎﹰ ﺗﻨﻬﺎ ﺩﻭ ﻳﺎ ﺳﻪ ﻣﻘﺪﺍﺭ ﻣﺠﺰﺍ ﺩﺍﺭﻧﺪ، ﺑﺮﺍﻱ ﺩﺭﺧﺘﻬﺎﻱ ﺗﺼﻤﻴﻢ ﮔﻴﺮﻱ ﺍﻳﺪﻩ ﺁﻝ ﻣﻲ ﺑﺎﺷﻨﺪ. ﺑﺮﺩﺍﺭﻫﺎﻱ ﻭﻳﮋﮔﻲ ﺑﺎ ﻣﻘﺎﺩﻳﺮ ﺣﻘﻴﻘﻲ، ﻣﻨﺎﺳﺐ ﻃﺒﻘﻪ ﺑﻨﺪﻱ ﻛﻨﻨﺪﻩ ﻫﺎﻱ ﺁﻣﺎﺭﻱ ﻫﺴﺘﻨﺪ.
ﻫﻤﭽﻨﻴﻦ ﭼﻨﺪﻳﻦ ﻃﺒﻘﻪ ﺑﻨﺪﻱ ﻛﻨﻨﺪﻩ ﻧﻴﺰ ﻣﻤﻜﻦ ﺍﺳﺖ ﺑﻪ ﻋﻨﻮﺍﻥ ﻳﻚ ﺭﻭﺵ ﻃﺒﻘﻪ ﺑﻨﺪﻱ ﭼﻨﺪ ﻃﺒﻘﻪ ﻳﺎ ﺑﻪ ﻋﻨﻮﺍﻥ ﻃﺒﻘﻪ ﺑﻨﺪﻱ ﻛﻨﻨﺪﻩ ﻫﺎﻱ ﻣﻮﺍﺯﻱ (ﻛﻪ ﺩﺭ ﺁﻥ ﺗﺮﻛﻴﺒﻲ ﺍﺯ ﻧﺘﺎﻳﺞ ﻃﺒﻘﻪ ﺑﻨﺪﻱ ﻛﻨﻨﺪﻩ های ﻣﺠﺰﺍ ﺩﺭ ﺣﺼﻮﻝ ﻧﺘﻴﺠﺔ ﻧﻬﺎﻳﻲ ﺩﺧﺎﻟﺖ ﺩﺍﺭﻧﺪ) ﻣﻮﺭﺩ ﺍﺳﺘﻔﺎﺩﻩ ﻗﺮﺍﺭ ﮔﻴﺮﻧﺪ. ﺩﺭ ﺍﻳﻦ ﺣﺎﻟﺖ ﻣﻤﻜﻦ ﺍﺳﺖ ﻭﻳﮋﮔﻴﻬﺎﻱ ﺩﺍﺭﺍﻱ ﭼﻨﺪ ﻓﺮﻣﺖ ﻣﺨﺘﻠﻒ ﺍﺯ ﺣﺮﻭﻑ ﻭﺭﻭﺩﻱ ﺍﺳﺘﺨﺮﺍﺝ ﮔﺮﺩﻧﺪ.

قطعه بندی قسمت دوم OCR

 ﻗﻄﻌﻪ ﺑﻨﺪی :

ﻣﺮﺣﻠﺔ ﭘﻴﺶ ﭘﺮﺩﺍﺯﺵ ﻳﻚ ﺗﺼﻮﻳﺮ ﺍﺻﻼﺡ ﺷﺪﻩ ﺍﺯ ﺳﻨﺪ ﺭﺍ ﻧﺘﻴﺠﻪ ﻣﻲ ﺩﻫﺪ ﺑﮕﻮﻧﻪ ﺍﻱ ﻛﻪ ﻣﻘﺪﺍﺭ ﻛﺎﻓﻲ ﺍﺯ اطلاعات ﺷﻜﻠﻲ، ﻓﺸﺮﺩﻩ ﺳﺎﺯﻱ ﺑﺎﻻ ﻭ ﻧﻮﻳﺰ ﭘﺎﻳﻴﻦ، ﺍﺯ ﺗﺼﻮﻳﺮ ﻧﺮﻣﺎﻟﻴﺰﻩ ﺷﺪﺓ ﺳﻨﺪ ﻗﺎﺑﻞ ﺣﺼﻮﻝ است. ﻗﻄﻌﻪ ﺑﻨﺪی ﻳﻚ ﻣﺮﺣﻠﺔ ﺑﺴﻴﺎﺭ ﺑﺎ ﺍﻫﻤﻴﺖ ﺩﺭ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺣﺮﻭﻑ ﻣﺨﺼﻮﺻﺎﹰ ﺣﺮﻭﻑ ﻓﺎﺭﺳﻲ ﻭ ﻋﺮﺑﻲ ﻛﻪ ﺑﺼﻮﺭﺕ ﭘﻴﻮﺳﺘﻪ ﻧﻮﺷﺘﻪ ﻣﻲ ﺑﺎﺷﺪ؛ ﭼﺮﺍ ﻛﻪ ﻧﺘﻴﺠﺔ ﺑﺪﺳﺖ ﺁﻣﺪﻩ ﺍﺯ ﺟﺪﺍﺳﺎﺯﻱ ﻛﻠﻤﺎﺕ، ﺧﻄﻮﻁ ﻳﺎ ﻛﺎﺭﺍﻛﺘﺮﻫﺎ ﻣﺴﺘﻘﻴﻤﺎً ﺑﺮ ﺭﻭﻱ ﻧﺮﺥ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺳﻴﺴﺘﻢ ﺗﺄﺛﻴﺮ ﻣﻲ ﮔﺬﺍﺭﺩ. ﻗﻄﻌﻪ ﺑﻨﺪی ﻏﻠﻂ ﻛﺎﺭﺍﻛﺘﺮﻫﺎ، ﻋﺎﻣﻞ ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﺧﻄﺎﻫﺎﻱ OCR است.
مانند : nr →  mیا m →  nr
ﻣﻴﺰﺍﻥ ﺩﻗﺖ ﻳﻚ ﺍﻟﮕﻮﺭﻳﺘﻢ ﻗﻄﻌﻪ ﺑﻨﺪی ﺑﻪ ﺳﺒﻚ ﻧﮕﺎﺭﺵ ﺣﺮﻭﻑ، ﻛﻴﻔﻴﺖ ﺩﺳﺘﮕﺎﻩ ﭘﺮﻳﻨﺖ، ﻛﺎﺭﺍﻛﺘﺮﻫﺎﻱ ﺍﻳﺘﺎﻟﻴﻚ ﻟﻜﻪ ﺷﺪﻩ و ﻧﻴﺰ ﻧﺴﺒﺖ ﺍﻧﺪﺍﺯﺓ ﻓﻮﻧﺖ ﺑﻪ ﺭﺯﻭﻟﻮﺷﻦ ﺩﺳﺘﮕﺎﻩ ﺍﺳﻜﻨﺮ ﺑﺴﺘﮕﻲ ﺩﺍﺭﺩ.


ﺩﻭ ﻧﻮﻉ ﻗﻄﻌﻪ ﺑﻨﺪی ﻭﺟﻮﺩ ﺩﺍﺭﺩ :

الف ) ﻗﻄﻌﻪ ﺑﻨﺪی ﺑﻴﺮﻭﻧﻲ، ﻛﻪ ﻋﺒﺎﺭﺕ ﺍﺳﺖ ﺍﺯ ﺟﺪﺍﺳﺎﺯﻱ ﺑﺨﺸﻬﺎﻱ ﻣﺨﺘﻠﻒ ﻧﮕﺎﺭﺵ ﻣﺎﻧﻨﺪ ﭘﺎﺭﺍﮔﺮﺍﻓﻬﺎ، ﺟﻤﻼﺕ ﻳﺎ ﻛﻠﻤﺎﺕ
ب ) ﻗﻄﻌﻪ ﺑﻨﺪی درونی، ﻛﻪ ﻣﻨﻈﻮﺭ ﺍﺯ ﺁﻥ، ﺟﺪﺍﺳﺎﺯﻱ ﺣﺮﻭﻑ ﻛﻠﻤﺎﺕ ﻣﺨﺼﻮﺻﺎً ﺩﺭ ﻣﻮﺭﺩ ﻛﻠﻤﺎﺕ ﺳﺮ ﻫﻢ ﻧﻮﺷﺘﻪ ﺷﺪﻩ ﺩﺭ ﻣﺘﻮﻥ لاتین ﻭ ﻳﺎ ﺭﺳﻢﺍﻟﺨﻄﻬﺎﻱ ﭘﻴﻮﺳﺘﻪ ﻧﻈﻴﺮ ﻓﺎﺭﺳﻲ ﻭ ﻋﺮﺑﻲ می باشد.

ﻗﻄﻌﻪ ﺑﻨﺪی ﺑﻴﺮﻭﻧﻲ :

ﺩﺭ ﻣﻮﺍﺭﺩﻱ ﻫﻤﭽﻮﻥ ﻣﺘﻮﻥ ﻓﺎﺭﺳﻲ ﻛﻪ ﺣﺮﻭﻑ ﺑﺼﻮﺭﺕ ﺳﺮﻫﻢ ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮﻧﺪ، ﺳﻪ ﺭﻭﻳﻜﺮﺩ ﻣﺨﺘﻠﻒ ﺩﺭ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺑﺮﻭﻥ ﺧﻂ ﻣﺘﻮﻥ ﻛﻠﻤﺎﺕ ﻳﺎ ﺯﻳﺮكلمات ﻭﺟﻮﺩ ﺩﺍﺭﺩ.
الف ) ﺭﻭﻳﻜﺮﺩ ﻣﺒﺘﻨﻲ ﺑﺮ ﻗﻄﻌﻪ ﺑﻨﺪی ﻛﻠﻤﺎﺕ
ب ) ﺭﻭﻳﻜﺮﺩ ﻣﺒﺘﻨﻲ ﺑﺮ ﺑﺎﺯﺷﻨﺎﺳﻲ ﻛﻠﻤﻪ ﺑﻪ ﻋﻨﻮﺍﻥ ﻳﻚ ﺍﻟﮕﻮﻱ ﻭﺍحد
ج ) ﺭﻭﻳﻜﺮﺩ ﺗﺮﻛﻴﺒﻲ

ﻗﻄﻌﻪ ﺑﻨﺪی درﻭﻧﻲ :

ﺩﺭ ﺭﻭﻳﻜﺮﺩ ﺑﺎﺯﺷﻨﺎﺳﻲ ﻣﺒﺘﻨﻲ ﺑﺮ ﺟﺪﺍﺳﺎﺯﻱ، ﺍﺑﺘﺪﺍ ﻛﻠﻤﻪ ﺩﺭ ﻣﺮﺣﻠﺔ ﺟﺪﺍﺳﺎﺯﻱ ﺑﻪ ﺣﺮﻭﻑ ﻳﺎ ﺯﻳﺮ ﺣﺮﻭﻑ ﺷﻜﺴﺘﻪ ﻣﻲ ﺷﻮﻧﺪ.
ﺁﻧﮕﺎﻩ ﻗﻄﻌﺎﺕ ﺟﺪﺍ ﺷﺪﻩ ﺑﺎﺯﺷﻨﺎﺳﻲ ﻣﻲ شوند و ﺍﺯ ﻛﻨﺎﺭ ﻫﻢ ﻗﺮﺍﺭ ﮔﺮﻓﺘﻦ ﺁﻧﻬﺎ ﻛﻠﻤﻪ خواهد ﺷﺩ؛ ﺭﻭﺷﻬﺎﻱ ﺑﻜﺎﺭﮔﺮﻓﺘﻪ ﺷﺪﻩ ﺩﺭ ﺍﻳﻦ ﺭﻭﻳﻜﺮﺩ ﺑﻪ ﺩﻭ ﮔﺮﻭﻩ ﻣﺨﺘﻠﻒ ﺗﻘﺴﻴﻢ ﻣﻲ ﺷﻮﻧﺪ :
–    ﺗﻘﻄﻴﻊ ﻛﻠﻤﻪ ﺑﻪ ﺣﺮﻭﻑ
–    ﺗﻘﻄﻴﻊ ﻛﻠﻤﻪ ﺑﻪ ﺯﻳﺮﺣﺮﻭﻑ
ﺩﺭ ﮔﺮﻭﻩ ﺍﻭﻝ ﻛﻠﻤﻪ ﺑﻪ ﺣﺮﻭﻑ ﺟﺪﺍﺳﺎﺯﻱ می ﺷﻮﺩ ﻭ ﺑﺎ ﺷﻨﺎﺳﺎﻳﻲ ﺣﺮﻭﻑ ﺟﺪﺍ ﺷﺪﻩ، ﻛﻠﻤﻪ ﺑﺎﺯﺷﻨﺎﺳﻲ ﻣﻲ ﮔﺮﺩﺩ. ﺭﻭﻳﻜﺮﺩ ﺑﻜﺎﺭ ﮔﺮﻓﺘﻪ ﺷﺪﻩ ﺩﺭ ﺍﻳﻦ ﮔﺮﻭﻩ ﺭﺍ ﺭﻭﻳﻜﺮﺩ ﻣﺒﺘﻨﻲ ﺑﺮ ﺟﺪﺍﺳﺎﺯﻱ ﻭ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺣﺮﻭﻑ ﻣﻲ ﻧﺎﻣﻨﺪ.
ﺩﺭ ﮔﺮﻭﻩ ﺩﻭ، ﻛﻠﻤﻪ ﺑﻪ ﺯﻳﺮﺣﺮﻭﻑ ﻣﺜﻞ ﭘﺎﺭﻩ ﻣﻨﺤﻨﻲ ﻫﺎ ﻭ ﺳﺎﺧﺘﺎﺭﻫﺎﻱ ﭘﺎﻳﺔ ﺩﻳﮕﺮ ﺟﺪﺍﺳﺎﺯﻱ ﻣﻲ شود و ﺑﺎ ﺷﻨﺎﺳﺎﻳﻲ ﺯﻳﺮﺣﺮﻭﻑ ﻭ ﺗﺮﻛﻴﺐ ﺁﻧﻬﺎ ﻛﻠﻤﻪ ﺑﺎﺯﺷﻨﺎﺳﻲ ﻣﻲ ﮔﺮﺩﺩ. ﺩﺭ ﺭﻭﻳﻜﺮﺩ ﺑﻜﺎﺭ گرفته شده در ﮔﺮﻭﻩ ﺩﻭﻡ ﻛﻪ ﺍﺻﻄﻼﺣﺎﹲ ﺟﺪﺍﺳﺎﺯﻱ ﻭ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺗﻮﺃﻡ ﻧﺎﻣﻴﺪﻩ ﻣﻲ شود. نمیﺗﻮﺍﻥ ﺩﺭ ﺍﺑﺘﺪﺍ ﻣﺮﺯ ﺣﺮﻭﻑ ﺭﺍ ﺑﻄﻮﺭ ﻛﺎﻣﻞ ﻣﺸﺨﺺ ﻛﺮﺩ. ﺑﻠﻜﻪ ﺣﺮﻭﻑ ﺍﺯ ﺍﺑﺘﺪﺍ ﺑﻪ ﺍﻧﺘﻬﺎﻱ ﻛﻠﻤﻪ ﺑﻪ ﺗﺮﺗﻴﺐ ﺑﺎﺯﺷﻨﺎﺳﻲ ﻭ  ﺟﺪﺍﺳﺎﺯﻱ ﻣﻲ ﺷﻮﻧﺪ. ﺩﺭ ﻫﻴﭽﻜﺪﺍﻡ ﺍﺯ ﺩﻭ ﺷﻜﻞ ﺭﻭﻳﻜﺮﺩ ﻣﺒﺘﻨﻲ ﺑﺮ ﺟﺪﺍﺳﺎﺯﻱ، ﺑﻪ ﺷﻜﻞ ﻛﻠﻲ ﻛﻠﻤﻪ ﺗﻮﺟﻬﻲ نمی ﺷﻮﺩ ﻭ ﺳﻌﻲ ﺑﺮ ﺁﻥ ﺍﺳﺖ ﻛﻪ ﺑﺎ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺣﺮﻭﻑ ﻳﻚ ﻛﻠﻤﻪ، ﺁﻥ ﻛﻠﻤﻪ ﺷﻨﺎﺧﺘﻪ ﺷﻮﺩ.
ﺩﺭ ﺭﻭﻳﻜﺮﺩ ﺑﺎﺯﺷﻨﺎﺳﻲ ﻛﻠﻤﻪ ﺑﻪ ﻋﻨﻮﺍﻥ ﻳﻚ ﺍﻟﮕﻮﻱ ﻭﺍﺣﺪ، ﺗﻼﺷﻲ ﺑﺮﺍﻱ ﺗﻘﻄﻴﻊ ﻛﻠﻤﻪ ﺑﻪ ﺣﺮﻭﻑ ﻭ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺣﺮﻭﻑ ﻣﻮﺟﻮﺩ ﺩﺭ ﻛﻠﻤﻪ ﺻﻮﺭﺕ ﻧﻤﻲ ﮔﻴﺮﺩ ﻭ ﻛﻠﻤﻪ ﺩﺭ ﻗﺎﻟﺐ ﻳﻚ ﺍﻟﮕﻮ ﺑﺮﺭﺳﻲ ﻣﻲ گردد.
ﺭﻭﺷﻬﺎﻱ ﺑﻜﺎﺭ ﮔﺮﻓﺘﻪ ﺷﺪﻩ ﺩﺭ ﺍﻳﻦ ﺭﻭﻳﻜﺮﺩ ﺭﺍ ﻣﻲ ﺗﻮﺍﻥ ﺑﻪ ﺩﻭ ﮔﺮﻭﻩ ﺗﻘﺴﻴﻢ ﻛﺮﺩ :
ﮔﺮﻭﻩ ﺍﻭﻝ ﺭﻭﺷﻬﺎﻳﻲ ﻫﺴﺘﻨﺪ ﻛﻪ ﺗﺼﻮﻳﺮ ﻛﻠﻤﻪ ﺭﺍ ﺑﺼﻮﺭﺕ ﻳﻚ ﺍﻟﮕﻮﻱ ﺩﻭ ﺳﻄﺤﻲ ( ﺑﺎﻳﻨﺮﻱ ) ﻳﺎ ﺑﺎ ﺳﻄﻮﺡ ﺧﺎﻛﺴﺘﺮﻱ ﺩﺭ    ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻭ ﺍﺯ ﺭﻭﺷﻬﺎﻱ ﻣﻌﻤﻮﻝ ﺩﺭ ﺷﻨﺎﺳﺎﻳﻲ ﺗﺼﺎﻭﻳﺮ ﻛﻪ ﻣﻌﻤﻮﻻً ﻣﺒﺘﻨﻲ ﺑﺮ ﺗﻮﺍﺑﻊ ﻓﺎﺻﻠﻪ ﻣﻲ ﺑﺎﺷﻨﺪ ﻭ ﻳﺎ ﺭﻭﺷﻬﺎﻳﻲ ﻫﻤﭽﻮﻥ ﺷﺒﻜﻪ ﻋﺼﺒﻲ ﻭ ﻏﻴﺮﻩ ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲ ﻧﻤﺎﻳﻨﺪ.
ﮔﺮﻭﻩ ﺩﻭﻡ ﺭﻭﺷﻬﺎﻱ ﻣﺒﺘﻨﻲ ﺑﺮ ﭘﺮﺩﺍﺯﺵ ﺳﻴﮕﻨﺎﻟﻬﺎﻱ ﺗﺼﺎﺩﻓﻲ ﻫﺴﺘﻨﺪ. ﺍﻳﻦ ﺭﻭﺷﻬﺎ ﺍﺑﺘﺪﺍ ﺩﺭ ﺑﺎﺯﺷﻨﺎﺳﻲ ﮔﻔﺘﺎﺭ ﺑﻜﺎﺭ ﮔﺮﻓﺘﻪ ﺷﺪﻩ ﻭ ﺳﭙﺲ ﺩﺭ ﺯﻣﻴﻨﺔ ﺑﺎﺯﺷﻨﺎﺳﻲ ﻛﻠﻤﺎﺕ ﻣﺨﺼﻮﺻﺎً ﻛﻠﻤﺎﺕ ﺩﺳﺘﻨﻮﻳﺲ لاتین ﻣﻮﺭﺩ ﺍﺳﺘﻔﺎﺩﻩ ﻗﺮﺍﺭ ﮔﺮﻓﺘﻪ اند.

ﭘﻴﺶ ﭘﺮﺩﺍﺯﺵ-اولین بخش از کار OCR

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

ﺍﻳﻦ ﻣﺮﺣﻠﻪ ﺷﺎﻣﻞ ﻛﻠﻴﺔ ﭘﺮﺩﺍﺯﺷﻬﺎﻳﻲ ﺍﺳﺖ ﻛﻪ ﺑﺮ ﺭﻭﻱ ﺳﻴﮕﻨﺎﻟﻬﺎﻱ ﺗﺼﻮﻳﺮﻱ ﺧﺎﻡ ﺍﻧﺠﺎﻡ ﻣﻲ ﺷﻮﻧﺪ. ﺗﺎ ﻣﻮﺟﺐ ﺗﺴﻬﻴﻞ ﻳﺎ ﺍﻓﺰﺍﻳﺶ ﺩﻗﺖ ﺭﻭﻧﺪ ﺍﺟﺮﺍﻱ ﻓﺎﺯﻫﺎﻱ ﺑﻌﺪﻱ ﮔﺮﺩﻧﺪ. ﺍﺯ ﻣﺠﻤﻮﻋﺔ ﺍﻳﻦ ﭘﺮﺩﺍﺯﺷﻬﺎ، ﻫﺪﻓﻬﺎﻱ ﺯﻳﺮ ﺩﻧﺒﺎﻝ ﻣﻲ ﺷﻮﺩ :
1-    ﻛﺎﻫﺶ ﻧﻮﻳﺰ
2-    ﻧﺮﻣﺎﻟﻴﺰﻩ ﻧﻤﻮﺩﻥ ﺩﺍﺩهﻫﺎ
3-    ﻓﺸﺮﺩﻩ ﺳﺎﺯﻱ ﻣﻴﺰﺍﻥ ﺍﻃﻼﻋﺎﺗﻲ ﻛﻪ ﻣﻲ ﺑﺎﻳﺴﺖ ﻣﺤﻔﻮﻅ ﺑﻤﺎﻧﺪ.
4-    ﺑﺎﺯﺷﻨﺎﺳﻲ ﺧﻂ ، ﺯﺑﺎﻥ ﻭ ﻓﻮﻧﺖ

1-كاهش نویز

ﻧﻮﻳﺰ ﺍﻳﺠﺎﺩ ﺷﺪﻩ ﺑﻮﺍﺳﻄﺔ ﺩﺳﺘﮕﺎﻫﻬﺎﻱ ﺍﺳﻜﻨﺮ ﻧﻮﺭﻱ ﻳﺎ ﺍﺑﺰﺍﺭﻫﺎﻱ ﻧﮕﺎﺭﺷﻲ ﻣﻨﺠﺮ ﺑﻪ ﺍﻳﺠﺎﺩ ﻗﻄﻌﻪ ﺧﻄﻬﺎﻱ ﮔﺴﺴﺘﻪ ، ﺍﺗﺼﺎﻝ ﺑﻴﻦ ﺧﻄﻮﻁ، ﻓﻀﺎﻫﺎﻱ ﺧﺎﻟﻲ ﺩﺭ ﺧﻄﻮﻁ ﻣﺘﻦ، ﭘﺮ ﺷﺪﻥ ﺣﻔﺮه‌های ﻣﻮﺟﻮﺩ ﺩﺭ ﺗﺼﻮﻳﺮ ﺑﺮﺧﻲ ﺣﺮﻭﻑ ﻭ ﻏﻴﺮﻩ ﻣﻲ ﮔﺮﺩﺩ. ﻫﻤﭽﻨﻴﻦ ﺍﻋﻮﺟﺎﺟﻬﺎﻱ ﻣﺨﺘﻠﻒ ﺷﺎﻣﻞ ﺗﻐﻴﻴﺮﺍﺕ ﻣﺤﻠﻲ، ﻣﻨﺤﻨﻲ ﺷﺪﻥ ﮔﻮﺷﻪ ﺣﺮﻭﻑ، ﺗﻐﻴﻴﺮ ﺷﻜﻞ ﻭ ﻳﺎ ﺧﻮﺭﺩﮔﻲ ﺣﺮﻭﻑ ﺭﺍ ﻧﻴﺰ ﺑﺎﻳﺴﺘﻲ ﻣﺪ ﻧﻈﺮ ﻗﺮﺍﺭ ﺩﺍﺩ. ﻗﺒﻞ ﺍﺯ. ﻣﺮﺣﻠﺔ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺣﺮﻭﻑ ﻻﺯﻡ ﺍﺳﺖ ﻛﻪ ﺍﻳﻦ ﻧﻘﺎﻳﺺ ﺑﺮﻃﺮﻑ ﺷﻮﻧﺪ. یكی از ﺗﻜﻨﻴﻜﻬﺎﻱ ﻣﺨﺘﻠﻒ ﻛﺎﻫﺶ ﻧﻮﻳﺰ فیلتر كردن می‌باشد :

1-1-فیلتر كردن

ﺍﻳﻦ ﺭﻭﺵ ﺑﻪ ﺣﺬﻑ ﻧﻮﻳﺰ ﻛﻤﻚ ﻣﻲ ﻛﻨﺪ ﻭ ﻧﺎﺻﺎﻓﻴﻬﺎﻱ ﺑﺪﻧﺔ ﺣﺮﻭﻑ ﺭﺍ ﻛﻪ ﻣﻌﻤﻮﻻً ﺑﻮﺳﻴﻠﺔ ﺳﻄﻮﺡ ﻧﮕﺎﺭﺵ ﻧﺎﻫﻤﻮﺍﺭ ( ﺩﺭ ﻣﻮﺭﺩ ﻣﺘﻮﻥ ﺩﺳﺘﻨﻮﻳﺲ ) ﻭ ﻳﺎ ﻧﺮﺥ ﻧﻤﻮﻧﻪ ﺑﺮﺩﺍﺭﻱ ﺿﻌﻴﻒ ﺩﺳﺘﮕﺎﻫﻬﺎﻱ ﺍﺧﺬ ﺩﺍﺩﻩ ﺍﻳﺠﺎﺩ می‌شوند،  در مرحله پیش پردازش كاهش می‌دهد. ﻓﻴﻠﺘﺮﻫﺎﻱ ﺣﻮﺯﺓ ﻣﻜﺎﻧﻲ ﻳﺎ ﻓﺮﻛﺎﻧﺴﻲ ﻣﺘﻌﺪﺩﻱ ﺭﺍ ﻣﻲ ﺗﻮﺍﻥ ﺑﺮﺍﻱ ﺍﻳﻦ ﻣﻨﻈﻮﺭ ﻃﺮﺍﺣﻲ ﻛﺮﺩ. ﺍﻳﺪﺓ ﺍﺻﻠﻲ ﺩﺭ ﺍﻳﻦ ﺭﻭﺵ، ﻛﺎﻧﻮﻭﻟﻮ ﻛﺮﺩﻥ (Convolute) (به معنی پیچاپیچ كردن) یك ماسك از پیش تعریف شده با تصویر ﺟﻬﺖ ﺗﺨﺼﻴﺺ ﻳﻚ ﻣﻘﺪﺍﺭ ﺟﺪﻳﺪ ﺑﻪ ﭘﻴﻜﺴﻞ ﺑﺮﺣﺴﺐ ﺗﺎﺑﻌﻲ ﺍﺯ ﻣﻘﺎﺩﻳﺮ ﭘﻴﻜﺴﻠﻬﺎﻱ مجاور است. فیلترها ﺭﺍ ﻣﻲ ﺗﻮﺍﻥ ﺑﺮﺍﻱ ﻣﻘﺎﺻﺪ ﻣﺨﺘﻠﻔﻲ ﭼﻮﻥ ﻫﻤﻮﺍﺭﺳﺎﺯﻱ، ﺷﺎﺭﭖ ﻛﺮﺩﻥ ، ﺍﻋﻤﺎﻝ ﺳﻄﻮﺡ ﺁﺳﺘﺎﻧﻪ، ﺣﺬﻑ ﭘﺲ ﺯﻣﻴﻨﺔ ﺑﺎﻓﺖ ﮔﻮﻧﻪ ﻳﺎ ﺭﻧﮕﻲ ﺧﻔﻴﻒ ﻭ ﺗﻨﻈﻴﻢ ﻛﻨﺘﺮﺍﺳﺖ (ﭘﺎﺩﻧﻤﺎﻳﻲ) طراحی کرد.

2-ﻧﺮﻣﺎﻟﻴﺰﻩ ﻧﻤﻮﺩﻥ ﺩﺍﺩهﻫﺎ

ﺭﻭﺷﻬﺎﻱ ﻧﺮﻣﺎﻟﻴﺰﻩ ﻛﺮﺩﻥ ﺩﺍﺩﻩ ﻫﺎ در پیش پردازش ﺑﻪ ﺣﺬﻑ ﺗﻐﻴﻴﺮﺍﺕ ﻧﮕﺎﺭﺷﻲ ﻛﻤﻚ ﻧﻤﻮﺩﻩ و ﺩﺍﺩﻩهای ﺍﺳﺘﺎﻧﺪﺍﺭﺩ ﺷﺪﻩﺍﻱ ﺭﺍ ﻧﺘﻴﺠﻪ ﻣﻲﺩﻫﺪ.
ﺭﻭﺷﻬﺎﻱ ﭘﺎﻳﺔ ﻧﺮﻣﺎﻟﻴﺰﻩ ﻛﺮﺩﻥ ﻋﺒﺎﺭﺗﻨﺪ ﺍﺯ :

2-1-ﻧﺮﻣﺎﻟﻴﺰﻩ ﻛﺮﺩﻥ ﻛﺠﻲ ﻣﺘﻦ ﻭ ﺍﺳﺘﺨﺮﺍﺝ ﺧﻄﻮﻁ ﺯﻣﻴﻨﻪ

ﺑﺪﻳﻞ ﻋﺪﻡ ﺩﻗﺖ ﺩﺭ ﻣﺮﺣﻠﺔ ﺍﺳﻜﻦ ﻭ ﻳﺎ ﺑﻲ ﺩﻗﺘﻲ ﻧﻮﻳﺴﻨﺪﻩ ﺩﺭ ﻫﻨﮕﺎﻡ ﻧﮕﺎﺭﺵ ﻣﺘﻦ ﺩﺳﺘﻨﻮﻳﺲ، ﻣﻤﻜﻦ است ﺧﻄﻮﻁ ﻣﺘﻦ ﻧﺴﺒﺖ ﺑﻪ ﺗﺼﻮﻳﺮ ﺍﻧﺪﻛﻲ ﺍﻧﺤﺮﺍﻑ ﻳﺎ ﭼﺮﺧﺶ ﺩﺍﺷﺘﻪ ﺑﺎﺷﻨﺪ، ﺍﻳﻦ ﻣﺴﺌﻠﻪ ﻣﻲ ﺗﻮﺍﻧﺪ ﻛﺎﺭﺍﻳﻲ ﺍﻟﮕﻮﺭﻳﺘﻤﻬﺎﻱ ﺑﻜﺎﺭ ﺭﻓﺘﻪ ﺩﺭ ﻃﺒﻘﺎﺕ ﺑﻌﺪﻱ ﺳﻴﺴﺘﻢ OCR ﺭﺍ ﺗﺄﺛﻴﺮ ﻗﺮﺍﺭ ﺩﻫﺪ؛ ﭼﺮﺍ ﻛﻪ ﻳﻜﻲ ﺍﺯ ﻣﻔﺮﻭﺿﺎﺕ ﺑﻴﺸﺘﺮ ﺭﻭﺷﻬﺎﻱ ﻗﻄﻌﻪ ﺑﻨﺪﻱ، ﻋﺪﻡ ﻛﺞ ﺑﻮﺩﻥ ﺗﺼﻮﻳﺮ ﻣﺘﻦ ﻭﺭﻭﺩﻱ ﺍﺳﺖ ﻭ ﺩﺭ ﻧﺘﻴﺠﻪ ﻻﺯﻡ ﺍﺳﺖ ﻛﻪ ﺍﻳﻦ ﻧﻘﻴﺼﻪ ﺁﺷﻜﺎﺭ ﻭ ﺗﺼﺤﻴﺢ ﮔﺮﺩﺩ. ﺁﺷﻜﺎﺭﺳﺎﺯﻱ ﺧﻂ ﺯﻣﻴﻨﻪ ﺩﺭ ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﺗﻜﻨﻴﻜﻬﺎﻱ ﻗﻄﻌﻪ ﺑﻨﺪﻱ ﻭ ﺑﺎﺯﺷﻨﺎﺳﻲ ﻣﺘﻮﻥ ﻓﺎﺭﺳﻲ، ﻋﺮﺑﻲ ﻭ لاتین ﻧﻘﺶ ﺍﺳﺎﺳﻲ ﺩﺍﺭﺩ. ﻋﻼﻭﻩ ﺑﺮ ﺍﻳﻦ، ﺑﺮﺧﻲ ﺍﺯ ﻛﺎﺭﺍﻛﺘﺮﻫﺎ ﻣﺎﻧﻨﺪ « g » ﻭ « 9 » ﺭﺍ ﻣﻲ ﺗﻮﺍﻥ ﺑﻮﺍﺳﻄﺔ ﻣﻮﻗﻌﻴﺖ ﻧﺴﺒﻲ ﺷﺎﻥ ﻧﺴﺒﺖ ﺑﻪ ﺧﻂ ﺯﻣﻴﻨﻪ ﺁﺷﻜﺎﺭ ﺳﺎﺧﺖ

2-2-ﻧﺮﻣﺎﻟﻴﺰﻩ ﻛﺮﺩﻥ ﺍﺭﻳﺐ ﺷﺪﮔﻲ

ﺩﺭ ﻣﺘﻮﻥ ﭼﺎﭘﻲ فارسی ﻭ ﻻﺗﻴﻦ، ﻛﺎﺭﺍﻛﺘﺮﻫﺎﻱ ﺩﺍﺭﺍﻱ ﻓﺮﻣﺖ ﺍﻳﺘﺎﻟﻴﻚ ﺍﺯ ﺭﺍﺳﺘﺎﻱ ﻋﻤﻮﺩ ﺍﻧﺤﺮﺍﻑ دارند. ﻫﻤﭽﻨﻴﻦ ﺩﺭ ﻣﺘﻮﻥ ﺩﺳﺘﻨﻮﻳﺲ ﺑﺮﺧﻲ ﺍﺯ ﻧﻮﻳﺴﻨﺪﻩ ها ﺍﻳﻦ ﭘﺪﻳﺪﻩ ﺗﺤﺖ ﻋﻨﻮﺍﻥ « ﺷﺪﮔﻲ ﺍﺭﻳﺐ » ﺷﻨﺎﺧﺘﻪ ﻣﻲشود و می‌تواند ﺩﻗﺖ ﺑﺮﺧﻲ ﺍﺯ ﺍﻟﮕﻮﺭﻳﺘﻤﻬﺎﻱ ﻗﻄﻌﻪ بندی ﻳﺎ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺭﺍ ﺗﺤﺖ ﺗﺄﺛﻴﺮ ﻗﺮﺍﺭ ﺩﻫﺪ ﻭ ﻟﺬﺍ ﺩﺭ ﺍﻳﻦ ﺳﻴﺴﺘﻤﻬﺎ ﻻﺯﻡ ﺍﺳﺖ ﻛﻪ ﺩﺭ ﻣﺮﺣﻠﺔ پیش پردازش ﻣﻴﺰﺍﻥ ﺍﺭﻳﺐ ﺑﻮﺩﻥ ﻛﺎﺭﺍﻛﺘﺮﻫﺎ ﺷﻨﺎﺳﺎﻳﻲ ﻭ ﺗﺼﺤﻴﺢ ﮔﺮﺩﺩ. اریب ﺷﺪﮔﻲ ﺑﺼﻮﺭﺕ ﺯﺍﻭﻳﺔ ﺷﻴﺐ ﺑﻴﻦ ﻃﻮﻳﻠﺘﺮﻳﻦ ﺯﻳﺮﺣﺮﻑ ﺩﺭ ﻳﻚ ﻛﻠﻤﻪ ﻭ ﺟﻬﺖ ﻋﻤﻮﺩﻱ ﺗﻌﺮﻳﻒ ﻣﻲ ﺷﻮﺩ. ﻧﺮﻣﺎﻟﻴﺰﻩ ﻛﺮﺩﻥ ﺍﺭﻳﺐ، ﺑﻨﻈﻮﺭ ﻧﺮﻣﺎﻟﻴﺰﻩ ﻧﻤﻮﺩﻥ ﻛﻠﻴﺔ ﻛﺎﺭﺍﻛﺘﺮﻫﺎ ﺑﻪ ﻳﻚ ﻓﺮﻡ ﺍﺳﺘﺎﻧﺪﺍﺭﺩ ﺑﻜﺎﺭ می‌رود. ﻣﻌﻤﻮﻟﺘﺮﻳﻦ ﺭﻭﺵ ﺩﺭ ﺗﺨﻤﻴﻦ ﻣﻴﺰﺍﻥ ﺍﺭﻳﺐ ﺷﺪﮔﻲ، ﻣﺤﺎﺳﺒﺔ ﺯﺍﻭﻳﺔ ﻣﺘﻮﺳﻂ ﺍﺟﺰﺍﺀ ﻧﺰﺩﻳﻚ ﺑﻪ ﺧﻂ ﻋﻤﻮﺩ ﺍﺳﺖ. در ﺍﺳﺘﺨﺮﺍﺝ ﺧﻄﻮﻁ ﻋﻤﻮﺩﻱ ﺍﺯ ﻛﺎﺭﺍﻛﺘﺮﻫﺎ ﺑﻮﺳﻴﻠﺔ ﺩﻧﺒﺎﻝ ﻛﺮﺩﻥ ﻣﺆﻟﻔﻪ های ﻛﺪ ﺯﻧﺠﻴﺮﻩای ﺗﻮﺳﻂ ﻳﻚ ﺟﻔﺖ ﻓﻴﻠﺘﺮ ﻳﻚ ﺑﻌﺪﻱ ﺍﻧﺠﺎﻡ ﻣﻲﭘﺬﻳﺮﺩ. ﻣﺨﺘﺼﺎﺕ ﺷﺮﻭﻉ ﻭ ﭘﺎﻳﺎﻥ ﻫﺮ ﺧﻂ، ﺯﺍﻭﻳﺔ ﺍﺭﻳﺐ ﺭﺍ ﺑﺪﺳﺖ ﻣﻲ دهد.

2-3-ﻧﺮﻣﺎﻟﻴﺰﻩ ﻛﺮﺩﻥ ﺍﻧﺪﺍﺯﻩ (ﺗﻐﻴﻴﺮ ﻣﻘﻴﺎﺱ ﺩﺍﺩﻥ)

ﺩﺭ ﺳﻴﺴﺘﻤﻬﺎﻱ OCR ﺍﻏﻠﺐ ﺗﺼﺎﻭﻳﺮ ﻛﻠﻤﺎﺕ ﺧﻴﻠﻲ ﻛﻮﭼﻚ ﻳﺎ ﺧﻴﻠﻲ ﺑﺰﺭﮒ ، ﺑﻪ ﻳﻚ ﺍﻧﺪﺍﺯﺓ ﺍﺳﺘﺎﻧﺪﺍﺭﺩ ﻧﺮﻣﺎﻟﻴﺰﻩ ﻣﻲﺷﻮﻧﺪ. ﺍﻳﻦ ﻋﻤﻞ ﻣﻌﻤﻮﻻﹰ ﺑﺎ ﻧﻤﻮﻧﻪ ﺑﺮﺩﺍﺭﻱ ﻣﺠﺪﺩ ﺗﺼﻮﻳﺮ ﺍﻧﺠﺎﻡ ﻣﻲ ﮔﻴﺮﺩ.
روشهای بازشناسی حروف ممكن است نرمالیزه كردن اندازه را در هر دو جهت افقی و عمودی انجام دهند. هر كاراكتر به تعدادی ناحیه تقسیم می‌شود و هر یك از این نواحی بصورت جداگانه تغییر مقیاس داده می‌شوند.

3-ﻓﺸﺮﺩﻩ ﺳﺎﺯﻱ ﻣﻴﺰﺍﻥ ﺍﻃﻼﻋﺎﺗﻲ ﻛﻪ ﻣﻲ ﺑﺎﻳﺴﺖ ﻣﺤﻔﻮﻅ ﺑﻤﺎﻧﺪ

ﺍﻳﻦ ﻣﺴﺌﻠﻪ ﭘﺬﻳﺮﻓﺘﻪ ﺷﺪﻩ ﺍﺳﺖ ﻛﻪ ﺗﻜﻨﻴﻜﻬﺎﻱ ﻛﻼﺳﻴﻚ ﻓﺸﺮﺩﻩ ﺳﺎﺯﻱ ﺗﺼﺎﻭﻳﺮ ﻛﻪ ﺗﺼﻮﻳﺮ ﺭﺍ ﺍﺯ ﺣﻮﺯﺓ ﻣﻜﺎﻧﻲ ﺑﻪ ﺣﻮﺯﻩ ﺩﻳﮕﺮ ﻣﻨﺘﻘﻞ ﻣﻲ ﻛﻨﻨﺪ، ﺑﺮﺍﻱ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺣﺮﻭﻑ ﻣﻨﺎﺳﺐ ﻧﻤﻲ ﺑﺎﺷﻨﺪ. در ﺑﺎﺯﺷﻨﺎﺳﻲ ﺣﺮﻭﻑ در پیش پردازش، ﻋﻤﻞ ﻓﺸﺮﺩﻩ سازی ﻧﻴﺎﺯﻣﻨﺪ ﺁﻥ ﺩﺳﺘﻪ ﺍﺯ ﺗﻜﻨﻴﻜﻬﺎﻱ ﺣﻮﺯﺓ ﻣﻜﺎﻧﻲ ﺍﺳﺖ ﻛﻪ اطلاعات ﺷﻜﻠﻲ ﺭﺍ ﺣﻔﻆ ﻣﻲ ﻧﻤﺎﻳﻨﺪ.
ﺩﻭ ﺗﻜﻨﻴﻚ ﻣﺘﻌﺎﺭﻑ ﻓﺸﺮﺩﻩ ﺳﺎﺯﻱ، ﻳﻜﻲ ﺗﻜﻨﻴﻚ ﺍﻋﻤﺎﻝ ﺳﻄﺢ ﺁﺳﺘﺎﻧﻪ (ﺑﻤﻨﻈﻮﺭ ﺑﺎﻳﻨﺮﻱ ﻛﺮﺩﻥ ﺗﺼﺎﻭﻳﺮ ﺳﻄﺢ ﺧﺎﻛﺴﺘﺮﻱ ﻣﺘﻮﻥ) و دیگری ﺩﻳﮕﺮﻱ ﻧﺎﺯﻙ سازی می‌باشد.

3-1-ﺑﺎﻳﻨﺮﻱ ( ﺩﻭﺳﻄﺤﻲ ) ﻛﺮﺩﻥ ﺗﺼﻮﻳﺮ ﻣﺘﻦ

ﺑﻤﻨﻈﻮﺭ ﻛﺎﻫﺶ ﺣﺠﻢ ﺫﺧﻴﺮﻩ ﺳﺎﺯﻱ ﻣﻮﺭﺩ ﻧﻴﺎﺯ ﻭ ﺍﻓﺰﺍﻳﺶ ﺳﺮﻋﺖ ﭘﺮﺩﺍﺯﺵ، ﺍﻏﻠﺐ ﻣﻄﻠﻮﺏ ﺍﺳﺖ ﻛﻪ ﺑﺎ ﺍﻧﺘﺨﺎﺏ ﻳﻚ ﺳﻄﺢ ﺁﺳﺘﺎﻧﻪ، ﺗﺼﺎﻭﻳﺮ ﺳﻄﺢ ﺧﺎﻛﺴﺘﺮﻱ ﻳﺎ ﺭﻧﮕﻲ ﺭﺍ ﺑﻪ ﺗﺼﺎﻭﻳﺮ ﺑﺎﻳﻨﺮﻱ ﺗﺒﺪﻳﻞ ﻧﻤﻮﺩ. دو ﺭﻭﺵ ﺍﻋﻤﺎﻝ ﺳﻄﺢ ﺁﺳﺘﺎﻧﻪ ﻋﺒﺎﺭﺗﻨﺪ ﺍﺯ سراسری (Global) و محلی (Local). ﺩﺭ ﺭﻭﺵ ﺍﻋﻤﺎﻝ ﺳﻄﺢ ﺁﺳﺘﺎﻧﺔ ﺳﺮﺍﺳﺮﻱ، ﻣﻘﺪﺍﺭ ﺳﻄﺢ ﺁﺳﺘﺎﻧﻪ ﺑﺮﺍﻱ ﻛﻞ ﺗﺼﻮﻳﺮ ﺳﻨﺪ ﺍﻧﺘﺨﺎﺏ ﻣﻲ شود. ﺍﻳﻦ ﻣﻘﺪﺍﺭ ﺍﻏﻠﺐ ﺑﺮ ﻣﺒﻨﺎﻱ ﺗﺨﻤﻴﻨﻲ ﺍﺯ سطح ﭘﺲ ﺯﻣﻴﻨﻪ ﻛﻪ ﺍﺯ ﻫﻴﺴﺘﻮﮔﺮﺍﻡ ﺳﻄﺢ ﺭﻭﺷﻨﺎﻳﻲ ﺗﺼﻮﻳﺮ ﻣﺤﺎﺳﺒﻪ ﻣﻲگردد، ﺳﻨﺠﻴﺪﻩ ﻣﻲ ﺷﻮﺩ. روش اعمال ﺳﻄﺢ ﺁﺳﺘﺎﻧﺔ ﻣﺤﻠﻲ ( ﺗﻄﺒﻴﻘﻲ ) ﺑﺮﺍﺳﺎﺱ اطلاعات ﻧﻮﺍﺣﻲ ﻣﺤﻠﻲ، ﺍﺯ ﻣﻘﺎﺩﻳﺮ ﻣﺘﻔﺎﻭﺗﻲ ﺑﺮﺍﻱ ﻫﺮ ﭘﻴﻜﺴﻞ ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲ ﻛﻨﺪ. ﻣﻘﺎﻳﺴﻪ ﺍﻱ ﺑﻴﻦ ﺗﻜﻨﻴﻜﻬﺎﻱ ﻣﻌﻤﻮﻝ ﺍﻋﻤﺎﻝ ﺳﻄﺢ ﺁﺳﺘﺎﻧﻪ ﺑﺼﻮﺭﺕ ﺳﺮﺍﺳﺮﻱ ﻭ ﻣﺤﻠﻲ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻳﻚ ﻣﻌﻴﺎﺭ ﺍﺭﺯﻳﺎﺑﻲ ﺍﻧﺠﺎﻡ ﭘﺬﻳﺮﻓﺘﻪ ﺍﺳﺖ. ﺍﻳﻦ ﻣﻌﻴﺎﺭ ﺍﺭﺯﻳﺎﺑﻲ ﻋﺒﺎﺭﺕ ﺍﺳﺖ ﺍﺯ ﻣﻘﺎﻳﺴﺔ ﺩﻗﺖ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺻﺤﻴﺢ ﻳﻚ ﺳﻴﺴﺘﻢ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺣﺮﻭﻑ ﺑﺎ ﺍﻋﻤﺎﻝ ﺗﻜﻨﻴﻜﻬﺎﻱ ﻣﺨﺘﻠﻒ ﺳﻄﺢ ﺁﺳﺘﺎﻧﻪ ﮔﺬﺍﺭﻱ.

3-2-ﻧﺎﺯﻙ ﺳﺎﺯﻱ

ﺍﻳﻦ ﻋﻤﻞ ﺩﺭﺣﺎﻟﻴﻜﻪ ﻛﺎﻫﺶ ﻗﺎﺑﻞ ﻣﻼﺣﻈﻪای ﺩﺭ ﺣﺠﻢ ﺩﺍﺩﻩ ایجاد میﻛﻨﺪ، اطلاعات ﺷﻜﻠﻲ ﻛﺎﺭﺍﻛﺘﺮ ﺭﺍ ﻧﻴﺰ ﺍﺳﺘﺨﺮﺍﺝ می ﻧﻤﺎﻳﺪ. ﺩﻭ ﺭﻭﺵ ﭘﺎﻳﻪ ﺑﺮﺍﻱ ﻧﺎﺯﻙ ﺳﺎﺯﻱ ﻋﺒﺎﺭﺗﻨﺪ ﺍﺯ :
–    ﻧﺎﺯﻙ ﺳﺎﺯﻱ ﺍﺯ ﻃﺮﻳﻖ ﭘﻴﻜﺴﻞ
–    ﻧﺎﺯﻙ ﺳﺎﺯﻱ ﻏﻴﺮ ﺍﺯ ﻃﺮﻳﻖ ﭘﻴﻜﺴﻞ
ﻧﺎﺯﻙ ﺳﺎﺯﻱ ﺍﺯ ﻃﺮﻳﻖ ﭘﻴﻜﺴﻞ ﺑﺼﻮﺭﺕ ﻣﺤﻠﻲ ﻭ ﺗﻜﺮﺍﺭﻱ ﺗﺼﻮﻳﺮ ﺭﺍ ﻣﻮﺭﺩ ﭘﺮﺩﺍﺯﺵ ﻗﺮﺍﺭ ﻣﻲ ﺩﻫﺪ ﺗﺎ ﻭﻗﺘﻲ ﻛﻪ ﺍﺯ ﺗﺼﻮﻳﺮ ﻛﺎﺭﺍﻛﺘﺮ ﺗﻨﻬﺎ ﺍﺳﻜﻠﺖ ﺁﻥ ﺑﻪ ﻋﺮﺽ ﻳﻚ ﭘﻴﻜﺴﻞ ﺑﺎﻗﻲ ﺑﻤﺎﻧﺪ. ﺍﻳﻦ ﺭﻭﺵ ﻧﺴﺒﺖ ﺑﻪ ﻧﻮﻳﺰ ﺑﺴﻴﺎﺭ ﺣﺴﺎﺱ ﺑﻮﺩﻩ، ﻣﻤﻜﻦ ﺍﺳﺖ ﺗﺼﻮﻳﺮ ﻛﺎﺭﺍﻛﺘﺮ ﺭﺍ ﻣﺨﺪﻭﺵ ﺳﺎﺯﺩ. ﺍﺯ ﺳﻮﻱ ﺩﻳﮕﺮ، ﺭﻭﺷﻬﺎﻱ ﻧﺎﺯﻙ ﺳﺎﺯﻱ ﻏﻴﺮ ﺍﺯ ﻃﺮﻳﻖ ﭘﻴﻜﺴﻞ، ﻃﻲ ﻓﺮﺍﻳﻨﺪ ﻧﺎﺯﻙ سازی ﻣﻘﺪﺍﺭﻱ ﺍﺯ اطلاعات ﺳﺮﺍﺳﺮﻱ ﺩﺭﺑﺎﺭﺓ ﻛﺎﺭﺍﻛﺘﺮ ﺭﺍ ﻣﻮﺭﺩ ﺍﺳﺘﻔﺎﺩﻩ ﻗﺮﺍﺭ ﻣﻲ ﺩﻫﻨﺪ. ﺍﻳﻦ ﺭﻭﺷﻬﺎ ﻳﻚ ﺧﻂ ﻣﺮﻛﺰﻱ ﻳﺎ ﻣﻴﺎﻧﺔ ﺑﺨﺼﻮﺹ ﺍﺯ ﺗﺼﻮﻳﺮ ﭘرتر ﺭﺍ ﺑﺪﻭﻥ ﺁﺯﻣﺎﻳﺶ ﻫﻤﺔ ﭘﻴﻜﺴﻠﻬﺎ ﺗﻮﻟﻴﺪ ﻣﻲ نمایند.

4-ﺑﺎﺯﺷﻨﺎﺳﻲ ﺧﻂ ، ﺯﺑﺎﻥ ﻭ ﻓﻮﻧﺖ 

ﺑﺎﺯﺷﻨﺎﺳﻲ ﺧﻂ، ﺗﻌﺪﺍﺩ ﻛﻼﺳﻬﺎﻱ ﻣﺨﺘﻠﻒ ﺳﻤﺒﻞ ﻛﻪ ﺑﺎﻳﺴﺘﻲ ﻣﻮﺭﺩ ملاحظه ﻗﺮﺍﺭ ﮔﻴﺮﻧﺪ ﺭﺍ ﻛﺎﻫﺶ ﻣﻲ ﺩﻫﺪ. ﺷﻨﺎﺳﺎﻳﻲ ﺯﺑﺎﻥ ﻣﺘﻦ در پیش پردازش، ﺑﻤﻨﻈﻮﺭ ﺑﻜﺎﺭﮔﻴﺮﻱ ﻣﺪﻟﻬﺎﻱ ﻣﺘﻨﻲ ﺧﺎﺹ ﺿﺮﻭﺭت دارد. ﻃﺒﻘﻪ ﺑﻨﺪﻱ ﻓﻮﻧﺘﻬﺎ، ﺗﻌﺪﺩ ﺷﻜﻠﻬﺎﻱ ﻣﺨﺘﻠﻒ ﺣﺮﻭﻑ ﺩﺭ ﻫﺮ ﻛﻼﺱ كه می‌بایست ﺩﺭ ﻓﺮﺍﻳﻨﺪ ﺑﺎﺯﺷﻨﺎﺳﻲ ﻟﺤﺎﻅ ﮔﺮﺩﺩ ﺭﺍ ﻛﺎﻫﺶ می‌دهد و سبب می‌شود كه امر شناسایی، تنها به یك كلاس فونت محدود گردد. ﺑﺎﺯﺷﻨﺎﺳﻲ خط و ﺯﺑﺎﻥ ﻭ ﻓﻮﻧﺖ ﺩﺭ ﻛﺎﺭﺑﺮﺩﻫﺎﻳﻲ ﻣﺎﻧﻨﺪ ﻧﻤﺎﻳﻪ سازی و ﺩﺳﺘﻜﺎﺭﻱ ﺍﺳﻨﺎﺩ نیز مطلوب می باشد.

منبع