بایگانی برچسب برای: پلاک خوان

ردیابی دقیق اشیاء بر اساس اطلاعات حرکت و الگوریتم 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

سیستم های چندعاملی (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)

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

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

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

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


استاندارد Onvif چیست؟

استاندارد Onvif یا (فروم واسط تصویری بر اساس شبکه باز) یک استاندارد باز است، که به دوربین مدار بسته و دیگر دستگاه های شبکه IP امکان می دهد تا از طریق یک استاندارد پلت فرم باز یکپارچه، کنترل و مدیریت شوند.

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

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

معایب Onvif

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

  • کیفیت و بهره وری اجرای پروتکل Onvif
  • رعایت کردن قوانینی در طراحی نرم افزار برای ارتباط دهی هرچه بهتر میان دستگاه ها با پروتکل Onvif

ممکن است هنگامی که از نرم افزار استفاده می کنید برخی از ویژگی ها و ارتقاسازی های دوربین IP موجود نباشد. برای استفاده بهینه از این ویژگی ها ممکن است نیاز باشد تا از نرم افزار اختصاصی خود سازندگان استفاده نمایید یا نرم افزاری را انتخاب کنید که این ارتقا سازی را پشتیبانی می کند.

ارتقا سازی انتقالی

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

کارکرد سیستم‌های بینایی ماشین

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

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

  • بینایی سطح پایین (Low Level Vision)

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

  • بینایی سطح میانی (Mid Level Vision)

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

  • بینایی سطح بالا (High Level Vision)

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

 

کاربرد‌های بینایی ماشین

امروزه می‌توان ردپای بینایی ماشین را در صنعت، هواشناسی، شهرسازی، کشاورزی، نجوم و فضا نوردی، پزشکی و غیره که در ادامه درباره هرکدام مختصرا بحث شده است، مشاهده کرد.
  • صنعت (Industry)

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

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

بینایی ماشین-صنعت-نان

  •  هواشناسی (Meteorology)

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

بینایی ماشین-آب و هوا

  • شهرسازی (Urbanization)

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

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

 

بینایی ماشین-شهر سازی

  • کشاورزی (Agricultural)

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

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

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

بینایی ماشین-کشاورزی

  • نظامی (Martial)

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

بینایی ماشین-نظامی

  •  امنیتی (Security)

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

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

 

بینایی ماشین-امنیتی

  •  نجوم و فضا نوردی (Astronomy and Space Exploration)

ساخت دستگاه‌های اتوماتیک رصد آسمان و ثبت وقایع آسمانی به صورت خودکار از کاربردهای بینایی ماشین است که امروزه روی آن کار می‌شود.

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

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

کاربرد دیگر آن حذف گردوخاک و جو سیاره‌ها از تصاویر به کمک تصویربرداری IR و X-RAY به‌صورت همزمان و ترکیب این تصاویر است.

 

بینایی ماشین-تلسکوپ هابل-نجوم

  •  پزشکی (Medic)

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

 

بینایی ماشین-پزشکی

  •  فناوری‌های علمی (Scientific Technology)

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

بینایی ماشین در توسعه فناوری پیشرفته Global Positioning Systems) GPS) نقش زیادی داشته و تهیه نقشه‌های سه‌بعدی از جاده‌ها در تمام نقاط جهان، از کاربردهای دیگر آن است. هم چنین با به وجود آمدن این علم، مسابقات ربات‌های فوتبالیست به‌صورت جدی دنبال شد.

رباتیک-ربات فوتبالیست

  • باستان‌شناسی (Archaeology)

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

بینایی ماشین-باستان شناسی

  •  سینما (Cinema)

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

بینایی ماشین-پردازش تصویر-سینما

  •  اقتصاد (Economy)

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

  •  زمین شناسی (Geology)

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

بینایی ماشین-زمین شناسی

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

  •  سرعت سنج (Speedometer)

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

بینایی ماشین-سرعت سنج

  • ثبت تخلف (Submit an Infringement)

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

بینایی ماشین-ثبت تخلف

  • ایمنی در رانندگی (Driving Safety)

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

بینایی ماشین-ایمنی رانندگی

  •  تشخیص حجم (Volume Detection)

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

بینایی ماشین-نخاله ساختمانی

نرم افزارهای بینایی ماشین

 

بینایی ماشین-متلب

 

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

