Compartir a través de


ImageFeatureValue Clase

Definición

Describe las propiedades de la imagen usadas para pasar a un 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
Herencia
Object Platform::Object IInspectable ImageFeatureValue
Atributos
Implementaciones

Requisitos de Windows

Familia de dispositivos
Windows 10, version 1809 (se introdujo en la versión 10.0.17763.0)
API contract
Windows.AI.MachineLearning.MachineLearningContract (se introdujo en la versión v1.0)

Ejemplos

En el ejemplo siguiente se crea una clase LearningModelSession y LearningModelBinding, se enlaza la entrada a un ImageFeatureValue creado a partir de un Objeto VideoFrame y, a continuación, se enlaza la salida.

#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));
}

Comentarios

Esta es la manera recomendada de pasar imágenes como entradas y salidas. Permite centrarse en la imagen y no tener que preocuparse por las conversiones o la tensorización. Puede crear un imageFeatureValue mediante el método ImageFeatureValue.CreateFromVideoFrame.

Windows ML admite dos tipos de VideoFrame: SoftwareBitmap e IDirect3DSurface. El sistema se encarga tanto de la conversión como de la tensorización de las imágenes para que coincidan con el formato que requiere el modelo. Los tipos de formato de modelo admitidos actualmente son Gray8, Rgb8 y Bgr8, y el intervalo de píxeles admitido actualmente es 0-255.

Windows Server

Para usar esta API en Windows Server, debe usar Windows Server 2019 con experiencia de escritorio.

Seguridad para subprocesos

Esta API es segura para subprocesos.

Propiedades

Kind

Devuelve el tipo asociado a la característica.

VideoFrame

Obtiene el fotograma de vídeo.

Métodos

CreateFromVideoFrame(VideoFrame)

Crea un imageFeatureValue mediante el fotograma de vídeo especificado.

Se aplica a

Consulte también