نوشته‌ها

Interpolation يا درون یابی

Interpolation يا درون یابی (كه گاهي resampling نيز ناميده ‌مي‌شود) يك روش گرافيكي براي افزايش يا كاهش تعداد پيكسل‌هاي يك تصوير ديجيتالي است. دوربين‌هاي ديجيتالي از اين روش براي زوم ديجيتال و يا افزايش مصنوعي ابعاد تصوير، نسبت به تصوير اصلي ثبت شده توسط حسگر خود استفاده مي‌كنند. كيفيت تصوير نهايي حاصل از درون‌يابي به پيچيدگي الگوريتم ساخت تصوير بستگي دارد. حالت‌هاي متفاوت درون‌يابي عبارتند است از:

Nearest Neighbor Interpolation

اين روش ساده‌ترين عمليات درون‌يابي محسوب مي‌شود كه اساساً پيكسل‌هاي بزرگ‌تري را ايجاد مي‌كند و رنگ هر پيكسل در تصوير جديد، با رنگ نزديك‌ترين پيكسل در تصوير اصلي مطابقت دارد. به عنوان مثال اگر شما يك تصوير را ۲۰۰ درصد بزرگ كنيد، يك پيكسل تصوير به يك فضاي چهار پيكسلي (دو پيكسل در دو پيكسل) با رنگ پيكسل اوليه تبديل مي‌شود. بسياري از دوربين‌هاي ديجيتالي براي زوم‌كردن روي يك سوژه از اين روش استفاده مي‌كنند. زيرا اين روش هيچ تأثيري بر اطلاعات رنگي تصوير نمي‌گذارد. اصولاً بهتر است از اين روش براي افزايش ابعاد تصوير استفاده نشود. چرا كه موجب ايجاد حالت شطرنجي در تصوير مي‌گردد.

Bilinear Interpolation

اين روش ارزش يك پيكسل رنگي را براساس چهار پيكسل در جهت‌هاي عمودي و افقي پيكسل در تصوير اصلي معين‌مي‌كند. تصوير جديد داراي خاصيت Anti-aliasing است و تقريباً هيچ اثري از پيكسل‌هاي شطرنجي در آن ديده نمي‌شود.

Bicubic Interpolation

اين روش داراي پيچيده‌ترين الگوريتم درون‌يابي است و تصويري كه با اين روش به دست مي‌آيد، لبه‌هاي بسيارنرم‌تري پيدا مي‌كند. در اين حالت پيكسل جديد براساس ارزش تخميني ۱۶ پيكسل (چهار پيكسل در چهار پيكسل) برآورد‌مي‌شود.

شايان ذكر است كه اغلب دوربين‌ها، چاپگرها و نرم‌افزارهاي گرافيكي براي تغيير تعداد پيكسل‌هاي يك تصوير از اين روش استفاده مي‌كنند.
نرم‌افزار Photoshop CS دو نوع Sharper و Smoother اين درون‌يابي را نيز ارائه مي‌دهد.

Fractal Interpolation

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

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

تو این مطلب می خواهیم بصورت عملی از شبکه های عصبی استفاده کنیم! واقعا خیلی جالبه می خوایم به کامپیوتر سه تا حرف الفبای انگلیسی رو یاد بدیم.
نکته ی جالب تر این هست که حتی به کامپیوتر نمی گیم هر کدوم از حرف ها چی هستن! فقط بهش می گیم که این ها سه حرف مختلف هستند! و کامپیوتر خودش تشخیص می ده هر کدوم متعلق به کدوم گروه هست! به این نوع طبقه بندی اصطلاحا 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 باشه. ”
در صورتی که سورس این برنامرو خواستید کافیه توی بخش نظرات بگید تا براتون میل کنم.
کار با این برنامه خیلی آسون هست همونطور که توی شکل مشخصه.

[عکس: 1.jpg]

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

[عکس: 2.jpg]

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

[عکس: 3.jpg]

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

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

[عکس: 5.jpg]

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

[عکس: 7.jpg]

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

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

[عکس: 10.jpg]

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

[عکس: 11.jpg]

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

[عکس: 12.jpg]

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

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

[عکس: 14.jpg]

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

[عکس: 15.jpg]

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

[عکس: 16.jpg]

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

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

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

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

[عکس: 17.jpg]

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

[عکس: 18.jpg]

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

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

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

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

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

Basics of digital image processing

مفاهیم اولیه پردازش تصویر

فایل PDF – در ۵۷ صفحه – نویسنده : ناشناس

Basics of digital image processing

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


Digital Image Processing Laboratory Manual

کتابچه راهنمای آزمایشگاه پردازش تصویر دیجیتال

فایل PDF – در ۱۹ صفحه – نویسنده :  Bhaskar Mondal

Digital Image Processing laboratory manual

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


Fundamentals of Digital Image Processing

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

فایل PDF – در ۸ صفحه – نویسنده : ناشناس

Fundamentals of Digital Image Processing

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


Fundamentals of Image Processing

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

فایل PDF – در ۱۱۲ صفحه – نویسنده : Ian T. Young , Jan J. Gerbrands  , Lucas J. van Vliet

Image Processing Fundamentals–An Overview

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


Image Processing Manual

دستورالعمل پردازش تصویر

فایل PDF – در ۱۶۴ صفحه – تهیه کننده : انستیتو ملی اسناد آمریکا

Image processing manual

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


Image Processing Tutorial-Basic Concepts 

آموزش پردازش تصویر-مفاهیم پایه

