اطلاعیه

Collapse
No announcement yet.

حذف Backgrond از تصویر

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

    حذف Backgrond از تصویر

    سلام
    من یک پروژه با عنوان طراحی و ساخت یک سیستم پردازش تصویر جهت تشخیص تخلفات رانندگی دارم. :cry:
    فیلمی که من روش کار میکنم با عنوان traffic.avi در نرم افزار متلب موجود هست.
    ولی متاسفانه چون این فیلم با دوربین گرفته شده و نویز داره خیلی از پردازش ها مثل تراکینگ رو نمیتونم روش انجام بدم . oo:
    یک برنامه نوشتم برای حذف background فیلم که در پایین میذارمش ولی متاسفانه خوب کار نمیکنه. :angry:
    اگر کسی بتونه منو در این زمینه راهنمایی کنه ممنون میشم. :redface:
    با تشکر.

    ;('trafficobj = mmreader('traffic.avi
    ;('nframes = get(trafficobj ,'NumberOfFrames
    for i=1:nframes
    ;(singleframe =read(trafficobj,i
    ;(g=rgb2gray(singleframe
    end
    ;(d=imshow(g
    ; j=imfilter(4,4)/16
    for i=1:nframes
    ;( singleframe=read(trafficobj,i
    ;( h=rgb2gray(singleframe
    ; (l=imsubtract(g,h
    ;(level=graythresh(l
    ;(bw=im2bw(l,level
    ;(c=imfilter(bw,j
    ;(imshow(c
    hold on
    end

    #2
    پاسخ : حذف Backgrond از تصویر

    سلام ....................

    داشته های شما چیا هستن؟ یه فایل ویدئو که میشه چندین فریم برای پردازش .. والبته یه سری نویز که روی فایل شما سوار شده .. یه مساله ی مهمی که وجود داره اینه که نوع نویز شما از چه فرمی هست؟ گفتید که کارتون یه کار Tracking هست .. یه نوع نویزی که توی کار Tracking و فایل های ویدئویی از این تیپ وجود داره، نویزهای خانواده ی Motion Blur هست .. این نویزها تعریف خاصی برای خودشون دارن و به دلیل لرزش و حرکت به وجود میان .. حالا اگه بخوان اینارو از بین ببرن؛ میگن در اصطلاح میخوایم Compensation انجام بدیم .. یعنی چی؟ اثر blurring رو توی تصویر از بین ببرن .. حالا متدهاش معمولا چیان؟ دو سه تا روش کلاسیک داره: یکیش Notch Filter ها هستن که اتفاقات اخیر نشون داده زیاد خوب جواب نمیدن؛ امــا اگه توی Application شون بگردید میبینید که ادعا کردن از پس Motion Blur بر میان ولی زیاد جدی نگیرید .. یکی دیگه از اونا Wiener Filter ها هستن .. اینا یه کم خیلی بهترن ؛ میدونید چرا؟ چون از قالب Degraded Function ها استفاده میکنن و میتونن نشون بدن که با تفکیک اثرات نویز؛ میتونن اونا رو از بین ببرن .. معمولا زیاد از اینا استفاده میشهه پس میشه روشون حساب باز کرد ..

    امــا یه جای سوالتون که فکر کنم اصلی ترین بخش سوالتون هم بود گفتید که میخواید اطلاعات Background رو از Foreground جدا کنید و برای این کار اومدید توی کد نمونه تون از یه Subtraction استفاده کردید به این هدف که بتونید با بیس اطلاع از اینکه Motion دارید و از فریم به فریم بعدی تغییر، پس میشه با در نظر گرفتن Subtraction این دو فریم؛ اطلاعات Background رو جدا کرد .. خــب اینجا یه کم باید وایسیم .. میدونید توی بحثهای Motion چه موقع از Subtraction و Differencing استفاده میکنیم؟ موقعی که بیشتر بخوایم Motion Segmentation انجام بدیم .. اونجا سه تا متد خیلی پرکاربرد به کمکمون میان: که Temporal Differencing یکی از اوناست .. پس با Subtraction نمیتونیم امیدوارم باشیم به این قضیه که بتونیم Background رو حذف کنیم .. نمیدونم سوالتون رو درست متوجه شدم یا نه ولی تا اونجایی که من فهمیدم؛ میخواید Background Subtraction انجام بدید؛ درسته؟ اگــه بله؛ باید یه جور دیگه و از زاویه ی دیگه ای باهم صحبت کنیم .. فقط قبلش یه توضیح کوچیک بدم و بعد شما ادامه بدید: Background Subtraction به چه معناست؟ به این معناست که بتونیم یه Object خاص رو از محیط زمینه جدا کنیم یا به صورت Segment شده یا Silhouette .. پس یه مقدار مساله با Blurring فرق میکنه .. من منتظر پاسختون میمونم .. موفق باشید ..
    دوستان! مدتی کمتر به سایت میام ..

    دیدگاه


      #3
      پاسخ : حذف Backgrond از تصویر

      ممنون که جوابم و دادین :smile:
      من در اصل میخوام شیئ متحرک و تشخیص بدم که ماشینه واسه همین از subtraction استفاده کردم.
      بعد میخوام اون شیئ رو دنبال کنم که اگه تخلف انجام داد ازش عکس بگیرم !!!
      خیلی سخته
      من تا حالا پردازش تصویر کار نکرده بودم :cry2:
      من یه برنامه دارم که عملیات tracking و واسه چند تا شیئ مشخص انجام میده پشت زمینه رنگ ثابت هستش و تعداد اشیاء هم معلومه
      اما اینجا اینطور نیست پشت زمینه جاده و منظره است و تعداد ماشین ها و شکلشون هم مشخص نیست oo:
      نویز تصویرم اینطوریه که هی صفحه روشن و خاموش میشه یعنی نورش کم و زیاد میشه :sad: نمیدونم از چه نوعی میشه!!
      ممنون میشم اگه بتونین راهنماییم کنین.

      دیدگاه


        #4
        پاسخ : حذف Backgrond از تصویر

        سلام ....................

        خوبه .. همونطوری که حدس میزدم کارتون Background Subtraction هست .. خب اولا این کار چه چیزایی میخواد؟ یه مدل از Background شما و یه Image که بتونه الگوریتم رو روش تست کنه .. اگه بخوایم به صورت مصور به متد الگوریتم نگاه کنیم؛ میتونیم به شکل زیر اشاره کنیم .. دقیق ببینینش ..



        حالا سوال اینه که چجوری باید مدل Background رو بسازیم؟ شما گفتید تصویر Background مربوط میشه به جاده .. پس میشه به راحتی ازش مدل ساخت (یعنی یه تصویر ورودی ساخت ..) .. باقی ماجرا هم که باید مطابق متد برید جلو .. امــا برای سادگی کارتون؛ یه نمونه کد تست شده براتون میذارم تا بتونید ازش استفاده کنید .. یه فایل دیگه هم میذارم که شرج کاریه که باید بکنید ..

        http://www.cs.umd.edu/~djacobs/CMSC4...oundImages.zip

        http://www.cs.umd.edu/~djacobs/CMSC426/PS3.pdf

        نتایج تست این الگوریتم رو هم میتونید توی دوتا تصویر زیر ببینید ..

        http://www.cs.umd.edu/~djacobs/CMSC4...ound_image.bmp

        http://www.cs.umd.edu/~djacobs/CMSC4...ionResults.jpg

        اولیش تصویر ورودی هست و دومیش هم نتیجه ی الگوریتم .. امــــا در مورد نویز؛ گفتید که تصویرتون تغییرات نور رو داره .. خب به این مورد میگن Illumination Variation .. یه روش خیلی مهمولی برای کشتن اثر Illumination اینه که بیایم و یه Median Filter روش بزنیم .. با این کار اولا از یه فریم به فریم بعدی اثر Illumination دیگه اهمیت نداره و دوم؛ میتونید برای مرحله ی Background Subtraction از کنار مشکلات و حساسیت های Illumination بگذرید .. امیدوارم توضیحات بتونه کمکتون کنه .. موفق باشید ..
        دوستان! مدتی کمتر به سایت میام ..

        دیدگاه


          #5
          پاسخ : حذف Backgrond از تصویر

          سلام :smile:
          فقط این فایلی که گذاشتین همش تصاویر background هستش من راستش متوجه نشدم باید باهاشون چیکار کنم :icon_razz:
          من تصویر background و دارم آخرین فریم فیلمم تصویر بدون ماشینه!
          یک کار دیگه رو هم امتحان کردم که همه ی فریم ها رو از اون فریم آخریه کم کردم نتیجه ی مشابهی داد :smile:
          فقط اگه ممکنه یه توضیحی در مورد این فیلتر median که فرمودین بدین ممنون میشم.
          و اینکه چطور میتونم این ماشینا رو track کنم :sad: تعدادشون زیاده تازه اگه خیابون شلوغ باشه چی؟
          بازم ممنون از راهنماییهای سازنده تون .

          دیدگاه


            #6
            پاسخ : حذف Backgrond از تصویر

            سلام ......................

            توی پست قبلی گفتم که Tracking متدهای خیلی متنوعی داره ولی یادم رفت لینک زیر رو براتون بذارم .. توی لینک زیر یه کم در مورد Tracking بحث شده .. امیدوارم بتونه کمکتون کنه .. راستی اگه خواستید با فضای کاری که میخواید انجام بدید بیشتر آشنا بشید؛ Vehicle tracking رو به عنوان واژه ی کلیدی Search کنید .. موفق باشید ..

            http://www.eca.ir/forum2/index.php?topic=12535.0
            دوستان! مدتی کمتر به سایت میام ..

            دیدگاه


              #7
              پاسخ : حذف Backgrond از تصویر

              سلام
              پروژه پایانی من هم روی همین موضوعه ولی من باید سرعت خودرو ها رو بدست بیارم
              برای اینکه بتونی پس زمینه رو استخراج کنی باید
              باید از تصاویر میانگین گیری کنی
              که یک رابطه ریاضی داره
              که با یک m.file ساده قابل نوشتنه
              اما یه نکته که مهمه اینکه باید تصویر رو از فرم rgb به فرم hsi ببری rgb2hsv
              یعنی باید برحسب شدت رنگ و مفدار روشنایی کار کنی
              بعد استخراج پس زمینه
              میتوان از تفریق پس زمینه از فریم مورد نظر اشیا متحرک استخراج کرد

              برای اینکه tracking کنی باید شی متحرک که از الگوریتم بالا بدست اومده رو به فرم باینری ببری im2bw
              بعد شکاف های تصویر باینری و پر کنی imfill or imclose
              بعد باید label گذاری کنی
              و در اخر باید ویژگی تصویر و استخراج کنی

              (' graindata=regionprops(label,'basic
              که سه تا ویژگی مهم تصویر برای ما مشخص میکنه
              مساحت شی مورد نظر
              مرکز شی و محدوده فرضی شی

              موفق باشی
              a.dehghani.83@gmail.com

              دیدگاه


                #8
                پاسخ : حذف Backgrond از تصویر

                سلام .....................

                اما یه نکته که مهمه اینکه باید تصویر رو از فرم rgb به فرم hsi ببری rgb2hsv
                یعنی باید برحسب شدت رنگ و مفدار روشنایی کار کنی
                یه سوال: منظورتون از این قسمت بالا چیه؟ بر حسب شدت رنگ؛ میشه یه کم توضیح بدید؟
                دوستان! مدتی کمتر به سایت میام ..

                دیدگاه


                  #9
                  پاسخ : حذف Backgrond از تصویر

                  سلام
                  شرمنده اون شدت رنگ نیست بلکه نمایش رنگ. مقدار روشنایی.اشباع رنگ
                  اما من هم روی این موضوع کمی لنگ میزدم
                  یعنی درکش برام سخت بود
                  که از یکی از اساتیدم پرسیدم
                  مثال ساده ای زد
                  تو نرم افزار nero قسمت nero photosnap viewer
                  از سربرگ edit
                  اگر به color balance بری
                  و از اونجا به hsl انوقت درک راحتتری نسبت به شدت رنگ/ اشباع/مقدار روشنایی به دست میاری

                  ما تو مدل rgb با یک ماترس که نمایشگر شدت رنگ قرمز.سبز.ابی سرو کار داریم
                  اما تو مدلhsv با یک ماتریس بر پایه نمایش رنگ.اشباع رنگ.مقدار روشنایی رنگ
                  که به طور مثال به ترقیق رنگ با نور سفیداشباع رنگ گفته میشه
                  امیدوارم که تونسته باشم مفهوم و برسونم
                  هرچند درک این مدل بازم کمی برام هضمش سخته

                  دیدگاه


                    #10
                    پاسخ : حذف Backgrond از تصویر

                    سلام ....................

                    توضیح اون مدل رنگی یه کم وارد تعریف هندسی میشه (باید از روی همون Color cube توجیهش کنیم..) امــا حالا یه سوال دیگه: شما Tracking رو بر حسب میزان رنگی توجیه میکنین؟ متوجه کارتون نشدم! میشه یه کم بیشتر توضیحش بدید (شهودی تر..) .. مثلا روی یه تصویر مثال بزنید .. ممنونم ..
                    دوستان! مدتی کمتر به سایت میام ..

                    دیدگاه


                      #11
                      پاسخ : حذف Backgrond از تصویر

                      salam!
                      khob!
                      bebinid!
                      shoma vaghti mikhaid begid in che rangie nemigid ke R=25 G=80 B=100 !!!! :eek: oo:
                      in modele RGB mishe!
                      shoma migid ke:in ye range abie por range!
                      khob!
                      inja abi mishe hue,por rang ham mishe saturation!
                      inke cheghad un tasvir roshane ya tarik ham mishe I!
                      yani masalan age un tasvir siah o sefid bashe,shedate nuresh cheghade! in mishe I!
                      maziati ke in modele rangi dare ine ke dige ziad be nur hasas nis!!!
                      chon masalan age nur ziad beshe S va I tagheir mikonan ,vali H sabet mimune! :nice:
                      injas ke dige nur aziat nemikone! :nice: :nice: :applause: :applause: :wow: :wow:
                      age soali bud,begi shayd betunam komak konam! :agree: :agree: :nerd:
                      mitunid kole matlab ro ham az ketabe gonzalez bekhuni!
                      زندگي يعني لذت ياد گرفتن و ياد دادن

                      دیدگاه


                        #12
                        پاسخ : حذف Backgrond از تصویر

                        سلام ..................

                        -- همه فارسی تایپ کنیم ...

                        در مورد HSV لینک زیر همه چیز رو گفته .. حتی از خود گونزالس هم بهتر .. من گونزالس رو خونده بودم ولی روزی که این لینک رو خوندم دیدم چه قدر دقیقتر توضیح داده .. به نظرم لینک خیلی خوبیه .. یه کد هم میذارم که برای تبدیل فضاهای رنگی به همه .. کد خوبیه .. میشه تفاوت هارو به صورت Visual باهاش دید ..



                        http://www.mandelbrot-dazibao.com/HSV/HSV.htm

                        در مورد سوال قبلیم .. من هنوز برام واضح نیست ..
                        فایل های پیوست شده
                        دوستان! مدتی کمتر به سایت میام ..

                        دیدگاه


                          #13
                          پاسخ : حذف Backgrond از تصویر

                          سلام :smile:
                          اولا که ممنون از راهنمایی هاتون تا الان خیلی کمکم کرد. :wow:
                          تا اینجا تونستم background رو حذف کنم اما چون نویز تصویرم زیاده در تشخیص تعداد ماشینا با استفاده از دستور (bwlable ) دچار مشکل شدم.! :cry:یعنی نقاط سفید اضافه ای توی تصویر وجود داره که مانع از تشخیص صحیح ماشینا میشه. :eek:
                          کسی هست که کد مشابه این برنامه رو داشته باشه واسه من بزاره؟ :nerd:
                          یا مثلا اگه بخوام از عملیات لبه برداری استفاده کنم چطور میتونم اینکار و بکنم؟
                          با توجه به اینکه وقت کمی برای ارائه پروژه ام دارم :angry:اگر لطف کنید و در مورد دستورات مربوطه مرا راهنمایی کنید ممنون میشم.



                          دیدگاه


                            #14
                            پاسخ : حذف Backgrond از تصویر

                            خب!
                            برای حذف اون نقاط میتونی از erotion o dilation استفاده کنی!
                            opening o closing هم میتونه کمکت کنه.
                            دیگه مشکلی نیست فکر می کنم!
                            زندگي يعني لذت ياد گرفتن و ياد دادن

                            دیدگاه


                              #15
                              پاسخ : حذف Backgrond از تصویر

                              سلام ................

                              نوشته اصلی توسط safavisanaz
                              خب!
                              برای حذف اون نقاط میتونی از erotion o dilation استفاده کنی!
                              opening o closing هم میتونه کمکت کنه.
                              دیگه مشکلی نیست فکر می کنم!
                              اگه کار به اینجا رسیده منم با ایده ی بالا موافقم .. از Morphology استفاده کنید .. مطالب بیشتر در اون مورد رو هم میتونید از لینک زیر بخونید .. موفق باشید ..

                              http://www.eca.ir/forum2/index.php?topic=23734.0
                              دوستان! مدتی کمتر به سایت میام ..

                              دیدگاه

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