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
- Наследование
- Атрибуты
- Реализации
Требования к 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 , используя заданный видеокадр. |