Forum: Digitale Signalverarbeitung / DSP / Machine Learning Verkehrszeichenerkennung (Bachelorarbeit)


von Florian F. (Gast)


Lesenswert?

Hallo liebes Forum,

ich fange im April an meine Bachelorarbeit zu schreiben. Das Thema wird 
voraussichtlich: Verkehrzeichendetekion

Leider habe ich so gut wie garkeine Kenntnisse mit 
Bildverarbeitungsalgorithmen und noch weniger mit der Implementierung 
von Algorithmen auf einem DSP. Ich bin aber sehr gerne bereit mich zuvor 
in das Thema einzuarbeiten und lese daher zur Zeit eine Menge Bücher.

Als erstes wäre für mich wichtig welche Kamera (Preis: max 100 €) ich 
dafür einsetzen kann. Des Weiteren suche ich dringend irgendwelche Tipps 
welche Algorithmen für mich interessant und relevant wären. Auch die 
Implementierung auf einem DSP macht mir noch Kummer, da ich mir dies 
noch nicht richtig vorstellen kann. Jedoch sei angemerkt das mich dieses 
Thema sehr interessiert !

Ich hoffe natürlich, dass es hier kompetente Hilfe erhalte und freue 
mich auf eine angeregte Diskussion.

Mit freundlichen Grüßen
Florian F.

von Tom E. (tkon)


Lesenswert?

Hallo,

zwei wichtige Frage im Voraus:

  1. Was studierst du?
  2. Soll das System im Labor oder im Straßenverkehr Verwendung finden?

Grüße

von CHH (Gast)


Lesenswert?

naja, da hast du dir aber was vorgenommen ... sowas fällt schon eher 
unter höhere Bildverarbeitung ...

Evtl. möchtest du dir openCV anschauen, das ist eine Sammlung von 
typischen Bildverarbeitungsalgorithmen, teilweise ist auch eine gute 
Dokue und Beschreibung dabei. Das Forum hilft da evtl. auch weiter.

http://sourceforge.net/projects/opencvlibrary/

hth

von CHH (Gast)


Lesenswert?

ach ja - und ein recht anschauliches (aber leider nicht vollendetes) 
Tutorial zu Bildverarbeitung findet sich hier:
http://www.roboternetz.de/wissen/index.php/Bildverarbeitung_Tutorial
Je nach deinem Wissenstand könnte das ein guter Einstieg sein ...

von Michael (Gast)


Lesenswert?

Jo, ich würde gerne ein Flugzeug bauen mit dem mein Hund auf den Mond 
fliegen kann. Ich kenne meinen Hund. Schon zehn Jahre. Also sehr gut. 
Vom Mond und von Flugzeugen habe ich keine Ahnung. Ich fands ein 
reizvolles Projekt und interessieren tut es mich wirklich auch sehr.
Ich lese auch schon Bücher. Viele. In jedem habe ich etwas über 
Flugzeuge gelernt. Im einen Buch, dass sie "Tragflächen" haben, im 
anderen Buch, dass sie mit Kerosin gehen. Also ihr sehr, ich 
interessiere mich wirklich sehr dafür.

Könnt ihr mir helfen? Kann doch nicht so schwer sein!?

Und mein Hund wäre sicher happy, er erlebt gerne tolle Sachen.

von TommyS (Gast)


Lesenswert?

Hallo!

> ich fange im April an meine Bachelorarbeit zu schreiben.
> Das Thema wird voraussichtlich: Verkehrzeichendetekion

> Leider habe ich so gut wie garkeine Kenntnisse mit
> Bildverarbeitungsalgorithmen und noch weniger mit
> der Implementierung von Algorithmen auf einem DSP.

Ohne Deinen Optimismus bremsen zu wollen: such' Dir ein anderes Thema.

Selbst mit vorhandenem System und vorhandener Software sowas aufzubauen, 
ist komplex genug - und dann im Rahmen von einer Bachelor-Arbeit sowas 
in 3 Monaten funktionsfähig zu kriegen - selbstgebaut, ohne umfangreiche 
Vorkenntnisse...

