Software Architecture

Figure 1 shows the software architecture of Vision SDK. Table 1 describes the key modules in the architecture.

Figure 1 Vision SDK architecture
Table 1 Architecture modules

Module

Description

mxStream

Manages service streams during process orchestration.

  • StreamManager: builds and destroys streams, and provides APIs for sending data and receiving results.
  • StreamServer: inference server developed based on Vision SDK and provides visual inference services through RESTful APIs.

mxPlugins

Provides basic function plugins, such as model inference, model postprocessing, video encoding and decoding, and image decoding, to support quick application development through process orchestration.

  • MpDataSource: provides functions such as stream pulling, data loading, data serialization, and data export.
  • MpDataProcess: handles data processing tasks, such as video encoding and decoding, image encoding and decoding, as well as image cropping, resizing, pasting, and rotation.
  • MpModelInfer: provides functions related to model inference.
  • MpPostProc: provides functions related to model postprocessing.

mxBase

Provides function libraries of the Ascend processor, including image decoding, cropping and resizing, model inference, and operator acceleration. It is the base of Vision SDK and opens some APIs for you to customize applications.

  • MbCV: processes images, including addition, subtraction, cropping, resizing, channel stitching, and channel splitting.
  • ModelInfer: provides model inference and postprocessing functions.
  • Basic algorithm: supports various algorithms, such as NMS, affine transformation, Hungarian algorithm, and Kalman filtering.
  • Resource Manager: provides functions such as resource initialization, resource deinitialization, asynchronous process control, device management, and memory management.
  • Utils: provides functions such as log module, error code, file processing, and character string processing.

mxTools

Provides SDK-related tools.

  • PluginToolkit: API for plugin development.
  • SdkInfoCollector: one-click information collection tool. It collects Vision SDK logs, Ascend processor logs, and resource usage for troubleshooting.
  • Uninstaller: Vision SDK uninstallation tool.
  • TestToolkit: single-plugin test tool.
  • PluginInspector: plugin information collection tool. It collects information about available plugins in the environment.