Exemplo n.º 1
0
        static async Task WorkOnProject(string trainingEndpoint, string trainingKey, string projectName, string COCOInstancesFilePathOrUrl, IList <string> categories, uint numberOfImages, bool isDetectionModel, bool train)
        {
            Console.Write($"\nLoading, parsing and preparing {COCOInstancesFilePathOrUrl}...");

            if (numberOfImages == 0 || numberOfImages > customVisionImageLimit)
            {
                numberOfImages = 50000;
            }

            var data = await COCODatasetFactory.LoadFromCOCOAnnotationJSONFileAsync(COCOInstancesFilePathOrUrl, categories, numberOfImages);

            Console.WriteLine("done.");

            Console.WriteLine("Prepared COCO dataset with {0} categories and {1} images.\n", data.categoriesAndIds.Count, data.traningSet.Count);

            Console.Write($"Initializing Custom Vision Project {COCOInstancesFilePathOrUrl}...");
            ProjectTraningConfiguration trainingConfig = await ProjectTraningConfiguration.CreateProjectAsync(trainingEndpoint, trainingKey, projectName, true, isDetectionModel);

            Console.WriteLine("done.");

            Console.Write($"\nLoading traning images to Custom Vision Project...");
            CustomVisionProjectTraning traning = new CustomVisionProjectTraning(trainingConfig);

            int ignoredImages = await traning.LoadWithCOCO(data, isDetectionModel);

            if (ignoredImages == 0)
            {
                Console.WriteLine("done.");
            }
            else
            {
                Console.WriteLine($"done. Ignored {ignoredImages} image(s).");
            }

            if (train)
            {
                Console.Write($"\nTraning Custom Vision Project...");
                await traning.Train();

                Console.WriteLine("done.");
            }
            else
            {
                Console.WriteLine("Traning is not requested.");
            }
        }
 public CustomVisionProjectTraning(ProjectTraningConfiguration config)
 {
     configuration = config;
 }