ImageFeatureValue Klasse

Definition

Beschreibt die Eigenschaften des Bilds, das zum Übergeben an ein Modell verwendet wird.

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
Vererbung
Object Platform::Object IInspectable ImageFeatureValue
Attribute
Implementiert

Windows-Anforderungen

Gerätefamilie
Windows 10, version 1809 (eingeführt in 10.0.17763.0)
API contract
Windows.AI.MachineLearning.MachineLearningContract (eingeführt in v1.0)

Beispiele

Im folgenden Beispiel werden eine LearningModelSession und eine LearningModelBinding erstellt, die Eingabe an ein ImageFeatureValue gebunden, das aus einem VideoFrame erstellt wurde, und dann die Ausgabe gebunden.

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

Hinweise

Dies ist die empfohlene Methode zum Übergeben von Bildern als Eingaben und Ausgaben. Sie ermöglicht es Ihnen, sich auf das Bild zu konzentrieren und sich keine Gedanken über Konvertierungen oder Tensorisierung machen zu müssen. Sie können ein ImageFeatureValue-Objekt mit der ImageFeatureValue.CreateFromVideoFrame-Methode erstellen.

Windows ML unterstützt zwei Arten von VideoFrame: SoftwareBitmap und IDirect3DSurface. Das System kümmert sich sowohl um die Konvertierung als auch die Tensorisierung, damit die Bilder dem für das Modell benötigten Format entsprechen. Die derzeit unterstützten Modellformattypen sind Gray8, Rgb8 und Bgr8, und der derzeit unterstützte Pixelbereich ist 0 bis 255.

Windows Server

Um diese API unter Windows Server verwenden zu können, müssen Sie Windows Server 2019 mit Desktopdarstellung verwenden.

Threadsicherheit

Diese API ist threadsicher.

Eigenschaften

Kind

Gibt den Typ zurück, der dem Feature zugeordnet ist.

VideoFrame

Ruft den Videoframe ab.

Methoden

CreateFromVideoFrame(VideoFrame)

Erstellt einen ImageFeatureValue-Wert mithilfe des angegebenen Videoframes.

Gilt für:

Weitere Informationen