1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-29 15:23:05 +04:00

add perf tests for new models

This commit is contained in:
vrooomy
2026-05-28 16:35:58 +05:30
parent 98d75abf2d
commit 9f5028d53c
+76 -13
View File
@@ -640,32 +640,31 @@ PERF_TEST_P_(DNNTestNetwork, Grounding_DINO)
{
applyTestTag(CV_TEST_TAG_MEMORY_2GB, CV_TEST_TAG_VERYLONG);
// Image input
// Image input: [1, 3, 800, 800]
Mat sample = imread(findDataFile("dnn/dog416.png"));
Mat img = blobFromImage(sample, 1.0 / 255.0, Size(800, 800), Scalar(), true);
Mat pixel_values = blobFromImage(sample, 1.0 / 255.0, Size(800, 800), Scalar(), true);
// Text token inputs (dummy tokens for "dog ." as query text, seq_len=7)
const int seq_len = 7;
int64_t input_ids_data[seq_len] = {101, 3899, 1012, 102, 0, 0, 0};
int64_t attention_mask_data[seq_len] = {1, 1, 1, 1, 0, 0, 0};
int64_t token_type_ids_data[seq_len] = {0, 0, 0, 0, 0, 0, 0};
int64_t position_ids_data[seq_len] = {0, 1, 2, 3, 0, 0, 0};
uint8_t text_token_mask_data[seq_len]= {1, 1, 1, 1, 0, 0, 0};
int shp[2] = {1, seq_len};
Mat input_ids(2, shp, CV_64S, input_ids_data);
Mat attention_mask(2, shp, CV_64S, attention_mask_data);
Mat token_type_ids(2, shp, CV_64S, token_type_ids_data);
Mat position_ids(2, shp, CV_64S, position_ids_data);
Mat text_token_mask(2, shp, CV_8U, text_token_mask_data);
processNet("dnn/onnx/models/groundingdino_swint_ogc.onnx", "",
{std::make_tuple(img, "img"),
std::make_tuple(input_ids, "input_ids"),
std::make_tuple(attention_mask, "attention_mask"),
std::make_tuple(token_type_ids, "token_type_ids"),
std::make_tuple(position_ids, "position_ids"),
std::make_tuple(text_token_mask, "text_token_mask")});
// Image attention mask: [1, 800, 800] all ones (valid pixels)
int shp_mask[3] = {1, 800, 800};
Mat pixel_mask(3, shp_mask, CV_64S, Scalar(1));
processNet("dnn/onnx/models/grounding_dino_tiny.onnx", "",
{std::make_tuple(pixel_values, "pixel_values"),
std::make_tuple(input_ids, "input_ids"),
std::make_tuple(token_type_ids,"token_type_ids"),
std::make_tuple(attention_mask,"attention_mask"),
std::make_tuple(pixel_mask, "pixel_mask")});
}
// Model: https://drive.google.com/file/d/1P6a7oS_dV5y09FsCA4XDZK1-WcdZbWFh/view?usp=drive_link
@@ -688,6 +687,70 @@ PERF_TEST_P_(DNNTestNetwork, RT_DETR_L)
processNet("dnn/onnx/models/rtdetr-l.onnx", "", inp);
}
// Model: https://drive.google.com/file/d/1HuR5jeGtgX6TKFlWR5JjwZ7be-JDwz57/view?usp=drive_link
PERF_TEST_P_(DNNTestNetwork, RTMPose_M)
{
applyTestTag(CV_TEST_TAG_MEMORY_512MB, CV_TEST_TAG_VERYLONG);
Mat sample = imread(findDataFile("dnn/dog416.png"));
Mat inp = blobFromImage(sample, 1.0 / 255.0, Size(192, 256), Scalar(), true);
processNet("dnn/onnx/models/rtmpose_m.onnx", "", inp);
}
// Model: https://huggingface.co/tomjackson2023/rembg/resolve/main/u2net.onnx
PERF_TEST_P_(DNNTestNetwork, U2Net)
{
applyTestTag(CV_TEST_TAG_MEMORY_512MB, CV_TEST_TAG_VERYLONG);
Mat sample = imread(findDataFile("dnn/dog416.png"));
Mat inp = blobFromImage(sample, 1.0 / 255.0, Size(320, 320), Scalar(), true);
processNet("dnn/onnx/models/u2net.onnx", "",
{std::make_tuple(inp, "input.1")});
}
// Model: https://huggingface.co/qualcomm/Real-ESRGAN-x4plus/resolve/01179a4da7bf5ac91faca650e6afbf282ac93933/Real-ESRGAN-x4plus.onnx
PERF_TEST_P_(DNNTestNetwork, RealESRGAN_x4plus)
{
applyTestTag(CV_TEST_TAG_MEMORY_512MB, CV_TEST_TAG_VERYLONG);
Mat sample = imread(findDataFile("dnn/dog416.png"));
Mat inp = blobFromImage(sample, 1.0 / 255.0, Size(128, 128), Scalar(), true);
processNet("dnn/onnx/models/realesrgan_x4plus.onnx", "",
{std::make_tuple(inp, "image")});
}
// Model: https://huggingface.co/rocca/swin-ir-onnx/resolve/main/003_realSR_BSRGAN_DFO_s64w8_SwinIR-M_x4_GAN.onnx
PERF_TEST_P_(DNNTestNetwork, SwinIR_x4)
{
applyTestTag(CV_TEST_TAG_MEMORY_512MB, CV_TEST_TAG_VERYLONG);
Mat sample = imread(findDataFile("dnn/dog416.png"));
Mat inp = blobFromImage(sample, 1.0 / 255.0, Size(128, 128), Scalar(), true);
processNet("dnn/onnx/models/swinir_x4_gan.onnx", "", inp);
}
// Model: https://huggingface.co/onnx-community/BiRefNet-ONNX/resolve/main/onnx/model.onnx
PERF_TEST_P_(DNNTestNetwork, BiRefNet)
{
applyTestTag(CV_TEST_TAG_MEMORY_2GB, CV_TEST_TAG_VERYLONG);
Mat sample = imread(findDataFile("dnn/dog416.png"));
Mat inp = blobFromImage(sample, 1.0 / 255.0, Size(1024, 1024), Scalar(), true);
processNet("dnn/onnx/models/birefnet.onnx", "",
{std::make_tuple(inp, "input_image")});
}
// Model: https://huggingface.co/onnx-community/dinov2-small/resolve/main/onnx/model.onnx
PERF_TEST_P_(DNNTestNetwork, DINOv2_Small)
{
applyTestTag(CV_TEST_TAG_MEMORY_512MB, CV_TEST_TAG_VERYLONG);
Mat sample = imread(findDataFile("dnn/dog416.png"));
Mat inp = blobFromImage(sample, 1.0 / 255.0, Size(224, 224), Scalar(), true);
processNet("dnn/onnx/models/dinov2_small.onnx", "",
{std::make_tuple(inp, "pixel_values")});
}
INSTANTIATE_TEST_CASE_P(/*nothing*/, DNNTestNetwork, dnnBackendsAndTargets());
} // namespace