1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-31 08:13:04 +04:00

2713 Commits

Author SHA1 Message Date
Alexander Smorkalov c9070f9f35 Merge branch 4.x 2026-05-20 17:57:51 +03:00
Kevin Lin 7be1853b0b dnn(onnx): eliminate consecutive Transpose pairs with identity composition
Port of the 4.x patch to 5.x. Registers a new
ConsecutiveTransposePairsSubgraph in onnx_graph_simplifier.cpp's
simplifySubgraphs() so that consecutive Transpose nodes whose composed
permutation is identity are eliminated at the ONNX proto level. This
runs before either engine takes over, so both ENGINE_CLASSIC and
ENGINE_NEW benefit.

Equivalent optimizations exist in tf2onnx (TransposeOptimizer._transpose_handler)
and ONNX Runtime (HandleTransposeImpl, 'Permutations cancel' branch).
2026-05-20 21:32:47 +08:00
Abhishek Gola f85a662563 Merge pull request #28971 from abhishek-gola:subgraph_argname_fix
Fixed subgraph name scoping in new DNN engine #28971

closes: https://github.com/opencv/opencv/issues/23663, https://github.com/opencv/opencv/issues/19977

OpenCV extra: https://github.com/opencv/opencv_extra/pull/1362

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-05-19 12:38:16 +03:00
Alexander Smorkalov a7e02e5742 Removed internal structs from DNN interface to fix Obj-C/Swift bindings. 2026-05-18 12:21:14 +03:00
Abhishek Gola 873a4635c6 Merge pull request #28752 from abhishek-gola:net_profiling
Added net profiling support #28752

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-05-14 14:47:38 +03:00
Abhishek Gola 914c0b2bc8 Merge pull request #28963 from abhishek-gola:custom_layers
Added custom layer support in new DNN engine #28963

Closes: https://github.com/opencv/opencv/issues/26200
Merge with: https://github.com/opencv/opencv_extra/pull/1358

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-05-13 10:31:25 +03:00
Abhishek Gola 72e0bc2bf3 Merge pull request #28957 from abhishek-gola:fusion_block_layout_extension
Extend attention fusion for runtime QK scale and add MatMul to Gemm rewriter #28957

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-05-13 08:32:00 +03:00
omrope79 7b6dc220b1 Merge pull request #28722 from omrope79:fix-dnn-fusion
fixes a bug in ENGINE_NEW of incorrect fusion of conv+relu+batchnorm #28722

### Pull Request Readiness Checklist

OpenCV Extra: https://github.com/opencv/opencv_extra/pull/1325
Closes Issue https://github.com/opencv/opencv/issues/28689

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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-05-12 23:23:31 +03:00
Prasad Ayush Kumar 2ad46b860b Merge pull request #28982 from Prasadayus:fix_unconnected_out_layers
fix getUnconnectedOutLayers() in new engine #28982

Solves https://github.com/opencv/opencv/issues/26491

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-05-12 13:34:01 +03:00
Alexander Smorkalov 594cd4204a Merge pull request #28999 from Teddy-Yangjiale:rvv-sigmoid-opt
dnn: vectorize SigmoidFunctor using universal intrinsics
2026-05-12 11:29:12 +03:00
Varun Jaiswal 3cebf7d61e Merge pull request #28969 from varun-jaiswal17:update_ort_version-1.25.1
update default ONNX Runtime version to 1.25.1 #28969

Bump ONNX Runtime default version to latest version: 1.25.1

Includes the following update:
 https://github.com/microsoft/onnxruntime/pull/27164 : Adds LpNormalization opset-22 kernel support missing in 1.24.2. 

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-05-12 07:29:22 +03:00
Teddy-Yangjiale 4b1c861ab7 dnn: vectorize SigmoidFunctor using universal intrinsics 2026-05-12 02:22:19 +08:00
Abhishek Gola cc2b7659b4 Merge pull request #28966 from abhishek-gola:dequantized_issue_fix
Fixed dequantizelinear slicing bug #28966

