Пример #1
0
        public static void Index()
        {
            _indexedImages = _imageDictionary.Where(x => File.ReadAllLines(_indexPath).Contains(x.Key)).ToDictionary(x => x.Key, x => x.Value);
            Console.WriteLine($"--Indexing Started {DateTime.Now}");
            // clear existing indexing.


            var task = _client.AddInputs(_indexedImages.Values.Take(128)).ExecuteAsync();

            task.Wait();
            Console.WriteLine($"--Indexing done for first 128 image, {DateTime.Now}, {task.Result.Status}");
            task = _client.AddInputs(_indexedImages.Values.TakeLast(_indexedImages.Values.Count - 128)).ExecuteAsync();
            task.Wait();
            Console.WriteLine($"--Indexing Finished {DateTime.Now}, {task.Result.Status}");
        }
Пример #2
0
        public async Task LearnFrames(string concept, IEnumerable <IFrame> frames)
        {
            var concepts = new Concept[] { new Concept(concept) };
            var images   = frames.Select(f => new ClarifaiFileImage(f.ToBytes(".jpg"), positiveConcepts: concepts));

            await client
            .ModifyModel(modelId, ModifyAction.Merge, concepts : concepts)
            .ExecuteAsync();

            await client.AddInputs(images).ExecuteAsync();

            await client.TrainModel <Concept>(modelId).ExecuteAsync();
        }
Пример #3
0
        public async Task AddInputsResponseAndResponseShouldBeCorrect()
        {
            var httpClient = new FkClarifaiHttpClient(
                postResponse: @"
{
    ""status"": {
        ""code"": 10000,
        ""description"": ""Ok""
    },
    ""inputs"": [{
        ""id"": ""@inputID1"",
        ""data"": {
            ""image"": {
                ""url"": ""@imageURL1""
            },
            ""concepts"": [
                {
                  ""id"": ""@positiveConcept"",
                  ""value"": 1
                },
                {
                  ""id"": ""@negativeConcept"",
                  ""value"": 0
                }
            ]
        },
        ""created_at"": ""2017-10-13T20:53:00.253139Z"",
        ""modified_at"": ""2017-10-13T20:53:00.868659782Z"",
        ""status"": {
            ""code"": 30200,
            ""description"": ""Input image modification success""
        }
    },
    {
        ""id"": ""@inputID2"",
        ""data"": {
            ""image"": {
                ""url"": ""@imageURL2""
            },
            ""geo"": {
                ""geo_point"": {
                    ""longitude"": 55,
                    ""latitude"": 66
                }
            }
        },
        ""created_at"": ""2017-10-13T20:53:00.253139Z"",
        ""modified_at"": ""2017-10-13T20:53:00.868659782Z"",
        ""status"": {
            ""code"": 30200,
            ""description"": ""Input image modification success""
        }
    }]
}
");
            var client = new ClarifaiClient(httpClient);
            ClarifaiResponse <List <IClarifaiInput> > response = await client.AddInputs(
                new  IClarifaiInput[]
            {
                new ClarifaiURLImage("@imageURL1", "@inputID1",
                                     positiveConcepts: new List <Concept> {
                    new Concept("@positiveConcept")
                },
                                     negativeConcepts: new List <Concept> {
                    new Concept("@negativeConcept")
                }),
                new ClarifaiURLImage("@imageURL2", "@inputID2",
                                     geo: new DTOs.GeoPoint(55, 66))
            }
                ).ExecuteAsync();


            var expectedRequestBody = JObject.Parse(@"
{
    ""inputs"": [
      {
        ""id"": ""@inputID1"",
        ""data"": {
            ""image"": {
                ""url"": ""@imageURL1""
            },
            ""concepts"": [
                {
                  ""id"": ""@positiveConcept"",
                  ""value"": true
                },
                {
                  ""id"": ""@negativeConcept"",
                  ""value"": false
                }
            ]
        }
      },
      {
        ""id"": ""@inputID2"",
        ""data"": {
            ""image"": {
                ""url"": ""@imageURL2""
            },
            ""geo"": {
                ""geo_point"": {
                    ""longitude"": 55.0,
                    ""latitude"": 66.0
                }
            }
        }
      }  
   ]
}
");

            Assert.True(JToken.DeepEquals(expectedRequestBody, httpClient.PostedBody));

            Assert.True(response.IsSuccessful);
            Assert.AreEqual("Ok", response.Status.Description);

            var inputs = (List <IClarifaiInput>)response.Get();

            Assert.True(response.IsSuccessful);
            Assert.AreEqual(inputs[0].ID, "@inputID1");
            Assert.AreEqual(inputs[0].PositiveConcepts.ElementAt(0).ID, "@positiveConcept");
            Assert.AreEqual(inputs[0].NegativeConcepts.ElementAt(0).ID, "@negativeConcept");
            Assert.AreEqual(inputs[1].ID, "@inputID2");
            Assert.AreEqual(inputs[1].Geo.Longitude, 55);
            Assert.AreEqual(inputs[1].Geo.Latitude, 66);
        }