PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kameraauswertung - Welcher µC



CowZ
21.06.2006, 17:54
Hi,

nachdem ich im ARM-Forum keine Antwort bekam, nun hier nochmal meine Frage:

Ich möchte gerne Kameradaten (RGB) mit (relativ) komplexen Algorithmen verarbeiten. Das ist (imho) nur schlecht mit den 8-Bit / 16 Mhz AVRs zu schaffen.

Daher habe ich folgende Anforderungen an den µC:
- Schnell
- 16- oder 32-Bit
- Handlötbar (kein BGA oder so)
- Im System programmierbar (muss aber kein ISP sein, kann auch JTAG oder so sein)
- Immer wieder programmierbar (kein einmaliges Brennen und Ende ;))

Ich habe bisher mit ATMEL AVR Megas hantiert.
Welchen µC (oder lieber selber mit Prozessor usw. aufbauen???) könnt ihr mir empfehlen?
(Achja, SPI oder I2C-Interface wäre gut...)

Gruß, CowZ

CowZ
24.06.2006, 13:43
Huhu? Jemand da?

...

Gruß, CowZ

Artur
24.06.2006, 14:00
Hi,

nachdem ich im ARM-Forum keine Antwort bekam, nun hier nochmal meine Frage:

Ich möchte gerne Kameradaten (RGB) mit (relativ) komplexen Algorithmen verarbeiten. Das ist (imho) nur schlecht mit den 8-Bit / 16 Mhz AVRs zu schaffen.

...

Hi ,
das du keine Antwort bekommst , bei der Beschreibung , kein Wunder.

Sagt etwas genauer was du damit vorhast ?

RGB und "relativ komplexen Algorithmen" - damit verdienen einige (Grosse) Firmen ihr Geld , und zwar hauptsächlich.

AVR's kannst du , mit Sicherheit vergessen .

Die Lösung lautet oft:
FPGA's mit ARM-core evtl sogar zwei davon + Software

Und das mit deinen 17 ?
Sorry

Gruss
Artur

CowZ
24.06.2006, 14:14
Hey Artur...

Vielleicht hättest du (trotz meinen 17 Jahren... -.-) weiter lesen sollen...

Das was ich an Hardwarevorraussetzung habe, habe ich weiter unten geschrieben:


Daher habe ich folgende Anforderungen an den µC:
- Schnell
- 16- oder 32-Bit
- Handlötbar (kein BGA oder so)
- Im System programmierbar (muss aber kein ISP sein, kann auch JTAG oder so sein)
- Immer wieder programmierbar (kein einmaliges Brennen und Ende )


Und bitte, trotz meine 17 Jahren bitte ich dich, mich einigermaßen ernstzunehmen. Ich denke, dass das zu dem (sonst) guten Ton hier im Forum gehört.

Gruß, CowZ

Artur
24.06.2006, 14:35
Hey Artur...

Vielleicht hättest du (trotz meinen 17 Jahren... -.-) weiter lesen sollen...

Das was ich an Hardwarevorraussetzung habe, habe ich weiter unten geschrieben:


Daher habe ich folgende Anforderungen an den µC:
- Schnell
- 16- oder 32-Bit
- Handlötbar (kein BGA oder so)
- Im System programmierbar (muss aber kein ISP sein, kann auch JTAG oder so sein)
- Immer wieder programmierbar (kein einmaliges Brennen und Ende )


Und bitte, trotz meine 17 Jahren bitte ich dich, mich einigermaßen ernstzunehmen. Ich denke, dass das zu dem (sonst) guten Ton hier im Forum gehört.

Gruß, CowZ

Das habe ich doch - sonst hätte ich das auch nicht daraus gelöscht ;-))

Und mit deinem Alter war nur gemeint das damit (im Projekt) meist mehrere Leute dabei sind die mit RGB auf "du" sind - und die brauchen auch so einige Zeit

Das Problem ist doch einfach das du nicht Sagst was du damit vorhast.

Handlötbar - da fängt's schon an - kannst du SMD's löten ? und zwar die kleineren davon ( von den Minis rede ich erst gar nicht) :-b - oder kannst du dir evtl ein Evo-FPGA-Board leisten?
Wie gross soll der Board max werden dürfen , wie Teuer

Bei (ernsthaften-)Projekten geht etwas anders vor:
1. Definieren was man möchte und was es (max) kosten darf
2. Prüfen ob das zu schaffen wäre (finanziel + personel ) und auch ob das überhauft Technologisch schon machbar ist

Erst dann geht's an die Entwicklung.

Wie fit bist bei der Soft-ARM programierung , wenn du mit Soft-ARM nichts anfangen kannst , dann würde ich Sagen :Vergiss es

Und wenn's komplexer wird wie sieht's mit Multi-Core programierung aus.

Ganz davon abgesehen das dafür "Lizenz-Gebühren" fällig werden

Hast du dein "(relativ) komplexen Algorithmen " schon fertig ?

Wie gesagt - Solange du nicht Sagst was du dabei / oder damit vorhast kann dir auch nicht geholfen werden.

