بایگانی برچسب برای: Hcl

فناوری فشرده سازی تصویر چگونه عمل می کند؟

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

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

چرا باید تصاویر را فشرده سازی کرد؟

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

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

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

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

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

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

فشرده سازی بدون اتلاف

این روش را روش فشرده سازی بازگشت پذیر نیز می گویند. زیرا با استفاده از این روش امکان بازگردانی تصویر فشرده شده به تصویر اصلی وجود دارد. این روش ضریب فشرده سازی کمتری دارد و کیفیت تصویر را کاهش نمی دهد. برای فشرده سازی عکس ها با این روش الگوریتم های مختلفی وجود دارند که نتیجه بالا را به دست می دهند. رایج ترین الگوریتم حذف محتواهای تکراری با روشی خاص است. به این صورت سیستم از عبارات و متون تکراری فاکتور می گیرد و محتواهای اضافی را حذف می کند. برای درک بهتر موضوع به این مثال توجه کنید. تصر کنید محتوای ما «whatisimage whatisimage2 whatisimage3» باشد. اگر بخواهیم این متن را با روش فوق فشرده سازی کنیم لازم است از عبارت تکراری «whatisimage» فاکتور بگیریم و بقیه آنها را حذف نماییم. نتیجه به صورت «w (w)2 (w)3» در می آید. در این روش عبارت «(w)» به جای «whatisimage» قرار گرفته است و همین باعث شده طول متن مورد نظر تا حد زیادی کاهش یابد.

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

فشرده سازی بااتلاف

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

فشرده سازی با اتلاف

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

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

ابزارهای فشرده سازی عکس

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

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

انواع روشهای فشرده سازی تصویر

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

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

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

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

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

اما پس از توضیحات ابتدایی برویم سر اصل موضوع یعنی روشهای فشرده سازی تصویر. به طور کلی ۵ روش فشرده سازی تصویر (JPEG، MPEG، MP3، MPEG2، MPEG) مد نظر ما می باشد که یک یک آنها را ذکر کرده و توضیح می دهیم.

روش JPEG 
این فرمت مخفف عبارت JOINT PHOTOGRAPHIC EXPERT GROUP و به معنی «گروه مشترک کارشناسان گرافیک» است. از این نام برای نوعی فشرده سازی تصویر نیز استفاده شده است. روش JPEG اولین و البته ساده ترین روش فشرده سازی تصویر می باشد که جهت فشرده‌سازی تصاویر گرافیکی استفاده ایجاد شده است.

فشرده سازی به روش jpeg

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

روش MPEG
نام فرمت MPEG مخفف عبارت MOVING PICTURE EXOERT GROUP و به معنی «گروه کارشناسان تصویر متحرک» می باشد. روش مذکور در ابتدا آن داده های تصویری را با سرعت حدود ۵ مگابیت در ثانیه انتقال می داد که در نهایت منجر به ایجاد تصاویر ویدئویی می‌شد. با این روش از فشرده سازی تصاویر امکان ذخیره سازی تصاویر متحرک برای ۷۰ دقیقه و به اندازه ۶۵۰ مگابایت فراهم بود. در روش MPEG بیت‌ (Bit) های داده به صورت سریالی ارسال می‌شوند که در کنار آنها بیت‌های کنترل و هماهنگ‌کننده نیز ارسال می شوند که مکان و نوع جاگذاری بیت‌های اطلاعاتی را برای ثبت اطلاعات صدا و تصویر تعیین می کند. البته روش کار کمی پیچیده تر از این است که توسط رایانه انجام می شود.

روش MPEG2
در این روش که MPEG2 نام دارد از ضریب فشرده‌سازی بالاتری نسبت به روشهای پیشین استفاده می شود. در این روش امکان بررسی داده ها ۱۵ مگابیت در ثانیه وجود دارد و از آن در DVD ها استفاده می شود. لازم به ذکر است که در روش MPEG2 هر فریم (Frame) تصویر شامل چندین سطر از اطلاعات دیجیتالی می باشد که با روشهای پیشرفته جایگذاری می شوند.

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

