Skip to content

Commit 7cbc2c7

Browse files
committed
Attempt to fix serving_api tests
1 parent b8ee06c commit 7cbc2c7

File tree

4 files changed

+118
-1
lines changed

4 files changed

+118
-1
lines changed

.github/workflows/test_accuracy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
mkdir build && cd build
4343
pip install nanobind==2.4.0
4444
pip install typing_extensions==4.12.2
45-
cmake ../tests/cpp/accuracy/
45+
cmake ../tests/cpp
4646
make -j
4747
- name: Run CPP Test
4848
run: |

src/cpp/install_dependencies.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/bin/bash
2+
3+
# Added required keys / do the update
4+
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
5+
6+
apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
7+
8+
echo "deb https://apt.repos.intel.com/openvino/2025 ubuntu22 main" | sudo tee /etc/apt/sources.list.d/intel-openvino-2025.list
9+
10+
apt update
11+
12+
#Install OpenCV
13+
apt-get install libopencv-dev
14+
15+
# Install OpenVINO
16+
sudo apt install openvino-2025.0.0
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
import argparse
2+
import json
3+
import os
4+
from pathlib import Path
5+
from urllib.request import urlopen, urlretrieve
6+
7+
8+
def retrieve_otx_model(data_dir, model_name, format="xml"):
9+
destination_folder = os.path.join(data_dir, "otx_models")
10+
os.makedirs(destination_folder, exist_ok=True)
11+
if format == "onnx":
12+
urlretrieve(
13+
f"https://storage.openvinotoolkit.org/repositories/model_api/test/otx_models/{model_name}/model.onnx",
14+
f"{destination_folder}/{model_name}.onnx",
15+
)
16+
else:
17+
urlretrieve(
18+
f"https://storage.openvinotoolkit.org/repositories/model_api/test/otx_models/{model_name}/openvino.xml",
19+
f"{destination_folder}/{model_name}.xml",
20+
)
21+
urlretrieve(
22+
f"https://storage.openvinotoolkit.org/repositories/model_api/test/otx_models/{model_name}/openvino.bin",
23+
f"{destination_folder}/{model_name}.bin",
24+
)
25+
26+
27+
def prepare_model(
28+
data_dir="./data",
29+
public_scope=Path(__file__).resolve().parent / "public_scope.json",
30+
):
31+
# TODO refactor this test so that it does not use eval
32+
# flake8: noqa: F401
33+
from model_api.models import ClassificationModel, DetectionModel, SegmentationModel
34+
35+
with open(public_scope, "r") as f:
36+
public_scope = json.load(f)
37+
38+
for model in public_scope:
39+
if model["name"].endswith(".xml") or model["name"].endswith(".onnx"):
40+
continue
41+
model = eval(model["type"]).create_model(model["name"], download_dir=data_dir)
42+
43+
44+
def prepare_data(data_dir="./data"):
45+
from io import BytesIO
46+
from zipfile import ZipFile
47+
48+
COCO128_URL = "https://ultralytics.com/assets/coco128.zip"
49+
50+
with urlopen(COCO128_URL) as zipresp:
51+
with ZipFile(BytesIO(zipresp.read())) as zfile:
52+
zfile.extractall(data_dir)
53+
54+
urlretrieve(
55+
"https://raw.githubusercontent.com/Shenggan/BCCD_Dataset/master/BCCD/JPEGImages/BloodImage_00007.jpg",
56+
os.path.join(data_dir, "BloodImage_00007.jpg"),
57+
)
58+
59+
60+
if __name__ == "__main__":
61+
parser = argparse.ArgumentParser(description="Data and model preparate script")
62+
parser.add_argument(
63+
"-d",
64+
dest="data_dir",
65+
default="./data",
66+
help="Directory to store downloaded models and datasets",
67+
)
68+
parser.add_argument(
69+
"-p",
70+
dest="public_scope",
71+
default=Path(__file__).resolve().parent / "public_scope.json",
72+
help="JSON file with public model description",
73+
)
74+
75+
args = parser.parse_args()
76+
77+
prepare_model(args.data_dir, args.public_scope)
78+
prepare_data(args.data_dir)
79+
retrieve_otx_model(args.data_dir, "mlc_mobilenetv3_large_voc")
80+
retrieve_otx_model(args.data_dir, "detection_model_with_xai_head")
81+
retrieve_otx_model(args.data_dir, "Lite-hrnet-18_mod2")
82+
retrieve_otx_model(args.data_dir, "tinynet_imagenet")
83+
retrieve_otx_model(args.data_dir, "cls_mobilenetv3_large_cars", "onnx")
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
[
2+
{
3+
"name": "otx_models/detection_model_with_xai_head.xml",
4+
"type": "DetectionModel"
5+
},
6+
{
7+
"name": "otx_models/mlc_mobilenetv3_large_voc.xml",
8+
"type": "ClassificationModel"
9+
},
10+
{
11+
"name": "otx_models/Lite-hrnet-18_mod2.xml",
12+
"type": "SegmentationModel"
13+
},
14+
{
15+
"name": "otx_models/tinynet_imagenet.xml",
16+
"type": "ClassificationModel"
17+
}
18+
]

0 commit comments

Comments
 (0)