Wednesday, 18 October 2017

Flytting Gjennomsnitt Bakgrunn Subtraksjon


Jeg prøver å implementere en enkel bakgrunnsuttrekkingsmetode for gjenkjenning av bevegelige objekter i en bestemt scene. Målet er å type segment ut en bestemt bevegelse ut av en video for å bruke den i en annen video. Algoritmen jeg følger er: 1. Ta de første 25rammene fra videoen og gjennomsnitts dem for å få en bakgrunnsmodell. 2. Finn standardavviket til de 25 rammene og lagre verdiene i et annet bilde. 3. Nå beregner jeg den absolutte forskjellen mellom hver ramme og gjennomsnittlig bakgrunnsmodell pixelvis. Utgangen jeg får er en slags gjennomsiktig bevegelse som er uthevet i hvitt (den absolutte differensialen resulterer i gjennomsiktigheten jeg tror). Jeg vil vite om min tilnærming er riktig eller ikke vurderer at jeg skal gjøre en segmentering på denne utgangen som neste trinn. Og jeg skjønner ikke hvordan du bruker standardavviksbildet. Eventuell hjelp vil bli verdsatt. Gi meg beskjed hvis dette ikke er typen spørsmål jeg burde legge inn i stabeloverløp. I så fall vil noen referanser eller lenker til andre nettsteder være nyttige. spurte Jun 26 13 på 9: 12Introduksjon Identifisering av bevegelige objekter fra en videosekvens er en grunnleggende og kritisk oppgave i mange datasynsprogrammer. En felles tilnærming er å utføre bakgrunnsuttraksjon, som identifiserer bevegelige gjenstander fra delen av en videoramme som avviker vesentlig fra en bakgrunnsmodell. Det er mange utfordringer i å utvikle en god bakgrunns subtraksjonsalgoritme. Først må det være robust mot endringer i belysning. For det andre bør det unngå å oppdage ikke-stasjonære bakgrunnsobjekter som flytte blader, regn, snø og skygger som er kastet av bevegelige objekter. Endelig bør den interne bakgrunnsmodellen reagere raskt på endringer i bakgrunnen som start og stopp av kjøretøy. Vår forskning begynte med en sammenligning av ulike bakgrunns subtraksjonsalgoritmer for å oppdage bevegelige kjøretøy og fotgjengere i trafikkvideosekvenser i byer (Cheung og Kamath 2004). Vi betraktet tilnærminger som varierer fra enkle teknikker som rammeforskjellering og adaptiv medianfiltrering, til mer sofistikerte probabilistiske modelleringsteknikker. Mens kompliserte teknikker ofte gir overlegen ytelse, viser våre eksperimenter at enkle teknikker som adaptiv medianfiltrering kan gi gode resultater med mye lavere beregningskompleksitet. I tillegg fant vi ut at før og etterbehandling av videoen kan være nødvendig for å forbedre gjenkjenningen av bevegelige objekter. For eksempel, ved romlig og tidsmessig utjevning, kan vi fjerne snø fra en video som vist i figur 1. Små bevegelige objekter, som for eksempel flytte blader på et tre, kan fjernes ved morfologisk behandling av rammene etter identifisering av de bevegelige gjenstandene , som vist i figur 2. Figur 1. Videoramme på venstre side som viser en trafikkscene mens snøen snø. Merk strekkene i bildet på grunn av snøflakene. Den samme videorammen etter romlig og temporal utjevning er til høyre, uten snøstreker. Figur 2. Videorammen til venstre fremhever, i rosa, objektene som er oppdaget som flytting. Legg merke til bevegelsen av bladene på trærne i forgrunnen. Morfologisk behandling rydder opp videorammen som vist til høyre. Hastigheten og vekten av modelloppdateringer har stor effekt på forgrunnsresultater. Langsom tilpassing av bakgrunnsmodeller kan ikke raskt overvinne store endringer i bildebakgrunnen (for eksempel en sky som går over en scene). Dette resulterer i en periode hvor mange bakgrunnspiksler er feil klassifisert som forgrunnspiksler. En langsom oppdateringshastighet har også en tendens til å skape en spøkelsesmaske som sporer selve objektet. Rask tilpasning av bakgrunnsmodeller kan raskt håndtere bakgrunnsendringer, men de mislykkes ved lave bildefrekvenser. De er også svært utsatt for støy og blenderproblemet. Disse observasjonene indikerer at en hybrid tilnærming kan bidra til å redusere ulempene av hver. Vi har opprettet en ny forgrunns valideringsteknikk som kan brukes på enhver sakte tilpasningsbakgrunnsavtrekkningsalgoritme (Cheung og Kamath 2005). Langsom tilpassingsmetoder gir relativt stabile masker og har en tendens til å være mer inkluderende enn hurtigtilpasningsmetoder. Som resultat kan de også ha høy falsk positiv rente. Forgrunnsvalidering undersøker videre individuelle forgrunns-piksler i et forsøk på å eliminere falske positiver. Vår algoritme oppnår først en forgrunnsmaske fra en sakte tilpasningsalgoritme, og validerer deretter forgrunnspiksler ved hjelp av en enkel bevegelige objektmodell som er bygget ved hjelp av både forgrunns - og bakgrunnsstatistikk, samt en hurtigtilpasningsalgoritme (figur 3). Figur 3. Blandingene av Gaussians tilnærming (a) er ikke særlig robuste for endringer i belysning sammenlignet med vår foreslåtte metode (b). Grunnverdighetseksperimenter med urban trafikk-sekvenser har vist at vår foreslåtte algoritme gir ytelse som er sammenlignbare eller bedre enn andre bakgrunnsuttrekkteknikker (figur 4). Figur 4: Sammenligning av forskjellige algoritmer. (a) Originalbilde som viser en bil som begynner å bevege seg etter å ha vært stasjonær en stund. Forgrunnen oppdaget av (b) rammeforskjeller, (c) omtrentlig median, (d) median, (e) Kalman-filter, (f) blandinger av gaussere, og (g) vår nye metode med forgrunnsvalidering. Bekreftelser Videoene som brukes i arbeidet vårt, er hentet fra nettstedet KOGS-IAKS Universitaet Karlsruhe. Vi setter pris på deres vilje til å gjøre deres data offentlig tilgjengelige. Referanser Cheung, S.-C. og C. Kamath, Robust Bakgrunns Subtraksjon med Forgrunnsvalidering for Urban Traffic Video, EURASIP Journal on Applied Signal Processing, bind 14, s. 1-11, 2005. UCRL-JRNL-201916. Cheung, S.-C. og C. Kamath, Robuste teknikker for bakgrunnsuttraksjon i urban trafikkvideo, videokommunikasjon og bildebehandling, SPIE elektronisk bildebehandling, San Jose, januar 2004, UCRL-JC-153846-ABS, UCRL-CONF-200706 PDF. Jeg prøver å implementere en enkel bakgrunnsuttrekkingsmetode for deteksjon av bevegelige objekter i en bestemt scene. Målet er å type segment ut en bestemt bevegelse ut av en video for å bruke den i en annen video. Algoritmen jeg følger er: 1. Ta de første 25rammene fra videoen og gjennomsnitts dem for å få en bakgrunnsmodell. 2. Finn standardavviket til de 25 rammene og lagre verdiene i et annet bilde. 3. Nå beregner jeg den absolutte forskjellen mellom hver ramme og gjennomsnittlig bakgrunnsmodell pixelvis. Utgangen jeg får er en slags gjennomsiktig bevegelse som er uthevet i hvitt (den absolutte differensialen resulterer i gjennomsiktigheten jeg tror). Jeg vil vite om min tilnærming er riktig eller ikke vurderer at jeg skal gjøre en segmentering på denne utgangen som neste trinn. Og jeg forstår ikke hvordan du bruker standardavviksbildet. Eventuell hjelp vil bli verdsatt. Gi meg beskjed hvis dette ikke er typen spørsmål jeg burde legge inn i stabeloverløp. I så fall vil noen referanser eller lenker til andre nettsteder være nyttige. spurte Jun 26 13 på 9: 12Hi, dette kommer til å bli en veldig enkel artikkel, men du vil finne det veldig nyttig. Det handler om bakgrunnsutdragelse fra en video. Anta at du får video av bilder av trafikk, kan være noe slikt. Trafikk i India. og du blir bedt om å finne en omtrentlig bakgrunn. Eller noe sånt. Bakgrunnsutvinning kommer viktig i objektsporing. Hvis du allerede har et bilde av den bare bakgrunnen, er det enkelt. Men i mange tilfeller vil du ikke ha et slikt bilde, og du må derfor opprette en. Det er her Running Average kommer til nytte. (Jeg tenkte på dette da en fyr spurte et spørsmål i SOF. Link) Funksjonen vi bruker her for å finne Running Average er cv2.accumulateWeighted (). For eksempel, hvis vi ser på en video, fortsetter vi å matche hver ramme til denne funksjonen, og funksjonen fortsetter å finne gjennomsnittene for alle rammer som er matet til det som i forholdet nedenfor: src er ingenting annet enn vår kildebilde. Det kan være gråtoner eller fargebilde og enten 8-biters eller 32-biters flytpunkt. dst er utdata - eller akkumulatorbildet med samme kanaler som for kildebildet, og det er enten 32-bit eller 64-bit flytpunkt. Også, vi bør erklære det først til en verdi som vil bli tatt som innledende verdi. alfa er vekten av inngangsbilledet. Ifølge Docs regulerer alfa oppdateringshastigheten (hvor fort akkumulatoren 8220forgets8221 om tidligere bilder). I enkle ord, hvis alfa er en høyere verdi, forsøker det gjennomsnittlige bildet å få enda svært raske og korte endringer i dataene. Hvis det er lavere verdi, blir gjennomsnittet trist, og det vil ikke betrakte raske endringer i inngangsbildene. Jeg vil forklare det litt med hjelp av bilder på slutten av artikkelen. I overkoden har jeg satt to gjennomsnitt, en med høyere alfa-verdi og en annen med lavere alfa-verdi slik at du kan forstå effekten av alfa. Ved første blir begge satt til innledende ramme for fangsten. Og i løkke blir de oppdatert. Du kan se noen resultater i SOF-lenken jeg allerede har gitt. (Jeg gir disse resultatene her, du kan sjekke koden og alpha-verdien der): Jeg brukte mitt webkamera og lagret originalramme og kjørende gjennomsnitt på et bestemt tidspunkt. Dette er en ramme fra en vanlig trafikkvideo tatt av et stasjonært kamera. Som du ser, går en bil på veien, og personen prøver å krysse veien på et bestemt tidspunkt. Men se løpende gjennomsnitt på den tiden. Det er ingen person og bil i dette bildet (Egentlig er det der, se nærmere på det, så ser du det, og personen er klarere enn bilen, siden bilen beveger seg veldig fort og over bildet, har det ikke mye effekt i gjennomsnitt, men personen er der lenge siden han er langsom og beveger seg over veien.) Nå må vi se effekten av alpha på disse bildene.

No comments:

Post a Comment