Sorry , hätte ich bei beschreibung auch bei einem 30 / 40 oder 70 Jährigem geschieben . Das hat ( in diesem Fall) rein gar nichts mit dem Alter zu tun.

Gruss
Artur

Kaiser-F
24.06.2006, 14:35
Moin!

Guggscht du hier:
http://www.ulrichradig.de/

Unter CPLD-Projekte

Viel Spaß ;-)

CowZ
24.06.2006, 16:39
Ok,

dann hatte ich dich falsch verstanden, sry.

Also, die Algorithmen werde ich nicht selbst programmieren, dass übernimmt ein Bekannter von mir (Informatikstudent).

Was ich vorhabe:
Objekterkennung, Objektverfolgung, Entfernungserkennung (durch 2 Bilder in unterschiedlichem Winkel)

Allgemeiner geht es mir aber auch um die Möglichkeit schnellere Controller programmieren zu können. Alles aus reinem Interesse an der Sache :)

Gruß, CowZ

Artur
24.06.2006, 21:27
...
Also, die Algorithmen werde ich nicht selbst programmieren, dass übernimmt ein Bekannter von mir (Informatikstudent).
...
Allgemeiner geht es mir aber auch um die Möglichkeit schnellere Controller programmieren zu können.
Alles aus reinem Interesse an der Sache :)
...


ÄÄÄÄÄhhhhhhhhhhhhhhh JA - und noch mindestens 100000mal Ja ;-))

wenn du den Algorithmus nicht 100% verstehest - dann gehts auch in die Hose.
Nur wenn du mit Algorythmus per du sein solltest wäre µC programierung zu schaffen



...
Objekterkennung, Objektverfolgung, Entfernungserkennung (durch 2 Bilder in unterschiedlichem Winkel)
...


Genau da ist auch der Hund begraben:
1. must das RBG (also Farb Auwertung sein) , oder reicht auch GrauWert?
2. Objekterkennung - Feste gegenstände , oder sollen da gar Gesichter erkannt werden + wie sicher?
3. Objektverfolgung - das ist realativ einfach , wenn da ertsmal ein Objekt erkannt wurde.
4. (durch 2 Bilder in unterschiedlichem Winkel) - also so was wie das "VideoKamera gestütztes Geschwindigkeits Messsytem" von Leica.

zu 2. (wenns um Lebende geht) - da sind seit vielen Jahren (sehr) viele HiTech-Firmen dran - Testsystem z.B. in FrankfurtAirport oder auch vielen Bahnhöfen.
zu 4. "Entfernungserkennung" - wie genau soll das sein - ( evtl. ZivilWagen von Grünen sich "Ausleihen" da sind die Systeme drin)

Sei jetzt nicht Böse , aber du versuchst zu viel ( auch wenn du ganze Schule dahinter hättest ) alleine zu schaffen.

Gruss
Artur

CowZ
25.06.2006, 11:16
Hi Artur :)

Lass uns doch mal von den Anwendungen weg kommen :)

Ansich möchte ich ja nur ein Tutorial für die Programmierung eines anderen µC haben, der schneller als die AVRs ist und mehr Bits als die AVRs hat.

Ob ich das nachher hinbekomme das zu programmieren, lass mal meine Sorge sein ;) Wie gesagt, der Algorithmus wird nicht von mir, sondern von einem Informatikstudenten programmiert. Und der wird den Algorithmus schon verstanden haben... Insofern, lass uns von den Anwendungen wegkommen und wieder zur Hardware zurückkehren.

Gruß, CowZ

cinhcet
26.06.2006, 10:37
Krause Robotik hat ein Cam Modul mit Software, damit dürfte es einfach sein.

ogni42
28.06.2006, 13:15
Vielleicht kann Du uns mal mit folgender Zahl versorgen:

Anzahl ops =
( (Bildgröße in Pixeln *
Anzahl operationen pro pixel für Bildvorverarbeitung) +
Anzahl operationen pro zu erkennendem Objekt *
Anzahl gleichzeitig zu erkennender Objekte ) /
Zeit, die ein Erkennungszyklus verbrauchen darf

Das, was man am Besten beeinflussen kann ist die Auflösung des Bildes. Die Zeit pro Zyklus zu vergrößern ist nicht so gut, da der Bot dann ggf. Annahmen über Bewegungsrichtungen von Objekten treffen muss, um die eigenen Bewegungen zu kalkulieren (er ist ja für eine gewisse Zeit "blind").

Farbbildverarbeitung ist ein recht "teures" Geschäfts, was die Rechenleistung angeht. Meistens "verschwindet" der restliche Rechenleistungsbedarf der Applikation hinter den oben genannten Operationen. Erst wenn Du die Zahl oben berechnet hat, wirst Du eine Aussage darüber treffen können, was "schnell" ist.

Vorab: Ich vermute, dass bei einer Zykluszeit von 500ms ein ARM7 bei einem CIF Bild hoffnungslos überfordert wäre. Und uC/CPUs die darüber hinaus gehen sind nicht mehr so richtig mit der Hand lötbar (zumindest ich kann das nicht).

Aber ich denke, wenn wir über konkrete Zahlen/Algorithmen sprechen, werden die Empfehlungen auch etwas spezifischer.

