Page 49 - Revista_60.pub
P. 49

C#







                                                                                      WINDOWS ML (ML.NET C#)

                            decoder.GetSoftwareBitmapAsync();          O exemplo usado neste artigo está disponível no site
                     softwareBitmap = SoftwareBitmap.            da  MS  de  forma  mais  aprofundada.  Recomendamos  aos
           Convert(softwareBitmap, BitmapPixelFormat.Bgra8,      nossos leitores que percam alguns minutos e explorem toda
                            BitmapAlphaMode.Premultiplied);      a  documentação  disponível,  de  forma  a  consolidarem  este
                 }
                                                                 tema que ainda vai, certamente, dar muito que falar!
                 // mostra a imagem
                 SoftwareBitmapSource imageSource = new
                                    SoftwareBitmapSource();
                 await imageSource.SetBitmapAsync
                                          (softwareBitmap);                 O DirectML, dispo-
                 UIPreviewImage.Source = imageSource;

                 // Encapsula a imagem num VideoFrame para        nibiliza a utilização da
                               ser unido (bound) e avaliado
                 VideoFrame inputImage = VideoFrame.              aceleração por hardwa-
                  CreateWithSoftwareBitmap(softwareBitmap);

                 await EvaluateVideoFrameAsync(inputImage);       re dos GPU’s para soft-
             }
             catch (Exception ex)
             {                                                    ware que utilize Win-
                 StatusBlock.Text = $"error: {ex.Message}";
                 ButtonRun.IsEnabled = true;
             }                                                    dowsML. Esta API, foi
         }
                                                                  construída segundo os

               Chegados  à  última  parte  do  exemplo,  e  apenas  para
         reforçar o que foi referido no início do artigo, nesta aplicação   mesmos princípios do
         pode ser encontrado um método simples que permite verificar
         que tipo de dispositivo irá ser usado para a tarefa de Machine   DirectX, já amplamente
         Learning.
                                                                  conhecido e utilizado
         LearningModelDeviceKind GetDeviceKind()
         {
             switch (Combo_DeviceKind.SelectedIndex)              desde o seu lançamen-
             {
                 case 0:
                     return LearningModelDeviceKind.Default;      to           em            1995.
                 case 1:
                     return LearningModelDeviceKind.Cpu;
                 case 2:
                     return LearningModelDeviceKind.DirectX;
                 case 3:
                     return LearningModelDeviceKind.             Webgrafia
                                     DirectXHighPerformance;
                 case 4:                                         https://github.com/Microsoft/Windows-Machine-Learning
                     return LearningModelDeviceKind.
                                            DirectXMinPower;     https://docs.microsoft.com/en-us/windows/ai/
             }                                                   https://docs.microsoft.com/en-us/windows/ai/release-notes
             return LearningModelDeviceKind.Default;
         }
                                                                 https://docs.microsoft.com/en-us/windows/ai/get-onnx-model
                                                                 https://docs.microsoft.com/en-us/windows/ai/performance-
         4.    Executar em qualquer dispositivo do Windows   
                                                                 memory
               Feito isto compilamos e podemos executar o código em   https://www.microsoft.com/en-us/cognitive-toolkit/
         qualquer  dispositivo  que  corra  aplicações  Universal  Windows
         Platform.                                               https://onnx.ai/

         AUTOR


                      Escrito por Rita Peres
                      Natural de Castelo Branco, licenciou-se em Engenharia Informática pela Universidade da Beira Interior.
                      Membro do P@P desde Janeiro de 2010. Embaixadora das Geek Girls Portugal – Núcleo de Lisboa.







                                                           49
   44   45   46   47   48   49   50   51   52   53   54