SDK変更履歴
2.18.0
API
The SDK now provides two GPU backends, OpenCL and CUDA. The CUDA backend supports Nvidia compute devices, and the OpenCL backend supports Intel compute devices. The OpenCL backend no longer supports Nvidia compute devices; use the CUDA backend instead.
On Linux, the backend is selected by installing the appropriate .deb package:
zivid-cudafor CUDA, orzivid-openclfor OpenCL.On Windows, the installer includes both backends and lets you choose at install time, defaulting to CUDA when an Nvidia GPU is detected.
CUDA backend requires Nvidia drivers that support CUDA 12 or higher.
Added
DeviceArrayandDeviceArrayViewclasses giving direct access to capture data in GPU memory (CUDA and OpenCL) without copying to host memory:DeviceArray<Format>is an owning handle to GPU memory;DeviceArrayView<Format>is a non-owning view over it. Obtain them fromPointCloud/UnorganizedPointCloud(devicePointsXYZ,deviceSNRs,deviceNormalsXYZ,imageDeviceArray, ...) and fromFrame2D(imageDeviceArray).You can also have the SDK write a captured color image directly into your own GPU buffer: wrap your CUDA/OpenCL allocation with
ComputeDevice::createDeviceArrayView, then pass it to theimageDeviceArray(view, ...)overload.Stream/queue interoperability is handled via
StreamOrQueue,CUDAStreamPtr/OpenCLCommandQueuePtr, andsynchronizeStream.
Added support for sharing a GPU context with the SDK, enabling zero-copy interoperability with frameworks such as PyTorch, CuPy and TensorFlow:
Construct an
Applicationwith a user-provided context usingApplication(CUDAContextPtr)orApplication(OpenCLContextPtr).On CUDA builds, the default
Application()constructor automatically adopts a CUDA context that is already current on the calling thread.Added
ComputeDevice::nativeContext()to retrieve the SDK's GPU context for interoperability.
Added
Camera::checkHealth()method returning aCameraHealthreport:Lets you query whether a connected camera is operating correctly, so you can detect hardware problems before they affect captures.
The report contains an aggregated
Overallseverity, plus an individualStatusandValuefor each check: maximum transfer speed, DMD/LED/lens temperatures, fan, memory and infield verification.Each
Statususes a four-level severity scale:OK(optimal),Suboptimal(degraded but functional),Error(faulty or out of spec) andUnknown(check not performed or outcome could not be determined).Overallis the worst severity across all checks, using the precedenceError>Unknown>Suboptimal>OK.checkHealth()throws if the camera is not connected. Cameras without queryable health hardware, such as file cameras, return an all-Unknownreport.
Added support for creating a file camera from a captured frame with diagnostics:
A file camera is a virtual camera that replays a previous capture done with a physical camera.
Previously, it was possible to create a camera by loading
.zfcfiles as usingApplication::createFileCamera.Added overload
Application::createFileCamera(const Frame &)to create a camera from a frame.The frame must have been captured with Diagnostics enabled, otherwise this method will throw.
Added the ability to save a
Frame2Dto a.zdffile and load it back, mirroring the existing 3DFramesave/load. IncludesFrame2D::save,Frame2D::load, a file-loadingFrame2Dconstructor, and a newreadFrameFileTypehelper (withFrameFileTypeenum) to determine whether a.zdffile contains a 3DFrameor aFrame2D.Added color image accessors without an alpha channel to
Frame2D:imageRGB(),imageBGR(),imageRGB_SRGB()andimageBGR_SRGB(), complementing the existing four-channel_RGBA/_BGRAaccessors. TheImageclass can also save and load these three-channel formats.Added a
Settings2D::Diagnostics::Enabledsetting. When enabled, optional diagnostic information is recorded during 2D capture and included in the saved.zdffile. A captured 2D frame with diagnostics can help the Zivid Customer Success team to diagnose issues with 2D capture.Added a
connectCameraoverload taking aCameraAddress, allowing connection to a camera by direct IP address or hostname.Added a
Statusenum (HandEyeStatus) toHandEyeOutput, making it easier to debug issues during hand-eye calibration. The status is reported for both fiducial-marker and checkerboard-based calibration.Extended the experimental barcode API (
BarcodeDetectorinZivid::Experimental::Toolbox) with:Bounding boxes on detection and decoding results — each result now exposes a
boundingBox()(aZivid::BoundingBoxcovering the code's extent in the 2D image) in addition tocenterPosition().Support for the ITF (Interleaved 2 of 5) linear format (
LinearBarcodeFormat::itf).A detection-only mode for linear barcodes:
detectLinearCodes()returns candidate regions without decoding, anddecodeLinearCodes()decodes a chosen set afterwards, complementing the existing one-shotreadLinearCodes().UPC-A codes are now returned as EAN-13 to satisfy the standard (ISO/IEC 15424:2025), unless only UPC-A is requested. In this case the code is returned as UPC-A with a leading '0'.
The experimental barcode API has improvements to decode time and decode rate for linear barcodes.
Added the ability to mask point clouds with a 2D binary mask. The new
Zivid::Maskclass (aZivid::Array2D<uint8_t>) can be constructed from aResolutionor from existing mask data such as an OpenCVcv::Mat. Apply it withPointCloud::mask()(in-place) orPointCloud::masked()(returns a copy): points where the mask is zero are kept, while points where the mask is non-zero are invalidated (set to NaN); colors and SNR are preserved. This restricts a point cloud to an arbitrary, per-pixel region of interest (e.g. from a 2D segmentation), complementing the existing 3D ROI-box filtering. The same masking is also available at frame level throughFrame::mask()(in-place) andFrame::masked()(returns a copy).Added the ability to apply 3D region-of-interest (ROI) box filtering to an already-captured point cloud with
PointCloud::maskByRegionOfInterest()(in-place) andPointCloud::maskedByRegionOfInterest()(returns a copy). Points outside the ROI box, defined by aSettings::RegionOfInterest::Box, are invalidated (set to NaN), and the filtering is performed on the compute device. Previously ROI-box filtering was only applied during capture viaSettings.Added
PointCloud::resolution(), returning the point cloud dimensions as aResolution.Added the host computer's Ethernet link speed to
CameraState, atCameraState::Network::LocalInterface::Ethernet::LinkSpeed(one per entry inCameraState::Network::LocalInterfaces). This complements the camera-side link speed added in 2.17.0, making it possible to inspect both ends of the Ethernet link and identify whether the PC's network interface is limiting throughput. Like the camera-side value, it is an enum (unknown,link10Mbps…link10Gbps). When the camera is connected, the relevant interface is the single one listed inLocalInterfaces.Improved
Settings::Sampling::Pixel::by4x4for Zivid 2+ R cameras to provide lower-noise images and more stable 3D data.Note: Pixel mapping is affected by this change, shifting row and column offset by 1 pixel relative to full resolution.
The rotational residual of a hand-eye calibration (
HandEyeResidual::rotation()) is now reported as NaN when the fiducial-marker configuration does not constrain rotation, instead of a meaningless value.This occurs when rotation is not observable from the detected marker centers — for example a single marker, or three or more collinear markers. The translational residual is still reported.
Lowered the minimum exposure time to 800 microseconds on Zivid 2+ R.
Improved ArUco marker detection.
The Visualizer window can now be closed by pressing the
Q(orq) key.The
Visualization::Visualizercan now display a 2D color image through a newshow(const Frame2D &)overload.Updated Zivid 2, 2+, 2+R and 3 firmware to version 1.39.2.
Zivid::FrameInfonow provides time spent during GPU compute as part ofZivid::FrameInfo::Metrics::KernelComputeTime.Zivid::FrameInfonow reports whether a frame is missing any data due to dropped network packets during transfer, through the newZivid::FrameInfo::Diagnostics::PacketLossvalue.Removed support for NVIDIA Jetson Linux 34.x and 35.x (part of JetPack 5.x) (Ubuntu 20.04 for Jetson)
Ubuntu 20.04 is End Of Life since May 31, 2025. Support for Ubuntu 20.04 is deprecated in this SDK release and may be removed in SDK 2.19.
スタジオ
Added a per-camera Health Check window, opened from the Cameras window, showing each health check dimension's status and value and refreshing live while the camera is connected.
Improved file camera support: you can now create a file camera from a captured frame or a ZDF file. When a file camera is connected, its prescribed acquisition and 2D/3D settings are locked to the values stored in the file, and a "Reset to file camera settings" action restores edited values at any settings level.
This feature is accessible from the side panel section "Camera" under the "…" menu.
When reprocessing is enabled, moving or resizing the ROI box now updates the displayed point cloud live, instead of only taking effect on the next capture.
The Cameras table now updates camera state live while open, so it can be used for live monitoring.
Fixed Import/Export Capture Settings being available when no camera is connected; these actions are now enabled only when a camera is connected.
Fixed a bug where Studio could attempt to auto-connect at startup to cameras that require a firmware upgrade.
バグの修正
Fixed a crash on process exit that could occur when an
ApplicationandCamerawere held as static or global objects and a capture was started but its returnedFramewas discarded without waiting for the result. Frame objects now wait for the in-progress capture to complete when destroyed.Fixed a regression introduced in firmware 1.39.0 where the projector would briefly flash on captures with
Brightnessset to 0, and on connect.Fixed an issue on Linux where camera discovery could throw "Failed to get interface metric" if a network interface went down while interfaces were being enumerated.
Fixed
UnorganizedPointCloud::paintUniformColorfailing on point clouds with more than approximately one million points. Uniform coloring now works on large point clouds.
2.17.2
API
Zivid 2、2+、2+R、および3のファームウェアをバージョン1.39.0にアップデートしました。
バグの修正
Settings2D::Sampling::Interval設定を有効にして色をキャプチャすると、一部のZivid 3カメラでマゼンタの色合いが発生する問題を修正しました。
2.17.1
API
Zivid 2、2+、2+R、および3のファームウェアをバージョン1.38.3にアップデートしました。
バグの修正
イーサネット接続が遅い状態でフル解像度の3D HDRを撮影すると、カメラが再起動する可能性があるカメラファームウェアのバグを修正しました。このバグはSDK 2.17.0で発生していました。
Nvidia Jetson Orinデバイスで2Dキャプチャを行う際のパフォーマンス低下を修正しました。この不具合はSDK 2.17.0で発生していました。
Zivid 2+ カメラの場合、
BarcodeDetector::suggestSettingsから返される輝度設定の値を変更し、これらの設定でキャプチャしようとしたときに例外がスローされないようにしました。
2.17.0
API
Zivid 3 XL250カメラのサポートを追加しました。
Zivid 3 XL250は、Zividが開発した新しいカメラプラットフォームで、要求の厳しい物流および製造現場向けに、高精度かつ大容量の3Dおよび2Dイメージングを実現します。
Zivid 3 XL250の詳細については、<https://www.zivid.com/zivid-3>をご覧ください。
Zivid 3 XL250に
Settings2D::Sampling::Interval設定を追加しました。これにより、周囲の光のちらつき周波数やその他のちらつきのある光源との同期が可能になり、安定したアーティファクトのないカラー画像を実現できます。Zivid 3 XL250向けに、新しい
Settings2D::Sampling::ColorモードrgbStrongAmbientLightを追加しました。これにより、周囲光が非常に強いシーンでも、より鮮明なカラー画像が得られます。実験的なバーコード読み取りAPIを追加しました。
Zivid::Experimental::Toolbox名前空間内の新しいBarcodeDetectorクラスは、さまざまな種類の線形(1D)コードとマトリックス(2D)コードの検出と復号を実行します。BarcodeDetectorはFrame2Dを入力として受け取り、そのフレーム内で正常に検出およびデコードされたすべてのバーコードのコード、フォーマット、および位置(画像座標)を返します。サポートされているリニア(1D)フォーマット:Code128、Code93、Code39、EAN-13、EAN-8、UPC-A、UPC-E
サポートされているマトリックス(2D)形式:QRコード、DataMatrix
最適な速度と信頼性を確保するためには、関連する/想定されるフォーマットのみを選択することをお勧めします。
バーコード読み取りAPIを使用するにはライセンスが必要です。Zividカスタマーサクセスチーム(<customersuccess@zivid.com>)がライセンス取得のお手伝いをいたします。
注:Zivid Studioのバーコード読み取り機能は、ライセンスなしで使用できます。
CameraState::Ethernet::LinkSpeedにカメラのイーサネットリンク速度を追加しました。リンク速度は、「接続済み」状態のカメラについてのみ把握できます。
これは、カメラとカメラが直接接続されているネットワーク機器間のイーサネットリンク速度を示しています。カメラとコンピュータ間の実際の転送速度を示すものではありません。
インフィールド補正APIを
Zivid::Experimental名前空間から移動し、以下の変更を加えました。InfieldCorrection.hヘッダーには、detectFeaturePointsメソッドとcaptureCalibrationBoardメソッドは含まれなくなりました。これらのメソッドは、既に非実験版のDetector.hヘッダーで利用可能です。InfieldCorrectionInputクラスは、検出結果がdetectCalibrationBoardの呼び出しによって作成されていない場合、または検出に使用されたフレームがcaptureCalibrationBoardによってキャプチャされていない場合、InfieldCorrectionDetectionStatus::invalidCaptureMethodを返す代わりに例外をスローするようになりました。
UnorganizedPointCloudクラスがVisualizerに表示できるようになりました。Visualizerクラスにcloseメソッドを追加しました。このメソッドはVisualizerのイベントループを停止し、ウィンドウを閉じます。UnorganizedPointCloudに、すべての点を特定のRGBA値に設定するメソッドpaintUniformColorを追加しました。UnorganizedPointCloudからXYZWデータ形式でポイントをエクスポートする機能を追加しました。Zivid 2+ ClassicおよびZivid 2カメラ向けに、新しい
Settings2D::Sampling::ColorモードrgbAmbientSuppressionを追加しました。Zivid 2、2+、および2+Rのファームウェアをバージョン1.38.1にアップデートしました。
Ubuntu 20.04 は、2025 年 5 月 31 日をもってサポートが終了します。この SDK リリースでは Ubuntu 20.04 のサポートは非推奨となり、SDK 2.18 で削除される可能性があります。
この SDK リリースでは、NVIDIA Jetson Linux 34.x および 35.x (JetPack 5.x の一部) のサポートは非推奨となり、SDK 2.18 で削除される可能性があります。
Python
Zividの
Visualizerクラスのサポートを追加しました。SettingsおよびSettings2Dクラスにcopy.deepcopyのサポートを追加しました。
.NET
.NETラッパーに、実験的なローカル点群位置合わせAPIを実装しました。
スタジオ
Zivid Studioのバーコード読み取り機能に対応しました。ユーザーがバーコード形式を選択でき、リアルタイムで視覚化できます。
バーコードの読み取りは、「表示」メニューの「バーコードを表示」をクリックすることで有効になります。
読み取るフォーマットを選択するには、「検出するバーコードを設定する」をクリックしてください。
Zivid Studioでのバーコード読み取りにはライセンスは必要ありません。
深度モードとレインボーポイントクラウドカラーリングモードに、Zレンジフィルターのスライダーを追加しました。
「接続済み」ステータスのカメラのイーサネットリンク速度は、「カメラ」ダイアログと「カメラネットワーク構成」ダイアログに追加されます。
バグ修正
GenTL Producerが
IFUpdateDeviceListを複数回呼び出した際にクラッシュする可能性があるバグを修正しました。周囲の光量が多い場合に、Zivid 2+Rで2Dキャプチャ画像にわずかに赤みがかった色合いが生じるバグを修正しました。
穴修復機能が2.05mを超える距離のデータをフィルタリングしないバグを修正しました。
取得設定セクションで「設定をデフォルトに戻す」をクリックするとStudioがクラッシュするバグを修正しました。
既知の問題
低速なイーサネット接続でフル解像度の3D HDRを撮影すると、カメラが再起動する場合があります。
これは、カメラが2.5Gbps以下のイーサネットに接続されている場合に発生する可能性があります。
複数のカメラが、例えばスイッチを介して、コンピューターの同じイーサネットポートに接続されている場合、このような現象が発生する可能性が高くなるかもしれません。
回避策としては、3D取得の回数を減らすか、Zivid 2+RおよびZivid 3の場合は3Dピクセルサンプリングモード「by2x2」、Zivid 2+ classicおよびZivid 2の場合は「blueSubsample2x2」などの代替設定を見つけることです。
この問題に対する修正プログラムはZivid社内でテスト中で、SDK 2.17.1で利用可能になる予定です。
今回のリリースでは、Nvidia Jetson Orinデバイスにおける2Dキャプチャ時間が、以前のリリースと比較して遅くなっています。この問題はSDK 2.17.1で修正される予定です。
すべての既知の問題と制限については、<https://support.zivid.com/latest/support/troubleshooting.html>、特に正誤表を参照してください。
2.16.0
API
Omniエンジンでローカル反射フィルタモードが利用可能になりました。グローバル反射フィルタモードと比較して、ローカル反射フィルタモードは次のようになります。
これまで削除されたり背景に埋もれてしまったりしていた、狭く近い表面に関するより正確なデータが得られる。
プロジェクターの影や低信号領域におけるアーティファクトの発生確率を低減します。
遠くにある表面が手前に引っ張られるのを防ぎます。
プロジェクターからの反射信号が非常に弱い物体では、撮像点の数が減少する可能性があります。これは、露光時間を長くすることで軽減できます。
PointCloud::toUnorganizedPointCloudメソッドを追加しました。このメソッドは、点群から無効な (z == NaN) ポイントを効率的に削除し、有効なポイントのみから XYZ、カラー、および SNR データを含むUnorganizedPointCloudを生成します (下記参照)。UnorganizedPointCloudクラスを追加しました。このクラスには、有効であることが保証されている (つまり NaN ではない) ポイントを表す XYZ、Color、および SNR データの線形配列が含まれています。センサー インデックス[i,j]を持つ整理された 2D グリッド上にデータが配置されるPointCloudとは異なり、UnorganizedPointCloudは任意の順序で配置できるポイントのコンパクトな線形リストです。このデータは、GPU アクセラレーションによる操作を可能にするために、計算デバイス (GPU) 上に保持されます。データは、PointCloudと同様のcopyDataAPI を使用して RAM にコピーできますが、これらのメソッドはArray1D<PointXYZ>、Array1D<ColorRGBA>などを返します。データは、rgba(i)とsnr(i)がポイントxyz(i)に属するカラーと SNR になるように整列されています。このクラスの目的は、複数の視点から取得した点群データを、単一のマルチビュー/360度点群に結合する(「ステッチング」する)ための構成要素として機能することです(整理された「PointCloud」形式が適切でない場合)。このクラスの主な特徴は以下のとおりです。
デフォルトコンストラクタ
UnorganizedPointCloud::UnorganizedPointCloud(): 後で拡張するための空の点群を作成します。メソッド
UnorganizedPointCloud::extend(other): 別の点群から点を追加して点群を拡張します。メソッド
UnorganizedPointCloud::transform(transform): 点群内のすべての点に変換を適用します。メソッド
UnorganizedPointCloud::voxelDownsampled(voxelSize, minPointsPerVoxel): 点群のボクセルダウンサンプリングバージョンを作成します。ボクセルダウンサンプリングは、3D 空間を指定されたサイズの立方体ボクセルのグリッドに分割します。ボクセル内の点の数が指定された制限以上の場合、そのボクセル内のすべてのソース点は、結果の点群で平均的な位置と色の単一の点に置き換えられます。ボクセル内のソース点の数が制限を下回る場合、結果の点群ではそのボクセルは空になります。メソッド
UnorganizedPointCloud::centroid(): 点群の重心、つまりすべての XYZ 点位置の平均を計算します。メソッド
UnorganizedPointCloud::center(): 点群をその場で移動して、重心が原点 (0,0,0) に位置するようにします。
ローカル点群レジストレーションを実行するための関数
Experimental::Toolbox::localPointCloudRegistration(target, source, params, initialTransform)を追加しました。source点群とtarget点群が与えられた場合、この関数はsourceをtargetに最も適切に位置合わせするためにsourceに適用する必要のある変換を計算しようとします。これは、異なるカメラアングルから収集したデータを組み合わせることで、オブジェクトの「ステッチされた」非構造化点群を作成するために使用できます。sourceとtargetが既にうまく一致していない場合、この関数は初期推定値を必要とします。初期推定値は、キャプチャ時のロボットの姿勢やシーン内の既知の参照マーカーなど、他の知識から得ることができます。フレームに対して異なる処理設定を使用して処理を再実行する関数
Experimental::reprocessを追加しました。測定された環境光のちらつき周波数を含む
Camera::measureSceneConditionsの一部として返されるSceneConditions::AmbientLight::FlickerFrequencyを追加しました。3Dポイントの2次元配列を入力として受け取り、ピクセル座標の2次元配列を返す
Projection::pixelsFrom3DPointsのオーバーロードを追加しました。PointCloud::transformedメソッドを追加しました。このメソッドは、ポイントクラウドをその場で変換するのではなく、変換後のコピーを返します。PCDファイル形式の仕様にlayoutオプションを追加し、.pcdファイルへのエクスポート時にorganizedレイアウトまたはunorganizedレイアウトを選択できるようにしました。Zivid製キャリブレーションボードZVDA-CB02のサポートを追加しました。
Zivid 2+ Rシリーズカメラは、投影時に明るさを0より大きい値に設定して撮影できるようになり、シーンと投影画像のコントラストを制御できるようになりました。
Zivid 2、2+、および2+Rのファームウェアをバージョン1.35.1にアップデートしました。
Python
今回のリリースから、zivid-python のバージョン管理方式が変更されました。zivid-python パッケージのバージョンは、サポートする Zivid SDK のバージョンと一致するようになります。詳細については、zivid-python の README ファイル(<https://github.com/zivid/zivid-python/blob/v2.16.0/README.md#versioning>)を参照してください。
zivid.Application()クラスが、release()メソッドが呼び出されない限り、前のインスタンスがスコープ外になった後に再作成できないバグを修正しました。
スタジオ
取得設定と処理設定は、2つのセクションに分けられました。
フレームの「再処理」機能を追加し、キャプチャ後にフレームの処理設定を調整できるようにしました。
再処理は、キャプチャセクションの「再処理」チェックボックスをクリックすることで、手動モードでのみ有効にできます。
診断設定を有効にしてキャプチャされたフレームのみが再処理可能です。
Studioにおける回転とパンニング機能の改善:
大きな回転によってカメラが反転してしまう不具合を修正しました。
大規模なシーンでのパンニングが格段に速くなりました。
Shiftキーを押しながら操作すると、ウィンドウの中心を中心にシーンを回転させることができます。
Studioの外観と操作感を現代的に刷新しました。
診断設定が有効になっている場合、Studioは設定のエクスポート時に確認ダイアログを表示します。
Studioで点群をPCD形式にエクスポートする際、エクスポートオプションダイアログでPCDファイルのレイアウトを選択できるようになりました。
「クリップボードにコピー」ボタンに、クリップボードが更新されたことを示すフィードバックを追加しました。
2.15.0
API
Zivid 2+ Rシリーズカメラにおいて、暗い部分やノイズの多い部分における色のアーティファクトを低減することで、2D画像の品質を向上させました。
これにより、使用するGPUの種類によっては、2Dキャプチャのキャプチャ時間が増加します。
ハイエンドのNvidia製GPUの場合、キャプチャ時間の増加は約5~10%です。
Intelの統合グラフィックスの場合、ハイエンドのIntelプロセッサでは約30~40%の増加、ローエンドのIntelプロセッサでは最大60%の増加が見込まれる。
2D+3Dキャプチャの場合、2D処理は3D取得と並行して行われるため、キャプチャ時間の増加はありません。
撮影時間の増加は、Zivid 2+ Rシリーズカメラのみに影響します。
深度不連続部付近のアーティファクトを低減する、法線ベクトル計算の改善:
使用するGPUの種類によっては、計算時間が増加します。
ハイエンドのNvidia製GPUの場合、計算時間は2~5msから6~12msに増加します。
ハイエンドのIntel統合グラフィックスの場合、計算時間は10~15msから25~30msに増加します。
低スペックのIntel統合グラフィックスの場合、計算時間は25~30msから60~70msに増加します。
Nvidia Jetson Orinモジュールの場合、計算時間は30~40msから45~55msに増加します。
「Sage」エンジンはもはや実験的なものではないとみなされています。
Experimental::PointCloudExport::exportFrame()を使用して点群をエクスポートする際に、PLY/PCD ファイルに法線ベクトルを含めるサポートを追加しました。DetectionResultクラスにstatusとstatusDescriptionを追加しました。statusは、検出が成功したか失敗したかを示すCalibrationBoardDetectionStatus列挙値を返します。statusDescriptionは、ステータスを説明する人間が読みやすい文字列を返します。
検出された特徴点をピクセル座標で格納する
featurePoints2DをDetectionResultクラスに追加しました。Jetson(CUDA)プラットフォーム上で、グローバル反射フィルタを位相エンジンまたはストライプエンジンと組み合わせて適用した際に得られる点群の品質を改善しました。以前は、Jetsonを使用した場合、OpenCLプラットフォームで同じ設定を使用した場合と比較して、反射によるアーティファクトが多く発生することがありました。今回の改善により、両プラットフォームで同等の良好な結果が得られるようになりました。
Experimental::Calibration::pixelMapping関数の動作を更新し、本来の用途により適したものにしました。以前のリリースでは、常に 3D からフル解像度へのピクセル マッピングを返していましたが、今回の更新では、指定されたキャプチャ設定によって示される 2D キャプチャへの 3D からのピクセル マッピングを返すようになりました。詳細については、関数のドキュメント文字列を参照してください。校正ボードの検出精度が向上しました。
暗いシーンにおけるArUcoマーカー検出の堅牢性を向上させました。
PointCloudとFrame2DにsRGBカラースペース用の新しい出力フォーマットを追加しました。ColorRGBA_SRGB、ColorBGRA_SRGB、PointXYZColorRGBA_SRGB、およびPointXYZColorBGRA_SRGBという新しい型を追加しました。PointCloudメソッドにcopyColorsRGBA_SRGB、copyColorsBGRA_SRGB()、copyImageRGBA_SRGB、copyImageBGRA_SRGB()、copyPointsXYZColorRGBA_SRGB、およびcopyPointsXYZColorBGRA_SRGB()を追加しました。「Frame2D」メソッド「imageRGBA_SRGB()」と「imageBGRA_SRGB()」を追加しました。
一貫性を保つため、
ColorSRGB型は非推奨となり、新しい型ColorRGBA_SRGBに置き換えられました。PointCloudメソッドのcopyColorsSRGB()とcopyImageSRGB()は非推奨となり、copyColorsRGBA_SRGB()とcopyImageRGBA_SRGB()に置き換えられました。Frame2DメソッドのimageSRGB()は非推奨となり、imageRGBA_SRGB()に置き換えられました。
点群の現在の変換行列を返す
PointCloud::transformationMatrix()メソッドを追加しました。変換が適用されていない場合は、単位行列が返されます。利便性を高めるため、
Settingsオブジェクトを受け取るProjectedImage::capture2Dのオーバーロードを追加しました。このオーバーロードは、SettingsオブジェクトのSettings::Color部分のみを使用し、Settings::Color部分が設定されていない場合は例外をスローします。文字列表現(例: "aruco4x4_50")から
MarkerDictionaryオブジェクトを作成するための静的メソッドMarkerDictionary::fromStringを追加しました。指定されたカメラ情報と設定に基づいて2Dフレームの解像度を返す関数
Experimental::SettingsInfo::resolution2Dを追加しました。Zivid 2、2+、および2+Rのファームウェアをバージョン1.33.4にアップデートしました。
.NET
Frameクラスは、自身が破棄される際に、そのPointCloudオブジェクトとFrame2Dオブジェクトも破棄するようになりました。これにより、破棄されなかった古いPointCloudまたはFrame2Dインスタンスが原因で、システムが計算デバイスのメモリ不足に陥る可能性があった問題が修正されます。FrameクラスのPointCloudプロパティとFrame2Dプロパティは、アクセスするたびに新しいPointCloudまたはFrame2Dインスタンスを返さなくなります。代わりに、インスタンスが破棄されるまで同じインスタンスを返し、破棄後に新しいインスタンスを作成します。
破棄可能なクラスは、オブジェクトが破棄された後にメソッドまたはプロパティが使用されると、
ObjectDisposedExceptionをスローするようになりました。オブジェクトが破棄されたかどうかを確認するために使用できる新しいプロパティIsDisposedが追加されました。Frame、Frame2D、およびPointCloudクラスにShallowCopyメソッドを追加しました。このメソッドは、元のインスタンスと同じGPU上のデータを参照するクラスの新しいインスタンスを作成します。これは、例えばFrameが破棄された後にPointCloudが必要になった場合など、データをコピーせずにデータの有効期間を延長するのに役立ちます。PointCloudクラスとFrame2DクラスにCloneメソッドを追加しました。このメソッドは、GPU上のデータを含む、オブジェクト内のすべてのデータのディープコピーを作成します。これは、元のオブジェクトに影響を与えずにデータを変更する必要がある場合に便利です。
スタジオ
点群を変換する機能を追加しました。
点群は、関心領域ボックスの原点に変換することができます。
変換行列はYAMLファイルに保存および読み込みが可能で、クリップボードにコピーすることもできます。
点群をPCD、PLY、またはASCIIポイントにエクスポートする場合、新しい「エクスポートオプション」ダイアログが表示され、ユーザーはエクスポートに関する追加オプションを選択できます。
Studioに「環境設定」ダイアログを追加しました。「ファイル」メニューからアクセスできます。環境設定は、
Preferences.iniファイルに保存され、Studioセッション間で保持されます。Linuxでは、このファイルは"${XDG_CONFIG_HOME-$HOME/.config}"/Zivid/Studio/に保存され、Windowsでは%LOCALAPPDATA%\Zivid\Studio\に保存されます。「Zivid Studioの新しいバージョンが利用可能です」という通知を無効にするオプションを追加しました。このオプションは「環境設定」ダイアログにあります。
[表示] メニューの「ファイルを開くときに 3D ビューをリセット」オプションの設定が、異なる Studio セッション間で保持されるようになりました。
複数のStudioインスタンス間で3Dビューを同期する機能を追加しました。この機能は、同じシーンの異なるキャプチャを比較する場合に特に便利です。同期する各Studioインスタンスの「環境設定」ダイアログで、この機能を有効にする必要があります。
3D点群表示にSNRカラーオーバーレイモードを追加しました。
関心領域ボックスの操作ウィジェットの外観と操作性を改善しました。
「関心領域:ボックス」設定の下にある「シーンに合わせる」ボタンをクリックすると、自動的に3Dビューに切り替わります。
カメラ接続処理が遅い場合に表示される説明テキストラベルを追加しました。これは、計算パイプラインで使用されるGPUカーネルの初期化が原因で発生する可能性があります。詳細については、<https://support.zivid.com/en/latest/support/long-connection-time.html> を参照してください。
ファイル保存/エクスポートダイアログは、以前に選択したファイル形式を記憶するようになりました。
変換処理済みの点群を含む.zdfファイルを読み込んだ際に、正しく表示されない問題を修正しました。この修正は、SDK 2.15以降で保存された.zdfファイルにのみ適用されます。
CLI
ZividExperimentalHandEyeCalibrationツールに、基準マーカー検出に使用する辞書を指定するための--dictionaryパラメータを追加しました。
GenICam
2Dキャプチャのサポートを追加しました。
カメラのキャプチャモードを制御する
CaptureModeパラメータを追加しました。このパラメータはCapture2D、Capture3D、およびCapture2D3Dモードをサポートします。
.ymlファイルから2Dキャプチャ設定を読み込む
LoadSettings2DFromFileパラメータを追加しました。このパラメータは、.yml ファイルへのファイルパスを受け入れます。Settings2D の .yml ファイルは、Zivid Studio または API からエクスポートするか、<https://support.zivid.com/en/latest/reference-articles/presets-settings.html> からダウンロードできます。
2Dキャプチャの設定は、既存の
LoadSettingsFromFileパラメータを使用して、2D+3D設定を組み合わせた.ymlファイルを読み込むことによっても設定できます。
GenICam で
CameraInfo情報を読み取り専用パラメータとして公開し、GenICam を介してカメラ情報に簡単にアクセスできるようにしました。例えば、カメラモデルの場合はCameraInfoModel、ファームウェアバージョンの場合はCameraInfoFirmwareVersionなどです。
Windows
Windowsインストーラーは、外観と操作性を向上させ、より堅牢なインストールプロセスを提供するために再設計されました。
新しいインストーラーのコマンドラインインターフェイスは、以前のバージョンから変更されています。以前の
/Sフラグと同等のサイレントインストールを実行するには、次のフラグを使用します。/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /TYPE=full。
バグの修正
2+Rシリーズカメラのファームウェアにおけるバグを修正しました。このバグでは、異なるピクセルサンプリング設定と短い露光時間で2D+3Dを繰り返し撮影すると、カメラが「タイムアウト」例外を発生させていました。
点群に大量のノイズ点が含まれる稀なケースで発生する可能性のあるバグを修正しました。このバグは、製造されたZividカメラのごく一部の機種でのみ発生する可能性がありました。
Sageエンジンにおいて、まれに非常に低いカバレッジの点群が生成されるバグを修正しました。
既知の問題と制限事項
すべての既知の問題と制限については、<https://support.zivid.com/latest/support/troubleshooting.html>、特に正誤表を参照してください。
2.14.2
バグの修正
ダウンサンプリングによって、穴修復フィルターによって埋められた点が削除されてしまうバグを修正しました。
あるプロセスでカメラを検出した際に、別のプロセスで実行されていたカメラのファームウェアアップデートが中断される可能性があるバグを修正しました。
2.14.1
スタジオ
ファイルカメラ使用時に、キャプチャサイドパネルの「シーン照明条件」ボックスが表示されるものの、テキストが表示されない不具合を修正しました。
バグの修正
Zivid 2+ Rシリーズカメラの色精度が向上し、わずかな赤みがかった色合いが除去されました。
StripeまたはSageエンジンを使用して16件以上の取得をキャプチャすると、インデックスが範囲外であるという例外が発生するバグを修正しました。
2.14.0
API
Zivid 2+ MR60、MR130、LR110カメラモデルのサポートを追加しました。
Zivid 2+ Rシリーズカメラは、Zividの次世代3Dカメラです。
これらのカメラは、取得およびキャプチャ速度の向上、さまざまな周囲光条件下でも安定したより鮮明なカラー画像、新しい「Sage」エンジンによる反射抑制など、数多くの改良が施されています。
Zivid 2+ Rシリーズの詳細については、<https://www.zivid.com/zivid-2-plus-r-series>をご覧ください。
新しい実験的な「Sage」エンジンを追加しました。
「Sage」エンジンは、すべてのポイントが特に高い信頼性で正確であることが求められるユースケース向けに設計されています。このエンジンは、反射アーティファクトの除去に非常に適しています。
Stripeエンジンと比較して、Sageエンジンは信頼度の低いデータが削除されるため、返されるポイント数が少なくなる可能性があります。
「Sage」エンジンは、Zivid 2+ Rシリーズカメラでのみ利用可能です。
「Sage」エンジンは実験段階であり、今後変更される可能性があります。
Zivid::Settings2Dオブジェクトを使用して、2D+3Dキャプチャの2Dカラー画像取得および処理設定を指定する機能を追加しました。新しい設定項目
Zivid::Settings::Colorが追加されました。この設定項目はZivid::Settings2Dオブジェクトに設定できます。Zivid::Settings::Colorを使用すると、2D+3Dキャプチャ用のカスタム2D取得設定(ExposureTime、Aperture、Brightness、Gain)を指定できます。これにより、ユーザーは2Dと3Dの取得設定を個別に完全に制御できます。Zivid::Settingsの既存の色設定 (Zivid::Settings::Sampling::ColorおよびZivid::Settings::Processing::Color配下のすべての設定) は非推奨となり、SDK 3.0 で削除されます。SDK 3.0 がリリースされるまでは、既存の設定オブジェクトと settings.yml ファイルは、この SDK リリース以前と同様に引き続き動作します。今後は、2D+3D キャプチャの 2D 取得および処理設定を定義する推奨される方法は、新しいZivid::Settings::Color設定を使用することです。すべてのプリセットは、
Settings::Colorの値が微調整されて更新されました。注:
CaptureAssistant::suggestSettings()関数は、Zivid::Settings::Colorが定義されている設定を返すようになりました。suggestSettings()を使用してキャプチャ前に返された設定を後で変更する場合(たとえば、Settings::Sampling::PixelやSettings::Sampling::Colorを調整する場合)、返されたSettings::Color設定にも同様の変更を加えることをお勧めします。
2D+3D、3Dのみ、または2Dのみのキャプチャを実行するための新しいキャプチャメソッド
Camera::capture2D3D(settings)、Camera::capture3D(settings)、Camera::capture2D(settings)、およびCamera::capture2D(settings2D)を追加しました。これらの新しいキャプチャ方法を使用すると、単一の
Zivid::Settings.yml ファイルに基づいて、2D キャプチャと 3D キャプチャを個別に、または組み合わせて実行できます。既存の
Camera::capture(settings)およびCamera::capture(settings2D)メソッドは非推奨となり、SDK 3.0 で削除されます。このリリースで導入された新しいcapture2D3D()/capture2D()/capture3D()メソッドへの移行を推奨します。新しい
Camera::capture2D(settings)およびCamera::capture2D3D(settings)メソッドを使用するには、新しい設定Settings::ColorがSettings2Dオブジェクトで定義されている必要があります。既存の .yml ファイルは、Zivid Studio にインポートしてから設定を .yml に再エクスポートすることで、新しい形式に変換できます。これにより、Settings::Colorの値が、この SDK リリース以前と同じ 2D カラー動作になるように設定されます。
キャプチャされた2D+3Dフレームからネイティブ2D解像度のFrame2Dを返す
Frame::frame2D()メソッドを追加しました。この
Frame2Dオブジェクトは、フレームのPointCloudとは異なる解像度を持つ場合があります。PointCloudには、3D データとカラー値が含まれています。Frame2Dカラー画像と 3DPointCloudの解像度は、使用されるSampling::PixelおよびResampling::Modeの設定によって異なります。2D+3Dキャプチャの場合、
PointCloudには3D解像度に合わせてマッピングされた色が含まれます。PointCloudの色は、キャプチャされた2Dカラー画像と解像度が異なる場合(たとえば、2D設定がSettings2D::Pixel::Sampling::allで、3D設定がSettings::Pixel::Sampling::blueSubsample2x2の場合)、必要に応じてアップサンプリングまたはダウンサンプリングされます。
2D HDRキャプチャのサポートを追加しました。
2D HDRで取得した画像は、3D HDRキャプチャのために2Dカラー画像と全く同じように合成されます。
2D-HDR撮影の場合、すべての「絞り」の値は同じでなければなりません。そうでない場合、撮影時に例外が発生します。
Settings2D::Processing::Color::Experimental::Modeという新しい設定を追加しました。これは、Settingsにある既存の設定と同等の機能です。この設定を使用すると、2Dキャプチャのトーンマッピングを有効にできます。自由度が低いロボット(6自由度未満のロボット)向けのハンドアイキャリブレーションの実験的なサポートを追加しました。
検出された特徴点の位置(キャリブレーションボードの正方形の中心)を返す
Calibration::DetectionResult::featurePoints()メソッドを追加しました。現在のシーンの環境光条件を測定する
Camera::measureSceneConditions()メソッドを追加しました。この方法は、目立った周囲光のちらつきが検出されたかどうか、そしてその光が50Hzまたは60Hzの電力網を示しているかどうかを報告します。
指定されたカメラモデルに対応する2D設定プリセットを返す関数
Presets::categories2D()を追加しました。Zividカメラに接続されているローカルネットワークインターフェースの名前、サブネットマスク、IPアドレスを含む
Network::LocalInterfacesをCameraStateクラスに追加しました。FrameInfoクラスにMetrics::AcquisitionTimeとMetrics::CaptureTimeを追加しました。ComputeDeviceクラスにvendor()メソッドとmodel()メソッドを追加しました。Matrixクラスに静的ファクトリ関数identity()を追加しました。Calibration::MarkerDictionaryクラスにtoString()メソッドを追加しました。フレームをPLY、PCD、またはXYZ形式でエクスポートするための実験的なAPI
Experimental::PointCloudExport::exportFrame()を追加しました。Frame::save()関数を使用する場合と比較して、この新しい API では、順序付きまたは順序なしの PLY 形式で保存する、線形または sRGB カラーを使用するなど、より多くのオプションを制御できます。
.yml ファイルの解析に失敗した際のエラーメッセージを改善しました。エラーメッセージには、エラーに関する詳細情報と、.yml ファイル内のエラー発生箇所がより明確に表示されるようになりました。
ファイルカメラの
CameraInfo::ModelNameを、SDK バージョンに続くFileCamera-ではなくFileCameraに変更しました。ノイズ抑制フィルターとノイズ修復フィルターの速度を最大2倍向上させました。
Intel製統合型GPUの場合、キャプチャあたり約35~50msの改善が見られる一方、Nvidia製GPUの場合は、GPUモデルの性能に応じて約3~10msの改善が見られる。
フレームにZividキャリブレーションボードが含まれていない場合の
Calibration::detectCalibrationBoard()関数の速度を改善しました。印刷されたキャリブレーションボードを使用した手と目のキャリブレーションのサポートは削除されました。このリリース以降は、ZividキャリブレーションボードとArUcoマーカーのみがサポートされます。
Zivid 2および2+のファームウェアをバージョン1.31.3にアップデートしました。
C++
Zivid C++ APIを使用するには、C++17以降をサポートするコンパイラが必要になりました。
Zivid SDKがサポートするすべてのコンパイラ/OSは既にC++17をサポートしていますが、場合によってはC++17サポートを明示的に有効にする必要があるかもしれません。
CMake を使用する場合は、
set(CMAKE_CXX_STANDARD 17)コマンドを使用できます。CMakeを使用せずにVisual Studioを使用する場合は、プロジェクト設定 -> プロパティ -> C/C++ -> 言語 -> C++言語標準でC++17を有効にできます。
別のビルドシステムを使用する場合、またはコンパイラを直接呼び出す場合は、コンパイラ引数
-std=c++17を追加できます。
.NET
関数
Zivid.NET.Experimental.SettingsInfo.Resolutionを追加しました。この関数は、指定されたカメラ情報と設定に基づいて、キャプチャされたフレームの解像度を返します。
FrameクラスにClone()メソッドを追加しました。Application、ComputeDevice、Frame、Frame2D、Image、およびMarkerDictionaryクラスにToString()メソッドを追加しました。
GenICam
キャプチャ設定を.ymlファイルから読み込むためのパラメータ
LoadSettingsFromFileを追加しました。このパラメータは、.yml ファイルへのファイルパスを受け入れます。設定用の .yml ファイルは、Zivid Studio または API からエクスポートするか、<https://support.zivid.com/en/latest/reference-articles/presets-settings.html> からダウンロードできます。
このパラメータを設定すると、他の Zivid キャプチャ設定パラメータが .yml ファイルの内容に合わせて更新されます。
新しい
Settings::Color設定(上記の API セクションを参照)は、LoadSettingsFromFileパラメータを介してのみ設定できます。Zividは、GenICamのすべてのユーザーに対し、個々のGenICamパラメータを介してキャプチャ設定を構成するのではなく、.ymlファイルを使用するように移行することを推奨します。
Zivid GenTL プロデューサーからのカラー出力が sRGB またはリニアカラースペースのどちらになるかを制御するパラメータ
CameraOutputColorSpaceを追加しました。今回のリリース以前は、GenICamのプロデューサーは常に線形RGBカラーを返していました。
デフォルト値は
sRGBで、GenICamで表示される色はZivid Studioで表示される色と全く同じです。SDK 2.13の動作を維持する必要がある場合は、このオプションをlinearRGBに設定してください。
デフォルトとは異なる
SamplingPixel設定でキャプチャした場合に発生するGC_ERR_BUFFER_TOO_SMALLエラーを修正しました。Windows環境におけるZivid GenTLProducerライブラリのインストール済みCMakeターゲットを修正しました。
Zivid GenTLプロデューサーからのエラー報告機能が改善されました。
バグの修正
Camera::applyNetworkConfiguration()は、カメラの IP を予約範囲 0.0.0.0/8 または 169.254.0.0/16 の IP に設定すると例外をスローするようになりました。Calibration::detectMarkers()は、2D 画像で ArUco マーカーが検出されたが、関心領域ボックスの外にある場合、または 3D データがない場合でも、例外をスローしなくなりました。HandEyeの入力に問題があった場合、HandEyeキャリブレーションが無効な結果を返す代わりにOpenCV例外をスローしてしまうバグを修正しました。
HandEye入力の一部にArUcoマーカーが欠落していても、キャリブレーションが失敗することはなくなりました。
Stripeエンジンを使用してHDRキャプチャを実行する際に、少なくとも1つの画像が適切に露出されている場合に、露出オーバーの画像からのデータによって誤ったポイントが発生する可能性があるバグを修正しました。このバグは、Nvidia Jetsonを使用している場合、またはノイズ修復フィルターが有効になっている場合に発生する可能性があります。
ネットワークインジケーターLEDが、場合によっては正しいネットワークリンク状態を表示しない問題を修正しました。この問題はSDK 2.13以降発生していました。
まれにキャプチャ時に
CameraImageTimeoutエラーが発生するバグを修正しました。
スタジオ
3Dビュー内で関心領域ボックスを簡単に調整できるマニピュレーターウィジェットを追加しました。
関心領域設定セクションに「シーンに合わせる」ボタンを追加しました。このボタンをクリックすると、点群を囲むようにROIボックスが自動的に設定されます。
キャプチャサイドパネルに、キャプチャの種類を制御する2D / 2D+3D / 3Dモードセレクターを追加しました。
これらの新しいモードはそれぞれ、
Camera::capture2D/capture2D3D/capture3Dメソッドに対応しています(上記のAPIを参照)。
3Dビューにレインボーカラーモードを追加しました。キーボードショートカットは「R」です。
カメラネットワーク設定ウィンドウに、PCのローカルネットワークインターフェース名、ローカルIPアドレス、ローカルサブネットマスクを表示するラベルを追加しました。
2Dキャプチャプリセットを追加しました。2Dプリセットは、2Dモードが選択されている場合にのみ表示されます。
3Dビューの左下隅に軸インジケーターを追加しました。このインジケーターは「表示」メニューで無効にできます。
表示メニューに「4x4 Arucoマーカーを表示」オプションを追加しました。このオプションを選択すると、3Dビューで見つかった4x4_250辞書から4x4 Arucoマーカーがハイライト表示されます。
シーン内で著しい環境光干渉が検出された場合、キャプチャパネルに情報ラベルが追加されます。
50Hzまたは60Hzの電力網を示す顕著な周囲光のちらつきが検出された場合、ラベルには50Hzまたは60Hzの周囲光適応機能を有効にするようユーザーに推奨するメッセージが表示されます。
カメラに接続する際に、シーンの周囲光条件が測定されます。また、キャプチャセクションの「…」メニューから「シーンの照明条件を測定」を選択することで、必要に応じて測定することもできます。
フッターに、2Dカラー画像、深度マップ、SNRマップ、または法線マップの解像度を示すラベルを追加しました。
インフィールド補正ウィザードの「…」メニューに、最後に行った測定値を削除するオプションを追加しました。
ファイルメニューに、SNRマップを.png画像として保存するオプションを追加しました。
ファイルメニューに、ノーマルマップを.png画像として保存するオプションを追加しました。
Zivid Studioで使用されているsRGBカラースペースを使用して、PLY/PCD/XYZファイルにエクスポートするオプションを追加しました。sRGBカラーを使用してエクスポートすることで、エクスポートされたファイルの色がZivid Studio内の色と完全に一致することが保証されます。
診断モードが有効になっている状態で、ファイルメニューから設定を.ymlファイルにエクスポートする際に、確認ダイアログを表示するようにしました。
ファイル→開くダイアログからZividファイルカメラ(.zfcファイル)を開く機能を追加しました。.zfcファイルを開く際、Studioにファイルカメラが表示されるまで数秒かかる場合がありますのでご注意ください。
ファイルエクスプローラーで.zdfまたは.zfcファイルをダブルクリックして開く機能を追加しました。
3Dビューの「ポイントサイズ」オプションを変更し、ポイントサイズを数値で表示するようにしました。また、ポイントサイズのオプションを追加しました。
マルチサンプルアンチエイリアシング(MSAA)を用いることで、3D点群のレンダリング品質を向上させた。
レンダリング機能を改良し、点やその他のオブジェクトのサイズを画面のDPIスケーリングに合わせて調整するようにしました。
右側パネルの設定項目の全体的な構造と構成を改善しました。
一部のラベル、ボタン、入力フィールドの外観と操作性を改善しました。
Studioが意図したカスタムフォントではなく、システムのデフォルトフォントを使用してしまうバグを修正しました。
情報パネルのラベルにカーソルを合わせた状態でライブモードでキャプチャしている際に、Studioが「ToolTip: ポップアップを開くウィンドウが見つかりません」というエラーで終了してしまうバグを修正しました。
Studioではキャプチャアシスタントはオプションとして提供されなくなりました。Zividは、最適なキャプチャ品質を得るために、プリセットの使用を推奨しています。
CLI
複数のカメラが接続されている場合に、すべてのカメラのファームウェアを並行して更新することで、
ZividFirmwareUpdaterの処理速度を向上させました。
非推奨の通知
設定項目
Settings::Sampling::ColorおよびSettings::Processing::Color配下のすべての設定項目は非推奨となり、SDK 3.0 で削除されます。これらの設定項目に代わる新しい設定項目Settings::Colorがこのリリースで導入されました。詳細については、上記の API セクションを参照してください。Camera::capture()関数は非推奨となり、SDK 3.0 で削除されます。代替メソッドはCamera::capture2D3D()、Camera::capture3D()、およびCamera::capture2D()です。詳細については、上記の API セクションを参照してください。
既知の問題と制限事項
Zivid SDKは、ZividUtilsという追加の動的ライブラリをインストールして使用するようになりました。
ライブラリの名前は、Linux では libZividUtils.so、Windows ではリリースモードの場合は ZividUtils.dll/ZividUtils.lib、デバッグモードの場合は ZividUtilsd.dll/ZividUtilsd.lib です。
「未解決の外部シンボル」などのエラーが発生した場合は、既存の ZividCore ライブラリと同様に、ZividUtils ライブラリがプロジェクトの依存関係として追加されていることを確認してください。CMake を使用している場合は、プロジェクトを再生成するだけで十分です。CMake を使用せずに Visual Studio を使用している場合は、プロジェクト設定 -> リンカー -> 入力で新しいライブラリを追加する必要がある場合があります。
すべての既知の問題と制限については、<https://support.zivid.com/latest/support/troubleshooting.html>、特に正誤表を参照してください。
2.13.1
バグの修正
Calibration::MarkerShape::pose()から返される ArUco マーカーのポーズの向きが、キャリブレーションボードのポーズと一致しない問題を修正しました。検出された ArUco マーカーのすべてのポーズは、正の z 方向、つまりカメラから離れる方向を指すようになりました。ArUco マーカーのポーズはバージョン 2.13.0 で導入されました。
2.13.0
API
Zividカメラのネットワーク設定を取得および変更するための新しいAPIを追加しました。
カメラの現在のネットワーク/IP構成を取得するには、
Camera::networkConfiguration()を呼び出してください。新しい設定を含む
NetworkConfigurationオブジェクトを引数としてCamera::applyNetworkConfiguration(...)を呼び出すと、この設定がカメラに適用されます。Zividはマルチキャストを使用してカメラを検出および設定します。つまり、PCとカメラのIPアドレス/サブネット設定が一致していなくても、PCと同じネットワーク上にあるすべてのZividカメラが検出され、設定できます。この機能を使用するには、Zividカメラのファームウェアバージョン1.16.0以降(SDK 2.10.0以降に相当)が必要です。
Zivid Studioでは、カメラネットワークの設定も可能です。詳細については、下記のStudioセクションをご覧ください。
点群から1つ以上のArUcoマーカーを検出するための関数
Zivid::Calibration::detectMarkers(...)を追加しました。戻り値には、マーカーの角の2D+3D座標と、中心姿勢(位置+向き)が含まれます。
ArUcoマーカーを使用した手と目のキャリブレーションのサポートを追加しました。
ArUcoマーカーに基づく手と目のキャリブレーションのAPIは、現在のキャリブレーションボード用の手と目のキャリブレーションAPIと同一ですが、
detectFeaturePoints(...)の代わりにZivid::Calibration::detectMarkers(...)を呼び出す必要があります。ユーザーは、シーン内に存在するマーカー(1つまたは複数)を指定する必要があります。各ロボットのポーズに関連付けられた3Dキャプチャには、それらのマーカーのサブセットのみが表示されていれば十分です。
既存の
Zivid::Experimental::Calibration::detectFeaturePoints(...)関数と同じ機能を持つが、実験的ではない関数Zivid::Calibration::detectCalibrationBoard(...)を追加しました。既存の
Zivid::Experimental::Calibration::captureCalibrationBoard(...)と同じ機能を持つが、非実験的な関数Zivid::Calibration::captureCalibrationBoard(...)を追加しました。Stripeエンジンを使用したHDR処理時に露出オーバーになりやすい明るい被写体における点群の品質が向上しました。
Settings/Settings2Dなどのデータ型を文字列にシリアル化/逆シリアル化するためのAPIを追加しました。オブジェクトのシリアル化/逆シリアル化には、
serialize()メソッドとfromSerialized()静的関数を使用します。オブジェクトはYAML形式でシリアル化されます。
Ubuntu 24.04のサポートを追加しました。
Zivid 2および2+のファームウェアをバージョン1.26.3にアップデートしました。
バグ修正
Intel製GPUドライバーを使用しているWindows環境で、キャプチャ中に発生する可能性のあるクラッシュを修正しました。
カメラの内部機能が設定のリサンプリングオプションを尊重しないバグを修正しました。
Application::cameras()を呼び出すと、CPU コアの 100% が使用される問題を修正しました。Application::cameras()を呼び出す際に、まれに発生する可能性のあるクラッシュを修正しました。これは、関数呼び出し中にカメラの状態が変化した場合(例えば、カメラにアクセスできなくなったり、ネットワークから消えたりした場合)に発生していました。ファームウェアのバグを修正しました。このバグでは、パディングが正しくないイーサネットフレームが破棄され、カメラへの接続時に例外が発生していました。VLAN構成を持つ一部のスイッチがこの問題の影響を受けていました。
ファームウェアのバグを修正しました。SDKアプリケーションがキャプチャ中に中断された場合、カメラのネットワークインターフェースがハングアップし、カメラが再起動してしまうことがありました。
Windowsインストーラーにおいて、以前のSDKバージョンからアップグレードした場合に、インストールディレクトリ内のファイルが欠落する可能性がある問題を修正しました。
Windowsインストーラーで、重複した、または以前にアンインストールされたZivid SDKエントリがWindowsの「プログラムと機能」/「インストール済みアプリ」リストに表示される問題を修正しました。
WindowsインストーラーでZivid GenICamラッパーをインストールする際に、環境変数
GENICAM_GENTL64_PATHが存在しない場合、Zivid SDKがGENICAM_GENTL64_PATHに追加されず、RegAddPathToVarエラーに関するポップアップダイアログが表示される問題を修正しました。
スタジオ
メインメニューバーからアクセスできる新しい「カメラ」ウィンドウを追加しました。このウィンドウには、検出されたすべてのZividカメラのリストが表示されます。
この表には、各カメラのシリアル番号、モデル名、IPアドレス、および現在の状態が記載されています。
ファームウェアのバージョンとハードウェアのリビジョンは、モデル名にカーソルを合わせるとツールチップに表示されます。
Zividカメラのネットワーク/IP設定を行うためのフォームを追加しました。このフォームは、「カメラ」ウィンドウでカメラのIPアドレスの横にある「設定」ボタンをクリックすると表示されます。
「カメラ」ウィンドウを使用して、複数のカメラのファームウェアを並行してアップデートする機能を追加しました。
「Zivid Studioについて」、「法的通知」、「システム情報」ウィンドウの外観と操作性を調整しました。
「...」ボタンをクリックしたときに表示されるポップアップメニューの外観と操作性を調整しました。
露出時間などの一部の設定で値を入力し、Tabキーを押して次の設定に移動した際に、数値が最も近い推奨値(露出時間の場合は8333または10000の最も近い倍数)に変更されるバグを修正しました。
Windowsインストーラーの最終ページに「Zivid Studioを起動する」オプションを追加しました。
非推奨の通知
SDK 2.13は、C++ APIでC++11をサポートする最後のリリースです。SDK 2.14以降では、C++17以降が必要になります。
既知の問題と制限事項
すべての既知の問題と制限については、<https://support.zivid.com/latest/support/troubleshooting.html>、特に正誤表を参照してください。
2.12.0
API
Nvidia Jetson Orinのサポートを追加しました。
Nvidia Jetson Orin を使用する際の既知の問題については、下記の「既知の問題と制限事項」を参照してください。
Omniエンジンの品質と性能を向上させました。
新しく改良されたOmniエンジンは、透明な物体をより短時間でより広範囲にカバーします。
Omniでは、前景と背景の距離がより大きい透明な物体も撮影できるようになりました。
エッジアーティファクト、浮動平面、浮動小数点の上昇が大幅に低減されます。
Omniエンジンは、同じレベルのカバー範囲を得るために必要な光量が少なくなり、すべてのZivid 2+カメラモデルで撮影時間を最大2倍短縮できる可能性があります。Zivid 2+ M60では、撮影時間がさらに28%短縮されます。
Settings::RegionOfInterest::Boxを使用することで、取得および処理時間を大幅に短縮できる可能性があります。SDKは、対象領域外となることが確実なセンサーデータの取得および処理を回避できる。
処理速度の向上率は、ROIボックスのサイズと形状によって異なります。一般的に、カメラの視点から見たROIボックスが小さいほど、処理速度は向上します。
サブサンプリングされた2Dキャプチャを実行するための新しい
Settings2D::Sampling::Pixelを追加しました。サブサンプリングされた2Dキャプチャは、フル解像度の2Dキャプチャよりもかなり高速になる場合があります。
利用可能なオプションは
Settings::Sampling::Pixelを反映しているため、ユーザーは対応する3Dキャプチャの色データと完全に一致する2Dキャプチャを要求できます。
点群のアップサンプリング/ダウンサンプリングを行うための新しい設定項目「Settings::Processing::Resampling」を追加しました。
これらの操作は、他のすべての処理が完了した後に実行されます。
ダウンサンプリングは、点群の点数を削減するために使用されます。これは、元の点群の2x2または4x4ピクセルのグループをそれぞれ結合して、新しい点群の1ピクセルにすることで行われます。このダウンサンプリング機能は、PointCloudクラスのdownsample()メソッドと同一です。
アップサンプリングは、既存のサブサンプリングモードと組み合わせて使用することで、サブサンプリングによるキャプチャの速度上の利点を維持しながら、出力点群の解像度を向上させることができます。これは、計算されたピクセルを高解像度にマッピングし、可能な場合はその間の欠落点を補間することによって実現されます。
投影APIはもはや実験的な機能ではありません。
関数とクラスは、名前空間
Zivid::ExperimentalからZivid::Projectionに移動されました。関連するヘッダーファイルは、Zivid/ExperimentalからZivid/Projectionに移動されました。
いくつかの設定は実験的なものではなくなり、設定階層内で移動されました。
エンジン設定が
Settings::Experimental::EngineからSettings::Engineに移動されました。反射除去フィルターのモード設定が、
Settings::Processing::Filters::Reflection::Removal::Experimental::ModeからSettings::Processing::Filters::Reflection::Removal::Modeに移動しました。HoleFilling フィルターは Hole Repair フィルターに名称変更されました。設定項目は
Settings::Processing::Filters::Experimental::HoleFillingからSettings::Processing::Filters::Hole::Repairに移動/名称変更されました。これらの設定をコード内で直接行う場合は、コードを更新して設定箇所を新しい場所に合わせる必要があります。
以前の SDK で作成された Settings.yml ファイルは、2.12 でも引き続き動作します。ただし、これらの .yml ファイルを手動で変更し、ファイル上部の
__version__.dataフィールドを 24 以上に変更した場合は、設定ノードを更新して新しい場所を反映させる必要があります。そうしないと、.yml ファイルの読み込み時に「YAML ドキュメントに不明なキーが含まれています」という例外が発生します。
StripeエンジンとOmniエンジンは、もはや実験段階ではありません。
CameraInfoクラスにHardwareRevision文字列を追加しました。Zivid 2+の取得時間を短縮:
3Dキャプチャにおける取得時間が約5%短縮された。
2D画像取得における取得時間を最大50%短縮。
フル解像度のPhase Engine 3DキャプチャにおけるRGBカラー値の信頼性と精度が向上しました。
この変更により、露光時間が制限される撮影(高性能GPUと長時間露光)では若干のパフォーマンス低下が生じ、演算能力が制限される撮影(低性能GPUと短時間露光)では若干のパフォーマンス向上が生じます。
低スペックGPUでのパフォーマンス向上のため、3Dキャプチャにおけるカラー処理を最適化しました。
カラーを有効にしたフル解像度の3Dキャプチャは、最大10%高速化されます。
色を有効にしたサブサンプリング3Dキャプチャは、最大20%高速化されます。
ローカルモードのリフレクションフィルターが、低スペックGPUにおいて最大15%高速化されました。
カメラ起動後60秒間、カメラ情報を表示するスプラッシュスクリーンを追加しました。
起動画面には、Zividのロゴ、カメラのシリアル番号、IPアドレス、ファームウェアのバージョン、ネットワーク接続状態が表示されます。
スプラッシュ画面は60秒後に消えるか、SDK/Studio経由でカメラに接続すると消えます。
スプラッシュスクリーンはデフォルトで有効になっていますが、ZividNetworkCameraConfiguratorツールを使用して無効にすることができます。
複数のローカルネットワークインターフェースからアクセスできるカメラは、アクセス不能として報告されなくなりました。
以前は、カメラのIPアドレスに複数のローカルネットワークインターフェースからアクセスできる場合、そのステータスは「アクセス不可」となり、
CameraState::InaccessibleReasonはipInMultipleLocalSubnetsとなっていました。しかし、この状態は、有効なネットワーク構成によっては真となる場合もあるため、現在はアクセス不可のカメラとして報告されなくなりました。
Zivid 2および2+のファームウェアをバージョン1.22.4にアップデートしました。
.NET
.NETに現場校正のサポートを追加しました。
バグの修正
関数
detectFeaturePoints(Frame)が、Frameが関数captureCalibrationBoard(Camera)から取得されたものでない限り例外をスローするバグを修正しました。detectFeaturePoints(Frame)は、任意のFrameを入力として受け入れるようになり、より厳しい要件は、ユーザーがDetectionResultを現場での検証または修正に使用しようとした場合にのみ適用されます。オムニエンジンのSNRが、遮蔽された領域やノイズの多い領域で誤って計算されるバグを修正しました。これにより、ノイズフィルターを使用してノイズの多いエッジを効果的に除去することが妨げられていました。
Windows 上の Intel OpenCL ドライバーの一部の新しいバージョンで、
Frame2Dオブジェクトがアクティブな状態でApplicationオブジェクトが破棄された場合に発生する可能性のあるクラッシュを修正しました。非常にまれなバグで、キャプチャが「内部エラー:取得完了信号が受信されませんでした!」という例外で失敗する場合がある問題を修正しました。
スタジオ
情報パネルに「取得時間」を追加しました。「取得時間」とは、撮影開始からカメラが最後の画像を取得するまでの時間を指します。
「ファイル」メニューに「深度マップを保存」オプションを追加し、深度マップをJetカラーマップの.png画像として保存できるようにしました。
情報パネル内のすべての設定ノードに、説明的なツールチップを追加しました。
CLI
ZividListCamerasの出力では、製品ラベルに記載されているリビジョンと一致する「ハードウェアリビジョン」が英数字の文字列として表示されるようになりました。以前は、メジャーバージョンとマイナーバージョンが整数で表示されていました。
ZividFirmwareUpdaterは、カメラが見つからない場合、エラーコードで終了するようになりました。以前は、ツールはコード0で正常に終了していました。
サポートの削除
Zivid One+ カメラは、SDK でのサポートが終了しました。Zivid One+ をサポートする最後の SDK は 2.11 です。
接続されたZivid One+カメラは、API、Zivid Studio、またはZividListCamerasには表示されません。
Ubuntu/Linux の
zivid-telicam-driverDebian パッケージ、および Windows の TELICAMSDK アプリケーションは、SDK では不要になりました。Zivid SDK の Windows インストーラーには、コンピューターから TELICAMSDK をアンインストールするオプションが表示されます。
Visual Studio 2017 は SDK でのサポートが終了しました。Windows ユーザーは Visual Studio 2019 以降に移行する必要があります。
既知の問題と制限事項
Nvidia Jetson Orinの既知の問題:
すべてのJetson Orinモジュールがサポートされており、ZividはOrin AGX、Orin NX、Orin Nanoモジュールをテスト済みです。
Jetson Orin NanoはSDKでサポートされていますが、Orin NanoのRAMは合計4GB/8GBのみで、GPUとCPUで共有されます。4GBでは、Zivid SDKを使用するアプリケーションを実行するには一般的に不十分です。一方、8GBでも、特に長時間のキャプチャ、Stripe/Omniエンジンの使用、多数のフィルタの有効化などを行う場合、またユーザーコードで使用されるRAMの量によっては、不十分な場合があります。Jetson Orinを8GB以下のRAMで使用する場合は、アプリケーションのRAM使用量を慎重に評価する必要があります。
Zivid Studioのツールチップが、場合によっては正しく表示されないことがあります。その場合は、「システムモニター」など、画面に継続的に描画を行う別のアプリケーションを開いておくと、この問題を回避できます。
Visualizerクラスは、キーボードショートカットを使用した場合に、点群出力を正しく更新しない可能性があります。
すべての既知の問題と制限については、<https://support.zivid.com/latest/support/troubleshooting.html>、特に正誤表を参照してください。
2.11.1
API
Zivid 2 および 2+ ファームウェアをバージョン 1.20.8 に更新しました。
バグの修正
Zivid 2 および 2+ で、DHCP モードで構成されたカメラがカメラに接続するときに「待機中にタイムアウトしました...」例外をスローするバグを修正しました。このバグは SDK 2.11.0 で導入されました。
Zivid 2 および 2+ で
Zivid::Experimental::Projection::showImage()を連続的に呼び出すと正しくない画像が投影される可能性があるバグを修正しました。このバグは、この機能が 2.10.0 で導入されて以来存在しています。
非推奨の通知
SDK 2.11 は、Zivid One+ をサポートする最後の SDK です。 2.11 は、Zivid One+ の長期サポート (LTS) バージョンです。 2.11 には、One+ の運用に影響を与える可能性のある重大なバグやセキュリティ上の問題を修正したパッチ アップデートが 2026 年 12 月まで配信されます。
2.11.0
API
Zivid 2+ 用に「Settings::Sampling::Pixel::blueSubsample4x4/redSubsample4x4」を追加しました。
これにより、投影の色と、点群処理のためにピクセルがサンプリングされる方法が制御されます。
「blueSubsample4x4」/「redSubsample4x4」モードは、青または赤の光を投影し、ピクセルの 16 分の 1 をサンプリングします (Zivid 2+ では解像度 612x512)。
「blueSubsample2x2」/「redSubsample2x2」と比較して、これらの新しいモードはデータ取得と GPU 処理時間の両方を高速化し、GPU メモリの使用量を削減します。
Zivid 2+ で可能な最大点群キャプチャ速度は、ほぼ 2 倍になります (約 100 ミリ秒から 50 ~ 60 ミリ秒)。
弱い GPU 上の計算負荷の高い設定 (「オムニ」 エンジンなど) での点群キャプチャは、「2x2」 モードと比較して「4x4」 モードで最大 3 倍高速になります。
「ParcelsFast」、「ParcelsQuality」、および「ConsumerGoodsFast」と呼ばれる Zivid 2+ 設定プリセットは、「4x4」モードを活用するために変更されました。
検出されたすべての Zivid 2 および 2+ カメラが
Application::cameras()から返されるようになりました。SDK は、マルチキャスト DNS プロトコルを使用して、ローカル サブネット上の Zivid カメラを検出します。これには、PC と互換性のない IP 構成を持つ Zivid カメラ (たとえば、IP/サブネット設定の不一致、または同じ IP アドレスを持つ複数の Zivid カメラがある場合) が含まれます。マルチキャスト メッセージは、オフィス/LAN ネットワーク アダプタなどを含むすべてのローカル ネットワーク アダプタ上の PC から送信されることに注意してください。
PC と比較して IP 設定に互換性がないカメラは、ステータスが「アクセス不能」になります。 Zivid SDK/Studio からカメラを使用するには、カメラの IP 設定を更新するか、PC ネットワーク アダプター構成を調整する必要があります。カメラの IP は、
ZividNetworkCameraConfiguratorCLI ツールを使用してシリアル番号を使用して変更できます。変更ログの CLI セクションを参照してください。検出された Zivid 2 および 2+ カメラがビジー状態 (別のプロセスで使用中) である場合も、
Application::cameras()から返され、ステータスはbusyになります。注記!これは、以前の SDK バージョンからの動作の変更です。以前は、アクセスできない (つまり、TCP/IP 経由で接続できない、または別のプロセスからすでに接続されている) カメラは、
Application::cameras()から返されませんでした。Zivid config ディレクトリに Cameras.yml ファイルがある場合、Cameras.yml のエントリに一致する Zivid 2 および 2+ カメラのみが返されます。 Cameras.yml は One+ カメラに影響を与えないことに注意してください。
カメラが利用可能か、アクセス不能か、ビジーか、ファームウェアのアップデートが必要かなどを示す
Status列挙型をCameraStateクラスに追加しました。考えられるステータスの詳細については、CameraState::Statusドキュメントを参照してください。Inaccessible状態のカメラに関する詳細情報を提供するために、InaccessibleReason列挙型をCameraStateクラスに追加しました。この列挙型は、問題が IP の競合、サブネット設定の構成ミスなどであるかどうかを示します。カメラの IP アドレスを返す
Network::IPV4::Address文字列をCameraStateクラスに追加しました。ストライプ エンジンは、すべての反射フィルター モードをサポートするようになりました。
「グローバル」反射フィルターに加えて、「ローカル」反射フィルターを選択したり、反射フィルターを完全に無効にすることもできます。これは、ケーブルやパイプなどの薄いオブジェクトを再構築する必要があるシナリオで役立ちますが、反射処理と点群の品質がある程度失われる可能性があります。
取得、データ転送、処理のパイプライン処理を改善することにより、連続キャプチャの速度が向上しました。
SDK は、同じカメラを使用した前の (2D または 3D) キャプチャがまだ転送/処理されている間に、次の (2D または 3D) キャプチャの取得を開始できるようになります。このリリースより前は、同じカメラ上の以前のすべてのキャプチャがすべての転送と処理を完了するまで、カメラの次のキャプチャは開始されませんでした。
ネットワーク速度と GPU の能力に応じて、2D+3D キャプチャ時間の合計はハイエンド Nvidia GPU で約 15 ~ 20 ミリ秒、統合 Intel GPU で約 50 ~ 70 ミリ秒向上します。
できるだけ早く連続してキャプチャするには、前の
Camera::capture()が返された後 (そのキャプチャの画像取得が終了した直後) できるだけ早くCamera::capture()を呼び出します。 。 「frame.pointCloud()」や「frame.imageRGBA()」などの一部の「Frame」/「Frame2D」メソッドの呼び出しは、そのキャプチャの処理が完了するまでブロックされることに注意してください。したがって、速度を最大にするためには、次のキャプチャを開始する前に同じスレッドでこれらのメソッドを呼び出さないようにする必要があります。たとえば、別のキャプチャ/処理スレッドを使用するか、「std::async」を使用します。
弱い GPU で Stripe/Omni エンジンを搭載した Zivid 2 および 2+ カメラの
Camera::capture()の戻り時間が改善されました。このリリースより前は、このシナリオの Capture() は、キャプチャの取得が完了した後すぐには返されませんでした。取得が完了してから「capture()」が返されるまでに最大 100 ~ 200 ミリ秒の遅延が発生する可能性があります。この遅延は、より弱い GPU、通常は Intel 統合 GPU でのみ発生します。このリリースから、
Camera::capture()は、キャプチャ設定や GPU に関係なく、取得完了後数ミリ秒以内に返されるようになります。
コンピューティングが制限されている (露光時間が短い) 場合の Stripe/Omni エンジンによるキャプチャ速度が最大 10% 向上しました。
.png/.bmp/.jpg ファイルへのパスから画像を構築するコンストラクターを
Imageクラスに追加しました。sRGB 色空間で色をコピーするための新しい
ColorSRGB出力形式をPointCloudクラスとFrame2Dクラスに追加しました。sRGB 色空間は、人間が見るためにディスプレイ上に画像を表示するのに適しています。 sRGB 出力形式を使用すると、既存の (リニア) カラー形式と比較して、色がより明るく正確に表示されます。
Camera::toString()の出力を変更しました。新しい「ステータス」フィールドが追加されます。 「ネットワーク パス」フィールドの名前が「IP アドレス」に変更されます。 「内部カメラ ID」フィールドと「プロジェクター ファームウェア タグ」フィールドが削除されます。
ユーザーがファイル カメラへのハンドルを保持している限り、切断されたファイル カメラが
Application::cameras()から返されるようになりました。このリリースより前は、切断されたファイル カメラはcameras()に含まれていませんでした。Zivid 2 および Zivid 2+ ファームウェアをバージョン 1.20.6 に更新しました。
C++
Resolutionオブジェクトの画像サイズを返すZivid::Image::resolution()メンバー関数を追加しました。サブサンプリングされたキャプチャのピクセルがフル解像度キャプチャのピクセルにどのようにマッピングされるかに関する情報を取得するための新しい関数
Experimental::Calibration::pixelMapping()を追加しました。
.NET
Zivid プロジェクターでカスタム カラー イメージを投影するための実験的な投影 API を追加しました。
この API は 2.10.0 で C++ および Python 用に追加され、.NET から利用できるようになりました。
Zivid 2 および Zivid 2+ で利用可能です。
Resolutionオブジェクトの画像サイズを返すResolutionプロパティをImageクラスに追加しました。
バグの修正
Zivid.NET.CloudVisualizerインスタンスを同じプロセス内で複数回実行できないという .NET ラッパーのバグを修正しました。Settings::Sampling::PixelをblueSubsample2x2/redSubsample2x2に設定し、Settings::Sampling::Color::rgbと組み合わせて 3D キャプチャを実行するときの Zivid 2+ の問題を修正しました。短時間であれば 100W を超える電力を使用する可能性があります。この場合、Config.yml オプションCamera/Power/Limitがunlimitedに設定されていない限り、カメラの電力使用量は 100W 未満に留まります。電力制限設定の詳細については、2.10.1 の変更ログを参照してください。特定のまれな状況でカメラから切断するときに発生する可能性がある「StructuredLightCamera::~StructuredLightCamera が間違ったスレッドで呼び出されました」例外を修正しました。
CLI
ZividNetworkCameraConfigurator では、カメラが TCP/IP 経由でアクセスできない場合でも、シリアル番号のみを指定してカメラの IP 設定を構成できるようになりました。
このツールは、マルチキャスト UDP メッセージを使用して、検出された Zivid カメラのネットワーク設定を構成できます。これにより、ネットワーク構成を変更するためにカメラに TCP/IP 接続する必要がなくなるため、カメラのネットワーク構成の変更が簡素化されます。
この機能を使用するには、カメラがすでにファームウェア バージョン 1.17.1 以降 (SDK 2.10.0 以降) である必要があります。古いファームウェア バージョンのカメラでは、直接 TCP/IP 接続を介してカメラに接続する必要があります (SDK 2.10 以前と同様)。
ZividListCameras では、アクセスできないカメラや使用中のカメラも含め、検出されたすべての Zivid 2 および 2+ カメラがリストされるようになります。 「ステータス」フィールドにはカメラのステータスが表示されます。詳細については、「API」セクションを参照してください。
ZividListCameras は、検出された各カメラで
camera.connect()を自動的に呼び出すことはなくなります。引数「--test-connect」を渡すことで各カメラに接続できます。これは、カメラが TCP/IP 経由でアクセス可能かどうかを判断するのに役立ちます。PC 上に Cameras.yml ファイルがある場合、ZividListCameras は通知メッセージを印刷するようになりました。
ZividListCameras の各カメラの出力が変更されます。上記の API セクションの
Camera::toString()への変更の説明を参照してください。
スタジオ
3D ビューと 2D カラー イメージ ビューのカラー/RGB 値が sRGB カラー スペースで表示されるようになりました。
これにより、リニア RGB カラー スペースでカラーを表示していた以前のバージョンの Studio と比較して、カラー イメージがモニター上でより明るく正確に表示されます。
Studio からカラー/RGB イメージを保存する場合、ユーザーは sRGB またはリニア色空間のどちらを使用するかを選択できます。
.ply、.pcd、または .xyz 形式でエクスポートされた 3D 点群は、引き続き線形 RGB 色空間で色を保存します。
Studio では、以前は API または Studio 経由で表示されなかった、アクセスできないカメラやビジー状態のカメラがすべて表示されるようになりました。アクセスできない状態のカメラについては、カメラの設定方法に関する役立つ説明が表示されます。
カメラセレクターコンボボックスにIPアドレスとカメラステータスを追加しました。
Studio は、すべてのカメラの接続状態を定期的にチェックするようになりました。 Studio は、新しいカメラ、切断されたカメラ、および状態の変化 (カメラのステータスの変更や IP アドレスの変更など) を自動的に検出します。
サポートの削除
AMD コンピューティング デバイス/GPU は SDK でサポートされなくなり、次のエラー メッセージが表示されます。
Nvidia GPU と Intel GPU がサポートされているコンピューティング デバイスです。
AMD CPU は、Nvidia または Intel GPU で使用されている限り使用できます。
ユーザーは、Config.yml オプション「ComputeDevice/AllowUnsupported」を「yes」に設定することで、サポートされていないコンピューティング デバイスでの実行をオプトインできます。ただし、このような設定では予期しない結果やエラーが発生する可能性があり、Zivid ではテストされていません。詳細については、ナレッジベースを参照してください。
非推奨の通知
Visual Studio 2017 の使用のサポートは 2.10.1 以降非推奨となり、次の SDK リリースで削除される予定です。 VS 2019 以降に移行することをお勧めします。
既知の問題と制限事項
すべての既知の問題と制限については、<https://support.zivid.com/latest/support/troubleshooting.html>、特に正誤表を参照してください。
2.10.1
API
Zivid 2+ M60 および Zivid 2+ L110 のサポートを追加しました。
Zivid 2+ M60 の詳細については、<https://www.zivid.com/zivid-2-plus-m60> を参照してください。
Zivid 2+ L110 の詳細については、<https://www.zivid.com/zivid-2-plus-l110> を参照してください。
Zivid 2+ カメラのみ: Stripe エンジンの使用時に ContrastDistortion Correction フィルターを無効にできるようになりました。
CD コレクション フィルターはエッジを滑らかにするため、このフィルターを無効にすると、エッジのディテールを保持するのに役立ちます。
注: Zivid 2 および One+ カメラには変更はありませんが、Stripe エンジンを使用する場合は引き続きこのフィルターをオンにする必要があります。
Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistanceの最小値を 4 から 2 に下げました。 4 未満のMaxNeighborDistance値を使用すると、特定のシーンでより多くの悪いポイントを削除するのに役立ちます。Zivid 2+ カメラのみ: 白色光を投影する際の最大輝度設定を 2.5 から 2.2 に下げました:
Settings::Sampling::Pixel::allによる 2D キャプチャと 3D キャプチャの最大輝度は 2.5 から 2.2 に減少します。 2.2 を超える明るさを使用すると、例外メッセージがスローされます。API の 2D キャプチャのデフォルトの明るさが 2.5 から 2.2 に変更されました。 3D キャプチャのデフォルトは 2.5 のままです。
この変更は、キャプチャ時に 2 台以上のカメラの電力使用量が 100W 未満に抑えられるようにするために行われます。アプリケーションで 100 W を超える電力消費が許可されている場合は、この制限を削除し、Config.yml オプション "Camera/Power/Limit" を使用して 2.5 を使用し続けることができます。
詳細については、<https://support.zivid.com/en/latest/reference-articles/settings/acquisition-settings/projector-brightness.html> を参照してください。
Zivid 2 および Zivid 2+ ファームウェアをバージョン 1.18.4 に更新しました。
バグの修正
Zivid 2 および 2+ が 10 GbE で動作していないときにイーサネット パケットをドロップし、接続を失う可能性があるバグを修正しました。
Zivid 2+ M130 でコントラスト歪み補正フィルターを使用するときに過度の点群スムージングが発生する可能性があるバグを修正しました。
非推奨の通知
Visual Studio 2017 の使用のサポートは非推奨となり、次の SDK リリースで削除される予定です。
Zivid は、新しい Visual Studio バージョンに移行することをお勧めします。
AMD コンピューティング デバイス/GPU の使用のサポートは 2.10.1 で非推奨となり、2.11.0 で削除されます。
AMD コンピューティング デバイスは、使用率が低いこととドライバーの OpenCL 安定性の問題によりサポートされなくなりました。
Nvidia GPU と Intel GPU がサポートされるコンピューティング デバイスになります。
Config.yml ファイルのオプションを有効にすることで、サポートされていないコンピューティング デバイスで SDK を実行することをオプトインできます。ただし、このような設定では予期しない結果やエラーが発生する可能性があり、Zivid ではテストされていません。
2.10.0
API
Zivid 2+ M130 のサポートを追加しました:
Zivid 2+ M130 は、より高解像度の点群と 2D カラー イメージを提供し、色が改善され、オブジェクト カバレッジが向上します。このカメラの詳細については、<https://www.zivid.com/zivid-2-plus-m130> を参照してください。
Zivid 2+ に新しい Omni ビジョン エンジンを追加しました。
透明な物体や難しい物体のカバー力が高くなります。 Omni エンジンの詳細については、<https://support.zivid.com/en/latest/reference-articles/settings/vision-engine/omni-engine.html> を参照してください。
Zivid 2 および Zivid 2+ に「Settings::Sampling::Pixel::all/blueSubsample2x2/redSubsample2x2」を追加しました。
投影カラーと、点群処理のためにピクセルをサンプリングする方法を制御します。
blueSubsample2x2/redSubsample2x2は青色または赤色の光を投影し、ピクセルの 4 分の 1 をサンプリングします。これらのオプションにより、キャプチャ時間、メモリ使用量、点群の解像度が減少します。また、周囲光や光沢のあるオブジェクトのパフォーマンスが向上する可能性もあります。Zivid 2+ のデフォルトは「blueSubsample2x2」です。フル解像度 (5MP) の点群が必要な場合は、「all」に設定します。
Zivid 2 のデフォルトは「all」です。
AMD GPU を使用している場合、既知の問題については、以下の「このリリースの新しい既知の問題」セクションを参照してください。
カラー サンプリングを構成するための
Settings::Sampling::Color::rgb/disabledを追加しました。「無効」に設定すると、カラー データは PointCloud に含まれなくなります。
「無効」にするとキャプチャ速度が最適化されます。
disabledは、Settings::Sampling::Pixelサブサンプリング モードでの個別の白色照明を回避します。デフォルトは「rgb」です。
Settings::Processing::Filters::Noise::Suppressionを追加しました:点群内のノイズと外れ値を削減します。
このフィルタは、相互反射によって引き起こされるリップル効果を低減するためにも使用できます。
非常に細かい部分を区別する必要があり、スムージング効果を避ける必要がある場合は、このフィルターを無効にすることを検討してください。
Settings::Processing::Filters::Noise::Repairを追加しました:ノイズのあるポイントが原因で欠落しているデータの領域を修復することで、表面のカバレッジを向上させます。
点群内のすべての点の信頼性を高くする必要がある場合は、このフィルタを無効にすることを検討してください。
Zivid プロジェクターでカスタム カラー イメージを投影するための実験的な
Zivid::Experimental::ProjectionAPI を追加しました。Zivid 2 および Zivid 2+ カメラ モデルで利用可能です。
シーン内の 3D ポイントに対応するプロジェクター ピクセルで照明できます。
実験的な組み込み API を拡張して、特定の
SettingsまたはSettings2Dに適切な組み込み関数を取得します。「Settings::Sampling::Pixel」の導入により、単一のカメラ モデルでさまざまな出力解像度を生成できるようになりました。新しい組み込み関数を使用して、出力解像度に適切な組み込み関数を取得します。
元の関数は、指定されたカメラ モデルのデフォルトの
Settingsに対応する組み込み関数を生成します。すべてのデフォルト設定については、<https://support.zivid.com/en/latest/reference-articles/default-settings.html> をご覧ください。
50 Hz および 60 Hz の周囲光源に適応する設定プリセットを追加しました。
HoleSize値を大きくすることで、穴埋めフィルターのパフォーマンスが向上しました。ハイエンド ハードウェアでは 2 ~ 4 倍、ローエンド ハードウェアでは最大 15% 高速になります。
HoleSize値が 0.2 ~ 0.3 程度から始まり、HoleSize値が大きくなるにつれて速度が向上します。HoleSize値が小さい (約 0.1) 場合やハイエンド ハードウェアを使用している場合、フィルターは遅くなり、約 5 ~ 10 ミリ秒かかる可能性があります。
Zivid 2 M70 および Zivid 2 L100 カメラの
CameraInfo::ModelName文字列を変更しました。M70のモデル名が「Zivid Two」から「Zivid 2 M70」に変更されました。
L100のモデル名が「Zivid Two L100」から「Zivid 2 L100」に変更されました。
プログラムでカメラ モデルを確認するには、
CameraInfo::Model列挙型を使用することをお勧めします。
FileCameraZividOne.zfc ファイル カメラのロードのサポートを削除しました。新しいファイル カメラは <https://support.zivid.com/en/latest/academy/camera/file-camera.html> で入手できます。
Zivid 2 および Zivid 2+ ファームウェアをバージョン 1.17.1 に更新しました。
Ubuntu 18.04 のサポートが削除されました。
C++
開始および終了イテレータ/ポインタからイメージを作成するためのコンストラクタを
Zivid::Imageに追加しました。2D 空間内の点を表すクラス
Zivid::PointXYを追加しました。Zivid::Array2Dのグローバルbegin/end/cbegin/cendイテレータ関数を追加しました。
バグの修正
Frame::clone()が PointCloud データの浅いコピー (深いコピーではなく) を実行するバグを修正しました。Z が NaN ではないのに、点の X および Y 座標が NaN になる可能性があるバグを修正しました。このバグは、ContrastDistortion フィルタが有効になっている場合にのみ、非常に低い確率で発生しました。
スタジオ
2D キャプチャのサポートが追加されました。
設定プリセットの周囲光適応 (50Hz/60Hz/オフ) を有効にするオプションを追加しました。
ユーザーは、キャプチャ ボタンを有効にする前に、設定プリセットまたはキャプチャ アシスタントを選択するか、マニュアル モードに変更する必要があります。
設定スライダーの視覚的な位置がテキスト ボックスに表示される実際の値と一致しないバグを修正しました。
Stripe Engine を選択するときに表示されていた情報ボックスが削除されました。
このリリースの新しい既知の問題
AMD GPU のみ: Zivid 2 M70 または L100 を使用して、
Settings::Sampling::PixelをblueSubsample2x2またはredSubsample2x2に設定してマルチ取得 HDR を使用してキャプチャすると、「Halide エラーが発生しました: 実行に失敗しました」がスローされますパイプラインの例外。詳細については、<https://support.zivid.com/en/latest/support/failed-to-execute-pipeline.html> を参照してください。すべての既知の問題と制限については、<https://support.zivid.com/latest/support/troubleshooting.html>、特に正誤表を参照してください。
2.9.0
API
クラスター削除フィルターを追加しました。
小さなクラスターと個々の浮動小数点を点群から削除します。これらは、反射や部分的に遮られた領域から発生する可能性があります。
「MaxNeighborDistance」設定は、ポイントをグループ化する際のアルゴリズムの厳密さを制御します。値を低くすると、まばらでノイズの多いデータや反射面も削除される傾向があります。有用なデータが削除されないよう、注意して低い値を使用してください。
MinArea設定は mm^2 で指定され、クラスターを保持するために必要な最小面積を定義します。フィルターの処理オーバーヘッドは、ハイエンド Nvidia および AMD GPU では約 10 ミリ秒、Intel GPU では 75 ~ 225 ミリ秒です。
フィルタはデフォルトではオフになっています。
Capture Assistant はこのフィルターをオンにします。
改善されたガウス フィルター:
ガウス フィルターは、オブジェクトの背面/影側など、前景と背景のエッジの間に偽の平面を作成しなくなります。新しいフィルターは、オブジェクトの大規模な 3 次元形状 (ボックスの前面のエッジなど) の保存にも若干優れています。
ノイズの多い平面では、シグマ パラメータの同じ値により、フィルタの以前のバージョンとほぼ同じ量のスムージングが行われます。
追加された関心領域:
関心領域ボックスは設定で指定できます。このボックスの外側にあるすべてのポイントはフィルターで除去されます (NaN に設定されます)。
ボックスは、2 つのベクトル OA と OB を定義する 3 つの点 O、A、B によって指定されます。点 O とベクトル OA および OB が一緒になって、平行四辺形を定義します。ボックスを定義するために、平行四辺形をその表面法線ベクトルに沿ってどのように押し出すかを定義する 2 つの範囲値が提供されます。
深さ (Z) 範囲も指定できます。これにより、この範囲外の Z 座標を持つすべての点がフィルターで除去されます。
関心領域は、キャプチャ時間や点群内のデータ量を削減しません。
関心領域により、非常に小さな処理オーバーヘッドが追加されます。
Camera::capture()関数は、画像の取得が完了した直後に返されるようになりました。capture()が戻ると、すべての画像が取得され、プロジェクターはパターンの投影を停止します。この時点で、カメラを安全に移動したり、ロボットをワークスペースに移動したり、同じワークスペースに重なる 2 番目のカメラからキャプチャしたりすることができます。キャプチャが完了して点群が使用可能になるまで、データの転送と処理がまだ残っていることに注意してください。frame.pointCloud()の呼び出しは、処理が完了して点群が使用可能になるまでブロックされます。詳細については、
capture()関数の API ドキュメントを参照してください。
新しい実験的な穴埋めフィルターを追加しました。
穴埋めでは、点群内の欠損値を円形近傍の近傍から補間します。
HoleSizeは、埋める穴の相対直径を定義します。この値を増やすと、より多くのポイントが埋められますが、より多くの計算時間が必要になります。許容される穴の最大サイズは距離に応じて変化するため、より遠くにあるより大きな穴を埋めることができます。「厳密さ」は、点を埋めるかどうかを検討する際の厳密さのレベルを制御します。より高いレベルの厳密性では、欠落している点を埋めるために、より多くの側面の有効な点で囲まれる必要があります。この値を増やすと、埋めるポイントは減りますが、たとえば 2 つのエッジの間など、円形ではないギャップを埋める可能性は低くなります。
穴埋めでは 3D ポイントのみが変更され、SNR と色の値は変更されません。
詳細については、<https://support.zivid.com/en/latest/reference-articles/settings/processing-settings/hole-filling-filter.html> を参照してください。
キャプチャ速度の向上:
ガウス平滑化フィルターが高速になりました。これは Intel GPU で最も顕著で、デフォルトの Sigma でフィルターを有効にするコストが 20 ~ 30 ミリ秒から 5 ~ 10 ミリ秒に削減されます。この効果は、シグマ値が高くなるとさらに強くなります。
Stripe エンジンでキャプチャする際の処理が高速になりました。これは Intel GPU で最も顕著で、Stripe エンジンの合計キャプチャ時間 (取得 + 処理) が最大 15% 短縮されます。
Zivid Two の取得プロセスは最適化されており、GPU に関係なく、デフォルト設定での総キャプチャ時間 (取得 + 処理) が約 10% 短縮されます。
Zivid Two の温度安定化モードはデフォルトで有効になっており、実験的ではなくなりました。
このモードでは、カメラ内部の温度をより一定に保つために、アイドリング時にカメラがより多くの電力を使用します。温度がより安定すると、高デューティ サイクルのキャプチャ期間と低デューティ サイクルのキャプチャ期間の間の寸法の正確さの差が減少します。
このモードがアクティブな場合、一部の黄色の光がプロジェクターから漏れます。
このモードは構成ファイルを使用して無効にできます。 <https://support.zivid.com/en/latest/reference-articles/thermal-stabilization.html> を参照してください。
設定プリセット用の API を追加しました。
プリセットは Zivid によって手動で調整され、特定のシナリオ/ユースケースおよびさまざまなカメラモデルに合わせて最適化されています。
プリセットは名前空間
Zivid::Presetsで利用できます。注: 将来の SDK リリースでは、新しいプリセットを追加したり、既存のプリセットを変更したり完全に削除したりすることができます。将来の SDK リリースで誤って動作が変更されることを避けるために、使用するプリセットを settings.yml ファイルとして保存し、そのファイルを直接ロードすることをお勧めします。
Zivid One+ および Zivid Two に基づく新しいファイル カメラのサポートを追加しました。
これらの新しいファイルカメラをダウンロードするには、ナレッジベースにアクセスしてください:<https://support.zivid.com/en/latest/api-reference/samples/sample-data/file-camera.html>
Zivid のカスタマー サクセス チームは、診断を有効にして .zdf キャプチャから独自のファイル カメラを作成するお手伝いをします。
既存の「FileCameraZividOne.zfc」ファイル カメラのサポートは、次の SDK バージョンで削除されます。
保存された .zdf ファイルからのインフィールド修正/検証のサポートが追加されました。
captureCalibrationBoard(Zivid::Camera &camera)およびdetectFeaturePoints(const Zivid::Frame &frame)関数がZivid::Experimental::Calibrationに追加されました。
負の Z 値を持つポイントのフィルタリングを追加しました。これらのポイントは NaN に設定されます。これらの点は、一般的なキャプチャ設定では、通常はノイズまたは外れ値フィルターによっていずれにしてもフィルターで除去されることに注意してください。
フレームのキャプチャに使用されるカメラの
CameraInfoオブジェクトを返す関数Frame2D::cameraInfo()を追加しました。「PointCloud」クラスと「Image」クラスに「ColorBGRA」出力形式のサポートが追加されました。
認識されない/不明な YAML ノードを含む .yml ファイルをロードするときの例外メッセージを追加しました。以前は、これらのノードは無視されていました。この例外が発生した場合、.yml ファイルの先頭にある
__version__dataノードをインクリメントする必要があるという問題が発生する可能性があることに注意してください。Zivid::Cameraオブジェクトのメソッドは、たとえばstd::asyncを使用することで、複数のスレッドから同時に安全に呼び出すことができるようになりました。内部では、関数呼び出しはカメラごとのキューに入れられ、順番に実行されます。これらの操作はスレッドセーフではないため、カメラの一覧表示、カメラへの接続、ファームウェアのアップグレードを同じスレッドから実行する必要があることに注意してください。すべての Zivid One+ カメラ モデルで、「Settings::Processing::Filters::Reflection::Removal::Enabled」のデフォルト値が「false」から「true」に変更されました。 Zivid One+ を使用し、反射フィルターを使用せずにキャプチャしたい場合は、この設定が「false」 (または .yml ファイルで「no」) に設定されていることを確認してください。
Zivid Two ファームウェアをバージョン 1.14.7 に更新しました。
Ubuntu 18.04 は、2023 年 4 月 30 日にサポートが終了します。Ubuntu 18.04 のサポートは、この SDK リリースでは非推奨となり、次のリリースでは削除される予定です。
C++
Zivid::Rangeのコンストラクターは、最小値が最大値より大きい場合に例外をスローするようになりました。
バグの修正
Linux: libZividCore.so が boost や asio などのサードパーティ ライブラリから弱いシンボルをエクスポートするバグを修正しました。これにより、これらのライブラリも使用していたユーザーに動的リンクの問題が発生する可能性があります。
このリリースの新しい既知の問題
Nvidia ドライバー 510 を使用し、2 台以上のカメラで連続してキャプチャすると、点群の上部に誤ったパターン/ストライプが表示されることがあります。この問題は、この Nvidia ドライバー バージョンでのみ発生しています。複数のカメラでキャプチャする場合は、別の Nvidia ドライバー バージョンを使用することをお勧めします。ドライバー 470、515、および 525 はテストされており、正常に動作しています。この問題は、カメラを 1 台だけ使用している場合には発生しません。
すべての既知の問題と制限については、<https://support.zivid.com/latest/support/troubleshooting.html>、特に正誤表を参照してください。
スタジオ
「ツール」メニューにInfield Correction/Verificationウィザードを追加しました。
設定プリセットを追加しました。プリセットは、「キャプチャ」ボックスの「アシスト」タブの下にある選択ボックスに表示されます。
深度/カラー/SNR/法線マップからポイントを選択するためのポイントピッカーアイコンを関心領域ボックス設定の下に追加しました。
関心領域ボックスのワイヤーフレームを表示/非表示にするボタンを追加しました。
カメラが見つからない場合の右側のパネルに [ヘルプ] ボタンを追加しました。 [ヘルプ] ボタンをクリックするとナレッジ ベースに移動します。
Stripe エンジンの「必要なフィルタを有効にする」ボタンも、反射除去フィルタ モードを「グローバル」に設定するようになりました。
「ファームウェア更新の開始」ボタンをすばやく複数回クリックすると、更新の完了後に「カメラのファームウェアはすでに最新の状態になっています」エラーが発生する可能性があるバグを修正しました。
設定ツリーの入力フィールドをクリックすると、テキストが自動的に選択されるようになりました。
多くのボタン、選択ボックス、その他の UI 要素のツールチップが改善されました。
2.8.1
API
ZividExperimentalHandEyeCalibrationCLI ツールは、Zivid SDK から保存されたZivid::Matrix4x4YAML ファイルを読み取ることができるようになりました。このツールは、以前の SDK リリースで使用されていた古い OpenCV YAML ファイル形式を引き続き読み取ることができます。--transform-file引数が指定されている場合、ツールは入力ファイルと同じファイル形式を使用してハンドアイ キャリブレーション変換を保存します。
バグの修正
Windows 上の Zivid Two をデバッグ モードで使用してキャプチャするときに発生するデバッグ アサートを修正しました。このバグは SDK 2.8.0 で導入されました。
非常に暗い取得と非常に明るい取得を組み合わせると、カラー画像に奇妙なアーティファクトが含まれる可能性がある HDR キャプチャのバグを修正しました。このバグは SDK 2.7.0 で導入されました。
ログ ディレクトリのサイズが
MaxTotalSizeMB設定 (デフォルトは 1000MB) を超えている場合でも、古いログ ファイルが削除されないバグを修正しました。ログ ファイルは、HistorySize構成 (デフォルト 30 日) より古くなった場合でも削除され、単一プロセスの場合、ログはMaxFileSizeMB * (1 + RotationCount)MB (デフォルト 50MB*3 =) を超えることはありません。 150MB)。このバグは SDK 2.7.0 で導入されました。Zivid Two カメラを検出するときに「不明な製品番号 ''」エラーが発生する可能性がある問題を修正しました。このバグは SDK 2.8.0 で導入されました。
スタジオ
Studio: タッチパッドを使用して Studio でスライダーをドラッグするときに発生する可能性がある「[未定義] を double に割り当てることはできません」エラーを修正しました。
2.8.0
API
Zivid Two のキャプチャ速度の向上:
取得ごとに Zivid Two から PC に転送されるデータ量が削減されます。これにより、ネットワーク リンクがボトルネックになっている場合、たとえばカメラと PC 間で 10Gbps 未満の接続を使用している場合や、複数のカメラで同時にキャプチャしている場合のキャプチャ速度が向上します。
Zivid Two では、HDR シーケンス内のすべての画像を次々に取得できるようになりました。以前は、カメラは 1 回の取得内のすべての画像が PC に転送されるまで待機してから、次の取得を開始していました。これにより、HDR キャプチャのキャプチャ速度が向上し、ネットワーク速度に依存しない取得時間が短縮され、より予測可能になります。明るさの設定が 1.0 を超えている場合でも、熱安全メカニズムにより取得が一時停止する可能性があることに注意してください。詳細については、<https://support.zivid.com/en/latest/reference-articles/settings/acquisition-settings/projector-brightness.html> を参照してください。
1Gbps接続時のキャプチャ速度は1.5倍から2.5倍に向上します。 10Gbps 接続では、キャプチャ速度が Windows では 5% ~ 50%、Linux では 0% ~ 15% 向上します。 HDR や Stripe エンジンを使用すると、パーセンテージで最大の改善が見られます。
混雑したネットワーク リンク上で同時に複数の Zivid Two カメラを使用してキャプチャするときのキャプチャ速度が向上しました。たとえば、1Gbps スイッチを使用して 3 台のカメラで同時に 3 取得 HDR を行う場合のキャプチャ速度は 2.5 倍から 3 倍に向上します。
Zivid Two の自動検出のサポートを追加しました。
SDK は、マルチキャスト DNS プロトコルを使用して、ネットワーク上で利用可能な Zivid Two カメラを検索します。検出され、到達可能なカメラは、SDK および Zivid Studio を介して表示されます。
Zivid 設定フォルダーに「Cameras.yml」ファイルが存在する場合、そのファイルにリストされている IP/ホスト名のみが SDK に表示され、自動検出は実行されません。
カメラを検出するには、カメラを最新のファームウェア バージョン (SDK 2.8 に含まれる FW 1.9.6 以降) に更新する必要があります。
詳細については、<https://support.zivid.com/en/latest/getting-started/software-installation/zivid-two-network-configuration.html> を参照してください。
Matrix4x4クラスに保存および読み込みメソッドを追加しました。「Image」オブジェクトを JPG および BMP 形式で保存するためのサポートが追加されました。
Ubuntu 22.04のサポートが追加されました。
Zivid Two L100 のサポートを追加しました。
Camera::closeAperture()メソッド呼び出しは、以前は Zivid Two に影響を与えませんでした。このメソッドは、この機能が Zivid Two でサポートされていないことを示す例外をスローするようになりました。Zivid Two ファームウェアをバージョン 1.9.6 に更新しました。
C++
Array2Dクラスにbegin、end、cbegin、cendメソッドを追加しました。
Windows
Visual Studio で静的ランタイム ライブラリを使用する場合のコンパイル エラーを追加しました。 Zivid SDK は、ダイナミック ランタイム ライブラリ、オプション /MD または /MDd を使用してビルドする必要があります。これは、Visual Studio プロジェクトの「C/C++」 -> 「コード生成」 -> 「ランタイム ライブラリ」で構成できます。
バグの修正
Zivid Two のみ: 間違ったカラーバランス計算の問題を修正しました。
カラー バランス係数がカラー イメージに誤って適用されました。
この問題は、カラー バランス設定をデフォルトの 1.0 よりも高く設定した場合にのみ発生します。
詳細については、ナレッジ ベース <https://support.zivid.com/en/latest/support/color-inconsistency-after-sdk-update.html> を参照してください。
Zivid Two のみ: ネットワークのアップロード速度が遅いためにファームウェアのアップデートがタイムアウトして失敗する可能性がある問題を修正しました。
スタジオ
信号対雑音比 (SNR) マップを追加しました。
ノーマルマップを追加しました。
異なるビューを切り替えるためのドロップダウン メニューが左上隅に追加されました。
3D ビューの上部にポイント サイズを選択するためのドロップダウン メニューが追加されました。
さまざまなビューを選択するためのショートカット 1 ~ 5 を追加しました。
フッターバーのテキストが隠れないように、フッターのプレビュー画像のデザインを調整しました。
既知の問題と制限事項
すべての既知の問題と制限については、<https://support.zivid.com/latest/support/troubleshooting.html>、特に正誤表を参照してください。
2.7.0
API
反射フィルターの新しい実験的なローカル モードを追加しました。
新しい設定
Settings::Processing::Filters::Reflection::Removal::Experimental::Modeが、localまたはglobalのいずれかのモードを選択するために追加されます。globalは古い反射フィルターに対応し、デフォルト値です。ローカル モードでは、薄いオブジェクト上のより多くの 3D データが保存され、一般的により多くの反射アーティファクトが除去され、グローバル モードよりも高速に処理されます。
一般に、グローバル モードは、点群内の外れ値点を削除するのに優れています。
ローカル モードは実験的なものであり、将来のリリースでは変更される可能性があります。
新しい設定
Settings::Processing::Color::Experimental::Modeを追加しました。この設定には、「automatic」、「toneMapping」、「useFirstAcquisition」の 3 つのオプションがあります。
「自動」モードがデフォルトであり、SDK の以前のデフォルト動作に対応します。このモードは、シングル キャプチャの場合は「useFirstAcquisition」、HDR キャプチャの場合は「toneMapping」と同等です。
useFirstAcquisitionは常に、設定で指定された最初の取得のみからのカラー データを使用します。このモードは、シングル取得とマルチ取得の両方の HDR キャプチャに使用できます。このモードでは、「toneMapping」よりもさらに細かく色を制御でき、シーンの内容が変わっても安定した色出力が得られます。toneMappingは、すべての取得からのカラー データを結合して、マージされ正規化された 1 つのカラー画像を作成します。この新しい設定は、SDK 2.3.0 で追加された既存の
Settings::Processing::Color::Experimental::ToneMapping::Enabled設定を置き換えます。詳細については、「Settings::Processing::Color::Experimental::Mode」のドキュメントを参照してください。
Zivid Two: キャプチャ間で内部カメラの温度を安定に保つための新しい実験モードを追加しました。
このオプションは、カメラのウォームアップを高速化するために使用することもできます。
この機能を有効にする方法の詳細については、ナレッジ ベースを参照してください: <https://support.zivid.com/latest/reference-articles/thermal-stabilization.html>
Zivid 2: マルチキャスト DNS を使用して、.local ラベルで終わる名前クエリのサポートを追加しました。
キャリブレーションボードの姿勢を返す
DetectionResultクラスにposeメソッドを追加しました。逆行列を返す
inverseメソッドをMatrix4x4クラスに追加しました。Zivid One+: フェーズ エンジン使用時の、信号のないピクセルのすぐ左または右にあるピクセル (過飽和ピクセルなど) の処理が改善されました。これらのピクセルにより、以前は無信号ピクセルを含む領域に少量の浮動小数点が発生する可能性がありました。
Zivid One+: フェーズ エンジン パターン内で確実にデコードできないピクセルのフィルタリングが改善されました。これらのピクセルは、ノイズと外れ値フィルターがオフになっている場合、主に信号が低い領域で浮動小数点として表示される可能性がありました。同様のフィルタリングは、Zivid Two にもすでに存在していました。
新しい AMD GPU のサポートを追加しました。
RDNA アーキテクチャを備えた AMD カードは、以前の SDK バージョンではエラーが発生していましたが、現在はサポートされています。
AMD RDNA カード (RX5500 や RX5700 など) は、インストールされている GPU ドライバーのバージョンと OS のバージョンによっては、Ubuntu 上で不安定になる可能性があります。これらのモデルを使用する場合は、セットアップの安定性を慎重にテストすることをお勧めします。
Stripe エンジン使用時のキャプチャ速度の向上:
ハイエンド Nvidia GPU では約 3% ~ 12% の改善が見られ、Intel 統合 GPU では 5% ~ 15% の改善が見られました。 HDR でキャプチャした場合に最もパーセンテージが向上します。
フェーズ エンジンで HDR キャプチャを使用する場合のキャプチャ速度が向上しました。
ハイエンド Nvidia で測定した場合、2% から 12% への改善。ローエンドのインテル統合 GPU でも同様の改善が行われ、ハイエンドの統合インテル GPU は SDK 2.6 と同様のパフォーマンスを備えています。
短い HDR シーケンスで最も高い改善率が得られます。
Intel ドライバーを使用する場合、フェーズ エンジンによる単一取得キャプチャのキャプチャ速度が低下します。
設定に応じて、SDK 2.6 と比較してキャプチャ時間が 5% ~ 15% 増加しました。多くのフィルタを有効にすると、パーセンテージの低下が最も多くなります。
これは、Stripe エンジンまたは HDR キャプチャには適用されません。上記の点を参照してください。
法線の処理時間が約 50% 改善されました。
フル解像度の点群の法線を計算するための一般的な処理時間は、GPU のパフォーマンスに応じて、Nvidia GPU で約 5 ~ 20 ミリ秒、統合された Intel GPU で 15 ~ 40 ミリ秒になります。
新しい GPU コンピューティング フレームワークを内部的に使用するように変更されました。
コンピューティング パイプラインの初期化により、カメラへの接続時間が増加します。
プロセス内でカメラが初めて接続されるときは、SDK 2.6 よりも 6 ~ 10 秒かかることがあります。
この接続時間の増加は、カメラ モデルごと、
Zivid::Applicationオブジェクトごとに 1 回だけ発生します。
製品の品質とカスタマー サービス エクスペリエンスを向上させるために、クラウドに接続されたログを追加しました。
データは匿名で収集されます。
この機能の詳細については、ナレッジ ベースを参照してください: <https://support.zivid.com/latest/reference-articles/zivid-cloud-logging.html>
Zivid::Applicationオブジェクトが既に存在するときに作成される場合のエラー メッセージを追加しました。複数の Zivid One+ カメラを同時に使用することは現在非実験的です。
複数のカメラの使用方法と既知の制限事項の詳細については、ナレッジ ベースを参照してください: <https://support.zivid.com/latest/academy/camera/multiple-zivid-cameras.html>
Zivid Two ファームウェアをバージョン 1.7.4 に更新しました。
実験的な設定
Settings::Processing::Color::Experimental::ToneMapping::Enabledを削除しました。この設定は
Settings::Processing::Color::Experimental::Modeに置き換えられます (上記の点を参照)。
Ubuntu 16.04 のサポートが削除されました。
C++
Matrix4x4クラスのbeginおよびendメンバー関数の const オーバーロードを追加しました。
.NET
C++ API の同じ名前のクラスに対応する、新しい
Matrix4x4クラスを .NET ラッパーに追加しました。Matrix4x4コンストラクターは、2D .NET 配列を入力として受け取ります。Matrix4x4は、反転行列を返すInverseメソッドを提供します。Matrix4x4は、2D .NET 配列を返すToArrayメソッドを提供します。
Matrix4x4を引数として受け取るTransformメソッド オーバーロードをPointCloudクラスに追加しました。
バグの修正
同じプロセス内で多数のアプリケーションを連続して作成するとメモリ不足エラーが発生する可能性がある、「Zivid::Application」デストラクタのメモリ リークを修正しました。
Ubuntu 上の Intel GPU で
Visualizerクラスを使用すると、「OpenCL エラーが発生しました: バッファの読み取りに失敗しました」というメッセージが表示されるバグを修正しました。HDR でキャプチャすると、異なるキャプチャ間で一貫性のない結果が返されるという AMD GPU のバグを修正しました。
数回のキャプチャ後にアプリケーションがクラッシュする可能性がある AMD GPU のバグを修正しました。
estimateIntrinsics関数が場合によっては最適ではない組み込みパラメーターを返すバグを修正しました。Zivid Two: カメラが無効な送信元アドレスを持つ TCP 接続に応答する TCP/IP マルチキャスト セキュリティの脆弱性を修正しました (RFC 1122 ch. 4.2.3.10)。
スタジオ
Ubuntu で Intel GPU を使用しているときにキャプチャするときに「OpenGL エラー: GL_INVALID_OPERATION」が発生する可能性があるバグを修正しました。
「フレームを開く」ファイル ダイアログが応答しなくなる/フリーズする可能性がある Ubuntu のバグを修正しました。
右側のパネルの各取得の下にある「...」コンテキスト メニューに「トップに移動」アクションを追加しました。
既知の問題と制限事項
すべての既知の問題と制限については、<https://support.zivid.com/latest/support/troubleshooting.html>、特に正誤表を参照してください。
2.6.1
バグの修正
ファイル名に非 ASCII 文字が含まれる .zdf ファイルをロードすると、「ファイルからフレームをロードできませんでした」例外がスローされる Windows のバグを修正しました。
ポーズ変換行列の有効性をチェックするときに SDK が厳しすぎる制限を使用し、ハンドアイまたはマルチカメラのキャリブレーション中に例外が発生する可能性がある問題を修正しました。
同一の取得設定で HDR キャプチャを実行するときに SDK 2.6.0 で導入されたカラー出力の意図しない変更を修正しました。
SDK 2.5.0 以前では、HDR 内のすべての取得に対して同じ取得設定を使用して HDR キャプチャを実行すると、出力カラー イメージはトーン マッピングされませんでした。 SDK 2.6.0 では、意図しない動作の変更により、このシナリオでカラー イメージがトーン マッピングされていました。 SDK 2.6.1 では、SDK 2.5.0 以前の動作と一致するように、この変更は元に戻されました。
トーン マッピングは、「Settings::Processing::Color::Experimental::ToneMapping::Enabled」を「always」に設定することで明示的にオンにできることに注意してください。
2.6.0
API
Diagnostics::Enabled を設定に追加しました:
診断が有効になっている場合、キャプチャ中に追加の診断情報とデバッグ情報が収集されます。この情報は「.zdf」ファイルに保存され、Zivid のサポート チームが問題のトラブルシューティングやより適切な支援を提供するために使用できます。
診断を有効にすると、キャプチャ時間と RAM の使用量が増加し、
.zdfファイルのサイズが増加します。Zivid のサポート チームに問題を報告する場合にのみ診断を有効にすることをお勧めします。
Zivid One+ のみ: 製品寿命の重要な改善: アプリケーションから最初のキャプチャがトリガーされる数週間前に Zivid One+ カメラの電源を入れたままにしておくと、プロジェクターが損傷する可能性がある問題を修正しました。
Zivid One+ のみ: 2D キャプチャで明るさ 0 が使用されている場合に、3D キャプチャと 2D キャプチャを切り替える際の時間ペナルティを削除しました。
Stripe エンジンによるキャプチャ速度の向上:
NVIDIA GPU を使用して測定した場合、キャプチャ速度が 5% ~ 15% 向上しました。
高速な CPU と低速な GPU (Intel 統合 GPU など) を使用すると、2.5 と比較してパフォーマンスがほぼ同じかわずかに低下します (1% ~ 5% 低下)。
CPU モデル、ComputeDevice モデル、ComputeDevice Vendor、OperatingSystem を FrameInfo クラスに追加しました。
現場での修正/検証のためのキャリブレーションボードの回転のサポートが追加されました。ボードは、カメラの視点から 0、90、180、または 270 度 (+/- 15 度) の方向に向けることができます。
キャリブレーション ボードからの著しい反射やグレアの場合のキャリブレーションおよびフィールド内補正/検証に使用されるチェッカーボード検出アルゴリズムの堅牢性が向上しました。
ZividInfieldCorrectionを使用してフィールド内修正を検証する際のコマンド ライン エクスペリエンスが改善されました。カメラに再接続することなく検証を繰り返すことができるようになりました。
検証では、寸法真度測定の統計的概要も提供されます。
存在しないディレクトリにファイルを保存しようとしたときの例外メッセージを改善しました。
SDK 1.x を使用して保存された
.zdfファイルからFrameオブジェクトを構築し、そのFrameオブジェクトを.zdfファイルに再保存することはサポートされなくなり、例外がスローされます。このリリースでは、「.zdf」ファイルの基礎となる形式が変更されました。
2.6.0 以降の「.zdf」ファイルを SDK 2.5.0 以前で開くと、SDK は「ファイルからのフレームのロードに失敗しました」というメッセージを含む例外をスローします。
古い
.zdfファイルは、API または Zivid Studio を使用して引き続きロードできます。
Zivid One+ ファームウェアをバージョン 1.9.2 に更新しました。
Zivid Two ファームウェアをバージョン 1.6.0 に更新しました。
Ubuntu 16.04 のサポートは非推奨となり、SDK 2.7 から削除されます。
C++
<Zivid/Zivid.h>ヘッダーには実験的ヘッダー ファイルが含まれなくなります。実験的なヘッダー ファイルは明示的にインクルードする必要があります。
スタジオ
マウス ホイールを高速でスクロールすると 3D 点群が上下反転する可能性があるバグを修正しました。
既知の問題と現在の制限事項
既知の問題と現在の制限事項については、<https://support.zivid.com/latest/support/troubleshooting.html>、特に正誤表を参照してください。
2.5.0
API
法線のサポートが追加されました。
法線は、
copyNormalsXYZ()を使用して PointCloud オブジェクトから計算できます。これは、点群内の各点の単位法線ベクトルの 2D 配列を返します。
Model列挙をCameraInfoクラスに追加しました。この列挙は、カメラ モデルを区別するために使用できます。 Zivid One+ S/M/Large および Zivid Two。整理された点群を .pcd 形式 (正しい WIDTH および HEIGHT 属性を含む) にエクスポートするためのサポートが追加されました。この修正を有効にするには、Config.yml ファイルの使用をオプトインする必要があります。構成値 APIBreakingBugFixes / FileFormats / PCD / UseOrganizedFormat を「true」に設定します。 Config.yml ファイルの作成方法と使用方法の例については、<https://support.zivid.com/latest/academy/getting-started/zivid-software-installation/gpu/select-specific-gpu-for-を参照してください。zivid-ソフトウェア.html>
「Stripe」ビジョン エンジンのパフォーマンスが向上しました。 GPU の種類に応じて、2% ~ 10% の改善が見られます。
Zivid Two の初期エンジニアリング サンプル (リビジョン A) のサポートを削除しました。
Zivid One+ ファームウェアをバージョン 1.8.8 に更新しました。
Zivid Two ファームウェアをバージョン 1.5.2 に更新しました。
Ubuntu 16.04 のサポートは非推奨となり、2022 年 4 月頃に SDK から削除される予定です。
C++
Settings オブジェクトと CameraInfo オブジェクトを指定して点群解像度をクエリするための実験的メソッド
Zivid::Experimental::SettingsInfo::resolution()を追加しました。
バグの修正
GenICam カメラ接続プロセスの途中でカメラへの物理接続が失われた場合に GenICam ドライバーで発生する可能性のあるクラッシュを修正しました。
Zivid::Application が静的変数に保存されている場合、プログラムのシャットダウン中に発生する可能性のあるクラッシュを修正しました。
Zivid SDK を使用するプロセスが SIGTERM/SIGILL または同様のシグナルを受信した場合、シャットダウン中に永久にスタックする可能性がある問題を修正しました。
Zivid One+ カメラを使用しているときに
Camera::connect()を呼び出すときの小さなメモリ リークを修正しました。
スタジオ
3D 点群ビューのポイントの深度マップ カラーリングのサポートが追加されました。 「D」を押して、このモードのオンとオフを切り替えます。
.zdf および .yml ファイルを Zivid Studio ウィンドウにドラッグ アンド ドロップして開くためのサポートが追加されました。
情報パネルが開いている場合、メインの右パネルの端を左にドラッグして展開すると、情報パネルが誤って折りたたまれる問題を修正しました。
Zivid Two の現在の制限事項
最適なパフォーマンスを得るには、Zivid Two と専用の 10Gb PCI-Express ネットワーク カードを直接接続することをお勧めします。 Thunderbolt 3 ポートに接続された Thunderbolt 3 外部ネットワーク アダプターは、専用の PCI-express カードと同様のパフォーマンスを提供します。 USB ベースのネットワーク アダプタでは、カメラの使用時にエラーが発生する場合があり、キャプチャ速度が低下し、変動が大きくなります。
既知の問題点
Zivid Two のみ: Zivid Two に接続しているときに PC プロセスが正常に中止されない場合 (たとえば、SIGINT、SIGABRT などを介して)、カメラと PC 間の TCP 接続が適切に閉じられていない場合、カメラはネットワーク接続がダウンしていることを検出すると、電源を入れ直します (通常は 15 秒以内)。
まれに、PC プロセスへの接続が切断されたことをカメラが適切に検出しないことがあります。その後、カメラは SDK からの新しい接続を継続的に拒否するため、カメラは SDK から見えなくなります。このシナリオでは、カメラの電源を手動で再投入する必要があります。
Zivid Two のみ: 非常にまれに、キャプチャ中に "コマンドが失敗しました: CameraImageTimeout" 例外がスローされることがあります。これは、次のキャプチャで自動的に解決されます。
Zivid Two のみ: データの再送信につながるイーサネット パケット損失により、Windows でのキャプチャ時間が長くなることがあります (通常より 1 秒以上長い)。パケット損失の発生を減らすために、Windows のネットワーク ドライバー設定で「受信バッファー」と「送信バッファー」を増やすことをお勧めします。
同じハードウェアの場合、Windows では Linux に比べてキャプチャ時間が長くなる可能性があります。この差は、露光時間が短いほど大きくなり、露光時間が長いほど小さくなります。同一のハードウェア上の Windows と Linux の相対的な違いは、Zivid One+ を使用する場合と比較して、Zivid Two を使用する場合の方が大きくなります。
Ubuntu 20.04 のみ: Linux 5.8 カーネル (新しい HWE カーネルを使用する場合は Ubuntu 20.04.2 でリリース) を使用し、Intel GPU をレンダリング デバイスとして使用すると、Zivid Studio と Visualizer で「CL_OUT_OF_RESOURCES」や「OpenGL エラー」などのエラーが発生することがあります。 : GL_INVALID_OPERATION" 点群を表示するとき。この問題を回避するには、Ubuntu 20.04 の LTS (安定版) ベース Linux カーネルである Linux カーネル 5.4 を使用します。
2.4.2
バグの修正
ユーザーが libusb (SDK によって内部的に使用される) を自分のバージョンに置き換えることができない問題を修正しました。
2.4.1
バグの修正
キャリブレーション モデル 2.1 の Zivid Two のみ: Windows のデバッグ モードでキャプチャすると「アサーション失敗」例外がスローされるバグを修正しました。
2.4.0
API
Zivid Two の実験的な「Stripe」ビジョン エンジンのサポートが追加されました。
Zivid Two のキャリブレーション モデル 2.1 のサポートが追加されました。キャリブレーション モデル 2.1 により、Zivid Two カメラの精度がさらに向上しました。
複数のZivid Twoカメラの使用のサポートが追加されました。
この機能は、1 台の PC から最大 4 台の Zivid Two カメラを同時に使用してテストされています。
複数のカメラを同時に使用できますが、個々のカメラを複数のスレッドから同時に使用しないでください。 SDK を介したカメラへの接続は、順番に行う必要があります。
複数のカメラをセットアップする方法の詳細については、ナレッジ ベースを参照してください: <https://support.zivid.com/latest/academy/camera/multiple-zivid-cameras.html>
Zivid Two カメラのネットワーク設定を変更するための ZividNetworkCameraConfigurator CLI ツールを追加しました。
カメラは静的 IP モードまたは DHCP モードで設定できます。
このツールの使用方法、およびカスタム IP またはホスト名に接続するように SDK を構成する方法の詳細については、ナレッジ ベースを参照してください: <https://support.zivid.com/latest/academy/getting-started/zivid-software-installation/zivid-two-network-configuration.html#custom-ip-configuration>
温度仕様外でカメラを使用する場合の点群の精度が向上しました。すべての Zivid One+ または Zivid Two カメラに自動的に適用されます。
アイ・イン・ハンド構成とアイ・ツー・ハンド構成の両方でハンド・アイのキャリブレーション精度が向上しました。
ネットワーク パケット損失が発生した場合の Zivid Two ネットワーク パフォーマンスが向上しました。
高い動作温度での Zivid Two プロジェクターの寿命が向上しました。
10000 マイクロ秒以上の露光時間を使用した場合の Zivid Two のキャプチャ時間が改善されました。
Zivid One+ ファームウェアをバージョン 1.8.7 に更新しました。
Zivid Two ファームウェアをバージョン 1.4.1 に更新しました。
オリジナルのZivid Oneカメラのサポートを削除しました。 (注: これは、Zivid One Plus カメラには適用されません。)
スタジオ
カメラへの接続時に 2 つ以上のカメラ間で切り替えを行うとエラーが発生する可能性がある問題を修正しました。
バグの修正
非常に短期間の Zivid::Application オブジェクトの破棄中に発生する可能性のあるクラッシュを修正しました。
すべてのフィルターを無効にしてキャプチャするときに、無効なポイントが NaN ではなく "inf" としてマークされる、AMD コンピューティング デバイスの問題を修正しました。
AVX などの機能のない CPU で実行すると、Stripe Engine が Linux 上で SIGILL を引き起こす可能性がある問題を修正しました。
信号対雑音比に NaN 値が含まれる可能性があるストライプ エンジンの問題を修正しました。
Zivid One Plus のみ: 起動中に過剰な電流消費を引き起こす SDK 2.2 で導入されたバグを修正しました。
Zivid One Plus リビジョン C のみ: 通常動作中にカメラ背面のステータス LED が赤色になる問題を修正しました。
Zivid Two のみ: ファームウェアのアップグレード後に最初にキャプチャされた点群に欠落または間違った 3D データのストライプが含まれる可能性がある問題を修正しました。
Zivid Two のみ: DHCP を使用して IP アドレスを取得する場合のタイムアウトが短すぎる問題を修正しました。タイムアウトが短いと、DHCP プロセスが完了する前にカメラがリンクローカル IP アドレスにフォールバックする可能性があります。
Zivid Two のみ: SDK がカメラに接続できないという、ネットワーク遅延が存在する場合に特に顕著な競合状態の問題を修正しました。
Zivid Two のみ: ファンが過度に高い RPM で動作する可能性がある問題を修正しました。
Zivid Two のみ: カメラ上の未送信のデータが新しいデータまたは間違ったデータで上書きされる可能性がある問題を修正しました。
Zivid Two の現在の制限事項
最適なパフォーマンスを得るには、Zivid Two と専用の 10Gb PCI-Express ネットワーク カードを直接接続することをお勧めします。 Thunderbolt 3 ポートに接続された Thunderbolt 3 外部ネットワーク アダプターは、専用の PCI-express カードと同様のパフォーマンスを提供します。 USB ベースのネットワーク アダプタでは、カメラの使用時にエラーが発生する場合があり、キャプチャ速度が低下し、変動が大きくなります。
既知の問題点
Zivid Two のみ: Zivid Two に接続しているときに PC プロセスが正常に中止されない場合 (たとえば、SIGINT、SIGABRT などを介して)、カメラと PC 間の TCP 接続が適切に閉じられていない場合、カメラはネットワーク接続がダウンしていることを検出すると、電源を入れ直します (通常は 15 秒以内)。
まれに、PC プロセスへの接続が切断されたことをカメラが適切に検出しないことがあります。その後、カメラは SDK からの新しい接続を継続的に拒否するため、カメラは SDK から見えなくなります。このシナリオでは、カメラの電源を手動で再投入する必要があります。
Zivid Two のみ: 非常にまれに、キャプチャ中に "コマンドが失敗しました: CameraImageTimeout" 例外がスローされることがあります。これは、次のキャプチャで自動的に解決されます。
Zivid Two のみ: データの再送信につながるイーサネット パケット損失により、Windows でのキャプチャ時間が長くなることがあります (通常より 1 秒以上長い)。パケット損失の発生を減らすために、Windows のネットワーク ドライバー設定で「受信バッファー」と「送信バッファー」を増やすことをお勧めします。
同じハードウェアの場合、Windows では Linux に比べてキャプチャ時間が長くなる可能性があります。この差は、露光時間が短いほど大きくなり、露光時間が長いほど小さくなります。同一のハードウェア上の Windows と Linux の相対的な違いは、Zivid One+ を使用する場合と比較して、Zivid Two を使用する場合の方が大きくなります。
Ubuntu 20.04 のみ: Linux 5.8 カーネル (新しい HWE カーネルを使用する場合は Ubuntu 20.04.2 でリリース) を使用し、Intel GPU をレンダリング デバイスとして使用すると、Zivid Studio と Visualizer で「CL_OUT_OF_RESOURCES」や「OpenGL エラー」などのエラーが発生することがあります。 : GL_INVALID_OPERATION" 点群を表示するとき。この問題を回避するには、Ubuntu 20.04 の LTS (安定版) ベース Linux カーネルである Linux カーネル 5.4 を使用します。
2.3.0
API
Zivid Two カメラのサポートが追加されました。
実験的な「Stripe」ビジョン エンジンの速度が向上しました。
Ubuntu 20.04の公式サポートを追加しました。
実験的なフィールド内補正の改善:
場合によっては補正後の精度を向上させるためにアルゴリズムが改良されました。
入力データが実際には補正を計算するのに十分であるにもかかわらず、「重大な補正は識別できませんでした (ノイズ >> 信号)」という例外が発生する問題を修正しました。
キャリブレーション API およびフィールド内補正で使用されるチェッカーボード検出の堅牢性が向上しました。
カラーバランス設定の最大値が 2.0 から 8.0 に増加しました。
実験的な設定「Settings::Processing::Color::Experimental::ToneMapping::Enabled」を追加しました。この設定は、トーン マッピングをすべての 3D キャプチャ (単一および HDR キャプチャ) で実行するか、HDR キャプチャに対してのみ実行するかを制御します。
特にトーン マッピングが有効になっている場合やガンマが 1 未満の場合、3D キャプチャのカラー イメージの暗い/露出不足の領域のノイズが減少しました。
AMD は Ubuntu 16.04 ではサポートされなくなりました。 (AMD は、Radeon Software for Linux 18.50 の時点で Ubuntu 16.04 のサポートを終了しました。)
オリジナルの Zivid One カメラのサポートは廃止され、Zivid 2.4 で削除される予定です。 (注: これは Zivid One カメラのみに関係しており、Zivid One Plus は引き続きサポートされています。)
スタジオ
フレーム設定をファイルに保存するためのオプションを情報パネルに追加しました。
Ubuntu でのファイル ダイアログの外観が改善されました。
CPU 負荷が高いときにマウス ホイールを高速でスクロールすると、Zivid Studio で 2D 画像が上下反転する可能性がある問題を修正しました。
バグの修正
Zivid One+ カメラに接続しようとすると「EEPROM マスター テーブルのブロック 0 が占有されているかどうかの確認に失敗しました」というエラーが発生する問題を修正しました。
ストライプ エンジンの信号対ノイズ比 (SNR) が修正され、フェーズ エンジンの SNR と同等になりました。
SNR 計算の改善により、ノイズ フィルターの 2 つのエンジンの動作がより密接に対応するようになりました。
このリリースでの注目すべき変更点
特定の弱い Intel 統合 GPU や CPU など、より弱いコンピューティング デバイスを使用すると、2.2 と比較して 3D キャプチャ時間のパフォーマンスがわずかに低下する場合があります。このようなデバイスのパフォーマンス低下は、コンピューティング デバイスとキャプチャ設定に応じて、通常 1% ~ 6% です。
Zivid Two の現在の制限事項
実験的な「Stripe」ビジョン エンジンはまだサポートされていません。
一度に 1 台の Zivid Two のみを PC に接続できます。
Zivid Two のネットワーク構成はカスタマイズできません。
最適なパフォーマンスを得るには、Zivid Two と専用の 10Gb PCI-Express ネットワーク カードを直接接続することをお勧めします。 Thunderbolt 3 ポートに接続された Thunderbolt 3 外部ネットワーク アダプターは、専用の PCI-express カードと同様のパフォーマンスを提供します。 USB ベースのネットワーク アダプタはキャプチャ エラーを引き起こし、キャプチャ速度を制限する可能性があるため、このリリースでは推奨されません。
既知の問題点
同じハードウェアの場合、Windows では Linux に比べてキャプチャ時間が長くなる可能性があります。この差は、露光時間が短いほど大きくなり、露光時間が長いほど小さくなります。同一のハードウェア上の Windows と Linux の相対的な違いは、Zivid One または One+ を使用する場合と比較して、Zivid Two を使用する場合の方が大きくなります。
Zivid Two のみ: ファームウェアのアップグレードが完了した後の最初のキャプチャで、点群の出力が間違っている場合があります。これは、点群内の間違った/欠落したデータの線として表示されます。この問題は、次のキャプチャで自動的に解決されます。
Zivid Two のみ: カメラのファームウェアのアップグレードが完了した後にキャプチャすると、「カメラが接続されていません」または同様の例外がスローされることがあります。この問題は、カメラに再接続すると自動的に解決されます。
Zivid Two のみ: データの再送信につながるイーサネット パケット損失により、Windows でのキャプチャ時間が長くなることがあります (通常より 1 秒以上長い)。
Zivid Two のみ: 非常にまれに、キャプチャ中に "コマンドが失敗しました: CameraImageTimeout" 例外がスローされることがあります。これは、次のキャプチャで自動的に解決されます。
Zivid Two のみ: ごくまれに、カメラとクライアント間のネットワーク リンクがダウンし、タイムアウトが発生することがあります。ただし、リンクは自動的に復元され、ユーザーは手動介入なしで「Zivid::Exception」をキャッチしてカメラに再接続できます。
Ubuntu 20.04 のみ: Linux 5.8 カーネル (新しい HWE カーネルを使用する場合は Ubuntu 20.04.2 でリリース) を使用し、Intel GPU をレンダリング デバイスとして使用すると、Zivid Studio と Visualizer で「CL_OUT_OF_RESOURCES」や「OpenGL エラー」などのエラーが発生することがあります。 : GL_INVALID_OPERATION" 点群を表示するとき。この問題を回避するには、Ubuntu 20.04 の LTS (安定版) ベース Linux カーネルである Linux カーネル 5.4 を使用します。
2.2.0
API
Stripe と呼ばれる、新しい実験的な Zivid Vision Engine が追加されました。
オリジナルのデフォルトの Zivid Vision Engine は Phase という名前です。
どの Zivid Vision Engine を使用するかを指定するための新しい
Settings::Experimental::Engineが追加されました。ストライプ エンジンは相互反射アーティファクトを抑制し、シリンダーやクロムメッキ部品などの光沢のあるオブジェクトのデータ品質を向上させます。
Stripe Engine には追加の取得時間と処理時間が必要です。
Stripe エンジンを使用する場合は、反射除去フィルターとコントラスト歪み補正フィルターの両方を有効にする必要があります。これは将来変更される可能性があります。
GenICam ラッパーの既知のバグにより、反射除去フィルターとコントラスト歪み補正フィルターが有効になっていない場合、呼び出しはエラーを報告せずにハングすることに注意してください。
Stripe エンジンは現在実験段階であり、将来変更および改善される可能性があります。
Stripe Engine は、Zivid One Plus でのみサポートされています (Zivid One ではありません)。
キャリブレーションAPIを拡張し、Zivid公式キャリブレーションボードの新シリーズに対応しました。最初のボードはZVDA-CB01(7x8 30mm)です。このボードは、クライアントコードを変更することなく、既存のハンドアイキャリブレーション機能およびマルチカメラキャリブレーション機能で使用できるようになりました。また、新しいフィールド補正機能(下記参照)でも使用できます。
新しい実験的な現場補正APIを追加しました。新しいZVDA-CB01キャリブレーションボードと組み合わせることで、カメラの寸法精度を検証および補正することが可能になります。このAPIには以下の機能があります。
verifyCamera: 単一のキャリブレーション ボードのキャプチャに基づいて、カメラのローカル寸法の正確さを定量化します。computeCameraCorrection: 1 つまたは複数のキャリブレーション ボードのキャプチャに基づいて、寸法の正確性を向上させるためにカメラに適用できる補正を計算します。この関数は、補正が適用された場合に期待できる真偽の信頼区間も計算します。writeCameraCorrection: カメラに補正を書き込みます。カメラの電源を入れ直したり、別の PC に接続したりしても、補正はカメラに残ります。この関数を呼び出した後は、このカメラでキャプチャ関数が呼び出されるたびに、指定された補正が自動的に使用されます。resetCameraCorrection: カメラの補正を工場出荷時のデフォルトにリセットします。hasCameraCorrection: カメラにデフォルト以外の補正があるかどうかを確認します。cameraCorrectionTimestamp: 現在の補正がいつカメラに書き込まれたかを確認します。詳細については、API ドキュメントを参照してください。
コマンドラインツール「ZividExperimentalInfieldCorrection」を追加しました。このツールを使用すると、ユーザーはコードを記述することなく、新しい In-field Correction API から主要なタスクを簡単に実行できます。使用説明を参照するには、コマンド
ZividExperimentalInfieldCorrection --helpを使用してください。注: Linux では、このツールはコア インストーラーではなく、zivid-toolsパッケージの一部として提供されます。ガンマ設定を追加しました。ガンマは、ガンマ カーブを使用して点群の色を明るくしたり暗くしたりするために使用できます。
Zivid One+ ファームウェアをバージョン 1.8.4 に更新しました。
スタジオ
新しい情報サイドパネルを追加しました。
このパネルには、使用された設定、点群の解像度、キャプチャ時間など、現在のフレーム/点群に関する情報が含まれています。
キャプチャ時間は、キャプチャが開始されてからすべての処理が完了し、点群データがコンピューティング デバイスで利用できるようになるまでにかかる時間として定義されます。
.zdf ファイルを開くと、サイド パネルに、このフレームのキャプチャに使用されたカメラのシリアル番号とモデル名、および Zivid SDK のバージョンが表示されます。
この新しいサイド パネルは、右下隅の「情報」をクリックするか、「表示」メニュー、またはショートカット「Shift+I」を使用して表示できます。
新しい Stripe エンジンのサポートが追加されました。
.zdf ファイルを開いたときに点群ビューのリセットを無効にするオプションを「表示」メニューに追加しました。
メッシュ作成のショートカットとして「M」を追加しました。
アシスト モードと手動モードをより簡単に切り替えるためのタブ ボタンを追加しました。
ウィンドウ サイズが変更されると深度およびカラー イメージ ビューがリセットされる問題を修正しました。
GUI のさまざまな場所の色、サイズ、パディングを調整しました。
バグの修正
Linux
capture()関数からの後続の例外の後に発生する可能性のあるクラッシュを修正しました。以前に 1 つの例外がcapture()からスローされていた場合、別の障害が発生すると、別の例外がスローされずにシステムがクラッシュする可能性があります。このクラッシュは、Ubuntu 16.04 パッケージを使用している場合にのみ発生します。
Windows
一部のウイルス対策ソフトウェアで誤検知マルウェア警告がトリガーされる問題を修正しました。
.NET
同じオブジェクトに対して
.Dispose()を複数回呼び出すと、System.AccessViolationExceptionが発生する可能性があるバグを修正しました。
ファームウェア
長時間経過後にファームウェアがハングする可能性がある問題を修正しました
2.1.0
API
ダウンサンプリング機能を「PointCloud」クラスに追加しました。
ダウンサンプリングを使用すると、より少ない数の点で計算を実行するために、点群のサイズを縮小できます。
ダウンサンプリングでは、元の点群のピクセルの NxN 領域が、ダウンサンプリングされた点群の 1 つのピクセルに結合されます。 2x2、3x3、および 4x4 のダウンサンプリング オプションが利用可能です。
ダウンサンプリングは、無効な (NaN) ポイントを無視して、SNR^2 で重み付けされたポイントを平均することでポイントのノイズを低減する方法で実行されます。ダウンサンプリングはコンピューティング デバイス上で実行されます。
CameraInfoがFrameクラスで利用できるようになりました。 「CameraInfo」には、フレームのキャプチャに使用されたカメラのシリアル番号とモデル名が含まれます。カメラに接続すると「ピクセル形式の設定に失敗しました (CAM_API_STS_NOT_WRITABLE)」というメッセージを含む例外がスローされる問題を修正しました。
Zivid One+ ファームウェアをバージョン 1.7.4 に更新しました。
カメラが応答を停止する可能性があるバグを修正しました。
C++
SettingsとSettings2Dの数値 (ExposureTime、Apertureなど) を、operator<とoperator>を使用して比較できるようになりました。
.NET
PointCloud.Transformはそれ自体への参照を返すようになり、Transform、Downsampleなどを一緒にチェーンできるようになります。
スタジオ
深度画像ビューの単位として「mm」を追加しました。
2.0.0
API
新しい
Settings/Settings2D/CaptureAPI:単一の「設定」オブジェクトに、キャプチャに必要なすべての情報が含まれるようになりました。
「設定」には、1 つ以上の取得に加えて、フィルターやカラー バランスなどの処理設定が含まれています。複数の取得が提供される場合、HDR キャプチャが実行され、結合されたフレームが返されます。
「Settings」オブジェクトは、「Camera」のキャプチャ メソッドへの引数として直接提供されるようになりました。
「カメラ」上の個別の 2D キャプチャ方法は削除されました。 2D キャプチャは、キャプチャ メソッドに
Settings2Dを渡すことによって実行されるようになりました。ユーザーは、「Settings」または「Settings2D」の一部を必要に応じて指定できます。キャプチャ時に明示的に指定されていない設定では、カメラ固有のデフォルト値が使用されます。
新しい点群 API:
キャプチャ メソッドを呼び出すと、
PointCloudへのハンドルを提供するFrameが返されます。 「PointCloud」オブジェクトは、GPU にまだ保存されている点群へのハンドルであり、必要に応じて「PointCloud」のさまざまなメソッドを通じて特定のデータを CPU メモリにコピーできます。「PointCloud」では、次のデータ形式のコピーが可能です。
PointXYZPointXYZWPointZColorRGBAPointXYZColorRGBAPointXYZColorBGRASNR
「PointCloud」機能は、もう存在しない古い「DeviceCloud」を置き換えます。
新しい「ContrastDistortion」フィルター:
このフィルタには、非常に強い強度勾配によって歪んだポイントを修正および/または削除する機能があります。これは、光沢のある/反射するオブジェクトだけでなく、白から黒への突然の変化などを伴う拡散オブジェクトにも適用できます。
このフィルターは実験的なものとみなされ、将来のリリースでは変更される可能性があります。
新しいマルチカメラキャリブレーション:
ハンドアイキャリブレーションとともに、新しい「Calibration」名前空間の一部です。
マルチカメラ キャリブレーションは、指定されたプライマリ カメラのフレーム内でセカンダリ カメラの姿勢を見つけるために、たとえば点群を単一の参照フレームに結合するために、マルチカメラ セットアップで使用されます。
GPU アクセラレーションによる点群変換:
「PointCloud」の変換メソッドを通じて、ユーザーはポイントクラウドの 3D 座標の GPU アクセラレーションによる変換をインプレースで実行できるようになりました。このような変換は、4x4 行列の形式で提供され、「Calibration」名前空間の関数から取得される場合もあれば、ユーザー定義の変換である場合もあります。
新しい「絞り」設定:
古い「Iris」設定に代わる「Aperture」設定が導入されました。
これは、F 値を単位とする浮動小数点数です。 API は [1.4 ~ 32] の範囲の値をサポートします。
キャプチャ時に、カメラは指定された F 値に最も近い内部絞り位置を選択します。
「カメラ」のメソッドを呼び出すことにより、絞りを完全に閉じることができます。
新しいカラーバランス設定:
ユーザーは、計算された 3D ポイント座標に影響を与えることなく、3 つのカラー チャネルに適用される Gain を個別に制御できるようになりました。
同じシーン、特にシーンに明るい赤が含まれている場合、キャプチャではより有効なポイントが得られる可能性が高くなります。
2D キャプチャでのカラー バランスのサポートが追加されました。
新しい点群 SNR メトリック:
信号対雑音比 (「SNR」) メトリクスを導入します。これは古い「コントラスト」メトリクスを置き換えるもので、常に非負の非 NaN 数値になります。
新しい SNR メトリックに基づいて 3D ポイント座標の HDR マージが改善されました。
API 1.X で作成された ZDF ファイルを読み込む場合、点群の SNR 値は古いコントラスト値に基づいて近似されます。
設定の新しいデフォルト値:
「Gain」のデフォルト値は「2」から「1」に減らされます。
One Plus Medium カメラの「明るさ」のデフォルト値が「1.0」から「1.5」に増加しました。
One Plus Large カメラの「明るさ」のデフォルト値が「1.0」から「1.8」に増加しました。
すべての One Plus カメラの「ExposureTime」のデフォルト値が「8333」から「6500」に減少しました。
新しい「ノイズ」フィルター:
SNR 値に基づいてポイントをフィルタリングします。
古いコントラスト フィルターを置き換えます。
古い「Saturated」フィルター設定を削除しました。
彩度フィルターは常に有効になり、設定から無効にすることはできません。
新しい「Calibration」名前空間:
古い「HandEye」名前空間の内容は「Calibration」名前空間に移動されます。
すべての入力および出力変換行列は、「PointCloud」データの形式とよりよく一致するように、double 形式ではなく float 形式になりました。
新しい
CameraInfoAPI:シリアル番号やモデル名などを取得するために使用される
Cameraのメンバー関数が削除されました。代わりに、新しいクラス
CameraInfoのインスタンスには、Cameraのメソッドを通じてアクセスできます。「CameraInfo」には、カメラのモデル名、リビジョン、シリアル番号、ファームウェアのバージョン、およびカメラに保存できるユーザー データの最大バイト数が含まれます。
カメラ組み込み API の変更:
「フレーム」に基づいて効果的なカメラの組み込み関数を推定する際のパフォーマンスが大幅に向上しました。
カメラの組み込み関数を取得するメソッドは、
Cameraクラスから取得され、Frameから組み込み関数を取得する関数とともにExperimental::Calibration名前空間に配置されます。
パフォーマンスを向上させるために、「ガウス」フィルターが HDR マージ後に移動されました。
「ライブモード」は API から削除されました。
双方向パターンは API から削除されました。
「ZividVis3D」ライブラリの名前が「ZividVisualization」に変更されました。
「CloudVisualizer」クラスの名前が「Visualizer」に変更され、「Visualization」名前空間に移動されました。
ファイルカメラのファイル拡張子が .zdf から .zfc に変更されました。
「Environment」名前空間が API から削除されました。
画像データにアクセスするための
Frame2Dメソッドの名前がcolorsRGBAからimageRGBAに変更されました。例外 API が 1 つの例外 (「Zivid::Exception」) のみを含むように簡素化されました。
命名/用語に多くの調整を加えました。
C++
C++ API では、「PointCloud」クラスは、「copyData(PointXYZ*)」などのメンバー関数を通じて、GPU から指定されたユーザー割り当ての CPU データ バッファーにデータを直接コピーする機能もあります。
C#
コア API の基礎となる変更を反映するために C# インターフェイスを再構築しました (上記を参照)。
CaptureAssistantはクラスから名前空間に変更されました。この名前空間は 2 つのクラスを保持します。SuggestSettingsParametersAssistant。メソッドSuggestSettingsが含まれています。
「ファームウェア」はクラスから名前空間に変更されました。この名前空間は、ファームウェア更新関連の機能を提供する新しいクラス「Updater」を保持します。
2D カラー データの主要な画像クラスは、「ImageRGBA」と呼ばれるようになりました。カラー データにアクセスするための 2 つの方法が提供されます。
ToArray():ColorRGBA構造体の 2D 配列。ToByteArray(): バイトの 3D 配列。3 番目のインデックスは画像チャネル (RGBA) の選択に使用されます。
Pose::ToArray()は削除されました。Pose::ToArray2DはPose::ToMatrix()に名前が変更されました。
GenICam
すべての設定の名前は、コア C++ API の新しい名前と一致するように変更されます。
MergedMultiFrameにはApplyTypeフィールドがなくなりました。「MergedMultiFrame」は「MultiAcquisitionFrame」に名前が変更されました。
「MultiAcquisitionFrame」と単一フレームの重複した設定を削除しました。
「SettingsControl」には、フィルターやカラーバランスなどの一般的なキャプチャ設定が含まれています。
AcquisitionSettingsControlには 1 回の取得に関する設定が含まれています。SingleFrameモードは、カテゴリーSettingsControlおよびAcquisitionSettingsControlの設定を使用します。SingleFrameモードは、1 回の取得だけでキャプチャするために使用されます。「MultiAcquisitionFrame」モードは、「SettingsControl」の設定に加えて、「MultiAcquisitionFrameControl::AddAcquisition」を介して追加されたすべての取得設定を使用します。 「MultiAcquisitionFrame」モードは、複数の取得 (HDR) でキャプチャするために使用されます。
連続モードはサポートされなくなりました。
Zivid Studio
[ファイル] -> [キャプチャ設定のインポート/エクスポート] を使用して、完全なキャプチャ設定を保存またはロードするオプション。
設定スライダーのステップサイズが改善されました。
1 つの取得を有効にして「ライブ」モードを実行しているときに、すべての設定を変更できるようにします。
1.0 を超える明るさ設定で「ライブ」モードを実行しているときに UI に通知を追加しました。
Windows
インストーラーにはサンプルまたはサンプルデータが含まれなくなりました。これは現在、<http://github.com/zivid> で見つけることができます。
Linux
Linux インストーラー (特に
zivid-telicam-driver_*.deb) は、Zivid SDK の古い (<=1.4) バージョンからアップグレードする場合に、古いtelicam-sdkパッケージを適切にアンインストールするようになりました。TelicamSDK サンプルが
/rootに書き込まれる Linux インストーラー (具体的にはzivid-telicam-driver_*.deb) のバグを修正しました。これらのサンプルはインストールされなくなりました。
バグの修正
古い Zivid One カメラで「一貫性のないフレーム タイミングが検出されました」例外を引き起こす可能性がある問題を修正しました。これにより、リリース 1.8.1 の既知の制限が修正されます。
USB 層のリソース リークを修正しました。
NaN 特徴点が含まれているにもかかわらず、DetectionResult が有効であるとみなされるバグを修正しました。
小数点表記規則の競合により、異なるロケールでの YAML ファイルの保存とロードが失敗する可能性があるバグを修正しました。 YAML シリアル化では、小数点として常に "." が使用されるようになりました。
1.8.1
API
新しい実験関数 Zivid::Experimental::Calibration::estimateIntrinsics() を C++ API に追加しました。この関数は、3D ポイントを 2D に投影するときに、より正確なカメラ組み込み機能を提供します。
プロジェクターの視野の端近くのアーティファクトが正しく除去されない問題を修正しました。
実験的なマルチ Zivid サポート:
この機能は、1 台の PC から最大 4 台の Zivid One Plus カメラを同時に使用してテストされています。
複数のカメラを同時に使用できますが、個々のカメラを複数のスレッドから同時に使用しないでください。カメラへの接続は順番に行う必要があります。
既知の制限:
一部の USB チップセットは、高負荷時 (同時に複数のキャプチャ時) にパフォーマンスが低下します。これは、キャプチャ中にスローされる例外として現れる可能性があります。この問題が発生した場合は、別の USB ポートまたは別の PC を使用してみてください。
NVIDIA GPU で長時間非常に高い負荷がかかった状態でキャプチャすると、OpenCL のメモリ不足に関連した例外が発生する可能性があります。 GPU の速度と RAM サイズがこの問題に影響します。
Linux 用インテル NEO OpenCL ドライバーを使用している場合は、バージョン 20.08 以降が必要です。このドライバーの古いバージョンは不安定になる可能性があります。
Linux
zivid-telicam-driver をバージョン 3.0.1.1 に更新しました。
zivid-telicam-driver deb パッケージに zivid deb パッケージの依存関係を追加しました。
Zivid Studio
.zdf ファイルを開くと、ファイル名がウィンドウのタイトル バーに表示されます。
既知の制限事項
オリジナルの Zivid One カメラ (One Plus シリーズではない) のユーザーは、キャプチャ中に例外が発生する可能性があります。オリジナルの Zivid One モデルのユーザーには、SDK 1.8.0 以前を使用し続けることをお勧めします。
1.8.0
API
キャプチャアシスタントの改善:
パフォーマンスの向上 (解析時間の約 25% 短縮)。
キャプチャ バジェット ("最大キャプチャ時間") が 1 秒未満の場合の結果が改善されました。
大型カメラの場合に間違った外れ値フィルターのしきい値が返される問題を修正しました。
プロジェクターの視野の端近くのアーティファクトの除去。
新しいインテル GPU (Broadwell 以降) 上の Linux 用インテル NEO OpenCL ドライバーとの互換性の問題を修正しました。
倍精度浮動小数点機能を持たない GPU のサポートが強化されました。
.NET
サンプルを含むキャプチャ アシスタントのサポートが .NET API に追加されました。
Zivid Studio
Zivid Studio を開いたときのデフォルト モードは、アシスト モード (キャプチャ アシスタント) になりました。
ツール
HandEyeCalibration CLI ツールが Linux で動作しない問題を修正しました。
1.7.0
API
HDR フレームの色が改善されました。
キャプチャアシスタントの改善:
あらゆるシーン、特に光沢のあるオブジェクトに対する提案が全体的に改善されました。
周囲光の周波数に基づいて提案を適応させるオプション。
焦点外の処理が改善されました。
最大許容予算が 10 秒に増加しました。
シーン分析の高速化。
ファームウェアのアップデート中に USB または電源を抜くと、次回のファームウェアのアップデートでクラッシュやソフトウェアのハングが発生する可能性がある問題を修正しました。
Zivid One+ ファームウェアをバージョン 1.6.7 に更新しました。
Zivid Studio
周囲光の周波数に基づいてキャプチャ アシスタントの提案を適応させるオプション。
1.6.0
API
ハンドアイキャリブレーションAPIを追加しました。
2D キャプチャ API を追加しました。
OpenCL ドライバーが正しく設定されていない場合の役立つエラー メッセージが増えました。
Windows でのオフライン インストールをサポートします。サンプル データがインストーラーに埋め込まれました。
より明示的な CLI オプションを使用して SampleCameraUserData を改善し、より冗長になりました。
キャプチャ中に USB を取り外したときに発生する可能性のあるカメラのデッドロックを修正しました。
Capture Assistant は、被写界深度を深くするために 46 を超えるアイリス値を回避します。
PCD ファイルをエクスポートするときは、正しいアルファ値を使用してください。
Capture Assistant CLI ツールは、提案された設定の保存をサポートするようになりました。
Vis3D ライブラリから Qt 依存関係を削除しました。
SampleHandEyeCalibration サンプルを追加しました。
SampleCapture2D サンプルを追加しました。
Vis3D サンプルを追加しました。
CloudVisualizer のビューのリセット (backspace) と色のオン/オフ (c) のキーボード ショートカットを追加しました。
.NET
.NET API と C++ API の同期を維持するために、欠落しているユーザー データ機能を追加しました。
リリース ビルドでデバッグ DLL が読み込まれるのを避けるために、サンプル コードを正しいフォルダーからリリース DLL をコピーします。
リファレンスドキュメントが改善されました。
月変換のバグを修正しました。
GenICam
Ubuntu に HALCON 19 のサポートが追加されました。
Zivid Studio
設定ツールチップが誤って表示される問題を修正しました
深度/カラー 2D ビューでマウスを移動するとクラッシュする可能性があった問題を修正しました。
タブを変更すると深度/カラー 2D ビューがリセットされる問題を修正
右側のパネルの「キャプチャ」メニューに「設定をフォルダに保存」を追加しました。
既知の欠陥
ファームウェアのアップデート中に USB または電源を抜くと、次回のファームウェアのアップデートでソフトウェアがクラッシュしたりハングしたりする状況が発生する可能性があります。この状況から回復するには、カメラの電源を入れ直します。
1.5.0
API
CMake 構成ファイルでのセマンティック バージョニングのサポートが改善されました。 find_package を使用すると、同じメジャー バージョンを使用して、より低い必要なマイナー バージョンまたはパッチ バージョンを使用すると、Zivid SDK の新しいバージョンが見つかるようになりました。
telicam-sdk deb パッケージの名前を zivid-telicam-driver に変更しました。
空のベクトルで combinFrames を呼び出すと例外が発生するようになりましたが、以前はクラッシュが発生していました。
Windows インストーラーは、インストール中にデフォルトで Zivid バイナリ ディレクトリをシステム PATH に追加するようになりました。
実験的な GenICam ドライバーをインストールすると、Zivid が GENICAM_GENTL64_PATH に追加されます。
実験的な GenICam ドライバーでサポートされる Halcon バージョンが 19 に引き上げられました。
API ドキュメントの改善。
アイドル時にはプロジェクターミラーをパークします。
PC に接続されているがタイムアウト内に列挙されない場合にカメラをリセットするウォッチドッグを追加しました。
外部カメラファンの最小 RPM がわずかに増加しました。
Windows ビルドの静的リンクの依存関係が増えると、Matlab や Labview から .NET API を簡単に使用できるようになります。
deb パッケージのインストール後のステップが改善され、18.04 パッケージを新しい Ubuntu バージョンにインストールできるようになりました。
カメラのファームウェアをアップグレードする際の USB 再接続処理が改善されました。これにより、Docker でのカメラのフラッシュに関する問題が修正されます。
コントラスト値の計算が改善されました。新しい方法は SNR に基づいており、さまざまな周囲光条件下でもコントラスト フィルターと HDR の動作がより安定します。
実験的な自動露出機能の改善と画期的な API 変更:
Capture Assistant にブランド変更されました。
コアアルゴリズムの改善。
さまざまなカメラモデルのサポートが強化されました。
関心領域機能が削除されました。
Zivid One+ ファームウェアをバージョン 1.6.6 に更新しました。
Zivid Studio
キャプチャ用の新しいアシスト モード。
新しいヒストグラム機能。
深度ビューの Z 範囲を設定できるようになりました。
カラー/RGB イメージを PNG/JPG/BMP として保存するためのサポートを追加します。
UI の一部で小数点以下 3 桁が使用される前に、すべての UI で一貫して小数点以下 2 桁を表示します。
カメラの切断ボタンをサブメニューに移動しました。
カラーやメッシュの設定を変更すると、自動的に 3D ビューに切り替わります。
点群に大きな外れ値がある場合の 3D ビューでのナビゲーションが改善されました。
接続ボタンが接続状態のままになるバグ修正。
ボタンのテキストが大文字から大文字に変更されました。
UI のルック アンド フィールを若干改善しました。
1.4.0
API
実験的な自動露出 API を追加しました。
反射フィルターを改良し、削除された良い点を減らしました。
双方向モードの反射フィルターが改善されました。
光沢のあるオブジェクトや明るい表面のあるシーンで黒い線が発生する反射フィルターの問題を修正しました。
外れ値フィルターが改善され、削除される良い点が減りました。
バイナリ ファイルとヘッダー ファイルが同期していることを確認するテストを Application クラスに追加しました。
最初の CAM_API_STS_TIMEOUT エラーの後、カメラが常に CAM_API_STS_NOT_WRITABLE を返す問題を修正しました。
Zivid Studio
起動時のエラー処理が改善され、Zivid Core ライブラリの初期化に失敗した場合、アプリケーションはエラー ダイアログを表示するようになりました。
1.3.0
API
ガウスフィルターを追加しました。
カメラ組み込み関数を OpenCV 形式で公開します。
HDR ポイント マージが改善され、最大 sqrt(images) までノイズが削減されます。
Zivid One+ ファームウェアをバージョン 1.6.3 に更新しました。
.NET
データ モデル (Settings、FrameInfo、CameraIntrinsics、および CameraState) の保存および読み込み機能を追加します。
Zivid Studio
ガウスフィルターを追加しました。
レンダリングパフォーマンスの向上。
2D ビューでマウス ポインタの下にあるピクセルの XYZ/RGB/コントラストを表示します。
2D 画像ビューの動作を改善しました。
ツール
ZividSuggestSettings の名前を ZividExperimentalSuggestSettings に変更しました。
1.2.1
Zivid One Plus Small、Medium、Large、リビジョン B のサポート。
1.2.0
Ubuntu 16.04 および 18.04 のサポート。
Windows 10 用の GenICam/HALCON プレビュー。
GPU コンピューティング プラットフォームを DirectX から OpenCL に変更しました。
パフォーマンスの向上。
Zivid Labs から Zivid へのブランド変更 (ログおよび構成フォルダーを含む)。
Zivid One Plus の小規模、中規模、および大規模なエンジニアリング ビルドのサポート。
API
APIからカメラをフラッシュする機能が追加されました。
ユーザーデータをカメラに書き込む機能を追加しました。
ブースト モード。Zivid One Plus の場合、1.0 を超える明るさが可能です。
C++
CMake ファイルがモジュール モードから構成モードに変更されました。
設定の構造化バインディングのサポート。
Zivid Studio
最初から書き直しました:
モダンな外観と雰囲気。
ほとんど使用されていない機能を削除しました。
1.0.1
新しいカメラ リビジョンのサポート。
虹彩の機能の不一致を修正します。
1.0.0
次の変更の一部は、リリース候補期間中に導入されました。 rc-candidate からアップグレードする場合は、すべてではありませんが、一部が適用されます。
主な変更点
新しい基準フレーム。基準フレームがプロジェクターからカメラに変更されました。古いソフトウェアを使用して行った目と手の調整は、やり直す必要があります。これは rc3 と rc4 の間で変更されました。
バージョン 1.0.0 以降、API は安定しており、<https://semver.org/> のセマンティック バージョン管理スキームに従っています。
新しい設定 API。
HDR パフォーマンスが向上しました。
API は完全に文書化されています。
同じコンピュータに接続された複数の Zivid カメラをサポートします。
Zivid Studio を使用してファームウェアを自動的に更新するか、スタンドアロン アプリケーションを使用して手動でファームウェアを更新します。
リソースを管理する Application クラスを追加しました。Zivid を使用するときに最初に作成する必要があります。
C++ API からリターン コードが削除され、API はエラー処理のみに例外を使用するようになりました。
System クラスを削除し、より具体的な名前空間に分割しました。
完全な変更ログ
Visual Studio サンプル プロジェクトがインストーラーに追加されました。
CMake サンプル プロジェクトがインストーラーに追加されました。
Exposure_time を 19654 に設定しても失敗しなくなりました。
フレームをキャプチャするときに Zivid Studio がランダムにクラッシュする問題を修正しました。
ZividNET.dll を MATLAB からロードできるようになりました。
無効な寸法のテクスチャを作成しようとすると、エラーが報告されます。
場合によっては双方向で出力データが破損する問題が修正されました。
設定によりコンテンツのサイズが適切に変更されるようになりました。
Zivid Studio をシャットダウンするときはファンをオフにします。
リビジョン 3 より前のカメラのサポートが削除されました。
新しいパターンにより、信号対雑音比が向上し、ノイズが低減されます。
概要ダイアログにZivid Studioのバージョン情報を追加しました。
CameraState.h と ImageInfo.h をインストーラーに追加しました。
Zivid Studio のメッシュ モードのバグ修正。
Zivid Studio で設定を YML に保存/ロードできるようになりました。
ZividStudio にカメラの再接続が追加されました。
ファイルへのログ記録。
Zivid Studio にサードパーティ ライブラリに関する「法的通知」を含めます。
より素敵なアプリケーションアイコンを追加しました。
Toshiba Teli ドライバーの新しいバージョン。
実行可能ファイルにデジタル署名します。
パブリック C++ API をクリーンアップします。
サンプルを Program FilesZividSampleData にインストールします。
カメラユニット情報を読み取れなかった場合、Zivid Studioでエラーダイアログを表示します。
すべてのヘッダー ファイル内の最新の正しいヘッダー コメント。
終了時にライブ パターン表示がオフになっていることを確認してください。
パブリック API からのすべての TODO と FIXME を修正しました。
パブリック関数の名前を、より説明的で一貫性のある名前に変更しました。
カメラが接続されていない状態でも Zivid Studio が適切に初期化されるようにします。
公開APIをC++11に準拠させます。
アンインストーラーを起動するときに警告が表示されないように、アンインストーラーに署名します。
新しいバージョンをインストールするときは、古いレジストリ キーを削除します。
インストーラーの実行の一環として古いバージョンをアンインストールします。
Visual Studio の /WX /W4 を使用して、内部コードとサンプル コードの両方をビルドします。
MSVC C++ 拡張機能の使用を停止しました。
.NET でバージョン情報を公開します。
ファームウェアのバージョンが一致しない場合、カメラの接続を拒否します。
ZividStudio に新しいバージョンの通知を追加しました。
パブリック API からロギング API を削除します。
パブリック API から状態コールバック API を削除します。
CameraInfo と Camera が統合されました。
通常の動作条件下でのファンの騒音が低減されました。
パブリック API から usbPath と externalCameraId を削除しました。
Zivid Studio を .zdf ファイルに関連付けます。
Windows の「プログラムの追加と削除」に Zivid が表示されるようにします。
Visual Studio 用の VCRedist ファイルをセットアップ ファイルに埋め込みます。
必要に応じて、Toshiba Teli カメラ ドライバーをダウンロードしてインストールします。
std::shared_ptr をパブリック API から削除しました。
C++ API から ZSetting を削除しました。
Measurement クラスの名前を Frame に変更しました。
saveMeasurement を System クラスから Frame クラスに移動しました。
CloudViewer 用の個別のインストーラーを追加しました。
さまざまなバグ修正とパフォーマンスの向上。
0.9.544
インストール パッケージに Boost DLL が欠落している問題を修正しました。
0.9.539
垂直パターンで使用した場合の反射フィルターのバグを修正しました。
0.9.537
バージョン v0.9.534 で導入されたライブ モードのバグを修正しました。
0.9.534
これは、API と GUI の名前が ShapeCrafter から Zivid に変更される前の最後のリリースの 1 つになることに注意してください (たとえば、ShapeCrafterGUI は Zivid Studio になり、ShapeCrafter クラスの名前は Zivid に変更されます)。
垂直パターンのサポートが追加されました (パターンの量が 2 倍: 水平 + 垂直)。 API でenablePerpendicularPatterns() を使用します (または GUI の設定で切り替えます)。重要: 現在のハードウェアの制限により、プロジェクターの露光時間を約 1 秒以上に延長する必要があります。これが安定するには 33000 マイクロ秒。
反射による異常値を検出して除去できる反射フィルターを追加しました。反射フィルタは、垂直パターンが使用される場合に最も効果的に機能することに注意してください (「環境設定」を参照)。 APIのenableReflectionFilter()を介してオンにします。
ShapeCrafterGUI: [編集] -> [設定]、または API のenableErrorCorrectingCode() を介して、LGGC (ラージ ギャップ グレー コード) エラー修正パターン モードをサポートします。
飽和ピクセルを検出して削除できるようになりました。 HDR 測定の融合を改善する必要があります。 GUI の設定で有効にする (または有効化を呼び出す) か、API で setMaskSaturated を呼び出します。
ファームウェア リビジョンを取得する関数 getFirmwareLabel を追加しました (C++ および .NET API)。
ShapeCrafterAPI: PCB のリビジョン 2 のサポートを追加しました。たとえば虹彩に対しては異なるピン留めがあることに注意してください (したがって setProductRevision 関数)。
GUI の環境設定ダイアログで製品リビジョンを選択します (Rev. 0 (PoC)、エンジニアリング モデル Rev. 1、およびエンジニアリング モデル Rev. 2 間の違いを処理します)。
setProductRevision() 関数を API に追加しました。 ShapeCrafter を初期化する前にこの関数を呼び出してください。
isConnected() 関数を C++ および .NET API に追加しました。
関数initialize()は、カメラとプロジェクターの両方が正常に接続できたかどうかを示すブール値フラグを返すようになりました。
ファームウェアのアップデート: Zivid は 7 秒間のスプラッシュ画像で起動し、その後自動的にオフになります。これにはファームウェアのアップデートが必要です。関連するファームウェア: ZIVID_v0_9_10_ROM_v300_splash.bin をダウンロードしてインストールしてください。
ShapeCrafterNET: Logger.setLogCallback() 関数を追加しました。 .NET API のクライアントが、基礎となる C++ API からログ コールバック メッセージを受信できるようにします。
ShapeCrafterNET: StringSettings クラスと StringSetting クラスが改善されました。より C++ のように動作するようになりました (インデックスを介して読み取り/書き込みが可能)。
ShapeCrafterNET: .NET API の使用時に終了時にクラッシュが発生することがあるバグの修正を試みました。
ShapeCrafterNET: 指定された DLL のバージョン情報を返す getVersionInfoForModule() 関数を追加しました。
ShapeCrafterGUI: [ヘルプ] -> [バージョン情報] ダイアログ ボックスですべての DLL のバージョン番号を確認します。
ShapeCrafterGUI: ツールバーのボタンを使用して、点群をモノクロ カラー (RGB を無効にする) で表示するためのサポート。
ShapeCrafterGUI: メッシュ ビューで視覚化が即座に更新されるようになりました。
ShapeCrafterGUI: キャリブレーションされていない測定の実行に関連するバグを修正しました。
ShapeCrafterGUI: 設定ダイアログで [適用] をクリックすると、システムが再初期化されるようになりました (つまり、新しいキャリブレーション ファイルなどをロードします)。
CloudViewer: PCL ベースではない (DirectX ベースではありません) 点群を視覚化するための新しいアプリケーションです。 W3P ファイルにも関連付けることができます。
ShapeCrafterAPI: カメラを初期化できない場合に例外がスローされるようになりました。
Python API: 虹彩を制御するためのサポートが追加されました。
ZividCalibrationApp: 新しい Qt ベースのキャリブレーション アプリケーション。アプリケーションは、画像を保存する前に、プロジェクター/カメラの画像の角を検出しようとします。
CMakeによるパッケージとインストーラーの自動生成機能を追加しました。