2014-04-18 7 views
8

Ich bin Student in Agronomie und das Thema meines letzten Jahres Studie ist die Anzahl der Bienen in Bildern zu beurteilen. Ich habe einige Methoden ausprobiert (Threading, Template Matching mit dem ciratefi-Algorithmus oder mit imageJ), aber keine funktioniert gut.Matlab Cascade Zug für Bienen zählen

Ich bin ein Anfänger mit Matlab und ich frage mich, ob es möglich ist, Kaskadendetektor zu trainieren und die Funktion vision.CascadeObjectDetector zu verwenden, um Bienen auf Bildern zu zählen.

Zwei Bilder Beispiele:
http://img4.hostingpics.net/pics/473650DSC0648.jpg und
http://img4.hostingpics.net/pics/978154DSC0660.jpg

Wie viele positive und negative Proben muss ich verwenden? HOG? Haar? LBP?

Vielen Dank für Ihre Hilfe

+0

Ich würde wahrscheinlich mit LPB beginnen, da die Streifen auf den Bienen eine der Besonderheiten sind, die für die Erkennung verwendet werden können. Sie könnten Haar später versuchen, da es lange dauert ...Die Größe der Stichprobe ist schwer abzuschätzen, Sie müssen sie wahrscheinlich ausprobieren (so wie etwa 100 positive Stichproben). Achten Sie darauf, Bienen mit unterschiedlichen Orientierungen und Haltungen in Ihre positiven Proben zu integrieren.Sounds wie ein interessantes Projekt :) – Cici

+0

Gibt es eine Möglichkeit, eine Reihe von schnell aufeinander folgenden Bildern oder Videos zu bekommen? – Maurits

Antwort

2

Es funktioniert, aber es wird schwer sein. Von den Bildern, die Sie mir zur Verfügung gestellt haben, haben Sie eine gute Chance, vereinzelte Bienen zu entdecken, aber es wird schwer sein, diejenigen zu entdecken, die zusammengepfercht sind. Im letzteren Fall ist es schwer, die Umrisse der Form jeder Biene zu erkennen, und einige Bienen verschließen andere Bienen. Aber du wirst es nicht wissen, bis du es versuchst. :)

Denken Sie auch daran, dass der Kaskadenobjektdetektor nicht in der Ebene rotiert. Das bedeutet, dass Sie mehrere Detektoren für verschiedene Ausrichtungen der Bienen trainieren müssten. Mit der Funktion trainCascadeObjectDetector können Sie die Melder trainieren.

Sie würden mindestens einige hundert positive Proben jeder Orientierung benötigen. Sie können die Training Image Labeler App verwenden, die mit der neuesten Version der Computer Vision System Toolbox geliefert wird, um die Bienen in Bildern zu beschriften.

Sie müssten auch viele Bilder von der Wabe ohne irgendwelche Bienen darauf als negative Bilder verwenden.

Soweit Funktionen, würde ich mit HOG oder LBP beginnen, weil sie viel schneller als Haar sind. Wenn Sie ermutigende Ergebnisse erhalten, sollten Sie Haar ausprobieren, um zu sehen, ob Sie Ihre Genauigkeit verbessern können.

+0

Ich werde Bilder von Bienenwaben ohne Bienen machen, aber es verursacht eine große Störung für Bienen, sie von Rahmen zu bürsten. Also würde ich gerne wissen, ob es eine gute Idee ist, ganze Bilder von Kämmen zu machen und sie dann in kleine Teile zu teilen: http://img4.hostingpics.net/pics/416788q27.jpg - http://img4.hostingpics.net /pics/505876t83.jpg Vielen Dank für Ihre Hilfe! – Hgwen

+0

Sicher, das wird auch funktionieren. – Dima

+0

Um eine "saubere" Wabe zu erhalten, kann Ihnen eine Photoshop-Technik namens "Image Stacks" helfen. www.photoshopforphotographers.com/pscs3/download/sample-04.pdf Es ist im Grunde ein "Durchschnitt" über mehrere Fotos, die als eine Sequenz ohne Bewegung der Kamera genommen werden, um bewegte Objekte zu entfernen. Sie können eine "saubere" Aufnahme Ihrer Bienenwabe machen - spülen Sie Ihre Bienen einfach in einen anderen Teil ihres Hauses! – Yvon

0

Wenn Sie Bilder der Bienenstöcke ohne die Bienen machen können, wäre es bei den gleichen Lichtverhältnissen großartig! Probieren Sie es aus und subtrahieren Sie dann die zwei Bilder (Pixel für Pixel) und sehen Sie, was Sie bekommen. Dieses Differenzbild wäre viel einfacher zu bearbeiten.

Auch in Bezug auf das Training eines Klassifikators: aus dem Blick auf die Bilder, würden Sie einen "rotational Invariant" Klassifikator benötigen. Dies ist eine phantastische Art zu sagen, dass Bienen in verschiedenen Winkeln sein können. Sie würden also grundsätzlich mehrere Dutzend Bienenbilder aufnehmen und beliebig rotieren. Dies würde Ihnen mehrere hundert positive Beispiele geben. Dann probiere Plätze ohne Bienen aus, ich denke auch mehrere Dutzend. Drehe diese nicht, da Orte ohne Bienen nicht rotationsinvariant sind. Trainiere jetzt einen Klassifikator. Ich denke nicht, dass es wichtig sein sollte, welchen du benutzt - benutze einfach den einfachsten (wie Viola-Jones).

Also, um es zusammenzufassen: Es gibt zwei Hauptteile: 1) sehen, wenn Sie den Hintergrund 2) Training Ihr Klassifikator subtrahieren könnten.

Bitte sagen Sie mir, wenn es hilft!