2016-04-26 38 views
4

Ich bin neu in OpenCV. Ich benutze OpenCV 3.1 und Python 2.7.OpenCV zu erkennen Bild mit Python

Ich habe 5 Bilder von Fahrrädern und 5 Bilder von Autos. Ich möchte herausfinden, ob es ein Bild ist, ist es ein Auto oder ein Fahrrad.

Im Internet fand ich heraus, dass die Verwendung von Haar Kaskade wir trainieren können, aber die meisten Beispiele enthalten nur einen trainierten Daten bedeutet, wird der Benutzer nur Auto Bilder und mit Abfragebild auszubilden und sie werden versuchen, es zu finden Es ist ein Auto oder nicht, aber ich möchte überprüfen, ob es ein Auto oder ein Fahrrad oder nichts ist.

Ich möchte Bilder basierend auf Form von Objekten übereinstimmen. Eine andere Option, die ich dachte, dass Abfrage Bild und vergleichen mit gespeicherten Bildern und je nach Ähnlichkeit geben Sie das Ergebnis. Aber ich weiß, das würde länger dauern, was nicht gut wäre.

Gibt es eine bessere Option? Es gibt auch Template Matching, aber ich weiß nicht, welche Optionen für diese Art von Lösung besser wäre, da ich keine Kenntnisse über OpenCV habe.

Antwort

1

Ihre Frage zu den Kaskaden Haar Bezug. Sie können sie verwenden, um die Bilder so zu klassifizieren, wie Sie möchten:

Trainieren Sie zwei haarige Kaskaden, eine für Autos und eine für Fahrräder. Beide Kaskaden geben einen Wert zurück, wie sicher sie sind, dass das Bild das Objekt enthält, für das sie trainiert wurden. Wenn beide unsicher sind, enthält das Bild wahrscheinlich nichts. Ansonsten nehmen Sie die Klasse mit der höheren Sicherheit für den Inhalt des Bildes.

+0

Danke Sietschie für die Antwort. Kannst du mir ein Beispiel geben? – usernan

+0

Und danke für die Bearbeitung – usernan

+0

Nicht speziell. Aber [hier] (http://stackoverflow.com/a/23513303/977098) können Sie sehen, wie Sie sich vom Haar-Kaskaden-Klassifikator überzeugen lassen. – sietschie

0

Sie können versuchen, Ihre Trainingsdaten (Bilder von Autos und Motorräder) zu demo.nanonets.ai (kostenlos zu benutzen)

1) Laden Sie Ihre Trainingsdaten hier ein Modell bauen durch das Hochladen:

demo.nanonets.ai

2) abfragen, dann die API mit dem folgenden (Python-Code):

import requests 
import json 
import urllib 
model_name = "Enter-Your-Model-Name-Here" 
url = "http://blog.caranddriver.com/wp-content/uploads/2015/11/BMW-2-series.jpg" 
files = {'uploadfile': urllib.urlopen(url).read()} 
url = "http://demo.nanonets.ai/classify/?appId="+model_name 
r = requests.post(url, files=files) 
print json.loads(r.content) 

3) die Antwort wie folgt aussieht:

{ 
    "message": "Model trained", 
    "result": [ 
    { 
     "label": "Car", 
     "probability": 0.97 
    }, 
    { 
     "label": "Bike", 
     "probability": 0.03 
    } 
    ] 
} 
Verwandte Themen