آشنایی با پردازش تصویر: Pixy و راه های جایگزین

فهرست مطالب

مقدمه

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

آنچه در این آموزش یاد می‌گیرید

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

عکس‌ها، فیلم‌ها و در کل تصاویر، علاوه بر ثبت خاطرات کاربرد‌های دیگری نیز دارند. شاید تا به حال دوربین‌های امنیتی را در مکان‌های عمومی دیده باشید، یا ربات‌های مسیریابی که یک خط یا یک شی را دنبال می‌کنند، یا در موارد پیشرفته‌تر ربات‌هایی که در تشخیص یک وضعیت خاص یا جداسازی ناخالصی محصولات مختلف به کار می‌روند. در همه‌ی این موارد و بسیاری از کاربرد‌های مشابه و حتی غیرمشابه عملیاتی روی تصویر انجام می‌شود که پردازش تصویر نام دارد. برای فهم بهتر لازم است که با ساختار تصویر آشنا شویم. هر تصویر یک سیگنال است که در هر نقطه‌ی آن مقادیر پیکسل وجود دارد.(پیسکسل واحد پایه‌ی یک تصویر دیجیتال است که می‌تواند مقادیر متفاوتی برای روشنایی و رنگ آن داشته باشد. این مقادیر “شدت” نام دارند.) این سیگنال یک ولتاژ پیوسته است که توسط حسگر بصری تولید می‌شود و طی عملیاتی مانند نمونه برداری به شکل دیجیتال تبدیل می‌شود. شکل دیجیتال این داده‌ها به صورت یک آرایه دو بعدی یا  ماتریس یک تصویر دیجیتال را تشکیل می‌دهند. بنابراین به صورت f(X,Y) توسط مکان و مقدار آن‌ها نمایش داده می‌شوند. فرموش نکنید که هر ویدیو مجموعه‌ای از تصاویر است که با سرعت مشخصی در هر ثانیه نمایش داده می‌شوند.
پس از ایجاد تصویر فرآیند پردازش آن آغاز می‌شود. اما به چه منظور نیاز به پردازش داریم؟ اگر به اطلاعاتی از یک تصویر نیاز داریم از بینایی کامپیوتری استفاده می‌کنیم. بینایی کامپیوتری راهی برای شبیه سازی بینایی انسان است. بینایی انسان توانایی “یادگیری” و کسب اطلاعات از ورودی‌های بصری را دارد. بینایی کامپیوتری سامانه‌ای است که کامپیوتر را به درک عمیقی از تصاویر یا ویدیو‌های دیجیتال وا‌می‌دارد، حتی برای استفاده هم زمان، که پردازش تصویر بخشی از آن است.

چگونه تصاویر را پردازش کنیم؟

اگر به دنبال کاربرد پردازش تصویر در زمینه رباتیک هستید دو راه وجود دارد:
  1. یک دوربین معمولی انتخاب شود(تصویر را بدون هیچگونه پردازش تحویل می‌دهد.) و سپس برنامه‌نویسی و محاسبات را توسط خود کاربر انجام شود.
  2. از سخت افزار‌هایی استفاده شود که این عملیات را سریع‌ و به آسانی انجام می‌دهند. مانند pixy camera
راه حل اول: اگر راه اول را انتخاب کرده‌اید، ابزار بسیاری برای برنامه نویسی وجود دارند که محبوب‌ترین آن‌ها نرم افزار MATLAB و کتابخانه OpenCV هستند. مقایسه مختصری بین آن‌ها را در می‌بینید:

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

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

اما کدام راه حل بهتر است؟

آشنایی با Pixy

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

قطعات سخت‌افزاری

Pixy CMUcam5 Image Sensor × 1
Arduino UNO R3 × 1

کار با Pixy

حالا مراحل زیر را با ما دنبال کنید:

قدم اول:

Pixy بخرید! PIXY معمولی و PIXY2 دو نسخه‌ از دوربین‌های Pixy هستند. می‌تونید PIXY را از از لینک بالا خریداری کنید و در ادامه نحوه استفاده از آن را ببینید.

دوم:

تغذیه برد را متصل کنید. برد یک پورت USB برای تغذیه دارد، آن را بع پورت USB کامپیوتر متصل کنید. می‌توانید با باتری 6 تا 10 ولتی از طریق دو پین که پشت برد قرار دارد نیز آن را تغذیه کنید.

سوم:

