/// <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;
 }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 5
0
        /// <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;
            }));
        }
Esempio n. 8
0
 /// <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}")
            });
        }