Пример #1
0
    private IEnumerator RecognizeTextInImage()
    {
        yield return(new WaitForEndOfFrame());

        Texture2D image = new Texture2D(m_WebCamWidget.WebCamTexture.width, m_WebCamWidget.WebCamTexture.height, TextureFormat.RGB24, false);

        image.SetPixels32(m_WebCamWidget.WebCamTexture.GetPixels32());

        byte[] imageData = image.EncodeToPNG();

        m_VisualRecognition.RecognizeText(OnRecognizeText, imageData);
    }
Пример #2
0
    public void TakePhoto(WebCamTexture webCameraTexture, int flag)
    {
        // NOTE - you almost certainly have to do this here:
        //	yield return new WaitForEndOfFrame();

        // it's a rare case where the Unity doco is pretty clear,
        // http://docs.unity3d.com/ScriptReference/WaitForEndOfFrame.html
        // be sure to scroll down to the SECOND long example on that doco page

        Texture2D photo = new Texture2D(webCameraTexture.width, webCameraTexture.height);

        photo.SetPixels(webCameraTexture.GetPixels());
        photo.Apply();

        //Encode to a PNG
        byte[] bytes = photo.EncodeToPNG();
        //Write out the PNG. Of course you have to substitute your_path for something sensible
        File.WriteAllBytes(Application.persistentDataPath + "/photo.png", bytes);


        string imagesPath = Application.persistentDataPath + "/photo.png";

        string[] owners        = { "IBM", "me" };
        string[] classifierIDs = { "default", "" };

        if (flag == 1)
        {
            if (!m_VisualRecognition.RecognizeText(imagesPath, OnRecognizeText))
            {
                Debug.Log("missed text");
            }
        }
        else
        {
            if (!m_VisualRecognition.Classify(imagesPath, OnClassify, owners, classifierIDs, 0.5f))
            {
                Debug.Log("ExampleVisualRecognition" + "Classify image failed!");
            }
        }
    }