آن را به کمک کابل USB به کامپیوتر متصل کنید. (یک سر کابل را به کامپیوتر و سر دیگر آن را به پورت میکرو USB برد PIXY وصل کنید.)

چهارم:

نرم افزار مربوط به دوربین خود را از اینجا دانلود کنید. PIXY Mon نرم افزار Pixy برای لینوکس، مک و ویندوز است. این اپلیکیشن می‌تواند چیزی که Pixy می‌بیند را تنظیم کند و نمایش دهد.

پنجم:

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

ششم:

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

هفتم:

شبکه‌ای از جسم در PIXY MON نمایش داده می‌شود. مطمئن شوید که منطقه درستی از جسم بدون پس‌زمینه انتخاب شده است. لغزنده‌ی موجود در قسمت تنظیمات می‌تواند به انتخاب منطقه مناسب کمک کند.

هشتم:

حالا دوربین به هر رنگ یک شماره اختصاص می‌دهد. هفت علامت به معنی تشخیص هفت رنگ است.بااستفاده از رنگ‌ها میتوانید جسم یا  مکان را برای دوربین تعریف کنید. به طور مثال برچسب فرمز-صورتی-آبی می‌تواند نشان‌دهنده در باشد. با این روش می‌توان هزاران جسم را برای دوربین تعریف کرد. این مجموعه رنگ‌ها “کد رنگ” یا CC نام دارد. برای تنظیم CC میتوانید از PIXY MON استفاده کنید.پس از آن میتوانید از آن مانند هر علامت دیگری استفاده کنید.

نهم:

بعد از یک یادگیری موفق اگر از میکروکنترلر یا برد متصل به دوربین استفاده کنید، می‌توانید جسمی که Pixy تشخیص داده است را بررسی کنید.اگر از Arduino استفاده می کنید، از این پایه بندی برای اتصال استفاده کنید. (برای اطلاعات بیشتر اینجا کلیک کنید). سپس کتابخانه Pixy را از اینجا دانلود کنید و از مسیر Sketch> Include library> Add Library به کتابخانه‎‌های آردوینو اضافه کنید. حالا در Pixy با طرح پیش فرض Xو Y (مکان) و عرض و طول (اندازه) شی را خواهید داشت. طرح های دیگر نیز می توانند مورد استفاده قرار گیرند. مانند pan و tilt. برای اتصال برد‌های دیگر می توانید اینجا ببینید.

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

نزدیک به پایان!

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

حالا می‌توانید برای ربات خود از پردازش تصویر استفاده کنید و داشتن چشم سوم روی کامپیوتر خود لذت ببرید!

آموزش های مشابه

Comments (6)

  • علی Reply

    سلام یعنی با این دوربین و اردوینو میتوان تشخیص چهره امنیتی ساخت؟

    مارس 20, 2020 at 10:06 ب.ظ
    • Mohammad Damirchi Reply

      متاسفانه این ماژول جهت پردازش رنگ می باشد برای پردازش چهره مناسب نمی باشد.
      برای پردازش چهره از 2 روش زیر می توانید استفاده کنید.
      1. ماژول های مخصوص پردازش چهره
      2. استفاده از مینی کامپیوتر ها(مانند رزبری پای) به همراه دوربین ساده و کد نویسی

      جولای 21, 2020 at 12:13 ب.ظ
      • علی Reply

        سلام وقت بخیر.
        من یدونه ماژول دوربین OV7670 با حافظه FIFO دارم، میخواستم بدونم آیا میتونم این ماژول رو به کمک arm stm32f4 و یا برد های رزبریپای کانفیگ و برنامه نویسی کنم؟
        چون میخوام پردازش تصویر و الگوریتم های مختلف انجام بدم نیاز دارم از پایتون استفاده کنم، متاسفانه آردوینو کشش این موضوع رو نداره.
        ممنون میشم اگر پاسخ بدید.

        جولای 14, 2023 at 8:46 ب.ظ
        • محمد دمیرچی Reply

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

          جولای 17, 2023 at 10:49 ق.ظ
  • علی Reply

    سلام
    میشه دیتا هایی که به وسیله pixy بدست میآیند را به صورت مستقیم وارد متلب کرد ؟ و این که بطور مستقیم میشه pixy را به متلب متصل کرد و دیتا های بدست اومده را در متلب استفاده کرد؟

    نوامبر 8, 2020 at 12:41 ق.ظ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.