SDK Changelog

2.12.0

API

  • Added support for Nvidia Jetson Orin:

    • See “Known issues & limitations” below for known issues when using Nvidia Jetson Orin.

  • Improved the quality and performance of the Omni engine:

    • The new and improved version of the Omni engine offers better coverage on transparent objects in less time.

    • Omni now allows capturing transparent objects with a greater distance between the foreground and background.

    • Edge artifacts, floating planes and rising floating points are drastically reduced.

    • The Omni engine now requires less light to get the same level of coverage, potentially allowing up to 2x reduction in acquisition time on all Zivid 2+ camera models. For Zivid 2+ M60, acquisition time is further reduced by 28%.

  • Using Settings::RegionOfInterest::Box may now significantly speed up acquisition and processing time:

    • The SDK can avoid acquiring and processing sensor data that is guaranteed to fall outside the region of interest.

    • The speed-up depends on the size and shape of the ROI box. Generally, a smaller ROI box seen from the camera’s viewpoint will give a greater speed-up.

  • Added new Settings2D::Sampling::Pixel for performing subsampled 2D capture:

    • Subsampled 2D captures can be considerably faster than full resolution 2D capture.

    • The available options mirror Settings::Sampling::Pixel, so that users can request 2D captures that exactly match the color data in the equivalent 3D capture.

  • Added new Settings::Processing::Resampling for upsampling/downsampling the point cloud:

    • These operations are performed after all other processing has been completed.

    • Downsampling is used to reduce the number of points in the point cloud. This is done by combining each 2x2 or 4x4 group of pixels in the original point cloud into one pixel in a new point cloud. This downsample functionality is identical to the downsample() method on the PointCloud class.

    • Upsampling can be used in combination with the existing subsampling modes to increase the output point cloud resolution while retaining the speed benefits of subsampled captures. This is achieved by mapping the computed pixels onto a higher resolution and interpolating the missing points in between where possible.

  • The projection API is no longer experimental:

    • The functions and classes have been moved from namespace Zivid::Experimental to Zivid::Projection. The related headers have been moved from Zivid/Experimental to Zivid/Projection.

  • Several settings are no longer experimental, and have been moved in the Settings hierarchy:

    • The Engine setting has been moved from Settings::Experimental::Engine to Settings::Engine.

    • The Reflection Removal filter’s Mode setting has been moved from Settings::Processing::Filters::Reflection::Removal::Experimental::Mode to Settings::Processing::Filters::Reflection::Removal::Mode.

    • The HoleFilling filter has been renamed to the Hole Repair filter. The setting has been moved/renamed from Settings::Processing::Filters::Experimental::HoleFilling to Settings::Processing::Filters::Hole::Repair.

    • If you set these particular settings directly in your code, then you must update the code to their new location.

    • Settings.yml files created from earlier SDK’s will continue to work in 2.12. However, if you modify these .yml files manually and update the __version__.data field in the top of the file to 24 or higher, you will need to update these setting nodes to reflect their new location. Otherwise, you will get an “YAML document contains unknown key” exception when loading the .yml file.

  • The Stripe and Omni engines are no longer experimental.

  • Added HardwareRevision string to the CameraInfo class.

  • Reduced acquisition time for Zivid 2+:

    • Acquisition time reduced by about 5% for 3D captures.

    • Acquisition time reduced by up to 50% for 2D captures.

  • RGB color values in full-resolution Phase engine 3D captures are now more reliable and accurate:

    • This change leads to a slight performance loss for exposure-time limited captures (higher-end GPU and high exposure time) and a slight performance gain for compute-limited captures (low-end GPUs and low exposure times).

  • Optimized color processing for 3D captures to improve performance on low-end GPUs:

    • Full resolution 3D captures with colors enabled are up to 10% faster.

    • Subsampled 3D captures with colors enabled are up to 20% faster.

  • The Reflection Filter in Local mode is now up to 15% faster on low-end GPUs.

  • Added a splash screen that projects camera information for 60 seconds after camera boot:

    • The splash screen will display the Zivid logo, the camera’s serial number, IP address, firmware version and network link status.

    • The splash screen will disappear after 60 seconds, or when you connect to the camera via the SDK/Studio.

    • The splash screen is enabled by default, and can be disabled using the ZividNetworkCameraConfigurator tool.

  • Cameras that can be reached from multiple local network interfaces are no longer reported as inaccessible:

    • Previously, if a camera’s IP could be reached from multiple local network interfaces, its status would be inaccessible, and CameraState::InaccessibleReason would be ipInMultipleLocalSubnets. This condition is no longer reported as an inaccessible camera, as there are some valid network configurations where this condition will be true.

  • Updated Zivid 2 and 2+ firmware to version 1.22.4.

.NET

  • Added support for in-field calibration to .NET.

Bug fixes

  • Fixed a bug where the function detectFeaturePoints(Frame) would throw unless the Frame came from the function captureCalibrationBoard(Camera). detectFeaturePoints(Frame) now accepts any Frame as input, and the stricter requirements are only applied if users attempt to use the DetectionResult for in-field verification or correction.

  • Fixed a bug where the SNR of the Omni engine was incorrectly calculated in occluded and noisy areas. This hindered effective use of the noise filter to clean up noisy edges.

  • Fixed a crash that could happen on some newer versions of Intel OpenCL drivers on Windows, if the Application was destructed while a Frame2D object was alive.

  • Fixed a very rare bug where a capture could fail with an “Internal error: The acquisition done signal was never received!” exception.

Studio

  • Added “Acquisition Time” to the Information panel. “Acquisition Time” is defined as the duration from the start of the capture to when the camera has acquired the last image.

  • Added “Save Depth Map” option to the “File” menu to save the depth map as a Jet color mapped .png image.

  • Added descriptive tooltips to all the settings nodes in the Information panel.

CLI

  • ZividListCameras’s output will now display “Hardware Revision” as an alphanumerical string, matching the revision printed on the product label. Previously an integer major and minor version was displayed.

  • ZividFirmwareUpdater now exits with an error code if no camera(s) are found. Previously the tool would exit successfully with code 0.

Deprecation notice

  • SDK 2.12 is the last release with C++11 support in the C++ API. SDK 2.13 and later will require C++17 or newer.

Removal of support

  • Zivid One+ cameras are no longer supported by the SDK. The last SDK with support for Zivid One+ is 2.11.

    • Any connected Zivid One+ camera will not appear in the API, Zivid Studio or ZividListCameras.

    • The zivid-telicam-driver debian package on Ubuntu/Linux, and TELICAMSDK application on Windows, is no longer required by the SDK. The Zivid SDK Windows installer will give you an option to uninstall TELICAMSDK from your computer.

  • Visual Studio 2017 is no longer supported by the SDK. Windows users must migrate to Visual Studio 2019 or newer.

Known issues & limitations

  • Known issues with Nvidia Jetson Orin:

    • All Jetson Orin modules are supported, and Zivid has tested Orin AGX, Orin NX and Orin Nano modules.

    • Jetson Orin Nano is supported by the SDK, but Orin Nano has only 4GB/8GB of total RAM, which is shared between both the GPU and the CPU. 4GB will generally be insufficient to run any application using the Zivid SDK, while 8GB in practice may be insufficient for some use cases, especially if doing longer captures, using Stripe/Omni engine, and/or enabling many filters, and depending on how much RAM is used in user’s code. RAM usage in your application should be carefully evaluated if you are using Jetson Orin with 8GB RAM or less.

    • Zivid Studio tooltips may in some cases not be displayed as expected. A workaround is having another application open that continuously draws to the screen, such as “System Monitor”.

    • The Visualizer class may not update the point cloud output correctly when using keyboard shortcuts.

  • 자주 발생하는 문제 및 제한 사항들은 <https://support.zivid.com/latest/support/troubleshooting.html> 를 참조하십시오.

2.11.1

API

  • Updated Zivid 2 and 2+ firmware to version 1.20.8.

Bug fixes

  • Fixed a bug for Zivid 2 and 2+ where cameras configured in DHCP mode would throw a “Timed out waiting for …” exception when connecting to the camera. This bug was introduced in SDK 2.11.0.

  • Fixed a bug for Zivid 2 and 2+ where continuously calling Zivid::Experimental::Projection::showImage() could project incorrect images. This bug has existed since the feature was introduced in 2.10.0.

Deprecation notice

  • SDK 2.11 is the last SDK with support for Zivid One+. 2.11 is a Long-Term Support (LTS) version for Zivid One+. 2.11 will receive patch updates with fixes for possible critical bugs or security issues that affect One+ operation until December 2026.

2.11.0

API

  • Added Settings::Sampling::Pixel::blueSubsample4x4/redSubsample4x4 for Zivid 2+:

    • This controls the projection color and how pixels are sampled for point cloud processing.

    • The blueSubsample4x4/redSubsample4x4 modes will project blue or red light, and sample one sixteenth of the pixels (resolution of 612x512 on Zivid 2+).

    • Compared to blueSubsample2x2/redSubsample2x2, these new modes will speed up both data acquisition and GPU processing time, as well as reduce GPU memory usage.

    • The maximum point cloud capture rate possible with a Zivid 2+ is almost doubled (from ~100ms to 50-60ms).

    • Point cloud captures with compute-heavy settings (like Omni engine) on weak GPUs are up to 3x faster in 4x4 mode compared to 2x2 mode.

    • The Zivid 2+ settings presets called ParcelsFast, ParcelsQuality and ConsumerGoodsFast have been modified to take advantage of the 4x4 mode.

  • All Zivid 2 and 2+ cameras that are discovered are now returned from Application::cameras():

    • The SDK will discover Zivid cameras on the local subnet(s), using the multicast DNS protocol. This includes Zivid cameras that have an IP configuration that is incompatible with the PC, for example mismatched IP/subnet settings, or if there are multiple Zivid cameras with the same IP address. Be aware that the multicast message is sent out from the PC on all local network adapters, including office/LAN network adapter etc.

    • Cameras that have incompatible IP settings compared to the PC will have status inaccessible. You will need to update the camera’s IP settings, or adjust the PC network adapter configuration, to use the camera from Zivid SDK/Studio. The camera’s IP can be changed using serial number by using the ZividNetworkCameraConfigurator CLI tool. See the CLI section of the Changelog.

    • Discovered Zivid 2 and 2+ cameras that are busy (in use by another process) will also be returned from Application::cameras(), and will have status busy.

    • Note! This is a behavior change from earlier SDK versions. Previously, cameras that were inaccessible (in other words, not connectable over TCP/IP and/or already connected from another process) would not be returned from Application::cameras().

    • If you have a Cameras.yml file in the Zivid config directory, then only the Zivid 2 and 2+ cameras that matches the entries in Cameras.yml will be returned. Note that Cameras.yml does not affect One+ cameras.

  • Added Status enum to the CameraState class that indicates if a camera is available, inaccessible, busy, requires firmware update, etc. See the CameraState::Status documentation for more information about the possible statuses.

  • Added InaccessibleReason enum to the CameraState class to give more information for cameras in inaccessible state. This enum will indicate if the problem is IP conflict, misconfigured subnet settings, etc.

  • Added Network::IPV4::Address string to the CameraState class that returns the IP address of the camera.

  • Stripe engine now supports all reflection filter modes:

    • In addition to the Global reflection filter, it’s also possible to choose the Local reflection filter, or disable the reflection filter entirely. This is useful in scenarios where you need to reconstruct thin objects like cables or pipes, but can allow some loss in reflection handling and point cloud quality.

  • Improved speed of back-to-back captures by better pipelining of acquisition, data transfer and processing:

    • The SDK will now be able to start the acquisition of the next (2D or 3D) capture while the previous (2D or 3D) capture using the same camera is still being transferred/processed. Prior to this release, the next capture for a camera would not start until all previous capture(s) on the same camera had finished all transfer and processing.

    • The improvement on total 2D+3D capture time is around 15-20ms on high-end Nvidia GPUs, and around 50-70ms on integrated Intel GPUs, depending on network speed and GPU capability.

    • To capture back-to-back as fast as possible, invoke Camera::capture() as soon as possible after the previous Camera::capture() returned (which is right after the image acquisition for that capture finished). Be aware that calling some Frame/Frame2D methods such as frame.pointCloud() or frame.imageRGBA() will block until the processing of that capture has finished. So for max speed you should avoid calling those methods in the same thread before starting the next capture, for example by having separate capture/processing threads or using std::async.

  • Improved Camera::capture() return time for Zivid 2 and 2+ cameras with Stripe/Omni engine on weaker GPUs:

    • Prior to this release, capture() in this scenario would not return immediately after the acquisition of the capture had completed. There could be a delay of up to 100-200ms after acquisition completed before capture() returned. This delay would only happen on weaker GPUs, typically Intel integrated GPUs. From this release Camera::capture() will return within a few milliseconds after acquisition has finished, independent of capture settings and GPU.

  • Improved capture speed with Stripe/Omni engine when compute-limited (low exposure-time) by up to 10%.

  • Added constructor to the Image class that constructs the image from a path to a .png/.bmp/.jpg file.

  • Added new ColorSRGB output format to PointCloud and Frame2D classes for copying color in sRGB color space:

    • The sRGB color space is suitable for showing an image on a display for human viewing. With sRGB output format, colors will appear brighter and more correct compared to the existing (linear) color formats.

  • Changed the output of Camera::toString():

    • A new Status field is added. The Network Path field is renamed to IP Address. The Internal camera id and Projector firmware tag fields are removed.

  • Disconnected file cameras will now be returned from Application::cameras(), as long as the user holds a handle to the file camera. Prior to this release, disconnected file cameras would not be included in cameras().

  • Updated Zivid 2 and Zivid 2+ firmware to version 1.20.6.

C++

  • Added Zivid::Image::resolution() member function that returns the image size in a Resolution object.

  • Added new function Experimental::Calibration::pixelMapping() for retrieving information about how pixels in a subsampled capture maps to pixels in a full-resolution capture.

.NET

  • Added experimental projection API to project a custom color image with the Zivid projector:

    • This API was added for C++ and Python in 2.10.0, and is now available from .NET.

    • Available for Zivid 2 and Zivid 2+.

  • Added Resolution property to the Image class that returns the image size in a Resolution object.