closes: https://github.com/opencv/opencv/issues/25999

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-05-08 16:57:24 +03:00
Abhishek Gola 642a7307c4 Merge pull request #27560 from abhishek-gola:convTranspose_layer_add
Added fully functional convTranspose layer to new DNN engine #27560

Closes https://github.com/opencv/opencv/issues/26307

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-05-07 21:20:39 +03:00
Dmitry Kurtaev 92139a6dc4 Enable 1D int8 AvgPool with OpenVINO with 2025.3 2026-05-07 21:14:04 +03:00
Prasad Ayush Kumar e519173241 Merge pull request #28839 from Prasadayus:Block-Layout-Support
Extend several operations to support block layout #28839

Requires opencv_extra: https://github.com/opencv/opencv_extra/pull/1347

After this PR, we observed the following improvements in the listed models:


Model | Before (ENGINE_NEW) | After (ENGINE_NEW) | ENGINE_ORT | % Improvement (Before v/s After)
-- | -- | -- | -- | --
Face_Paint | 514.68ms | 384.40ms | 394.38ms | 25.31%
BlazeFace | 1.03ms | 0.83ms | 0.66ms | 19.42%

**Device details:**
 Model name: Intel(R) Core(TM) i9-14900KS, x86_64, 32 Cores, Ubuntu 22.04.5 LTS

Operations covered:

- [x] Pad
- [x] Resize
- [x] Reshape
- [x] Shape
- [x] InstanceNorm
- [x] GroupNorm

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-05-06 16:20:45 +03:00
Abhishek Gola 2760c0c08a Merge pull request #28931 from abhishek-gola:extended_fusions
Extended graph fusion for transformer models #28931

### Pull Request Readiness Checklist