Wie mein Prof zu sagen pflegte: "man kann in einer Bachelor-Arbeit auch 
zeigen, daß etwas nicht geht" - aber das, was Du da vorhast, hat er 
damit nicht gemeint...

Das ist meine persönliche Meinung zu dem Thema.

Grüße,
TommyS

von es (Gast)


Lesenswert?

> Selbst mit vorhandenem System und vorhandener Software sowas aufzubauen,
> ist komplex genug - und dann im Rahmen von einer Bachelor-Arbeit sowas
> in 3 Monaten funktionsfähig zu kriegen - selbstgebaut, ohne umfangreiche
> Vorkenntnisse...
Abgesehen davon, dass die Zeit für die Bachelor-Arbeit nicht drei
Monate sondern nur zwei Monate ist. ;-)
Wobei ich mich immer frage, was soll aus sowas dann werden? Ein
schön formatiertes 'Hello World!"?

von TommyS (Gast)


Lesenswert?

Hm...

bei uns sind's 12 Wochen, also fast 3 Monate...

von sie (Gast)


Lesenswert?

> bei uns sind's 12 Wochen, also fast 3 Monate...
Mmhh, Uni oder FH? (Beim mir ist es eine FH.)

von TommyS (Gast)


Lesenswert?

Bei mir auch FH...

von tom (Gast)


Lesenswert?

Ich denke auch, dass das selbst mit etwas Erfahrung in der 
Bildverarbeitung nichtm in der Zeit zu schaffen ist. Da du aber 
vermutlich das Thema nicht mehr wechseln kannst/willst, würde ich Dir 
raten, mit deinem Betreuer zu sprechen und die Komplexität 
runterzuschrauben. Setz Prioritäten. Willst du unbedingt die 
Bildverarbeitung, vergiss den DSP und mach das mit einer vorhandenen 
Bibliothek auf einem PC. Willst du unbedingt etwas auf dem DSP 
integrieren, such dir eine andere Anwendung. Aber beide zusammen wird 
nicht zu schaffen sein. Schon die Umsetzung auf einem PC wird schwer.
Verliere aber trotz der vielen zweifelnden Meinungen nicht den Mut und 
die Motivation. Nutze die vielen Meinungen, um den Anspruch auf ein 
realistisches Niveau herunterzubrechen. Das wird Dir keiner verübeln.

Noch eine interessante Quelle:
http://traindrive.gpsdrive.cc/Projects/Camera/index.shtml

von Florian F. (Gast)


Lesenswert?

@Michael:
Solche Kommentare waren damit nicht gemeint. Diesen hättest du dir auch 
sparen können.

Ich habe mir selbst nochmal gedanken darüber gemacht und werde mit 
meinem Prof. klären, dass ich dies lediglich am PC machen werde. Euren 
Ratschlägen zu folge ist es ja in der Zeit nicht realisierbar und 
deswegen werde ich mich vielleicht in Matlab erstmal damit auseinander 
setzen. Dies sollte doch eher machbar sein !?

Hierzu müsste erstmal eine Webcam reichen.

@Thomas Eckman:
Diese Arbeit bezieht sich lediglich auf das Labor. Eventuelle 
Witterungsbedingungen sollen hier vernachlässigt werden.

von P. S. (Gast)


Lesenswert?

In Matlab? Wo studierst du eigentlich, ist das eine Waldorf-Uni?

von sie (Gast)


Lesenswert?

>>> bei uns sind's 12 Wochen, also fast 3 Monate...
>> Mmhh, Uni oder FH? (Beim mir ist es eine FH.)
> Bei mir auch FH...
Selbst wenn deine FH nicht in D ist, dachte ich ja immer die Einführung
des Bachelor würde vereinheitlichen...
**kopfschmerz_bekomm**

von Florian F. (Gast)


Lesenswert?

@Peter Stegemann:
Wenn du konstruktive Hilfe anbietest kannst du dich gerne weiter äußern. 
Ansonsten lasse bitte deine Kommentare, denn die Überlegung wäre erst 
alles in Matlab hinzubekommen ( da mein wissen in dieser Richtung noch 
begrenzt ist ) und im weiteren Verlauf kann man es ja ausweiten. Nur wie 
die anderen schon erwähnen habe ich nur 12 Wochen Zeit dafür und das 
könnte knapp werden.