gast1234
28.06.2006, 16:37
O'lala, Objekterkennung und noch Stereovision.
Wenn ich Dir einen Rat geben darf, bevor du Zeit oder sogar Geld verschwendest, laß Deinen Informatikstudenten erstmal machen. Wenn er das mit akzeptablen Bildwiederholraten auf einem aktuellen PC zum funktionieren bringt, ist er für mich wirklich der Held. Bleibt natürlich die Frage, was unter Objekten verstanden wird und wieviel verschiedene davon wohl zum erkennbaren Umfang gehören.
Nur dein Programmierer wird Dir letztendlich Deine Fragen beantworten können.
Ich schätze mal vorsichtig, das Projekt wird es nie geben, und falls doch, halte uns auf dem Laufenden :)

Gast1234

ogni42
28.06.2006, 18:42
Jetzt aber bitte mal nicht so negativ :)

Wie bereits gepostet, hängt der Rechenleistungsbedarf von einigen Faktoren ab. Ohne exakte (im Sinne von Größenordnung) Zahlen zu kennen, bleibt das alles Spekulation.

@CowZ: Lasst Euch nicht entmutigen. Vielleicht schafft der Bot am Ende nur alle 10 s ein Update, aber das kann ja je nach Aufgabe immer noch ausreichend sein.

Mein Vorschlag wäre: geht mal von SQCIF Bildern aus und schätzt Euren Rechenleistungsbedarf ab. Viel kleiner macht keinen Sinn und so bekommt Ihr wenigstens Information über die Untergrenze Eures Rechenleistungsbedarfes.

CowZ
29.06.2006, 17:19
Hi,

es geht mir nicht vorrangig darum, kamera bilder aus zu werten...

wie oben schon geschrieben, möchte ich einfach nur nen schnelleren µC kennen lernen.

Gruß, CowZ
PS: Ich lass mich nicht von euch entmutigen, dafür reichen mir meine eigenen Misserfolge...

dudenz
29.06.2006, 19:45
moin,

schau dir mal den DSP von Analog Devices an ...
hier nen link:
http://www.analog.com/processors/training/seminarMaterials/bf533_workshop.html
DSPs (DigitaleSignalPorzesoren) sind für schnelle aufwendige Rechnungen ausgelegt. Inwieweit sinnvolle Bildauswertung machbar ist, kann ich aber nicht sagen.

ogni42
29.06.2006, 20:33
Also wenn's nur darum geht einen schnelleren uC kennen zu lernen (den man dann auch noch selbst löten kann) ist beim ARM7 m.E. ein guter Kandidat gefunden. Alles was darüber hinaus geht ist mit selber löten schon sehr anspruchsvoll.

Alternativen wären der AVR32, der hat aber BGA Gehäuse womit man dann IMHO ohne Reflow-Ofen auf Adapterkarten angewiesen ist.

Vorteil von beiden uC ist, dass man wie beim AVR, ein komplette Familie zur Verfügung hat, der gcc portiert ist und man ggfs. auch mit linux hantieren kann.

CowZ
29.06.2006, 21:03
Hi,

Ich würde auch zu dem ARM7 tendieren... Gibt es da irgendwo n gutes Tutorial zu?

Gruß, CowZ

ogni42
29.06.2006, 21:46
Hab bis jetzt nmoch keins gefunden. Aber mit den headern vom gcc und dem Datenblatt kommt man eigentlich ganz gut weiter.

CowZ
29.06.2006, 21:54
Gibt's nen ARM7 bei Reichelt? Wenn ja, wo, welchen?

Gruß, CowZ

gast1234
29.06.2006, 22:59
Du bist wirklich sehr schnell im Kaufen.
Will Dir auch Dein Eifer nicht absprechen.
Vielleicht schreibst Du später noch was zu dem Projekt, bin ehrlich sehr interessiert, was Dein Freund fabriziert. Ich habe aus Motivationsgründen in der Bildbearbeitung kurz vor Hough Transformation kapituliert.

@ogni42

Was sind eigentlich SQCIF Bilder?

Gast1234

ogni42
29.06.2006, 23:08
SQCIF - Small Quarter Common Intermediate Format. Bilder mit 128x96 Pixeln Größe im YUV Format. Manchmal wird damit aber auch nur auf die Bildgröße Bezug genommen.

@CowZ: Reichelt weiss ich nicht, aber im Shop von mikrocontroller.net gibts einige Sachen.

cydodon
04.07.2006, 12:35
Hallo zusammen,
eine weitere Möglichkeit bietet u.U. das FOX Board (www.acmesystems.it). Ist ein kleines unter Linux betriebenes Board, 32Bit RISC CPU mit 100MHz, also in etwa ein PDA. Dazu gibt es wohl neuerdings auch ein FPGA Board, welches man (so man es versteht) sicher zu einer guten Beschleunigung von diversen Algorithmen verwenden kann...

MfG Alexander

CowZ
04.07.2006, 16:19
Ja, ok,

danke für eure ganzen Antworten :)

Werde mich jetzt wohl mal näher mit den Unterschieden zwischen ARM und FPGA usw. auseinander setzen :)

Danke :)