ImageFeatureValue Класс

Определение

Описывает свойства изображения, используемого для передачи в модель.

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
Наследование
Object Platform::Object IInspectable ImageFeatureValue
Атрибуты
Реализации

Требования к Windows

Семейство устройств
Windows 10, version 1809 (появилось в 10.0.17763.0)
API contract
Windows.AI.MachineLearning.MachineLearningContract (появилось в v1.0)

Примеры

В следующем примере создаются LearningModelSession и LearningModelBinding, выполняется привязка входных данных к объекту ImageFeatureValue , созданному из VideoFrame, а затем выполняется привязка выходных данных.

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

Комментарии

Это рекомендуемый способ передачи изображений в качестве входных и выходных данных. Это позволяет сосредоточиться на изображении и не беспокоиться о преобразованиях или тензоризации. ImageFeatureValue можно создать с помощью метода ImageFeatureValue.CreateFromVideoFrame.

Windows ML поддерживает два типа VideoFrame: SoftwareBitmap и IDirect3DSurface. Система выполняет преобразование и тензоризацию изображений в соответствии с форматом, который требуется модели. В настоящее время для моделей поддерживаются следующие типы форматов: Gray8, Rgb8 и Bgr8 с диапазоном значений пикселей от 0 до 255.

Windows Server

Чтобы использовать этот API в Windows Server, необходимо использовать Windows Server 2019 с возможностями рабочего стола.

Потокобезопасность

Этот API является потокобезопасным.

Свойства

Kind

Возвращает тип, связанный с компонентом.

VideoFrame

Возвращает видеокадр.

Методы

CreateFromVideoFrame(VideoFrame)

Создает ImageFeatureValue , используя заданный видеокадр.

Применяется к

См. также раздел