SDK变更日志

2.8.1

API

  • ZividExperimentalHandEyeCalibration CLI工具现在可以读取通过Zivid SDK保存的 Zivid::Matrix4x4 YAML文件了。该工具仍然可以读取以前SDK版本中使用的旧的OpenCV YAML文件格式。如果提供了 --transform-file 参数,该工具将使用与输入文件相同的文件格式来保存手眼标定变换。

Bug修复

  • 修复了Windows中在调试模式(Debug mode)下使用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相机时可能出现 "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序列中的所有图像。在以前的SDK中,相机会等待一次采集中的所有图像传输回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 engine时可以看到最大百分比的提升。

    • 通过拥塞的网络链接同时使用多个Zivid Two相机进行捕获时的捕获速度得到了提高。例如,使用1Gbps交换机同时在3台相机上进行3帧HDR采集的捕获速度提高了2.5倍至3倍。

  • 添加了自动发现Zivid Two的功能:

    • SDK现在将使用多播DNS协议在网络上搜索可用的Zivid Two相机。已被发现且可访问的相机将通过SDK和Zivid Studio可见。

    • 如果Zivid配置文件夹中存在”Cameras.yml”文件,那么SDK中只会显示该文件中列出的IP/主机名,并且不会执行自动发现。

    • 相机必须更新到最新的固件版本(固件 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 L100的支持。

  • 在之前的SDK中,Camera::closeAperture() 方法调用对Zivid Two没有作用。此方法现在将引发异常,说明Zivid Two不支持此功能。

  • Zivid Two固件更新至1.9.6版本。

C++

  • 在Array2D类中添加了 beginendcbegincend 方法。

Windows

  • 添加了一条编译错误,如果在Visual Studio中使用static runtime library,则会导致该错误。 Zivid SDK必须使用dynamic runtime library、option /MD 或/MDd来构建。这可以在Visual Studio项目中的 “C/C++” -> “Code Generation” -> “Runtime Library” 下进行配置。

Bug修复

  • 仅限于Zivid Two:修复了色彩平衡计算不正确的问题。

  • 仅限于Zivid Two:修复了固件更新可能因网络上传速度慢而导致超时和失败的问题。

Studio

  • 添加了SNR map(信噪比图)。

  • 添加了法线图(Normal map)。

  • 在左上角添加了下拉菜单以在不同视图之间切换。

  • 在3D视图顶部添加了下拉菜单以选择点的大小。

  • 添加了快捷键1至5,以在不同视图之间进行选择。

  • 调整页脚预览图的设计,避免遮挡页脚栏中的文字。

已知问题和限制

2.7.0

API

  • 添加了反射过滤器的新的实验性功能Local mode:

    • 一个新的设置 Settings::Processing::Filters::Reflection::Removal::Experimental::Mode 被添加到选择模式,可以是 localglobalglobal 对应了旧的反射过滤器,是默认值。

    • Local模式在窄的物体上将保留更多的3D数据,相较于global模式,通常能够移除更多的反射伪像,以及具备更快的处理速度。

    • Global模式通常在移除点云中的异常点方面更加出色。

    • Local模式是实验性功能,可以在未来的版本中发生更改。

  • 添加了一个新的设置 Settings::Processing::Color::Experimental::Mode

    • 此设置有三个选项:automatictoneMappinguseFirstAcquisition

    • automatic 模式是默认的,对应于之前的SDK默认表现。此模式等同于在单次捕获时使用 useFirstAcquisition 和在HDR捕获时使用 toneMapping

    • useFirstAcquisition 将始终仅使用设置中提供的第一次采集的颜色数据。此模式可用于单次采集和多次采集HDR捕获。此模式提供比”toneMapping”更精细的颜色控制,即使场景内容发生变化也能提供稳定的颜色输出。

    • toneMapping 结合了所有采集的颜色数据,以创建一个合并和标准化的彩色图像。

    • 这个新设置替换了自SDK 2.3.0中添加的 Settings::Processing::Color::Experimental::ToneMapping::Enabled 设置。

    • 相关详细信息,请参阅 Settings::Processing::Color::Experimental::Mode 的文档。

  • Zivid Two:添加了新的实验模式,在两次捕获之间保持内部相机温度稳定。

  • Zivid Two:添加了对使用多播DNS以.local标签结尾的名称查询的支持。

  • DetectionResult 类添加了 pose 方法,用于返回标定板的位姿。

  • inverse 方法添加到返回倒置矩阵的 Matrix4x4 类中。

  • Zivid One+:改进了在使用Phase engine时对无信号像素(例如过饱和像素)左侧或右侧的像素的处理。这些像素以前可能会在包含无信号像素的区域中产生少量浮点。

  • Zivid One+:改进了对无法在Phase engine模式中可靠地解码的像素的过滤。如果关闭噪声和离群值过滤器,这些像素以前可能会显示为浮点,主要是在低信号区域。 Zivid Two已经存在类似的过滤功能。

  • 添加了对较新的AMD GPU的支持:

    • 使用具有RDNA架构的AMD卡在以前的SDK版本上会出错,但现在已经支持。

    • AMD RDNA卡(如 RX5500 和 RX5700)在Ubuntu上可能不稳定,具体取决于安装的GPU驱动程序版本和操作系统版本。如果您使用这些型号,我们建议您仔细测试您的设置的稳定性。

  • 提高了使用Stripe engine时的捕获速度:

    • 在高端Nvidia GPU上能够获得到大约3%-12%的提升,在Intel集成GPU上能够获得到5%-15%的提升。将在使用HDR捕获时获得最大程度的提升。

  • 提高了使用Phase engine的HDR捕获时的捕获速度:

    • 在高端Nvidia上能够获得到大约2%-12%的提升。在低端英特尔集成GPU上有类似的提升,而高端集成英特尔GPU的性能与SDK 2.6相似。

    • 较短的HDR序列将获得最高百分比的提升。

  • 使用Intel驱动程序时,使用Phase engine进行单次采集捕获的捕获速度出现下降:

    • 与SDK 2.6相比,捕获时间增加了5%至15%,具体取决于设置。启用多个过滤器时,百分比降级最多。

    • 这不适用于Stripe engine或者HDR捕获,请参阅以上几点。

  • 将法线的处理时间缩短了约50%:

    • 现在,在Nvidia GPU上计算全分辨率点云法线的典型处理时间约为5-20毫秒,而在集成英特尔GPU上则为15-40毫秒,具体取决于GPU的性能。

  • 更改为在内部使用新的GPU计算框架。

  • 由于计算流程的初始化,与相机的连接时间增加了:

    • 与SDK 2.6相比,在进程中首次连接相机可能需要多出6-10秒的时间。

    • 这种连接时间的增加对于每个相机型号,每个 Zivid::Application 对象只会发生一次。

  • 添加云连接日志以提高产品质量和客户服务体验:

  • 添加了一个更好的错误信息。如果一个 Zivid::Application 对象在已经存在时创建了一个新的 Zivid::Application 对象,将导致该错误。

  • 同时使用多个Zivid One+相机现在不是实验性的功能了:

  • 将Zivid Two固件更新至1.7.4版本。

  • 移除了了实验性的设置 Settings::Processing::Color::Experimental::ToneMapping::Enabled

    • 此设置被 Settings::Processing::Color::Experimental::Mode 替换(见上文)。

  • 移除了对Ubuntu 16.04的支持。

C++

  • Matrix4x4 类添加了 beginend 成员函数的 const 重载。

.NET

  • 在.NET包装器中添加了一个新的 Matrix4x4 类,对应于C++ API中的同名类。

    • Matrix4x4 构造函数将2D .NET数组作为输入。

    • Matrix4x4 提供了一个 Inverse 方法,该方法返回反转矩阵。

    • Matrix4x4 提供了一个返回2D .NET数组的 ToArray 方法。

  • PointCloud 类添加了 Transform 方法重载,该类以 Matrix4x4 作为参数。

Bug修复

  • 修复了 Zivid::Application 析构函数中的内存泄漏,当在同一进程中按顺序创建多个应用程序时,可能会导致内存不足错误。

  • 修复了在Ubuntu上使用带有Intel GPU的Visualizer类时用户可能会收到”An OpenCL error occurred: Failed to read buffer”的错误。

  • 修复了一个AMD GPU相关的错误,在该错误中,使用HDR捕获会在不同的捕获中返回不一致的结果。

  • 修复了一个AMD GPU相关的错误,在该错误中应用程序可能在几次捕获后崩溃。

  • 修复了在某些情况下 estimateIntrinsics 函数会返回次优内在参数的错误。

  • Zivid Two:修复了一个TCP/IP多播安全漏洞,在该漏洞中,相机使用无效的源地址(RFC 1122 ch. 4.2.3.10)响应TCP连接。

Studio

  • 修复了用户在Ubuntu上使用英特尔GPU进行捕获时可能会出现”OpenGL error: GL_INVALID_OPERATION”的错误。

  • 修复了Ubuntu上的”Open Frame”文件对话框可能无响应/冻结的错误。

  • 在右侧面板的每个采集项下的”…”上下文菜单下添加了一个”Move to top”的操作。

已知问题和限制

2.6.1

Bug修复

  • 修复了在Windows上加载文件名中包含非ASCII字符的.zdf文件会引发”Failed to load frame from file”异常的错误。

  • 修复了SDK在检查Pose变换矩阵的有效性时使用了过于严格的限制的问题,这可能导致手眼或多相机标定时出现异常。

  • 修复了在使用相同采集设置执行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

  • 在Settinfs中添加了Diagnostics::Enabled:

    • 启用诊断功能时,会在捕获期间收集额外的诊断和调试信息。此信息将保存在”.zdf”文件中,Zivid的支持团队可以使用这些信息来解决问题并提供更好的帮助。

    • 启用诊断功能会增加捕获时间和RAM使用率,以及 .zdf 文件的大小。

    • 建议仅在向Zivid的支持团队报告问题时启用诊断功能。

  • 仅限于Zivid One+:重要的产品生命周期改进:修复了如果Zivid One+相机在通电了几周时间之后才触发第一次捕获的情况下,可能导致投影仪损坏的问题。

  • 仅限于Zivid One+:如果将2D采集中的亮度设置为0,则在3D捕获和2D捕获之间切换时移除了时间损失。

  • 提高使用Stripe engine时的捕获速度:

    • 使用 NVIDIA GPU 测量的捕获速度提高了 5% 到 15%。

    • 与 2.5 相比,使用快速 CPU 和慢速 GPU(例如 Intel 集成 GPU)将具有大致相同或稍差的性能(差 1%-5%)。

  • 在 FrameInfo 类中添加了 CPU Model、ComputeDevice Model、ComputeDevice Vendor 和 OperatingSystem。

  • 添加了对标定板旋转的支持以进行现场校正/验证。从相机的角度来看,板现在可以定向为 0、90、180 或 270 度(+/- 15 度)。

  • 改进了用于手眼标定和现场标定/验证的棋盘检测算法的稳健性,,以应对标定板出现明显反射或眩光导致的问题。

  • 改进了使用”ZividInfieldCorrection”验证现场标定时的命令行体验:

    • 现在可以重复验证,而无需重新连接到相机。

    • 验证还提供尺寸正确性测量的统计摘要。

  • 改进了尝试将文件保存到不存在的目录时的异常消息。

  • 不再支持从使用 SDK 1.x 保存的 .zdf 文件构造 Frame 对象并将该 Frame 对象重新保存到 .zdf 文件,这样操作将会引发异常。

  • .zdf 文件的基础格式在此版本中已更改:

    • 如果在 SDK 2.5.0 或更早版本中打开 2.6.0 或更高版本的 .zdf 文件,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头文件。必须明确包含Experimental头文件。

Studio

  • 修复了快速滚动鼠标滚轮时 3D 点云可能会上下翻转的错误。

已知问题和当前限制

2.5.0

API

  • 添加了对法线的支持。

    • 可以使用 copyNormalsXYZ() 从 PointCloud 对象计算法线。这将返回点云中每个点的单位法线向量的二维数组。

  • CameraInfo 类中添加了 Model 枚举。此枚举可用于区分相机型号: Zivid One+ Small/Medium/Large and 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-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++

  • 添加了experimental method Zivid::Experimental::SettingsInfo::resolution() 来查询给定设置对象和CameraInfo对象的点云分辨率。

Bug修复

  • 修复了如果在 GenICam 相机连接过程中与相机的物理连接丢失,GenICam 驱动程序中可能发生的崩溃。

  • 修复了如果 Zivid::Application 存储在静态变量中,则在程序关闭期间可能发生的崩溃。

  • 修复了使用 Zivid SDK 的进程在收到 SIGTERM/SIGILL 或类似信号时可能在关机期间永远卡住的问题。

  • 修复了在使用 Zivid One+ 相机时调用”Camera::connect()”时出现的小内存泄漏问题。

Studio

  • 添加了对 3D 点云视图中点的深度图着色的支持。按 “D” 打开和关闭此模式。

  • 添加了对通过将 .zdf 和 .yml 文件拖放到 Zivid Studio 窗口中来打开它们的支持。

  • 修复了在信息面板打开的情况下,通过将其边缘向左拖动来展开主右侧面板会错误地折叠信息面板的问题。

Zivid Two当前的限制

  • 建议在 Zivid Two 和专用 10Gb PCI-Express 网卡之间直接连接以获得最佳性能。连接到 Thunderbolt 3 端口的 Thunderbolt 3 外部网络适配器提供与专用 PCI-express 卡相似的性能。基于 USB 的网络适配器在使用相机时偶尔会出现错误,并且会降低和更多可变的捕获速度。

已知的问题

  • 仅限于Zivid Two:如果 PC 进程在连接到 Zivid Two 时被非干净地中止(例如通过 SIGINT、SIGABRT 或类似方法),从而导致相机和 PC 之间的 TCP 连接未正确关闭,相机将当它检测到网络连接断开时(通常在 15 秒内)重新启动。

    • 在极少数情况下,相机可能无法正确检测到与 PC 进程的连接已被终止。然后,相机将不断拒绝来自 SDK 的新连接,这将使相机在 SDK 中不可见。在这种情况下,必须手动重启相机。

  • 仅限于Zivid Two:在极少数情况下,捕获期间可能会引发”命令失败:CameraImageTimeout”异常。这将在下一次捕获时自行解决。

  • 仅限于Zivid Two:由于以太网数据包丢失导致数据重新传输,Windows 上的捕获时间有时会更长(比正常时间长 1 秒以上)。我们建议在 Windows 的网络驱动设置中增加”Receive Buffers”和”Transmit Buffers”,以减少丢包的发生。

  • 与在相同的硬件的 Linux 上运行相比,Windows 上的捕获时间可能更长。曝光时间短时差异较大,曝光时间长时差异较小。与使用 Zivid One+ 相比,使用 Zivid Two 在相同硬件上的 Windows 和 Linux 之间的相对差异更大。

  • 仅限 Ubuntu 20.04:当使用 Linux 5.8 kernel(使用较新的 HWE 内核时与 Ubuntu 20.04.2 一起发布),使用英特尔 GPU 作为渲染设备时,Zivid Studio 和 Visualizer 可能会出现”CL_OUT_OF_RESOURCES”和”OpenGL 错误”等错误: GL_INVALID_OPERATION” 显示点云时。为避免此问题,请使用 Linux 内核 5.4,它是 Ubuntu 20.04 的 LTS (stable) 基础 Linux 内核。

2.4.2

Bug修复

  • 修复了阻止用户将 libusb(SDK 内部使用)替换为自己的版本的问题。

2.4.1

Bug修复

  • 仅限于搭载标定模型 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 上同时使用多达四个 Zivid Two 相机进行了测试。

    • 可以同时使用多个相机,但是,每个单独的相机不应同时从多个线程中使用。通过 SDK 连接相机必须按顺序完成。

    • 有关如何设置多个相机的更多信息,请访问知识库:<https://support.zivid.com/latest/academy/camera/multiple-zivid-cameras.html>

  • 添加了 ZividNetworkCameraConfigurator CLI 工具以更改 Zivid Two相机的网络设置。

  • 提高了在温度规格之外使用相机时的点云精度。自动适用于任何 Zivid One+ 或 Zivid Two 相机。

  • 提高了eye-in-hand和eye-to-hand模式下的手眼标定精度。

  • 在网络数据包丢失的情况下改进了 Zivid Two 网络性能。

  • 提高了 Zivid Two 投影仪在较高的工作温度下的使用寿命。

  • 改进了使用 10000 微秒及以上的曝光时间时 Zivid Two 捕获时间。

  • 将 Zivid One+ 固件更新至版本 1.8.7。

  • 将 Zivid Two 固件更新至 1.4.1 。

  • 移除了对 Zivid One 相机的支持。 (注意:这不适用于 Zivid One Plus 相机。)

Studio

  • 修复了连接到相机时在两个或多个相机之间来回切换可能会出错的问题。

Bug修复

  • 修复了在销毁非常短暂的 Zivid::Application 对象期间可能发生的崩溃。

  • 修复了在禁用所有过滤器的情况下捕获 AMD 计算设备上的问题,其中无效点将被标记为”inf”而不是 NaN。

  • 修复了在没有 AVX 等功能的 CPU 上运行时,Stripe 引擎可能会在 Linux 上导致 SIGILL 的问题。

  • 修复了 Stripe Engine 上信噪比可能包含 NaN 值的问题。

  • 仅限于 Zivid One Plus:修复了 SDK 2.2 中引入的导致启动期间电流消耗过大的错误。

  • 仅限于 Zivid One Plus Revision C:修复了正常操作期间相机背面的状态 LED 为红色的问题。

  • 仅限于 Zivid Two :修复了固件升级后第一个捕获的点云可能包含缺失/错误的 3D 数据条纹的问题。

  • 仅限于 Zivid Two :修复了使用 DHCP 获取 IP 地址时超时太短的问题。短暂的超时可能会导致相机在 DHCP 进程完成之前回退到链路本地 IP 地址。

  • 仅限于 Zivid Two :修复了race-condition的问题,在存在网络延迟时尤为突出,表现为SDK 无法连接到相机。

  • 仅限于 Zivid Two :修复了可能导致风扇以过高转速运行的问题。

  • 仅限于 Zivid Two :修复了相机上未发送的数据可能被新/错误数据覆盖的问题。

Zivid Two当前的限制

  • 建议在 Zivid Two 和专用 10Gb PCI-Express 网卡之间直接连接以获得最佳性能。连接到 Thunderbolt 3 端口的 Thunderbolt 3 外部网络适配器提供与专用 PCI-express 卡相似的性能。基于 USB 的网络适配器在使用相机时偶尔会出现错误,并且会降低和更多可变的捕获速度。

已知的问题

  • 仅限于Zivid Two:如果 PC 进程在连接到 Zivid Two 时被非干净地中止(例如通过 SIGINT、SIGABRT 或类似方法),从而导致相机和 PC 之间的 TCP 连接未正确关闭,相机将当它检测到网络连接断开时(通常在 15 秒内)重新启动。

    • 在极少数情况下,相机可能无法正确检测到与 PC 进程的连接已被终止。然后,相机将不断拒绝来自 SDK 的新连接,这将使相机在 SDK 中不可见。在这种情况下,必须手动重启相机。

  • 仅限于Zivid Two:在极少数情况下,捕获期间可能会引发”命令失败:CameraImageTimeout”异常。这将在下一次捕获时自行解决。

  • 仅限于Zivid Two:由于以太网数据包丢失导致数据重新传输,Windows 上的捕获时间有时会更长(比正常时间长 1 秒以上)。我们建议在 Windows 的网络驱动设置中增加”Receive Buffers”和”Transmit Buffers”,以减少丢包的发生。

  • 与在相同的硬件的 Linux 上运行相比,Windows 上的捕获时间可能更长。曝光时间短时差异较大,曝光时间长时差异较小。与使用 Zivid One+ 相比,使用 Zivid Two 在相同硬件上的 Windows 和 Linux 之间的相对差异更大。

  • 仅限 Ubuntu 20.04:当使用 Linux 5.8 kernel(使用较新的 HWE 内核时与 Ubuntu 20.04.2 一起发布),使用英特尔 GPU 作为渲染设备时,Zivid Studio 和 Visualizer 可能会出现”CL_OUT_OF_RESOURCES”和”OpenGL 错误”等错误: GL_INVALID_OPERATION” 显示点云时。为避免此问题,请使用 Linux 内核 5.4,它是 Ubuntu 20.04 的 LTS (stable) 基础 Linux 内核。

2.3.0

API

  • 添加了对 Zivid Two 相机的支持。

  • 提高了实验性功能”Stripe”视觉引擎的速度。

  • 添加了对 Ubuntu 20.04 的官方支持。

  • 改进了实验性功能现场标定:

    • 改进算法以便在某些情况下产生更好的后校正精度。

    • 修复了在输入数据实际上足以计算校正时,用户仍会得到”No significant correction could be identified (noise >> signal).”异常的问题。

  • 改进了标定 API 和现场标定中使用的棋盘检测的稳健性。

  • 将色彩平衡设置的最大值从 2.0 增加到 8.0。

  • 添加了实验性的设置 Settings::Processing::Color::Experimental::ToneMapping::Enabled。此设置控制是否对所有 3D 捕获(单次和 HDR 捕获)执行色调映射,或者仅对 HDR 捕获执行色调映射。

  • 减少 3D 捕获的彩色图像的黑暗/曝光不足区域中的噪点,尤其是在启用色调映射和/或gamma低于 1 的情况下。

  • Ubuntu 16.04 不再支持 AMD。 (从 Radeon Software for Linux 18.50 开始,AMD 放弃了对 Ubuntu 16.04 的支持。)

  • 对 Zivid One 相机的支持已弃用,并将在 Zivid 2.4 中移除。 (注:这仅涉及 Zivid One 相机,仍支持 Zivid One Plus相机。)

Studio

  • 在信息面板中添加了用于将帧设置保存到文件的选项。

  • 改进了 Ubuntu 上文件对话框的外观。

  • 修复了在高 CPU 负载下快速滚动鼠标滚轮时,Zivid Studio 中 2D 图像可能上下翻转的问题。

Bug修复

  • 修复了尝试连接 Zivid One+ 相机时出现错误”Failed to check if block 0 in the EEPROM master table is occupied”的问题。

  • Stripe engine的信噪比 (SNR) 已得到修正,现在可与 Phase engine的 SNR 相媲美。

    • 改进的 SNR 计算意味着噪声滤波器现在在两个引擎的行为上具有更密切的对应关系。

此版本中值得注意的变化

  • 与 2.2 相比,使用较弱的计算设备(例如某些较弱的 Intel 集成 GPU 或 CPU)时,可能会观察到 3D 捕获时间的小幅性能下降。此类设备的性能下降通常为 1% 到 6%,具体取决于计算设备和捕获设置。

Zivid Two当前的限制

  • 尚不支持实验性的”Stripe”视觉引擎。

  • 一次只能将一台 Zivid Two 连接到 PC。

  • Zivid Two 的网络配置无法自定义。

  • 建议在 Zivid Two 和专用 10Gb PCI-Express 网卡之间直接连接以获得最佳性能。连接到 Thunderbolt 3 端口的 Thunderbolt 3 外部网络适配器提供与专用 PCI-express 卡类似的性能。基于 USB 的网络适配器可能会出现捕获错误并限制捕获速度,因此不建议在此版本中使用。

已知的问题

  • 与 Linux 相同的硬件相比,Windows 上的捕获时间可能更长。曝光时间短时差异较大,曝光时间长时差异较小。与使用 Zivid One 或 One+ 相比,使用 Zivid Two在相同硬件上的 Windows 和 Linux 之间的相对差异更大。

  • 仅限于 Zivid Two :有时,在固件升级完成后的第一次捕获中,点云输出可能是错误的。这将显示为点云中的错误/缺失数据行。此问题将在以下捕获中自行解决。

  • 仅限于 Zivid Two :有时,如果在相机固件升级完成后拍摄,可能会抛出”相机未连接”或类似的异常。重新连接到相机后,此问题将自行解决。

  • 仅限于 Zivid Two :由于以太网数据包丢失导致数据重新传输,Windows 上的捕获时间有时会更长(比正常时间长 1 秒以上)。

  • 仅限于Zivid Two:在极少数情况下,捕获期间可能会引发”命令失败:CameraImageTimeout”异常。这将在下一次捕获时自行解决。

  • 仅限于 Zivid Two :相机和客户端之间的网络链接很少会出现故障,从而导致超时。但是,链接将自动恢复,用户可以捕获 Zivid::Exception 并重新连接到相机,而无需手动干预。

  • 仅限 Ubuntu 20.04:当使用 Linux 5.8 kernel(使用较新的 HWE 内核时与 Ubuntu 20.04.2 一起发布),使用英特尔 GPU 作为渲染设备时,Zivid Studio 和 Visualizer 可能会出现”CL_OUT_OF_RESOURCES”和”OpenGL 错误”等错误: GL_INVALID_OPERATION” 显示点云时。为避免此问题,请使用 Linux 内核 5.4,它是 Ubuntu 20.04 的 LTS (stable) 基础 Linux 内核。

2.2.0

API

  • 添加了新的实验性 Zivid 视觉引擎,称为 Stripe:

    • 原始和默认的 Zivid 视觉引擎被命名为 Phase。

    • 添加了新的 Settings::Experimental::Engine 以指定要使用的 Zivid Vision 引擎。

    • Stripe Engine可抑制反射间伪像并提高圆柱体和镀铬零件等闪亮物体的数据质量。

    • Stripe Engine 需要额外的采集和处理时间。

    • 使用 Stripe Engine 时,必须启用反射去除过滤器和对比度失真校正过滤器。这在未来可能会改变。

    • 请注意,由于我们的 GenICam 包装器中的一个已知错误,如果未启用反射消除和对比度失真校正过滤器,则调用将挂起而不是报告错误。

    • Stripe Engine 目前处于试验阶段,未来可能会进行更改和改进。

    • Stripe Engine 仅支持 Zivid One Plus(不是 Zivid One)

  • 扩展标定 API 以支持新的官方 Zivid 标定板系列,其中第一款是 ZVD-CB01 (7x8 30mm)。该板现在可以与现有的手眼和多相机标定功能一起使用,而无需修改客户端代码。它也可以与新的现场校正功能一起使用(见下文)。

  • 添加了新的实验性现场标定 API。与新的 ZVD-CB01 标定板一起,这允许用户执行相机尺寸正确性的验证和校正。该 API 具有以下功能:

    • verifyCamera:基于单个标定板捕获,量化相机的局部维度真实性。

    • computeCameraCorrection:基于一个或多个标定板捕获,计算可应用于相机的校正,以提高其尺寸真实性。此函数还计算在应用校正时可以预期的真实度的置信区间。

    • writeCameraCorrection:将校正写入相机。即使相机重启或连接到不同的 PC,校正仍将持续存在于相机上。调用此函数后,任何时候在此相机上调用捕获函数时,都会自动使用给定的校正。

    • resetCameraCorrection:将相机的校正重置为出厂默认值。

    • hasCameraCorrection:检查相机是否有非默认校正。

    • cameraCorrectionTimestamp:检查当前校正写入相机的时间。

    • 有关更详细的说明,请参阅 API 文档。

  • 添加了命令行工具”ZividExperimentalInfieldCorrection”。该工具使用户无需编写代码即可从新的现场标定 API 轻松执行核心任务。使用命令”ZividExperimentalInfieldCorrection –help”查看使用说明。注意:在 Linux 上,此工具是 zivid-tools 软件包的一部分,而不是核心安装程序。

  • 添加了Gamma设置。 Gamma 可用于使用 Gamma 曲线使点云的颜色变亮或变暗。

  • 将 Zivid One+ 固件更新至版本 1.8.4。

Studio

  • 添加了一个新的信息侧面板:

    • 此面板包含有关当前帧/点云的信息,包括使用的设置、点云的分辨率以及捕获时间。

    • 捕获时间定义为从捕获开始到所有处理完成并且点云数据在计算设备上可用所花费的时间。

    • 打开 .zdf 文件时,侧面板会显示用于捕获此帧的相机序列号和型号名称,以及 Zivid SDK 版本。

    • 这个新的侧面板可以通过单击右下角的”信息”、”查看”菜单和快捷键”Shift+I”来显示。

  • 添加了对新 Stripe engine 的支持。

  • 在”查看”菜单中添加了选项以在打开 .zdf 文件时禁用点云视图的重置。

  • 添加了”M”作为网格划分的快捷方式。

  • 添加选项卡按钮以更轻松地在辅助模式和手动模式之间切换。

  • 固定深度和彩色图像视图在窗口大小发生变化时被重置。

  • 调整了 GUI 中不同位置的颜色、大小和填充。

Bug修复

  • Linux

    • 修复了在 capture() 函数的后续异常之后可能发生的崩溃。如果之前从 capture() 抛出了一个异常,那么如果发生另一个故障,那么系统可能会崩溃而不是抛出另一个异常。只有在使用 Ubuntu 16.04 软件包时才会发生这种崩溃。

  • Windows

    • 修复了会在某些防病毒软件上触发误报恶意软件警报的问题。

  • .NET

    • 修复了在同一对象上多次调用 .Dispose() 可能导致 System.AccessViolationException 的错误。

  • 固件

    • 修复了固件可能会在很长一段时间后挂起的问题

2.1.0

API

  • PointCloud 类添加了降采样功能:

    • 降采样可用于减小点云的大小,以便在较少数量的点上执行计算。

    • 降采样将原始点云中的 NxN 像素区域组合到降采样点云中的一个像素。提供 2x2、3x3 和 4x4 降采样选项。

    • 降采样的执行方式是通过对由 SNR^2 加权的点进行平均来降低点的噪声,忽略无效 (NaN) 点。在计算设备上执行降采样。

  • CameraInfo 现在在 Frame 类中可用。 CameraInfo 包含用于捕获帧的相机的序列号和型号名称。

  • 修复了连接到相机会引发异常并显示消息”无法设置像素格式 (CAM_API_STS_NOT_WRITABLE)。”的问题

  • 将 Zivid One+ 固件更新至 1.7.4 版:

    • 修复了相机可能停止响应的错误。

C++

  • SettingsSettings2D 中的数值(例如 ExposureTimeAperture 等)现在可以使用 operator<operator> 进行比较。

.NET

  • PointCloud.Transform 现在返回对自身的引用,这样 TransformDownsample 等可以链接在一起。

Studio

  • 在深度图像视图中添加了 “mm” 作为单位。

2.0.0

API

  • 新的 Settings / Settings2D / Capture API:

    • 单个”Settings”对象现在包含捕获所需的所有信息。

    • "Settings*(设置)"包含一个或多个采集,以及过滤器和色彩平衡等图像处理设置。当使用多个采集时,将执行HDR捕获,并返回组合帧。

    • Settings 对象现在直接作为参数提供给 Camera 上的捕获方法。

    • 移除了”相机”上单独的 2D 捕获方法。现在通过将 Settings2D 传递给捕获方法来执行 2D 捕获。

    • 用户可以根据需要指定”Settings”或”Settings2D”的尽可能少或尽可能多的部分。捕获时,任何未明确指定的设置都将使用特定于相机的默认值。

  • 新的点云 API:

    • 对 capture 方法的调用返回一个”Frame”,它提供了一个”PointCloud”的句柄。 PointCloud 对象是仍然存储在 GPU 上的点云的句柄,然后可以在需要时通过 PointCloud 的各种方法将特定数据复制到 CPU 内存。

    • PointCloud 允许复制以下数据格式:

      • PointXYZ

      • PointXYZW

      • PointZ

      • ColorRGBA

      • PointXYZColorRGBA

      • PointXYZColorBGRA

      • SNR

    • PointCloud 功能取代了被移除的旧的 DeviceCloud

  • 新的 ContrastDistortion 过滤器:

    • 该过滤器具有校正和/或去除由于非常强的强度梯度而失真的点的能力。这适用于闪亮/反光物体以及漫反射物体,例如从白色突然变为黑色。

    • 此过滤器被认为是实验性的,可能会在未来的版本中发生变化。

  • 新的多相机标定:

    • 新的”标定”命名空间的一部分,以及手眼标定。

    • 多相机标定用于多相机设置,以在指定的主相机的框架中找到辅助相机的位姿,例如将点云组合到单个参考框架中。

  • GPU 加速的点云变换:

    • 通过”PointCloud”的变换方法,用户现在可以对点云的 3D 坐标执行就地 GPU 加速变换。这种以 4x4 矩阵形式提供的变换可能来自”标定”命名空间的函数,或者它们可以是任何用户定义的变换。

  • 新的”Aperture”设置:

    • 引入了”Aperture”设置,它取代了旧的”Iris”设置。

    • 这是一个浮点数,单位为 F 数。 API 支持 [1.4 - 32] 范围内的值。

    • 拍摄时,相机将选择最接近指定 F 值的内部光圈位置。

    • 通过调用”相机”上的方法可以完全关闭光圈。

  • 新的色彩平衡设置:

    • 用户现在可以独立控制应用于三个颜色通道的增益,而不会对计算的 3D 点坐标产生任何影响。

    • 在给定相同场景的情况下,捕获现在可能会提供更多有效点,尤其是在场景包含鲜红色的情况下。

    • 添加了对 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”。

  • 新的”Noise”过滤器:

    • 根据 SNR 值过滤点。

    • 替换旧的对比度过滤器。

  • 移除了旧的”Saturated”过滤器设置:

    • 饱和过滤器现在始终处于启用状态,并且无法通过设置禁用。

  • 新的”Calibration”命名空间:

    • 旧的 HandEye 命名空间的内容被移动到了 Calibration 命名空间。

    • 所有输入和输出转换矩阵现在都是浮点格式而不是双精度格式,以更好地匹配 PointCloud 数据的格式。

  • 新的 CameraInfo API:

    • Camera 上用于获取序列号、型号名称等的成员函数已被删除。

    • 相反,可以通过 Camera 上的方法访问新类 CameraInfo 的实例。

    • CameraInfo 包含相机型号名称、修订版、序列号、固件版本以及可以存储在相机中的用户数据的最大字节数。

  • 对相机内部 API 的更改:

    • 在基于”Frame”估计有效相机内在函数时显着的性能改进。

    • 获取相机内在函数的方法从 Camera 类中取出,并与从 Frame 获取内在函数的函数一起放置在 Experimental::Calibration 命名空间中。

  • Gaussian 过滤器移至 HDR 合并后,以提高性能。

  • “Live-mode(实时模式)”已从API中移除。

  • 双向模式(Bidirectional patterns)已从 API 中移除。

  • ZividVis3D 库已重命名为 ZividVisualization

  • CloudVisualizer 类已重命名为 Visualizer,并移至 Visualization 命名空间。

  • 文件相机的文件扩展名已从 .zdf 更改为 .zfc。

  • Environment 命名空间已从 API 中移除。

  • 用于访问图像数据的”Frame2D”方法已从”colorsRGBA”重命名为”imageRGBA”。

  • 简化的异常 API 只包含一个异常:Zivid::Exception

  • 对命名/术语的许多调整。

C++

  • 在 C++ API 中,PointCloud 类还可以通过成员函数(例如 copyData(PointXYZ*))将数据直接从 GPU 复制到指定的用户分配的 CPU 数据缓冲区。

C#

  • 重构 C# 接口以反映核心 API 的底层变化(见上文)。

  • CaptureAssistant 已从类更改为命名空间。这个命名空间包含两个类:

    • SuggestSettingsParameters

    • Assistant,包含方法 SuggestSettings

  • “固件”已从类(class)更改为命名空间(namespace)。此命名空间包含一个新的类”Updater”,它提供与固件更新相关的功能。

  • 2D 颜色数据的主要图像类现在称为”ImageRGBA”。它提供了两种访问颜色数据的方法:

    • ToArray()ColorRGBA 结构的二维数组。

    • ToByteArray():3D 字节数组,第三个索引用于选择图像通道 (RGBA)。

  • Pose::ToArray() 已被移除。

  • Pose::ToArray2D 已重命名为 Pose::ToMatrix()

精灵相机

  • 所有设置都被重命名以匹配核心 C++ API 中的新名称。

  • MergedMultiFrame 不再有 ApplyType 字段。

  • MergedMultiFrame 已重命名为 MultiAcquisitionFrame

  • 删除了”MultiAcquisitionFrame”和单帧的重复设置。

  • SettingsControl 包含常见的捕获设置,如过滤器和色彩平衡。 AcquisitionSettingsControl 包含一次采集的设置。

  • SingleFrame 模式使用类别 SettingsControlAcquisitionSettingsControl 下的设置。 SingleFrame 模式用于通过单次采集进行捕获。

  • MultiAcquisitionFrame 模式使用 SettingsControl 下的设置,以及通过 MultiAcquisitionFrameControl::AddAcquisition 添加的所有采集设置。 MultiAcquisitionFrame 模式用于通过多次采集 (HDR) 进行捕获。

  • 不再支持连续模式。

Zivid Studio

  • 通过 File -> “Import/Export Capture Settings” 保存或加载完整捕获设置的选项。

  • 改进了设置滑块的步长。

  • 允许在启用一次采集的情况下运行”Live”模式时更改所有设置。

  • 在亮度设置高于 1.0 的情况下运行”Live”模式时,在 UI 中添加了通知。

Windows

Linux

  • 如果从较旧 (<=1.4) 版本的 Zivid SDK 升级,Linux 安装程序(特别是 zivid-telicam-driver_*.deb)现在可以正确卸载旧的 telicam-sdk 软件包。

  • 修复了 Linux 安装程序(特别是 zivid-telicam-driver_*.deb)中的一个错误,其中 TelicamSDK 示例将被写入 /root。不再安装这些示例。

Bug修复

  • 修复了旧款 Zivid One 相机可能导致”检测到帧时序不一致”异常的问题。这修复了 1.8.1 版的一个已知限制。

  • 修复了 USB 层上的资源泄漏。

  • 修复了尽管包含 NaN 特征点,但 DetectionResult 仍被视为有效的错误。

  • 修复了由于小数点约定冲突而导致在不同语言环境中保存和加载 YAML 文件可能失败的错误。 YAML 序列化现在总是使用 “.” 作为小数点。

1.8.1

API

  • 向 C++ API 添加了新的实验函数 Zivid::Experimental::Calibration::estimateIntrinsics()。此函数在将 3D 点投影到 2D 时提供更准确的相机内在函数。

  • 修复了无法正确移除投影仪视野边缘附近的伪像的问题。

  • 支持实验性功能multi-Zivid:

    • 此功能在一台 PC 上同时使用多达四台 Zivid One Plus 相机进行测试。

    • 可以同时使用多个相机,但是,每个单独的相机不应同时从多个线程中使用。必须按顺序连接到相机。

    • 已知限制:

      • 某些 USB 芯片组在高负载(同时捕获多个)期间性能不佳。这可以表现为捕获期间抛出的异常。如果您遇到这种情况,请尝试使用不同的 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 文件时,文件名显示在窗口的标题栏中。

已知限制

  • Zivid One 相机(不是Zivid One Plus系列)的用户在拍摄过程中可能会遇到异常。我们建议Zivid One 型号的用户继续使用 SDK 1.8.0 或更早版本。

1.8.0

API

  • 改进的捕获助手:

    • 提高性能(分析时间缩短约 25%)。

    • 改进了捕获预算(”最大捕获时间”)低于一秒的结果。

    • 修复了在Large型相机的情况下返回错误的异常值过滤器阈值的问题。

  • 去除投影仪视野边缘附近的伪像。

  • 修复了新英特尔 GPU(Broadwell 和更高版本)上适用于 Linux 的英特尔 NEO OpenCL 驱动程序的兼容性问题。

  • 改进了对没有双精度浮点功能的 GPU 的支持。

.NET

  • 为 .NET API 添加了对 Capture Assistant 的支持,包括示例。

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 时潜在的相机死锁问题。

  • 捕获助手避免光圈值高于 46 以增加景深。

  • 导出 PCD 文件时使用正确的 alpha 值。

  • Capture Assistant CLI 工具现在支持保存建议的设置。

  • 从 Vis3D 库中删除了 Qt 依赖项。

  • 添加了 SampleHandEyeCalibration 示例。

  • 添加了 SampleCapture2D 示例。

  • 添加了 Vis3D 示例。

  • 为 CloudVisualizer 添加了重置视图(退格)和颜色开/关(c)的键盘快捷键。

.NET

  • 添加了缺失的用户数据功能,以使 .NET API 与 C++ API 保持同步。

  • 从正确的文件夹制作示例代码副本发布 DLL,以避免在发布版本中加载调试 DLL。

  • 改进的参考文档。

  • 修复了月份转换错误。

精灵相机

  • 在 Ubuntu 中添加了对 HALCON 19 的支持。

Zivid Studio

  • 修复了设置工具提示错误出现的问题

  • 修复了在深度/彩色 2D 视图中移动鼠标时可能发生的崩溃

  • 固定深度/颜色 2D 视图在更改选项卡时被重置

  • 在右侧面板的”捕获”菜单中添加了”将设置保存到文件夹”

已知缺陷

  • 在固件更新期间拔下 USB 或电源可能会导致下一次固件更新导致崩溃或软件挂起的情况。要从这种情况中恢复,请重启相机。

1.5.0

API

  • 改进了 CMake 配置文件中的语义版本控制支持。现在,当使用 find_package 使用相同的主要版本时,将找到较新版本的 Zivid SDK,但所需的次要版本或补丁版本较低。

  • 将 telicam-sdk deb 包重命名为 zivid-telicam-driver。

  • 现在在空向量上调用 combineFrames 会导致异常,以前这会导致崩溃。

  • 默认情况下,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 预览版。

  • 从 DirectX 更改为 OpenCL 作为 GPU 计算平台。

  • 性能改进。

  • 从 Zivid Labs 重新命名为 Zivid(包括日志和配置文件夹)。

  • 支持 Zivid One Plus Small、Medium和Large的工程版本。

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 自动更新固件或使用独立应用程序手动更新。

  • 添加了管理资源的应用程序类,它需要是使用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 中包含第 3 方库的”法律声明”。

  • 添加了更好的应用程序图标。

  • 新版 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 和 internalCameraId。

  • 将 Zivid Studio 与 .zdf 文件相关联。

  • 使 Zivid 出现在 Windows 的”添加/删除程序”中。

  • 在安装文件中嵌入 Visual Studio 的 VCRedist 文件。

  • 如果需要,请下载并安装 Toshiba Teli 相机驱动程序。

  • 从公共 API 中删除了 std::shared_ptr。

  • 从 C++ API 中移除 ZSetting。

  • 将测量类重命名为框架。

  • 将 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 之前的最后一个版本(例如,ShapeCrafterGUI 将成为 Zivid Studio,ShapeCrafter 类将更名为 Zivid)。

  • 添加了对垂直图案的支持(图案数量的两倍:水平 + 垂直)。在 API 中使用 enablePerpendicularPatterns()(或通过 GUI 中的首选项进行切换)。重要提示:由于当前硬件的限制,投影机的曝光时间必须增加到大约 50 分钟以上。 33000 微秒才能稳定。

  • 添加了反射过滤器,可以检测和去除反射引起的异常值。请注意,使用垂直图案时反射过滤器效果最佳(请参阅首选项)。通过 API 中的 enableReflectionFilter() 将其打开。

  • ShapeCrafterGUI:通过 Edit->Preferences 或 API 中的 enableErrorCorrectingCode() 支持 LGGC(大间隙格雷码)纠错模式模式。

  • 现在可以检测和移除饱和像素。应该改进 HDR 测量的融合。通过 GUI 中的首选项启用它(或调用启用)或在 API 中调用 setMaskSaturated。

  • 添加了函数 getFirmwareLabel 以获取固件版本(C++ 和 .NET API)。

  • ShapeCrafterAPI:添加了对 PCB 修订版 2 的支持。请注意,它对例如 iris 具有不同的固定(因此 setProductRevision 函数)。

  • 在 GUI 的首选项对话框中选择产品版本(处理版本 0 (PoC)、工程模型版本 1 和工程模型版本 2 之间的差异。

  • 向 API 添加了 setProductRevision() 函数。请在初始化 ShapeCrafter 之前调用此函数。

  • 向 C++ 和 .NET API 添加了 isConnected() 函数。

  • 函数 initialize() 现在返回一个布尔标志,表明相机和投影仪是否可以成功连接。

  • 固件更新:Zivid nows 以 7 秒的初始图像开始,然后自行关闭。这需要固件更新。请下载并安装相关固件:ZIVID_v0_9_10_ROM_v300_splash.bin。

  • ShapeCrafterNET:添加了 Logger.setLogCallback() 函数。允许 .NET API 的客户端从底层 C++ API 接收日志回调消息。

  • ShapeCrafterNET:改进了 StringSettings 和 StringSetting 类。现在的行为更像 C++(可以通过索引读取/写入)。

  • ShapeCrafterNET:尝试修复在使用 .NET API 时有时会导致退出时崩溃的错误。

  • ShapeCrafterNET:添加了 getVersionInfoForModule() 函数,该函数返回给定 DLL 的版本信息。

  • ShapeCrafterGUI:通过帮助->关于对话框查看所有 DLL 的版本号。

  • ShapeCrafterGUI:支持通过工具栏中的按钮以单色查看点云(禁用 RGB)。

  • ShapeCrafterGUI:网格视图现在即时更新可视化。

  • ShapeCrafterGUI:修复了与进行未标定测量相关的错误。

  • ShapeCrafterGUI:单击首选项对话框中的应用现在应该重新初始化系统(即加载新的标定文件等)。

  • CloudViewer:用于可视化点云的新应用程序不再基于 PCL(不是基于 DirectX)也可以与 W3P 文件相关联。

  • ShapeCrafterAPI:如果无法初始化相机,现在将引发异常。

  • Python API:增加了对控制光圈的支持。

  • ZividCalibrationApp:新的基于 Qt 的标定应用程序。在保存图像之前,应用程序会尝试检测投影仪/相机中的图像角落。

  • 添加了从CMake自动生成包和安装程序的功能。