اما کسانی که تجربه کار با این نرم افزار را دارند به خوبی می‌دانند که با وجود سهولت برنامه نویسی با آن، سرعت اجرای MATLAB به خصوص برای کار با ویدیو بسیار آزاردهنده است. همچنین این نرم افزار متن باز (Open Source) نیست.

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

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

 


منابع

fa.wikipedia.org

www.enline.ir

 

بینایی ماشین چیست؟قسمت اول
بینایی ماشین چیست؟قسمت دوم

تاریخچه پردازش تصویر چیست؟

در اوایل دهه ۶۰ متعلق به ناسا شروع به ارسال تصاویر تلویزیونی مبهمی از سطح ماه به زمین کرد. استخراج جزئیات تصویر برای یافتن محلی برای فرود سفینه آپولو نیازمند اعمال تصمیماتی روی تصاویر بود. این کار مهم به عهده لابراتوار  Jet Propulsion قرار داده شد. بدین ترتیب زمینه تخصصی پردازش تصاویر رقومی آغاز گردید و مثل تمام تکنولوژی های دیگر سریعاً استفاده های متعدد پیدا کرد.

از سال ۱۹۶۴ تاکنون، موضوع پردازش تصویر، رشد زیادی کرده است.

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

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

آموزش MATLAB - تاریخچه پردازش تصویر

 پردازش تصویر اساسا شامل سه مرحله زیر است:

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

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

  1. تبدیلات هندسی: همانند تغییر اندازه، چرخش و…
  2. رنگ: همانند تغییر روشنایی، وضوح و یا تغییر فضای رنگ
  3. ترکیب تصاویر: ترکیب دو یا چند تصویر
  4. فشرده سازی پرونده: کاهش حجم تصویر
  5. ناحیه بندی پرونده: تجزیهٔ تصویر به نواحی با معنی
  6. بهبود کیفیت پرونده: کاهش نویز، افزایش کنتراست، اصلاح گاما و …
  7. سنجش کیفیت تصویر
  8. ذخیره سازی اطلاعات در تصویر
  9. انطباق تصاویر

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

هدف از پردازش تصویر را می توان به ۴ گروه تقسیم کرد.

۱٫ تشدید تصویر و بهبود

۲٫ بازیابی تصویر

۳٫ اندازه گیری الگو

۴٫ تشخیص تصویر

 پردازش تصویر با نرم افزار MATLAB :

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

کاربردهای پردازش تصویر :

ابتدایی ترین کاربردهای پردازش تصاویر رقومی در دهه ۶۰ و۷۰ جنبه های نظامی و جاسوسی بود که باعث شد نیاز به تصاویر با کیفیت بالاتر بوجود آید. پس از آن مصارف دیگری برای تصاویر رقومی سطح زمین پیدا شد که کاربرد تصاویر چند طیفی (Multi Spectral)  در کشاورزی و جنگل داری از آن جمله است. همچنین با استفاده از تصاویر رقومی عملیاتهایی مثل کنکاش نفت در سرزمین های دور افتاده و یا ردیابی منابع آلودگی شهری از داخل دفتر کار متخصصین آنها انجام شد.

بزودی کاربردهای زمینی زیادتری برای پردازش تصاویر رقومی پیدا شد . از اواسط دهه ۷۰ تا اواسط دهه ۸۰ اختراع اسکنر ها ی CAT یا (Computerized Arial Topography )  و اسکنر های MRI یا (Magnetic Resonance Imagery ) پزشکی را متحول کردند. صنعت چاپ استفاده کننده بعدی بود. در اواخر دهه ۸۰ پردازش تصاویر رقومی وارد دنیای سرگرمی شد بطوریکه امروزه این نقش به امر عادی تبدیل شده است. بهمین ترتیب دنیای صنعت با روباتهایی که عملا می بینند یعنی در واقع با ظهور تکنولوژی Machine Vision  متحول شد و هنوز هم در حال تحول است.

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

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

۱٫         اندازه گیری و کالیبراسیون

۲٫         جداسازی پینهای معیوب

۳٫         بازرسی لیبل و خواندن بارکد

۴٫         بازرسی عیوب چوب

۵٫         بازرسی قرص و بلیسترها

۶٫         بازرسی و دسته بندی

۷٫         درجه بندی و دسته بندی کاشی

۸٫         بازرسی و درجه بندی میوه

۹٫         بازرسی عیوب ورق های فلزی، پلیمری و …

