/// <summary> /// NeuralStyleTransformerSkill constructor /// </summary> /// <param name="description"></param> /// <param name="device"></param> private NeuralStyleTransformerSkill( ISkillDescriptor description, ISkillExecutionDevice device) { SkillDescriptor = description; Device = device; }
/// <summary> /// FaceSentimentAnalyzerSkill constructor /// </summary> /// <param name="description"></param> /// <param name="device"></param> private FaceSentimentAnalyzerSkill( ISkillDescriptor description, ISkillExecutionDevice device) { SkillDescriptor = description; Device = device; }
/// <summary> /// NeuralStyleTransformerBinding constructor /// </summary> internal NeuralStyleTransformerBinding( ISkillDescriptor descriptor, ISkillExecutionDevice device, LearningModelSession session) { m_bindingHelper = new VisionSkillBindingHelper(descriptor, device); // Create WinML binding m_winmlBinding = new LearningModelBinding(session); }
/// <summary> /// FaceSentimentAnalyzerBinding constructor /// </summary> internal FaceSentimentAnalyzerBinding( ISkillDescriptor descriptor, ISkillExecutionDevice device, LearningModelSession session) { m_bindingHelper = new VisionSkillBindingHelper(descriptor, device); // Create WinML binding m_winmlBinding = new LearningModelBinding(session); }
/// <summary> /// Construct a string from the ISkillDescriptor specified that can be used to display its content /// </summary> /// <param name="desc"></param> /// <returns></returns> public static string GetSkillDescriptorString(ISkillDescriptor desc) { if (desc == null) { return(""); } return($"Description: {desc.Information.Description}" + $"\nAuthor: {desc.Information.Author}" + $"\nPublisher: {desc.Information.Publisher}" + $"\nVersion: {desc.Information.Version.Major}.{desc.Information.Version.Minor}.{desc.Information.Version.Build}.{desc.Information.Version.Revision}" + $"\nUnique ID: {desc.Information.Id}"); }
/// <summary> /// Creates and initializes a NeuralStyleTransformerSkill instance /// </summary> /// <param name="descriptor"></param> /// <param name="device"></param> /// <returns></returns> internal static IAsyncOperation <NeuralStyleTransformerSkill> CreateAsync( ISkillDescriptor descriptor, ISkillExecutionDevice device, StyleChoices Mode) { return(AsyncInfo.Run(async(token) => { // Create instance var skillInstance = new NeuralStyleTransformerSkill(descriptor, device); // Load WinML model var modelName = "candy.onnx"; switch (Mode) { case StyleChoices.Candy: modelName = "candy.onnx"; break; case StyleChoices.Mosaic: modelName = "mosaic.onnx"; break; case StyleChoices.Pointilism: modelName = "pointilism.onnx"; break; case StyleChoices.RainPrincess: modelName = "rain_princess.onnx"; break; case StyleChoices.Udnie: modelName = "udnie.onnx"; break; } var modelFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri($"ms-appx:///NeuralStyleTransformer/Models/{modelName}")); var winmlModel = LearningModel.LoadFromFilePath(modelFile.Path); // Create WinML session skillInstance.m_winmlSession = new LearningModelSession(winmlModel, GetWinMLDevice(device)); // Create output frame _outputFrame?.Dispose(); _outputFrame = new VideoFrame(BitmapPixelFormat.Bgra8, NeuralStyleTransformerConst.IMAGE_WIDTH, NeuralStyleTransformerConst.IMAGE_HEIGHT); return skillInstance; })); }
/// <summary> /// Creates and initializes a FaceSentimentAnalyzerSkill instance /// </summary> /// <param name="descriptor"></param> /// <param name="device"></param> /// <returns></returns> internal static IAsyncOperation <FaceSentimentAnalyzerSkill> CreateAsync( ISkillDescriptor descriptor, ISkillExecutionDevice device) { return(AsyncInfo.Run(async(token) => { // Create instance var skillInstance = new FaceSentimentAnalyzerSkill(descriptor, device); // Instantiate the FaceDetector skillInstance.m_faceDetector = await FaceDetector.CreateAsync(); // Load WinML model var modelFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri($"ms-appx:///Contoso.FaceSentimentAnalyzer/{FaceSentimentAnalyzerConst.WINML_MODEL_FILENAME}")); var winmlModel = LearningModel.LoadFromFilePath(modelFile.Path); // Create WinML session skillInstance.m_winmlSession = new LearningModelSession(winmlModel, GetWinMLDevice(device)); return skillInstance; })); }
/// <summary> /// SkillRuntimeEntry constructor /// </summary> /// <param name="descriptor"></param> public SkillWrapper(ISkillDescriptor descriptor) { Descriptor = descriptor; ExecutionDevices = descriptor.GetSupportedExecutionDevicesAsync().GetResults(); Binding = null; }
/// <summary> /// Get a list of information strings extracted from the ISkillDescriptor /// </summary> /// <param name="desc"></param> /// <returns></returns> public static List <KeyValuePair <string, string> > GetSkillInformationStrings(ISkillDescriptor desc) { if (desc == null) { return(new List <KeyValuePair <string, string> >()); } return(new List <KeyValuePair <string, string> >() { new KeyValuePair <string, string>("Description", $"{desc.Information.Description}"), new KeyValuePair <string, string>("Author", $"{desc.Information.Author}"), new KeyValuePair <string, string>("Publisher", $"{desc.Information.Publisher}"), new KeyValuePair <string, string>("Version", $"{desc.Information.Version.Major}.{desc.Information.Version.Minor}.{desc.Information.Version.Build}.{desc.Information.Version.Revision}"), new KeyValuePair <string, string>("Unique ID", $"{ desc.Information.Id}") }); }