Bug fixes

  • Fixed a bug in the .NET wrapper where a Zivid.NET.CloudVisualizer instance could not be run multiple times in the same process.

  • Fixed an issue for Zivid 2+ when performing 3D capture with Settings::Sampling::Pixel set to blueSubsample2x2/ redSubsample2x2, in combination with Settings::Sampling::Color::rgb, where the camera could use above 100W of power for a short duration. The camera will now stay below 100W power usage in this case, unless the Config.yml option Camera/Power/Limit is set to unlimited. See the Changelog for 2.10.1 for more info about the Power Limit config.

  • Fixed a “StructuredLightCamera::~StructuredLightCamera was invoked in the wrong thread” exception that could happen when disconnecting from a camera in specific rare circumstances.

CLI

  • ZividNetworkCameraConfigurator can now configure camera IP settings given only the serial number if the camera, even if the camera is not accessible over TCP/IP:

    • The tool can configure network settings for any discovered Zivid camera, using multicast UDP messages. This simplifies changing camera network configuration, as you don’t need to have a TCP/IP connection to the camera in order to change its network configuration.

    • This feature requires that the camera is already on firmware version 1.17.1 or newer (from SDK 2.10.0 or newer). Cameras with older firmware versions will still require that you connect to the camera via direct TCP/IP connection (as in SDK 2.10 and earlier).

  • ZividListCameras will now list all discovered Zivid 2 and 2+ cameras, even cameras that are inaccessible or busy. The Status field will give you the status of the camera. See the API section for more information.

  • ZividListCameras will no longer automatically invoke camera.connect() on each discovered camera. You can connect to each camera by passing the argument --test-connect, which is useful to determine if the camera is accessible over TCP/IP.

  • ZividListCameras will now print a notification message if you have a Cameras.yml file on the PC.

  • ZividListCameras’ output for each camera is changed. See the description of changes to Camera::toString() in the API section above.

Studio

  • Color/RGB values in the 3D view and 2D color image view will now be shown in sRGB color space:

    • This makes the color images look brighter and more correct on monitors, compared to previous versions of Studio which displayed colors in linear RGB color space.

    • When saving color/RGB images from Studio, the user can select if they want to use sRGB or linear color space.

    • Exported 3D point clouds in .ply, .pcd or .xyz format will still store colors in linear RGB color space.

  • Studio will now show all inaccessible and busy cameras, which previously were not shown via API or Studio. For cameras in inaccessible state, a helpful description about how to configure the camera is displayed.

  • Added IP address and camera status to the camera selector combobox.

  • Studio will now periodically check the connection state of all cameras. Studio will automatically detect new cameras, disconnected cameras and state changes (such as changed camera status or changed IP address).

Removal of support

  • AMD compute devices/GPUs are no longer supported by the SDK, and will give an error message:

    • Nvidia GPUs and Intel GPUs are the supported compute devices.

    • AMD CPU’s can be used, as long as they are used with an Nvidia or Intel GPU.

    • User can opt in to run with an unsupported compute device, by setting the Config.yml option ComputeDevice/AllowUnsupported to yes. However, such a setup may give unexpected results and errors, and is not tested by Zivid. See the knowledge base for more information.

Deprecation notice

  • Support for using Visual Studio 2017 is deprecated since 2.10.1, and will be removed in the next SDK release. We recommend to migrate to VS 2019 or newer.

Known issues & limitations

2.10.1

API

  • Added support for Zivid 2+ M60 and Zivid 2+ L110:

  • Zivid 2+ cameras only: It is now possible to disable the ContrastDistortion Correction filter when using the Stripe engine:

    • The CD Correction filter will smooth out edges, so disabling this filter can be useful to preserve edge detail.

    • Note: Zivid 2 and One+ cameras are unchanged, and still require this filter to be on when using Stripe engine.

  • Lowered the minimum possible value for Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance from 4 to 2. Using MaxNeighborDistance values below 4 can be useful to remove more bad points on certain scenes.

  • Zivid 2+ cameras only: Reduced max Brightness setting when projecting white light from 2.5 to 2.2:

    • The maximum brightness for 2D captures and 3D capture with Settings::Sampling::Pixel::all is reduced from 2.5 to 2.2. An exception message will be thrown if you use brightness > 2.2.

    • The default brightness for 2D capture in the API is changed from 2.5 to 2.2. The default for 3D capture remains at 2.5.

    • This change is done to make sure the 2+ cameras stay below 100W power usage when capturing. If your application allows more than 100W power consumption, you can remove this limitation and keep using 2.5 with the Config.yml option “Camera/Power/Limit”.

    • See https://support.zivid.com/en/latest/reference-articles/settings/acquisition-settings/projector-brightness.html for more info.

  • Updated Zivid 2 and Zivid 2+ firmware to version 1.18.4.

Bug fixes

  • Fixed a bug where Zivid 2 and 2+ could drop Ethernet packets and lose connectivity when not operating at 10 GbE.

  • Fixed a bug that could cause excessive point cloud smoothing when using the Contrast Distortion Correction filter with the Zivid 2+ M130.

Deprecation notice

  • Support for using Visual Studio 2017 is deprecated and will be removed in an upcoming SDK release:

    • Zivid recommends to transition to a newer Visual Studio version.

  • Support for using AMD compute devices/GPUs is deprecated 2.10.1 and will be removed in 2.11.0:

    • AMD compute devices are no longer supported due to low usage and OpenCL stability issues in the drivers.

    • Nvidia GPUs and Intel GPUs will be the supported compute devices.

    • It will be possible to opt in to run the SDK with an unsupported compute device, by enabling an option in the Config.yml file. However, such a setup may give unexpected results and errors, and is not tested by Zivid.

2.10.0

API

  • Zivid 2+ M130에 대한 지원 추가:

    • Zivid 2+ M130은 더 높은 해상도의 포인트 클라우드 및 2D 컬러 이미지, 개선된 색상 및 향상된 개체 적용 범위를 제공합니다. 이 카메라에 대한 자세한 내용은 <https://www.zivid.com/zivid-2-plus-m130> 을 참조하십시오.

  • Zivid 2+를 위한 새로운 Omni vision engine 추가:

  • Zivid 2 및 Zivid 2+에 대한 Settings::Sampling::Pixel::all/blueSubsample2x2/redSubsample2x2 추가:

    • 포인트 클라우드 처리를 위해 투영 색상과 픽셀이 샘플링되는 방법을 제어합니다.

    • blueSubsample2x2/redSubsample2x2 는 블루 라이트 또는 레드 라이트를 투사하고 픽셀의 1/4을 샘플링합니다. 이러한 옵션은 포인트 클라우드의 캡처 시간, 메모리 사용량 및 해상도를 줄입니다. 또한 주변 조명과 반짝이는 개체에 대해 더 나은 성능을 제공할 수 있습니다.

    • Zivid 2+의 기본값은 blueSubsample2x2 입니다. 전체 해상도(5MP) 포인트 클라우드를 원하면 all 로 설정하십시오.

    • Zivid 2의 기본값은 ‘all’ 입니다.

    • AMD GPU를 사용하는 경우 아래의 “New known issues in this release” 섹션에서 알려진 문제를 참조하십시오.

  • 색상 샘플링 구성을 위한 Settings::Sampling::Color::rgb/disabled 추가:

    • ‘disabled’ 로 설정하면 색상 데이터가 PointCloud에 포함되지 않습니다.

    • ‘disabled’ 는 캡처 속도를 최적화합니다.

    • ‘disabled’ 는 ‘Settings::Sampling::Pixel’ 서브샘플링 모드에서 별도의 흰색 프로젝터 빛을 사용하지 않습니다.

    • 기본값은 rgb 입니다.

  • Settings::Processing::Filters::Noise::Suppression 추가:

    • 포인트 클라우드에서 노이즈와 Outliers을 줄입니다.

    • 이 필터는 상호 반사로 인한 파급 효과를 줄이는 데에도 사용할 수 있습니다.

    • 매우 미세한 세부 사항을 구별해야 하므로 스무딩 효과를 피해야 하는 경우 이 필터를 비활성화하는 것이 좋습니다.

  • Settings::Processing::Filters::Noise::Repair 추가:

    • 노이즈 포인트로 인해 누락된 데이터 영역을 복구하여 표면 적용 범위를 개선합니다.

    • 포인트 클라우드의 모든 포인트가 신뢰도가 높아야 하는 경우 이 필터를 비활성화하는 것이 좋습니다.

  • 실험용 Zivid::Experimental::Projection API를 추가하여 Zivid 프로젝터로 사용자 지정 컬러 이미지를 투사합니다.

    • Zivid 2 및 Zivid 2+ 카메라 모델에서 사용할 수 있습니다.

    • 장면의 3D 지점에 해당하는 프로젝터 픽셀로 조명할 수 있습니다.

  • 주어진 Settings 또는 Settings2D 에 적합한 내장 함수를 가져오도록 실험용 내장 함수 API를 확장했습니다.

    • Settings::Sampling::Pixel 의 도입으로 단일 카메라 모델에서 다양한 출력 해상도를 생성할 수 있습니다. 새 Intrinsics 함수를 사용하여 출력 해상도에 적합한 Intrinsics 함수를 가져옵니다.

    • 원래 함수는 주어진 카메라 모델의 기본 Settings 에 해당하는 Intrinsics 함수를 생성합니다. <https://support.zivid.com/en/latest/reference-articles/default-settings.html> 에서 모든 기본 설정을 확인하십시오.

  • 50Hz 및 60Hz 주변 광원에 맞게 조정된 Presets 설정을 추가했습니다.

  • 더 큰 HoleSize 값으로 구멍 채우기 필터의 향상된 성능:

    • High-end 하드웨어에서 2배-4배 더 빠르고 Low-end 하드웨어에서 최대 15% 더 빠릅니다.

    • HoleSize 값이 클수록 속도 향상이 증가합니다. HoleSize 는 약 0.2-0.3입니다.

    • 필터는 작은 HoleSize 값(약 0.1)과 High-end 하드웨어의 경우 약 5-10ms로 느려질 수 있습니다.

  • 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++

  • 시작 및 끝 iterators/pointers에서 이미지를 생성하기 위해 Zivid::Image 에 constructors를 추가했습니다.

  • 2D 공간에서 점을 나타내는 클래스 Zivid::PointXY 를 추가했습니다.

  • Zivid::Array2D 에 대한 전역 begin/end/cbegin/cend 반복자 함수를 추가했습니다.

Bug fixes

  • Frame::clone() 이 PointCloud 데이터의 shallow 복사(deep 복사가 아님)를 수행하는 버그를 수정했습니다.

  • Z가 NaN이 아닌데 점의 X 및 Y 좌표가 NaN일 수 있는 버그를 수정했습니다. 이 버그는 매우 낮은 확률로 ContrastDistortion 필터가 활성화된 경우에만 발생했습니다.

Studio

  • 2D 캡처에 대한 지원이 추가되었습니다.

  • Presets 설정에 대해 주변광 적응(50Hz/60Hz/끄기)을 활성화하는 옵션이 추가되었습니다.

  • 이제 사용자는 캡처 버튼을 활성화하기 전에 Presets 또는 Capture Assistant를 선택하거나 Manual Mode로 변경해야 합니다.

  • 설정 슬라이더의 시각적 위치가 텍스트 상자에 표시된 실제 값과 일치하지 않는 버그를 수정했습니다.

  • Stripe Engine을 선택할 때 표시되던 정보 상자가 제거되었습니다.

New known issues in this release

2.9.0