۱۰٫       بازرسی لوله ها

۱۱٫       میکروسکوپ های دیجیتال

۱۲٫       اسکن سه بعدی

۱۳٫       بازرسی کمی بطری ها

۱۴٫       هدایت روبات ها

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

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

  • افزایش سرعت و کیفیت تولید
  • کاهش ضایعات
  • اصلاح روند تولید
  • گسترش کنترل کیفیت

منبع

پردازش تصویر چیست؟

تعریف پردازش تصویر:

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

تاریخچه:

در اوايل دهه 60 سفينه فضايي رنجر 7 متعلق به ناسا شروع به ارسال تصاوير تلويزيوني مبهمي از سطح ماه به زمين کرد. استخراج جزئيات تصوير براي يافتن محلي براي فرود سفينه آپولو نيازمند اعمال تصميماتي روي تصاوير بود. اين کار مهم به عهده لابراتوار  Jet Propulsion قرار داده شد. بدين ترتيب زمينه تخصصي پردازش تصاوير رقومي آغاز گرديد و مثل تمام تکنولوژي های ديگر سريعاً استفاده هاي متعدد پيدا کرد.

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

پردازش تصویر اساسا شامل سه مرحله زیر است.

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

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

هدف از پردازش تصویر را می توان به 4 گروه تقسیم کرد.

1. تشدید تصویر و بهبود

2. بازیابی تصویر

3. اندازه گیری الگو

4. تشخیص تصویر

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

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

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

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

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

1.         اندازه گیری و کالیبراسیون

2.         جداسازی پینهای معیوب

3.         بازرسی لیبل و خواندن بارکد

4.         بازرسی عیوب چوب

5.         بازرسی قرص و بلیسترها

6.         بازرسی و دسته بندی

7.         درجه بندی و دسته بندی کاشی

8.         بازرسی و درجه بندی میوه

9.         بازرسی عیوب ورق های فلزی، پلیمری و …

10.       بازرسی لوله ها

11.       میکروسکوپ های دیجیتال

12.       اسکن سه بعدی

13.       بازرسی کمی بطری ها

14.       هدایت روبات ها

منبع

پردازش تصویر چیست؟ قسمت 1
پردازش تصویر چیست؟ قسمت 2

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

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

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

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

فقط قبل از اجرای برنامه این مراحل رو طی کنید:
1- مسیر عکس خودرو(glx.jpg) رو وارد کنید
2-دیتا بیس (فایل زیپ) رو دانلود کنید
3-مسیر دیتا-بیس کاراکترها رو درست وارد کنید.
4-برنامه رو اجرا کنید-نتایج رو صفحه کامند matlab نمایش داده میشود.
5-هر جا خواستید از پشت دستور imshow و figure علامت % رو حذف کنید تا کارهای که روی تصویر انجام میشود رو مرحله به مرحله ببینید.
6-برنامه را اجرا کنید و نتایج را در صفحه متلب ببیند.

 

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

تعداد صفحات پی دی اف : 18

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

سورس کد : نرم افزار متلب 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

 

OCR چیست

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

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

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

 ﺷﻨﺎﺳﺎﻳﻲ ﺍﻟﮕﻮ 

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

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

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

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

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

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

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

منبع

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

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

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

این مدل به صورت

{\displaystyle \operatorname {logit} (p)=\ln \left({\frac {p}{1-p}}\right)=\beta _{0}+\beta _{1}x_{1,i}+\cdots +\beta _{k}x_{k,i},}

{\displaystyle i=1,\dots ,n,\,}

است که

{\displaystyle p=\Pr(y_{i}=1).\,}

{\displaystyle p=\Pr(y_{i}=1|{\vec {x_{i}}};{\vec {\beta }})={\frac {e^{\beta _{0}+\beta _{1}x_{1,i}+\cdots +\beta _{k}x_{k,i}}}{1+e^{\beta _{0}+\beta _{1}x_{1,i}+\cdots +\beta _{k}x_{k,i}}}}={\frac {1}{1+e^{-\left(\beta _{0}+\beta _{1}x_{1,i}+\cdots +\beta _{k}x_{k,i}\right)}}}.}

برآورد پارامترهای بهینه

