سلام.
1.همونطور که خودتان گفتید پردازش تصویر بدرد یه رباتیکی نمیخوره. پس من میرم سراغ بینای ماشین یا ربات. منظور من این بوده که این بینایی(چه ماشین و چه ربات) رو از کجا شروع کنم؟چه پیش نیازهایی برای opencv نیاز هست.(کلن برای بینایی ماشین یا ربات).
2. منبع رو اشتباهی نوشتم. منظورم نرم افزار برای بینایی بود. یعنی به غیر از متلب و opencv نرم افزار دیگری برای بینایی ماشین یا ربات هست که ارزش گذاشتن وقت رو داشته باشه؟
3. فرق opencv در ویندوز با لینوکس چیه؟ و چرا لینوکس رو توصیه میکند؟
درست است که بینایی ربات با بینایی ماشین با بینایی کامپیوتر متفاوت است
اما این تفاوت ماهیتی نیست ، بلکه تفاوت جزئی است
تفاوتش در این است که هر کدام با معیار خود (هدف) می گویند کدام روش مناسب و کدام نامناسب است
من توصیه می کنم سخت نگیری و مطلب آموزشی در مورد هر بینایی بود بخوانی
ممکن است در یک کتاب بینایی کامپیوتر برای یک مسئله چند روش گفته باشد و گفته باشد مثلا روش الف بهتر است ، اما شما که روش ج را نیز خواندی متوجه شوی برای ربات این بهتر است (بینایی ربات)
در بعضی از مسائل فقط یک راه ارائه شده ، در این صورت هر سه بینایی از یک الگوریتم یکسان برای آن مسئله استفاده می کنند
باتوجه به این که جمعیت کامپیوتری ها در جهان زیاد تر از رباتیک ها هستند ، منابع ، مثال و ... بینایی کامپیوتر بیشتر پیدا می شود ، پس بهتر است از آن ها استفاده کنی
به طور خلاصه بینایی ، بینایی است
1- برای شروع بینایی (بدون توجه به ابزار) بهتر است ابتدا شناسایی الگو (پترن ریکاگنیشن) سپس یادگیری ماشین (ماچین لرنینگ) را مطالعه کنی که هر کدام یک کتاب است و پیشنیازی جز محاسبات عددی و برنامه نویسی ندارد
البته دیدم کسانی بدون مطالعه این دو ، مستقیم رفتند دنبال بینایی و پروژه های خوبی نیز انجام دادند اما از نظر من آن ها همیشه دارای ضعف پشتوانه ی علمی هستند.
بنابراین شما هم می توانی مستقیم شروع کنی هر چند از نظر من درست نیست
تنها پیشنیاز واجب opencv ، برنامه نویسی سی پلاس پلاس است
اما دو پیشنیاز علمی مستحب را گفتم
همچنین پیشنیاز های مستحب دیگری نظیر لینوکس ، Cmake و GIT دارد
2- نرم افزار زیاد است ، اما من هیچ کدام در حدی نمی دانم که ارزش وقت گذاشتن داشته باشد
opencv نرم افزار نیست. یکی سری کتابخانه به زبان سی پلاس پلاس است
همان طور که stdio یک کتابخانه است یا math یک کتابخانه است
در واقع opencv یکی سری کد است که به زبان سی پلاس پلاس نوشتند تا لازم نباشد شما هر برنامه ای که می نویسی این کد ها را کپی پیست کنی
به نظر من برای رباتیکی ها وقت گذاشتن برای یادگیری دستورات کتابخانه های opencv واقعا ارزش دارد
3- از نظر یادگیری هیچ وقتی ندارد
از نظر کد نوشتن (کد بینایی محض) ، فقط تو ویندوز چهار خط اضافه نیاز دارد که در تمامی برنامه نیز یکسان است
از نظر کامپایل، لینوکس کمی راحت تر است چون از cmake می توانی استفاده کنی!
برای این که فرقش را در این دو سیستم عامل بدونی ، نیاز است که در مورد نحوه کامپایل برنامه و نحوه اجرای برنامه بدونی
که من حوصله ندارم توضیح بدم. برو تو تالار کامپیوتر بپرس فرق کامپایلر ویژوال سپ پلاس پلاس با کامپایلر G++ چیسیت و هر کدام چگونه کد ها را به برنامه تبدیل می کنند
همین طور یک تاپیک دیگر در تالار کاپیوتر باز کن و بپرس تفاوت اجرای برنامه ها در این دو سیستم عامل چیست، چگونه این ها از رم، سی پی یو و ... استفاده می کنند
اما یک تفاوت اصلی دارد، سرعت اجرا در لینوکس چند برابر بیشتر است ، دلایلش را نیز با دو تاپیکی که تو تالار کامپیوتر می زنی متوجه می شوی
یک تفاوت فرعی دارد که مهم نیست، چون تو لینوکس فقط برنامه سی پلاس پلاس می نویسی دردسر کمتری داری تا وقتی که که تو ویندوز باید با ویژوال استدیو و تنظیمات بسیارش سرکله بزنی. به عبارت دیگر تو ویندوز به جای سی پلاس پلاس باید ویژوال سی پلاس پلاس بنویسی
تو بینایی بر خلاف پردازش تصویر سرعت عامل مهمی است
حتی تو بینایی کامپیوتر نیز محدودیت سرعت وجود دارد. اگر برنامه کامپیوتر کند باشد مشتری می رود از کس دیگری می خرد
4- هر لینوکسی سخت نیست که ازش می ترسی!
لینوکس خود انواع مختلفی دارد
سختی کار با لینوکسی مانند kubuntu چیزی در حد ویندوز است. برای همین مناسب افرادی مانند شما است که دنبال سختی نیستند
اما سختی کار با لینوکس gentoo زیاد است. برای همین به تازه واردان هرگز توصیه نمی شود اما سریع تر از بقیه است
چون بینایی می خواهی کار کنی ، از بین هزاران لینوکس ، لینوکس هایی را انتخاب کن رومیزی KDE داشته باشند.
دلیلش این است که opencv با KDE سازگار تر است تا Gnome