Ejemplo n.º 1
0
        public IEnumerator TestAnalyze()
        {
            Log.Debug("VisualRecognitionServiceV4IntegrationTests", "Attempting to Analyze...");
            AnalyzeResponse         analyzeResponse = null;
            List <FileWithMetadata> imagesFile      = new List <FileWithMetadata>();

            using (FileStream fs1 = File.OpenRead(giraffeImageFilepath), fs2 = File.OpenRead(turtleImageFilepath))
            {
                using (MemoryStream ms1 = new MemoryStream(), ms2 = new MemoryStream())
                {
                    fs1.CopyTo(ms1);
                    fs2.CopyTo(ms2);
                    FileWithMetadata fileWithMetadata = new FileWithMetadata()
                    {
                        Data        = ms1,
                        ContentType = "image/jpeg",
                        Filename    = Path.GetFileName(giraffeImageFilepath)
                    };
                    imagesFile.Add(fileWithMetadata);

                    FileWithMetadata fileWithMetadata2 = new FileWithMetadata()
                    {
                        Data        = ms2,
                        ContentType = "image/jpeg",
                        Filename    = Path.GetFileName(turtleImageFilepath)
                    };
                    imagesFile.Add(fileWithMetadata2);

                    service.Analyze(
                        callback: (DetailedResponse <AnalyzeResponse> response, IBMError error) =>
                    {
                        Log.Debug("VisualRecognitionServiceV4IntegrationTests", "Analyze result: {0}", response.Response);
                        analyzeResponse = response.Result;
                        Assert.IsNotNull(analyzeResponse);
                        Assert.IsNotNull(analyzeResponse.Images);
                        Assert.IsTrue(analyzeResponse.Images.Count > 0);
                        Assert.IsNotNull(analyzeResponse.Images[0].Objects.Collections);
                        Assert.IsTrue(analyzeResponse.Images[0].Objects.Collections.Count > 0);
                        Assert.IsNull(error);
                    },
                        collectionIds: new List <string>()
                    {
                        giraffeCollectionId
                    },
                        features: new List <string>()
                    {
                        "objects"
                    },
                        imagesFile: imagesFile
                        );

                    while (analyzeResponse == null)
                    {
                        yield return(null);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public Task <CephFileId> Save(FileWithMetadata fileWithMetadata)
        {
            var rawGuid = Guid.NewGuid();
            var fileId  = new CephFileId(rawGuid);

            _files.Add(fileId, fileWithMetadata);

            return(Task.FromResult(fileId));
        }
Ejemplo n.º 3
0
        public IEnumerator TestAddImage()
        {
            Log.Debug("VisualRecognitionServiceV4IntegrationTests", "Attempting to Add Images...");
            ImageDetailsList        imageDetailsList = null;
            List <FileWithMetadata> imagesFile       = new List <FileWithMetadata>();

            using (FileStream fs1 = File.OpenRead(giraffeImageFilepath), fs2 = File.OpenRead(turtleImageFilepath))
            {
                using (MemoryStream ms1 = new MemoryStream(), ms2 = new MemoryStream())
                {
                    fs1.CopyTo(ms1);
                    fs2.CopyTo(ms2);
                    FileWithMetadata fileWithMetadata = new FileWithMetadata()
                    {
                        Data        = ms1,
                        ContentType = "image/jpeg",
                        Filename    = Path.GetFileName(giraffeImageFilepath)
                    };
                    imagesFile.Add(fileWithMetadata);

                    FileWithMetadata fileWithMetadata2 = new FileWithMetadata()
                    {
                        Data        = ms2,
                        ContentType = "image/jpeg",
                        Filename    = Path.GetFileName(turtleImageFilepath)
                    };
                    imagesFile.Add(fileWithMetadata2);

                    service.AddImages(
                        callback: (DetailedResponse <ImageDetailsList> response, IBMError error) =>
                    {
                        Log.Debug("VisualRecognitionServiceV4IntegrationTests", "AddImages result: {0}", response.Response);
                        imageDetailsList = response.Result;
                        Assert.IsNotNull(imageDetailsList.Images);
                        Assert.IsTrue(imageDetailsList.Images.Count > 0);
                        Assert.IsNull(error);
                        imageId = imageDetailsList.Images[0].ImageId;
                    },
                        collectionId: collectionId,
                        imagesFile: imagesFile
                        );

                    while (imageDetailsList == null)
                    {
                        yield return(null);
                    }
                }
            }
        }
        public void Analyze_Success()
        {
            DetailedResponse <AnalyzeResponse> analyzeResult = null;
            List <FileWithMetadata>            imagesFile    = new List <FileWithMetadata>();

            using (FileStream fs = File.OpenRead(localGiraffeFilePath), fs2 = File.OpenRead(localTurtleFilePath))
            {
                using (MemoryStream ms = new MemoryStream(), ms2 = new MemoryStream())
                {
                    fs.CopyTo(ms);
                    fs2.CopyTo(ms2);
                    FileWithMetadata fileWithMetadata = new FileWithMetadata()
                    {
                        Data        = ms,
                        ContentType = "image/jpeg",
                        Filename    = Path.GetFileName(localGiraffeFilePath)
                    };
                    imagesFile.Add(fileWithMetadata);

                    FileWithMetadata fileWithMetadata2 = new FileWithMetadata()
                    {
                        Data        = ms2,
                        ContentType = "image/jpeg",
                        Filename    = Path.GetFileName(localTurtleFilePath)
                    };
                    imagesFile.Add(fileWithMetadata2);

                    service.WithHeader("X-Watson-Test", "1");
                    analyzeResult = service.Analyze(
                        collectionIds: new List <string>()
                    {
                        collectionId
                    },
                        features: new List <string>()
                    {
                        "objects"
                    },
                        imagesFile: imagesFile);
                }
            }

            Assert.IsNotNull(analyzeResult.Result);
            Assert.IsTrue(analyzeResult.Result.Images[0].Objects.Collections[0].Objects[0]._Object == giraffeClassname);
            Assert.IsTrue(analyzeResult.Result.Images.Count == 2);
            Assert.IsTrue(analyzeResult.Result.Images[0].Source.Filename == Path.GetFileName(localGiraffeFilePath));
            Assert.IsTrue(analyzeResult.Result.Images[1].Source.Filename == Path.GetFileName(localTurtleFilePath));
        }
Ejemplo n.º 5
0
        public void Analyze()
        {
            IamAuthenticator authenticator = new IamAuthenticator(
                apikey: "{apikey}"
                );

            VisualRecognitionService service = new VisualRecognitionService("2019-02-11", authenticator);

            DetailedResponse <AnalyzeResponse> result     = null;
            List <FileWithMetadata>            imagesFile = new List <FileWithMetadata>();

            using (FileStream hondaFilestream = File.OpenRead("./honda.jpg"), diceFilestream = File.OpenRead("./dice.png"))
            {
                using (MemoryStream hondaMemoryStream = new MemoryStream(), diceMemoryStream = new MemoryStream())
                {
                    hondaFilestream.CopyTo(hondaMemoryStream);
                    diceFilestream.CopyTo(diceMemoryStream);
                    FileWithMetadata hondaFile = new FileWithMetadata()
                    {
                        Data        = hondaMemoryStream,
                        ContentType = "image/jpeg",
                        Filename    = "honda.jpg"
                    };
                    FileWithMetadata diceFile = new FileWithMetadata()
                    {
                        Data        = diceMemoryStream,
                        ContentType = "image/png",
                        Filename    = "dice.png"
                    };
                    imagesFile.Add(hondaFile);
                    imagesFile.Add(diceFile);

                    result = service.Analyze(
                        collectionIds: new List <string>()
                    {
                        "{collectionId}"
                    },
                        features: new List <string>()
                    {
                        "objects"
                    },
                        imagesFile: imagesFile);

                    Console.WriteLine(result.Response);
                }
            }
        }
Ejemplo n.º 6
0
        public void TestFileWithMetadata()
        {
            string fileText        = "This is a test";
            string fileName        = "testFile.txt";
            string fileContentType = "text/plain";

            using (FileStream fs = File.Create(fileName))
            {
                byte[] fileData = Encoding.UTF8.GetBytes(fileText);
                fs.Write(fileData, 0, fileData.Length);
            }

            FileWithMetadata fileWithMetadata = new FileWithMetadata();

            using (FileStream fs = File.OpenRead(fileName))
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    fs.CopyTo(ms);
                    fileWithMetadata.Data        = ms;
                    fileWithMetadata.ContentType = fileContentType;
                    fileWithMetadata.Filename    = fileName;
                }
            }

            string text = Encoding.UTF8.GetString(fileWithMetadata.Data.ToArray());

            Assert.IsTrue(fileText == text);
            Assert.IsTrue(fileWithMetadata.Filename == fileName);
            Assert.IsTrue(fileWithMetadata.ContentType == fileContentType);

            if (File.Exists(fileName))
            {
                File.Delete(fileName);
            }
        }
        public void Objects_Success()
        {
            string testCollectionName        = "testCollection";
            string testCollectionDescription = ".NET test collection";

            service.WithHeader("X-Watson-Test", "1");
            var listCollectionResult = service.ListCollections();

            service.WithHeader("X-Watson-Test", "1");
            var createCollectionResult = service.CreateCollection(
                name: Utility.ConvertToUtf8(testCollectionName),
                description: Utility.ConvertToUtf8(testCollectionDescription));

            var createdCollectionId = createCollectionResult.Result.CollectionId;

            DetailedResponse <ImageDetailsList> addImagesResult = null;
            List <FileWithMetadata>             imagesFile      = new List <FileWithMetadata>();

            using (FileStream fs = File.OpenRead(localGiraffePositiveExamplesFilePath))
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    fs.CopyTo(ms);

                    FileWithMetadata fileWithMetadata = new FileWithMetadata()
                    {
                        Data        = ms,
                        ContentType = "application/zip",
                        Filename    = Path.GetFileName(localGiraffePositiveExamplesFilePath)
                    };
                    imagesFile.Add(fileWithMetadata);

                    service.WithHeader("X-Watson-Test", "1");
                    addImagesResult = service.AddImages(
                        collectionId: createdCollectionId,
                        imagesFile: imagesFile);
                }
            }

            var imageId = addImagesResult.Result.Images[0].ImageId;

            var objectName                    = giraffeClassname;
            var updatedObjectName             = "african giraffe";
            List <TrainingDataObject> objects = new List <TrainingDataObject>()
            {
                new TrainingDataObject()
                {
                    _Object  = objectName,
                    Location = new Location()
                    {
                        Left   = 270,
                        Top    = 64,
                        Width  = 755,
                        Height = 784
                    }
                }
            };

            service.WithHeader("X-Watson-Test", "1");
            var addTrainingDataResult = service.AddImageTrainingData(
                collectionId: createdCollectionId,
                imageId: imageId,
                objects: objects
                );

            service.WithHeader("X-Watson-Test", "1");
            var listObjectMetadataResult = service.ListObjectMetadata(
                collectionId: createdCollectionId
                );

            service.WithHeader("X-Watson-Test", "1");
            var updateObjectMetadataResult = service.UpdateObjectMetadata(
                collectionId: createdCollectionId,
                _object: objectName,
                newObject: updatedObjectName
                );

            service.WithHeader("X-Watson-Test", "1");
            var getObjectMetadataResult = service.GetObjectMetadata(
                collectionId: createdCollectionId,
                _object: updatedObjectName
                );

            service.WithHeader("X-Watson-Test", "1");
            var deleteObjectResult = service.DeleteObject(
                collectionId: createdCollectionId,
                _object: updatedObjectName
                );

            service.WithHeader("X-Watson-Test", "1");
            var deleteCollectionResult = service.DeleteCollection(
                collectionId: createdCollectionId);

            Assert.IsTrue(deleteObjectResult.StatusCode == 200);
            Assert.IsTrue(updateObjectMetadataResult.Result._Object == updatedObjectName);
            Assert.IsTrue(listObjectMetadataResult.Result.Objects[0]._Object == objectName);
            Assert.IsTrue(listObjectMetadataResult.Result.ObjectCount > 0);
            Assert.IsNotNull(listObjectMetadataResult.Result);
            Assert.IsTrue(deleteCollectionResult.StatusCode == 200);
            Assert.IsNotNull(createCollectionResult.Result);
            Assert.IsTrue(!string.IsNullOrEmpty(createdCollectionId));
            Assert.IsTrue(createCollectionResult.Result.Name == testCollectionName);
        }
        public void Images_Success()
        {
            string testCollectionName        = "testCollection";
            string testCollectionDescription = ".NET test collection";

            service.WithHeader("X-Watson-Test", "1");
            var createCollectionResult = service.CreateCollection(
                name: Utility.ConvertToUtf8(testCollectionName),
                description: Utility.ConvertToUtf8(testCollectionDescription));

            var createdCollectionId = createCollectionResult.Result.CollectionId;

            DetailedResponse <ImageDetailsList> addImagesResult = null;
            List <FileWithMetadata>             imagesFile      = new List <FileWithMetadata>();

            using (FileStream fs = File.OpenRead(localGiraffePositiveExamplesFilePath))
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    fs.CopyTo(ms);

                    FileWithMetadata fileWithMetadata = new FileWithMetadata()
                    {
                        Data        = ms,
                        ContentType = "application/zip",
                        Filename    = Path.GetFileName(localGiraffePositiveExamplesFilePath)
                    };
                    imagesFile.Add(fileWithMetadata);

                    service.WithHeader("X-Watson-Test", "1");
                    addImagesResult = service.AddImages(
                        collectionId: createdCollectionId,
                        imagesFile: imagesFile);
                }
            }
            var imageId = addImagesResult.Result.Images[0].ImageId;

            service.WithHeader("X-Watson-Test", "1");
            var addImageViaUrlResult = service.AddImages(
                collectionId: createdCollectionId,
                imageUrl: new List <string>()
            {
                dogImageUrl, catImageUrl
            });

            service.WithHeader("X-Watson-Test", "1");
            var listImageResult = service.ListImages(
                collectionId: createdCollectionId);

            service.WithHeader("X-Watson-Test", "1");
            var getImageResult = service.GetImageDetails(
                collectionId: createdCollectionId,
                imageId: imageId);

            service.WithHeader("X-Watson-Test", "1");
            var getJpgImageResult = service.GetJpegImage(
                collectionId: createdCollectionId,
                imageId: imageId,
                size: "thumbnail"
                );

            //  Save file
            using (FileStream fs = File.Create("giraffe.jpg"))
            {
                getJpgImageResult.Result.WriteTo(fs);
                fs.Close();
                getJpgImageResult.Result.Close();
            }

            service.WithHeader("X-Watson-Test", "1");
            var deleteImageResult = service.DeleteImage(
                collectionId: createdCollectionId,
                imageId: imageId);

            service.WithHeader("X-Watson-Test", "1");
            var deleteCollectionResult = service.DeleteCollection(
                collectionId: createdCollectionId);

            Assert.IsTrue(deleteImageResult.StatusCode == 200);
            Assert.IsNotNull(getJpgImageResult.Result);
            Assert.IsNotNull(getImageResult.Result);
            Assert.IsTrue(getImageResult.Result.ImageId == imageId);
            Assert.IsNotNull(listImageResult.Result);
            Assert.IsNotNull(listImageResult.Result.Images);
            Assert.IsTrue(listImageResult.Result.Images.Count > 0);
            Assert.IsNotNull(addImagesResult.Result);
            Assert.IsNotNull(addImagesResult.Result.Images);
            Assert.IsTrue(addImagesResult.Result.Images.Count > 0);
        }
        public void Training_Success()
        {
            string testCollectionName        = "testCollection";
            string testCollectionDescription = ".NET test collection";

            var createCollectionResult = service.CreateCollection(
                name: Utility.ConvertToUtf8(testCollectionName),
                description: Utility.ConvertToUtf8(testCollectionDescription));

            var collectionId = createCollectionResult.Result.CollectionId;

            DetailedResponse <ImageDetailsList> addImagesResult = null;
            List <FileWithMetadata>             imagesFile      = new List <FileWithMetadata>();

            using (FileStream fs = File.OpenRead(localGiraffePositiveExamplesFilePath))
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    fs.CopyTo(ms);

                    FileWithMetadata fileWithMetadata = new FileWithMetadata()
                    {
                        Data        = ms,
                        ContentType = "application/zip",
                        Filename    = Path.GetFileName(localGiraffePositiveExamplesFilePath)
                    };
                    imagesFile.Add(fileWithMetadata);

                    addImagesResult = service.AddImages(
                        collectionId: collectionId,
                        imagesFile: imagesFile);
                }
            }

            var imageId = addImagesResult.Result.Images[0].ImageId;

            var objectName = giraffeClassname;
            List <TrainingDataObject> objects = new List <TrainingDataObject>()
            {
                new TrainingDataObject()
                {
                    _Object  = objectName,
                    Location = new Location()
                    {
                        Left   = 270,
                        Top    = 64,
                        Width  = 755,
                        Height = 784
                    }
                }
            };

            var addTrainingDataResult = service.AddImageTrainingData(
                collectionId: collectionId,
                imageId: imageId,
                objects: objects);

            var trainCollectionResult = service.Train(
                collectionId: collectionId);

            var deleteCollectionResult = service.DeleteCollection(
                collectionId: collectionId);

            Assert.IsTrue(trainCollectionResult.StatusCode == 202);
            Assert.IsNotNull(trainCollectionResult.Result);
            Assert.IsTrue(trainCollectionResult.Result.ImageCount > 0);
            Assert.IsTrue(trainCollectionResult.Result.TrainingStatus.Objects.InProgress == true);
            Assert.IsNotNull(addTrainingDataResult.Result);
            Assert.IsNotNull(addTrainingDataResult.Result.Objects);
            Assert.IsTrue(addTrainingDataResult.Result.Objects.Count > 0);
            Assert.IsTrue(addTrainingDataResult.Result.Objects[0]._Object == objectName);
        }