Alexander Alekhin
efc9837df1
Merge pull request #24892 from opencv-pushbot:gitee/alalek/dnn_avoid_16s_usage
...
DNN: avoid CV_16S usage for FP16 #24892
**Merge after**: #24918
TODO:
- [x] measure performance changes
- [x] optimize convertTo for OpenCL: #24918
12700K iGPU:
|Name of Test|0|1|1 vs 0 (x-factor)|
|---|:-:|:-:|:-:|
|AlexNet::DNNTestNetwork::OCV/OCL_FP16|7.441|7.480|0.99|
|CRNN::DNNTestNetwork::OCV/OCL_FP16|10.776|10.736|1.00|
|DenseNet_121::DNNTestNetwork::OCV/OCL_FP16|52.762|52.833|1.00|
|EAST_text_detection::DNNTestNetwork::OCV/OCL_FP16|60.694|60.721|1.00|
|EfficientNet::DNNTestNetwork::OCV/OCL_FP16|33.373|33.173|1.01|
|FastNeuralStyle_eccv16::DNNTestNetwork::OCV/OCL_FP16|81.840|81.724|1.00|
|GoogLeNet::DNNTestNetwork::OCV/OCL_FP16|20.965|20.927|1.00|
|Inception_5h::DNNTestNetwork::OCV/OCL_FP16|22.204|22.173|1.00|
|Inception_v2_SSD_TensorFlow::DNNTestNetwork::OCV/OCL_FP16|47.115|47.460|0.99|
|MPHand::DNNTestNetwork::OCV/OCL_FP16|6.760|6.670|1.01|
|MPPalm::DNNTestNetwork::OCV/OCL_FP16|10.188|10.171|1.00|
|MPPose::DNNTestNetwork::OCV/OCL_FP16|12.510|12.561|1.00|
|MobileNet_SSD_Caffe::DNNTestNetwork::OCV/OCL_FP16|17.290|17.072|1.01|
|MobileNet_SSD_v1_TensorFlow::DNNTestNetwork::OCV/OCL_FP16|19.473|19.306|1.01|
|MobileNet_SSD_v2_TensorFlow::DNNTestNetwork::OCV/OCL_FP16|22.874|23.404|0.98|
|OpenFace::DNNTestNetwork::OCV/OCL_FP16|9.568|9.517|1.01|
|OpenPose_pose_mpi_faster_4_stages::DNNTestNetwork::OCV/OCL_FP16|539.899|539.845|1.00|
|PPHumanSeg::DNNTestNetwork::OCV/OCL_FP16|18.015|18.769|0.96|
|PPOCRv3::DNNTestNetwork::OCV/OCL_FP16|63.122|63.540|0.99|
|ResNet_50::DNNTestNetwork::OCV/OCL_FP16|34.947|34.925|1.00|
|SFace::DNNTestNetwork::OCV/OCL_FP16|10.249|10.206|1.00|
|SSD::DNNTestNetwork::OCV/OCL_FP16|213.068|213.108|1.00|
|SqueezeNet_v1_1::DNNTestNetwork::OCV/OCL_FP16|4.867|4.878|1.00|
|VIT_B_32::DNNTestNetwork::OCV/OCL_FP16|200.563|190.788|1.05|
|VitTrack::DNNTestNetwork::OCV/OCL_FP16|7.528|7.173|1.05|
|YOLOX::DNNTestNetwork::OCV/OCL_FP16|132.858|132.701|1.00|
|YOLOv3::DNNTestNetwork::OCV/OCL_FP16|209.559|208.809|1.00|
|YOLOv4::DNNTestNetwork::OCV/OCL_FP16|221.357|220.924|1.00|
|YOLOv4_tiny::DNNTestNetwork::OCV/OCL_FP16|24.446|24.382|1.00|
|YOLOv5::DNNTestNetwork::OCV/OCL_FP16|43.922|44.080|1.00|
|YOLOv8::DNNTestNetwork::OCV/OCL_FP16|64.159|63.842|1.00|
|YuNet::DNNTestNetwork::OCV/OCL_FP16|10.177|10.231|0.99|
|opencv_face_detector::DNNTestNetwork::OCV/OCL_FP16|15.121|15.445|0.98|
Co-authored-by: Alexander Alekhin <alexander.a.alekhin@gmail.com>
2024-01-26 16:34:17 +03:00
Wanli
6ae1709c6a
Merge pull request #24613 from WanliZhong:softmax_default_axis
...
Make default axis of softmax in onnx "-1" without opset option #24613
Try to solve problem: https://github.com/opencv/opencv/pull/24476#discussion_r1404821158
**ONNX**
`opset <= 11` use 1
`else` use -1
**TensorFlow**
`TF version = 2.x` use -1
`else` use 1
**Darknet, Caffe, Torch**
use 1 by definition
2023-12-15 10:41:42 +03:00
Alexander Lyulkov
72e7672a6c
Fixed segfault when reading Caffe model
2023-09-25 12:55:11 +07:00
Wang Kai
fc2d933224
removing unreachable code and fixing a typo
2023-06-15 01:09:02 +08:00
Dmitry Kurtaev
a8d3d1f6f9
Merge pull request #23604 from dkurt:dnn_no_protobuf
...
Build DNN without Protobuf
DNN module can be built without Protobuf for Darknet, TFLite, OpenVINO, Torch (not PyTorch) models.
```
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_LIST=dnn \
-DWITH_PROTOBUF=OFF \
-DWITH_OPENCL=OFF
7.1M lib/libopencv_dnn.so.4.7.0
```
```
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_LIST=dnn \
-DWITH_OPENCL=OFF
3.9M lib/libopencv_dnn.so.4.7.0
```
### 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
2023-05-15 12:23:18 +03:00
Alexander Alekhin
d573472a86
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2022-01-31 12:53:45 +00:00
Alexander Alekhin
70b0274c8e
dnn: apply hint to ignore denormals processing
2022-01-26 11:28:35 +00:00
Alexander Alekhin
7842181b47
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2021-11-05 09:27:46 +00:00
Alexander Alekhin
d484939c02
Merge pull request #20999 from alalek:dnn_replace_deprecated_calls
...
dnn(protobuf): replace deprecated calls
* dnn: replace deprecated ByteSize() => ByteSizeLong()
* dnn: replace deprecated calls, use GetRepeatedFieldRef
2021-11-03 15:59:36 +00:00
Alexander Alekhin
4c05a697fa
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2021-08-28 21:30:28 +00:00
Vincent Rabaud
38d0063c36
Do not use deprecated ReleaseCleared in protobuf library.
...
This is to make code work with protobuf arenas for memory
management (ReleaseCleared is incompatible).
The cleaning of the memory is also simpler.
2021-08-26 15:36:22 +02:00
Alexander Alekhin
6fbfc58602
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2021-08-21 17:25:18 +00:00
Vincent Rabaud
9cfa84313c
Use the one argument version of SetTotalBytesLimit.
...
The two argument versions has been deprecated, cf
https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.io.coded_stream
2021-08-19 14:31:29 +02:00
Alexander Alekhin
de385009ae
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2020-12-09 18:09:00 +00:00
Alexander Alekhin
d7e936de5c
dnn(caffe): add DetectionOutputParameter.clip to .proto file
...
- allow to load opencv_face_detector with external unpatched protobuf
2020-12-09 05:21:07 +00:00
Alexander Alekhin
21e28adb87
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2020-05-22 19:50:14 +00:00
Liubov Batanina
d991c22090
Merge pull request #16575 from l-bat:flownet2
...
Support FlowNet2 model
* Support DataAugmentation layer
* Fix warnings
* Fix comments
* Support Correlation layer
* TEST
* Support Correlation layer
* Supported Accum and FlowWarp layers
* Supported ChannelNorm layer
* Supported Resample with inputs.size() > 1
* Fixed comments
* Refactoring
* Added tests
* Add resample test
* Added asserts in resize layer
* Updated DataAugmentation layer
* Update convolution layer
* Refactoring
* Fix data augmentation layer
* Fix caffe importer
* Fix resize
* Switch to Mat ptr
* Remove useless resize type
* Used ResizeLayer in Accum
* Split ChannelNormLayer
* Delete duplicate assert
* Add sample
* Fix sample
* Added colormap
2020-05-19 12:29:50 +00:00
Alexander Alekhin
c722625f28
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2020-04-28 16:53:19 +00:00
Alexander Alekhin
288fa70ed9
dnn(protobuf): backport AllowUnknownField(), SetRecursionLimit()
...
- limit recursion in SkipField*() calls
2020-04-25 20:45:43 +00:00
Alexander Alekhin
45d073f889
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2020-02-26 20:09:03 +03:00
Alexander Alekhin
01048e5603
Merge pull request #16616 from alalek:dnn_fix_input_shape
...
* dnn: fix processing of input shapes
- importer: avoid using of .setInput() => .setInputShape()
- setInput: shape limitation check (partial)
* dnn(test): test .setInput() in readNet()
2020-02-21 22:39:54 +03:00
Alexander Alekhin
96b26dc8f4
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2020-02-20 19:47:27 +03:00
Alexander Alekhin
7ac7aca33b
dnn(caffe): fix net.input_dim handling in Caffe importer
2020-02-19 07:37:27 +00:00
Dmitry Kurtaev
ca1ba7a53d
Backport for dnn input shape estimation
2019-12-02 16:28:59 +03:00
Lubov Batanina
f1ea9d86b9
Merge pull request #15203 from l-bat:determine_inp_shape
...
* Determine input shapes
* Add test
* Remove getInputShapes
* Fix model
* Fix constructors
* Add Caffe test
* Fix predict
2019-08-09 19:51:42 +03:00
Alexander Alekhin
174b4ce29d
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-08-05 18:11:43 +00:00
Lubov Batanina
5a6b23e8f3
Support for several min and max sizes in PriorBox layer (Merge pull request #15076 )
...
* Support for several min and max sizes in PriorBox layer
* Fix minSize
* Check size
* Modify initInfEngine
* Fix tests
* Fix IE support
* Add priorbox test
* Remove inputs
2019-07-30 17:23:47 +03:00
Alexander Alekhin
b95e93c20a
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-06-26 20:19:04 +00:00
Alexander Alekhin
f3e9eb3371
dnn: both protobuf readers have similar behavior
...
- ReadProtoFromTextFile
- ReadProtoFromTextBuffer
2019-06-25 18:03:04 +03:00
Alexander Alekhin
f3de2b4be7
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-06-05 19:11:52 +03:00
Lubov Batanina
3efd2df87f
Merge pull request #14682 from l-bat:axpy_layer
...
* Add Axpy layer
* Fix test
* fix caffe importer
2019-06-05 00:18:06 +03:00
Alexander Alekhin
dfef04b325
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2019-02-12 17:54:40 +03:00
Dmitry Kurtaev
1606137df2
Read raw floats data from Caffe models
2019-02-11 20:08:17 +03:00
Alexander Alekhin
22dbcf98c5
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2018-11-17 14:17:35 +00:00
Alexander Alekhin
96c71dd3d2
dnn: reduce set of ignored warnings
2018-11-15 13:15:59 +03:00
Alexander Alekhin
50bec53afc
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2018-10-26 17:56:55 +03:00
Antonio Borondo
7a3cb2280b
Recognize ConvolutionDepthwise as Convolution
2018-10-24 08:37:51 +01:00
Alexander Alekhin
edacd91a27
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
2018-10-15 20:15:42 +00:00
Adam Radomski
cc3ec5d453
Fix dnn caffe importer extract blobs from reused layers
2018-10-10 10:44:56 +02:00
Alexander Alekhin
f10fd64630
dnn: update "guard" inline namespace
...
- differ from 3.4 branch
2018-09-03 20:46:57 +00:00
Alexander Alekhin
d2e08a524e
core: repair CV_Assert() messages
...
Multi-argument CV_Assert() is accessible via CV_Assert_N() (with malformed messages).
2018-08-15 17:43:10 +03:00
Alexander Alekhin
6c4f618db5
Merge pull request #11104 from asciian:reading_from_stream
2018-07-17 16:24:06 +00:00
Dmitry Kurtaev
8b5f061dae
Replace std::vector<char> to std::vector<uchar> for Java bindings of dnn importers
2018-07-11 18:58:56 +03:00
Dmitry Kurtaev
d57e5406f0
Add readNet* functions which parse models from byte arrays
2018-07-10 11:12:01 +03:00
Alexander Alekhin
e2b5d11290
dnn: allow to use external protobuf
...
"custom layers" feature will not work properly in these builds.
2018-07-09 17:28:45 +03:00
Dmitry Kurtaev
c99c3e761e
Fuse multipliers but not convolution layers weights
2018-05-10 19:24:38 +03:00
Dmitry Kurtaev
9ffe4694db
Reduce memory consumption at Caffe importer
2018-05-04 09:24:13 +03:00
Dmitry Kurtaev
4ec456f0a0
Custom layers for deep learning networks ( #11129 )
...
* Custom deep learning layers support
* Stack custom deep learning layers
2018-04-24 14:59:59 +03:00
Alexander Alekhin
a2d6ee2d31
Merge pull request #11305 from tomoaki0705:typoNVIDIA
2018-04-13 12:56:42 +00:00
Tomoaki Teshima
a40354d16f
use correct name for NVIDIA
...
* remove NVidia and Nvidia
* replace Cuda with CUDA
* keep the letters for API
2018-04-13 20:33:19 +09:00