API

  • 클러스터 제거 필터가 추가되었습니다.:

    • 포인트 클라우드에서 작은 클러스터와 각각의 Floating 포인트들을 제거합니다. 이는 반사 및 부분적으로 가려진 영역에서 발생할 수 있습니다.

    • MaxNeighborDistance 설정은 포인트를 그룹화할 때 알고리즘이 얼마나 엄격한지를 제어합니다. 값이 낮으면 희박하고 잡음이 많은 데이터와 반사면도 제거하는 경향이 있습니다. 유용한 데이터가 제거되지 않도록 주의해서 낮은 값을 사용하십시오.

    • ‘MinArea’ 설정은 mm^2 단위로 지정되며 클러스터가 유지되기 위해 가져야 하는 최소 영역을 정의합니다.

    • 필터의 처리 오버헤드는 고급 Nvidia 및 AMD GPU에서 약 10 ms, Intel GPU에서 75-225 ms입니다.

    • 이 필터는 기본적으로 꺼져 있습니다.

    • Capture Assistant는 이 필터를 켭니다.

  • 가우시안 필터의 성능이 개선되었습니다.:

    • 가우시안 필터는 전경과 배경 가장자리 사이(예: 개체의 뒷면/그림자 측면)에 더 이상 잘못된 평면을 만들지 않습니다. 예를 들어 새 필터는 상자의 전면 가장자리와 같은 개체의 대규모 3차원 모양을 보존하는 데 약간 더 좋습니다.

    • 노이즈가 많은 평면에서 시그마 매개변수의 동일한 값은 이전 버전의 필터에서와 거의 동일한 양의 평활화를 제공합니다.

  • 관심 영역 기능이 추가되었습니다.:

    • 관심 영역 상자는 설정에서 지정할 수 있습니다. 이 상자 밖의 모든 포인트는 필터링됩니다(NaN으로 설정).

    • 상자는 OA와 OB라는 두 벡터를 정의하는 3개의 점 O, A, B로 지정됩니다. 점 O와 벡터 OA 및 OB는 함께 평행사변형을 정의합니다. 상자를 정의하기 위해 평행사변형이 표면 법선 벡터를 따라 돌출되는 방법을 정의하는 두 개의 범위 값이 제공됩니다.

    • 깊이 (Z) 범위도 지정할 수 있습니다. 이렇게 하면 이 범위를 벗어나는 Z 좌표를 가진 모든 포인트가 필터링됩니다.

    • 관심 영역은 캡처 시간이나 포인트 클라우드의 데이터 양을 줄이지 않습니다.

    • 관심 영역은 매우 작은 처리 오버헤드를 추가합니다.

  • 이제 Camera::capture() 함수는 이미지 획득이 완료된 직후 반환됩니다.

    • ‘capture()’ 가 반환되면 모든 이미지가 획득되고 프로젝터가 패턴 투사를 중지한 것입니다. 이 시점에서 카메라를 안전하게 이동하거나 로봇을 작업 공간으로 이동하거나 동일한 작업 공간과 겹치는 두 번째 카메라에서 캡처할 수 있습니다. 캡처가 완료되고 포인트 클라우드를 사용할 수 있기 전에 데이터 전송 및 처리가 남아 있음을 유의하십시오.

    • frame.pointCloud() 를 호출하면 처리가 완료되고 포인트 클라우드를 사용할 수 있을 때까지 차단됩니다.

    • 자세한 내용은 capture() 함수에 대한 API 문서를 참조하세요.

  • 새로운 실험용 Hole filling 필터를 추가했습니다.

    • Hole filling은 포인트 클라우드에서 누락된 값을 원형 이웃의 이웃에서 보간합니다.

    • HoleSize 는 채울 구멍의 상대적 직경을 정의합니다. 이 값을 늘리면 더 많은 포인트가 채워지지만 더 많은 계산 시간이 필요합니다. 허용되는 최대 구멍 크기는 거리에 따라 확장되므로 더 먼 거리에서 더 큰 구멍을 채울 수 있습니다.

    • Strictness 은 포인트를 채워야 하는지 고려할 때 엄격함의 수준을 제어합니다. 더 높은 수준의 엄격함은 채워지기 위해 더 많은 면에서 유효한 점으로 둘러싸인 누락된 점을 요구합니다. 이 값을 늘리면 더 적은 수의 점이 채워지지만 원형이 아닌 간격(예: 두 가장자리 사이)을 채울 가능성이 줄어듭니다.

    • Hole filling은 3D 포인트만 변경하고 SNR 및 색상 값은 변경하지 않습니다.

    • 자세한 내용은 <https://support.zivid.com/en/latest/reference-articles/settings/processing-settings/hole-filling-filter.html> 을 참조하십시오.

  • 캡처 속도가 개선되었습니다.:

    • 이제 가우시안 스무딩 필터가 더 빨라졌습니다. 이는 기본 시그마로 필터를 활성화하는 비용이 20-30 ms에서 5-10 ms로 감소하는 Intel GPU에서 가장 두드러집니다. 이 효과는 시그마 값이 높을수록 더욱 강해집니다.

    • 이제 Stripe 엔진으로 캡처할 때 처리 속도가 빨라졌습니다. 이는 전체 Stripe 엔진 캡처 시간 (획득 + 처리)이 최대 15% 감소한 Intel GPU에서 가장 두드러집니다.

    • Zivid Two의 획득 프로세스는 최적화되어 기본 설정으로 총 캡처 시간 (획득 + 처리)이 GPU에 관계없이 약 10% 감소합니다.

  • Zivid Two의 온도 안정화 모드는 기본적으로 활성화되어 있으며 더 이상 실험적이지 않습니다.

    • 이 모드에서 카메라는 내부 카메라 온도를 보다 일관되게 유지하기 위해 유휴 상태일 때 더 많은 전력을 사용합니다. 더 일관된 온도는 높은 듀티 사이클 캡처 기간과 낮은 듀티 사이클 캡처 기간 사이의 Dimension Trueness의 차이를 줄입니다.

    • 이 모드가 활성화되면 약간의 노란색 빛이 프로젝터에서 나옵니다.

    • 이 모드는 구성 파일을 사용하여 비활성화할 수 있습니다. <https://support.zivid.com/en/latest/reference-articles/thermal-stabilization.html> 을 참조하십시오.

  • Presets 설정을 위한 API를 추가했습니다.

    • Presets 설정은 특정 시나리오/사용 사례 및 다양한 카메라 모델에 최적화된 Zivid에서 제공하는 세팅입니다.

    • Presets 설정은 Zivid::Presets 네임스페이스에서 사용할 수 있습니다.

    • 참고: 새 Presets 설정을 추가할 수 있으며 기존 Presets을 변경하거나 향후 SDK 릴리스에서 완전히 제거할 수 있습니다. 향후 SDK 릴리스에서 의도하지 않은 동작 변경을 방지하려면 settings.yml 파일로 사용하려는 Presets을 저장한 다음 해당 파일을 직접 로드하는 것이 좋습니다.

  • Zivid One+ 및 Zivid Two 기반의 새로운 파일 카메라에 대한 지원 추가:

    • 이 새로운 파일 카메라를 다운로드하려면 다음 링크를 참조하십시오.: <https://support.zivid.com/en/latest/api-reference/samples/sample-data/file-camera.html>

    • Zivid의 Customer Success 팀은 Diagnostics이 활성화된 상태에서 캡처된 .zdf 파일을 파일 카메라로 만들어 줄 수 있습니다.

    • 기존 FileCameraZividOne.zfc 파일 카메라에 대한 지원은 다음 SDK 버전에서 제거됩니다.

  • 저장된 .zdf 파일에서 Infield correction/verification에 대한 지원이 추가되었습니다.

    • captureCalibrationBoard(Zivid::Camera &camera)detectFeaturePoints(const Zivid::Frame &frame) 기능이 Zivid::Experimental::Calibration 에 추가되었습니다.

  • Z 값이 음수인 포인트 필터링이 추가되었습니다. 이 포인트는 이제 NaN으로 설정됩니다. 일반적인 캡처 설정을 사용하면 이러한 포인트는 일반적으로 노이즈 또는 이상값 필터에 의해 필터링됩니다.

  • 프레임을 캡처하는데 사용되는 카메라에 대한 CameraInfo 개체를 반환하는 Frame2D::cameraInfo() 함수가 추가되었습니다.

  • PointCloudImage classes에 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 의 생성자는 최소값이 최대값보다 큰 경우 예외를 발생시킵니다.

Bug fixes

  • Linux: libZividCore.so 가 boost 및 asio와 같은 타사 라이브러리에서 약한 기호를 내보내는 버그를 수정했습니다. 이로 인해 이러한 라이브러리를 사용하는 사용자에게 동적 연결 문제가 발생할 수 있습니다.

이 릴리스의 새로운 알려진 문제

  • Nvidia 드라이버 510을 사용하고 2대 이상의 카메라로 연달아 캡처할 때 포인트 클라우드의 상단 부분에서 잘못된 패턴/스트라이프가 표시되는 경우가 있습니다. 이 문제는 이 Nvidia 드라이버 버전에서만 나타났습니다. 여러 대의 카메라로 캡처하는 경우 다른 Nvidia 드라이버 버전을 사용하는 것이 좋습니다. 드라이버 470, 515 및 525는 테스트되었으며 잘 작동합니다. 하나의 카메라만 사용하는 경우 이 문제가 보이지 않습니다.

  • 자주 발생하는 문제 및 제한 사항들은 <https://support.zivid.com/latest/support/troubleshooting.html> 를 참조하십시오.

Studio

  • ‘Tools’ 메뉴에 Infield Correction/Verification 마법사를 추가했습니다.

  • Presets 설정을 추가했습니다. Presets은 ‘Capture’ 상자의 ‘Assisted’ 탭 아래에 있는 선택 상자에 표시됩니다.

  • Depth/색상/snr/일반 맵에서 포인트를 선택하기 위해 관심 영역 상자 설정 아래에 포인트 선택기 아이콘을 추가했습니다.

  • Region of Interest Box 와이어프레임을 표시하거나 숨기는 버튼을 추가했습니다.

  • 카메라를 찾을 수 없을 때 오른쪽 패널에 도움말 버튼을 추가했습니다. 도움말 버튼은 기술 자료로 이동합니다.

  • 스트라이프 엔진의 “Enable Required Filters” 버튼은 이제 반사 제거 필터 모드를 global 로 설정합니다.

  • “Start Firmware Update” 버튼을 빠르게 두 번 이상 클릭하면 업데이트가 완료된 후 “The camera firmware is already up to date” 오류가 발생할 수 있는 버그를 수정했습니다.

  • 이제 설정 트리에서 입력 필드를 클릭하면 텍스트가 자동으로 선택됩니다.

  • 많은 버튼, 선택 상자 및 기타 UI 요소에 대한 툴팁이 개선되었습니다.

2.8.1

API

  • ZividExperimentalHandEyeCalibration CLI 도구는 이제 Zivid SDK에서 저장된 Zivid::Matrix4x4 YAML 파일을 읽을 수 있습니다. 이 도구는 이전 SDK 릴리스에서 사용된 Open CV YAML 파일 양식을 계속 사용할 수 있습니다. --transform-file 인수가 제공되면 이 도구는 입력 파일과 동일한 파일 형식을 사용하여 Hand-Eye Calibration Transform을 저장합니다.

Bug fixes

  • 디버그 모드의 Windows에서 Zivid Two로 캡처할 때 발생하는 debug assert을 수정했습니다. 이 버그는 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 카메라를 검색할 때 “Unknown product number ‘’” 오류가 발생할 수 있는 문제를 수정했습니다. 이 버그는 SDK 2.8.0에서 개선되었습니다.

Studio

  • Studio: 터치패드를 사용하여 Studio에서 슬라이더를 드래그할 때 발생할 수 있는 “Cannot assign [undefined] to double” 오류를 수정했습니다.

2.8.0

API

  • Zivid Two의 향상된 캡처 속도:

    • 각 획득에 대해 Zivid Two에서 PC로 전송되는 데이터의 양이 줄어듭니다. 이렇게 하면 네트워크 링크가 병목 현상이 발생하는 경우(예: 카메라와 PC 간의 연결이 10Gbps 미만인 경우 또는 여러 대의 카메라로 동시에 캡처하는 경우) 캡처 속도가 향상됩니다.

    • Zivid Two는 이제 HDR 시퀀스의 모든 이미지를 바로 얻을 수 있습니다. 이전에는 카메라가 다음 획득이 시작되기 전에 한 획득의 모든 이미지가 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를 통해 볼 수 있습니다.

    • Cameras.yml 파일이 Zivid 구성 폴더에 있으면 해당 파일에 나열된 IP/호스트 이름만 SDK에 표시되고 자동 검색이 수행되지 않습니다.

    • 카메라를 검색하려면 먼저 최신 펌웨어 버전(FW 1.9.6, SDK 2.8에 포함)으로 업데이트해야 합니다.

    • 자세한 내용은 <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++

  • begin, end, cbegincend 메소드를 Array2D 클래스에 추가했습니다.

Windows

  • Visual Studio에서 정적 런타임 라이브러리를 사용하는 경우 컴파일 오류가 추가되었습니다. Zivid SDK는 동적 런타임 라이브러리인 /MD 또는 /MDd 옵션으로 빌드해야 합니다. 이것은 Visual Studio 프로젝트의 “C/C++” -> “Code Generation” -> “Runtime Library” 에서 구성할 수 있습니다.

Bug fixes

  • Zivid Two만 해당: 잘못된 color balance 계산 문제를 수정했습니다.

  • Zivid Two만 해당: 느린 네트워크 업로드 속도로 인해 펌웨어 업데이트가 시간 초과되어 실패할 수 있는 문제가 수정되었습니다.

Studio

  • Signal-to-noise ratio(SNR) ㅠ맵이 추가되었습니다.

  • Normal 맵이 추가되었습니다.

  • 다른 보기 간에 전환할 수 있도록 왼쪽 상단 모서리에 드롭다운 메뉴를 추가했습니다.

  • 포인트 크기를 선택하기 위해 3D 보기 상단에 드롭다운 메뉴를 추가했습니다.

  • 다른 보기 중에서 선택하기 위해 바로 가기 버튼 1~5를 추가했습니다.

  • 바닥글 표시줄의 텍스트를 가리지 않도록 바닥글 미리보기 이미지의 디자인을 조정했습니다.

Known issues & limitations

2.7.0

API

  • 반사 필터의 새로운 실험적 로컬 모드를 추가했습니다.

    • 새로운 설정인 Settings::Processing::Filters::Reflection::Removal::Experimental::Mode 가 선택 모드에 추가되었으며, 이는 local 또는 global 일 수 있습니다. global 은 이전 반사 필터에 해당하며 기본값입니다.

    • Local 모드는 얇은 개체에서 더 많은 3D 데이터를 보존하고 일반적으로 Global 모드보다 더 많은 반사 아티팩트 및 프로세스를 더 빠르게 제거합니다.

    • Global 모드는 일반적으로 포인트 클라우드에서 Outlier points을 제거하는 데 더 좋습니다.

    • Local 모드는 실험적이며 향후 릴리스에서 변경할 수 있습니다.

  • 새로운 설정 Settings::Processing::Color::Experimental::Mode 추가:

    • 이 설정에는 automatic, toneMappinguseFirstAcquisition 의 세 가지 옵션이 있습니다.

    • automatic 모드는 기본값이며 SDK의 이전 기본 동작에 해당합니다. 이 모드는 단일 캡처의 경우 useFirstAcquisition 및 HDR 캡처의 경우 toneMapping 과 같습니다.

    • useFirstAcquisition 은 항상 설정에서 제공된 첫 번째 수집(Acquisition)의 색상 데이터를 사용합니다. 이 모드는 단일 획득 및 다중 획득 HDR 캡처 모두에 사용할 수 있습니다. 이 모드는 toneMapping 보다 색상을 더 세밀하게 제어할 수 있으며 장면의 내용이 바뀌어도 안정적인 색상 출력을 제공합니다.

    • toneMapping 은 모든 획득의 색상 데이터를 결합하여 하나의 병합되고 정규화된 색상 이미지를 생성합니다.

    • 이 새로운 설정은 SDK 2.3.0에 추가된 기존의 Settings::Processing::Color::Experimental::ToneMapping::Enabled 설정을 대체합니다.

    • 자세한 내용은 Settings::Processing::Color::Experimental::Mode 문서를 참조하십시오.

  • Zivid Two: 캡처 간에 내부 카메라 온도를 안정적으로 유지하기 위한 새로운 실험 모드를 추가했습니다.

  • Zivid Two: Multicast DNS를 사용하여 .local 레이블로 끝나는 이름 쿼리에 대한 지원이 추가되었습니다.

  • 보정 보드의 포즈를 반환하는 DetectionResult 클래스에 pose 메서드를 추가했습니다.

  • Matrix4x4 클래스에 역행렬을 반환하는 inverse 메소드를 추가했습니다.

  • Zivid One+: Phase engine을 사용할 때 신호가 없는 픽셀(예: 과포화 픽셀)의 바로 왼쪽 또는 오른쪽에 있는 픽셀의 처리가 향상되었습니다. 이러한 픽셀은 이전에 신호 없음 픽셀이 포함된 영역에서 소량의 floating points을 유발할 수 있었습니다.

  • Zivid One+: Phase engine 패턴 내에서 안정적으로 디코딩할 수 없는 픽셀 필터링이 개선되었습니다. Noise 및 Outlier 필터가 꺼져 있는 경우 이러한 픽셀은 이전에 주로 신호가 낮은 영역에서 floating points으로 표시될 수 있었습니다. Zivid Two에는 유사한 필터링이 이미 존재했습니다.

  • 최신 AMD GPU에 대한 지원 추가:

    • RDNA 아키텍처가 있는 AMD 카드는 이전 SDK 버전에서 간혹 오류가 발생했지만 지금은 정상 지원됩니다.

    • AMD RDNA 카드(예: RX5500 및 RX5700)는 설치된 GPU 드라이버 버전 및 OS 버전에 따라 Ubuntu에서 불안정할 수 있습니다. 이러한 모델을 사용하는 경우 설정에서 안정성을 신중하게 테스트하는 것이 좋습니다.

  • Stripe engine의 캡처 속도 향상:

    • 고급 Nvidia GPU에서 측정된 약 3%-12% 개선 및 Intel 통합 GPU에서 5%-15% 개선. HDR로 캡처할 때 백분율 면에서 가장 많은 개선이 있었습니다.

  • Phase engine의 캡처 속도 향상:

    • 고급 Nvidia에서 2%에서 12%로 개선되었습니다. Low-end Intel integrated GPU에서 유사한 개선 사항이 있는 반면 고급형 통합 Intel GPU는 SDK 2.6과 유사한 성능을 제공합니다.

    • 짧은 HDR 시퀀스에서 가장 많이 개선되었습니다.

  • Intel 드라이버를 사용할 때 Phase engine을 사용한 단일 획득 캡처의 캡처 속도 저하:

    • 캡처 시간은 설정에 따라 SDK 2.6에 비해 5%에서 15% 증가했습니다. 많은 필터를 활성화할 때 백분율 면에서 가장 많은 저하가 있었습니다.

    • 이것은 Stripe engine 또는 HDR 캡처에는 적용되지 않습니다. 위의 사항을 참조하십시오.

  • Normals 처리 시간 약 50% 향상:

    • 전체 해상도 포인트 클라우드의 Normals 계산을 위한 일반적인 처리 시간은 GPU 성능에 따라 Nvidia GPU에서 약 5-20ms, 통합 Intel GPU에서 15-40ms입니다.

  • 내부적으로 새로운 GPU 컴퓨팅 프레임워크를 사용하도록 변경되었습니다.

  • 컴퓨팅 파이프라인 초기화로 인해 카메라 연결 시간이 늘어납니다.

    • 카메라가 프로세스에서 처음 연결될 때 SDK 2.6에서보다 6-10초 더 오래 걸릴 수 있습니다.

    • 이러한 연결 시간 증가는 카메라 모델당, Zivid::Application 개체당 한 번만 발생합니다.

  • 제품 품질 및 고객 서비스 경험을 개선하기 위해 클라우드 연결 로깅을 추가했습니다.

  • 이미 존재하는 Zivid::Application 객체를 다시 생성하는 경우의 오류 메시지를 개선했습니다.

  • 여러 대의 Zivid One+ 카메라를 동시에 사용하는 것은 이제 실험적이지 않습니다.

  • Zivid Two 펌웨어의 버전이 1.7.4로 업데이트되었습니다.

  • experimental 설정 Settings::Processing::Color::Experimental::ToneMapping::Enabled 이 제거되었습니다:

    • 이 설정은 Settings::Processing::Color::Experimental::Mode 로 대체되었습니다(위 항목 참조).

  • Ubuntu 16.04에 대한 지원이 종료되었습니다.