فایل PDF – در ۵۵ صفحه – تهیه کننده : شرکت CCDWare Publishing

Image Processing Tutorial

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


Intel® Image Processing Library-Reference Manual

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

فایل PDF – در ۳۱۹ صفحه – نویسنده :  شرکت Intel

Intel Image Processing Library-reference manual

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


آنالیز و پردازش تصویر

فایل Word – در ۱۵ صفحه – نویسنده :  ناشناس

pardazesh tasvir

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


مفاهیم پایه پردازش تصویر-محیط های چند رسانه ای

فایل PDF – در ۱۰۹ صفحه – نویسنده :  احمد محمودی ازناوه (دانشگاه شهید بهشتی)

مفاهیم_پایه_پردازش_تصویر_دانشگاه

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

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

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

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

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

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

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

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

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

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

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

آزمون تورینگ

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

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

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

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

۱٫ سیستم‌هایی که به طور منطقی فکر می‌کنند
۲٫ سیستم‌هایی که به طور منطقی عمل می‌کنند
۳٫ سیستم‌هایی که مانند انسان فکر می‌کنند
۴٫ سیستم‌هایی که مانند انسان عمل می‌کنند

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

محققین هوش مصنوعی علاقه‌مند به تولید ماشینی هستند که دستورات مورد نیاز را به صورت هوشمندانه انجام دهد. به عنوان مثال قابلیت کنترل، برنامه‌ریزی و زمان‌بندی، توانایی تشخیص جواب به سوال مصرف کننده، دست نویس‌ها، زبان شناسی، سخنرانی و شناسایی چهره را داشته باشد. مطالعه بر روی یک 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ﻛﺎﻣﻞ و انواع آن

ﺍﻧﻮﺍﻉ ﺳﻴﺴﺘﻤﻬﺎی OCR

ﺩﺭ ﻳﻚ ﺗﻘﺴﻴﻢ كلی می توان سیستمهای OCR را به ﻟﺤﺎﻅ ﻧﻮﻉ ﺍﻟﮕﻮﻱ ﻭﺭﻭﺩﻱ ﺑﻪ ﺩﻭ ﮔﺮﻭﻩ ﺍﺻﻠﻲ ﺗﻘﺴﻴﻢ ﻛﺮﺩ :
الف ) ﺳﻴﺴﺘم های ﺑﺎﺯﺷﻨﺎﺳﻲ ﻣﺘﻮﻥ ﭼﺎﭘﻲ
ب ) ﺳﻴﺴﺘم های ﺑﺎﺯﺷﻨﺎﺳﻲ ﻣﺘﻮﻥ ﺩﺳﺘﻨﻮﻳﺲ
ﻫﺮ ﻳﻚ ﺍﺯ ﺍﻳﻦ ﮔﺮﻭﻫﻬﺎ ﺗﻜﻨﻴﻜﻬﺎﻱ ﺧﺎﺹ ﺧﻮﺩ ﺭﺍ ﺩﺍﺭﻧﺪ. همچنین ﺍﺯ ﺟﻨﺒﺔ ﻧﺤﻮﺓ ﻭﺭﻭﺩ اطلاعات، سیستمهای OCR به دو دسته زیر تقسیم میﺷﻮﻧﺪ :
الف ) ﺳﻴﺴﺘﻤﻬﺎﻱ ﺑﺮﺧﻂ (OnLine)
ﺩﺭ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺑﺮﺧﻂ، حروف در همان زمان نگارش ﺗﻮﺳﻂ ﺳﻴﺴﺘﻢ ﺗﺸﺨﻴﺺ ﺩﺍﺩه می شوند. دستگاههای ورودی ﺍﻳﻦ ﺳﻴﺴﺘﻤﻬﺎ ﻳﻚ ﻗﻠﻢ ﻧﻮﺭﻱ ﺍﺳﺖ. ﺩﺭ ﺍﻳﻦ ﺭﻭﺵ ﻋﻼﻭﻩ ﺑﺮ اطلاعات ﻣﺮﺑﻮﻁ ﺑﻪ ﻣﻮﻗﻌﻴﺖ قلم، اطلاعات ﺯﻣﺎﻧﻲ ﻣﺮﺑﻮﻁ ﺑﻪ ﻣﺴﻴﺮ ﻗﻠﻢ ﻧﻴﺰ ﺩﺭ ﺍﺧﺘﻴﺎﺭ می باشد. ﺍﻳﻦ اطلاعات ﻣﻌﻤﻮﻻً ﺗﻮﺳﻂ ﻳﻚ صفحه Digitizer اخذ می شوند.
ﺩﺭ ﺍﻳﻦ ﺭﻭﺵ ﻣﻲ توان ﺍﺯ اطلاعات ﺯﻣﺎﻧﻲ، ﺳﺮﻋﺖ، شتاب، ﻓﺸﺎﺭ ﻭ ﺯﻣﺎﻥ برداشتن و گذاشتن قلم روی صفحه در بازشناسایی استفاده كرد.
ب ) ﺳﻴﺴﺘﻤﻬﺎﻱ ﺑﺮﻭﻥ ﺧﻂ (OutLine)
ﺩﺭ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺑﺮﻭﻥ خط، ﺍﺯ ﺗﺼﻮﻳﺮ ﺩﻭ ﺑﻌﺪی ﻣﺘﻦ ﻭﺭﻭﺩی ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲشود. ﺩﺭ ﺍﻳﻦ ﺭﻭﺵ ﺑﻪ ﻫﻴﭻ ﻧﻮﻉ ﻭﺳﻴﻠﻪ ﻧﮕﺎﺭﺵ ﺧﺎﺻﻲ ﻧﻴﺎﺯ ﻧﻴﺴﺖ ﻭ ﺗﻔﺴﻴﺮ ﺩﺍﺩﻩ ﻣﺴﺘﻘﻞ ﺍﺯ ﻓﺮﺁﻳﻨﺪ ﺗﻮﻟﻴﺪ ﺁﻧﻬﺎ ﺗﻨﻬﺎ ﺑﺮﺍﺳﺎﺱ ﺗﺼﻮﻳﺮ ﻣﺘﻦ ﺻﻮﺭﺕ ﻣﻲ’گیرد. ﺍﻳﻦ ﺭﻭﺵ ﺑﻪ ﻧﺤﻮﺓ ﺑﺎﺯﺷﻨﺎﺳﻲ ﺗﻮﺳﻂ انسان ﺷﺒﺎﻫﺖ ﺑﻴﺸﺘﺮﻱ ﺩﺍﺭﺩ.


