PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bilderkennung/auswertung der Einstieg



PabloEscoba
09.05.2006, 22:26
Hallo

Ich würde mich gerne mit der Bilderkennung ein wenig auseinander setzten . Am Anfang würde ich mich am liebsten z.BSP mit der Erkennung bzw tracking von Farbobjecten beschäftigen

Also ich habe folgende Fragen

1. Welches System findet ihr für den Einstieg am geeignetsten
2. Mit welchen Kosten muss man rechnen
3. Kennt ihr hilfreiche Pages (Links)
4. Wekche Systeme gibt es überhaubt.
5. Welche Probleme sind makant für die BE

THx Pablo

frank-findus
10.05.2006, 10:41
Hallo,

präzisiere: auf welchem System? PC/Mac/Workstation, mit DSPs oder Microcontrollern? Algorithmisch oder mit Neuronalen Netzen?

Sorry, aber ansonsten wird die Diskussion ein Fass ohne Boden.

Gruß, Frank

PabloEscoba
10.05.2006, 11:52
Kein Thema war ja mein Fehler.

Also ich denke das ich am liebsten mit einem normalen Pc anfangen würde. (WinXp)
Was kannst du mir empfehlen für den anfang mit welchem system is der anfang am leichtesten bzw am günstigsten




mit DSPs Algorithmisch oder mit Neuronalen Netzen?

Das sagt mir leider nichts sry hast du vieleicht ein paar links zu diesem thema

cu Pablo

michiE
10.05.2006, 17:05
ich bin gerade dabei , sowas zu machen ,.
ich habe (leider ) mit VB angefangen ein neuronales netz zu programmieren , das zumindest mal in der lage ist , gleichschenklige dreiecke von quadraten zu unterscheiden. Im moment befindet sich dieses din in der "lernphase" und krigt von mir diverse dreieche und vierecke , die es voneinander zu unterscheiden lernt.
Ist mehr oder weniger schweer für den anfang .
falls du sawas voprhast , würde ic hauf jeden fall NICHT VB , dondern C empfehlen *g*

Andere Aufgaben (wie z.b. markante farben finden ) kannst du weiderum total simpel lösen.
ich müsste noch ein paar Sachen wissen , um die weiterhalfen zu können :

1. welche sprachen kannst du ?
2. wird es ein livebild von einem roboter sein , oder einfach nur ein einzelnes Bild , das irgendwo auf dem rechner gespeichert ist?
3. was genau willst du erkennen ? Formen ? Oder markante Farben ? Oder gaze, komplexe Gegenstände ? Lichter ? Hindernisse ??? ...
#

mfg
MichiE

stochri
10.05.2006, 17:10
Ich würde mich gerne mit der Bilderkennung ein wenig auseinander setzten . Am Anfang würde ich mich am liebsten z.BSP mit der Erkennung bzw tracking von Farbobjecten beschäftigen

Na dann probier's doch mal mit diesen 2 Threads:

https://www.roboternetz.de/phpBB2/viewtopic.php?t=16884

https://www.roboternetz.de/phpBB2/viewtopic.php?t=15762

https://www.roboternetz.de/phpBB2/files/zweiobjektsuche2.jpeg

Gruss,
stochri

PabloEscoba
11.05.2006, 07:17
Hallo

Erstmall fettes Thx für die interesanten Antworten.


1. welche sprachen kannst du ?
2. wird es ein livebild von einem roboter sein , oder einfach nur ein einzelnes Bild , das irgendwo auf dem rechner gespeichert ist?
3. was genau willst du erkennen ? Formen ? Oder markante Farben ? Oder gaze, komplexe Gegenstände ? Lichter ? Hindernisse ??? ...
#


1.Also ich habe ein wenig erfahrungen gesammelt mit c++ und Basic
2.Für den anfang würde ein einzelnes Bild reichen , ziel ist es aber ein Live Bild zu nutzen.
3.Für den anfang nur Farben z.BSP Rot

@ Storchi
Danke für die Links , leider zieht sich das ganze ewig lamge hin , kennst du vieleicht ein Tutorial oder ein anderen Link der vieleicht etwas zusammengefasster ist .Falls nicht ich werde mir den Artikel auf jeden mal durchlesen.

PabloEscoba

PabloEscoba
12.05.2006, 09:36
Hallo


