示例#1
0
        public void DeleteEarliestIteration(bool isClothing)
        {
            if (isClothing)
            {
                var iterations = ClothingTrainingApi.GetIterations(ClothingModelProjectID);

                Iteration iterationToDelete = iterations[iterations.Count - 1];

                if (iterations.Count == 10)
                {
                    ClothingTrainingApi.DeleteIteration(ClothingModelProjectID, iterationToDelete.Id);
                }
            }
            else
            {
                var iterations = ClassifierTrainingApi.GetIterations(ClassifierModelProjectID);

                Iteration iterationToDelete = iterations[iterations.Count - 1];

                if (iterations.Count == 10)
                {
                    ClassifierTrainingApi.DeleteIteration(ClassifierModelProjectID, iterationToDelete.Id);
                }
            }
        }
示例#2
0
        protected void CreateNewTag(string newTag)
        {
            var tags = ClassifierTrainingApi.GetTags(ClassifierModelProjectID);

            bool tagExists = false;
            Tag  bookTag   = null;

            foreach (Tag tag in tags)
            {
                if (tag.Name.Equals(newTag))
                {
                    tagExists = true;
                    bookTag   = tag;
                    break;
                }
            }

            if (!tagExists)
            {
                // Save image in tag folder
                // Check number of images in folder
                // If > 5, proceed with creating tag and training

                bookTag = ClassifierTrainingApi.CreateTag(ClassifierModelProjectID, newTag);
            }
        }
示例#3
0
        public void TrainClassifierModel(string imagePath, string imageTag)
        {
            // Since apparently we can only have 10 iterations max
            DeleteEarliestIteration(false);

            var tags = ClassifierTrainingApi.GetTags(ClassifierModelProjectID);

            Tag trainTag = null;

            foreach (Tag tag in tags)
            {
                if (tag.Name.Equals(imageTag))
                {
                    trainTag = tag;
                    break;
                }
            }

            using (var stream = File.Open(imagePath, FileMode.Open))
            {
                ClassifierTrainingApi.CreateImagesFromData(ClassifierModelProjectID, stream, new List <string>()
                {
                    trainTag.Id.ToString()
                });
            }

            var iteration = ClassifierTrainingApi.TrainProject(ClassifierModelProjectID);

            while (iteration.Status == "Training")
            {
                Thread.Sleep(1000);

                iteration = ClassifierTrainingApi.GetIteration(ClassifierModelProjectID, iteration.Id);
            }

            iteration.IsDefault = true;
            ClassifierTrainingApi.UpdateIteration(ClassifierModelProjectID, iteration.Id, iteration);

            File.Delete(imagePath);
        }