2017-02-26 1 views
1

Ich versuche, CNTK Object Detecion Beispiel auf PascalVoc vorgefertigten Datensatz ausführen. Ich führe alle benötigten Skripte in fastrcnn aus und erhalte die visuelle Ausgabe für die im Dataset definierten Testdaten. Jetzt möchte ich das Netzwerk auf meinem eigenen Bild testen, wie kann ich das tun?Wie test CNT Objekterkennung Beispiel auf benutzerdefiniertes Bild?

Antwort

0

Für Fast R-CNN benötigen Sie eine Bibliothek, die Kandidaten ROIs (Bereiche von Interesse) für Ihre Testbilder, z. selective search.

Wenn Sie einen Stapel von Bildern bewerten wollen, können Sie die Beschreibung in tutorial folgen Sie den Test-Mapping-Datei und die ROI-Koordinaten zu erzeugen (siehe test.txt und test.rois.txt im entsprechenden proc Unterordner). Wenn Sie einen einzelnen bewerten wollen würde, müssen Sie das Bild zu übergeben und den Kandidaten ROI-Koordinaten als Eingänge eval, ähnlich wie this example CNTK:

# compute model output 
arguments = {loaded_model.arguments[0]: [hwc_format]} 
output = loaded_model.eval(arguments) 
0

Für FastRCNN müssen Sie zuerst Ihr eigenes Bild durch Selective Suchalgorithmus laufen zu erzeugen ROIs (Regions of Interest) und ihn dann zu Ihrem Modell mit etw wie folgt aus:

output = frcn_eval.eval({image_input: image_file, roi_proposals: roi_proposals})

Sie können hier weitere Informationen finden: https://github.com/Microsoft/CNTK/tree/release/latest/Examples/Image/Detection/FastRCNN

Jedenfalls ist FastRCNN nicht der effizienteste Weg, dies zu tun, da die selektive Suche verwendet wird (was hier ein echter Flaschenhals ist). Wenn Sie die Leistung verbessern möchten, können Sie FasterRCNN versuchen, da es den SS-Algorithmus loswird und ihn durch Region Proposal Network ersetzt, das viel, viel besser funktioniert. Wenn Sie interessiert sind, können Sie meine Repo auf GitHub überprüfen: https://github.com/karolzak/CNTK-Hotel-pictures-classificator

+0

Hallo Karol, bitte seien Sie spezifisch in Ihrer Frage. Versuchen Sie, sich auf ein Thema zu konzentrieren, das Sie interessiert, und stellen Sie ein Fragment Ihrer Arbeit in der Frage bereit, da sich der Link im Laufe der Zeit ändern kann. Wenn Sie ein technisches Problem haben, beschreiben Sie das erwartete Ergebnis, das tatsächliche Ergebnis und wie Sie versucht haben, es zu lösen. Fragen, die sich auf ein einzelnes Problem konzentrieren, haben bessere Chancen auf eine gute Antwort. – profimedica