Ich wollte mich erstmall für deinen Link bedanken zum Thema Bildberarbeitung.Ich habe mir ihn nun mindestens 5 mal Durchgelesen.
Jetzt wollte ich es selber mal versuchen weil ich dachte das ich die groben abläufe nun kenne.
Ich habe mir also folgende Datein runtergeladen

Scilap 4.0
SIP 0.4.0
So das erste Problem hatte ich schon mit der instalation der Toolbox.
Es war ein InstallerMenu welches automatisch die datein der Toolbox in die von Scilap eingefügt hat ich hoffe das war richtig.
Zumindest kan ich nun bei Scilap unter ToolBox die SIP auswählen.

So nun zum eigentlichen Problem ich wollte nun mit dem einlesen eines Bildes beginnen mit dem Befehl

>X=imread('C:\Eigene Dateien\Eigene Bilder\YoungBuck-StraightOuttaCashville.jpeg');
Nur leider kommt immer folgende FehlerMeldung

undefined variable : imread

Ich denke entweder habe ich da etwas missverstanden was das Setup angeht oder ich mache da einen grundliegenden fehler.
Ich hoffe du hast Zeit und Lust einem Anfänger zu helfen , den ich interesiere mich sehr für dieses Thema und habe mir nun schon so einige Nächte den kopf darüber zerbrochen.Allerdings hätte ich volles verständnis wenn du keine zeit und lust hättest schleislich hast du bestiimmt eigene Projecte und wirst nach deinem Artike bestimmt öfters zu diesem Thema angesprochen.
Naja wie dem auch sei ich würde mich freuen von dir zu hören

Pablo

stochri
12.05.2006, 14:20
Hallo Pablo,
man muss jedesmal, wenn scilab neu gestartet wurde, die SIP Bibliothek nachladen, im Falle von Linux mit

exec /home/xx/Linux_Programme/scilab/sip-0.4.0-bin/loader.sce

im Falle von windows wohl in entsprechender Weise. Die Frage sollte sich irgendwo am Anfang der Diskussion im Windows-Thread finden lassen.

Gruss,
stochri

PabloEscoba
12.05.2006, 19:07
Hy Storchri

Ich habe jedesmal die loader datei geladen entweder durch diesen befehl oder einfach durch rüberziehen in scilap.
Allerdings kommt by x=imread immer noch der selbe fehler.
ich can die demo mit scidemo() laden allerdings kommt wenn das bild angezeigt werden sollte wieder die selbe fehlermeldung


pablo

Hier die genau anzeige:

Startup execution:
loading initial environment

-->gl_name='C:\Eigene Dateien\sip-0.1.1-win5\sip-0.1.1-win5\loader.sce';exec('SCI/util/GLoad.sce');
k =

! 24. 26. 39. 41. 55. !

-->mode(-1);
Warning :redefining function: help

SIP - Scilab Image Processing Toolbox loaded
Enter "sipdemo()" for a demonstration

link failed for dll ./libimgio.dll
addinter(libimgio_path+'/libimgio.dll','libimgio',functions);
!--error 236
link: the shared archive was not loaded
at line 6 of exec file called by :
exec winloader.sce;
line 55 of exec file called by :
case "sce" then exec(gl_name),
line 7 of exec file called by :
der.sce';exec('SCI/util/GLoad.sce')


-->X=imread('C:\Eigene Dateien\Eigene Bilder\YoungBuck-StraightOuttaCashville.jpeg');
!--error 4
undefined variable : imread


-->

stochri
13.05.2006, 06:48
Mein Vermutung: Du hast ImageMagick nicht installiert, das muss vor der SIP-Library installiert werden.

PabloEscoba
13.05.2006, 13:27
hy

Also ImageMakick habe ich installiert bzw entpackt
Kannn es vieleicht an WinMe liegen ?
Du musst mich bestimmt für ein wenig unterbelichtet haltet aber ich bekomme es einfach nicht zu laufen.
Hat du sonst vieleicht noch eine idee an was es liegen könnte

5_String
13.05.2006, 18:12
wenn du doch c++ kannst dann liegt die OpenCV Bibliothek von Intel doch danz nahe.
Ist sehr umfangreich und leistungsstark.
findest da für fast alle computer/Robot-Vision sachen etwas brauchbares und es ist auch ziemlich beliebt so das du einiges an progs und infos im www findest.

