ImageFeatureValue Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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. |