CoreML使用AVCaptureSession返回不同的值

问题描述 投票:0回答:1

我正在尝试使用AVCaptureSession运行CoreML模型。

当我将相同的图像作为CoreML模型的输入时,每次都会给我相同的结果。但是当使用功能给定的图像时:

- (void) captureOutput:(AVCaptureOutput*)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection*)connection {
    __block CIImage* ciimage = [CIImage imageWithCVPixelBuffer:CMSampleBufferGetImageBuffer(sampleBuffer)];

    dispatch_sync(dispatch_get_main_queue(), ^{
        VNImageRequestHandler* handler = [[VNImageRequestHandler alloc] initWithCIImage:ciimage options:@{}];
        [handler performRequests:@[self.coreRequest] error:nil];
    });
}

即使我不移动手机,背景也总是一样。并不能获得完全相同的结果。 (为清楚起见,我的手机在桌子上,相机在注视着我房间的地板,没有动静。)

[我尝试逐个像素比较两个图像(以前的图像和新图像),并且有所不同。

我想了解为什么这些图像不同?

谢谢,

objective-c swift avcapturesession coreml
1个回答
0
投票

相机杂讯,最有可能。从相机获得的图像永远不会完全稳定。即使相机指向同一物体,噪点也会在像素值上产生很小的差异。这些小的差异可能会对预测产生很大的影响。

© www.soinside.com 2019 - 2024. All rights reserved.