stochri
13.05.2006, 19:11
Hat du sonst vieleicht noch eine idee an was es liegen könnte

Leider nein, ich benutze eigentlich Linux. Den Windows-Thread habe ich nur angefangen, weil Mike die Bildverarbeitung ausprobieren wollte. Bei den anderen, die es versucht haben, hat es geklappt. Vielleicht ist OpenCV ja eher das richtige für Dich.

Viel Glück noch,
stochri

PabloEscoba
14.05.2006, 02:28
Halllo

Ich habe es entlich hinbekommen das Scilap mit Sip läuft.
Nun habe ich aber das gleiche Problem wie Mike1 in dem anderen Thread.
Bis imread geht alles wunderbar. Und so wie ich dann imshow(x) eingebe kommt von Windows eine Fehlermeldung das das Programm geschlossen werden muss. Ich habe noch mal alles deinstalliert und wieder installiert. Geht trotzdem nicht .

Ich habe dan auch deinen Tip mit dem " stacksize(15000000); " ausprobiert leider ohne Erfolg. Dan habe ich verschiedene Zahlen ausprobiert.
" stacksize(15000000); "
" stacksize(25000000); "
" stacksize(30000000); "
Leider waqr auch das ergebnislos. Langsam aber sicher weis ich mal wieder nicht weiter. An was kann das den liegen das das Program abstürzt.Hast du vieleicht sonst noch einnen LösungsVorschlag ausser
den " stacksize(15000000); " Befehl.

Pablo

PS

Die demo laüft einwandfrei durch " sipdemo() "

stochri
14.05.2006, 06:25
Es scheint mir etwas seltsam, dass sipdemo() durchläuft, obwohl Dein Rechner bei imread abstürzt. Sipdemo benutzt ja relativ viele Funktionen von SIP u.a. auch imread.

D.h. imread müsste bei Dir grundsätzlich funktionieren. Vielleicht liegt es an der Pfadangabe oder am Filetyp den Du laden willst ?

Woran lag es eigentlich, dass es jetzt bei Dir läuft ?

PabloEscoba
14.05.2006, 07:55
hy

Also es lag daran das ich eine sehr strenge firewall habe die den zugriff auf gewisse dll unterbindet , normalerweise ist das aber kein problem wenn man nicht so wie ich die meldung was geblockt wird ausgeschaltet hat.
ich habe die Firewall ausgeschaltet und es lief wunderbar.
Was das Bild angeht welches ich benutze es ist eines deiner Bilder aus dem Thread mit Mike1 (JPG)

PabloEscoba
14.05.2006, 08:00
Acho vieleicht hilf das ja hier ist die Detail ansicht , des fehlers der mich zwingt das Porogramm zu beenden.

SCILEX verursachte einen Fehler durch eine ungültige Seite
in Modul LIBSCILAB.DLL bei 016f:103d63c7.
Register:
EAX=01210140 CS=016f EIP=103d63c7 EFLGS=00010293
EBX=006c0000 SS=0177 ESP=007cf978 EBP=007cf99c
ECX=00000000 DS=0177 ESI=0000001c FS=73af
EDX=00000000 ES=0177 EDI=00000000 GS=0000
Bytes bei CS:EIP:
8b 04 91 89 45 fc eb 2e 8b 0d 78 06 70 10 8b 91
Stapelwerte:
0000001c 00000001 00000000 00000000 00000000 00000000 10648498 00000001 01c64834 007cf9c8 103d810f 007cfab8 00000000 00000000 00000000 00000000

PabloEscoba
14.05.2006, 08:03
Also ich gehe immer folgendermasen vor.


1. Scilap starten

2.Loader.sce laden

3." stacksize(15000000);

4.x=imread('C:\Eigene Dateien\Eigene Bilder\roboter_orginal_gruen.jpg');

5.imshow(x) ;

stochri
14.05.2006, 08:11
Na wenn Du bis Punkt 4 kommst, heisst das ja imread funktioniert. Vielleicht ist Dein Bild zu groß == testen mit size(x)
Probier es mal mit einem kleinen Bild oder mit einem kleinen schwarz/weis Bild.

PabloEscoba
14.05.2006, 08:15
Hallo Strochri

Guten Morgen erstmall

Also der befehl gib tfolgendes zurück:
-->size(x)
ans =