برای بدست آوردن پارامترهای بهینه یعنی  می‌توان از روش برآورد درست نمایی بیشینه (Maximum Likelihood Estimation) استفاده کرد. اگر فرض کنیم که تعداد مثال‌هایی که قرار است برای تخمین پارامترها استفاده کنیم  است و این مثال‌ها را به این شکل نمایش دهیم . پارامتر بهینه پارامتری است که برآورد درست نمایی را بیشینه کند، البته برای سادگی کار برآورد لگاریتم درست نمایی را بیشینه می‌کنیم. لگاریتم درست نمایی داده برای پارامتر  را با  نمایش می‌دهیم:

 

{\displaystyle L(D,{\vec {\beta }})=\log \left(\prod _{i=1}^{n}Pr(y_{i}=1|{\vec {x_{i}}};{\vec {\beta }})^{y_{i}}\times Pr(y_{i}=0|{\vec {x_{i}}};{\vec {\beta }})^{1-y_{i}}\right)=\sum _{i=1}^{n}y_{i}\times \log Pr(y_{i}=1|{\vec {x_{i}}};{\vec {\beta }})+(1-y_{i})\log Pr(y_{i}=0|{\vec {x_{i}}};{\vec {\beta }})}

 

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

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

{\displaystyle {\begin{cases}{\mbox{Initialize}}\,\,{\vec {\beta ^{\,old}}}\,\,{\mbox{randomly}}\\{\mbox{loop until convergence :}}\\\,\,{\mbox{for}}\,\,\,\,i=0\,\,\,\,{\mbox{to}}\,\,\,\,n:\\\,\,\,\,\,\,{\mbox{for}}\,\,\,\,j=0\,\,\,\,{\mbox{to}}\,\,\,\,m:\\\,\,\,\,\,\,\,\,\,\,\,\,{\vec {\beta _{j}^{\,new}}}={\vec {\beta _{j}^{\,old}}}+\alpha \left(y_{i}-{\frac {1}{1+e^{-\left(\beta _{0}^{\,old}+\beta _{1}^{\,old}x_{1,i}+\cdots +\beta _{k}^{\,old}x_{k,i}\right)}}}\right){\vec {x_{i,j}}}\\\,\,\,\,\,\,\beta ^{\,old}=\beta ^{\,new}\end{cases}}}

تنظیم مدل (Regularization)

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

در تنظیم مدل به روش  تابع هزینه را به این شکل تغییر می‌دهیم:

{\displaystyle L_{r}(D,{\vec {\beta }})=-L(D,{\vec {\beta }})+\lambda ||{\vec {\beta }}||_{1}=-\sum _{i=1}^{n}y_{i}\times \log Pr(y_{i}=1|{\vec {x_{i}}};{\vec {\beta }})+(1-y_{i})\log Pr(y_{i}=0|{\vec {x_{i}}};{\vec {\beta }})+\lambda \sum _{k=0}^{m}|\beta _{k}|}

این روش تنظیم مدل که به روش لاسو (Lasso) نیز شهرت دارد باعث می‌شود که بسیاری از پارامترهای مدل نهائی صفر شوند و مدل به اصطلاح خلوت (Sparse) شود.

در تنظیم مدل به روش  تابع هزینه را به این شکل تغییر می‌دهیم:

{\displaystyle L_{r}(D,{\vec {\beta }})=L(D,{\vec {\beta }})+\lambda ||{\vec {\beta }}||_{2}^{2}=-\sum _{i=1}^{n}y_{i}\times \log Pr(y_{i}=1|{\vec {x_{i}}};{\vec {\beta }})+(1-y_{i})\log Pr(y_{i}=0|{\vec {x_{i}}};{\vec {\beta }})+\lambda \sum _{k=0}^{m}\beta _{k}^{2}}

در روش تنظیم از طریق سعی می‌شود طول اقلیدسی بردار  کوتاه نگه داشته شود.  در روش  و  یک عدد مثبت است که میزان تنظیم مدل را معین می‌کند. هرچقدر  کوچکتر باشد جریمه کمتری برا بزرگی نرم بردار پارامترها یعنی  پرداخت می‌کنیم. مقدار ایدئال  از طریق آزمایش بر روی داده اعتبار (Validation Data) پیدا می‌شود.

تفسیر احتمالی تنظیم مدل

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

{\displaystyle Pr\left({\vec {\beta }}\,|\,D\right)={\frac {Pr\left(D\,|\,{\vec {\beta }}\right)\times Pr\left({\vec {\beta }}\right)}{Pr\left(D\right)}}}

