実現したいこと
Visual Studio2017の環境でOpenVINOの開発環境の作り方が分からず困っています。
コマンド実行するのではなく、Visual Studio上で実行できるようにしたいです。
発生している問題・分からないこと
#環境
- 開発言語:C++
- 開発環境:Visual Studio2017
- OpenVINOのバージョン:2024.4.0
- その他外部ライブラリ:OpenCV
該当のソースコード
C++
1#コード 2コードは実物はお見せできないので、ChatGPTで簡易的に作成したものです。 3```c++ 4#include <openvino/openvino.hpp> 5#include <iostream> 6 7// モデルを読み込む関数 8ov::CompiledModel load_model(const std::string& model_path, ov::Core& core) { 9 try { 10 // .xmlファイルからIRモデルを読み込む 11 ov::Model model = core.read_model(model_path); 12 // コンパイル済みモデルを取得 13 ov::CompiledModel compiled_model = core.compile_model(model, "CPU"); 14 std::cout << "Model loaded successfully." << std::endl; 15 return compiled_model; 16 } 17 catch (const std::exception& e) { 18 std::cerr << "Error loading model: " << e.what() << std::endl; 19 throw; 20 } 21} 22 23// モデルを評価する関数 24void evaluate_model(ov::CompiledModel& compiled_model, const std::vector<float>& input_data) { 25 try { 26 // 入力データの形状を取得 27 ov::InferRequest infer_request = compiled_model.create_infer_request(); 28 auto input_tensor = infer_request.get_input_tensor(); 29 30 // データを入力テンソルにコピー 31 std::memcpy(input_tensor.data<float>(), input_data.data(), input_data.size() * sizeof(float)); 32 33 // 推論を実行 34 infer_request.infer(); 35 36 // 出力テンソルを取得 37 auto output_tensor = infer_request.get_output_tensor(); 38 auto output_data = output_tensor.data<float>(); 39 40 // 結果を表示 41 std::cout << "Model output: " << output_data[0] << std::endl; 42 } 43 catch (const std::exception& e) { 44 std::cerr << "Error during inference: " << e.what() << std::endl; 45 throw; 46 } 47} 48 49// メモリを解放する関数 50void release_resources(ov::Core& core) { 51 // OpenVINOはスマートポインタでメモリを管理しているため、明示的な解放は不要ですが、 52 // 念のために関連リソースを破棄して終了をサポートします。 53 try { 54 core = ov::Core(); // リソース解放を意図して新しいCoreを生成 55 std::cout << "Resources released successfully." << std::endl; 56 } 57 catch (const std::exception& e) { 58 std::cerr << "Error releasing resources: " << e.what() << std::endl; 59 throw; 60 } 61} 62 63int main() { 64 try { 65 // OpenVINO Coreオブジェクトを作成(ここでエラーが出ている) 66 ov::Core core; 67 68 // モデルのパス 69 std::string model_path = "path_to_model.xml"; 70 71 // モデルを読み込む 72 ov::CompiledModel compiled_model = load_model(model_path, core); 73 74 // ダミーの入力データ 75 std::vector<float> input_data(100, 1.0f); // 必要に応じてサイズや値を調整 76 77 // モデルを評価 78 evaluate_model(compiled_model, input_data); 79 80 // リソースを解放 81 release_resources(core); 82 } 83 catch (const std::exception& e) { 84 std::cerr << "An error occurred: " << e.what() << std::endl; 85 return -1; 86 } 87 88 return 0; 89}
### 試したこと・調べたこと - [x] teratailやGoogle等で検索した - [x] ソースコードを自分なりに変更した - [ ] 知人に聞いた - [ ] その他 ##### 上記の詳細・結果 #やったこと - システム環境変数の設定:Path→~\runtime\bin\intel64\Release - Visual Studioの構成プロパティの設定: VC++ ディレクトリ内のインクルードディレクトリ→~\runtime\include VC++ ディレクトリ内のライブラリディレクトリ→~\runtime\lib\intel64\Release リンカー内の入力→openvino.lib, oepnvino_c.lib, openvino_onnx_frontend.lib #実行状態 openvino.hppの読み込みはできています。 問題は実行中のov::Core* core = new ov::Core(); でCoreインスタンスを作ろうとすると「bad allocation」とエラーが出ます。 #考察 Coreインスタンスを作成するときのエラーはメモリの不足ではないと思っています。 #include <openvino/openvino.hpp>でエラーは出ていないですが、正しく読み込めれていないことが原因だと思い、Visual Studioの設定などの問題ではないかと思っています。 また、ハードウェアはOpenVINO2024に該当のものを使用しています。 ### 補足 特になし

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。