ﺑﺨﺸﻬﺎی ﻣﺨﺘﻠﻒ ﻳﻚ ﺳﻴﺴﺘﻢ OCR ﻛﺎﻣﻞ 

ﻳﻚ ﺳﻴﺴﺘﻢ OCR ﻛﺎﻣﻞ مركب از ۵ ﻗﺴﻤﺖ ﺍﺻﻠﻲ زیر می باشد :

الف ) ﭘﻴﺶ ﭘﺮﺩﺍﺯﺵ  (Preprocessing):
ﺷﺎﻣﻞ ﻛﻠﻴه ﺍﻋﻤﺎﻟﻲ ﻛﻪ ﺭﻭﻱ ﺳﻴﮕﻨﺎﻝ ﺗﺼﻮﻳﺮﻱ ﺧﺎﻡ ﺻﻮﺭﺕ ﻣﻲ ﮔﻴﺮﻧﺪ ﺗﺎ موجب ﺗﺴﻬﻴﻞ ﺭﻭﻧﺪ ﺍﺟﺮﺍﻱ ﻓﺎﺯﻫﺎﻱ ﺑﻌﺪﻱﮔﺮﺩﻧﺪ؛ ﻣﺎﻧﻨﺪ ﺑﺎﻳﻨﺮﻱ ﻛﺮﺩﻥ ﺗﺼﻮﻳﺮ ، ﺣﺬﻑ ﻧﻮﻳﺰ ، ﻫﻤﻮﺍﺭﺳﺎﺯﻱ، ﻧﺎﺯﻛﺴﺎﺯﻱ ، ﺗﺸﺨﻴﺺ ﺯﺑﺎﻥ ﻭ ﻓﻮﻧﺖ ﻛﻠﻤﺎﺕ و ﻧﻈﺎﻳﺮ ﺍﻳﻨﻬﺎ.

ب) قطعه بندی (Segmentation) :
ﻋﺒﺎﺭﺕ ﺍﺳﺖ ﺍﺯ ﺭﻭﺷﻬﺎﻳﻲ ﻛﻪ ﺑﺨﺸﻬﺎﻱ ﻣﺨﺘﻠﻔﻲ ﻫﻤﭽﻮﻥ ﭘﺎﺭﺍﮔﺮﺍﻓﻬﺎ، ﺟﻤﻼﺕ ﻳﺎ ﻛﻠﻤﺎﺕ ﻭ ﺣﺮﻭﻑ ﺭﺍ ﺍﺯ ﺗﺼﻮﻳﺮﺳﻨﺪ ﺍﺳﺘﺨﺮﺍﺝ ﻣﻲ کنند.

ج ) ﺍﺳﺘﺨﺮﺍﺝ ﻭﻳﮋﮔﻴﻬﺎ (Feature Extraction) :
ﻣﺠﻤﻮﻋﺔ از ﻛﻠیه ﻣﺤﺎﺳﺒﺎﺗﻲ است ﻛﻪ ﺭﻭﻱ ﺍﻟﮕﻮﻫﺎﻱ ﺑﺪﺳﺖ ﺁﻣﺪﻩ ﺍﺯ ﻣﺮحله ﭘﻴﺶ پردازش ﺍﻧﺠﺎﻡ ﻣﻲ شود ﺗﺎ ﺑﺮﺩﺍﺭ ﻭﻳﮋﮔﻴﻬﺎﻱ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﻫﺮ ﺍﻟﮕﻮ ﺗﻌﻴﻴﻦ گردد.