ازین رو

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

با ساده کردن این معادله به نتیجه پایین می‌رسیم:

با تغییر علامت معادله، بیشینه‌سازی را به کمینه‌سازی تغییر می‌دهیم، در این معادله همان  است:

همان‌طور که دیدیم جواب همان تنظیم مدل با نرم  است.

حال اگر توزیع پیشین را از نوع توزیع لاپلاس با میانگین صفر در نظر بگیریم به تنظیم مدل با نرم  خواهیم رسید.

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

منبع


رگرسیون لوژستیک (لجستیک)

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

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

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

3. در تعلیم و تربیت فرض کنید می خواهیم بدانیم یک فرد در امتحان نمره می آورد یا خیر.

4. در روانشناسی می خواهیم بدانیم آیا فرد یک رفتار بهنجار اجتماعی دارد یا خیر.

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

1. خطا دارای توزیع نرمال نیست. 2. واریانس خطا ثابت نیست. 3. محدودیت های زیادی در تابع پاسخ وجود دارد. مشکل سوم مطرح شده مشکل جدی تری است.

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

دو مساله ی مهم که باید در ارتباط با رگرسیون لجستیک در نظر داشته باشیم عبارتند از:

1. رابطه ی بین پیش بینی کننده ها و متغیر وابسته غیر خطی است.

2. ضرایب رگرسیونی از طریق روش ماکزیمم درستنمایی برآورد می شود.

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

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

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


رگرسیون لجستیک (LOGESTIC REGRESSION)

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

رگرسیون لجستیک

بسیاری از مطالعات پژوهشی در علوم اجتماعی و علوم رفتاری، متغیرهای وابسته از نوع دو مقوله ای را بررسی می­کنند. مانند: رأی دادن یا ندادن در انتخابات، مالکیت (مثلاٌ داشتن یا نداشتن کامپیوتر شخصی) و سطح تحصیلات (مانند: داشتن یا نداشتن تحصیلات دانشگاهی) ارزیابی می­شود. از جمله حالت­ های پاسخ دوتایی عبارتند از: موافق- مخالف، موفقیت – شکست، حاضر – غایب و جانبداری – عدم جانبداری.

 

متغیرهای تحلیل رگرسیون لجستیک

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

 پیش فرض های رگرسیون لجستیک

با این که رگرسیون لجستیک در مقایسه با رگرسیون خطی پیش فرض­ های کمتری دارد (به عنوان مثال پیش فرض­ های همگنی واریانس و نرمال بودن خطاها وجود ندارد)، رگرسیون لجستیک نیازمند موارد زیر است:

  1. هم خطی چندگانه کامل وجود نداشته باشد.
  2. خطاهای خاص نباید وجود داشته باشد (یعنی، همه متغیرهای پیش­ بین مرتبط وارد شوند و پیش­ بین­ های نامربوط کنار گذاشته شوند).
  3. متغیرهای مستقل باید در مقیاس پاسخ تراکمی یا جمع پذیر (cumulative response scale)، فاصله ای یا سطح نسبی اندازه­ گیری شده باشند (هر چند که متغیرهای دو مقوله ای نیز می­ توانند مورد استفاده قرار گیرند).

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

منبع


رگرسیون لجستیک چیست؟

رگرسیون لجستیک، شبیه رگرسیون خطی است با این تفاوت که نحوه محاسبه ضرایب در این دو روش یکسان نمی باشد. بدین معنی که   رگرسیون لجستیک، به جای حداقل کردن مجذور خطاها (کاری که   رگرسیون خطی انجام می دهد)، احتمالی را که یک واقعه رخ می دهد، حداکثر می کند. همچنین، در تحلیل   رگرسیون خطی، برای آزمون برازش مدل و معنی داربودن اثر هر متغیر در مدل، به ترتیب از آماره های Fوt استفاده می شود، در حالی که در   رگرسیون لجستیک، از آماره های کای اسکوئر(X2) و والد استفاده می شود (مومنی، ۱۳۸۶: ۱۵۸).

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

انواع رگرسیون لجستیک

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

۱-رگرسیون لجستیک اسمی دووجهی: موقعی است که متغیر وابسته در سطح اسمی دووجهی (دوشقی) است. یعنی در زمانی که با متغیر وابسته اسمی دووجهی سروکار داریم.