Performance numbers on Intel(R) Core(TM) i9-14900KS:
```
AlexNet::DNNTestNetwork::OCV/CPU                           7.143   6.871     1.04   
AlexNet::DNNTestNetwork::OCV/OCL                           7.471   7.047     1.06   
AlexNet::DNNTestNetwork::OCV/OCL_FP16                      7.157   6.907     1.04   
BERT::DNNTestNetwork::OCV/CPU                              9.454   9.154     1.03   
BERT::DNNTestNetwork::OCV/OCL                              9.657   9.138     1.06   
BERT::DNNTestNetwork::OCV/OCL_FP16                         9.590   9.271     1.03   
CRNN::DNNTestNetwork::OCV/CPU                             18.194  17.020     1.07   
CRNN::DNNTestNetwork::OCV/OCL                             17.855  17.433     1.02   
CRNN::DNNTestNetwork::OCV/OCL_FP16                        17.629  17.277     1.02   
DenseNet_121::DNNTestNetwork::OCV/CPU                     24.735  23.863     1.04   
DenseNet_121::DNNTestNetwork::OCV/OCL                     24.991  25.140     0.99   
DenseNet_121::DNNTestNetwork::OCV/OCL_FP16                24.598  24.019     1.02   
EAST_text_detection::DNNTestNetwork::OCV/CPU              26.929  27.084     0.99   
EAST_text_detection::DNNTestNetwork::OCV/OCL              26.863  27.531     0.98   
EAST_text_detection::DNNTestNetwork::OCV/OCL_FP16         26.884  27.082     0.99   
EfficientDet::DNNTestNetwork::OCV/CPU                     62.667  62.716     1.00   
EfficientDet_int8::DNNTestNetwork::OCV/CPU                34.446  34.796     0.99   
EfficientNet::DNNTestNetwork::OCV/CPU                     11.875  11.786     1.01   
EfficientNet::DNNTestNetwork::OCV/OCL                     12.434  11.806     1.05   
EfficientNet::DNNTestNetwork::OCV/OCL_FP16                11.886  11.899     1.00   
FastNeuralStyle_eccv16::DNNTestNetwork::OCV/CPU           15.104  14.327     1.05   
FastNeuralStyle_eccv16::DNNTestNetwork::OCV/OCL           15.071  14.670     1.03   
FastNeuralStyle_eccv16::DNNTestNetwork::OCV/OCL_FP16      15.262  14.072     1.08   
GoogLeNet::DNNTestNetwork::OCV/CPU                         5.030   5.031     1.00   
GoogLeNet::DNNTestNetwork::OCV/OCL                         5.075   5.017     1.01   
GoogLeNet::DNNTestNetwork::OCV/OCL_FP16                    5.053   5.055     1.00   
Inception_5h::DNNTestNetwork::OCV/CPU                      6.777   6.430     1.05   
Inception_5h::DNNTestNetwork::OCV/OCL                      7.309   6.683     1.09   
Inception_5h::DNNTestNetwork::OCV/OCL_FP16                 6.624   6.549     1.01   
Inception_v2_Faster_RCNN::DNNTestNetwork::OCV/CPU         86.676  82.918     1.05   
Inception_v2_Faster_RCNN::DNNTestNetwork::OCV/OCL         85.460  84.873     1.01   
Inception_v2_SSD_TensorFlow::DNNTestNetwork::OCV/CPU      16.007  15.723     1.02   
Inception_v2_SSD_TensorFlow::DNNTestNetwork::OCV/OCL      15.974  16.015     1.00   
Inception_v2_SSD_TensorFlow::DNNTestNetwork::OCV/OCL_FP16 16.219  15.593     1.04   
MPHand::DNNTestNetwork::OCV/CPU                            3.273   3.313     0.99   
MPHand::DNNTestNetwork::OCV/OCL                            3.466   3.318     1.04   
MPHand::DNNTestNetwork::OCV/OCL_FP16                       3.314   3.258     1.02   
MPPalm::DNNTestNetwork::OCV/CPU                            2.839   1.973     1.44   
MPPalm::DNNTestNetwork::OCV/OCL                            2.773   2.132     1.30   
MPPalm::DNNTestNetwork::OCV/OCL_FP16                       2.783   2.133     1.30   
MPPose::DNNTestNetwork::OCV/CPU                            7.644   8.711     0.88   
MPPose::DNNTestNetwork::OCV/OCL                            7.555   7.210     1.05   
MPPose::DNNTestNetwork::OCV/OCL_FP16                       7.564   7.559     1.00   
MobileNet_SSD_Caffe::DNNTestNetwork::OCV/CPU               9.040   8.813     1.03   
MobileNet_SSD_Caffe::DNNTestNetwork::OCV/OCL               8.692   9.481     0.92   
MobileNet_SSD_Caffe::DNNTestNetwork::OCV/OCL_FP16          8.792   8.884     0.99   
MobileNet_SSD_v1_TensorFlow::DNNTestNetwork::OCV/CPU       7.893   7.735     1.02   
MobileNet_SSD_v1_TensorFlow::DNNTestNetwork::OCV/OCL       8.233   7.816     1.05   
MobileNet_SSD_v1_TensorFlow::DNNTestNetwork::OCV/OCL_FP16  7.949   7.817     1.02   
MobileNet_SSD_v2_TensorFlow::DNNTestNetwork::OCV/CPU      14.373  15.282     0.94   
MobileNet_SSD_v2_TensorFlow::DNNTestNetwork::OCV/OCL      14.218  15.788     0.90   
MobileNet_SSD_v2_TensorFlow::DNNTestNetwork::OCV/OCL_FP16 14.473  14.853     0.97   
MobileNetv2_ONNX::DNNTestNetwork::OCV/CPU                  1.507   1.440     1.05   
MobileNetv2_ONNX::DNNTestNetwork::OCV/OCL                  1.529   1.394     1.10   
MobileNetv2_ONNX::DNNTestNetwork::OCV/OCL_FP16             1.448   1.433     1.01   
PPHumanSeg::DNNTestNetwork::OCV/CPU                        2.302   1.919     1.20   
PPHumanSeg::DNNTestNetwork::OCV/OCL                        2.097   1.865     1.12   
PPHumanSeg::DNNTestNetwork::OCV/OCL_FP16                   2.129   1.908     1.12   
PPOCRv3::DNNTestNetwork::OCV/CPU                          20.612  20.858     0.99   
PPOCRv3::DNNTestNetwork::OCV/OCL                          21.672  21.444     1.01   
PPOCRv3::DNNTestNetwork::OCV/OCL_FP16                     22.660  20.857     1.09   
ResNet50_QDQ_ONNX::DNNTestNetwork::OCV/CPU                 6.443   6.718     0.96   
ResNet50_QDQ_ONNX::DNNTestNetwork::OCV/OCL                 6.842   6.823     1.00   
ResNet50_QDQ_ONNX::DNNTestNetwork::OCV/OCL_FP16            6.895   6.579     1.05   
ResNet_50_v1_ONNX::DNNTestNetwork::OCV/CPU                 7.669   7.629     1.01   
ResNet_50_v1_ONNX::DNNTestNetwork::OCV/OCL                 7.514   7.473     1.01   
ResNet_50_v1_ONNX::DNNTestNetwork::OCV/OCL_FP16            7.598   7.513     1.01   
SFace::DNNTestNetwork::OCV/CPU                             3.427   3.334     1.03   
SFace::DNNTestNetwork::OCV/OCL                             3.420   3.337     1.02   
SFace::DNNTestNetwork::OCV/OCL_FP16                        3.497   3.375     1.04   
SSD::DNNTestNetwork::OCV/CPU                              83.165  83.476     1.00   
SSD::DNNTestNetwork::OCV/OCL                              83.531  84.121     0.99   
SSD::DNNTestNetwork::OCV/OCL_FP16                         82.447  83.234     0.99   
SqueezeNet_v1_1::DNNTestNetwork::OCV/CPU                   1.334   1.308     1.02   
SqueezeNet_v1_1::DNNTestNetwork::OCV/OCL                   1.279   1.313     0.97   
SqueezeNet_v1_1::DNNTestNetwork::OCV/OCL_FP16              1.429   1.290     1.11   
VIT_Base_Patch16_224::DNNTestNetwork::OCV/CPU             71.211  75.013     0.95   
VIT_Base_Patch16_224::DNNTestNetwork::OCV/OCL             71.988  71.218     1.01   
VIT_Base_Patch16_224::DNNTestNetwork::OCV/OCL_FP16        73.700  82.285     0.90   
VitTrack::DNNTestNetwork::OCV/CPU                          4.096   2.091     1.96   
VitTrack::DNNTestNetwork::OCV/OCL                          3.830   2.056     1.86   
VitTrack::DNNTestNetwork::OCV/OCL_FP16                     3.796   2.110     1.80   
YOLOX::DNNTestNetwork::OCV/CPU                            24.346  23.079     1.05   
YOLOX::DNNTestNetwork::OCV/OCL                            24.442  23.459     1.04   
YOLOX::DNNTestNetwork::OCV/OCL_FP16                       23.947  23.327     1.03   
YOLOv3::DNNTestNetwork::OCV/CPU                           59.140  59.140     1.00   
YOLOv3::DNNTestNetwork::OCV/OCL                           46.725  45.292     1.03   
YOLOv3::DNNTestNetwork::OCV/OCL_FP16                      46.939  45.382     1.03   
YOLOv4::DNNTestNetwork::OCV/CPU                           70.062  68.145     1.03   
YOLOv4::DNNTestNetwork::OCV/OCL                           219.570 214.823    1.02   
YOLOv4::DNNTestNetwork::OCV/OCL_FP16                      219.276 213.472    1.03   
YOLOv4_tiny::DNNTestNetwork::OCV/CPU                       8.362   8.221     1.02   
YOLOv4_tiny::DNNTestNetwork::OCV/OCL                       8.373   8.095     1.03   
YOLOv4_tiny::DNNTestNetwork::OCV/OCL_FP16                  8.830   8.088     1.09   
YOLOv5::DNNTestNetwork::OCV/CPU                            9.237   8.484     1.09   
YOLOv5::DNNTestNetwork::OCV/OCL                            8.776   8.537     1.03   
YOLOv5::DNNTestNetwork::OCV/OCL_FP16                       8.747   8.536     1.02   
YOLOv8::DNNTestNetwork::OCV/CPU                           11.019  11.463     0.96   
YOLOv8::DNNTestNetwork::OCV/OCL                           11.204  10.766     1.04   
YOLOv8::DNNTestNetwork::OCV/OCL_FP16                      11.355  10.764     1.05   
YuNet::DNNTestNetwork::OCV/CPU                             3.371   3.466     0.97   
YuNet::DNNTestNetwork::OCV/OCL                             3.396   3.105     1.09   
YuNet::DNNTestNetwork::OCV/OCL_FP16                        3.150   3.130     1.01   
```

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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-05-06 11:54:40 +03:00
Kumataro 28b1f54468 core,objdetects,dnn,features2d: fix build warnings with GCC 16 2026-05-02 10:41:24 +09:00
Prasad Ayush Kumar 5af1571073 Darknet cleanup 2026-04-30 14:43:11 +05:30
vrooomy d2c2a82cc9 add gemma2 SentencePiece tokenizer support 2026-04-29 18:21:53 +05:30
Abhishek Gola ae1f3a991c Merge pull request #28859 from abhishek-gola:fuse_attention
Added Attention fusion and thin gemm support #28859