C++

  • Matrix4x4 클래스에 대한 beginend 멤버 함수의 const 오버로드를 추가했습니다.

.NET

  • .NET wrapper에 C++ API에서와 마찬가지로 새로운 Matrix4x4 클래스를 추가했습니다.

    • Matrix4x4 생성자는 2D .NET 배열을 입력으로 사용합니다.

    • Matrix4x4 는 역행렬을 반환하는 Inverse 메서드를 제공합니다.

    • Matrix4x4 는 2D .NET 배열을 반환하는 ToArray 메서드를 제공합니다.

  • Matrix4x4 를 인수로 사용하는 Transform 메서드 오버로드를 PointCloud 클래스에 추가했습니다.

Bug fixes

  • 동일한 프로세스 내에서 많은 애플리케이션을 순차적으로 만들 때 메모리 부족 오류가 발생할 수 있는 Zivid::Application 소멸자의 메모리 누수가 수정되었습니다.

  • Ubuntu에서 Intel GPU와 함께 Visualizer 클래스를 사용할 때 사용자에게 “An OpenCL error occurred: Failed to read buffer” 가 표시되는 버그를 수정했습니다.

  • HDR로 캡처하면 여러 캡처에서 일관되지 않은 결과가 반환되는 AMD GPU의 버그가 수정되었습니다.

  • 몇 번 캡처한 후 응용 프로그램이 충돌할 수 있는 AMD GPU의 버그를 수정했습니다.

  • 간헐적으로 estimateIntrinsics 함수가 suboptimal intrinsics 파라미터를 반환하는 버그를 수정했습니다.

  • Zivid Two: 카메라가 잘못된 소스 주소(RFC 1122 ch. 4.2.3.10)로 TCP 연결에 응답하는 TCP/IP 멀티캐스트 보안 취약점을 수정했습니다.

Studio

  • Ubuntu에서 Intel GPU를 사용할 때 캡처할 때 사용자에게 “OpenGL error: GL_INVALID_OPERATION” 가 표시되는 버그를 수정했습니다.

  • “Open Frame” 파일 대화 상자가 응답하지 않거나 정지하는 Ubuntu의 버그를 수정했습니다.

  • 오른쪽 패널의 각 획득 아래에 있는 “…” 상황에 맞는 메뉴에서 “Move to top” 작업을 추가했습니다.

Known issues & limitations

2.6.1

Bug fixes

  • 파일 이름에 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::Enabledalways 로 설정하여 명시적으로 켤 수 있습니다.

2.6.0

API

  • Diagnostics::Enabled이 설정에 추가되었습니다:

    • Diagnostics이 활성화되면 캡처 중에 추가 진단 및 디버깅 정보가 수집됩니다. 이 정보는 .zdf 파일에 저장되며 Zivid 지원 팀에서 문제를 해결하고 더 나은 지원을 제공하는 데 사용할 수 있습니다.

    • Diagnostics을 활성화하면 캡처 시간과 RAM 사용량, .zdf 파일 크기가 늘어납니다.

    • Zivid 지원팀에 문제를 보고할 때만 진단을 활성화하는 것이 좋습니다.

  • Zivid One+만 해당: 중요한 제품 수명 개선: Zivid One+ 카메라의 전원을 몇 주 동안 켜면 응용 프로그램에서 첫 번째 캡처가 트리거될 때까지 프로젝터가 손상될 수 있는 문제를 해결했습니다.

  • Zivid One+만 해당: 2D 캡처가 밝기 0을 사용하는 경우 3D 캡처와 2D 캡처 간에 전환할 때 시간 패널티가 제거되었습니다.

  • Stripe engine의 캡처 속도 향상:

    • NVIDIA GPU를 사용하여 측정한 캡처 속도가 5~15% 향상되었습니다.

    • 빠른 CPU와 느린 GPU(예: Intel 통합 GPU)를 사용하면 2.5에 비해 성능이 거의 같거나 약간 더 낮습니다(1%-5% 더 나빠짐).

  • FrameInfo 클래스에 CPU 모델, ComputeDevice 모델, ComputeDevice Vendor 및 OperatingSystem을 추가했습니다.

  • in-field correction/verification을 위한 calibration board 회전 지원이 추가되었습니다. 이제 보드의 방향을 카메라 관점에서 0, 90, 180 또는 270도(+/- 15도)로 지정할 수 있습니다.

  • calibration board에서 심한 반사 또는 눈부심이 있는 경우의 calibration 및 in-field correction/verification 시 사용되는 체커보드 감지 알고리즘의 견고성이 향상되었습니다.

  • ZividInfieldCorrection 으로 in-field correction을 확인할 때 command-line 명령어가 개선되었습니다.

    • 이제 카메라에 다시 연결할 필요 없이 Verification을 반복할 수 있습니다.

    • Verification은 또한 Dimension Trueness 측정의 통계적 요약을 제공합니다.

  • 존재하지 않는 디렉토리에 파일을 저장하려고 할 때 예외 메시지가 개선되었습니다.

  • SDK 1.x를 사용하여 저장한 .zdf 파일에서 Frame 객체를 생성하고 해당 Frame 객체를 .zdf 파일로 다시 저장하는 것은 더 이상 지원되지 않으며 예외가 발생합니다.

  • 이번 릴리스에서 .zdf 파일의 기본 형식이 변경되었습니다.

    • 2.6.0 이상의 .zdf 파일을 SDK 2.5.0 또는 이전 버전에서 열면 SDK에서 “Failed to load frame from file” 라는 메시지와 함께 예외가 발생합니다.

    • 이전 .zdf 파일은 여전히 API 또는 Zivid Studio를 사용하여 로드할 수 있습니다.

  • Zivid One+ 펌웨어를 버전 1.9.2로 업데이트했습니다.

  • Zivid Two 펌웨어를 버전 1.6.0으로 업데이트했습니다.

  • Ubuntu 16.04에 대해 더 이상 지원하지 않으며 SDK 2.7에서 관련 내용이 제거될 예정입니다.

C++

  • <Zivid/Zivid.h> 헤더에는 더 이상 Experimental 헤더 파일이 포함되지 않습니다. 실험 헤더 파일은 명시적으로 포함되어야 합니다.

Studio

  • 마우스 휠을 빠르게 스크롤할 때 3D 포인트 클라우드가 거꾸로 뒤집힐 수 있는 버그를 수정했습니다.

Known issues and current limitations

2.5.0

API

  • Normals에 대한 지원이 추가되었습니다.

    • Normals은 copyNormalsXYZ() 를 사용하여 PointCloud 객체에서 계산할 수 있습니다. 포인트 클라우드의 각 포인트에 대한 단위 법선 벡터의 2D 배열을 반환합니다.

  • CameraInfo 클래스에 Model 클래스를 추가했습니다. 이 클래스는 카메라 모델을 구별하는 데 사용할 수 있습니다. Zivid One+ 소형/중형/대형 및 Zivid Two로 구성됩니다.

  • organized 포인트 클라우드를 .pcd 형식으로 내보내기 위한 지원이 추가되었습니다(올바른 WIDTH 및 HEIGHT 속성 포함). 이 수정 사항을 사용하려면 Config.yml 파일을 사용해야 합니다. 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-software.html> 를 참고하십시오.

  • “Stripe” 비전 엔진의 성능이 향상되었습니다. GPU 유형에 따라 2~10% 향상됩니다.

  • Zivid Two의 초기 엔지니어링 샘플(revision A)에 대한 지원을 제거했습니다.

  • Zivid One+ 펌웨어를 버전 1.8.8로 업데이트했습니다.

  • Zivid Two 펌웨어를 버전 1.5.2로 업데이트했습니다.

  • Ubuntu 16.04에 대한 지원은 더 이상 사용되지 않으며 2022년 4월경에 SDK에서 제거됩니다.

C++

  • Settings 객체와 CameraInfo 객체가 주어지면 포인트 클라우드 해상도를 쿼리하기 위해 실험적 메서드 Zivid::Experimental::SettingsInfo::resolution() 이 추가되었습니다.

Bug fixes

  • GenICam 카메라 연결 프로세스 도중 카메라에 대한 물리적 연결이 끊어진 경우 GenICam 드라이버에서 발생할 수 있는 충돌을 수정했습니다.

  • Zivid::Application이 정적 변수에 저장된 경우 프로그램을 종료하는 동안 발생할 수 있는 충돌을 수정했습니다.

  • Zivid SDK를 사용하는 프로세스가 SIGTERM/SIGILL 또는 유사한 신호를 수신한 경우 종료하는 동안 영원히 멈출 수 있는 문제가 수정되었습니다.

  • Zivid One+ 카메라를 사용하여 Camera::connect() 를 호출할 때 작은 메모리 누수가 수정되었습니다.

Studio

  • 3D 포인트 클라우드 보기에서 포인트의 깊이 맵 색상에 대한 지원이 추가되었습니다. 이 모드를 켜고 끄려면 “D” 를 누르십시오.

  • .zdf 및 .yml 파일을 Zivid Studio 창으로 끌어다 놓아(dragging and dropping) 열기에 대한 지원이 추가되었습니다.

  • 정보 패널이 열려 있는 경우 기본 오른쪽 패널의 가장자리를 왼쪽으로 끌어서 확장하면 정보 패널이 잘못 축소되는 문제가 수정되었습니다.

Zivid Two의 현재 제한 사항

  • 최적의 성능을 위해 Zivid Two와 전용 10Gb PCI-Express 네트워크 카드 간의 직접 연결을 권장합니다. Thunderbolt 3 포트에 연결된 Thunderbolt 3 외부 네트워크 어댑터는 전용 PCI-express 카드와 유사한 성능을 제공합니다. USB 기반 네트워크 어댑터는 때때로 카메라를 사용할 때 오류가 발생할 수 있으며 캡처 속도가 감소하고 가변적입니다.

Known issues

  • Zivid Two만 해당: Zivid Two에 연결할 때 PC 프로세스가 비정상적으로 중단되어(예: SIGINT, SIGABRT 등을 통해) 카메라와 PC 간의 TCP 연결이 정상적으로 닫히지 않으면 카메라가 네트워크 연결이 끊어진 것을 감지하고 전원을 껐다 켭니다(일반적으로 15초 이내).

    • 드문 경우지만 카메라가 PC 프로세스에 대한 연결이 끊어진 것을 제대로 감지하지 못할 수 있습니다. 그런 다음 카메라는 SDK에서 새 연결을 계속 거부하므로 SDK에서 카메라가 표시되지 않습니다. 이 상황에서는 카메라는 수동으로 전원을 껐다 켜야 합니다.

  • Zivid Two만 해당: 매우 드문 경우지만 캡처하는 동안 “Command failed: CameraImageTimeout” 예외가 발생할 수 있습니다. 이것은 다음 캡처에서 자체적으로 해결됩니다.

  • Zivid Two만 해당: Windows에서 캡처 시간은 때때로 데이터 재전송으로 이어지는 이더넷 패킷 손실로 인해 더 길어질 수 있습니다(정상보다 1초 이상). 패킷 손실 발생을 줄이기 위해 Windows의 네트워크 드라이버 설정에서 “Receive Buffers” 및 “Transmit Buffers” 를 늘리는 것이 좋습니다.

  • 캡처 시간은 동일한 하드웨어의 경우 Linux에 비해 Windows에서 더 길 수 있습니다. 그 차이는 노출 시간이 짧을수록 더 커지고 노출 시간이 길수록 낮아집니다. 동일한 하드웨어에서 Windows와 Linux 간의 상대적인 차이는 Zivid One+를 사용할 때와 비교하여 Zivid Two를 사용할 때 더 큽니다.

  • Ubuntu 20.04만 해당: Intel GPU를 렌더링 장치로 사용하여 Linux 5.8 커널(최신 HWE 커널을 사용할 때 Ubuntu 20.04.2와 함께 출시)을 사용할 때 Zivid Studio 및 Visualizer는 “CL_OUT_OF_RESOURCES” 및 “OpenGL error: GL_INVALID_OPERATION” 와 같은 오류를 발생시킬 수 있습니다. 포인트 클라우드를 표시할 때, 이 문제를 방지하려면 Ubuntu 20.04용 LTS(안정적인) 기본 Linux 커널인 Linux 커널 5.4를 사용하십시오.