von Joern (Gast)


Lesenswert?

Viele scheinen zu vergessen, dass bei einer Bachelorarbeit sicherlich 
kein serienreifes System rauskommen soll, sondern es eine erste 
vollstaendig selbstaendige Auseinandersetzung mit einer 
wissenschaftlichen Fragestellung ist.

"Zielsetzung der Bachelorarbeit
Ziel einer Bachelorarbeit ist das selbständige Ausarbeiten einer 
wissenschaftlichen
Fragestellung mit den im Studium erlernten Methoden. Die schriftliche 
Ausarbeitung
beinhaltet die Beschreibung des Themas sowie das Darlegen der gewonnenen 
Erkenntnisse
nach anerkannten wissenschaftlichen Regeln. Das Niveau der 
Bachelorarbeit sollte so sein,
dass sie von anderen Bachelorabsolventen/innen desselben Studienganges 
verstanden
wird."

http://www.physik.hu-berlin.de/institut/gremien/pa/BA_MA_Arbeiten/SchreibenBachelor.pdf

Insofern koennte ich mir eine Auseinandersetzung mit Objekterkennung am 
Beispiel von Verkehrsschildern unter Laborbidungungen als durchaus 
reizvolles Thema vorstellen.
Auch die Kritik an Matlab als nur an "Waldorf-Unis" in der 
Bildverarbeitung gebraeuchlich halte ich fuer unrichtig. Ich weiss, dass 
die besten Universitaeten Matlab in der Bildverarbeitung einsetzen und 
bin fest davon ueberzeugt, dass es in einem Laborkontext eine gute Wahl 
ist.

von P. S. (Gast)


Lesenswert?

Florian F. wrote:
> @Peter Stegemann:
> Wenn du konstruktive Hilfe anbietest kannst du dich gerne weiter äußern.

Nur weil du es nicht verstehst, ist es nicht "unkonstruktiv".

Hier schneien jeden Tag Leute rein, die schon ganz genau wissen, was sie 
fuer Antworten bekommen wollen und dann stinkig sind, wenn sie was 
Anderes bekommen.

> Ansonsten lasse bitte deine Kommentare, denn die Überlegung wäre erst
> alles in Matlab hinzubekommen ( da mein wissen in dieser Richtung noch
> begrenzt ist ) und im weiteren Verlauf kann man es ja ausweiten. Nur wie
> die anderen schon erwähnen habe ich nur 12 Wochen Zeit dafür und das
> könnte knapp werden.

Wenn du mit Matlab auch nur einen Mittelstreifen erkennen kannst, 
entschuldige ich mich foermlich und schriftlich bei dir. Bis dahin aber 
bleibe ich bei meiner Meinung, dass du fuer jemanden, der schon ein paar 
Semester hinter sich hat, erschreckend wenig Ahnung hast, welche 
Werkzeuge zur Verfuegung stehen, was sie koennen und vor allem: Was du 
kannst.

von sie (Gast)


Lesenswert?

> Ich habe mir selbst nochmal gedanken darüber gemacht und werde mit
> meinem Prof. klären, dass ich dies lediglich am PC machen werde. Euren
> Ratschlägen zu folge ist es ja in der Zeit nicht realisierbar und
> deswegen werde ich mich vielleicht in Matlab erstmal damit auseinander
> setzen. Dies sollte doch eher machbar sein!?
Das sind Fragen, die für deine Betreuer sind und nicht für uns.

Im übrigen sind die von dir gesuchten Algorithmen eigentlich in den
Büchern die du liest (Siehe deinen ersten Beitrag!).

Trotzdem viel Glück und sprich mit deinen Betreuern, wer weiß welche
Vorarbeiten es schon gibt. Deine Aussagen klingen danach, als ob du
das hier alles ohne Absprache mit deinen Betreuern machst, sowas kann
schnell in die falsche Richtung laufen bzw. in doppelter und unnötiger
Arbeit enden.
Wahrscheinlich wird es die Kamera auch schon geben.

von Michael (Gast)


Lesenswert?

Lieber Florian,

sicher war mein Posting heute möglicherweise überflüssig. Da hast Du 
recht.
Deines aber auch!