Merge with: https://github.com/opencv/opencv_extra/pull/1350

Performance numbers after these optimizations:

For Device:  Intel(R) Core(TM) i9-14900KS, x86, 32 Cores, ubuntu 24.04,
| Model | `ENGINE_NEW (Before)` | `ENGINE_NEW (After)` | `ENGINE_ORT` |
| :--- | :--- | :--- | :--- | 
| **BERT** |26.3 ms| 9.15 ms| 9.13 ms|
| **ViT** | 79.65 ms| 63.23 ms| 32.3 ms|

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-04-29 11:43:33 +03:00
Varun Jaiswal faf34f95af Merge pull request #28837 from varun-jaiswal17:gemma3-tokenizer
Add Gemma3 tokenizer support for dnn #28837

- Adds Gemma3 tokenizer support
- Implements character-level BPE
- Adds 6 tests covering English, phrase, mixed case, numbers, special tokens, and encode/decode
- add gemma3_inference.py

Merge with: 
- **Companion PR**  : https://github.com/opencv/opencv_extra/pull/1346
- forward pass bug in gemma3_inference.py : https://github.com/opencv/opencv/pull/28836

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-04-29 10:00:27 +03:00
Abhishek Gola c83b86eb57 Merge pull request #28811 from abhishek-gola:qlinear_support
Added QLinear layer support #28811

