此问题的答案可获得+50信誉bounty。奖励宽限期已结束。Kevvv正在从信誉良好的来源寻找答案。
我在ARKit
中使用ARFrame
的captureImage来生成人脸签名并进行相似度比较,但是由于captureImage
的分辨率较差,相比Vision
框架,比较的质量受到负面影响,capturedDepthData
显示capturedImage
在ARKit
中的分辨率只有640x480。
首先,我尝试将视频格式提高到最高分辨率:
let configuration = ARFaceTrackingConfiguration()
if let videoFormat = ARFaceTrackingConfiguration.supportedVideoFormats.sorted(by: { ($0.imageResolution.width * $0.imageResolution.height) < ($1.imageResolution.width * $1.imageResolution.height) }).last {
configuration.videoFormat = videoFormat
}
但是,这似乎并没有提高capturedImage
的分辨率。
其次,我尝试使用captureHighResolutionFrame,以及更改视频格式:
if let videoFormat = ARFaceTrackingConfiguration.recommendedVideoFormatForHighResolutionFrameCapturing {
configuration.videoFormat = videoFormat
}
但是,根据文件:
系统在带外提供高分辨率帧,这意味着它不会影响会话以固定间隔接收的其他帧
这看起来在常规capturedImage
和高分辨率图像之间来回切换,而不是由于捕获高分辨率图像的异步特性而替换常规图像。这是有问题的,因为尺寸差异需要不同地使用displayTransform
和CGAffineTransform
来缩放每种情况的图像。
最重要的是,用这种方法捕捉图像会产生每秒60次的快门声。
1条答案
按热度按时间y0u0uwnf1#
我没有尝试过这个特定的模型,但我希望它能做得很好,因为人们正在使用它,基于变压器的模型在NLP中取得了优异的成绩。这里是其中一个模型的链接,专门用于增强图像分辨率model。希望它能很好地为您的情况工作。