۲-رگرسیون لجستیک اسمی چندوجهی : موقعی مورد استفاده قرار می گیرد که متغیر وابسته، اسمی چندوجهی (چندشقی) است.

 

منبع

 

 

 

ماشین‌تورینگ

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

نمایش هنری یک ماشین تورینگ

نمایش هنری یک ماشین تورینگ

 تاریخچه

زمینه‌های تاریخی:ماشین محاسباتی

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

آنالیز گندی در مورد ماشین تحلیلی بابیج پنج عملیات زیر را توضیح می‌دهد:

۱-عملگرهای ریاضی + و – و *

۲-هر ترتیبی از عملگرها قابل قبول است

۳-تکرار عملگر

۴-تکرار شرطی

۵-انتقال شرطی

تعریف منطقی (انتزاع ذهنی مفاهیم کلی)

ماشین تورینگ عبارت است از یک پنج-تاپل (پنج‌تایی) به‌صورت {\displaystyle M=(Q,\Sigma ,\Gamma ,\delta ,q_{0})\!}، که در اینجا:

  • {\displaystyle M\!} برای نمایش مفهوم ماشین انتخاب شده است.
  • {\displaystyle Q\!} مجموعه‌ای است متناهی، از حالات داخلی.
  • {\displaystyle \Gamma \!} مجموعه‌ای متناهی موسوم به الفبای نوار و حاوی نمادی مخصوص {\displaystyle B\!} برای نمایش یک فاصلهٔ خالی روی نوار ماشین است.
  • {\displaystyle \Sigma \!} زیرمجموعه‌ای است از{\displaystyle \Gamma -\{B\}\!} و موسوم به الفبای ورودی. یعنی الفبای ورودی زیر مجموعه‌ای از الفبای نوار است که شامل خالی نیست. نوارهای خالی نمی‌توانند بعنوان ورودی استفاده شوند.
  • {\displaystyle \delta \!} عبارت است از یک تابع جزئی، موسوم به تابع انتقال از دامنهٔ {\displaystyle Q\times \Gamma \!} به برد {\displaystyle Q\times \Gamma \times \{L,R\}\!}.
  • {\displaystyle q_{0}\!} حالت شروع نام دارد، یعنی، حالتی از ماشین است که محاسبه را درآن آغاز می‌کنیم.

بطور کلی {\displaystyle \delta \!} یک تابع جزئی روی {\displaystyle Q\!\times \Gamma \!} است و تفسیرش عملکرد ماشین تورینگ را بیان می‌کند.

تعریف وصفی (عملی دنیای خارج از ذهن)

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

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

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

۳. یک دستگاه ثبت حالت وجود دارد که حالت‌های ماشین تورینگ را ذخیره می‌کند (یکی از تعداد زیادی حالت متناهی). یک حالت شروع وجود دارد که همراه با مقدار دهی اولیه است. این حالت‌ها، حالت ذهن شخصی را که محاسبات را انجام می‌دهد، جایگزین می‌کنند.

۴. یک جدول محدود (که گاهی جدول عمل یا تابع انتقال نامیده می‌شود)، از دستورالعمل‌ها وجود دارد که در حال حاضر، حالت (q_i) و نماد (a_j) به ماشین داده می‌شود (برای مدل‌های ۵تایی و گاهی ۴تایی) که روی نوار خوانده می‌شود و می‌گوید که ماشین، این موارد را به تزتیب زیر برای مدلهای ۵تایی انجام دهد:

  • یا پاک کردن یا نوشتن یک نماد (بصورت جایگزین کردن a_i با a_j۱)
  • حرکت کردن کلاهک نوار (که توسط d_k مشخص می‌شود و می‌تواند مقادیر L برای حرکت به چپ و R برای حرکت به سمت راست به خود بگیرد. همچنین مقدار N نشان دهنده ساکن بودن نوار است).
  • فرض کنید یک حالت مشابه یا یک حالت جدید مشخص شده است (رفتن به وضعیت q_i۱)

