开始使用¶
安装 SaigeVision 运行时 C/C++ SDK,以便在 Visual Studio 项目中使用,或尝试运行示例项目。
最低和推荐系统要求¶
| 项目 | 最低需求* | 推荐配置 |
|---|---|---|
| OS | Windows 10 64bit or Ubuntu 20.04, 22.04 | |
| CPU | Intel Core i7 | |
| RAM | 16GB | 32GB |
| GPU | GeForce RTX 2060 6GB | GeForce RTX 3090 24GB |
* "Minimum Requirements" 的意思是 SaigeResearch 已通过自身实验确认,可以在此环境中成功执行检测。根据使用的模型和数据,以及同时运行的其他任务,它可能在更低的规格下运行,或者在更高的规格下无法运行。
先决条件¶
- SaigeVision Installer
- NVIDIA Windows Driver 471.96 (*reference)
- SaigeVision 授权加密狗
- Windows
- (Example execution) Visual Studio 2017 or later, Windows 10 SDK
- Linux
- gcc, g++ 9.4.0 or later
- (Example build) CMake 3.28 or later
Windows¶
安装文件列表¶
| 项目 | 位置 |
|---|---|
| 动态库 - SaigeVision.dll - SaigeVision_Impl.dll 可执行文件 - ErrorMsg.exe - Examples.exe - SaigeVisionDoctor.exe - SaigeVisionPrompt |
{安装路径}\SaigeVision\engine\bin |
| 静态库 - SaigeVision.lib |
{安装路径}\SaigeVision\engine\lib |
| C/C++ 头文件 - SaigeVisionAPI.h - SaigeVisionUtil.h - saige_error.h - SaigeVisionAPI_V1.h |
{安装路径}\SaigeVision\engine\include |
| Python 环境 | {安装路径}\SaigeVision\python |
| Python 模块 | {安装路径}\SaigeVision\module |
| 配置文件 - log4cxx.xml - runtime.conf |
{安装路径}\SaigeVision\conf |
| 示例项目 | {安装路径}\SaigeVision\engine\Examples |
| OpenCV 等 | {安装路径}\SaigeVision\engine\third_party |
Note
从版本 2.8.0 开始,OpenCV 等第三方库文件夹被排除在外。
可执行文件
- ErrorMsg.exe - 一个命令行程序,允许您通过输入错误代码来检查错误消息。
- Examples.exe - 从示例项目构建的可执行文件。您可以直接运行示例程序,而无需自行构建。
- SaigeVisionDoctor.exe - 一个命令行程序,用于验证 SAIGE VISION 和运行时 SDK 是否已正确安装。
- SaigeVisionPrompt - 一个工程师的命令行处理器,用于在 SAIGE VISION 环境中执行各种命令。
配置文件
- log4cxx.xml - 日志配置文件,位于
{安装路径}\SaigeVision\engine\logs 目录中。 - runtime.conf - 用于连接 SAIGE VISION 企业版中央服务器的配置文件。
在 Visual Studio 项目中使用 SaigeVision 运行时 C/C++ SDK¶
Visual Studio 项目配置¶
要在您的 Visual Studio 项目中使用 SaigeVision 运行时 C/C++ SDK,请按照以下步骤操作,前提是安装过程已成功完成,并且已正确设置了 SAIGE_HOME 环境变量。
- 将目标平台设置为
x64。 -
将两个 DLL 文件
SaigeVision.dll和SaigeVision_Impl.dll复制到应用程序的可执行文件路径,或者将包含这些 DLL 文件的文件夹路径添加到系统环境变量PATH中。如果您仅通过 Visual Studio 运行应用程序,您也可以按以下方式进行设置:
前往项目属性,在 调试 → 环境 下添加 PATH=$(SAIGE_HOME)\SaigeVision\engine\bin;%PATH%。
<p align="center"><img src="../assets/getting_started/vs_setting_1.png"></p>
- 在
C/C++ → 常规 → 附加包含目录下,添加$(SAIGE_HOME)\SaigeVision\engine\include。
- 在
链接器 → 常规 → 附加库目录下,添加$(SAIGE_HOME)\SaigeVision\engine\lib。
- 在
链接器 → 输入 → 附加依赖项下,添加SaigeVision.lib;。
头文件¶
项目设置完成后,您可以包含 SaigeVision 头文件以使用 SaigeVision API。
-
SaigeVisionAPI.h 定义了 SaigeVision 推理功能的核心函数、常量、结构和标志。要使用 SaigeVision 的推理功能,该文件是必需的。
-
SaigeVisionUtil.h 包含运行示例代码所需的实用函数,例如处理图像数据和可视化推理结果。虽然是可选的,但这些实用函数便于使用 SaigeVision 进行测试。
构建和运行示例¶
Visual Studio 项目配置 部分中提供的所有指南已在示例项目中应用。如果您已成功完成 安装 过程,可以按照以下说明构建和运行 SaigeVision 示例。
构建¶
启动位于 {安装路径}\SaigeVision\engine\Examples\VS2017\Examples.vcxproj 的 Visual Studio 项目文件。
Warning
当您第一次打开项目时,Visual Studio 可能会在解决方案检查中提示进行 SDK 升级建议,这取决于您的 Visual Studio 版本。在这种情况下,选择 不升级。

