¿Cómo aplicar iOS VNImageHomographicAlignmentObservation warpTransform?

Estoy probando la API de alineación de visión de Apple y tengo preguntas sobre VNHomographicImageRegistrationRequest. ¿Alguien lo tiene para trabajar? Puedo obtener el warpTransform, pero aún no he visto una matriz que tenga sentido, lo que significa que no puedo obtener un resultado que devuelva la imagen a la imagen de origen. Estoy usando Opencv warpPerspective para manejar la deformación.

Estoy llamando a esto para obtener la transformación:

class func homography(_ cgImage0 : CGImage!, _ cgImage1 : CGImage!, _ orientation : CGImagePropertyOrientation, completion:(matrix_float3x3?)-> ())
{
let registrationSequenceReqHandler = VNSequenceRequestHandler()
let requestHomography = VNHomographicImageRegistrationRequest(targetedCGImage: cgImage1, orientation: orientation)
let requestTranslation = VNTranslationalImageRegistrationRequest(targetedCGImage: cgImage1, orientation: orientation)

do
{
    try registrationSequenceReqHandler.perform([requestHomography, requestTranslation], on: cgImage0)  //reference

    if let resultH = requestHomography.results?.first as? VNImageHomographicAlignmentObservation
    {
        completion(resultH.warpTransform)
    }

    if let resultT = requestTranslation.results?.first as? VNImageTranslationAlignmentObservation
    {
        print ("translation : \(resultT.alignmentTransform.tx) : \(resultT.alignmentTransform.ty)")
    }
}
catch
{
    completion(nil)
    print("bad")
}

}

Esto funciona y genera una matriz de homografía, pero sus resultados son drásticamente diferentes de lo que obtengo cuando hago SIFT + Opencv findHomography https: //docs.opencv.org/3.0-beta/doc/tutorials/features2d/feature_homography/feature_homography.htm)

ndependientemente de mis pares de imágenes, no puedo obtener resultados homográficos razonables del conjunto de datos de Apple Vision.

Gracias por adelantado

Respuestas a la pregunta(1)

Su respuesta a la pregunta