OpenVINO.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <algorithm>
4 #include <exception>
5 #include <map>
6 #include <string>
7 #include <unordered_map>
8 #include <utility>
9 #include <vector>
10 
12 #include "depthai/utility/Path.hpp"
13 
14 namespace dai {
15 
17 class OpenVINO {
18  public:
21 
23  struct Blob {
29  Blob(std::vector<uint8_t> data);
35  Blob(const dai::Path& path);
36 
40  std::unordered_map<std::string, TensorInfo> networkInputs;
42  std::unordered_map<std::string, TensorInfo> networkOutputs;
44  uint32_t stageCount = 0;
46  uint32_t numShaves = 0;
48  uint32_t numSlices = 0;
50  std::vector<uint8_t> data;
51  };
52 
54  constexpr static const Version DEFAULT_VERSION = VERSION_2022_1;
55 
59  static std::vector<Version> getVersions();
60 
66  static std::string getVersionName(Version version);
67 
74  static Version parseVersionName(const std::string& versionString);
75 
82  static std::vector<Version> getBlobSupportedVersions(std::uint32_t majorVersion, std::uint32_t minorVersion);
83 
90  static Version getBlobLatestSupportedVersion(std::uint32_t majorVersion, std::uint32_t minorVersion);
91 
98  static Version getBlobVersion(std::uint32_t majorVersion, std::uint32_t minorVersion);
99 
103  static bool areVersionsBlobCompatible(Version v1, Version v2);
104 
105  private:
106  static const std::map<std::pair<std::uint32_t, std::uint32_t>, Version> blobVersionToOpenvinoGuessMapping;
107  static const std::map<std::pair<std::uint32_t, std::uint32_t>, std::vector<Version>> blobVersionToOpenvinoMapping;
108 };
109 
110 } // namespace dai
dai::OpenVINO::Blob::version
Version version
OpenVINO version.
Definition: OpenVINO.hpp:38
dai::OpenVINO::Blob
OpenVINO Blob.
Definition: OpenVINO.hpp:23
dai::OpenVINO::Blob::stageCount
uint32_t stageCount
Number of network stages.
Definition: OpenVINO.hpp:44
dai::OpenVINO::Version
Version
OpenVINO Version supported version information.
Definition: OpenVINO.hpp:20
dai::OpenVINO::VERSION_2020_4
@ VERSION_2020_4
Definition: OpenVINO.hpp:20
dai::OpenVINO::DEFAULT_VERSION
constexpr static const Version DEFAULT_VERSION
Main OpenVINO version.
Definition: OpenVINO.hpp:54
dai::OpenVINO::getBlobVersion
static Version getBlobVersion(std::uint32_t majorVersion, std::uint32_t minorVersion)
Definition: OpenVINO.cpp:110
dai::OpenVINO::areVersionsBlobCompatible
static bool areVersionsBlobCompatible(Version v1, Version v2)
Definition: OpenVINO.cpp:124
dai::OpenVINO::Blob::data
std::vector< uint8_t > data
Blob data.
Definition: OpenVINO.hpp:50
dai::OpenVINO::Blob::numShaves
uint32_t numShaves
Number of shaves the blob was compiled for.
Definition: OpenVINO.hpp:46
dai::OpenVINO::Blob::numSlices
uint32_t numSlices
Number of CMX slices the blob was compiled for.
Definition: OpenVINO.hpp:48
dai::OpenVINO::getBlobLatestSupportedVersion
static Version getBlobLatestSupportedVersion(std::uint32_t majorVersion, std::uint32_t minorVersion)
Definition: OpenVINO.cpp:118
dai::OpenVINO::blobVersionToOpenvinoGuessMapping
static const std::map< std::pair< std::uint32_t, std::uint32_t >, Version > blobVersionToOpenvinoGuessMapping
Definition: OpenVINO.hpp:106
dai::OpenVINO::VERSION_2020_3
@ VERSION_2020_3
Definition: OpenVINO.hpp:20
dai::OpenVINO::VERSION_2021_4
@ VERSION_2021_4
Definition: OpenVINO.hpp:20
dai::OpenVINO::VERSION_2022_1
@ VERSION_2022_1
Definition: OpenVINO.hpp:20
Path.hpp
dai::OpenVINO
Support for basic OpenVINO related actions like version identification of neural network blobs,...
Definition: OpenVINO.hpp:17
dai::OpenVINO::VERSION_UNIVERSAL
@ VERSION_UNIVERSAL
Definition: OpenVINO.hpp:20
dai::OpenVINO::VERSION_2021_1
@ VERSION_2021_1
Definition: OpenVINO.hpp:20
dai::OpenVINO::Blob::networkOutputs
std::unordered_map< std::string, TensorInfo > networkOutputs
Map of output names to additional information.
Definition: OpenVINO.hpp:42
dai::OpenVINO::getVersions
static std::vector< Version > getVersions()
Definition: OpenVINO.cpp:57
dai::OpenVINO::getVersionName
static std::string getVersionName(Version version)
Definition: OpenVINO.cpp:67
dai::OpenVINO::getBlobSupportedVersions
static std::vector< Version > getBlobSupportedVersions(std::uint32_t majorVersion, std::uint32_t minorVersion)
Definition: OpenVINO.cpp:99
dai::OpenVINO::Blob::Blob
Blob(std::vector< uint8_t > data)
Construct a new Blob from data in memory.
Definition: OpenVINO.cpp:171
dai::Path
Represents paths on a filesystem; accepts utf-8, Windows utf-16 wchar_t, or std::filesystem::path.
Definition: Path.hpp:27
dai
Definition: CameraExposureOffset.hpp:6
dai::OpenVINO::blobVersionToOpenvinoMapping
static const std::map< std::pair< std::uint32_t, std::uint32_t >, std::vector< Version > > blobVersionToOpenvinoMapping
Definition: OpenVINO.hpp:107
dai::OpenVINO::VERSION_2021_2
@ VERSION_2021_2
Definition: OpenVINO.hpp:20
dai::OpenVINO::Blob::networkInputs
std::unordered_map< std::string, TensorInfo > networkInputs
Map of input names to additional information.
Definition: OpenVINO.hpp:40
TensorInfo.hpp
dai::OpenVINO::VERSION_2021_3
@ VERSION_2021_3
Definition: OpenVINO.hpp:20
dai::OpenVINO::parseVersionName
static Version parseVersionName(const std::string &versionString)
Definition: OpenVINO.cpp:89


depthai
Author(s): Martin Peterlin
autogenerated on Sat Mar 22 2025 02:58:19