Objective c CoreML使用AVCaptureSession返回不同的值

Objective c CoreML使用AVCaptureSession返回不同的值,objective-c,swift,avcapturesession,coreml,Objective C,Swift,Avcapturesession,Coreml,我正在尝试使用AVCaptureSession运行CoreML模型 当我把相同的图像作为CoreML模型的输入时,它每次都给我相同的结果。 但当使用函数给出的图像时: - (void) captureOutput:(AVCaptureOutput*)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection*)connection { __b

我正在尝试使用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];
    });
}
即使我不移动手机,背景也总是一样,它也不会给我完全相同的结果。。(说清楚一点,我的手机放在桌子上,相机对着我房间的地板,什么也没有动)

我试着逐像素比较这两幅图像(前一幅和新一幅),结果是不同的

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


谢谢,很可能是摄像头噪音。你从照相机上得到的照片永远不会完全稳定。即使相机指向同一物体,噪声也会在像素值上产生微小差异。这些微小的差异会对预测产生很大的影响