2.4.2

Bug fixes

  • 사용자가 libusb(SDK에서 내부적으로 사용)를 자신의 버전으로 교체할 수 없는 문제를 수정했습니다.

2.4.1

Bug fixes

  • 보정 모델 2.1이 있는 Zivid Two만 해당: Windows의 디버그 모드에서 캡처 시 “Assertion Failed” 예외가 발생하는 버그가 수정되었습니다.

2.4.0

API

  • Zivid Two용 실험용 “Stripe” 비전 엔진에 대한 지원이 추가되었습니다.

  • Zivid Two용 보정 모델 2.1에 대한 지원이 추가되었습니다. 캘리브레이션 모델 2.1은 Zivid Two 카메라의 정확도를 더욱 향상시킵니다.

  • 여러 대의 Zivid Two 카메라 사용에 대한 지원이 추가되었습니다.

    • 이 기능은 한 대의 PC에서 동시에 최대 4대의 Zivid Two 카메라를 사용하여 테스트되었습니다.

    • 여러 대의 카메라를 동시에 사용할 수 있지만 각 개별 카메라를 여러 스레드에서 동시에 사용해서는 안 됩니다. SDK를 통한 카메라 연결은 순서대로 이루어져야 합니다.

    • 여러 대의 카메라를 설정하는 방법에 대한 자세한 내용은 기술 자료를 참조하십시오: <https://support.zivid.com/latest/academy/camera/multiple-zivid-cameras.html>

  • Zivid Two 카메라의 네트워크 설정을 변경하기 위해 ZividNetworkCameraConfigurator CLI 도구를 추가했습니다.

  • 온도 사양 밖에서 카메라를 사용할 때 포인트 클라우드 정확도가 향상되었습니다. 모든 Zivid One+ 또는 Zivid Two 카메라에 자동으로 적용됩니다.

  • eye-in-hand 및 eye-to-hand 구성 모두에서 hand-eye calibration 정확도가 향상되었습니다.

  • 네트워크 패킷 손실에 대한 Zivid Two 네트워크 성능이 향상되었습니다.

  • 높은 작동 온도에서 Zivid Two 프로젝터 수명이 향상되었습니다.

  • 노출 시간 10000 microseconds 이상을 사용할 때 Zivid Two 캡처 시간이 개선되었습니다.

  • Zivid One+ 펌웨어를 버전 1.8.7로 업데이트했습니다.

  • Zivid Two 펌웨어를 버전 1.4.1로 업데이트했습니다.

  • 기존 Zivid One 카메라에 대한 지원이 제거되었습니다. (참고: Zivid One Plus 카메라에는 적용되지 않습니다.)

Studio

  • 카메라에 연결할 때 두 대 이상의 카메라를 전환하면 오류가 발생할 수 있는 문제를 수정했습니다.

Bug fixes

  • short-lived Zivid::Application 개체를 제거하는 동안 발생할 수 있는 충돌을 수정했습니다.

  • 모든 필터가 비활성화된 상태로 캡처할 때 AMD 컴퓨팅 장치에서 몇몇의 포인트가 NaN 대신 “inf” 로 잘못 표시되는 문제를 수정했습니다.

  • Stripe 엔진이 AVX와 같은 기능이 없는 CPU에서 실행될 때 Linux에서 SIGILL을 유발할 수 있는 문제를 수정했습니다.

  • Signal-to-Noise ratio가 NaN 값을 포함할 수 있는 Stripe Engine의 문제를 수정했습니다.

  • Zivid One Plus 전용: 부팅 중 과도한 전류 소비를 유발하는 SDK 2.2에서 발생한 버그를 수정했습니다.

  • Zivid One Plus Revision C만 해당: 정상 작동 시 카메라 후면의 상태 LED가 빨간색으로 표시되는 문제가 수정되었습니다.

  • Zivid Two만 해당: 펌웨어 업그레이드 후 첫 번째 캡처한 포인트 클라우드에 누락/잘못된 3D 데이터 스트라이프가 포함될 수 있는 문제가 수정되었습니다.

  • Zivid Two만 해당: DHCP를 사용하여 IP 주소를 얻을 때 너무 짧은 timeout이 수정되었습니다. 짧은 timeout으로 인해 DHCP 프로세스가 완료되기 전에 카메라가 링크 로컬 IP 주소로 대체될 수 있습니다.

  • Zivid Two만 해당: SDK가 카메라에 연결하지 못하는 네트워크 지연이 있을 때 두드러지는 경쟁 조건 문제를 수정했습니다.

  • Zivid Two만 해당: 팬이 지나치게 높은 RPM으로 작동하는 문제를 수정했습니다.

  • Zivid Two만 해당: 카메라의 전송되지 않은 데이터가 새 데이터 혹은 잘못된 데이터로 덮어쓸 수 있는 문제가 수정되었습니다.

Zivid Two의 현재 제한 사항

  • 최적의 성능을 위해 Zivid Two와 전용 10Gb PCI-Express 네트워크 카드 간의 직접 연결을 권장합니다. Thunderbolt 3 포트에 연결된 Thunderbolt 3 외부 네트워크 어댑터는 전용 PCI-express 카드와 유사한 성능을 제공합니다. USB 기반 네트워크 어댑터는 때때로 카메라를 사용할 때 오류가 발생할 수 있으며 캡처 속도가 감소하고 가변적입니다.

Known issues

  • Zivid Two만 해당: Zivid Two에 연결할 때 PC 프로세스가 비정상적으로 중단되어(예: SIGINT, SIGABRT 등을 통해) 카메라와 PC 간의 TCP 연결이 정상적으로 닫히지 않으면 카메라가 네트워크 연결이 끊어진 것을 감지하고 전원을 껐다 켭니다(일반적으로 15초 이내).

    • 드문 경우지만 카메라가 PC 프로세스에 대한 연결이 끊어진 것을 제대로 감지하지 못할 수 있습니다. 그런 다음 카메라는 SDK에서 새 연결을 계속 거부하므로 SDK에서 카메라가 표시되지 않습니다. 이 상황에서는 카메라는 수동으로 전원을 껐다 켜야 합니다.

  • Zivid Two만 해당: 매우 드문 경우지만 캡처하는 동안 “Command failed: CameraImageTimeout” 예외가 발생할 수 있습니다. 이것은 다음 캡처에서 자체적으로 해결됩니다.

  • Zivid Two만 해당: Windows에서 캡처 시간은 때때로 데이터 재전송으로 이어지는 이더넷 패킷 손실로 인해 더 길어질 수 있습니다(정상보다 1초 이상). 패킷 손실 발생을 줄이기 위해 Windows의 네트워크 드라이버 설정에서 “Receive Buffers” 및 “Transmit Buffers” 를 늘리는 것이 좋습니다.

  • 캡처 시간은 동일한 하드웨어의 경우 Linux에 비해 Windows에서 더 길 수 있습니다. 그 차이는 노출 시간이 짧을수록 더 커지고 노출 시간이 길수록 낮아집니다. 동일한 하드웨어에서 Windows와 Linux 간의 상대적인 차이는 Zivid One+를 사용할 때와 비교하여 Zivid Two를 사용할 때 더 큽니다.

  • Ubuntu 20.04만 해당: Intel GPU를 렌더링 장치로 사용하여 Linux 5.8 커널(최신 HWE 커널을 사용할 때 Ubuntu 20.04.2와 함께 출시)을 사용할 때 Zivid Studio 및 Visualizer는 “CL_OUT_OF_RESOURCES” 및 “OpenGL error: GL_INVALID_OPERATION” 와 같은 오류를 발생시킬 수 있습니다. 포인트 클라우드를 표시할 때, 이 문제를 방지하려면 Ubuntu 20.04용 LTS(안정적인) 기본 Linux 커널인 Linux 커널 5.4를 사용하십시오.

2.3.0

API

  • Zivid Two 카메라에 대한 지원이 추가되었습니다.

  • 실험적인 “Stripe” 비전 엔진의 속도가 향상되었습니다.

  • Ubuntu 20.04에 대한 공식 지원이 추가되었습니다.

  • 개선된 실험적 In-field Correction:

    • 경우에 따라 더 나은 post-correction 정확도를 제공하기 위해 알고리즘이 개선되었습니다.

    • 입력 데이터가 실제로 보정을 계산하기에 충분함에도 불구하고 사용자에게 “No significant correction could be identified (noise >> signal).” 이라는 예외가 발생하는 문제가 수정되었습니다.

  • calibration API 및 in-field correction에 사용되는 체커보드 감지의 견고성이 향상되었습니다.

  • 색상 균형 설정의 최대값이 2.0에서 8.0으로 증가했습니다.

  • 실험 설정 Settings::Processing::Color::Experimental::ToneMapping::Enabled 를 추가했습니다. 이 설정은 톤 매핑이 모든 3D 캡처(단일 및 HDR 캡처)에서 수행되는지 또는 HDR 캡처에 대해서만 수행되는지 제어합니다.

  • 특히 톤 매핑이 활성화되고/또는 감마가 1 미만인 경우 3D 캡처를 위해 컬러 이미지의 어둡거나 노출 부족 영역에서 노이즈가 감소했습니다.

  • AMD는 Ubuntu 16.04에서 더 이상 지원되지 않습니다. (AMD는 Linux 18.50용 Radeon Software부터 Ubuntu 16.04에 대한 지원을 중단했습니다.)

  • 기존 Zivid One 카메라에 대한 지원이 종료되며 sdk 2.4에서 제거될 예정입니다. (참고: 이것은 Zivid One 카메라에만 해당되며 Zivid One Plus는 계속 지원됩니다.)

Studio

  • 프레임 설정을 파일에 저장하기 위한 옵션이 정보 패널에 추가되었습니다.

  • Ubuntu에서 파일 대화 상자의 모양이 개선되었습니다.

  • CPU 부하가 높은 상태에서 마우스 휠을 빠르게 스크롤할 때 Zivid Studio에서 2D 이미지가 거꾸로 뒤집힐 수 있는 문제가 수정되었습니다.

Bug fixes

  • Zivid One+ 카메라에 연결을 시도할 때 “Failed to check if block 0 in the EEPROM master table is occupied” 오류가 발생하는 문제가 수정되었습니다.

  • Stripe 엔진의 Signal-to-noise ratio (SNR)가 수정되었으며 이제 Phase 엔진의 SNR과 비슷합니다.

    • 개선된 SNR 계산은 이제 노이즈 필터가 두 엔진의 동작에서 더 밀접하게 일치함을 의미합니다.

Noteworthy changes in this release

  • 2.2에 비해 3D 캡처 시간의 약간의 성능 저하가 특정 약한 Intel 통합 GPU 또는 CPU와 같은 약한 컴퓨팅 장치를 사용할 때 관찰될 수 있습니다. 이러한 장치의 성능 저하는 일반적으로 컴퓨팅 장치 및 캡처 설정에 따라 1%에서 6%입니다.

Zivid Two의 현재 제한 사항

  • 실험적인 “Stripe” 비전 엔진은 아직 지원되지 않습니다.

  • 한 번에 하나의 Zivid Two만 PC에 연결할 수 있습니다.

  • Zivid Two의 네트워크 구성은 사용자가 정의할 수 없습니다.

  • 최적의 성능을 위해 Zivid Two와 전용 10Gb PCI-Express 네트워크 카드 간의 직접 연결을 권장합니다. Thunderbolt 3 포트에 연결된 Thunderbolt 3 외부 네트워크 어댑터는 전용 PCI-express 카드와 유사한 성능을 제공합니다. USB 기반 네트워크 어댑터는 캡처 오류를 발생시키고 캡처 속도를 제한할 수 있으므로 이 릴리스에는 권장되지 않습니다.