روش MPEG-4 کاربرد فراوان دارد که نمونه آن در فیلم صحنه بازی تنیس است. در این حالت می توان صحنه را به دو مولفه بازیکن و زمین بازی تقسیم کرد که در آن زمین بازی دائما ثابت می باشد و در تمام تصاویر تکرار می شود. اما بازیکن همواره در حال حرکت می باشد. در این روش پهنای باند اشغالی بسیار کاهش می یابد و با روشهای پیشرفته حجم فایل ها کاهش می یابد.

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


در ادامه مطالعه فایل های زیر می تواند کمک کننده باشد:

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

رمز فایل: behsanandish.com

فشرده سازی بدون اتلاف

رمز فایل: behsanandish.com

فشرده سازی تصویر به روش MPEG

رمز فایل: behsanandish.com

فشرده سازی تصویر قسمت 1
فشرده سازی تصویر قسمت 2

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

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

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

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

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

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

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

چرا از شبکه های عصبی استفاده می‌کنیم

 

تصویری از عروس دریایی در رؤیای عمیق گوگل
تصویری از عروس دریایی در شبکه عصبی convolutional رؤیای عمیق گوگل

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

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

 

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

 

شبکه مغز کرم الگانس

شبکه مغز کرم الگانس Caenorhabditis elegans _ شبکه نورونی این کرم از 302 نورون و حدود ۷۰۰۰ اتصال سیناپس تشکیل شده است.

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

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

 

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

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

 

نورون مصنوعی

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

 

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

اکشن پتانسیل نورون زیستی: پتانسیل الکتریکی نورون در حالت استراحت در -70 mV قرار دارد. با اعمال محرک بر غشای نورون، پتانسیل غشا به -۵۵ میلی ولت می‌رسد پس از آن در صورتی که محرک اعمال شود پتانسیل غشا به سرعت در نقطه +40 mV به اوج خود می‌رسد و با همان سرعت، پتانسیل غشا به -90 mV کاهش و overshoots پیدا می‌کند و در نهایت دوباره به resting potential (پتانسیل حالت استراحت) در -70 mV بازمی‌گردد

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

ساختار شبکه های عصبی

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

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

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

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

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

تقسیم‌بندی شبکه های عصبی

بر مبنای روش آموزش به چهار دسته تقسیم می‌شوند:

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

کاربرد شبکه های عصبی

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

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

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

 

معایب شبکه های عصبی

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

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

 

تصویری از شبکه عصبی RNN

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

  • Dynamic Neural Network
    • Feedforward neural network FNN
    • Recurrent neural network RNN
      • RNN تکنولوژی speech recognition و handwriting recognition را ممکن کرد.
        • Hopfield network
        • Boltzmann machine
        • Simple recurrent networks
        • Echo state network
        • Long short term memory network
        • Bi-directional RNN
        • Hierarchical RNN
        • Stochastic neural networks
    • Kohonen Self-Organizing Maps
    • Autoencoder
    • Backpropagation
    • probabilistic neural network PNN
    • Time delay neural network TDNN
  • Static Neural Network
    • Neocognitron
    • Radial basis function network RBF
    • Learning vector quantization
    • Perceptron
      • Adaline model
      • Convolutional neural network CNN
        • Deep Dream Google
    • Modular neural networks
      • Committee of machines COM
      • Associative neural network ASNN
  • Memory Network
    • Google / Deep Mind
    • facebook / MemNN
    • Holographic associative memory
    • One-shot associative memory
    • Neural Turing Machine
    • Adaptive resonance theory
    • Hierarchical temporal memory
  • Other types of Networks
    • Instantaneously trained networks ITNN
    • Spiking neural networks SNN
      • Pulse Coded Neural Networks PCNN
    • Cascading neural networks
    • Neuro-fuzzy networks
    • Growing Neural Gas GNG
    • Compositional pattern-producing networks
    • Counterpropagation network
    • Oscillating neural network
    • Hybridization neural network
    • Physical neural network
      • Optical neural network
      • neuromorphic hardware

تمایز Morphologische سلول‌های عصبی 1_Unipolar neuron (نورون تک قطبی) 2_ Bipolar neuron (نورون دو قطبی) ۳_ نورون‌های چند قطبی (سیستم مغز) 4_ Pseudounipolar neuron (سیستم عصبی محیطی)