د ) ﺑﺎﺯﺷﻨﺎﺳﻲ ﺑﺎ ﻳﻚ ﻳﺎ ﭼﻨﺪ ﻃﺒﻘﻪ بندی كننده (Classification & Recognition):
ﺷﺎﻣﻞ ﺭﻭﺷﻬﺎﻳﻲ ﺑﺮﺍﻱ ﻣﺘﻨﺎﻇﺮ ﺳﺎﺧﺘﻦ ﻫﺮ ﻳﻚ ﺍﺯ ﺍﻟﮕﻮﻫﺎﻱ ﺑﺪﺳﺖ ﺁﻣﺪﻩ ﺍﺯ ﻣﺮﺣﻠﺔ ﺍﺳﺘﺨﺮﺍﺝ ﻭﻳﮋﮔﻴﻬﺎ ﺑﺎ ﻳﻜﻲ ﺍﺯ ﻛﻼﺳﻬﺎﻱ ﻓﻀﺎﻱ ﺍﻟﮕﻮﻫﺎﻱ ﻣﻮﺭﺩ ﺑﺤﺚ ﺍﺳﺖ ﻛﻪ ﺍﺯ ﻃﺮﻳﻖ ﻛﻤﻴﻨﻪ ﺳﺎﺧﺘﻦ ﻓﺎصله ﺑﺮﺩﺍﺭ ﻭﻳﮋﮔﻴﻬﺎی ﻫﺮ ﺍﻟﮕﻮ ﻧﺴﺒﺖ ﺑﻪ ﻳﻜﻲ ﺍﺯ ﺑﺮﺩﺍﺭﻫﺎﻱ ﻣﺮﺟﻊ ﻣﻮﺟﻮﺩ ﺩﺭ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ های ﺳﻴﺴﺘﻢ ﺍﻧﺠﺎﻡ ﻣﻲ ﮔﻴﺮﺩ.

هـ ) ﺑﻜﺎﺭﮔﻴﺮﻱ اطلاعات ﺟﺎﻧﺒﻲ (ﭘﺲ ﭘﺮﺩﺍﺯﺵ) :
ﻣﺎﻧﻨﺪ ﻣﺠﻤﻮﻋﻪ اطلاعات ﺁﻣﺎﺭﻱ ﻣﺮﺑﻮﻁ به رخداد حروف ، اطلاعات ﺩﺳﺘﻮﺭﻱ ﻭ ﻣﻌﻨﺎﻳﻲ.

منبع

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

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

این الگوریتم (تشخیص پلاک خودرو) با نرم افزار 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

 

ترجمه لغات پردازش‌تصویر

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

فهرست واژگان:

A
accuracy دقت action اقدام action-value function تابع اقدام-مقدار

activation function تابع فعالیت

active learning یادگیری فعال

adaptive control theory نظریه کنترل تطبیقی

adaptive dynamic برنامه نویسی پویای تطبیقی

programming (ADP)

algebraic expressions اصطلاحات جبری

applicability قابلیت اعمال

approximation algorithm الگوریتم تقریب

arbitrary دلخواه

arithmetic unknown مجهول حسابی

assertion اظهار

assumption فرض

attribute صفت

attribute-based language زبان مبتنی بر صفت

availability در دسترس بودن

B

background knowledge دانش زمینه

back-propagate پس-انتشار

backtrack عقب گرد

backward proof process فرایند اثبات رو به عقب

backward-chaining قضیه زنجیره ای رو به عقب

theorem

bandit problems مسائل قمار

bang-bang control کنترل بنگ-بنگ

basis functions توابع پایه ای

Bayes’ rule قانون بیز

Bayesian learning یادگیری بیزین

Bayesian network شبکه بیزین

Bellman equations معادلات بلمن

beta distribution توزیع بتا

bias weight وزن بایاس

Booleanclassification دسته بندی بولی(دودویی)

Boosting algorithm الگوریتم بوستینگ

boundary set مجموعه کران

branching factor فاکتور انشعاب

bump برامدگی

C

candidate definition تعریف مطلوب

candidate elimination حذف مطلوب

cart-pole balancing problem مسأله تنظیم میله ارابه

classification دسته بندی

clause بند

complete data داده های کامل

complexity پیچیدگی

component مؤلفه (جزء)

compression تراکم

computation محاسبه

computational complexity پیچیدگی محاسباتی

computational learning نظریه یادگیری محاسباتی

theory

computational عصب شناسی محاسباتی

neuroscience

conditional probability احتمال شرطی

conjugate prior مزدوج اول

conjunct عطف

Conjunction ترکیب عطفی

connectionism پیوندگرایی

consistency سازگاری

consistent hypothesis فرض سازگار

constraint equation معادله محدودیت

constructive الگوریتم های استقرای سازنده

induction algorithms

continuous-valued پیوسته مقدار

contradiction تناقض

convergence همگرایی

Cross-validation اعتبارسنجی متقابل

cumulative learning یادگیری فزاینده

current state حالت جاری

current-best- جستجوی بهترین فرض جاری

hypothesis search

D

debate مباحثه

decision list لیست تصمیم

decision stumps ریشه های تصمیم

decision theory نظریه تصمیم

Decision tree درخت تصمیم

declarative bias بایاس اعلانی

definition تعریف

delta rule قانون دلتا

density estimation تخمین چگالی

description توصیف

determinations تعیین کننده ها

deterministic قطعی

dictionary فرهنگ لغات

differentiating مشتق گیری

dimension of the space بعد فضا

direct utility estimation تخمین مستقیم سودمندی

discount factor فاکتور تخفیف

discrete گسسته

discrete-valued گسسته- مقدار

disjunct فاصل

Disjunction ترکیب فصلی

domain دامنه

dropping conditions حذف شرطها

dynamic environment محیط پویا

E

efficiency کارایی

empirical gradient گرادیان تجربی

ensemble learning یادگیری گروهی

entailment constraint محدودیت ایجاب

epoch دوره

equality literal لیترال تساوی

equation معادله (تساوی)

equivalence معادل (هم ارز)

error rate نرخ خطا

estimate تخمین زدن

evaluation function تابع ارزیابی

evidence شاهد

example مثال

example descriptions توصیف های مثال

expectation– ماکزیمم سازی امیدواری

maximization (EM)

expected value مقدار مورد انتظار