Known issues

  • 캡처 시간은 동일한 하드웨어의 경우 Linux에 비해 Windows에서 더 길 수 있습니다. 그 차이는 노출 시간이 짧을수록 더 커지고 노출 시간이 길수록 낮아집니다. 동일한 하드웨어에서 Windows와 Linux 간의 상대적인 차이는 Zivid One 또는 One+를 사용할 때와 비교할 때 Zivid Two를 사용할 때 더 높습니다.

  • Zivid Two만 해당: 때때로 펌웨어 업그레이드가 완료된 후 첫 번째 캡처에서 포인트 클라우드 출력이 잘못될 수 있습니다. 이것은 포인트 클라우드에서 잘못된/누락된 데이터 라인으로 볼 수 있습니다. 이 문제는 다음 캡처에서 자체적으로 해결됩니다.

  • Zivid Two만 해당: 경우에 따라 카메라의 펌웨어 업그레이드가 완료된 후 캡처하는 경우 “Camera not connected” 또는 이와 유사한 예외가 발생할 수 있습니다. 이 문제는 카메라에 다시 연결하면 저절로 해결됩니다.

  • Zivid Two만 해당: Windows에서 캡처 시간은 때때로 데이터 재전송으로 이어지는 이더넷 패킷 손실로 인해 더 길어질 수 있습니다(정상보다 1초 이상).

  • Zivid Two만 해당: 매우 드문 경우지만 캡처하는 동안 “Command failed: CameraImageTimeout” 예외가 발생할 수 있습니다. 이것은 다음 캡처에서 자체적으로 해결됩니다.

  • Zivid Two만 해당: 매우 드물게 카메라와 클라이언트 간의 네트워크 링크가 끊어져 시간 초과가 발생할 수 있습니다. 그러나 링크는 자동으로 복원되며 사용자는 Zivid::Exception 을 포착하여 수동 개입 없이 카메라에 다시 연결할 수 있습니다.

  • Ubuntu 20.04만 해당: Intel GPU를 렌더링 장치로 사용하여 Linux 5.8 커널(최신 HWE 커널을 사용할 때 Ubuntu 20.04.2와 함께 출시)을 사용할 때 Zivid Studio 및 Visualizer는 “CL_OUT_OF_RESOURCES” 및 “OpenGL error: 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 엔진을 지정하기 위해 새로운 Settings::Experimental::Engine 이 추가되었습니다.

    • Stripe Engine은 inter-reflection 아티팩트를 억제하고 실린더 및 크롬 도금 부품과 같은 반짝이는 물체의 포인트 클라우드 품질을 향상시킵니다.

    • Stripe Engine에는 추가 획득 및 처리 시간이 필요합니다.

    • Stripe 엔진을 사용할 때는 Reflection Removal Filter와 Contrast Distortion Correction filter를 모두 활성화해야 합니다. 이는 향후 변경될 수 있습니다.

    • GenICam wrappers의 버그로 인해 Reflection Removal Filter 및 Contrast Distortion Correction filter가 활성화되지 않은 경우 오류를 보고하는 대신 호출이 중단됩니다.

    • Stripe Engine은 현재 실험적이며 향후 변경 및 개선될 수 있습니다.

    • Stripe Engine은 Zivid One Plus에서만 지원됩니다(Zivid One 아님).

  • 공식 Zivid calibration 보드의 새로운 라인을 지원하도록 Calibration API를 확장했으며, 그 중 첫 번째는 ZVD-CB01(7x8 30mm)입니다. 이 보드는 이제 클라이언트 코드를 수정하지 않고도 기존의 hand-eye 및 multi-camera calibration 기능과 함께 사용할 수 있습니다. 새로운 In-field Correction 기능과 함께 사용할 수도 있습니다(아래 참조).

  • 새로운 실험적 In-field Correction API를 추가했습니다. 새로운 ZVD-CB01 캘리브레이션 보드와 함께 이를 통해 사용자는 카메라의 Dimension Trueness를 확인하고 수정할 수 있습니다. API에는 다음과 같은 기능이 있습니다.

    • verifyCamera: 단일 Calibration 보드 캡처를 기반으로 카메라의 Local Dimension Trueness을 정량화합니다.

    • computeCameraCorrection: 하나 이상의 보정 보드 캡처를 기반으로 카메라의 실제 치수를 개선하기 위해 카메라에 적용할 수 있는 보정을 계산합니다. 이 함수는 또한 보정이 적용될 경우 예상할 수 있는 참에 대한 신뢰 구간을 계산합니다.

    • writeCameraCorrection: 카메라에 수정 사항을 씁니다. 카메라의 전원을 껐다 켜거나 다른 PC에 연결하더라도 보정은 카메라에서 지속됩니다. 이 함수를 호출한 후 이 카메라에서 캡처 함수가 호출될 때마다 주어진 보정이 자동으로 사용됩니다.

    • resetCameraCorrection: 카메라 보정을 공장 기본값으로 재설정합니다.

    • hasCameraCorrection: 카메라에 기본이 아닌 보정이 있는지 확인합니다.

    • cameraCorrectionTimestamp: 현재 보정이 카메라에 언제 기록되었는지 확인합니다.

    • 자세한 설명은 API 문서를 참조하십시오.

  • command-line 도구 ZividExperimentalInfieldCorrection 을 추가했습니다. 이 도구를 사용하면 사용자가 코드를 작성할 필요 없이 새로운 현장 수정 API에서 핵심 작업을 쉽게 수행할 수 있습니다. ZividExperimentalInfieldCorrection --help 명령을 사용하여 사용 지침을 확인하세요. 참고: Linux에서 이 도구는 핵심 설치 프로그램이 아닌 zivid-tools 패키지의 일부로 제공됩니다.

  • Gamma 설정이 추가되었습니다. 감마는 감마 곡선을 사용하여 포인트 클라우드의 색상을 밝게 또는 어둡게 하는 데 사용할 수 있습니다.

  • Zivid One+ 펌웨어를 버전 1.8.4로 업데이트했습니다.

Studio

  • 새로운 정보 측면 패널을 추가했습니다.

    • 이 패널에는 사용된 설정, 포인트 클라우드의 해상도 및 캡처 시간을 포함하여 현재 프레임/포인트 클라우드에 대한 정보가 포함되어 있습니다.

    • 캡처 시간은 캡처가 시작된 후 모든 처리가 완료되고 컴퓨팅 장치에서 포인트 클라우드 데이터를 사용할 수 있을 때까지 걸리는 시간으로 정의됩니다.

    • .zdf 파일을 열면 측면 패널에 이 프레임을 캡처하는 데 사용된 카메라의 일련 번호와 모델 이름과 Zivid SDK 버전이 표시됩니다.

    • 이 새로운 측면 패널은 오른쪽 하단 모서리에 있는 “Information” 를 클릭하거나 “View” 메뉴와 바로 가기, “Shift+I” 를 통해 표시할 수 있습니다.

  • 새로운 Stripe 엔진에 대한 지원이 추가되었습니다.

  • .zdf 파일을 열 때 포인트 클라우드 뷰 재설정을 비활성화하는 옵션을 “View” 메뉴에 추가했습니다.

  • 메쉬에 대한 바로 가기로 “M” 을 추가했습니다.

  • Assisted 모드와 Manual 모드 사이를 더 쉽게 전환할 수 있는 탭 버튼이 추가되었습니다.

  • 창 크기가 변경되면 깊이 및 색상 이미지 보기가 재설정되는 문제를 수정했습니다.

  • GUI의 다양한 위치에서 색상, 크기 및 패딩을 조정했습니다.

Bug fixes

  • Linux

    • capture() 함수의 후속 예외 이후에 발생할 수 있는 충돌을 수정했습니다. 이전에 capture() 에서 하나의 예외가 발생한 경우 다른 오류가 발생하면 다른 예외를 throw하는 대신 시스템이 중단될 수 있습니다. 이 충돌은 Ubuntu 16.04 패키지를 사용할 때만 발생합니다.

  • Windows

    • 일부 바이러스 백신 소프트웨어에서 false positive malware alert를 트리거하는 문제를 수정했습니다.

  • .NET

    • 동일한 객체에서 .Dispose() 를 여러 번 호출하면 System.AccessViolationException 이 발생할 수 있는 버그가 수정되었습니다.

  • Firmware

    • 펌웨어가 오랜 시간 후에 중단될 수 있는 문제 수정되었습니다.

2.1.0

API

  • PointCloud 클래스에 다운샘플링 기능을 추가했습니다.

    • 다운샘플링은 더 적은 수의 포인트에서 계산을 수행하기 위해 포인트 클라우드의 크기를 줄이는 데 사용할 수 있습니다.

    • 다운샘플링은 원래 포인트 클라우드의 NxN 픽셀 영역을 다운샘플링된 포인트 클라우드의 한 픽셀에 결합합니다. 2x2, 3x3 및 4x4 다운샘플링 옵션을 사용할 수 있습니다.

    • 다운샘플링은 유효하지 않은(NaN) 포인트를 무시하고 SNR^2로 가중치를 평균하여 포인트의 노이즈를 줄이는 방식으로 수행됩니다. 다운샘플링은 컴퓨팅 장치에서 수행됩니다.

  • 이제 Frame 클래스에서 CameraInfo 를 사용할 수 있습니다. CameraInfo 에는 프레임을 캡처하는 데 사용되는 카메라의 일련 번호와 모델 이름이 포함됩니다.

  • 카메라에 연결하면 “픽셀 형식을 설정하지 못했습니다(CAM_API_STS_NOT_WRITABLE).” 메시지와 함께 예외가 발생하는 문제가 수정되었습니다.

  • Zivid One+ 펌웨어를 버전 1.7.4로 업데이트했습니다.

    • 카메라가 잠재적으로 응답을 멈출 수 있는 버그를 수정했습니다.

C++

  • SettingsSettings2D 의 숫자 값(예: ExposureTime, Aperture 등)은 이제 operator<operator> 를 사용하여 비교할 수 있습니다.

.NET

  • PointCloud.Transform 은 이제 Transform, Downsample 등을 함께 연결할 수 있도록 자체 참조를 반환합니다.

Studio

  • Depth 이미지 보기에서 “mm” 를 단위로 추가했습니다.

2.0.0

API

  • 새로운 Settings / Settings2D / Capture API가 추가되었습니다:

    • 이제 단일 Settings 개체에 캡처에 필요한 모든 정보가 포함됩니다.

    • Settings 에는 하나 이상의 획득과 필터 및 색상 밸런스와 같은 처리 설정이 포함됩니다. 둘 이상의 획득이 제공되면 HDR 캡처가 수행되고 결합된 프레임이 반환됩니다.

    • 이제 Settings 개체가 Camera 의 캡처 방법에 대한 인수로 직접 제공됩니다.

    • Camera 에서 별도의 2D 캡처 방식이 제거되었습니다. 2D 캡처는 이제 캡처 메소드에 Settings2D 를 전달하여 수행됩니다.

    • 사용자는 Settings 또는 Settings2D 의 일부를 원하는 만큼 지정할 수 있습니다. 캡처할 때 명시적으로 지정되지 않은 설정은 카메라별 기본값을 사용합니다.

  • 새로운 포인트 클라우드 API:

    • capture 메소드를 호출하면 PointCloud 에 대한 핸들을 제공하는 Frame 이 반환됩니다. PointCloud 객체는 여전히 GPU에 저장되어 있는 포인트 클라우드에 대한 핸들이며, 원하는 경우 PointCloud 의 다양한 방법을 통해 특정 데이터를 CPU 메모리에 복사할 수 있습니다.

    • PointCloud 는 다음 데이터 형식의 복사를 허용합니다.

      • PointXYZ

      • PointXYZW

      • PointZ

      • ColorRGBA

      • PointXYZColorRGBA

      • PointXYZColorBGRA

      • SNR

    • PointCloud 기능은 DeviceCloud 기능을 대체합니다.

  • 새로운 ContrastDistortion 필터:

    • 이 필터는 매우 강한 강도 기울기로 인해 왜곡된 점을 수정 및/또는 제거하는 기능이 있습니다. 이것은 예를 들어 흰색에서 검은색으로의 갑작스런 변화와 함께 반짝이는/반사되는 물체뿐만 아니라 확산된 물체에도 적용할 수 있습니다.

    • 이 필터는 실험적인 것으로 간주되며 향후 릴리스에서 변경될 수 있습니다.

  • 새로운 multi-camera 보정:

    • hand-eye 보정과 함께 새로운 Calibration 네임스페이스의 일부입니다.

    • Multi-camera calibration은 예를 들어 포인트 클라우드를 단일 참조 프레임으로 결합하기 위해 지정된 기본 카메라의 프레임에서 보조 카메라의 포즈를 찾기 위해 다중 카메라 설정에서 사용됩니다.

  • GPU-accelerated 포인트 클라우드 변환:

    • PointCloud 의 변환 방법을 통해 사용자는 이제 포인트 클라우드의 3D 좌표에 대한 GPU-accelerated 변환을 제자리에서 수행할 수 있습니다. 4x4 행렬 형태로 제공되는 이러한 변환은 Calibration 네임스페이스의 기능에서 가져오거나 사용자 정의 변환일 수 있습니다.

  • 새로운 Aperture 설정입니다:

    • 기존의 Iris 설정을 대체하는 Aperture 설정을 소개합니다.

    • F-number 단위의 소수점 숫자입니다. API는 [1.4 - 32] 범위의 값을 지원합니다.

    • 캡처 시 카메라는 지정된 F-number에서 가장 근접할 수 있는 내부 조리개 위치를 선택합니다.

    • 조리개는 Camera 에서 메소드를 호출하여 완전히 닫을 수 있습니다.

  • 새로운 색상 균형 설정:

    • 이제 사용자는 계산된 3D 포인트 좌표에 영향을 주지 않고 세 가지 색상 채널에 적용된 게인을 독립적으로 제어할 수 있습니다.

    • 캡처는 이제 동일한 장면에서, 특히 장면에 밝은 빨간색이 포함된 경우 더 유효한 포인트를 제공할 수 있습니다.

    • 2D 캡처에서 색상 균형에 대한 지원이 추가되었습니다.

  • 새로운 포인트 클라우드 SNR 메트릭:

    • Signal-to-Noise Ratio(SNR) 메트릭을 소개합니다. 이것은 이전의 Contrast 메트릭을 대체하며 항상 음수와 NaN이 아닌 숫자입니다.

    • 새로운 SNR 메트릭을 기반으로 하는 3D 포인트 좌표의 향상된 HDR을 제공합니다.

    • API 1.X로 생성된 ZDF 파일을 로드할 때 포인트 클라우드의 SNR 값은 이전 Contrast 값을 기반으로 근사됩니다.

  • 설정에 대한 새 기본값:

    • Gain 의 기본값이 2 에서 1 로 줄어듭니다.

    • One Plus Medium 카메라의 기본값인 Brightness1.0 에서 1.5 로 증가했습니다.

    • One Plus Large 카메라의 기본값인 Brightness1.0 에서 1.8 로 증가했습니다.

    • 모든 One Plus 카메라의 ExposureTime 기본값이 8333 에서 6500 으로 축소되었습니다.

  • 새로운 Noise 필터:

    • SNR 값을 기반으로 포인트 필터링.

    • 기존 대비 필터를 대체합니다.

  • 제거된 이전 Saturated 필터 설정:

    • 채도 필터는 이제 항상 활성화되며 설정을 통해 비활성화할 수 없습니다.

  • 새로운 Calibration 네임스페이스:

    • 기존 HandEye 네임스페이스의 내용이 Calibration 네임스페이스로 이동되었습니다.

    • 모든 입력 및 출력 변환 행렬은 이제 PointCloud 데이터 형식과 더 잘 일치하도록 double 형식 대신 float 형식입니다.

  • 새로운 CameraInfo API:

    • 일련 번호, 모델 이름 등을 가져오는 데 사용되는 Camera 의 멤버 함수가 제거되었습니다.

    • 대신 Camera 의 메서드를 통해 새 클래스 CameraInfo 의 인스턴스에 액세스할 수 있습니다.

    • CameraInfo 는 카메라 모델명, 버전, 일련번호, 펌웨어 버전, 카메라에 저장할 수 있는 사용자 데이터의 최대 바이트 수를 포함합니다.

  • 카메라 내장 API 변경 사항:

    • Frame 을 기반으로 효과적인 카메라 intrinsics 기능을 추정할 때 성능이 크게 향상되었습니다.

    • 카메라 intrinsics 함수를 가져오는 메서드는 Camera 클래스에서 가져와서 Frame 에서 내장 함수를 가져오는 함수와 함께 Experimental::Calibration 네임스페이스에 배치됩니다.

  • 성능 향상을 위해 Gaussian 필터가 HDR 병합 후로 이동했습니다.

  • “Live-mode” 가 API에서 제거되었습니다.

  • API에서 양방향 패턴이 제거되었습니다.

  • ZividVis3D 라이브러리의 이름이 ZividVisualization 으로 변경되었습니다.

  • CloudVisualizer 클래스의 이름이 Visualizer 로 바뀌고 Visualization 네임스페이스로 이동되었습니다.

  • 파일 카메라의 파일 확장자가 .zdf에서 .zfc로 변경되었습니다.

  • Environment 네임스페이스가 API에서 제거되었습니다.

  • 이미지 데이터에 접근하기 위한 Frame2D 메소드의 이름이 colorsRGBA 에서 imageRGBA 로 변경되었습니다.

  • 단일 예외인 Zivid::Exception 만 포함하도록 예외 API를 단순화했습니다.

  • naming/terminology에 대한 많은 조정.

