getFaceEmbedding method

Future<Float32List> getFaceEmbedding(
  1. Face face,
  2. Uint8List imageBytes
)

Generates a face embedding (identity vector) for a detected face.

The face parameter should be a face detection result from detectFacesFromBytes.

The imageBytes parameter should contain the encoded image data. For pre-decoded cv.Mat input, use getFaceEmbeddingFromMat instead.

Returns a Float32List containing the L2-normalized embedding vector.

Example:

final faces = await detector.detectFacesFromBytes(imageBytes);
final embedding = await detector.getFaceEmbedding(faces.first, imageBytes);

final similarity = FaceDetector.compareFaces(embedding, referenceEmbedding);
if (similarity > 0.6) print('Same person!');

Implementation

Future<Float32List> getFaceEmbedding(Face face, Uint8List imageBytes) async {
  _requireReady();
  final Object? result = await _sendDetectionRequest<Object?>('embedding', {
    'bytes': TransferableTypedData.fromList([imageBytes]),
    'eyes': _embeddingEyesPayload(face),
  });
  return result as Float32List;
}