キャプチャ速度

アプリケーションにとって速度は重要な要素です。アプリケーションがどれくらい速く動作できるかを見積もるには、各コンポーネントにどれくらいの時間がかかるかを知る必要があります。 Zivid に必要な時間を見積もるための重要な測定値が 2 つあります。

CaptureFunctionReturnTime

これは capture API の実行にかかる時間です。API が戻り値を返したら、カメラの視野を遮ったり、カメラを移動したりしても安全です。 Zivid Studio では、CaptureFunctionReturnTime が取得時間として表示されます。

CaptureTime

これは、 capture API の呼び出しから点群が GPU で利用可能になるまでにかかる時間です。 GPU メモリからシステムメモリへのデータのコピーは含まれません。

CopyTime

This is the time it takes to copy a specific point cloud data type from GPU memory to system memory. It is measured for each data type individually, so that you can estimate the cost of only copying what your application needs.

キャプチャプロセスについては 点群キャプチャプロセス でより詳しく説明されています。

Zivid では、 ハイエンドからローエンドまで さまざまなハードウェアですべてのプリセットをベンチマークしています。これらのベンチマーク結果は、新しい SDK バージョンに移行するにつれて時間の経過とともに変化し、ほとんどの場合改善されます。関連する数値については、お使いの SDK バージョンに対応するバージョンのドキュメントを選択してください。

取得時間とキャプチャ時間は Zivid Studio および SDK で確認できます。

ソースへ移動

ソース

const auto frame = camera.capture2D3D(settings);
const auto frameInfo = frame.info();
std::cout << "Acquisition time:" << std::endl;
std::cout << std::chrono::duration_cast<std::chrono::milliseconds>(
                 frameInfo.metrics().acquisitionTime().value())
                 .count()
          << " ms" << std::endl;
std::cout << "Capture time:" << std::endl;
std::cout
    << std::chrono::duration_cast<std::chrono::milliseconds>(frameInfo.metrics().captureTime().value()).count()
    << " ms" << std::endl;
ソースへ移動

ソース

using (var frame = camera.Capture2D3D(settings))
{
    var frameInfo = frame.Info;
    Console.WriteLine("Acquisition time:");
    Console.WriteLine(frameInfo.Metrics.AcquisitionTime.Milliseconds + " ms");
    Console.WriteLine("Capture time:");
    Console.WriteLine(frameInfo.Metrics.CaptureTime.Milliseconds + " ms");
ソースへ移動

ソース

frame = camera.capture_2d_3d(settings)
frame_info = frame.info
print("Acquisition time:")
print(f"{frame_info.metrics.acquisition_time.total_seconds() * 1000:.0f} ms")
print("Capture time:")
print(f"{frame_info.metrics.capture_time.total_seconds() * 1000:.0f} ms")

また、弊社の C++ サンプル ZividBenchmark.cpp を実行して、お使いのハードウェアでベンチマークを行うこともできます。

Copy Speed

After capture, the point cloud resides on the GPU. Copying data from GPU memory to system (CPU) memory takes time that must be accounted for in throughput-sensitive applications.

PointXYZ

3D position in millimeters (X, Y, Z). 12 bytes per pixel. Use when you need 3D coordinates only.

PointXYZW

3D position plus a homogeneous W coordinate (X, Y, Z, W). 16 bytes per pixel. W is padded to align data for efficient GPU memory access.

ColorRGBA

Color per pixel (red, green, blue, alpha). 4 bytes per pixel.

SNR

Signal-to-Noise Ratio per pixel. 4 bytes per pixel. Indicates depth measurement confidence: higher SNR means lower noise. See SNR 値.

Combinations (e.g. PointXYZ+ColorRGBA+SNR)

Multiple data types copied in a single SDK call. More efficient than separate calls when your application needs more than one type.