C++

  • C++ API에서 PointCloud 클래스에는 copyData(PointXYZ*) 와 같은 멤버 함수를 통해 GPU에서 지정된 사용자 할당 CPU 데이터 버퍼로 데이터를 직접 복사하는 기능도 있습니다.

C#

  • 핵심 API의 기본 변경 사항을 반영하도록 재구성된 C# 인터페이스(위 참조).

  • CaptureAssistant 가 클래스에서 네임스페이스로 변경되었습니다. 이 네임스페이스에는 두 가지 클래스가 있습니다.

    • SuggestSettingsParameters

    • SuggestSettings 메서드가 포함된 Assistant.

  • Firmware 가 클래스에서 네임스페이스로 변경되었습니다. 이 네임스페이스에는 펌웨어 업데이트 관련 기능을 제공하는 Updater 라는 새로운 클래스가 있습니다.

  • 2D 컬러 데이터의 기본 이미지 클래스는 이제 ImageRGBA 라고 합니다. 색상 데이터에 액세스하는 두 가지 방법을 제공합니다.

    • ToArray(): ColorRGBA 구조체의 2D 배열입니다.

    • ToByteArray(): 3D 바이트 배열로, 세 번째 인덱스는 이미지 채널(RGBA)을 선택하는 데 사용됩니다.

  • Pose::ToArray() 가 제거되었습니다.

  • Pose::ToArray2D 의 이름이 Pose::ToMatrix() 로 변경되었습니다.

GenICam

  • 모든 설정은 핵심 C++ API의 새 이름과 일치하도록 이름이 바뀝니다.

  • MergedMultiFrame 에는 더 이상 ApplyType 필드가 없습니다.

  • MergedMultiFrameMultiAcquisitionFrame 으로 이름이 변경되었습니다.

  • MultiAcquisitionFrame 및 단일 프레임에 대한 중복 설정을 제거했습니다.

  • SettingsControl 에는 필터 및 색상 균형과 같은 일반적인 캡처 설정이 포함되어 있습니다. AcquisitionSettingsControl 에는 하나의 획득에 대한 설정이 포함되어 있습니다.

  • SingleFrame 모드는 SettingsControlAcquisitionSettingsControl 카테고리 아래의 설정을 사용합니다. SingleFrame 모드는 단일 획득으로 캡처하는 데 사용됩니다.

  • MultiAcquisitionFrame 모드는 SettingsControl 아래의 설정과 MultiAcquisitionFrameControl::AddAcquisition 을 통해 추가된 모든 수집 설정을 사용합니다. MultiAcquisitionFrame 모드는 다중 획득(HDR)으로 캡처하는 데 사용됩니다.

  • Continuous 모드는 더 이상 지원되지 않습니다.

Zivid Studio

  • File -> “Import/Export Capture Settings” 를 통해 전체 캡처 설정을 저장하거나 로드하는 옵션입니다.

  • 설정 슬라이더의 단계 크기가 개선되었습니다.

  • 하나의 활성화된 획득으로 “Live” 모드를 실행할 때 모든 설정을 변경할 수 있습니다.

  • 밝기 설정이 1.0 이상인 상태에서 “Live” 모드를 실행할 때 UI에 알림을 추가했습니다.

Windows

  • 설치 프로그램에는 더 이상 샘플 또는 샘플 데이터가 포함되지 않습니다. 이것은 이제 <http://github.com/zivid> 에서 찾을 수 있습니다.

Linux

  • Linux 설치 프로그램(특히 zivid-telicam-driver_*.deb)은 이제 이전(<=1.4) 버전의 Zivid SDK에서 업그레이드하는 경우 이전 telicam-sdk 패키지를 올바르게 제거해야니다.

  • TelicamSDK 샘플이 /root 에 기록되는 Linux 설치 프로그램(특히 zivid-telicam-driver_*.deb)의 버그를 수정했습니다. 이 샘플은 더 이상 설치되지 않습니다.

Bug fixes

  • 구형 Zivid One 카메라에서 “Inconsistent frame timing detected” 예외가 발생할 수 있는 문제를 수정했습니다. 이것은 릴리스 1.8.1의 알려진 제한 사항을 수정합니다.

  • USB 레이어의 리소스 누수를 수정했습니다.

  • NaN 특징점을 포함하더라도 DetectionResult가 유효한 것으로 간주되는 버그가 수정되었습니다.

  • 충돌하는 소수점 규칙으로 인해 다른 로케일에서 YAML 파일을 저장하고 로드하지 못할 수 있는 버그가 수정되었습니다. YAML 직렬화는 이제 항상 “.” 를 소수점으로 사용합니다.

1.8.1

API

  • 새로운 실험 기능 Zivid::Experimental::Calibration::estimateIntrinsics()를 C++ API에 추가했습니다. 이 기능은 3D 포인트를 2D로 투영할 때 보다 정확한 카메라 내장 기능을 제공합니다.

  • 프로젝터 field-of-view 가장자리 근처의 아티팩트가 올바르게 제거되지 않는 문제를 수정했습니다.

  • 실험적인 multi-Zivid 지원:

    • 이 기능은 한 대의 PC에서 동시에 최대 4대의 Zivid One Plus 카메라를 사용하여 테스트되었습니다.

    • 여러 대의 카메라를 동시에 사용할 수 있지만 각 개별 카메라를 여러 스레드에서 동시에 사용해서는 안 됩니다. 카메라 연결은 순서대로 해야 합니다.

    • Known limitations:

      • 일부 USB 칩셋은 부하가 높을 때 제대로 작동하지 않습니다(동시에 여러 캡처). 이는 캡처 중에 throw되는 예외로 나타날 수 있습니다. 이 문제가 발생하면 다른 USB 포트나 다른 PC를 사용해 보십시오.

      • NVIDIA GPU에서 매우 높은 부하가 장기간 지속되는 동안 캡처하면 OpenCL 메모리 부족 관련 예외가 발생할 수 있습니다. GPU의 속도와 RAM 크기가 이 문제에 영향을 줍니다.

      • Linux용 Intel NEO OpenCL 드라이버를 사용하는 경우 버전 20.08 이상이 필요합니다. 이 드라이버의 이전 버전은 불안정할 수 있습니다.

Linux

  • zivid-telicam-driver를 버전 3.0.1.1로 업데이트했습니다.

  • zivid-telicam-driver deb 패키지에 zivid deb 패키지에 대한 종속성을 추가했습니다.

Zivid Studio

  • .zdf 파일을 열면 파일 이름이 창의 제목 표시줄에 표시됩니다.

Known Limitations

  • 기존 Zivid One 카메라(One Plus 시리즈 아님) 사용자는 캡처 중에 예외가 발생할 수 있습니다. 기존 Zivid One 모델 사용자는 SDK 1.8.0 또는 이전 버전을 유지하는 것이 좋습니다.

1.8.0

API

  • 향상된 capture assistant:

    • 향상된 성능(분석 시간 약 25% 단축).

    • 캡처 시간 예산(“Max capture time”)에 대한 결과가 1초 미만으로 개선되었습니다.

    • 대형 카메라의 경우 잘못된 outlier 필터 임계값이 반환되는 문제를 수정했습니다.

  • 프로젝터 field-of-view 가장자리 근처의 artifacts 제거합니다.

  • 새로운 Intel GPU(Broadwell 이상)에서 Linux용 Intel NEO OpenCL 드라이버와의 호환성 문제를 수정했습니다.

  • double-precision floating-point 기능이 없는 GPU 지원이 향상되었습니다.

.NET

  • 샘플을 포함하여 Capture Assistant에 대한 지원이 .NET API에 추가되었습니다.

Zivid Studio

  • Assisted 모드(Capture Assistant)는 이제 Zivid Studio를 열 때 기본 모드입니다.

Tools

  • HandEyeCalibration CLI 도구가 Linux에서 작동하지 않는 문제가 수정되었습니다.

1.7.0

API

  • HDR 프레임의 색상이 개선되었습니다.

  • 향상된 capture assistant:

    • 일반적으로 모든 장면, 특히 반짝이는 개체에 대한 품질이 개선되었습니다.

    • 주변광 주파수에 따라 제안을 적용하는 옵션입니다.

    • 초점이 맞지 않는 문제가 개선되었습니다.

    • 최대 허용 예산이 10초로 증가했습니다.

    • 더 빠른 장면 분석합니다.

  • 펌웨어 업데이트 중에 USB 또는 전원을 분리하면 다음 펌웨어 업데이트로 인해 소프트웨어가 충돌하거나 중단되는 상황이 발생할 수 있는 문제를 수정했습니다.

  • Zivid One+ 펌웨어를 버전 1.6.7로 업데이트했습니다.

Zivid Studio

  • 주변광 주파수에 따라 캡처 도우미 제안을 조정하는 옵션입니다.

1.6.0

API

  • Hand-eye calibration API가 추가되었습니다.

  • 2D capture API가 추가되었습니다.

  • OpenCL 드라이버가 올바르게 설정되지 않은 경우 더 유용한 오류 메시지.

  • Windows에서 오프라인 설치를 지원합니다. 이제 샘플 데이터가 설치 프로그램에 포함됩니다.

  • 더 명백한 CLI 옵션으로 SampleCameraUserData를 개선하고 더 장황하게 만들었습니다.

  • 캡처하는 동안 USB를 뽑을 때 잠재적인 카메라 교착 상태가 되던 오류가 수정되었습니다.

  • Capture Assistant는 피사계 심도를 증가시키기 위해 46 이상의 조리개 값을 피합니다.

  • PCD 파일을 내보낼 때 올바른 알파 값을 사용하십시오.

  • Capture Assistant CLI 도구는 이제 제안된 설정 저장을 지원합니다.

  • Vis3D 라이브러리에서 Qt 종속성을 제거했습니다.

  • SampleHandEyeCalibration 샘플을 추가했습니다.

  • SampleCapture2D 샘플을 추가했습니다.

  • Vis3D 샘플을 추가했습니다.

  • CloudVisualizer에 대한 reset view(백스페이스) 및 색상 켜기/끄기(c)에 대한 키보드 단축키를 추가했습니다.

.NET

  • .NET API를 C++ API와 동기화 상태로 유지하기 위해 누락된 사용자 데이터 기능을 추가했습니다.

  • 릴리스 빌드에서 디버그 DLL을 로드하지 않도록 올바른 폴더에서 샘플 코드 복사본 릴리스 DLL을 만듭니다.

  • 참조 문서가 개선되었습니다.

  • 월 변환 버그를 수정했습니다.

GenICam

  • Ubuntu에서 HALCON 19에 대한 지원이 추가되었습니다.

Zivid Studio

  • setting tooltips이 잘못 표시되는 문제가 수정되었습니다.

  • depth/color 2D 보기에서 마우스를 이동할 때 잠재적인 충돌이 수정되었습니다.

  • 탭 변경 시 depth/color 2D 보기가 재설정되는 문제가 수정되었습니다.

  • 오른쪽 패널의 “Capture” 메뉴에 “Save settings to folder” 이 추가되었습니다.

Known defects

  • 펌웨어 업데이트 중에 USB 또는 전원을 분리하면 다음 펌웨어 업데이트로 인해 소프트웨어가 충돌하거나 중단되는 상황이 발생할 수 있습니다. 이 상황에서 복구하려면 카메라의 전원을 껐다 켭니다.

1.5.0

API

  • CMake 구성 파일에서 향상된 의미 체계 버전 지원합니다. 이제 동일한 주 버전을 사용하여 find_package를 사용할 때 최신 버전의 Zivid SDK를 찾을 수 있지만 필요한 버전이나 패치 버전은 더 낮습니다.

  • telicam-sdk deb 패키지의 이름을 zivid-telicam-driver로 변경했습니다.

  • 이제 empty 벡터에서 CombineFrames를 호출하면 예외가 발생하지만 이전에는 충돌이 발생했습니다.

  • Windows 설치 프로그램은 이제 기본적으로 설치 중에 시스템 PATH에 Zivid 바이너리 디렉토리를 추가합니다.

  • experimental GenICam 드라이버를 설치할 때 Zivid는 GENICAM_GENTL64_PATH에 추가됩니다.

  • experimental GenICam 드라이버에 대해 지원되는 Halcon 버전은 19로 변경되었습니다.

  • API 문서 개선.

  • 유휴 상태일 때 프로젝터 미러를 고정합니다.

  • 카메라가 PC에 연결되어 있지만 시간 초과 내에 열거되지 않는 경우 카메라를 재설정하는 감시 장치를 추가했습니다.

  • 외부 카메라 팬의 최소 RPM으로 약간 증가합니다.

  • 정적 링크는 Windows 빌드에 대한 더 많은 종속성을 제공하므로 Matlab 및 Labview의 .NET API를 더 쉽게 사용할 수 있습니다.

  • 최신 Ubuntu 버전에 18.04 패키지를 설치할 수 있도록 deb 패키지의 사후 설치 단계를 개선했습니다.

  • 카메라 펌웨어 업그레이드 시 USB 재연결 처리가 개선되었습니다. 이것은 Docker에서 카메라 깜박임 문제를 수정합니다.

  • Contrast 값 계산이 개선되었습니다. 새로운 방법은 SNR을 기반으로 하며 다양한 주변 조명 조건에서 대비 필터와 HDR이 보다 일관되게 작동하도록 합니다.

  • 실험적 자동 노출 기능에 대한 개선 및 주요 API 변경 사항:

    • Capture Assistant로 브랜드가 변경되었습니다.

    • 핵심 알고리즘 개선.

    • 다양한 카메라 모델에 대한 더 나은 지원을 제공합니다..

    • Region of Interest 기능이 제거되었습니다.

  • Zivid One+ 펌웨어를 버전 1.6.6으로 업데이트했습니다.