در مدل‌های ۴تایی پاک کردن یا نوشتن یک نماد (a_j۱) و حرکت کلاهک نوار به سمت چپ یا راست (d_k) بصورت دستورالعمل‌های جداگانه مشخص شده‌اند. بطور خاص، جدول به ماشین می‌گوید که چیزی را پاک کند یا یک نماد را بنویسد (ia) یا کلاهک نوار به سمت چپ و راست حرکت کند (ib). فرض کنید که حالتهای مشابه یا حالتهای جدیدی مشخص شده‌اند. اما عملیات‌های (ia) و (ib) دستورالعمل‌های یکسانی ندارند. در برخی از مدلها، اگر در جدول، ورودی از نمادها و حالتها نداشته باشیم، ماشین متوقف خواهد شد. سایر مدلها، نیاز به همه ورودی‌ها دارند تا پر شوند. توجه داشته باشید که هر بخش از ماشین- حالتها و نمادها، مجموعه‌ها، اقدامات، چاپ کردن، پاک کردن و حرکت نوار- محدود، گسسته و تشخیص پذیر است. این، پتانسیل نامحدود نوارهاست که خود مقدار نامحدودی از یک فضای ذخیره‌سازی است.

مقایسه با ماشین‌های واقعی

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

چرا ماشین‌های تورینگ مدل‌های مناسبی برای رایانه‌های واقعی هستند؟

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

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

۳. ماشین واقعی همانند ماشین‌های تورینگ می‌توانند حافظه مورد نیازش را به کمک دیسک‌های بیشتر، بزرگ کند. اما حقیقت این است که هم ماشین تورینگ و هم ماشین واقعی، برای محاسبات نیازی به فضا در حافظه‌شان ندارند.

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

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

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

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

محدودیت‌های ماشین تورینگ

نظریه پیچیدگی محاسباتی

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

همزمانی

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

منبع


ایده ماشین تورینگ چگونه مطرح شد و چه چیزی را دنبال می‌کرد؟

ایده ماشین تورینگ چگونه مطرح شد و چه چیزی را دنبال می‌کرد؟

 

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

سرآغاز

تاریخچه محاسبات دیجیتال به دو بخش عهد عتیق و عهد جدید قابل تقسیم است. پیشوایان عهد قدیم به سرپرستی لایبنیتز (Gottfreid Wilhelm Leibniz) در سال 1670 میلادی منطق مورد نیاز ماشین‌های محاسباتی دیجیتال را فراهم کرده و پیشروان عهد جدید به سرپرستی فون نویمان (John von Neumann) در سال 1940 خود این ماشین­‌ها را ساختند. آلن تورینگ، که در سال 1912 متولد شده است، جایی در میان این دو عصر مهم قرار گرفته و شاید بتوان وی را به نوعی پیوند دهنده این دو عهد مهم به شمار آورد. وی در سال 1936، درست در زمانی که به تازگی از کالج کینگ در دانشگاه کمبریج فارغ‌التحصیل شده و به دانشگاه پرینستون در نیوجرسی امریکا رفته بود، با نگارش و انتشار مقاله‌ای با عنوان «درباره اعداد رایانش‌پذیر، ‌با کاربردی بر مسئله تصمیم‌گیری» (On Computable Numbers, with an application to the Entscheidungs problem )، راهنمای پیاده‌سازی ماشین‌های با منطق ریاضی شد.

در این مقاله، تورینگ قصد داشت تا مسئله Entscheidungs  problem ریاضی‌دان آلمانی، دیوید هیلبرت (David Hilbert) را که در سال 1928 طرح کرده بود، حل کند. موضوع نهایی مسئله فوق، تصمیم‌گیری درباره این بود که آیا یک روال مکانیکی می‌تواند صحت یک عبارت منطقی را در تعداد محدودی حرکت تعیین کند یا خیر؟ تورینگ در این مقاله، ایده و تصور رایج در دهه 1930 از یک کامپیوتر (یک شخص مجهز به یک مداد، کاغذ و دستورالعمل‌های مشخص) را در نظر گرفته و با حذف تمام رگه‌های هوشمندی (Intelligence) از آن به غیر از امکان پیروی از دستورالعمل‌ها و امکان خواندن و نوشتن علامت‌هایی از یک الفبای خاص روی یک رول کاغذ با طول بی نهایت، ماشینی را معرفی کرد که بعدها به ماشین تورینگ معروف شد و سرآغاز طلوع ماشین‌های محاسباتی دیجیتال امروزی شد.

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

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