! 240. 320. 3. !

Das selbe steht aber auch immer unter dem imread Befehl:
-->x=imread('C:\Eigene Dateien\Eigene Bilder\roboter_orginal_gruen.jpg');
Size: 240 rows X 320 columns
Truecolor Image

PabloEscoba
14.05.2006, 08:20
Hallo

So ich habe jetzt mal ein normales Schwarz/Weiß Jpg getestet das leif einwandfrei.
Kann es sein das es an den Farben liegt.

stochri
14.05.2006, 08:22
Guten Morgen, ebenfalls.

Das Bild wird wohl Ordnungsgemäß geladen. Das Problem scheint wohl ImageMagick ( Bildausgabeprogramm) zu sein. Im anderen Thread gab's Probleme mit verschiedenen Versionen von ImageMagick. Frag mich nicht, welche jetzt die richtige ist. Müsstest Du mal nachlesen

PabloEscoba
14.05.2006, 08:28
Alles Klar wenigstens habe ich jetzt mal einen ansatz um das Problem zu finden.
Achso hier sind mal die Bilder die ich getestet habe ist vieleicht ganz interessant.

https://www.roboternetz.de/phpBB2/images/nickpage/204531147591361.jpg


https://www.roboternetz.de/phpBB2/images/nickpage/204531147591390.jpg

Dieses hier ist das einzigste was funktioniert hat !
https://www.roboternetz.de/phpBB2/images/nickpage/204531147591411.jpg

PabloEscoba
14.05.2006, 08:34
Welche Version benutzt den du ????

stochri
14.05.2006, 08:39
Weiss ich nicht mehr. Bei mir läuft grad Linux. Steht aber, wie gesagt im anderen Thread.

PabloEscoba
14.05.2006, 09:01
Hallo

Also ich bin witerhin auf der Suche nach der richtigen Version von ImageMagick.
Vieleicht hat ja jemand ein ähnliches Problem gehabt wie ich.
Das man zwar einfache Schwarz/Weisß bilder laden und anzeigen kann allerdings keine aufwenigen Farb Bilder.
Falls einer die richtige version kennt bzw eine Lösung des Problems were ich ihm sehr dankbar wenn er es posten könnte bis dahin werde ich wohl weiter rumtesten und suchen müssen.

Pablo

RedBaron
23.05.2006, 18:27
Hallo,

ich habe vor einiger Zeit 'mal das nachfolgend beschriebene probiert. Klappt eigentlich recht gut, ich kann meinen Robot ca. 20 Sec. verfolgen. Beim nächsten Urlaub krieg' ich den Rest hoffentlich auch noch hin...

Also WinXp, Visual Studio als Umgebung, mittelmäßige WebCam in rauher Umgebung (soll heißen ASURO mit roter Markierung auf ziemlich rotem Teppich), DirectX-Library.

Ablauf sieht wie folgt aus:
Start: Auf einem WebCam-Bild den ASURO mit der Maus anklicken. Aus den Pixeln im Umkreis des Mausklicks Farbmittelwert bilden. Dadurch hat man eine Referenz und kann das System an die aktuelle Beleuchtung anpassen.

Schleife:
WebCam-Bild machen (Bitmap). In HSV-Darstellung wandeln (Farbähnlichkeiten kann man eigentlich nur gescheit in dieser Darstellung feststellen). Alle Farben, die ähnlich der Referenzfarbe sind, auf Schwarz setzen, alle anderen auf Weiß. Bild bereinigen: Median-Methode entfernt kleine Sprenkel. Umwandel in RLE-Kodierung mit Lückenschluss. Zusammenhängende Linienstücke (vertikale Nachbarschaft) zu Bildobjekten zusammenfassen. Alle Bildobjekte unter einer Mindestgröße verwerfen. Das Objekt, dessen Schwerpunkt dann am nächsten an der vorhergehenden Position liegt, ist der Robot (höchstwahrscheinlich). Um dem Schwerpunkt herum wieder Referenzfarbe ermitteln.
Zurück zum Schleifenanfang.

Mein PC (AMD 2600+) schafft ca. 15 Schleifen pro Sekunde. In der Zeit zwischen zwei Schleifen kommt der ASURO nicht sehr weit. Deshalb klappt der Trick mit der Referenzfarbe ziemlich gut.

Gruß RedBaron