Zivid Studio

  • 캡처를 위한 새로운 Assisted 모드를 지원합니다.

  • 새로운 히스토그램 기능을 지원합니다.

  • 이제 depth 보기에서 Z-range를 구성할 수 있습니다.

  • color/RGB 이미지를 PNG/JPG/BMP로 저장하기 위한 지원을 추가합니다.

  • UI의 일부에서 소수점 3자리가 사용되기 전에 모든 UI에서 일관되게 소수점 2자리를 표시합니다.

  • 카메라 연결 해제 버튼을 하위 메뉴로 이동했습니다.

  • 색상 또는 메쉬 설정을 변경하면 자동으로 3D 보기로 변경됩니다.

  • 포인트 클라우드에 큰 이상값이 있을 때 3D 보기에서 탐색이 개선되었습니다.

  • 연결 버튼이 연결 중 상태에서 멈추는 오류가 수정되었습니다.

  • 버튼 텍스트가 UPPERCASE에서 Capitalized Case로 변경되었습니다.

  • UI의 모양과 느낌이 약간 개선되었습니다.

1.4.0

API

  • experimental Auto Exposure API가 추가되었습니다.

  • 더 적은 수의 좋은 포인트 제거하기 위해 반사 필터 개선되었습니다.

  • 양방향 모드에서 반사 필터가 개선되었습니다.

  • 반사 필터에서 반짝이는 물체와 밝은 표면이 있는 장면에서 검은색 선이 나타나는 문제가 수정되었습니다.

  • 더 적은 수의 좋은 포인트 제거하기 위해 outlier 필터 개선되었습니다

  • 바이너리 파일과 헤더 파일이 동기화되어 있는지 확인하기 위해 애플리케이션 클래스에 테스트를 추가했습니다.

  • 초기 CAM_API_STS_TIMEOUT 오류 후 카메라가 항상 CAM_API_STS_NOT_WRITABLE을 반환하는 문제를 수정했습니다.

Zivid Studio

  • 시작 중 오류 처리 방법이 개선 되었습니다. 이제 Zivid Core 라이브러리가 초기화에 실패할 경우 응용 프로그램에 오류 대화 상자가 표시됩니다.

1.3.0

API

  • Gaussian 필터가 추가되었습니다.

  • OpenCV 형식으로 카메라 intrinsics 기능을 제공합니다.

  • HDR 포인트 병합을 개선하여 최대 sqrt(이미지)까지 노이즈를 줄입니다.

  • Zivid One+ 펌웨어를 버전 1.6.3으로 업데이트했습니다.

.NET

  • 데이터 모델(Settings, FrameInfo, CameraIntrinsics 및 CameraState)에 대한 저장 및 로드 기능을 추가합니다.

Zivid Studio

  • Gaussian 필터가 추가되었습니다.

  • 렌더링 성능이 향상되었습니다.

  • 2D 보기에서 마우스 포인터 아래에 픽셀의 XYZ/RGB/Contrast를 표시합니다.

  • 2D 이미지 보기 동작을 개선합니다.

Tools

  • ZividSuggestSettings의 이름이 ZividExperimentalSuggestSettings로 변경되었습니다.

1.2.1

  • Zivid One Plus Small, Medium 및 Large, revision B에 대한 지원을 시작합니다.

1.2.0

  • Ubuntu 16.04 및 18.04 지원.

  • Windows 10용 GenICam/HALCON 미리보기.

  • GPU 컴퓨팅 플랫폼으로 DirectX에서 OpenCL로 변경되었습니다.

  • Performance improvements.

  • Zivid Labs에서 Zivid로 브랜드를 변경했습니다(로그 및 구성 폴더 포함).

  • Zivid One Plus Small, Medium 및 Large를 위한 엔지니어링 빌드를 지원합니다.

API

  • API에서 카메라를 플래시하는 기능이 추가되었습니다.

  • 카메라에 사용자 데이터를 쓰는 기능이 추가되었습니다.

  • Zivid One Plus에 대해 1.0 이상의 밝기를 허용하는 부스트 모드를 지원합니다.

C++

  • CMake 파일이 module 모드에서 config 모드로 변경되었습니다.

  • 설정에 대한 구조적 바인딩을 지원합니다.

Zivid Studio

  • Rewritten from scratch:

    • Modern look and feel.

    • 거의 사용되지 않는 기능을 제거했습니다.

1.0.1

  • 새로운 카메라 revision을 지원합니다.

  • Iris 기능의 불일치를 수정합니다.

1.0.0

릴리스 후보 기간 동안 다음 변경 사항 중 일부가 도입되었습니다. rc-candidate에서 업그레이드하는 경우 전체가 아닌 일부가 적용됩니다.

Major changes

  • 새로운 참조 프레임. 기준 프레임이 프로젝터에서 카메라로 변경되었습니다. 이전 소프트웨어를 사용하여 수행한 eye-hand 보정은 다시 수행해야 합니다. 이것은 rc3과 rc4 사이에서 변경되었습니다.

  • 버전 1.0.0부터 API는 안정적이며 <https://semver.org/>의 시맨틱 버전 관리 체계를 따릅니다.

  • New settings API.

  • HDR 성능이 향상되었습니다.

  • API가 완전히 문서화되었습니다.

  • 동일한 컴퓨터에 연결된 여러 대의 Zivid 카메라를 지원합니다.

  • Zivid Studio를 사용하여 자동으로 또는 독립 실행형 애플리케이션을 사용하여 수동으로 펌웨어 업데이트가 가능합니다.

  • 리소스를 관리하는 Application 클래스를 추가했습니다. Zivid를 사용할 때 가장 먼저 생성되어야 하는 클래스입니다.

  • C++ API에서 반환 코드를 제거했습니다. API는 이제 오류 처리에만 예외를 사용합니다.

  • 시스템 클래스를 제거하고 보다 구체적인 네임스페이스로 분할했습니다.

Full change log

  • Visual Studio 샘플 프로젝트가 설치 프로그램에 추가되었습니다.

  • CMake 샘플 프로젝트가 설치 프로그램에 추가되었습니다.

  • 노출 시간을 19654로 설정해도 더 이상 실패하지 않습니다.

  • 프레임을 캡처할 때 Zivid Studio가 무작위로 충돌하는 문제를 수정했습니다.

  • 이제 MATLAB에서 ZividNET.dll을 로드할 수 있습니다.

  • 잘못된 dimensions의 텍스처를 만들려고 할 때 오류를 보고합니다.

  • 일부 경우에 손상된 출력 데이터를 제공하는 양방향이 수정되었습니다.

  • 이제 기본 설정이 콘텐츠 크기를 적절하게 조정하고 있습니다.

  • Zivid Studio를 종료할 때 팬을 끕니다.

  • revision 3 이전 카메라에 대한 지원이 종료되었습니다.

  • 개선된 signal-to-noise ratio 및 감소된 잡음을 위한 새로운 패턴이 적용됩니다.

  • Dialog에 Zivid Studio 버전 정보가 추가되었습니다.

  • 설치 프로그램에 CameraState.h 및 ImageInfo.h를 추가했습니다.

  • Zivid Studio의 메쉬 모드에 대한 버그가 수정되었습니다.

  • 이제 Zivid Studio에서 YML에 설정 저장/로드를 지원합니다.

  • ZividStudio에 카메라 재연결이 추가되었습니다.

  • 파일에 로깅.

  • Zivid Studio의 타사 라이브러리에 대한 “legal notice” 를 포함합니다.

  • 더 멋진 application 아이콘을 추가했습니다.

  • Toshiba Teli 드라이버의 새 버전을 사용합니다.

  • 실행 파일에 디지털 서명을 적용했습니다.

  • 공개 C++ API를 정리했습니다.

  • Program FilesZividSampleData에 샘플을 추가했습니다.

  • 카메라 유닛 정보를 읽을 수 없는 경우 Zivid Studio에서 오류 대화 상자를 표시합니다.

  • 모든 헤더 파일의 최신 헤더 주석을 수정했습니다.

  • 종료 시 라이브 패턴 표시가 꺼져 있는지 확인하십시오.

  • public API에서 모든 TODO 및 FIXME를 수정했습니다.

  • 더 설명적이고 일관성 있는 이름으로 public 함수 이름을 변경했습니다.

  • 카메라를 연결하지 않아도 Zivid Studio가 제대로 초기화되도록 합니다.

  • public API C++11을 준수하도록 합니다.

  • 제거 프로그램을 시작할 때 경고를 방지하려면 제거 프로그램에 서명하십시오.

  • 새 버전을 설치할 때 이전 레지스트리 키를 제거하십시오.

  • 설치 프로그램 실행의 일부로 이전 버전을 제거합니다.

  • 내부 코드와 샘플 코드 모두 Visual Studio에서 /WX /W4를 사용하여 빌드합니다.

  • MSVC C++ 확장 사용을 중지했습니다.

  • .NET에서 버전 정보를 노출합니다.

  • 펌웨어 버전이 일치하지 않으면 카메라 연결을 거부합니다.

  • ZividStudio에 새 버전 알림이 추가되었습니다.

  • public API에서 logging API를 제거합니다.

  • public API에서 상태 콜백 API를 제거합니다.

  • CameraInfo와 Camera가 병합되었습니다.

  • 정상적인 작업 조건에서 팬 소음 감소합니다.

  • public API에서 usbPath 및 internalCameraId를 제거했습니다.

  • Zivid Studio를 .zdf 파일과 연결합니다.

  • Windows의 “Add/Remove programs” 에 Zivid가 나타나도록 수정되었습니다.

  • 설치 파일에 Visual Studio용 VCRedist 파일을 포함합니다.

  • 필요한 경우 Toshiba Teli 카메라 드라이버를 다운로드하여 설치합니다.

  • public API에서 std::shared_ptr을 제거했습니다.

  • C++ API에서 ZSetting을 제거했습니다.

  • Measurement 클래스의 이름을 Frame으로 변경했습니다.

  • saveMeasurement를 System에서 Frame 클래스로 이동했습니다.

  • CloudViewer에 대한 별도의 설치 프로그램을 추가했습니다.

  • 다양한 버그 수정 및 성능 개선.

0.9.544

  • 설치 패키지에서 부스트 DLL이 누락되는 문제가 수정되었습니다.

0.9.539

  • 수직 패턴과 함께 사용할 때 반사 필터의 버그를 수정했습니다.

0.9.537

  • 버전 v0.9.534에 도입된 라이브 모드의 버그를 수정했습니다.

0.9.534

이것은 API 및 GUI의 이름이 ShapeCrafter에서 Zivid로 변경되기 전의 마지막 릴리스 중 하나입니다(예: ShapeCrafterGUI는 Zivid Studio가 되고 ShapeCrafter 클래스는 이름이 Zivid로 변경됩니다).

  • 수직 패턴에 대한 지원이 추가되었습니다(패턴의 두 배: 가로 + 세로). API에서 enablePerpendicularPatterns()를 사용합니다(또는 GUI의 기본 설정을 통해 전환). 중요: 현재 하드웨어의 한계로 인해 프로젝터 노출 시간을 약 10초 이상으로 늘려야 합니다. 이것이 안정되려면 33000 마이크로초가 필요합니다.

  • 반사로 인한 outliers을 감지하고 제거할 수 있는 반사 필터가 추가되었습니다. 반사 필터는 수직 패턴을 사용할 때 가장 잘 작동합니다(기본 설정 참조). API의 enableReflectionFilter()를 통해 켭니다.

  • ShapeCrafterGUI: Edit->Preferences 을 통해 또는 API의 enableErrorCorrectingCode()를 통해 패턴 모드를 수정하는 LGGC(Large Gap Gray Code) 오류를 지원합니다.

  • 이제 포화 픽셀을 감지하고 제거할 수 있습니다. HDR 측정의 융합을 개선해야 합니다. GUI의 환경 설정을 통해 활성화(또는 활성화 호출)하거나 API에서 setMaskSaturated를 호출합니다.

  • firmware revision(C++ 및 .NET API)을 가져오는 getFirmwareLabel 기능을 추가했습니다.

  • ShapeCrafterAPI: PCB 개정판 2에 대한 지원이 추가되었습니다. 예를 들어 Iris(따라서 setProductRevision 함수)에 대한 pinning이 다릅니다.

  • GUI의 기본 설정 대화 상자에서 제품 개정을 선택합니다.(Rev. 0(PoC), Engineering Model Rev. 1 및 Engineering Model Rev. 2 간의 차이점을 처리합니다.)

  • API에 setProductRevision() 함수를 추가했습니다. ShapeCrafter를 초기화하기 전에 이 함수를 호출하십시오.

  • C++ 및 .NET API에 isConnected() 함수를 추가했습니다.

  • 함수 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: Help->About dialog box를 통해 모든 DLL의 버전 번호를 확인합니다.

  • ShapeCrafterGUI: 도구 모음의 버튼을 통해 monochrome color (RGB 비활성화)으로 포인트 클라우드 보기를 지원합니다.

  • ShapeCrafterGUI: 이제 메시 보기가 시각화를 즉시 업데이트합니다.

  • ShapeCrafterGUI: 보정되지 않은 측정과 관련된 버그를 수정했습니다.

  • ShapeCrafterGUI: 기본 설정 대화 상자에서 적용을 클릭하면 이제 시스템을 다시 초기화해야 합니다(예: 새 보정 파일 로드 등).

  • CloudViewer: 더 이상 PCL 기반이 아닌 포인트 클라우드를 시각화하기 위한 새로운 애플리케이션(DirectX 기반 아님) W3P 파일과도 연관될 수 있습니다.

  • ShapeCrafterAPI: 이제 카메라를 초기화할 수 없는 경우 예외가 발생합니다.

  • Python API: Iris 제어에 대한 지원이 추가되었습니다.

  • ZividCalibrationApp: 새로운 Qt 기반 교정 애플리케이션. 응용 프로그램은 이미지를 저장하기 전에 프로젝터/카메라의 이미지 모서리를 감지하려고 시도합니다.

  • CMake에서 패키지 및 설치 프로그램의 자동 생성을 추가했습니다.