Explanation-based یادگیری مبتنی بر تشریح

learning (EBL)

exploitation بهره برداری

exploration اکتشاف

exploration function تابع اکتشاف

expressiveness رسا بودن

extension بسط

extract استخراج کردن

F

fairly good نسبتا خوب

false negative منفی کاذب

false positive مثبت کاذب

feature ویژگی (مشخصه)

feedback بازخور

feed-forward network شبکه پیشرو

filtering فیلتر کردن

first-order logic منطق مرتبه اول

fit برازش کردن

fixed policy خط مشی ثابت

formulation تدوین

forward–backward الگوریتم پیشرو-پسرو

algorithm

fully connected network شبکه کاملا متصل

fully observable کاملا رؤیت پذیر

function تابع

function approximation تقریب تابع

functional dependencies وابسته های تابعی

G

gain ratio نسبت بهره

generality عمومیت

generalization تعمیم

generalization hierarchy سلسله مراتب تعمیم

general-purpose الگوریتم های یادگیری همه منظوره

learning algorithms

goal predicate گزاره هدف

gradient descent نزول گرادیان

gradient-based algorithm الگوریتم مبتنی بر گرادیان

greedy agent عامل حریص

H

hamming distance فاصله همینگ

handwritten digits ارقام دست نویس

happy graphs گرافهای خوشحال

head (of a clause) سر(یک بند)

heuristic هیوریستیک

hidden Markov مدل های پنهان مارکوف

models (HMMs)

hidden units واحدهای پنهان

hidden variables متغیرهای پنهان

hill-climbing search جستجوی تپه نوردی

hole حفره

horn clause بند هورن

hypothesis فرض

hypothesis prior پیش فرض

hypothesis space فضای فرض

I

implement پیاده سازی کردن

inconsistent ناسازگار

incremental رو به رشد

independent مستقل

independently توزیع شده بطور مستقل و یکنواخت

and identically distributed (i.i.d.)

indicator variables متغیرهای نمایشگر

individual جداگانه

induction استقرا

inductive learning یادگیری استقرایی

inductive logic برنامه نویسی منطقی استقرایی

programming(ILP)

inequality literal لیترال عدم تساوی

infer استنتاج کردن

inference استنتاج

inferential استنتاجی

information content محتوای اطلاعات

information encoding رمزگذاری اطلاعات

information gain بهره اطلاعات

initial state حالت اولیه

instance-based learning یادگیری نمونه محور

interaction تعامل

internal state حالت درونی

invention اختراع

inverse entailment ایجاب معکوس

inverse resolution تحلیل معکوس

irrelevant attribute صفت نامربوط

iterative solution الگوریتم های راه حل تکراری

algorithms

K

kernel function تابع کرنل

kernel machines ماشین های کرنل

kernel model مدل کرنل

knowledge-based approach رهیافت مبتنی بر دانش

knowledge-based یادگیری استقرایی مبتنی بر دانش

inductive learning (KBIL)

knowledge-free بدون دانش

L

latent variables متغیرهای نهفته

layers لایه ها

leaf node گره برگ

learning curve منحنی یادگیری

learning element عنصر یادگیری

learning mixtures یادگیری ترکیبی گاوس

of gaussians

learning rate نرخ یادگیری

least-commitment جستجوی حداقل تعهد

search

likelihood درستنمایی

linear separator جداکننده خطی

linear-Gaussian model مدل خطی گاوس

linearly separable جداشدنی خطی

links پیوندها

list لیست

literal (sentence) لیترال (جمله)

local search جستجوی محلی

log likelihood لگاریتم درستنمایی

logistic function تابع استدلالی

lookup table جدول مراجعه

M

machine learning یادگیری ماشین

mahalanobis distance فاصله ماهالانوبیس

majority function تابع اکثریت

majority vote رأی گیری اکثریت

margin حاشیه

Markov decision فرایندهای تصمیم مارکوف

processes (MDPs)

maximum a posteriori (MAP) حداکثر تجربی

maximum-likelihood (ML) حداکثر درستنمایی

measure مقیاس

measurement اندازه گیری

memorization یادسپاری

memory-based learning یادگیری حافظه محور

Mercer’s theorem قضیه مرکر

minimal کمینه

minimum description حداقل طول توصیف

length (MDL)

mixture distribution توزیع ترکیبی

model checking وارسی مدل

model structure ساختار مدل

OCR چیست

OCR سرنام اصطلاحی است كه صورت كامل آن در واژه‌نامه انگلیسی Optical Character Recognition و به معنی بازشناسایی كاراكتر نوری است.
فرض كنید كه ما متنی را روی كاغذ داریم و می‌خواهیم آن را وارد رایانه كنیم. اولین روشی كه به ذهن می‌رسد این است كه متن را به تایپیست بدهیم تا با كامپیوتر تایپ كند. اما آیا می‌شود عین همان متن را وارد رایانه بكنیم تا نیازی به تایپ نباشد؟ البته دستگاه «اسكنر» می‌تواند تصویری از آن متن را وارد رایانه كند، تا اینجا بخشی از مشكل ما حل شده است. اما رایانه كه نه عقلی دارد و نه «زبان» می‌فهمد، نمی‌تواند حروف و كلمات را از هم تشخیص دهد. مثلاً اگر از كامپیوتر بخواهیم به ما بگوید كه در متن اسكن‌شده كلمة «علی» چند بار آمده است، بی‌آنكه شرمنده شود، می‌گوید: «error»، یعنی: «نمی‌توانم تشخیص بدهم!» در واقع این «تصویر دیجیتال‌شده» باید به «تصویر قابل پردازش» تبدیل شود. موضوع اصلی OCR همین است.

