iCommand Vision: Shapes erkennen
lima-city → Forum → Programmiersprachen → Java
bekannte objekte
code
datensatz
folge
ftp
gesicht
haufe
http
programmieraufwand
region
run
segmentierung
tag
tun
umgebung
url
versuchen
vision
wiedererkennen
zugrunde liegende bildmaterial
-
Hallo zusammen,
ich wollte mal Fragen, wie ich mit Java bzw. iCommand Shapes erkennen kann.
Ich habe irgendwie nichts gefunden...
Hier mal der Quelltag/code">code, um Farben und Bewegungen zu erkennen:
import icommand.vision.*; public class VisionAlarm implements MotionListener, ColorListener { long lastPlay = 0; private final int blue = 0xa0b0c0; private final int white = 0xFFFFFF; public static void main(String [] args) { (new VisionAlarm()).run(); } private void run() { Vision.setImageSize(320, 240); Vision.flipHorizontal(false); Vision.addRectRegion(1, 30, 100, 50, 100); Vision.addMotionListener(1, this); Vision.addRectRegion(2, 130, 100, 50, 100); Vision.addMotionListener(2, this); Vision.addRectRegion(3, 230, 100, 50, 100); Vision.addColorListener(3, this, blue); Vision.addColorListener(3, this, white); Vision.startViewer("Alarm"); } public void motionDetected(int region) { //Irgendwas, hier wäre wohl die Kontrolle/Matrixrechnung sinnvoll } public void colorDetected(int region, int color) { if (color == blue) { //irgendwas }else if (color == white) { //Irgendwas } } }
Danke im Vorraus,
askarian -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo askarina,
wenn iCommand sich hierauf bezieht, dann hast Du erst einmal Pech, da dort nichts zur "Shape"- bzw. Objekterkennung dabei ist. Eigentlich scheint es noch schlimmer zu sein, da ich noch nicht einmal eine Methode finden kann, die es erlaubt an die Daten eines Frames/Bildes zu kommen.
Ob die Erkennung von "Shapes" einfach zu machen ist hängt davon ab, was Du darunter verstehst bzw. wie das zugrunde liegende Bildmaterial eigentlich aussieht. Wenn man z.B. nur dunkle Objekte vor einem hellen Hintergrund erkenne will, dann würde es wohl erstmal eine Segmentierung mittels Schwellwert gefolgt von Komponenten-Labeling tun. Wenn Du aber bekannte Objekte in einer inhomogenen Umgebung wiedererkennen willst, dann brauchst Du sowas: SURF-Feature-Detector
Allerdings ist das zum einen mit einem ganzen haufen Programmieraufwand verbunden, wenn man es selber machen will, und zum anderen benötigt man für sowas 5000+ Testbilder um den Klassifizierer einzulernen (was mitunter mehere Tage dauern kann).
Wenn Du Dein Glück dennoch Versuchen willst, dann kannst Du es ja mal mit OpenCV versuchen, die habe das alles implementiert und zumindest für Gesichter liegt (Gerüchten zu folge) ein eingelernter Datensatz bei. Um OpenCV von Java aus zu verwenden müsstest Du Dir noch JavaCV besorgen.
-
darkpandemic schrieb:
Hallo askarinan,
Ob die Erkennung von "Shapes" einfach zu machen ist hängt davon ab, was Du darunter verstehst bzw. wie das zugrunde liegende Bildmaterial eigentlich aussieht. Wenn man z.B. nur dunkle Objekte vor einem hellen Hintergrund erkenne will, dann würde es wohl erstmal eine Segmentierung mittels Schwellwert gefolgt von Komponenten-Labeling tun. Wenn Du aber bekannte Objekte in einer inhomogenen Umgebung wiedererkennen willst, dann brauchst Du sowas: SURF-Feature-Detector
Allerdings ist das zum einen mit einem ganzen haufen Programmieraufwand verbunden, wenn man es selber machen will, und zum anderen benötigt man für sowas 5000+ Testbilder um den Klassifizierer einzulernen (was mitunter mehere Tage dauern kann).
Wenn Du Dein Glück dennoch Versuchen willst, dann kannst Du es ja mal mit OpenCV versuchen, die habe das alles implementiert und zumindest für Gesichter liegt (Gerüchten zu folge) ein eingelernter Datensatz bei. Um OpenCV von Java aus zu verwenden müsstest Du Dir noch JavaCV besorgen.
Ok danke darkpandemi,
Ich werde mich direkt mal mit OpenCV/JavaCV vertraut machen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage