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}"); }
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(); }
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); }