Was ICH Dir mit meinem Posting durch die Blume sagen wollte war: Finger 
weg von diesem Projekt.

Aber jetzt muss ich es leider nochmal ziemlich deutlich schreiben und 
mich den Meinungen der meisten Vorredner uneingeschränkt anschliessen.
In nahezu all Deinen Sätzen kommt deutlich raus, dass Du von dem, was am 
Ende rauskommen soll leider ebensowenig Ahnung hast wie von möglichen 
Wegen an Dein Ziel.

Wenn ich dann noch soetwas lese:

> @Peter Stegemann:
> Wenn du konstruktive Hilfe anbietest kannst du dich gerne weiter äußern.
> Ansonsten lasse bitte deine Kommentare, denn die Überlegung wäre erst
> alles in Matlab hinzubekommen ( da mein wissen in dieser Richtung noch
> begrenzt ist )

bringt mich das nur noch zum Schmunzlen. Du sagst selbst, dass Du keine 
Ahnung hast und nichtmal weißt, ob Matlab für soetwas geeignet ist.
Mensch, dann laß die Finger auch von Matlab.

Was bringt man euch heute an der FH bei, daß ihr alle denkt ihr könntet 
fliegen? Uns haben die Profs noch in den Arsch getreten und uns kleiner 
gemacht als wir waren aber heute scheint es leider anderst zu sein.

Nimms mir nicht krumm aber such Dir ein anderes Thema.

Schmunzelnde Grüße
Michael

von Tom E. (tkon)


Lesenswert?

Nochmals hallo,

also ich bin der Ansicht dass ist absolut machbar.
Unter Laborbedingungen fallen ja die ganzen Problem mit schlechter 
Beleuchtung / schlechter Sicht, große Entfernung weg.

Insbesondere die Verwendung von Matlab vereinfacht die ganze Sache 
nochmals drastisch. So ist es zum Bsp. mit einem Zweizeiler möglich 
Bilder direkt von einer USB Webcam einzulesen. Für Matlab gibt es, neben 
den umfangreichen Standardfunktionen, außerdem noch zusätzliche 
Toolboxen extra für Bildverarbeitung (siehe hierzu: 
http://www.mathworks.de/applications/imageprocessing/products.html)

Uns wenns dann doch noch mehr sein soll, kann man aus Matlab heraus auch 
C- oder FPGA-Code erzeugen (wobei das dann aber mehr Können verlangt).

Grüße Tom

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Vielleicht hilft ja das folgende Buch etwas weiter:

Embedded Image Processing on the TMS320C6000 DSP

An dieser Stelle sollte auch darauf hingewiesen werden, dass 
Bildverarbeitung auf DSPs ein extrem teures Hobby ist. Für ein 
Experimentierboard mit entsprechendem Kamerainterface (ADC) und Display 
bzw. RAMDAC wird man etwa 2000 - 3000 Euro ausgeben.

Eine andere Möglichkeit, die mir noch einfällt, wäre ein AP7000 
Prozessor von Atmel, der hat ein digitales Kamerainterface, damit hat 
man zumindest die Frames mit relativ geringem Aufwand zur Verfügung. 
Eventuell kann man dafür einige alte Bildwandler von Digitalkameras 
verwerten.

Ob der AP7000 für eine Echtzeitanwendung im Auto schnell genug ist, kann 
ich nicht einschätzen.

Auf jeden Fall ist es gewagt, wenn man das in 3 Monaten schaffen will. 
Ich kann aus Erfahrung sagen, dass die Einarbeitung in den AP7000 
alleine schon über 3 Monate in Anspruch nimmt. Da hat man dann noch kein 
einziges Bild verarbeitet.

Dennoch viel Erfolg bei deinem Vorhaben.

Grüße,

Peter

von Martin S. (strubi)


Lesenswert?

Moin moin,

ich gebe zu, beim Lesen von Michael's boesem Kommentar musste ich 
womoeglich genauso fies grinsen, wie der Verfasser beim Schreiben.

Ich bin ja meist der Meinung, dass jeder selber wissen soll, wo er sich 
seine blutige Nase holt, aber wuerde in diesem Fall auch deutlich davon 
abraten. Um gleich von der destruktiven Schiene auf die konstruktive zu 
schwenken, ein paar Kommentare:

- Fokussier dich auf ein weniger komplexes Teilthema, das nicht ausarten 
kann. Wie z.b.: Erkennung von zusammenhaengenden Farbflaechen aus 
Pixeldaten. Besonders interessant sind hierbei 2D-Data-Matrix codes, 
oder sonstige Tracker-Marken.
- Schreib dir lieber deine Filter-Kernels (3x3 convolution, usw)  oder 
eigens ausgedachten Algorithmen in C. Matlab mag ok sein, um mal eben 
schnell was auszuprobieren, aber ist meiner Meinung nur dann erlaubt, 
wenn man die Basis-Algorithmen voll im Griff hat. Der Lerneffekt ist bei 
Matlab nicht gerade gross, man verbraet eher zuviel Zeit damit, Matlab 
beizubringen, was es genau tun soll. Da kann mans gleich selber 
schreiben und hat dabei die volle Kontrolle uebers Debugging.
- Das Thema "embedded DSP" wuerde ich nur dann angehen, wenn Du dich auf 
genau EINEN Algorithmus fokussiert hast, der irgend etwas besonderes 
macht, und der auf dem DSP so optimiert werden kann, dass er dem PC 
gegenueber Vorteile zeigt. Das fuehrt schon zum naechsten Punkt:
- Ich wuerde mir unbedingt ueberlegen, ob eine kreative Leistung oder 
eine technische Neuerung in einer solchen Aufgabe steckt, und wer das 
schon gemacht hat (bzw. am laufen hat). Natuerlich ist das ganze eine 
Uebung, und muss nichts brandneues sein, aber zumindest einen 
interessanten Algorithmus SELBST zu entwickeln, sollte drinliegen. Oder 
etwas, was auf einem PC schon laeuft, auf einem DSP so zu optimieren, 
dass zumindest der Hintergedanke einer "wirtschaftlichen" Verbesserung 
Form annimmt.

Warum ich so ne lange Predigt hintippe?
1) Selber schon oft ne blutige Nase geholt und Komplexitaeten 
ueberschaetzt
2) So einige Eltech-Studenten in der Verwirklichung ihrer 
Semesterprojekte betreut
3) Ich denke, wir gebrannten Kinder wollen allen noch nicht gebrannten 
Kindern VIEL Frust ersparen :-)

