Hallo,
hat jemand eine Idee, wie man bei auf einem schwarz/weiß Bild zusammenhängende Flächen erkennen kann, und deren Form?
MfG Jeffrey
Hallo,
hat jemand eine Idee, wie man bei auf einem schwarz/weiß Bild zusammenhängende Flächen erkennen kann, und deren Form?
MfG Jeffrey
Mit welcher Software willst du das machen? Soll etwa dein dein Roboter etc. Sachen erkennen?
Bei ner einfachen sw-Bilderkennung sollte ein kleines neuronales Netz nützlich sein.
Tools dazu : SNNS, MAtlab/neural-toolbox..
Bilderkennung ist ne heikle Sache..
mfg
Zur Erkennung von bestimmten Formen gibt es viele Möglichkeiten (Korrelation, KNNs, Pattern Matching, ...) Beschreibe doch Deine Anforderungen mal ein bisschen genauer, dann können wir Dir sicher auch genauere Antworten geben.
Für ein reines Schwarz/Weißbild (also nur Schwarz oder Weiß) dürfte es nicht so schwer werden, da zusammenhängende Objekte einfach zu ermitteln sind, immer den schwarzen Pixeln entlang. Die Form kann man dann gut aus der Kompaktheit, dem Verhältnis zwischen Umfang und Volumen des Objekts, ableiten. Neuronale Netze sind insofern nur sinnvoll, wenn du Translation, Rotation und Skalierung der Objekte ausschließen kannst. Sonst musst du erst die "Ware" aufbereiten, mit den angesprochene Korrelationen beispielsweise. Der Aufwand ist bei Deiner Fragestellung kaum zu vertreten.
mfg
Gast1234
Hi,
ich bin durch das Thema https://www.roboternetz.de/phpBB2/vi...=168136#168136 auf die Bilderkennung gekommen. Der Roboter wird da mit einem roten Viereck markiert und dann über eine Farberkennung gesucht. Wenn man jetzt zusätzlich noch eine Formerkennung für das Viereck macht, könnte man ihn z.b von einem roten Ball unterscheiden, der auch noch im Bild liegt.
Außerdem habe ich gedacht, dass man dann wenn man auf den Bot eine Kamera baut sowas wie "such den roten Ball" machen kann, und dabei dann z.b rote Würfel ignoriert werden.
Dabei kann sich die Größe und die Lage natürlich verändern, je nach Entfernung und Lage des Bots.
MfG Jeffrey
hi,
das mit der Formerkennung durch verfolgen der Randpixel klingt logisch. Das habe ich mir auch schon überlegt. Wenn man zuerst eine Kantenerkennung laufen lässt hat man ja nur noch den Umriß. Aber mit welchem Algorithmus verfolge ich nun den Rand, damit er möglichst schnell gefunden wird.
MfG Jeffrey
Hallo Jeffrey,bin durch das Thema https://www.roboternetz.de/phpBB2/ze...=168136#168136 auf die Bilderkennung gekommen.
der urspruengliche Thread zur ASURO-Steuerung befindet sich hier:
https://www.roboternetz.de/phpBB2/vi...r=asc&start=22
Dort habe ich auch schon einen Algorithmus beschrieben, mit dem man den Roboter und den Ball unterscheiden kann.
Der Algorithmus ist
- robust ( sehr stoerunempfindlich )
- einfach
- relativ schnell
Gruss,
stochri
hi stochri,
und wie unterscheidest du was nun ball und was asuro ist? nach welchem prinzip überzeichnest du die flächen? was passiert, wenn die flächen nicht rund ist. wie erkennst du jetzt, wenn du zusätzlich zu ball und asuro noch weitere flächen hast, was ball, was asuro und was irgendwelche störungen sind?
mir geht es z.b. darum den bot zu erkennen, indem ich ihm ne bestimmte farbe und form(z.b ring) gebe, auch wenn ich nicht garantieren kann, dass keine weiteren roten flächen auf dem bild auftauchen. deshalb habe ich gedacht, dass man sowohl nach formen, als auch nach farbe sucht und daraus errechnet mit welcher wahrscheinlichkeit ein roter fleck auch der asuro ist.
mfg jeffrey
Hier die Beschreibung des Algorithmus
Bild1: Orginalbild
Bild2: Rote Farben mittels des Algoritnus wie weiter oben im Thread beschrieben extrahiert und in eine Pixelbild umgewandelt
Bild3: tiefpassgefiltertes Pixelbild, durch die Tiefpassfilterung werden aus den ebenen weißen Fläche kleine Berge
Bild4: Höchste Bergspitze gesucht und Berg mittels Überzeichnen aus dem Bild entfernt danach suchen der zweiten Bergspitze
Bild5: Position der beiden gefundenen Bergspitzen
Zunaechst einmal ist der Algorithmus eigentlich ein Algorithmus zur sog. "Bildsegmentierung", d.h. der Extraktion relevanter Objekte aus einem Bildszenario.und wie unterscheidest du was nun ball und was asuro ist?
Will man die gefundenen Objekt unterscheiden, kann man verschiedene Eigenschaften der Objekte dazu vewenden, z.B.
- Farbe
- Farbkombination
- Textur
- Form
- Umfang/Flaechenverhaeltnis
- Rundheit
- Schwerpunktslage im Verhaeltnis zur Standartabweichung
um nur einen sehr kleine Ausschnitt der Moeglichkeiten zu nennen.
Als Abfallprodukt der Suche nach den Bergspitzen faellt sozusagen die Groese des Objektes als Qualifizierungsmerkmal ab. Ich habe dem Ball einfach eine andere Groesse als der ASURO-Flaeche gegeben. Dadurch lassen sich beide unterscheiden.
Die Hoehe der Bergspitze und damit das Groessenkriterium ist relevant. Im Bildbeispiel ist ja der Ball rund und die Flaeche des ASURO eckig.nach welchem prinzip überzeichnest du die flächen? was passiert, wenn die flächen nicht rund ist.
Es werden die Maximal im Bild gesucht. Im Moment werte ich nur zwei Maxima aus, d.h. es werden die zwei groesten Objekte gefunden. Man kann das natuerlich auf N-Objekte ausdehnen.wie erkennst du jetzt, wenn du zusätzlich zu ball und asuro noch weitere flächen hast, was ball, was asuro und was irgendwelche störungen sind?
Gegen Stoerungen ist der Algorithmus auf Grund der Tiefpassfilterung besonders robust.
Gruss,
stochri
Lesezeichen