closes: https://github.com/opencv/opencv/issues/26310

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-04-28 17:38:29 +03:00
Alexander Smorkalov a17db08c21 Merge pull request #28888 from omrope79:ssd-lpnorm-fix
Add LpNormalization Layer support
2026-04-27 18:34:21 +03:00
omrope79 237be03b7e Merge pull request #28855 from omrope79:wechat-fix-layers
Add Prior Box Layer to support the WeChat QR model #28855

OpenCV extra: https://github.com/opencv/opencv_extra/pull/1349

### Pull Request Readiness Checklist

This PR is part 1 of the split from the original PR: WeChatQR-fix conversion Caffe to ONNX #28746.
It focuses on adding the PriorBox layer and its related unit tests. The WeChatQR specific changes will be submitted in a separate PR.
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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-04-27 18:12:58 +03:00
Om Navin Rope 457120bb94 Add LpNormalization Layer support 2026-04-27 15:56:26 +05:30
Alexander Smorkalov 7afa28bd1f Merge pull request #28863 from SheliaJimenez:dnn-bug-fix
add CV_64S type support to modules/dnn/src/layers/gatherND.cpp
2026-04-25 11:33:59 +03:00
Alexander Smorkalov 323ea1782d Merge pull request #28860 from asmorkalov:as/no_optional
Get rid of redundant C++ optional.
2026-04-23 10:14:51 +03:00
Alexander Smorkalov aab70b9a63 Merge pull request #28857 from asmorkalov:as/dnn_fast_math
Use fast math for dnn module.
2026-04-23 10:13:25 +03:00
SheliaJimenez 50ba8fdbdb add CV_64S type support to modules/dnn/src/layers/gatherND.cpp 2026-04-23 09:08:17 +08:00
Alexander Smorkalov fa0954db82 Get rid of redundant C++ optional. 2026-04-22 17:00:44 +03:00
Abhishek Gola d95badefa4 Merge pull request #28821 from abhishek-gola:optimized_layers
Parallelize DNN layers using chunking #28821