An pdiener: Du sprichst von ueber 1000 Euro...mag sein, dass das bei 
TI-Systemen zutrifft, aber es gibt fertige OpenSource-Kameraboards wie 
die SRV1-Kamera (http://www.surveyor.com) oder die leanXCam 
(http://leanxcam.origo.ethz.ch/), die auch unter uClinux laufen - ergo 
mit den GNU-tools und diversen freien JPEG-Codecs, usw.
Kostenpunkt: max. 200 Euro.
(Mein Blackfin EZKIT mit Analog-Codec habe ich damals noch in einem 
Sonderangebot fuer 100 Euro bekommen).

Fuer Bildverarbeitung wuerde ich eher die leanXCam verwenden - deren 
Sensor spuckt Bayer-Patterns aus. Der SRV1 ist wiederum eher interessant 
fuer MPEG-Video-Encoding (Sensor liefert YUV).


Gruss,

- Strubi

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Martin Strubel wrote:
> - Schreib dir lieber deine Filter-Kernels (3x3 convolution, usw)  oder
> eigens ausgedachten Algorithmen in C. Matlab mag ok sein, um mal eben
> schnell was auszuprobieren, aber ist meiner Meinung nur dann erlaubt,
> wenn man die Basis-Algorithmen voll im Griff hat. Der Lerneffekt ist bei
> Matlab nicht gerade gross, man verbraet eher zuviel Zeit damit, Matlab
> beizubringen, was es genau tun soll. Da kann mans gleich selber
> schreiben und hat dabei die volle Kontrolle uebers Debugging.

Genau umgekehrt! Bei MATLAB kann man sich um den Algorithmus kümmern, 
ohne sich um Implementierungsdetails wie Speicherverwaltung, Iteration 
über Matrizen o.ä. kümmern zu müssen. Und die Debuggingmöglichkeiten bei 
C sind ja nun wirklich nicht mit denen von MATLAB vergleichbar, wo du 
z.B. jederzeit in den Programmfluss eingreifen und Code ausführen 
kannst, ganz zu schweigen von den Visualisierungsmöglichkeiten.

Wenn die Evaluierung der Grundalgorithmen im Vordergrund steht, und 
nicht eine konkrete Implementierung, dann macht C absolut keinen Sinn.

von Martin S. (strubi)


Lesenswert?

Moin,

>
> Genau umgekehrt! Bei MATLAB kann man sich um den Algorithmus kümmern,
> ohne sich um Implementierungsdetails wie Speicherverwaltung, Iteration
> über Matrizen o.ä. kümmern zu müssen. Und die Debuggingmöglichkeiten bei
> C sind ja nun wirklich nicht mit denen von MATLAB vergleichbar, wo du
> z.B. jederzeit in den Programmfluss eingreifen und Code ausführen
> kannst, ganz zu schweigen von den Visualisierungsmöglichkeiten.

Schon mal mit GDB debuggt? Da geht das alles ebenso, bloss nur noch 
maechtiger. Fuers Visualisieren gibts genuegend externe Programme a la 
Gnuplot, Python Imaging Library, usw.

>
> Wenn die Evaluierung der Grundalgorithmen im Vordergrund steht, und
> nicht eine konkrete Implementierung, dann macht C absolut keinen Sinn.

Das mag auf einem hoeren Level stimmen, aber eben nur, wenn man die 
Basis-Algorithmen verstanden hat.
In der Praxis sieht es meist nur so aus, dass man fuer eine effiziente 
Implementierung nochmal in C (wenn nicht sogar Assembler) anfangen kann, 
und zwar genau dann, wenn man das, was auf dem PC in der Matlab-Theorie 
funktioniert, auf einem DSP (womoeglich ohne Float) zum laufen bringen 
will. Das kann man sich natuerlich sparen, wenn man Code-Generatoren wie 
Simulink einsetzen will, aber wie gesagt: Dabei lernt man nicht das, was 
man fuer eine solche Arbeit koennen muesste. Bin von diesen Tools, 
abgesehen davon, dass sie ueberdimensional Geld kosten, nicht 
ueberzeugt.
Habe leider schon genuegend derartige pure akademische Ansaetze in der 
Implementationsphase stranden sehen, dass ich davon einfach nur abraten 
kann, sich von einer allzu flachen Lernkurve verleiten zu lassen.

Gruss,

- Strubi

von gast (Gast)


Lesenswert?

in dieser cam ist doch schon ne menge drinnen??
http://www.sander-electronic.de/gm00032.html

oder ist die CMUcam3 für sowas schon zu einfach ??

von T. H. (pumpkin) Benutzerseite


Lesenswert?

Ich kann die Argumente gegen MATLAB teilweise nachvollziehen. Zwei 
gravierende: die schlechtere Performance (gefühlt und wahrscheinlich in 
den meisten Fällen realistisch: Faktor 10) und die Kosten. Aber zum 
probieren finde ich es perfekt. Allerdings wundere ich mich über Martins 
beobachteten Ansätze in Float auf dem Rechner zu testen ums dann in 
Fixkomma auf den DSP zu bringen - für diese fragwürdige Vorgehensweise 
kann MATLAB nichts, sondern nur der Anwender. Aber dafür gibts 'ne 
Abhilfe: das Fixkomma add-on... ;^)

von Bastler (Gast)


Lesenswert?

Nunja, Bildbearbeitung ist und war, bis auf ein kurzes Intermezzo, nie 
mein Thema, aber wenn die Sache nur unter Laborbedingungen funktionieren 
muss, kann man schon vieles vereinfachen.

I   Verkehrschilder stehen so gut wie immer gerade (Rotation entfällt)
II  wenige verschiedene Randformen
III wenige verschiedene Farben
IV  "Laborbedingung" kann heißen, dass der Abstand (Objektgröße ändert 
sich nicht) und der Betrachtungswinkel (keine Verformung) immer gleich 
sind.
V   weißer Hintergrund

Mit diesen (sehr) starken Vereinfachungen kann das sicher auch ohne 
hochoptimierte Algorithmen ablaufen.
Ich würde unter o.g. Voraussetzungen erstmal die Farben im Bild 
ermitteln.
Anhand der vorkommenden Farben lässt sich die Anzahl der möglichen 
Schilder schonmal reduzieren (wenn Gelb drin ist, kann es schonmal kein 
STOP-Schild sein usw.). Einen Korrelationsalgorithmus auf das Bild 
anwenden, der es mit Beispielbildern der noch in Frage kommenden 
Schilder vergleicht.
Das Schild mit der höchstem Korrelationsergebnis gewinnt.

Ist sicher nicht schnell, aber solange das Ergebnis stimmt...

Bastler

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Martin Strubel wrote:
>> Genau umgekehrt! Bei MATLAB kann man sich um den Algorithmus kümmern,
>> ohne sich um Implementierungsdetails wie Speicherverwaltung, Iteration
>> über Matrizen o.ä. kümmern zu müssen. Und die Debuggingmöglichkeiten bei
>> C sind ja nun wirklich nicht mit denen von MATLAB vergleichbar, wo du
>> z.B. jederzeit in den Programmfluss eingreifen und Code ausführen
>> kannst, ganz zu schweigen von den Visualisierungsmöglichkeiten.
>
> Schon mal mit GDB debuggt? Da geht das alles ebenso, bloss nur noch
> maechtiger.

Gegenfrage, schon mal mit MATLAB debuggt? Welche GDB-Funktion hast du 
vermisst?

> Fuers Visualisieren gibts genuegend externe Programme a la
> Gnuplot, Python Imaging Library, usw.

Da ist aber nichts mit plot(x), da darfst du erst mal irgend ein 
Interface stricken. Wenn du eines hast und dich damit auskennst, prima, 
aber für eine Bachelorarbeit ist das ein großer Zeit- und 
Unsicherheitsfaktor. Und wozu? MATLAB steht in der Uni eh zur Verfügung.

>> Wenn die Evaluierung der Grundalgorithmen im Vordergrund steht, und
>> nicht eine konkrete Implementierung, dann macht C absolut keinen Sinn.
>
> Das mag auf einem hoeren Level stimmen, aber eben nur, wenn man die
> Basis-Algorithmen verstanden hat.

Implementierung != Algorithmen. Entweder ist die Aufgabe, die 
Algorithmen zu testen, dann nimmt man die Plattform die am einfachsten 
ist, oder eine Implementierung für bestimmten Anforderungen 
durchzuführen. Beides zu vermischen bringt in einer 3-monatigen Arbeit 
nichts.

> In der Praxis sieht es meist nur so aus, dass man fuer eine effiziente
> Implementierung nochmal in C (wenn nicht sogar Assembler) anfangen kann,
> und zwar genau dann, wenn man das, was auf dem PC in der Matlab-Theorie
> funktioniert, auf einem DSP (womoeglich ohne Float) zum laufen bringen
> will.

Mit generischem C-Code kannst du dann genausowenig anfangen.

von Martin S. (strubi)


Lesenswert?

Andreas:

Um kurz auszuholen: Ich habe damals versucht, mit Matlab 'mal eben' eine 
Rauschanalyse einer Bildsequenz (per 2D FFT) zu machen. Die Sache ging 
in die Hose, und Matlab flog in die Ecke, weil unter anderem keine 
vernuenftige Ausgabe in ein normiertes und nach gewissen Kriterien 
separiertes Spektralbild moeglich war. Zudem traten ein paar 
arithmetische Artefakte auf, die nicht zu debuggen waren. (Was nuetzt 
mir Script-Debugging, wenn ich nicht in die Register schauen kann?) Mag 
sein, dass das mit neueren Versionen geht, auf jeden Fall konnte mir 
damals (5-6 Jahre her) auch kein Experte helfen. Mit den entsprechenden 
C libraries war die Sache dann in 2 Tagen gegessen.

Matlab fand ich spitze bei 1D-Signalverarbeitung, Audiofilter-Design 
ging prima vonstatten. Aber als Bildverarbeitungstool?

Zu den 3 Monaten: Es haengt wohl davon ab, ob man ein Thema 
akademisch/theoretisch oder direkt an der Materie angeht. "Unsere" 
Studenten (Hochschule Rapperswil) duerfen in genannter Zeit vom 
Algorithmus-Test bis zur Implementation (fast) alles machen - einige 
schaffen sogar dazu noch ein Platinendesign. Das ist zwar ein "tough 
cookie", aber sie lernen deutlich mehr ueber Engineering als ihre 
Kollegen, die ihre Schaltungen oder Programme bloss simulieren.
Ich persoenlich halte also mehr davon, ein nicht zu komplexes Thema von 
A bis Y umzusetzen, als von einem sehr komplexen Thema nur das A zu 
bearbeiten, und bei B im Frust abzubrechen. Ich will hier also nicht 
einen Disput ueber Matlab vom Zaun brechen, sondern daran erinnern, dass 
man bei der Sache a) was lernen soll, b) das Erfolgserlebnis einer zum 
Funktionieren gebrachten Idee haben soll. Letzeres benoetigt natuerlich 
entsprechend mehr Betreuung, die nicht alle Schulen bringen koennen - 
das ist mir auch klar.

