اطلاعیه

Collapse
No announcement yet.

پردازش تصویر بر روی دستگاهی جداگانه

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پردازش تصویر بر روی دستگاهی جداگانه

    سلام.
    من قصد دارم که از بین نرم افزار های MatLab و OpenCv یکی رو برای پردازش تصویر انتخاب کنم.اما نمی دونم که از بین این دوتا، با کدومشون میشه پروژه ای رو که نوشتی، طوری طراحی کرد که روی دستگاهی جداگانه (منظورم دستگاهی غیر از کامپیوتر PC و یا لپ تاپ) بشه اجراش کرد.مثلا فرض کنید من برنامه ای رو طراحی کردم که با تشخیص یک مربع زرد رنگ در تصویر، یک پیغامی رو نشون میده.
    حالا قصد دارم این برنامه رو روی یک دستگاهی که مثلا از یک میکرو و وب کم (و سایر قطعات الکترونیکی مورد نیاز) تشکیل شده اجرا کنم.به نظر شما کدوم یک از این دو نرم افزار بی دردسر تر اینکارو میشه باهاش انجام داد؟؟؟
    برای شنا کردن به سمت مخالف رودخانه قدرت و جرات لازم است . وگرنه هر ماهی مرده ای هم می تواند از طرف موافق جريان آب حرکت کند ...

    #2
    پاسخ : پردازش تصویر بر روی دستگاهی جداگانه

    نوشته اصلی توسط behnam-soft
    سلام.
    من قصد دارم که از بین نرم افزار های MatLab و OpenCv یکی رو برای پردازش تصویر انتخاب کنم.اما نمی دونم که از بین این دوتا، با کدومشون میشه پروژه ای رو که نوشتی، طوری طراحی کرد که روی دستگاهی جداگانه (منظورم دستگاهی غیر از کامپیوتر PC و یا لپ تاپ) بشه اجراش کرد.مثلا فرض کنید من برنامه ای رو طراحی کردم که با تشخیص یک مربع زرد رنگ در تصویر، یک پیغامی رو نشون میده.
    حالا قصد دارم این برنامه رو روی یک دستگاهی که مثلا از یک میکرو و وب کم (و سایر قطعات الکترونیکی مورد نیاز) تشکیل شده اجرا کنم.به نظر شما کدوم یک از این دو نرم افزار بی دردسر تر اینکارو میشه باهاش انجام داد؟؟؟
    سلام،
    در حقیقت هیچ کدوم از اونها به درد کار شما نمیخورن، چون هردو از کتابخونه های آماده برای اجرای پردازشها استفاده میکنن و اگه از یکی از اونها اسنفاده کنید همیشه وابسته به همون زبان میشید و نمیتونید Migrate کنید به زبان دیگه یا Platform دیگه ای.
    یکی از بهتربن روشها نوشتن کدها به زبان ANSI-C هست که برای سوئیچ کردن بین کامپیوتر، سیستم عامل های مختلف و میکروها بسیار خوبه، همینطور C و ++C
    اما هر کدوم معایب و فواید خودشون رو دارن و به تنهایی کافی نیستن، نوع برنامه نویسی و الگوریتم هم بسیار تاثیر گذاره.
    برای کار شما هم باید در انتخاب میکرو دقت کنید، چون با سرعت پایین میکروها مثل AVR نسبت به مثلا یک FPGA اصلا کار خاصی برای پردازش تصویر نمیشه انجام داد، نه سرعت دارن، نه خافظه و نه پردازش موازی انجام میدن. برای همین بهتره روی تمامی نقاط کار با دقت بررسی کنید، کلاک دوربین، میزان ویدئو بافر لازم، الگورینم و ... بعد از در نظر گرفتن همه اینها برید سراغ انتخاب میکرو.
    موفق باشید.
    اسمایل، تومورو ویل بی وُرس

    دیدگاه


      #3
      پاسخ : پردازش تصویر بر روی دستگاهی جداگانه

      نوشته اصلی توسط ژوپیتر
      سلام،
      در حقیقت هیچ کدوم از اونها به درد کار شما نمیخورن، چون هردو از کتابخونه های آماده برای اجرای پردازشها استفاده میکنن و اگه از یکی از اونها اسنفاده کنید همیشه وابسته به همون زبان میشید و نمیتونید Migrate کنید به زبان دیگه یا Platform دیگه ای.
      یکی از بهتربن روشها نوشتن کدها به زبان ANSI-C هست که برای سوئیچ کردن بین کامپیوتر، سیستم عامل های مختلف و میکروها بسیار خوبه، همینطور C و ++C
      اما هر کدوم معایب و فواید خودشون رو دارن و به تنهایی کافی نیستن، نوع برنامه نویسی و الگوریتم هم بسیار تاثیر گذاره.
      برای کار شما هم باید در انتخاب میکرو دقت کنید، چون با سرعت پایین میکروها مثل AVR نسبت به مثلا یک FPGA اصلا کار خاصی برای پردازش تصویر نمیشه انجام داد، نه سرعت دارن، نه خافظه و نه پردازش موازی انجام میدن. برای همین بهتره روی تمامی نقاط کار با دقت بررسی کنید، کلاک دوربین، میزان ویدئو بافر لازم، الگورینم و ... بعد از در نظر گرفتن همه اینها برید سراغ انتخاب میکرو.
      موفق باشید.
      با تشکر از پاسخ شما باید بگم که OpenCv همونطور که می دونید از کتابخونه ها که به زبان c هست استفاده می کنه، پس مطمئنا مشکلی پیش نخواهد اومد اگر من برنامه م رو بنویسم و بعد مثلا اون رو در کدویژن استفاده کنم و در نهایت میکر رو پروگرام کنم.اما در مورد پلت فرم های مختلف که فرمودید، من به تازگی اطلاعاتی بدست آوردم مبنی بر اینکه یک نرمافزاری هست به اسم QT که شما برنامه ت رو در اون به زبان C می نویسی و بعد برای هر پلت فرمی که خواستی می تونی توسعه اش بدی.البته فعلا اطلاعات من خیلی ابتدایی هست و خوشحال می شم اگر شما اطلاعاتی در این مورد داری اینجا بیان کنید.

      من فعلا نظرم اینه که از میکروی ARM استفاده کنم.البته نمی دونم زبان برنامه نویسیش چی هست اما فکر می کنم شاید از FPGA کمی راحت تر بشه باهاش کار کرد و بی دردسر تره. نظر شما چیه؟؟؟
      برای شنا کردن به سمت مخالف رودخانه قدرت و جرات لازم است . وگرنه هر ماهی مرده ای هم می تواند از طرف موافق جريان آب حرکت کند ...

      دیدگاه


        #4
        پاسخ : پردازش تصویر بر روی دستگاهی جداگانه

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

        دیدگاه


          #5
          پاسخ : پردازش تصویر بر روی دستگاهی جداگانه

          نوشته اصلی توسط microjo
          والا من یجا دیدم که نوشته بودن میشه از متلب برای پردازش تصویراستفاده کرد بشرطی که میکروکنترلر arm پرسرعت و یا پرسسور باشه
          میشه استفاده کرد،اما طبق تحقیقات کمی که من در سایت http://www.aishack.in کردم، متوجه شدم که سرعت اجرای OpenCv بسیار بسیار بیشتر از Matlab هستش. . .یعنی شما اگر از یه میکرو برای هر دو نرم افزار استفاده کنی، خروجیه خیلی بهتری از OpenCv می گیری.
          برای شنا کردن به سمت مخالف رودخانه قدرت و جرات لازم است . وگرنه هر ماهی مرده ای هم می تواند از طرف موافق جريان آب حرکت کند ...

          دیدگاه


            #6
            پاسخ : پردازش تصویر بر روی دستگاهی جداگانه

            با تشکر از پاسخ شما باید بگم که OpenCv همونطور که می دونید از کتابخونه ها که به زبان c هست استفاده می کنه، پس مطمئنا مشکلی پیش نخواهد اومد
            در این مورد زیاد مطمئن نباشید :icon_razz: همونطور که از اسم OpenCV هم مشخصه، Open source Computer Vision، این کتابخونه ها مربوط به Architecture های کامپیوتری هستن و از جایی که OpenCV به صورت Cross-Platform طراحی شده، تنها در بین ساختارهایی مثل 8086 و غیره قابل اجراست، از طرف دیگه وقتی حرف از Platform میشه یعنی سیستم عامل و برنامه اجرا شده تحت سیستم عامل، این به این معنی هست که شما بیشتر سرعت پردازش رو ازدست میدید تا Instruction Set های بیهوده و اضافی سیستم عامل رو پردازش کنید به جای اینکه تمام قدرت سخت افزار رو برای پردازش تصویر بکار بگیرید.

            اگر من برنامه م رو بنویسم و بعد مثلا اون رو در کدویژن استفاده کنم
            همونطور که گفتم وقتی سیستم عامل برای اجرای برنامه های OpenCV لازم هست دیگه کدویژن خود بخود میره کنار، یعنی غیر ممکنه.

            .اما در مورد پلت فرم های مختلف که فرمودید، من به تازگی اطلاعاتی بدست آوردم مبنی بر اینکه یک نرمافزاری هست به اسم QT که شما برنامه ت رو در اون به زبان C می نویسی و بعد برای هر پلت فرمی که خواستی می تونی توسعه اش بدی.
            QT هم یک Framework هست که مخصوص برنامه نویسی برای Application ها هست، یعنی باز نیاز به سیستم عامل داره.
            میشه روی یک ARM سیستم عاملی مثل Linux به صورت Embedded نصب کرد ولی اون Linux قابلیتهای خیلی کمی داره که اصلا به حد اجرای یک برنامه پردازش تصویر نیست، اگه اینطور بود که الآن همه این کاری رو که شما میگین رو قبل از شما انجام داده بودن

            من فعلا نظرم اینه که از میکروی ARM استفاده کنم.البته نمی دونم زبان برنامه نویسیش چی هست اما فکر می کنم شاید از FPGA کمی راحت تر بشه باهاش کار کرد و بی دردسر تره. نظر شما چیه؟؟؟
            ARM هم در پردازش تصویر خیلی به کار میره، هم میشه C/C++ نوشت، هم میشه اسمبلی نوشت و غیره، در حقیقت اون کامپایلره که در نهایت کد شما رو به زبان ماشین تبدیل میکنه. مسلما ARM آسون تره، باید بگم در برابر FPGA هیچه، کسی که با هردو پردازش تصویر کار کرده باشه خوب حرفم رو میفهمه. کاری که با 200 Mhz با ARM ممکن نیست رو میشه با کمتر از 5 Mhz در FPGA به صورت موازی انجام داد. کارهایی برای پردازش تصویر میشه با FPGA انجام داد که خیلی دور از ذهن و نشدنی میرسه، ولی شدنیه.

            شاید دیر به دیر به سایت سر بزنم، اگه دیر جواب دادم به دل نگیرید. :agree:
            اسمایل، تومورو ویل بی وُرس

            دیدگاه


              #7
              پاسخ : پردازش تصویر بر روی دستگاهی جداگانه

              با تشکر از اطلاعاتی که دادین آقای ژوپیتر، باید بگم که:
              1- اگر اینطوری که شما می گین باشه که پس پردازش تصویر بر روی ربات ها و غیره چطوری انجام میشه و با چه زبان و نرم افزاری؟اینطور که شما می گین باید یه کار خیلی پیچیده باشه که احتیاج به یک سیستم الکترونیکی خیلی پیچیده هم داره !

              2-یعنی هر کسی که خواست کارهای پردازشی بر روی تصاویر انجام بده، که نخواد حتما از لپ تاپ یا PC استفاده کنه، چه کاری باید انجام بده؟

              3- از لحاظ هزینه، اگر بخوای همین سیستمی که من مد نظر دارم (پردازش تصویر بر روی دستگاهی جداگانه) رو با FPGA طراحی کنی، یعنی بدی یه شرکت مداراتشو برات طراحی کنه،شما می دونی تقریبا چقدر بالا میاد ؟؟؟سیستمی که بتونه هم کار پردازش تصویر انجام بده هم یک بانک اطلاعات داشته باشه و هم از یک ال سی دی برای نمایش اطلاعات استفاده کنه که مسلما وب کم هم احتیاج داره.
              برای شنا کردن به سمت مخالف رودخانه قدرت و جرات لازم است . وگرنه هر ماهی مرده ای هم می تواند از طرف موافق جريان آب حرکت کند ...

              دیدگاه


                #8
                پاسخ : پردازش تصویر بر روی دستگاهی جداگانه

                نوشته اصلی توسط behnam-soft
                با تشکر از اطلاعاتی که دادین آقای ژوپیتر، باید بگم که:
                1- اگر اینطوری که شما می گین باشه که پس پردازش تصویر بر روی ربات ها و غیره چطوری انجام میشه و با چه زبان و نرم افزاری؟اینطور که شما می گین باید یه کار خیلی پیچیده باشه که احتیاج به یک سیستم الکترونیکی خیلی پیچیده هم داره !

                2-یعنی هر کسی که خواست کارهای پردازشی بر روی تصاویر انجام بده، که نخواد حتما از لپ تاپ یا PC استفاده کنه، چه کاری باید انجام بده؟

                3- از لحاظ هزینه، اگر بخوای همین سیستمی که من مد نظر دارم (پردازش تصویر بر روی دستگاهی جداگانه) رو با FPGA طراحی کنی، یعنی بدی یه شرکت مداراتشو برات طراحی کنه،شما می دونی تقریبا چقدر بالا میاد ؟؟؟سیستمی که بتونه هم کار پردازش تصویر انجام بده هم یک بانک اطلاعات داشته باشه و هم از یک ال سی دی برای نمایش اطلاعات استفاده کنه که مسلما وب کم هم احتیاج داره.
                1-پردازش تصویر تنها یک مبحث نیست، در هر بخش وابسته به نوع کار مورد نظر از زبان و سخت افزار لازم همون بخش استفاده میشه و نمیشه با یک زبان و یک سخت افزار همه بخشها رو پیاده کرد. مثلا برای افکت بلور تصویر در کارت های گرافیکی در GPU سخت افزاری وجود داره که FFT از تصویر میگیره و میتونه اون رو با هر Level ی بلور کنه، این بخش کاملا به صورت مدار منطقی هست، از طرفی مثلا Photoshop هم اینکار رو نرم افزاری انجام میده ولی نه با سرعتی که GPU انجام میده.
                برای هر کاری نسبت به در خواستی که داده میشه اونکار پیچیده تر میشه، مثلا اگر از شما LPR با سرعت 100 فریم برثانیه بخوان مسلمه که با PC امکان پذیر نیست و باید برید سراغ FPGA.

                2-ابتدا باید کاملا بررسی کنه که به چه Resource هایی نیاز داره و بعد به دنبال سیستم مناسب برای اونکار بگرده.

                3-برای یک pilot board که این امکانات رو داشته باشه میتونید از بردهای آموزشی FPGA هم استفاده کنید که مخصوص پردازش تصویر هستن، بعضیهاشون هم دوربین دارن. از 300 دلار به بالا فقط برای برد، برای برنامه که باید Quote بگیرید که قیمت کارشون چه قدره یا خودتون بنویسید.
                اسمایل، تومورو ویل بی وُرس

                دیدگاه


                  #9
                  پاسخ : پردازش تصویر بر روی دستگاهی جداگانه

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

                  دیدگاه


                    #10
                    پاسخ : پردازش تصویر بر روی دستگاهی جداگانه

                    نوشته اصلی توسط behnam-soft
                    ببینم در این دوربین هایی که چهره رو تشخیص می دن هم از FPGA و متلب استفاده شده؟
                    در بعضی ها شون استفاده شده و در بعضی هم نه، بسنگی به نوع الگوریتم داره. بعضی ها از بیسکوئیت پی سی استفاده میکنن و بعضی ها هم FPGA.
                    اگه جایی لازمه که حتما سخت افزار کنترل بشه یا المانهایی مثل سرعت و دقت و کیفیت مهم هستن، بدون شک FPGA کار میشه، هم صنعتی تره و هم با صرفه تر.
                    مثلا اگه مجبور به کنترل سروو درایور های لنز دوربین هستین یا مثلا فیلترهای سنگینی مثل FFT، DCT و غیره رو باید با سرعت بالا پیاده کنید بهترین راه حل FPGA هست.
                    اسمایل، تومورو ویل بی وُرس

                    دیدگاه


                      #11
                      پاسخ : پردازش تصویر بر روی دستگاهی جداگانه

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

                      دیدگاه

                      لطفا صبر کنید...
                      X