فرض كنید كه مثلاً می‌خواهیم متن مقالات روزنامه اطلاعات سال ۱۳۴۰ شمسی را (كه اكنون نه تنها فایل تایپی‌اش موجود نیست ــ چون آن زمان اصلاً تایپ كامپیوتری در كار نبود! ــ بلكه خود نسخه‌های روزنامه را هم به زحمت می‌توان پیدا كرد) تایپ دیجیتالی كنیم، و این متن‌ها را داخل بسته‌های نرم‌افزاری یا اینترنت قرار دهیم. اگر هر شماره از روزنامه را ۲۴ صفحه فرض كنیم، و هر تایپیست بتواند در هر روز حداكثر یك صفحه از آن صفحات كاهی و كهنه شدة قدیمی را دوباره تایپ كند، مجموعاً ۲۴ روز لازم است تا تنها مقالات یك شماره از روزنامه تایپ شود. بنابراین در عرض یك سال یك نفر می‌تواند تنها ۱۵ شماره از روزنامه را تایپ كند.

حال اگر نرم‌افزاری باشد كه بتواند با اسكن كردن هر صفحة روزنامه، به طور خودكار مقالات آن را تایپ كند، تحولی عظیم رخ می‌دهد، یعنی مطالب و مقالات هزاران شماره از روزنامه‌های قدیمی به سرعت وارد فایل‌های رایانه‌ای می‌شود. حال این امكان را تعمیم بدهید به هزاران كتاب و دست نویس‌های قدیمی یا جدید، كه هر كس بخواهد تنها یك صفحه از آنها را تایپ كند، باید كلی وقت صرف كند. می‌بینید كه نرم‌افزار OCR به راستی می‌تواند هزاران هزار روز در وقت ما صرفه‌جویی كند، و البته هزینه‌ها را هم كاهش دهد. البته فقط یك مشكل كوچك به وجود می‌آید و آن بیكار شدن تایپیست‌هاست! قبل از اینکه وارد مبحث  «OCR» شویم، لازم است اشاره مختصری به حوزه های بازشناسی الگو داشته باشیم .

 ﺷﻨﺎﺳﺎﻳﻲ ﺍﻟﮕﻮ 

ﺷﻨﺎﺳﺎﻳﻲ ﺍﻟﮕﻮ ﺷﺎﺧﻪ ای اﺯ ﻫﻮﺵ ﻣﺼﻨﻮﻋﻲ است كه با ﻃﺒﻘﻪ بندی (ﻛﻼﺳﻪ ﺑﻨﺪﻱ) ﻭ ﺗﻮﺻﻴﻒ ﻣﺸﺎﻫﺪﺍﺕ ﺳﺮﻭﻛﺎﺭ ﺩﺍﺭﺩ.  ﺷﻨﺎﺳﺎﻳﻲ ﺍﻟﮕﻮ ﺑﻪ ﻣﺎ ﻛﻤﻚ ﻣﻲ ﻛﻨﺪ ﺗﺎ ﺩﺍﺩﻩ ها ( ﺍﻟﮕﻮﻫﺎ ) ﺭﺍ ﺑﺎ ﺗﻜﻴﻪ ﺑﺮ ﺩﺍﻧﺶ ﻗﺒﻠﻲ ﻳﺎ اطلاعات ﺁﻣﺎﺭﻱ ﺍﺳﺘﺨﺮﺍﺝ ﺷﺪﻩ ﺍﺯ ﺍﻟﮕﻮﻫﺎ، ﻃﺒﻘﻪ ﺑﻨﺪﻱ ﻧﻤﺎﻳﻴﻢ. ﺍﻟﮕﻮﻫﺎﻳﻲ ﻛﻪ ﻣﻲ ﺑﺎﻳﺴﺖ ﻛﻼﺳﻪ ﺑﻨﺪﻱ شوند،  ﻣﻌﻤﻮﻻً گروهی ﺍﺯ ﺳﻨﺠﺸﻬﺎ ﻳﺎ ﻣﺸﺎﻫﺪﺍﺕ ﻫﺴﺘﻨﺪ ﻛﻪ ﻣﺠﻤﻮﻋﻪ ﻧﻘﺎﻃﻲ ﺭﺍ ﺩﺭ ﻳﻚ ﻓﻀﺎﻱ ﭼﻨﺪ ﺑﻌﺪﻱ ﻣﻨﺎﺳﺐ ﺗﻌﺮﻳﻒ ﻣﻲ ﻧﻤﺎﻳﻨﺪ.

