1

独自の分類子をトレーニング/作成しようとしています。このコードをメインカメラに添付しましたが、コンソールからの応答もエラーもありませんでした。それとも私のやり方が間違っているのでしょうか?

public class VisualRecog : MonoBehaviour{
private VisualRecognition m_VisualRecognition = new VisualRecognition();

    void Start()
    {
        string m_positiveExamplesPath = Application.dataPath + "/testData/cpu_positive_examples.zip";
        string m_negativeExamplesPath = Application.dataPath + "/testData/negative_examples.zip";

        Dictionary<string, string> positiveExamples = new Dictionary<string, string>();
        positiveExamples.Add("cpu", m_positiveExamplesPath);
        if (!m_VisualRecognition.TrainClassifier(OnTrainClassifier, "compClassifier", positiveExamples, m_negativeExamplesPath))
            Log.Debug("ExampleVisualRecognition", "Train classifier failed!");
    }

    private void OnTrainClassifier(GetClassifiersPerClassifierVerbose classifier, string data)
    {

        if (classifier != null)
        {
            Log.Debug("ExampleVisualRecognition", "Classifier is training! " + classifier);
        }
        else
        {
            Log.Debug("ExampleVisualRecognition", "Failed to train classifier!");
        }
    }
}

ちなみにUnity SDKのリンクはこちら。ありがとう!

4

2 に答える 2

2

m_positiveExamplesPathとが有効なパスでない場合m_negativeExamplesPath 、次のような例外が発生します。

DirectoryNotFoundException: パスの一部が見つかりませんでした

資格情報を設定していない場合は、次のエラーが表示されます。

API キーが見つかりませんでした。

この 2 つの問題が解消されます。

10このコードを実行すると、IBM サーバーからの応答を得るのに約数秒かかります。返信が来るまで、少なくとも15数秒お待ちください。実際の待機時間は、cpu_positive_examples.zipおよびnegative_examples.zipファイルの大きさによって異なります。場合によっては、数分かかることがあります。

コンソールからの応答もエラーもありませんでした。

問題はLog関数からです。よく見ると、IBM がLog.Debugの代わりに使用していることがわかりますDebug.Log。IBMは名前空間にLog.Debug由来しIBM.Watson.DeveloperCloud.Logging、エディタ コンソール タブには表示されません。これがバグなのか機能なのかはわかりませんが、すべてLog.Debugをに置き換えるとDebug.Log問題が解決するはずです。

10秒以内に以下のコードで返信がありました(使用済みDebug.Log):

private VisualRecognition m_VisualRecognition = new VisualRecognition();

void Start()
{
    string positiveExamplesPath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/visual-recognition-classifiers/giraffe_positive_examples.zip";
    string negativeExamplesPath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/visual-recognition-classifiers/negative_examples.zip";

    Dictionary<string, string> positiveExamples = new Dictionary<string, string>();
    positiveExamples.Add("giraffe", positiveExamplesPath);

    if (!m_VisualRecognition.TrainClassifier(OnTrainClassifier, "unity-test-classifier-example", positiveExamples, negativeExamplesPath))
        Debug.Log("Train classifier failed!");
}

private void OnTrainClassifier(GetClassifiersPerClassifierVerbose classifier, string data)
{

    if (classifier != null)
    {
        Debug.Log("Classifier is training! " + classifier);
    }
    else
    {
        Debug.Log("Failed to train classifier!" + data);
    }
}
于 2017-01-10T01:28:47.420 に答える