2017-01-17 6 views
0

私はWatson VRを使いこなして、鍛えようとしていて、zipファイルの1つに肯定的な例として追加された同じ画像に対して簡単なカスタム分類子を実行します。全く同じ画像を使った空の分類


分類器を作成するために私のコード:

ClassifierOptions cOptions = new ClassifierOptions.Builder() 
    .classifierName("Mena") 
    .addClass("Mena", new File("/the/path/to/my_face.zip")) 
    .addClass("Mena2", new File("/the/path/to/my_face_new.zip")) 
    .build(); 

VisualClassifier classifier = VR_SERVICE.createClassifier(cOptions).execute(); 

.zipファイルは私の顔の2枚の異なる画像(.jpg)が含まれて - 1それぞれ。

イメージファイル名には特殊文字は含まれません。


次のように私は、その後の分類サービスを実行していない:

残念ながら
ClassifyImagesOptions ciOptions = new ClassifyImagesOptions.Builder() 
    .classifierIds(classifier.getId()) 
    .images(new File("/the/path/to/my_face.jpg")) // same file as one of the images 
    // uploaded previously in zip 
    .threshold(0d) // tried specifying explicitly but changes nothing 
    .build(); 

VisualClassification result = VR_SERVICE.classify(ciOptions).execute(); 

、私は結果をプリントアウトするとき、何の喜びを:

私が使用している考慮
{ 
    "images_processed": 1, 
    "images": [ 
    { 
     "classifiers": [], 
     "image": "my_face.jpg" 
    } 
    ] 
} 

分類子に追加された写真のうちの1つのものとまったく同じコピー、私は何か完全に間違っているという印象を受けています。部分的に"classifiers": []部分を与えられている。

任意のポインタ?

答えて

1

.zipファイルには、それぞれ顔の2つの異なる画像(.jpg)が含まれています。

トレーニングを受ける場合、例を含むzipファイルには、それぞれ10個以上の固有の例が必要です。 (一意性は、各画像ファイルのコンテンツのハッシュコードによって決まります)

訓練リクエストから返された結果を確認しましたか?私はそれが最小の数の例について400のコードとメッセージを返したと思われる。

また、クラシファイアのトレーニングプロセスは、クラス1を残りのものと異なるものにすることを学習しているため、クラシファイア内のクラスは相互に排他的であることを意味します。たとえば、「破損したウィンドウ」と「正常なウィンドウ」。このシステムは、顔認識にも最適化されていない(一般的な場面向けである)が、複数のクラスで同じ人物の写真を提供すると、2つの例を区別するランダムな差異を見つけるために、衣服や照明の状態など)。

+0

ありがとう、それは非常に役に立ちます。関連するドキュメントへのリンクを付けて、約10個の固有の例を具体的に説明してもらえますか?私自身がそれを見つけるのは恐れている。トレーニングのリクエストは失敗しませんでした(少なくともスタックトレースはありません)が、回答の詳細を見落としている可能性があります。 – Mena

+0

これは、APIリファレンスの分類子の作成に関するセクションhttps://www.ibm.com/watson/developercloud/visual-recognition/api/v3/に記載されています。ここでは「サイズ制限」の見出しの下にhttp: //www.ibm.com/watson/developercloud/doc/visual-recognition/customizing.shtml#structure –

+0

APIと対話するときは、各呼び出しで返される応答コードをチェックして、コードで成功したかどうかを確認することが常に重要です200かどうかエラーは、スタックトレースではなくコードで伝達され、回復可能である可能性があります。 –

関連する問題