ﻳﻚ ﺳﻴﺴﺘﻢ ﺷﻨﺎﺳﺎﻳﻲ ﺍﻟﮕﻮﻱ ﻛﺎﻣﻞ ﻣﺘﺸﻜﻞ ﺍﺳﺖ ﺍﺯ ﻳﻚ ﺣﺴﮕﺮ ﻛﻪ ﻣﺸﺎﻫﺪﺍﺗﻲ ﺭﺍ ﻛﻪ ﻣﻲبایست ﺗﻮﺻﻴﻒ ﻳﺎ ﻛﻼﺳﻪ بندی گردند جمع آوری می نماید، ﻳﻚ ﻣﻜﺎﻧﻴﺰﻡ ﺍﺳﺘﺨﺮﺍﺝ ﻭﻳﮋﮔﻴﻬﺎ كه اطلاعات عددی ﻳﺎ ﻧﻤﺎﺩﻳﻦ ( ﺳﻤﺒﻮﻟﻴﻚ ) ﺭﺍ ﺍﺯ ﻣﺸﺎﻫﺪﺍﺕ ﻣﺤﺎﺳﺒﻪ می كند و  ﻳﻚ ﻧﻈﺎﻡ ﻛﻼﺳﻪ بندی یا ﺗﻮﺻﻴﻒ ﺍﻟﮕﻮﻫﺎ ﺭﺍ ﺑﺎ ﺗﻜﻴﻪ ﺑﺮ ﻭﻳﮋﮔﻴﻬﺎﻱ ﺍﺳﺘﺨﺮﺍﺝ ﺷﺪﻩ ﻋﻬﺪﻩ دار است. شكل زیر ﺑﻠﻮﻙ ﺩﻳﺎﮔﺮﺍﻡ ﻳﻚ ﺳﻴﺴﺘﻢ ﺷﻨﺎﺳﺎﻳﻲ ﺍﻟﮕﻮ ﺭﺍ ﻧﺸﺎﻥ می دهد همانطور كه از ﭘﻴﻜﺎﻧﻬﺎﻱ ﺑﺮﮔﺸﺘﻲ ﻣﺸﺨﺺ ﺍﺳﺖ، ﺍﻳﻦ ﺑﻠﻮﻛﻬﺎ ﻟﺰﻭﻣﺎً ﻣﺴﺘﻘﻞ ﻧﻴﺴﺘﻨﺪ ﻭ ﺑﺴﺘﻪ ﺑﻪ ﻧﺘﺎﻳﺞ ﺣﺎﺻﻠﻪ ﻣﻤﻜﻦ ﺍﺳﺖ ﻻﺯﻡ ﺑﺎﺷﺪ ﻛﻪ ﺑﻠﻮكﻫﺎﻱ ﺍﻭﻟﻴﻪ ﻣﺠﺪﺩﺍً ﻃﺮﺍﺣﻲ ﮔﺮﺩﻧﺪ ﺗﺎ ﺭﺍﻧﺪﻣﺎﻥ ﻛﻠﻲ ﺳﻴﺴﺘﻢ ﺑﻬﺒﻮﺩ ﻳﺎﺑﺪ.
ﺑﺎﺯﺷﻨﺎﺳﻲ ﺍﻟﮕﻮ ﺩﺭ ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﺯﻣﻴﻨﻪها ﻧﻘﺶ ﻛﺎﺭبردی دارد. ﺑﺎﺯﺷﻨﺎﺳﻲ ﺣﺮﻭﻑ، ﺑﺎﺯﺷﻨﺎﺳﻲ  ﻧﻮﻳﺴﻨﺪﻩ ﺗﺼﺪﻳﻖ ﺍﻣﻀﺎﺀ ، ﻃﺒﻘﻪ ﺑﻨﺪﻱ ﺍﺛﺮ ﺍﻧﮕﺸﺖ ﻭ ﺑﺎﺯﺷﻨﺎﺳﻲ ﮔﻔﺘﺎﺭ ﻧﻤﻮﻧﻪ ﻫﺎﻳﻲ ﺍﺯ ﺍﻳﻦ ﻛﺎﺭﺑﺮﺩﻫﺎ ﻫﺴﺘﻨﺪ.

 ﺑﺎﺯﺷﻨﺎﺳﻲ ﻧﻮﺭﻱ ﺣﺮﻭﻑ OCR