در ادامه مقاله، تورینگ امکان وجود ماشین منفردی را مطرح کرد که می‌تواند هر توالی محاسباتی‌ را محاسبه کند. «چنین ماشین محاسباتی جامعی می‌تواند رفتار هر ماشین دیگری را با استفاده از شرح کار کد شده آن تقلید کند.» بنابراین، با ذکر این عبارت، تورینگ ایده «نرم‌افزار» را در حدود 76 سال قبل پیشگویی کرده بود. در پایان، تورینگ مسئله پیچیده هیلبرت را به روشی جالب پاسخ داده است. او عبارتی را یافته بود که در تعداد گام‌های محاسباتی محدود، توسط هیچ ماشینی قابل محاسبه نبود: آیا شرح کار کد شده یک ماشین که توسط ماشین محاسباتی جامع تورینگ اجرا می‌شود، در نهایت به پایان می‌رسد یا برای همیشه اجرا می‌شود؟

بر همین اساس، وی پاسخ مسئلهEntscheidungs problem را منفی دانسته و از این طریق، پايه‌گذار طراحی ماشین‌های محاسباتی دیجیتال شد. در سال 1949، فون‌نویمان در یک سخنرانی با اشاره به این مفهوم مطرح شده توسط تورینگ عنوان کرد: «شما می‌توانید چیزی بسازید که کاری را که می‌شود انجام داد، انجام دهد. اما نمی‌توانید نمونه‌ای بسازید که به شما بگوید که آیا آن کار انجام‌پذیر است یا خیر؟»
تورینگ با درک محدودیت‌های ماشین‌های با قطعیت مشخص، شروع به جست‌وجو در زمینه محاسبات غیر‌قطعی با ماشین‌های پیشگو کرد. از نظر او، این نوع ماشین‌ها، همان روال گام به گام را مورد استفاده قرار می‌دهند اما با استفاده از نوعی پیشگویی، گاهی جهش­‌هایی غیرقابل پیش‌بینی نیز انجام می‌دهند.

رمزگشایی

پس از پایان تحصیلات در دوره دکترا، تورینگ در سال 1938 به انگلیس بازگشت و گسترش جنگ جهانی دوم منجر به بروز نیاز هرچه بیشتر به ایده‌های وی شد. به همین دلیل، وی در مدرسه رمز و کدهای محرمانه دولت به خدمت گرفته شد. در آنجا، تورینگ و همکارانش به همراه استادش، ماکسول نیومن (Maxwell Newman) ارتباطات دشمن را، از جمله پیام‌های کدگذاری شده توسط ماشین آلمانی انيگما، رمزگشایی کردند. انیگما، ماشینی شبیه به ماشین تورینگ بود که امکان کد‌گذاری متن ورودی خود را با مکانیزمی مکانیکی فراهم می‌کرد. آن‌ها کار کدگشایی رمزهای انیگما را با مجموعه‌ای از دستگاه‌های الکترومکانیکی که بمب (bombe) نامیده می‌شدند، شروع کردند که هر کدام می‌توانست در هر لحظه 36 حالت احتمالی پیکربندی انیگما را شبیه‌سازی کند.

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

پس از پایان جنگ، نیاز به کامپیوترهای پیشرفته‌تر، از کاربردهای رمزگشایی به سمت طراحی بمب‌های اتمی پیش رفت. در سال 1946 ایالات‌متحده با داشتن کامپیوتر زمان جنگ خود، یعنی ENIAC (سرنام Electronic Numerical Integrator and Computer)، کار روی طراحی سلاح‌های اتمی را در پیش گرفت.  در انستیتو مطالعات پیشرفته پرینستون و با حمایت مالی ارتش ایالات‌متحده، دفتر تحقیقات نیروی دریایی و همچنین کمیسیون انرژی اتمی امریکا، فون‌نویمان موظف شد تا نمونه الکترونیکی ماشین جامع تورینگ را بسازد. در آن زمان، هدف او ساخت ماشین تورینگی بود که حافظه آن با سرعت نور قابل دسترسی بوده و به پردازش در زمینه‌های مختلف می‌پرداخت. اما هدف دولت ایالات متحده امریکا از سرمایه‌گذاری روی چنین ماشینی تعیین امکان ساخت بمب هیدروژنی بود و به همین دلیل، فون نویمان قول داد که ماشین مذکور که از 5 کیلوبایت فضای ذخیره‌سازی بهره می‌برد، امکان اجرای کدهای داینامیک مذکور را داشته باشد.

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

ماشین تورینگ چیست ؟ قسمت 1
ماشین تورینگ چیست ؟ قسمت 2
ماشین تورینگ چیست ؟ قسمت 3