1

私は Mac で顔認識を行うアプリを開発しており、QTCaptureDecompressedVideoOutput で QTCaptureSession を使用しています。32ARGB ピクセル形式を使用してビデオ解像度を 640x360 に制限し、最小ビデオ フレーム間隔を 0 に設定してフレームレートを改善していますが、それは実際には役に立ちませんでした。

QTCaptureDecompressedVideoOutput *output = [[QTCaptureDecompressedVideoOutput alloc] init];
[output setPixelBufferAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                  [NSNumber numberWithDouble:640], (id)kCVPixelBufferWidthKey,
                                  [NSNumber numberWithDouble:360], (id)kCVPixelBufferHeightKey,
                                  [NSNumber numberWithInt:kCVPixelFormatType_32ARGB], (id)kCVPixelBufferPixelFormatTypeKey,                                      
                                  nil]];    

output.minimumVideoFrameInterval = 0;

私が何をしても、フレームレートは 15 ~ 15.5 FPS あたりでピークに達するようです。これは、10.7.3 を実行しているごく最近の MacBook Pro 15 インチ / 2.3GHz Core i7 の内蔵カメラを使用しています。

4

1 に答える 1

1

通常、内蔵 iSight カメラは巨大なフレームを生成します。指定したバッファ形式は実際にはキャプチャ入力には影響しませんが、特定のキャプチャ出力のみに影響します。また、元のキャプチャ画像は指定されたピクセル形式ではないため、形式変換が行われます。したがって、別のピクセル バッファ形式を指定すると、処理が遅くなるだけだと思います。

minimumVideoFrameIntervalデフォルトでは 0 です。最大フレームレートを求める場合は変更する必要はありません。あなたが持っているフレームレートは、現時点で可能な最大値です。

ピクセル バッファーの指定を避け、FPS に違いがあるかどうかを確認してください。また、解像度の低い別の外部カメラを使用すると、システムの負荷が大幅に軽減されます。

于 2012-05-15T04:44:08.057 に答える