ﺩﺭ ﭼﻨﺪ ﺩﻫﺔ ﮔﺬﺷﺘﻪ مسئله ﺑﺎﺯﺷﻨﺎﺳﻲ ﺍﻟﮕﻮﻫﺎﻱ ﻧﻮﺷﺘﺎﺭﻱ ﺷﺎﻣﻞ ﺣﺮﻭﻑ، ﺍﺭﻗﺎﻡ ﻭ ﺳﺎﻳﺮ ﻧﻤﺎﺩﻫﺎﻱ ﻣﺘﺪﺍﻭﻝ ﺩﺭ ﺍﺳﻨﺎﺩ ﻣﻜﺘﻮﺏ ﺷﺪﻩ ﺑﻪ ﺯﺑﺎﻧﻬﺎﻱ ﻣﺨﺘﻠﻒ، ﺗﻮﺳﻂ ﮔﺮﻭﻫﻬﺎﻱ ﻣﺨﺘﻠﻔﻲ ﺍﺯ ﻣﺤﻘﻘﻴﻦ ﻣﻮﺭﺩ ﻣﻄﺎلعه و ﺑﺮﺭﺳﻲ ﻗﺮﺍﺭ ﮔﺮﻓﺘﻪ ﺍﺳﺖ ﻧﺘﻴﺠه ﺍﻳﻦ ﺗﺤﻘﻴﻘﺎﺕ ﻣﻨﺠﺮ ﺑﻪ ﭘﻴﺪﺍﻳﺶ ﻣﺠﻤﻮﻋﻪ ﺍﻱ ﺍﺯ ﺭﻭﺷﻬﺎﻱ ﺳﺮﻳﻊ ﻭ ﺗﺎ ﺣﺪ ﺯﻳﺎﺩﻱ ﻣﻄﻤﺌﻦ ﻣﻮﺳﻮﻡ ﺑﻪ OCR یا « ﺑﺎﺯﺷﻨﺎﺳﻲ ﻧﻮﺭﻱ ﺣﺮﻭﻑ » ﺑﻤﻨﻈﻮﺭ ﻭﺍﺭﺩ ﻧﻤﻮﺩﻥ اطلاعات ﻣﻮﺟﻮﺩ ﺩﺭ  ﺍﺳﻨﺎﺩ، ﻣﺪﺍﺭﻙ، ﻛﺘﺎﺑﻬﺎ ﻭ ﺳﺎﻳﺮ ﻣﻜﺘﻮﺑﺎﺕ ﭼﺎﭘﻲ ﻳﺎ ﺗﺎﻳﭗ ﺷﺪﻩ ﻭ ﺣﺘﻲ ﺩﺳﺘﻨﻮﻳﺲ ﺑﻪ ﺩﺍﺧﻞ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺷﺪﻩ ﺍﺳﺖ  ﻫﻨﮕﺎﻣﻲ ﻛﻪ ﻳﻚ ﺳﻨﺪ ﻣﺘﻨﻲ ﺍﺳﻜﻦ ﻣﻲ ﺷﻮﺩ، ﻛﺎﻣﭙﻴﻮﺗﺮ ﺍﻳﻦ ﻣﺘﻦ ﺭﺍ ﺑﺼﻮﺭﺕ ﻳﻚ ﺗﺼﻮﻳﺮ ﮔﺮﺍﻓﻴﻜﻲ ﺗﺸﺨﻴﺺ ﻣﻲ ﺩﻫﺪ ﺩﺭ ﻧﺘﻴﺠﻪ ﻛﺎﺭﺑﺮﺍﻥ ﻗﺎﺩﺭ ﻧﺨﻮﺍﻫﻨﺪ ﺑﻮﺩ ﻛﻪ ﻣﺘﻦ ﻣﻮﺟﻮﺩ ﺩﺭ ﺗﺼﻮﻳﺮ ﺳﻨﺪ ﺭﺍ ﻭﻳﺮﺍﻳﺶ ﻧﻤﺎﻳﻨﺪ ﻭ ﻳﺎ ﺁﻥ ﺭﺍ ﻣﻮﺭﺩ ﺟﺴﺘﺠﻮ ﻗﺮﺍﺭ ﺩﻫﻨﺪ.   ﻳﻚ ﻧﺮﻡ ﺍﻓﺰﺍﺭ OCR ﺍﻳﻦ ﻣﺘﻦ ﺍﺳﻜﻦ ﺷﺪﻩ ﺭا ﺧﻮﺍﻧﺪﻩ و ﻣﺤﺘﻮﻳﺎﺕ ﺁﻧﺮﺍ  ﺷﻨﺎﺳﺎﻳﻲ ﻧﻤﻮﺩﻩ ﻭ ﺑﺼﻮﺭﺕ ﻳﻚ ﻓﺎﻳﻞ ﺩﺭ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺫﺧﻴﺮﻩ ﻣﻲ ﺳﺎﺯﺩ.

مزیت های سیستم های OCR

استفاده از سیستم های  OCR دو مزیت عمده دارد:
الف) افزایش چشمگیر سرعت دسترسی به اطلاعات؛ زیرا در متن برخلاف تصویر، امکان جستجو و ویرایش وجود دارد.
ب) کاهش فضای ذخیره سازی؛ زیرا حجم فایل متنی استخراج شده از یک تصویر، معمولا بسیار کمتر از حجم خود فایل تصویری است.

ﭼﻨﻴﻦ ﻗﺎﺑﻠﻴﺘﻲ ﺍﻣﻜﺎﻥ ﺍﺳﺘﻔﺎﺩه ﮔﺴﺘﺮﺩﻩ ﺍﺯ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺭﺍ ﺩﺭ ﭘﺮﺩﺍﺯﺵ ﺳﺮﻳﻊ ﺣﺠﻢ ﻭﺳﻴﻌﻲ ﺍﺯ ﺩﺍﺩﻩ ﻫﺎی ﻣﻜﺘﻮﺏ ﺗﻮﻟﻴﺪ ﺷﺪﻩ ﺗﻮﺳﻂ ﺍﺩﺍﺭه ﭘﺴﺖ ﻭ ﺷﺮﻛﺘﻬﺎ ﻭ ﻣﺆﺳﺴﺎﺕ ﻣﺨﺘﻠﻒ ﻧﻈﻴﺮ ﺑﺎﻧﻜﻬﺎ، ﺷﺮﻛﺘﻬﺎی ﺑﻴﻤﻪ و ﻣﺆﺳﺴﺎﺕ ﺧﺪﻣﺎﺕ ﻋﻤﻮﻣﻲ و ﺳﺎﻳﺮ ﻧﻬﺎﺩﻫﺎﻳﻲ ﻛﻪ ﺳﺎﻟﻴﺎﻧﻪ ﺑﺎ ﻣﻴﻠﻴﻮﻧﻬﺎ ﻣﻮﺭﺩ ﭘﺮﺩﺍﺧﺖ، ﺩﺭﻳﺎﻓﺖ ﻭ ﺣﺴﺎﺑﺮﺳﻲ ﺍﻣﻮﺭ ﻣﺸﺘﺮﻳﺎﻥ ﺧﻮﺩ ﻣﻮﺍﺟﻬﻨﺪ، ﻓﺮﺍﻫﻢ ﻣﻲ ﺁﻭﺭﺩ .

منبع