Yannis Guyon
1db93911ae
Support string_view in caffe_importer
...
An upcoming change in Protobuf will change the return types of various
methods like Descriptor::name() and Message::GetTypeName() from const
std::string& or std::string to absl::string_view. This CL fixes users
of those methods to work both before and after the change.
2024-12-09 10:24:01 +01:00
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
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
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
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
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
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
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
Dmitry Kurtaev
e8fe6ee4e3
Fix prior box generation in case of squared proposals.
...
Fix batch norm in training phase.
2018-03-23 09:44:59 +03:00
Dmitry Kurtaev
6aabd6cc7a
Remove cv::dnn::Importer
2017-12-18 18:08:28 +03:00
Alexander Alekhin
107582c767
Merge pull request #9996 from dkurt:dnn_multiple_inputs
2017-11-23 18:22:37 +00:00
Alexander Alekhin
f37f4cf3b4
Merge pull request #9994 from r2d3:dnn_memory_load
2017-11-22 18:15:00 +00:00
Alexander Alekhin
f6d927ef3b
dnn: avoid conflicts with original caffe.proto
...
rename caffe.proto => opencv-caffe.proto
2017-11-20 19:04:00 +03:00
David Geldreich
f723cede2e
add loading TensorFlow/Caffe net from memory buffer
...
add a corresponding test
2017-11-20 16:28:22 +01:00
Dmitry Kurtaev
20a2dc6ac5
Fix multiple inputs models from Caffe.
...
Fixed Concat optimization.
2017-11-02 18:55:08 +03:00
Dmitry Kurtaev
eabf728682
PReLU layer from Caffe
2017-10-09 20:30:37 +03:00
Dmitry Kurtaev
e268606e26
Grayscale colorization model ( https://github.com/richzhang/colorization ) test.
2017-10-06 09:33:41 +03:00
Vadim Pisarevsky
f7df5dd32c
Merge pull request #9305 from dkurt:public_dnn_importer_is_deprecated
2017-09-18 09:35:35 +00:00
Dmitry Kurtaev
bd8e6b7e14
Make external cv::dnn::Importer usage is deprecated
2017-09-18 08:52:36 +03:00
Dmitry Kurtaev
8646d5fb84
FP16 Caffe models import and export
2017-09-15 18:06:34 +03:00
Maksim Shabunin
f1a56cb4b7
Merge pull request #9028 from alalek:dnn_experimental_namespace
2017-06-29 07:37:04 +00:00
Alexander Alekhin
da0960321b
dnn: added "hidden" experimental namespace
...
Main purpose of this namespace is to avoid using of incompatible
binaries that will cause applications crashes.
This additional namespace will not impact "Source code API".
This change allows to maintain ABI checks (with easy filtering out).
2017-06-28 20:36:57 +00:00
Alexander Alekhin
ed10383359
dnn: added trace macros
2017-06-28 14:57:26 +03:00
Alexander Alekhin
93729784bb
dnn: move module from opencv_contrib
...
e6f63c7a38/modules/dnn
2017-06-26 13:41:51 +03:00