Пример #3
0
        public override IEnumerator RunTest()
        {
            //  test get classifiers
            Log.Debug("TestVisualRecognition", "Getting all classifiers!");
            m_VisualRecognition.GetClassifiers(OnGetClassifiers);
            while (!m_GetClassifiersTested)
            {
                yield return(null);
            }

            //  test find classifier
            Log.Debug("TestVisualRecognition", "Finding classifier {0}!", m_ClassifierName);
            m_VisualRecognition.FindClassifier(OnFindClassifier, m_ClassifierName);
            while (!m_FindClassifierTested)
            {
                yield return(null);
            }

            if (m_TrainClassifier)
            {
                //  test train classifier
                Log.Debug("TestVisualRecognition", "Training classifier!");
                string m_positiveExamplesPath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/visual-recognition-classifiers/giraffe_positive_examples.zip";
                string m_negativeExamplesPath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/visual-recognition-classifiers/negative_examples.zip";
                Dictionary <string, string> positiveExamples = new Dictionary <string, string>();
                positiveExamples.Add(m_ClassName_Giraffe, m_positiveExamplesPath);
                Test(m_VisualRecognition.TrainClassifier(OnTrainClassifier, m_ClassifierName, positiveExamples, m_negativeExamplesPath));
                while (!m_TrainClasifierTested)
                {
                    yield return(null);
                }
            }

            //  Wait until classifier is ready
            if (!m_IsClassifierReady)
            {
                Log.Debug("TestVisualRecognition", "Checking classifier {0} status!", m_ClassifierId);
                CheckClassifierStatus(OnCheckClassifierStatus);
                while (!m_IsClassifierReady)
                {
                    yield return(null);
                }
            }

            if (!string.IsNullOrEmpty(m_ClassifierId))
            {
                //  test get classifier
                Log.Debug("TestVisualRecognition", "Getting classifier {0}!", m_ClassifierId);
                m_VisualRecognition.GetClassifier(OnGetClassifier, m_ClassifierId);
                while (!m_GetClassifierTested)
                {
                    yield return(null);
                }

                //  Update classifier
                Log.Debug("TestVisualRecognition", "Updating classifier {0}", m_ClassifierId);
                string m_positiveUpdated = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/visual-recognition-classifiers/turtle_positive_examples.zip";
                Dictionary <string, string> positiveUpdatedExamples = new Dictionary <string, string>();
                positiveUpdatedExamples.Add(m_ClassName_Turtle, m_positiveUpdated);
                m_VisualRecognition.UpdateClassifier(OnUpdateClassifier, m_ClassifierId, m_ClassifierName, positiveUpdatedExamples);
                while (!m_UpdateClassifierTested)
                {
                    yield return(null);
                }

                //  Wait for updated classifier to be ready.
                Log.Debug("TestVisualRecognition", "Checking updated classifier {0} status!", m_ClassifierId);
                CheckClassifierStatus(OnCheckUpdatedClassifierStatus);
                while (!m_IsUpdatedClassifierReady)
                {
                    yield return(null);
                }

                string[] m_owners        = { "IBM", "me" };
                string[] m_classifierIds = { "default", m_ClassifierId };

                //  test classify image get
                Log.Debug("TestVisualRecognition", "Classifying image using GET!");
                m_VisualRecognition.Classify(OnClassifyGet, m_ImageURL, m_owners, m_classifierIds);
                while (!m_ClassifyGETTested)
                {
                    yield return(null);
                }

                //  test classify image post
                Log.Debug("TestVisualRecognition", "Classifying image using POST!");
                string m_classifyImagePath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/visual-recognition-classifiers/giraffe_to_classify.jpg";
                m_VisualRecognition.Classify(m_classifyImagePath, OnClassifyPost, m_owners, m_classifierIds);
                while (!m_ClassifyPOSTTested)
                {
                    yield return(null);
                }
            }

            //  test detect faces get
            Log.Debug("TestVisualRecognition", "Detecting face image using GET!");
            m_VisualRecognition.DetectFaces(OnDetectFacesGet, m_ImageFaceURL);
            while (!m_DetectFacesGETTested)
            {
                yield return(null);
            }

            //  test detect faces post
            Log.Debug("TestVisualRecognition", "Detecting face image using POST!");
            string m_detectFaceImagePath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/visual-recognition-classifiers/obama.jpg";

            m_VisualRecognition.DetectFaces(m_detectFaceImagePath, OnDetectFacesPost);
            while (!m_DetectFacesPOSTTested)
            {
                yield return(null);
            }

            //  test recognize text get
            Log.Debug("TestVisualRecognition", "Recognizing text image using GET!");
            m_VisualRecognition.RecognizeText(OnRecognizeTextGet, m_ImageTextURL);
            while (!m_RecognizeTextGETTested)
            {
                yield return(null);
            }

            //  test recognize text post
            Log.Debug("TestVisualRecognition", "Recognizing text image using POST!");
            string m_recognizeTextImagePath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/visual-recognition-classifiers/from_platos_apology.png";

            m_VisualRecognition.RecognizeText(m_recognizeTextImagePath, OnRecognizeTextPost);
            while (!m_RecognizeTextPOSTTested)
            {
                yield return(null);
            }

            //  test delete classifier
            Log.Debug("TestVisualRecognition", "Deleting classifier {0}!", m_ClassifierId);
            m_VisualRecognition.DeleteClassifier(OnDeleteClassifier, m_ClassifierId);
            while (!m_DeleteClassifierTested)
            {
                yield return(null);
            }

            //  test list collections
            Log.Debug("TestVisualRecognition", "Attempting to list collections!");
            m_VisualRecognition.GetCollections(OnGetCollections);
            while (!m_ListCollectionsTested)
            {
                yield return(null);
            }

            //  test create collection
            Log.Debug("TestVisualRecognition", "Attempting to create collection!");
            m_VisualRecognition.CreateCollection(OnCreateCollection, "unity-integration-test-collection");
            while (!m_CreateCollectionTested)
            {
                yield return(null);
            }

            //  test retrive collection details
            Log.Debug("TestVisualRecognition", "Attempting to retrieve collection details!");
            m_VisualRecognition.GetCollection(OnGetCollection, m_CreatedCollectionID);
            while (!m_RetrieveCollectionDetailsTested)
            {
                yield return(null);
            }

            //  test add images to collection
            Log.Debug("TestVisualRecognition", "Attempting to add images to collection!");
            string m_collectionImagePath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/visual-recognition-classifiers/giraffe_to_classify.jpg";
            Dictionary <string, string> imageMetadata = new Dictionary <string, string>();

            imageMetadata.Add("key1", "value1");
            imageMetadata.Add("key2", "value2");
            imageMetadata.Add("key3", "value3");
            m_VisualRecognition.AddCollectionImage(OnAddImageToCollection, m_CreatedCollectionID, m_collectionImagePath, imageMetadata);
            while (!m_AddImagesToCollectionTested)
            {
                yield return(null);
            }

            //  test list images
            Log.Debug("TestVisualRecognition", "Attempting to list images!");
            m_VisualRecognition.GetCollectionImages(OnGetCollectionImages, m_CreatedCollectionID);
            while (!m_ListImagesTested)
            {
                yield return(null);
            }

            //  test list image details
            Log.Debug("TestVisualRecognition", "Attempting to list image details!");
            m_VisualRecognition.GetImage(OnGetImage, m_CreatedCollectionID, m_CreatedCollectionImage);
            while (!m_ListImageDetailsTested)
            {
                yield return(null);
            }

            //  test list image metadata
            Log.Debug("TestVisualRecognition", "Attempting to list image metadata!");
            m_VisualRecognition.GetMetadata(OnGetMetadata, m_CreatedCollectionID, m_CreatedCollectionImage);
            while (!m_ListImageMetadataTested)
            {
                yield return(null);
            }

            //  test find similar
            Log.Debug("TestVisualRecognition", "Attempting to find similar!");
            m_VisualRecognition.FindSimilar(OnFindSimilar, m_CreatedCollectionID, m_collectionImagePath);
            while (!m_FindSimilarTested)
            {
                yield return(null);
            }

            //  test delete image metadata
            Log.Debug("TestVisualRecognition", "Attempting to delete metadata!");
            m_VisualRecognition.DeleteCollectionImageMetadata(OnDeleteMetadata, m_CreatedCollectionID, m_CreatedCollectionImage);
            while (!m_DeleteImageMetadataTested)
            {
                yield return(null);
            }

            //  test delete image from collection
            Log.Debug("TestVisualRecognition", "Attempting to delete image from collection!");
            m_VisualRecognition.DeleteCollectionImage(OnDeleteCollectionImage, m_CreatedCollectionID, m_CreatedCollectionImage);
            while (!m_DeleteImageFromCollectionTested)
            {
                yield return(null);
            }

            //  test delete collection
            Log.Debug("TestVisualRecognition", "Attempting to delete collection!");
            m_VisualRecognition.DeleteCollection(OnDeleteCollection, m_CreatedCollectionID);
            while (!m_DeleteCollectionTested)
            {
                yield return(null);
            }
            yield break;
        }