将构建目标设置如下:
- 配置:Debug 或 Release
- 平台:x64
Note
如果找不到包含目录,请尝试运行 生成 → 清理解决方案。
如果构建成功,可执行文件 Example.exe 将在路径 VS2017\x64\{Debug 或 Release} 中创建。
运行示例¶
有两种方法可以运行已构建的示例:
- 在 Visual Studio 中通过选择
开始调试(快捷键F5)或开始执行(不调试)(快捷键Ctrl + F5)来运行示例应用程序。 -
通过终端(cmd 或 PowerShell)运行
Example.exe。Warning
在终端中运行时,确保从
VS2017路径执行,以避免相对路径问题。例如,如果安装路径是
C:\Saige,您应在终端中按以下方式运行:PS C:\Saige\SaigeVision\engine\Examples\VS2017> .\x64\Release\Example.exe
当您运行示例项目时,可以选择所需的示例来执行推理任务。
安装¶
使用 SaigeVision 安装程序安装 SaigeVision,并参考提供的安装指南以获取详细说明。
SAIGE_HOME 环境变量
运行 SaigeVision 安装程序时,系统会提示您指定安装路径。安装完成后,此路径将自动设置为环境变量 SAIGE_HOME。

安装选项
在 SaigeVision 安装过程中,运行时 SDK 将始终安装,而开发者选项是可选的。根据您的需求,您可以仅安装运行时 SDK,或同时安装运行时 SDK 和开发者选项。

