コード例 #1
0
        public CustomVisionOnlinePrediction(IOptionsSnapshot <AppSettings> settings, ICustomVisionClient customVisionClient)
        {
            this.customVisionClient = customVisionClient;

            Guid projectId;

            if (settings.Value.CustomVision == null || string.IsNullOrEmpty(settings.Value.CustomVision.ProjectId) || !Guid.TryParse(settings.Value.CustomVision.ProjectId, out projectId))
            {
                projectId = Guid.Empty;
            }

            //TODO: move these settings to setting file
            customVisionSettings = new CustomVisionSettings
            {
                CustomVisionPredictionKey = settings.Value.CustomVision?.PredictionKey,
                CustomVisionProjectId     = projectId,
                Threshold = 0.85f,
                MaxLength = 5
            };
        }
コード例 #2
0
        public VisionStrategy(IOptionsSnapshot <AppSettings> settings, IHostingEnvironment environment, IComputerVisionClient computerVisionClient, ICustomVisionClient customVisionClient, ILoggerFactory loggerFactory)
        {
            object parseDefaultModel;

            defaultModel =
                (Enum.TryParse(typeof(Approaches), settings.Value.CognitiveServicesPredictionDefaultModel, ignoreCase: true, result: out parseDefaultModel)) ?
                (Approaches)parseDefaultModel :
                Approaches.Default;

            if (defaultModel == Approaches.Default)
            {
                defaultModel = Approaches.ComputerVision;
            }

            models = new Dictionary <Approaches, IClassifier>
            {
                { Approaches.ComputerVision, new ComputerVisionPrediction(settings, computerVisionClient) },
                { Approaches.CustomVisionOffline, new CustomVisionOfflinePrediction(settings, environment, loggerFactory.CreateLogger <CustomVisionOfflinePrediction>()) },
                { Approaches.CustomVisionOnline, new CustomVisionOnlinePrediction(settings, customVisionClient) }
            };
        }