WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Auto Objekterkennung aus Videoausschnitt :?:

 

stevez
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 01.06.14
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 13.06.2014, 09:07     Titel: Auto Objekterkennung aus Videoausschnitt :?:
  Antworten mit Zitat      
Hallo,

habe bereits eine Spurerkennung durchlaufen, und die Spur vor dem eigenen Auto aus dem Video ausgeschnitten. Jetzt müsste darauf eine Autoerkennung zum Laufen gebracht werden, aus der man den Abstand grob bestimmen können sollte. Daran sitzt gerade ein Freund von mir - nur will das noch nicht so. Was wäre die Beste Herangehensweise?

LG

Edit: Anhang aktueller Stand

ScreenShot001.jpg
 Beschreibung:

Download
 Dateiname:  ScreenShot001.jpg
 Dateigröße:  40.21 KB
 Heruntergeladen:  613 mal
Private Nachricht senden Benutzer-Profile anzeigen


stevez
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 01.06.14
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 24.06.2014, 13:33     Titel:
  Antworten mit Zitat      
Wir sind jetzt entsprechend weiter gekommen. Mit Hilfe eines Filters und danach Kalman bekomen wir die Koordinaten des größten "weißes Fleckes" im Filter angezeigt. Jedoch ist der aktuelle Filter ein Vorder- Hintergrundfilter, welcher für die Erkennung eines vorausfahrenden Fahrzeuges (z.B. mit der selben Geschwindigkeit) nicht zu gebrauchen ist (da fast keine Veränderung zwischen den Frames). Alle anderen Veränderungen (wie Pfeile auf den Straßen, Schilder, Bäume etc) werden super erkannt, nur das Auto halt nicht...

--> Kennt jmd einen brauchbaren Filter, um ein vorausfahrendes Fahrzeug aus einem Bild herauszufiltern?
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 24.06.2014, 15:12     Titel:
  Antworten mit Zitat      
Moin stevez,

für das Problem gibt es keinen Filter. Wenn überhaupt eine Function, die aber dann Filterelement beinhaltet. Dein Problem würde ich in die Segmentierung einordnen. Ich habe ein ähnliches Bild genommen und das Fzg. zweifelsfrei als gelben Farbanteil angezeigt bekommen. Die Farbe kommt von der Funktion: label2rgb. Es werden vermutlich in deinem Bild noch andere Farben angezeigt werden. Du kannst aber die Farben wieder selektieren, so dass nur das Fzg. übrig bleibt.

Das Problem bei der Segmentierung sind die hintereinander geschachtelten Funktionen, die sich alle wiederum einzeln steuern lassen. Eine wichtige Funktion ist "strel", weil diese wiederum in eine Vielzahl Unterfunktion geteilt werden kann. Findest du in der Doku.

Ich habe einen Algo. von dem man sehr viel über die Segmentation lernen und sich schnell einen Überblick verschaffen kann, ob man dem gesuchten Resultat näher kommt. Versuche es einfach mal und verändere ggf. die Werte:

Quelle: http://www.mathworks.de/de/help/ima.....tation.html?nocookie=true

Code:
I=imread('1.jpg');
figure,imshow(I)

%Step 2: Use the Gradient Magnitude as the Segmentation Function
hy = fspecial('sobel');
hx = hy';
Iy = imfilter(double(I), hy, 'replicate');
Ix = imfilter(double(I), hx, 'replicate');
gradmag = sqrt(Ix.^2 + Iy.^2);
figure, imshow(gradmag,[]), title('Gradient magnitude (gradmag)')
L = watershed(gradmag);
Lrgb = label2rgb(L);
figure, imshow(Lrgb), title('Watershed transform of gradient magnitude (Lrgb)')

%Step 3: Mark the Foreground Objects
se = strel('disk', 20);
Io = imopen(I, se);
figure, imshow(Io), title('Opening (Io)')

Ie = imerode(I, se);
Iobr = imreconstruct(Ie, I);
figure, imshow(Iobr), title('Opening-by-reconstruction (Iobr)')

Ioc = imclose(Io, se);
figure, imshow(Ioc), title('Opening-closing (Ioc)')

Iobrd = imdilate(Iobr, se);
Iobrcbr = imreconstruct(imcomplement(Iobrd), imcomplement(Iobr));
Iobrcbr = imcomplement(Iobrcbr);
figure, imshow(Iobrcbr), title('Opening-closing by reconstruction (Iobrcbr)')

fgm = imregionalmax(Iobrcbr);
figure, imshow(fgm), title('Regional maxima of opening-closing by reconstruction (fgm)')

I2 = I;
I2(fgm) = 255;
figure, imshow(I2), title('Regional maxima superimposed on original image (I2)')
se2 = strel(ones(5,5));
fgm2 = imclose(fgm, se2);
fgm3 = imerode(fgm2, se2);
fgm4 = bwareaopen(fgm3, 20);
I3 = I;
I3(fgm4) = 255;
figure, imshow(I3)
title('Modified regional maxima superimposed on original image (fgm4)')

%Step 4: Compute Background Markers
bw = im2bw(Iobrcbr, graythresh(Iobrcbr));
figure, imshow(bw), title('Thresholded opening-closing by reconstruction (bw)')
D = bwdist(bw);
DL = watershed(D);
bgm = DL == 0;
figure, imshow(bgm), title('Watershed ridge lines (bgm)')

%Step 5: Compute the Watershed Transform of the Segmentation Function.
gradmag2 = imimposemin(gradmag, bgm | fgm4);
L = watershed(gradmag2);

%Step 6: Visualize the Result
I4 = I;
I4(imdilate(L == 0, ones(3, 3)) | bgm | fgm4) = 255;
figure, imshow(I4)
title('Markers and object boundaries superimposed on original image (I4)')
Lrgb = label2rgb(L, 'jet', 'w', 'shuffle');%

 


Viel Glück - Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
stevez
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 01.06.14
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 24.06.2014, 19:23     Titel:
  Antworten mit Zitat      
Super, vielen Dank, werde ich mir mal genauer anschauen!

Was ich noch herausgefunden habe ist, dass die meisten aus einem fahrenden Autos gefilmten Videos andere fahrende Autos lediglich mit Template Base Matching erkennen.
Das bin ich gerade am ausprobieren, nur habe ich ein Problem, ein Videoframe mit einem jpg image zu vergleichen (habe an ein Nummernschild als Template gedacht, da bei jedem Auto gleich).
Eine Idee, wie ich das TBM mit einem Videoframe realisieren kann? Finde nirgendwo eine Dokumentation dazu...
Derweil werde ich mir Deinen Code mal genauer anschauen!

LG
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.