Gruss,
- Strubi

von Pfennig (Gast)


Lesenswert?

lol

ich stelle grad erstaunt fest wie sehr hier einige zu Matlab eingestellt 
sind


einige behaupten sogar das es nur an Walldorf Unis gelehrt wird

dann sind da einige die denken an FH's lernt man nix gescheites

sagt mal geht es euch nicht gut oder was ?

1. natürlich gibt es auch an der FH einige Spezialisten die glauben man 
muss nur mal nett in einen Forum nachfragen und in Anschluss stellt 
jemand etwas bereit das er dann per Copy and Paste so in seiner 
Abschlussarbeit hineinkopieren kann

2. ich kenne mehr Leute von der Uni, die das tun als von der FH

3. Matlab ist ein Werkzeug für Ingenieure das in sehr vielen 
Ingenieursbetrieben der Welt zum Einsatz kommt, es nicht zu beherschen 
ist fast schon stümperhaft, das gilt auch für Programmiersprachen in 
allgemeinen (oder speziell Java/C++)

4. wer Mathematik verstanden hat, darüber hinaus mit den Umgang mit 
Matrizen vertraut ist, hinzu das Werkzeug Matlab verstanden hat und es 
sogar beherrscht, kann damit sehr viel erreichen, in sehr kurzer Zeit
     das Stichwort lautet hier ganz klar