At a high level, I replaced tensor-level parallelism with chunk-level parallelism. Previously, parallel_for_ was dispatched over the number of input or output tensors i.e. one thread handled one whole tensor's copy.

The new approach precomputes each tensor's destination offset and per-slice size upfront, then slices the total byte work into fixed 64 KB chunks. The full chunk count is handed to parallel_for_ as a single flat range, and each worker decodes its chunk index back into (tensor, slice, byte_offset) using a prefix-sum table before running a plain memcpy on its piece. A small-size threshold falls back to the sequential path so we don't get threading overhead on small tensors.

Performance numbers after these optimizations:

For Device:  Intel(R) Core(TM) i9-14900KS, x86, 32 Cores, ubuntu 24.04,
| Model | `ENGINE_NEW` | `ENGINE_ORT` |
| :--- | :--- | :--- | 
| **YOLOv8n** |10.9 ms| 12.15 ms|
| **YOLOv5n** | 8.36 ms| 9.23 ms|
| **YOLOX-S** | 23.46 ms| 25.16 ms|

For Device: Macbook M1 Air
| Model | `ENGINE_NEW` | `ENGINE_ORT` |
| :--- | :--- | :--- | 
| **YOLOv8n** |34.45 ms| 42.52 ms|
| **YOLOv5n** | 31.62 ms| 25.52 ms|
| **YOLOX-S** | 88.9 ms| 116.7 ms|

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-04-22 14:53:12 +03:00
Alexander Smorkalov 7fcfafff8b Use fast math for dnn module. 2026-04-22 13:05:39 +03:00
Varun Jaiswal 562628eb71 Merge pull request #28836 from varun-jaiswal17:fix-dnn-nan-bugs
Fix dnn NaN bugs in GELU SIMD and softmax for large inputs #28836

### Bug Description

- **GELU SIMD bug:** `exp(2*inner)` overflows to `inf` for large inputs (e.g. `x=10.6` → `inner≈51`), causing `inf/inf = NaN`; fixed by clamping `inner` to [-9, 9] as `tanh` already saturates to ±1.0 beyond this range.
- **Softmax bug:** All `-inf` inputs (masked attention rows) produce `sum=0`, then `1/0 = inf` and `0*inf = NaN`; 
fixed by outputting zeros when `sum == 0`.
- Add regression tests for both fixes

Depends on : https://github.com/opencv/opencv/pull/28837

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-04-22 10:00:51 +03:00
Alexander Smorkalov 5e315bcc97 Merge pull request #28799 from Prasadayus:Perf_Tests_Modification
Add more models in perf tests
2026-04-21 14:01:17 +03:00
vrooomy 3215d7e6ea fix Flatten axis=rank bug 2026-04-16 18:09:36 +05:30
Varun Jaiswal 8dfc236476 Merge pull request #28812 from varun-jaiswal17:fix-flatten-onnx-axis
Fix flatten onnx axis==rank case #28812

fix ONNX Flatten layer incorrect output when axis equals input rank edge case

Resolves : https://github.com/opencv/opencv/pull/28781#discussion_r3060088247
OpenCV Extra: https://github.com/opencv/opencv_extra/pull/1342

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-04-16 14:04:26 +03:00
Alexander Smorkalov 6751304b35 Merge pull request #28808 from abhishek-gola:engine_issue_fixed
Fixed forcing of ENGINE_AUTO to ORT when built with ONNX Runtime
2026-04-15 11:36:29 +03:00
Varun Jaiswal c0ab6b69a8 Merge pull request #28781 from varun-jaiswal17:work-next
Add Qwen2.5 tokenizer support for dnn #28781

