Partilhar via


ImageFeatureValue Classe

Definição

Descreve as propriedades da imagem usada para passar para um modelo.

public ref class ImageFeatureValue sealed : ILearningModelFeatureValue
/// [Windows.Foundation.Metadata.ContractVersion(Windows.AI.MachineLearning.MachineLearningContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class ImageFeatureValue final : ILearningModelFeatureValue
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.AI.MachineLearning.MachineLearningContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class ImageFeatureValue : ILearningModelFeatureValue
Public NotInheritable Class ImageFeatureValue
Implements ILearningModelFeatureValue
Herança
Object Platform::Object IInspectable ImageFeatureValue
Atributos
Implementações

Requisitos do Windows

Família de dispositivos
Windows 10, version 1809 (introduzida na 10.0.17763.0)
API contract
Windows.AI.MachineLearning.MachineLearningContract (introduzida na v1.0)

Exemplos

O exemplo a seguir cria um LearningModelSession e um LearningModelBinding, associa a entrada a um ImageFeatureValue criado a partir de um VideoFrame e associa a saída.

#include <winrt/Windows.AI.MachineLearning.h>
#include <winrt/Windows.Media.h>
using namespace winrt;
using namespace Windows::AI::MachineLearning;
using namespace Windows::Media;

...

void BindModel(
    LearningModel model,
    LearningModelDeviceKind deviceKind,
    winrt::hstring inputName,
    winrt::hstring outputName,
    VideoFrame imageFrame)
{
    // Create a session and binding.
    LearningModelSession session = LearningModelSession{ model, LearningModelDevice(deviceKind) };
    LearningModelBinding binding = LearningModelBinding{ session };

    // Bind the intput image.
    binding.Bind(inputName, ImageFeatureValue::CreateFromVideoFrame(imageFrame));

    // Bind the output.
    std::vector<int64_t> shape({ 1, 1000, 1, 1 });
    binding.Bind(outputName, TensorFloat::Create(shape));
}

Comentários

Essa é a maneira recomendada de passar imagens como entradas e saídas. Ele permite que você se concentre na imagem e não precise se preocupar com conversões ou tensorização. Você pode criar um ImageFeatureValue usando o método ImageFeatureValue.CreateFromVideoFrame .

O Windows ML dá suporte a dois tipos de VideoFrame: SoftwareBitmap e IDirect3DSurface. O sistema cuida da conversão e da tensorização para que as imagens correspondam ao formato exigido pelo modelo. Os tipos de formato de modelo com suporte no momento são Gray8, Rgb8 e Bgr8. O intervalo de pixels com suporte no momento é 0-255.

Windows Server

Para usar essa API no Windows Server, você deve usar o Windows Server 2019 com a Experiência desktop.

Acesso thread-safe

Essa API é thread-safe.

Propriedades

Kind

Retorna o Tipo associado ao recurso.

VideoFrame

Obtém o quadro de vídeo.

Métodos

CreateFromVideoFrame(VideoFrame)

Cria um ImageFeatureValue usando o quadro de vídeo especificado.

Aplica-se a

Confira também