Пример #4
0
        private string m_ImageTextURL = "http://i.stack.imgur.com/ZS6nH.png";                                                        //  image with text

        public override IEnumerator RunTest()
        {
            //  test get classifiers
            Log.Debug("TestVisualRecognition", "Getting all classifiers!");
            m_VisualRecognition.GetClassifiers(OnGetClassifiers);
            while (!m_GetClassifiersTested)
            {
                yield return(null);
            }

            //  test find classifier
            Log.Debug("TestVisualRecognition", "Finding classifier {0}!", m_ClassifierName);
            m_VisualRecognition.FindClassifier(m_ClassifierName, OnFindClassifier);
            while (!m_FindClassifierTested)
            {
                yield return(null);
            }

            if (m_TrainClassifier)
            {
                //  test train classifier
                Log.Debug("TestVisualRecognition", "Training classifier!");
                string m_positiveExamplesPath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/visual-recognition-classifiers/giraffe_positive_examples.zip";
                string m_negativeExamplesPath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/visual-recognition-classifiers/negative_examples.zip";
                Test(m_VisualRecognition.TrainClassifier(m_ClassifierName, "giraffe", m_positiveExamplesPath, m_negativeExamplesPath, OnTrainClassifier));
                while (!m_TrainClasifierTested)
                {
                    yield return(null);
                }

                Log.Debug("TestVisualRecognition", "Checking classifier {0} status!", m_ClassifierId);
                CheckClassifierStatus(OnCheckClassifierStatus);
                while (!m_IsClassifierReady)
                {
                    yield return(null);
                }
            }

            if (!string.IsNullOrEmpty(m_ClassifierId))
            {
                //  test get classifier
                Log.Debug("TestVisualRecognition", "Getting classifier {0}!", m_ClassifierId);
                m_VisualRecognition.GetClassifier(m_ClassifierId, OnGetClassifier);
                while (!m_GetClassifierTested)
                {
                    yield return(null);
                }

                string[] m_owners        = { "IBM", "me" };
                string[] m_classifierIds = { "default", m_ClassifierId };

                //  test classify image get
                Log.Debug("TestVisualRecognition", "Classifying image using GET!");
                m_VisualRecognition.Classify(m_ImageURL, OnClassifyGet, m_owners, m_classifierIds);
                while (!m_ClassifyGETTested)
                {
                    yield return(null);
                }

                //  test classify image post
                Log.Debug("TestVisualRecognition", "Classifying image using POST!");
                string m_classifyImagePath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/visual-recognition-classifiers/giraffe_to_classify.jpg";
                m_VisualRecognition.Classify(OnClassifyPost, m_classifyImagePath, m_owners, m_classifierIds);
                while (!m_ClassifyPOSTTested)
                {
                    yield return(null);
                }
            }

            //  test detect faces get
            Log.Debug("TestVisualRecognition", "Detecting face image using GET!");
            m_VisualRecognition.DetectFaces(m_ImageFaceURL, OnDetectFacesGet);
            while (!m_DetectFacesGETTested)
            {
                yield return(null);
            }

            //  test detect faces post
            Log.Debug("TestVisualRecognition", "Detecting face image using POST!");
            string m_detectFaceImagePath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/visual-recognition-classifiers/obama.jpg";

            m_VisualRecognition.DetectFaces(OnDetectFacesPost, m_detectFaceImagePath);
            while (!m_DetectFacesPOSTTested)
            {
                yield return(null);
            }

            //  test recognize text get
            Log.Debug("TestVisualRecognition", "Recognizing text image using GET!");
            m_VisualRecognition.RecognizeText(m_ImageTextURL, OnRecognizeTextGet);
            while (!m_RecognizeTextGETTested)
            {
                yield return(null);
            }

            //  test recognize text post
            Log.Debug("TestVisualRecognition", "Recognizing text image using POST!");
            string m_recognizeTextImagePath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/visual-recognition-classifiers/from_platos_apology.png";

            m_VisualRecognition.RecognizeText(OnRecognizeTextPost, m_recognizeTextImagePath);
            while (!m_RecognizeTextPOSTTested)
            {
                yield return(null);
            }

            //  test delete classifier
            Log.Debug("TestVisualRecognition", "Deleting classifier {0}!", m_ClassifierId);
            m_VisualRecognition.DeleteClassifier(m_ClassifierId, OnDeleteClassifier);
            while (!m_DeleteTested)
            {
                yield return(null);
            }

            yield break;
        }
    void Start()
    {
        LogSystem.InstallDefaultReactors();

//          Get all classifiers
        if (!m_VisualRecognition.GetClassifiers(OnGetClassifiers))
        {
            Log.Debug("ExampleVisualRecognition", "Getting classifiers failed!");
        }

//          Find classifier by name
        m_VisualRecognition.FindClassifier(m_classifierName, OnFindClassifier);

//          Find classifier by ID
        if (!m_VisualRecognition.GetClassifier(m_classifierID, OnGetClassifier))
        {
            Log.Debug("ExampleVisualRecognition", "Getting classifier failed!");
        }

//          Delete classifier by ID
        if (!m_VisualRecognition.DeleteClassifier(m_classifierToDelete, OnDeleteClassifier))
        {
            Log.Debug("ExampleVisualRecognition", "Deleting classifier failed!");
        }

//          Train classifier
        string m_positiveExamplesPath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/taj_positive_examples.zip";
        string m_negativeExamplesPath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/negative_examples.zip";

        if (!m_VisualRecognition.TrainClassifier("unity-test-classifier5", "taj", m_positiveExamplesPath, m_negativeExamplesPath, OnTrainClassifier))
        {
            Log.Debug("ExampleVisualRecognition", "Train classifier failed!");
        }

//          Classify get
        if (!m_VisualRecognition.Classify(m_imageURL, OnClassify))
        {
            Log.Debug("ExampleVisualRecognition", "Classify image failed!");
        }

//          Classify post image
        string m_imagesPath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/obama.jpg";

        string[] m_owners        = { "IBM", "me" };
        string[] m_classifierIDs = { "default" };
        if (!m_VisualRecognition.Classify(OnClassify, m_imagesPath, m_owners, m_classifierIDs, 0.5f))
        {
            Log.Debug("ExampleVisualRecognition", "Classify image failed!");
        }


//          Detect faces get
        if (!m_VisualRecognition.DetectFaces(m_imageURL, OnDetectFaces))
        {
            Log.Debug("ExampleVisualRecogntiion", "Detect faces failed!");
        }

//          Detect faces post image
        string m_faceExamplePath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/obama.jpg";

        if (!m_VisualRecognition.DetectFaces(OnDetectFaces, m_faceExamplePath))
        {
            Log.Debug("ExampleVisualRecognition", "Detect faces failed!");
        }



//          Recognize text get
        if (!m_VisualRecognition.RecognizeText(m_imageTextURL, OnRecognizeText))
        {
            Log.Debug("ExampleVisualRecognition", "Recognize text failed!");
        }

//          Recognize text post image
        string m_textExamplePath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/from_platos_apology.png";

        if (!m_VisualRecognition.RecognizeText(OnRecognizeText, m_textExamplePath))
        {
            Log.Debug("ExampleVisualRecognition", "Recognize text failed!");
        }
    }