OpenCV extra: https://github.com/opencv/opencv_extra/pull/1334

Extended the dnn tokenizer support to qwen2.5 tokenization.

-  Add QWEN2_5 pre-tokenizer regex pattern to utils.hpp
- Generalised buildTokenizerGPT to buildTokenizerFromJson to handle gpt2/gpt4/ and qwen2.5
- Add qwen2/qwen2.5 model type support with special token handling
- Add Qwen2.5 tests
- Add end-to-end qwen_inference script for Qwen2.5 ONNX model


### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-04-15 08:42:49 +03:00
Abhishek Gola b883454620 fixed forced ORT engine 2026-04-14 14:24:40 +05:30
Alexander Smorkalov 66e994d839 Merge pull request #28807 from abhishek-gola:eyelike_layer_add
Added EyeLike layer support
2026-04-14 11:20:53 +03:00
Alexander Smorkalov a9e04ff9f1 Merge pull request #28800 from asmorkalov:as/clamp_c++17
More clamp fixes for old compilers.
2026-04-14 09:45:34 +03:00
Abhishek Gola c44d03d8e1 added eyelike layer support 2026-04-14 11:49:12 +05:30
Abhishek Gola de851d24a5 Merge pull request #28121 from abhishek-gola:loop_layer_add
Add Loop layer to new DNN engine #28121

Addition of loop layer in 5.x for issue: https://github.com/opencv/opencv/issues/26179 and https://github.com/opencv/opencv/issues/26141 and https://github.com/opencv/opencv/issues/25200

OpenCV Extra: https://github.com/opencv/opencv_extra/pull/1335

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-04-14 09:15:46 +03:00
Abhishek Gola 3d77645a3a Merge pull request #28750 from abhishek-gola:activation_fusion
Extended fusion for activation functions in new DNN engine #28750

After this fusion, we see following improvements in YOLO models:

| Model | Before (`ENGINE_NEW`) | After (`ENGINE_NEW`) | `ENGINE_ORT` | % Improvement (Before v/s After) |
| :--- | :--- | :--- | :--- | :--- |
| **YOLOv8n** | 18.89  ms| 12.06 ms| 12.15 ms| 36.16% |
| **YOLOv5n** | 17.12  ms| 9.29 ms| 9.23 ms| 45.73% |
| **YOLOX-S** | 38.78  ms| 25.56 ms| 25.16 ms| 34.09% |

Device details: 
      - Model name: Intel(R) Core(TM) i9-14900KS, x86, 32 Cores, ubuntu 24.04,
### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-04-14 09:08:14 +03:00
Alexander Smorkalov 29746e2cd0 More clamp fixes for old compilers. 2026-04-13 09:45:43 +03:00
Abhishek Gola 53d9a67cf3 Merge pull request #28741 from abhishek-gola:int8_block_layout
Int8 block layout support #28741

After this patch we got the following speed ups on **resnet50-qdq.onnx** model.

- Inference time now: **_~6.6ms_** (inference time using onnxruntime is ~5.7ms).
- Inference time before: _**~11.5ms**_ [after QDQ PR #28595]
- Speed up: _**~42.6% or 1.74x**_
- Device details:
- Model name: Intel(R) Core(TM) i9-14900KS, x86, 32 Cores, ubuntu 24.04, 

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-04-12 19:40:03 +03:00
Alexander Smorkalov 1a6f669763 Merge branch 4.x 2026-04-09 18:44:48 +03:00
Abhishek Gola 2ec6a6bb65 Merge pull request #28588 from abhishek-gola:ORT_GPU_wrapper
Added OnnxRuntime GPU wrapper #28588

### 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2026-04-06 15:40:58 +03:00
Prasad Ayush Kumar 3d988eb7a9 Add more models in perf tests 2026-04-06 15:18:18 +05:30