منبع

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

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

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

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

  • بینایی سطح پایین (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

 

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

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

مشکل deepfake ما در مورد بدتر شدن است: مهندسان سامسونگ در حال حاضر سرهای سخنگوی واقع گرایانه ای را توسعه داده اند که می تواند از یک تصویر تولید شود، بنابراین AI حتی می تواند کلمات را در دهان مونا لیزا قرار دهد.

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

 

 

 

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

و در حالی که همه انواع برنامه های جالب وجود دارد که از تکنولوژی می توان برای آن استفاده کرد – مانند قرار دادن یک نسخه فوق واقع گرایانه از خودتان در واقعیت مجازی – این نگرانی وجود دارد که فیلم های ویدئویی کاملاً تقلبی را می توان از یک تصویر کوچک تولید کرد.

محققان در مقاله خود نوشتند: “چنین توانایی دارای کاربردهای عملی برای تلوزیون است،، از جمله ویدئو کنفرانس و بازی های چند نفره، و همچنین صنعت جلوه های ویژه.”

deepfake

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

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

 

deepfake new

 

این سیستم از یک شبکه عصبی کانولوشن، یک نوع شبکه عصبی بر اساس فرآیندهای بیولوژیکی در قشر بینایی حیوان استفاده می کند. این منحصراً در پردازش پشته های تصاویر و شناخت آنچه در آنها متخصص است – “convolution” اساساً بخش هایی از تصاویر را شناسایی و استخراج می کند (آن همچنین برای نمونه، در جستجوهای تصویری در وب و تکنولوژی خودرو خود راننده استفاده می شود).

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

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

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

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

 

 

 آزمون تورینگ چیست و چه کاربردی دارد؟

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

این‌که فن نویمان و تورینگ تا چه حد در زمان جنگ با یکدیگر همکاری داشته‌اند، چندان معلوم نيست، اما چیزی که مشخص است آن است که تورینگ از نوامبر 1942 تا مارس 1943 در امریکا حضور داشته است در حالی که فون نویمان از فوریه تا جولای 1943 در انگلیس بوده است. در طی جنگ، فیزیکدانان انگلیسی با همکاری فون نویمان، همکاری‌های بسیار مهمی را در پروژه بمب اتمی در Los Alamos در نیومکزیکو به انجام رساندند. در عین حال، تحلیل‌گران رمز امریکایی، در انجام تلاش‌های رمزگشایی انگلیس به همکاری با تورینگ پرداختند. با این‌که تورینگ، فون‌نویمان و نیومن نمی‌توانستند آزادانه با هم مکاتبه کنند اما شاید ایده‌هایشان را در خلال و پس از اتمام جنگ به‌صورت شفاهی با یکدیگر در میان گذاشته‌اند.  مدل تورینگ یک مدل یک بعدی بود که رشته‌ای از علامت‌ها را روی یک نوار کاغذی در نظر می‌گرفت در حالی که پیاده‌سازی فون نویمان یک مدل دو بعدی به شمار می‌آمد؛ یک ماتریس با آدرس دسترسی تصادفی که در بیشتر کامپیوترهای امروزی نیز وجود دارد. اینترنت- مجموعه‌ای از ماشین‌های به هم پیوسته تورینگ که به یک نوار مشترک دسترسی دارند- چشم‌انداز مدل مربوطه را سه بعدی کرد و هنوز، روش کار کامپیوترها از سال 1946 تاکنون بی‌تغییر باقی مانده است.

درس گرفتن از اشتباهات

تورینگ و نویمان از وجود خطا در ماشین‌هایشان مطلع بودند. با این‌که کدهای آن زمان به سادگی قابل اشكال‌زدايي بودند، اما سخت‌افزار به شدت غیر‌قابل اطمینان بود و نتایجی بی‌ثبات ارائه می‌کرد. مشکلی که اکنون کاملاً برعکس شده است. هردوی آن‌ها می‌دانستند که سیستم‌های بیولوژیک روی متدهای آماری و مقاوم در برابر خطا برای پردازش متمرکز شده‌اند (سیستم‌هایی نظیر کدگذاری فرکانسی پالس‌ها در مغز) و فرض کردند که فناوری نیز باید از همین روند پیروی کند. به اعتقاد فون نویمان، اگر هر خطا گرفته شده، تبیین می‌شد و سپس تصحیح می‌شد، سیستمی به پیچیدگی ارگانیسم‌های زنده نمی‌توانستند پاسخ‌هایی در حد میلی‌ثانیه داشته باشند. به اعتقاد تورینگ نیز اگر باید ماشینی بی‌خطا باشد، پس نمی‌تواند هوشمند نیز باشد. وقتی تورینگ در سال 1948به گروه نیومن در دانشگاه منچستر که مشغول طراحی Manchester Mark 1 بودند پیوست، یک تولید‌کننده عدد تصادفی در آن گنجاند که اجازه می‌داد کامپیوتر حدس زده و از اشتباهات خود درس بگیرد. لازم به ذکر است که Manchester Mark 1، نمونه اولیه Ferranti Mark 1 بود که نخستین کامپیوتر دیجیتالی با برنامه ذخیره شده به شمار می‌آمد.

با این‌که ماشین جامع با قطعیت تورینگ بیشترین توجه‌ها را به سوی خود جلب کرد، ایده ماشین‌های بدون قطعیتِ پیشگوی وی به اساس کار هوش نزدیک‌تر بود؛ شهود و بینش، پر‌کننده فاصله میان عبارات منطقی است. ماشین‌های پیشگوی تورینگ امروزه دیگر مفاهیم مجرد نظري نیستند چراکه موتورهای جست‌وجوی اینترنت مثال خوبی از وجود آن‌ها به‌شمار مي‌آيند. یک موتور جست‌وجو در حالت عادی به‌صورت قطعیتی (deterministic) کار می‌کند تا زمانی که کاربری روی یک لینک کلیک می‌کند. از این طریق، کاربر به‌طور غیر‌قطعی (non-deterministic)، مکان اطلاعات سودمند و پر ارزش را به نقشه داده‌ای موتور جست‌وجو اضافه می‌کند.

تورینگ می‌خواست بداند که چگونه مولکول‌ها می‌توانستند به‌طور مجموعه‌ای خود را سازماندهی کرده یا این‌که آیا ماشین می‌تواند فکر کند یا خیر؟ فون نویمان می‌خواست بداند که مغز چگونه کار می‌کند و آیا ماشین‌ها می‌توانند خود را باز‌تولید‌کنند؟ تورینگ که در سن 41 سالگی در‌گذشت، یک نظريه ناتمام در زمینه Morphogenesis (تکوینِ ترکیب) از خود به‌جای گذاشت و فون نویمان نیز که در سن 53 سالگی درگذشت، یک تئوری ناتمام در زمینه خود بازتولیدی (مدلی که بر‌اساس برداشتی از توانایی ماشین تورینگ از تولید کپی‌هایی از خود شکل گرفته بود) از خود به‌جای گذارد. اگر هردوی آن‌ها مدت طولانی‌تری زنده می‌ماندند و ایده‌های آن دو با یکدیگر ترکیب می‌شد، نتایج جالب و شگفت‌انگیزی می‌توانست رقم بخورد. زندگی آن‌ها به فاصله بسیار کوتاهی از کشف مکانیزم درونی ترجمه بین توالی و ساختار در بیولوژی به اتمام رسید و اگر آن‌ها از این کشف مطلع می‌شدند، چه نوآوری‌های خارق‌العاده‌ای را می‌توانستند به ارمغان بیاورند!


بخش دوم

ماشین تورینگ

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

این ماشین نخستین‌بار توسط آلن تورینگ در سال 1936 و در قالب یک مقاله، در پاسخ به مسئله‌ای که ریاضیدان آلمانی، دیوید هیلبرت منتشر کرده بود، مطرح شد. مسئله هیلبرت تصمیم‌گیری درباره این بود که آیا یک روال مشخص وجود دارد که بتواند صحت یک عبارت منطقی را در مراحلی متناهی محاسبه کند یا خیر؟ وی برای پاسخگویی به این سؤال‌، چنین ماشینی را تصور کرد و در نهایت به پاسخ منفی برای مسئله هیلبرت دست یافت. در اکتبر همان سال، فردی به نام امیل پست (Emil Post) مقاله‌ای با عنوان «Finite combinatory processes – formulation 1» منتشر کرد که در آن به توضیح و تبیین نوعی ماشین پرداخته شده بود که می‌توان آن را نوع خاصی از ماشین تورینگ به شمار آورد. کار وی مستقل از تورینگ انجام شده بود با این تفاوت که ماشین پست از الفبای باینری استفاده می‌کرد و مفاهیم حافظه ماشین وی حالت مجرد‌تری نسبت به تصورات تورینگ داشت. به همین جهت، گاهی به این چنین ماشین‌هایی پست-تورینگ  (Post-Turing Machines) نیز گفته می‌شود. بر این اساس، باید توجه داشت که ماشین تورینگ یک فناوری محاسباتی عملی به شمار نمی‌آید بلکه یک دستگاه مجازی و نظری برای نمایش یک ماشین محاسباتی است. ماشین تورینگ، مثال خوبی برای دانشمندان کامپیوتر در زمینه درک کامل محدودیت‌های محاسبات مکانیکی است.

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

تورینگ بعدها و در سال 1948 در مقاله‌ای با عنوان ساز و كار رايانش (Computing Machinery and Intelligent)، تعریف دقیق‌تری از ماشین خودکار محاسباتی خود ارائه کرد و نام آن را ماشین محاسبات منطقی گذارد. وی در این مقاله چنین می‌گوید:

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

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

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

 هد (Head): که برای خواندن و نوشتن علامت‌های روی نوار و انجام عملیات انتقال نوار به چپ یا راست مورد استفاده قرار می‌گیرد. در برخی مدل‌ها هد متحرک بوده و نوار ثابت است.
 جدول متناهی دستورالعمل‌ها: که در برخی مواقع جدول عملکرد یا تابع گذار نامیده می‌شود، جدولی حاوی دستورالعمل‌هایی پنجگانه یا چهارگانه با فرمت qiaj→qi1aj1dk است که وظیفه تعیین عملکرد ماشین در برابر علامت‌های روی نوار را بر عهده دارد. متغیرهای آورده شده در عبارت بالا، نشان‌دهنده حالت جاری ماشین، علامت خوانده‌شده، میزان جابه‌جایی هد و… هستند.

 ثبات حالت: حالت ماشین تورینگ را که از میان تعداد متناهی حالت مختلف انتخاب می‌شود، ذخیره می‌کند. همیشه یک حالت اولیه برای ماشین در زمان راه‌اندازی در این رجیستر ذخیره می‌شود. تورینگ معتقد بود که این رجیستر، جایگزین حالت ذهنی شخصی است که عملیات محاسبات را به انجام می‌رساند.  توجه کنید که هر جزء ماشین، یعنی حالت‌ها و علامت‌ها و همچنین هر عملکرد ماشین یعنی چاپ، پاک‌کردن و حرکت دادن نوار متناهی، گسسته و قابل جداسازی بوده و میزان حافظه در دسترس آن یعنی نوار کاملاً نامتناهی است.  یکی از مواردی که امکان دارد پیچیدگی خاصی در بر داشته باشد، state یا حالت ماشین است که می‌توان دو برداشت مختلف از آن داشت. بسیاری از افرادی که پس از تورینگ به مباحثه درباره ماشین وی پرداخته‌اند از عبارت حالت برای اشاره به نام یا مشخص‌کردن دستورالعملی که باید اجرا شود (مانند محتویات رجیستر حالت) استفاده کرده‌اند اما تورینگ در سال 1936 یک تفاوت کاملاً آشکار میان رکوردهای پیکربندی یا حالات درونی ماشین با حالت پیشرفت آن در روال محاسبات قائل بود و به همین دلیل، فرمول حالت وی حاوی دستورالعمل جاری به همراه کلیه علامت‌های روی نوار در نظر گرفته شده بود.

بعدها و در سال 1979، مفهوم ماشین تورینگ توسط هاپ کرافت (Hopcroft) و اولمن بر‌اساس پیشرفت‌های حاصل شده، به طور کاملاً مناسب و به‌صورت هفت گانه و بر اساس <M=<Q,Γ,b,Σ,δ,q0,F فرمول‌بندی و منظم شد که در آن متغیرهای مورد استفاده به ترتیب نشان از مجموعه حالات سیستم (Q)، الفبای استفاده شده روی نوار(Γ)، علامت نشانگر فضای خالی(b)، مجموعه علامات ورودی (Σ)، جدول ‌گذار حالت‌ها(δ)، حالت اولیه (q0 ) و حالت‌های نهایی قابل قبول (F ) دارند. هر چیزی که با این مفهوم قابل توصیف باشد، یک ماشین تورینگ به شمار می‌آید.  مثالی در این زمینه، ماشین Busy Beaver معروف است که برای رسیدن به بیشینه درگیری عملیاتی در میان ماشین‌های تورینگ موجود در یک کلاس مشخص مطرح شده و مورد استفاده قرار می‌گیرد. توصیف این ماشین بر اساس مدل‌سازی مطرح شده در بالا چنین خواهد بود:

{Q = { A, B, C, HALT
{Γ = { 0, 1
«تهی»=b=o
{Σ = {1
جدول 1= δ
حالت اولیه = q0 = A
مجموعه حالت تک عضوی {F = {HALT

ماشین‌های تورینگ مجازی

در کنار انواع نمونه‌های سخت‌افزاری ساخته شده، پیاده‌سازی‌های رایانه‌ای مختلفی از ماشین تورینگ وجود دارد که با سر زدن و مشاهده روند کاری‌ آن‌ها، می‌توانید به خوبی با نحوه کار ماشین تورینگ آشنا شوید. یکی از این ماشین‌های شبیه‌سازی شده که اتفاقاً ساده‌ترین و معمولی‌ترین آن‌ها نیز به شمار می‌آید در آدرسwww.turing.org.uk/turing/scrapbook/tmjava.html وجود دارد و از طریق یک مرورگر معمولی قابل دسترسی است. در این ماشین، می‌توانید عملیات مربوطه را انتخاب کرده و با زدن Load داده‌های مربوطه را روی نوار نوشته و سپس با زدن Run نتیجه اجرای عملیات روی نوار مذکور را ببینید. (شکل1)

 

پیاده سازی نرم افزاری ماشین تورینگ به صورت سریع از http://www.turing.org.uk/book/update/tmjavar.html

 

مثال قبل، نمونه چندان خوبی برای درک شهودی عملکرد ماشین تورینگ نیست چرا که عملیات خود را به یکباره و سریع انجام می‌دهد.
در نقطه مقابل، نمونه پیاده‌سازی شده در آدرس http://ironphoenix.org/tril/tm/   عملکرد بصری مناسبی داشته و با رعایت انجام با فاصله عملیات، درک بهتری از کارکرد ماشین تورینگ با برنامه های مختلف را ارائه می‌کند. (شکل2)

 

پیاده سازی نرم افزاری ماشین تورینگ به صورت مرحله به مرحله از http://ironphoenix.org/tm/

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

 

شبیه سازی نرم افزاری ماشین تورینگ مخصوص ios قابل دانلود از App store

جدول ‌گذار حالت‌های این ماشین که برای 2 علامت و 3 حالت طراحی شده، در جدول 1 آورده شده است. در این جدول علامت P به معنای چاپ یک روی نوار بوده و L و R به ترتیب به معنای انتقال نوار به چپ و راست است. این جدول را می‌توان به‌صورت دیاگرام انتقال حالت نیز نشان داد. اگرچه جدول‌های بزرگ انتقال حالت بهتر است به‌صورت جدولی باقی بمانند و این گونه قابلیت فهم بالاتری دارند، با این حال نمایش وضعیت ماشین‌های ساده به‌صورت دیاگرامی می‌تواند درک بهتر و ساده‌تری از آن‌ها را ارائه کند. توجه داشته باشید که دیاگرام‌های انتقال حالت، یک تصویر فریز‌‌شده از جدول عملکرد ماشین در زمان است و نباید آن را منحنی عملکرد محاسبات ماشین در طول زمان و مکان دانست. شکل 1 نمایی از دیاگرام انتقال حالت ماشین سه حالته Busy Beaver را نشان می‌دهد. با این حال، هر بار که ماشین Busy Beaver شروع به کار می‌کند، یک منحنی عملکردی را از آغاز تا پایان می‌پیماید اما یک ماشین کپی‌کننده که می‌تواند پارامترهای ورودی متغیر داشته باشد، ممکن است منحنی متفاوتی را طی کند. برای تعیین نحوه عملکرد صحیح یک ماشین در طول زمان به سادگی می‌توان از دیاگرام پیشرفت محاسبات استفاده کرد که نمونه‌ای از آن برای ماشین 3 حالته Busy Beaver در شکل 2 آورده شده است.

جدول گذار حالت های یک ماشین تورینگ

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