通过 SaigeVision 安装程序安装的运行时 SDK 组件如下所示。
Linux¶
安装¶
将 SDK 压缩包解压到您希望的位置。
示例:
tar -xzf SaigeVision_Release_Linux_x64_2.8.0.tar.gz -C ${installation_path}
安装文件列表¶
| 项目 | 位置 |
|---|---|
| 动态库 - libSaigeVision_Impl.so |
{installation_path}\SaigeVision\engine\bin |
| C/C++ 头文件 - SaigeVisionAPI.h - SaigeVisionUtil.h |
{installation_path}\SaigeVision\engine\include |
| Python 环境 | {installation_path}\SaigeVision\python |
| Python 模块 | {installation_path}\SaigeVision\module |
| 示例项目 | {installation_path}\SaigeVision\engine\Examples |
构建和运行示例¶
在 Linux 上使用 SaigeVision SDK 运行程序之前,请始终执行 setenv.sh。
source {installation_path}/SaigeVision/setenv.sh
SaigeVision SDK 的安装路径 |
| SVSDK_LOG_CONF | 示例中使用的默认日志配置文件路径 |
| PYTHONPATH | Python 模块的位置 |
| PYTHONHOME | Python 的路径 |
| LD_LIBRARY_PATH | 运行 SDK 所需的附加库路径 |
构建¶
要使用 SaigeVision SDK,请链接提供的 SDK 库和 Python 库。要在 Linux 上构建示例,请使用 CMake 构建系统。以下是使用 CMake 链接 SDK 提供的库的方法:
find_library(SAIGE_VISION libSaigeVision_Impl.so PATH $ENV{SAIGE_HOME}/SaigeVision/engine/bin)
find_library(PYTHON_LIBS libpython3.8.so PATH $ENV{SAIGE_HOME}/SaigeVision/python)
提供了一个脚本可直接构建示例。运行 SaigeVision/engine/Examples/build.sh。 该脚本将在子文件夹中创建一个构建目录,并在该目录中生成示例二进制文件。
运行示例¶
要运行示例,请将所需的测试类型(det、cls、seg、iad、ien 或 ocr)指定为第一个参数。
${SAIGE_HOME}/SaigeVision/engine/Examples/build/Examples iad
示例代码指南¶
您可以在 'Examples' 项目的源文件中查看所有示例代码。可以随意修改代码,以根据需要使用 SaigeVision 推理功能。每个示例都在注释中包含基本的使用说明,这可能对您有所帮助。
除了 'SaigeVisionAPI.h' 和 'SaigeVisionUtil.h',示例代码还包括各种 C/C++ 标准库。示例中使用的 C++ 版本为 C++17。
有关使用 SaigeVision 推理功能的详细指南,请参考 开发者指南 和 API 参考。
调整详细级别¶
增加 'verbosity' 变量将为控制台输出添加更多信息,并启用检测结果的可视化。
- 0:显示使用推理 API 所用时间(毫秒)。
- 1:输出模型信息和推理选项。
- 2:输出每个图像路径和可读的推理结果。
- 3:激活其他推理选项并显示相应的结果。
- 4:使用 OpenCV 显示可视化的推理结果。
错误处理方法¶
几乎所有 SaigeVision API 都返回整数类型的错误代码。值为 0 或更高表示成功,而负值表示错误。
当将错误代码传递给 'SaigeStrError' 函数时,它返回一个描述该代码对应错误的 C 字符串('char*')。
在示例代码中,错误处理方法根据具体情况有所不同。每个 API 函数的错误处理方法如下:
| API | 处理方法 |
|---|---|
SaigeCreateInferenceHandle SaigeCreateInferenceResult SaigeGetInferenceOption SaigeSetInferenceOption SaigeDestroyInferenceHandle SaigeDestroyInferenceResult |
如果创建了句柄,则销毁它并终止应用程序。 |
SaigeGetModelInfo |
将错误消息打印到控制台。由于推理过程可以继续,因此继续执行。 |
SaigeGetImageData SaigeInferFromByteArrray SaigeInferFromMultipleByteArray |
跳过当前图像并在循环中继续下一个推理(在 'for' 循环中使用 'continue')。 |
SaigeGetInferenceResult{result_name} |
销毁句柄并终止应用程序。 |
示例)当 SaigeSetInferenceOption 中发生错误时
retval = SaigeSetInferenceOption(handle, &options, flags);
if (retval < 0) {
std::cerr << "SaigeSetInferenceOption() failed - " << SaigeStrError(retval) << std::endl;
SaigeDestroyInferenceHandle(handle);
SaigeDestroyInferenceResult(result);
return retval;
}
首先,它将错误发生的位置和错误消息输出到标准错误(stderr)。
由于在推理选项设置失败后继续执行会变得困难,因此销毁推理句柄和结果句柄,并使用 'return retval' 异常终止应用程序。
重要注意事项¶
- 为防止内存泄漏,请使用 'SaigeFreeImageData()' 释放由实用函数 'SaigeGetImageData()' 加载的图像数据。
- 在示例中,读取包含韩文字符的图像路径的代码设置为仅识别 UTF-8 Unicode。如果在使用 'SaigeGetImageData()' 时由于韩文路径出现问题,请按以下步骤操作并重新运行示例:
- 打开“设置”应用,进入“时间和语言”菜单。
- 选择“语言”并点击“更改系统区域设置”下的“管理语言设置”。
- 勾选“测试版:使用 Unicode UTF-8 提供全球语言支持”复选框,然后点击“确定”。

- 按提示重新启动系统。
- 对于不正确的图像路径,错误处理有限,程序可能会在没有特定消息的情况下终止。计划在未来更新中通过 C++17 文件系统支持改进此问题。
(重要)推荐的 NVIDIA 驱动程序版本和设置¶
由于 NVIDIA 显卡驱动程序可能存在潜在的错误或副作用,推理时间可能会异常延长。我们建议遵循以下指南:
- NVIDIA GeForce RTX 30 系列及以下:驱动程序版本:471.96 链接
- NVIDIA GeForce RTX 40 系列及以上:驱动程序版本 515.15 或更高(或最新版本)
- NVIDIA 控制面板设置
- 低延迟模式:开启
- 电源管理模式:优先最大性能