Anwendungssimulation/rapidPrototyping/Machbarkeitsstudien

für Endanwendungen ist Matlab sicher nciht geeignet
auf Performance kommt es in übrigen nur an bei der Entwicklung von 
Endanwendungen, in der Test und Prüfphase ist der Faktor erst einmal in 
der Regel nicht entscheidend
(in übrigen ist die Performance von Matlab vergleichbar mit der von 
Java)

ich habe eher die Erfahrung gemacht das mit Hilfe von Matlab erst einmal 
alles möglich ist,

Was aber unabdingbar ist
das ist das Ingenieursmässige Wissen zu dem was man will
fehlt das, dann kann man mit Matlab nix anfangen und alles geht schief
es würde schlicht und einfach nix funktionieren

ohhh, ich hab auch schon Elektrotechnikingenieure erlebt die nicht mal 
schaffen ein Radio zu bauen.....

das sind dann auch nur bessere Techniker ...

Es grüsst
...
wer Tipfehler findet kann die zur überprüfung ins germanistische Studio 
einschicken

von Gast (Gast)


Lesenswert?

falsches Forum...

von Gast (Gast)


Lesenswert?

Matlab ist für Bildverarbeitung geeignet. Falls man die hauptsächlich 
die  Funktionen der Image Processing toolbox verwendet, dann ist es 
sogar sehr, sehr schnell. In der Regel ist es ungefähr schnell wie gut 
optimierter C Code, da alle diese Funktionen sind extern implementiert 
sind und nicht als m-file.

Hier wird es sogar für industrielle Probleme (z.B. 
Lebensmittelindustrie) eingesetzt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.