1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-30 07:43:03 +04:00

Merge pull request #28744 from asmorkalov:as/kleidicv_26.03

KleidiCV update to verison 26.03 #28744

KleidiCV release: https://gitlab.arm.com/kleidi/kleidicv/-/releases/26.03

Tuned DNN test threshold as resize linear produces slightly different result with the new KleidiCV version.

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [ ] The PR is proposed to the proper branch
- [ ] There is a reference to the original bug report and related work
- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [ ] The feature is well documented and sample code can be built with the project CMake
This commit is contained in:
Alexander Smorkalov
2026-05-20 22:31:13 +03:00
committed by GitHub
parent 0abd5c86f7
commit f2ecf968b8
10 changed files with 24 additions and 38 deletions
+7 -9
View File
@@ -971,7 +971,7 @@ TEST_P(Test_Int8_nets, MobileNet_v1_SSD)
Mat blob = blobFromImage(inp, 1.0, Size(300, 300), Scalar(), true, false);
Mat ref = blobFromNPY(_tf("tensorflow/ssd_mobilenet_v1_coco_2017_11_17.detection_out.npy"));
float confThreshold = 0.5, scoreDiff = 0.034, iouDiff = 0.13;
float confThreshold = 0.5, scoreDiff = 0.034, iouDiff = 0.14;
testDetectionNet(net, blob, ref, confThreshold, scoreDiff, iouDiff);
}
@@ -989,7 +989,7 @@ TEST_P(Test_Int8_nets, MobileNet_v1_SSD_PPN)
Mat blob = blobFromImage(inp, 1.0, Size(300, 300), Scalar(), true, false);
Mat ref = blobFromNPY(_tf("tensorflow/ssd_mobilenet_v1_ppn_coco.detection_out.npy"));
float confThreshold = 0.51, scoreDiff = 0.05, iouDiff = 0.06;
float confThreshold = 0.51, scoreDiff = 0.05, iouDiff = 0.07;
testDetectionNet(net, blob, ref, confThreshold, scoreDiff, iouDiff);
}
@@ -1279,7 +1279,7 @@ TEST_P(Test_Int8_nets, TinyYoloVoc)
std::string config_file = "tiny-yolo-voc.cfg";
std::string weights_file = "tiny-yolo-voc.weights";
double scoreDiff = 0.043, iouDiff = 0.12;
double scoreDiff = 0.043, iouDiff = 0.165;
{
SCOPED_TRACE("batch size 1");
testDarknetModel(config_file, weights_file, ref.rowRange(0, 2), scoreDiff, iouDiff);
@@ -1332,7 +1332,7 @@ TEST_P(Test_Int8_nets, YOLOv3)
std::string config_file = "yolov3.cfg";
std::string weights_file = "yolov3.weights";
double scoreDiff = 0.08, iouDiff = 0.21, confThreshold = 0.25;
double scoreDiff = 0.08, iouDiff = 0.21, confThreshold = 0.28;
{
SCOPED_TRACE("batch size 1");
testDarknetModel(config_file, weights_file, ref.rowRange(0, N0), scoreDiff, iouDiff, confThreshold);
@@ -1358,7 +1358,7 @@ TEST_P(Test_Int8_nets, YOLOv4)
applyTestTag(CV_TEST_TAG_DNN_SKIP_OPENCL);
const int N0 = 3;
const int N1 = 7;
const int N1 = 5;
static const float ref_[/* (N0 + N1) * 7 */] = {
0, 16, 0.992194f, 0.172375f, 0.402458f, 0.403918f, 0.932801f,
0, 1, 0.988326f, 0.166708f, 0.228236f, 0.737208f, 0.735803f,
@@ -1369,8 +1369,6 @@ TEST_P(Test_Int8_nets, YOLOv4)
1, 2, 0.98233f, 0.452007f, 0.462217f, 0.495612f, 0.521687f,
1, 9, 0.919195f, 0.374642f, 0.316524f, 0.398126f, 0.393714f,
1, 9, 0.856303f, 0.666842f, 0.372215f, 0.685539f, 0.44141f,
1, 9, 0.313516f, 0.656791f, 0.374734f, 0.671959f, 0.438371f,
1, 9, 0.256625f, 0.940232f, 0.326931f, 0.967586f, 0.374002f,
};
Mat ref(N0 + N1, 7, CV_32FC1, (void*)ref_);
@@ -1379,13 +1377,13 @@ TEST_P(Test_Int8_nets, YOLOv4)
double scoreDiff = 0.15, iouDiff = 0.2;
{
SCOPED_TRACE("batch size 1");
testDarknetModel(config_file, weights_file, ref.rowRange(0, N0), scoreDiff, iouDiff);
testDarknetModel(config_file, weights_file, ref.rowRange(0, N0), scoreDiff, iouDiff, 0.5);
}
{
SCOPED_TRACE("batch size 2");
testDarknetModel(config_file, weights_file, ref, scoreDiff, iouDiff);
testDarknetModel(config_file, weights_file, ref, scoreDiff, iouDiff, 0.5);
}
}