Commit Graph

1063 Commits

Author SHA1 Message Date
Alexander Alekhin
b584c23061 Merge pull request #15158 from dkurt:fix_tf_ssd_configs 2019-08-02 16:08:55 +00:00
Maksim Shabunin
4dadf17bd9 Merge pull request #15168 from dkurt:dnn_onnx_15120 2019-07-31 15:03:23 +00:00
Lubov Batanina
778f42ad34 Add high level API (Merge pull request #14780)
* Add high level API

* Fix Model

* Add DetectionModel

* Add ClassificationModel

* Fix classify

* Add python test

* Fix pytest

* Fix comments to review

* Fix detect

* Fix docs

* Modify DetectionOutput postprocessing

* Fix test

* Extract ref boxes

* Fix draw rect

* fix test

* Add rect wrap

* Fix wrap

* Fix detect

* Fix Rect wrap

* Fix OCL_FP16

* Fix MyriadX

* Fix nms

* Fix NMS

* Fix coords
2019-07-30 23:07:37 +03: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
Maksim Shabunin
e90438fe3c Merge pull request #14938 from LaurentBerger:face_clip 2019-07-30 14:18:51 +00:00
Dmitry Kurtaev
f9f160404a Add support for slice from ONNX with multiple outputs 2019-07-28 21:20:25 +03:00
Dmitry Kurtaev
ebaefbb745 Remove VGG16 from ONNX test because there is VGG16_bn 2019-07-27 23:04:25 +03:00
Dmitry Kurtaev
47c5ee5d9c Fixes for OpenCV face detection network 2019-07-27 17:25:09 +02:00
Dmitry Kurtaev
77d4e3e8d2 Fix 2019R2 tests 2019-07-27 13:30:15 +03:00
Dmitry Kurtaev
a0c3bb70a9 Modify SSD from TensorFlow graph generation script to enable MyriadX 2019-07-26 13:57:08 +03:00
Alexander Alekhin
0cf479dd5c Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-07-25 19:21:47 +00:00
Alexander Alekhin
7295983964 Merge pull request #15139 from alalek:openvino_2019R2 2019-07-25 18:59:56 +00:00
Dmitry Kurtaev
a2125594ea Fix false positives of face detection network for large faces 2019-07-25 20:09:59 +03:00
Alexander Alekhin
416c693b3f dnn(test): OpenVINO 2019R2 2019-07-25 19:01:16 +03:00
Alexander Alekhin
d2911a8d41 dnn: use OpenVINO 2019R2 defines 2019-07-24 21:37:03 +00:00
Alexander Alekhin
426482e05b Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-07-21 18:06:04 +00:00
Lubov Batanina
781f4d439e Merge pull request #15032 from l-bat:reduce_mean
* Added support for the ONNX "ReduceMean" Layer. (as this is the same as the GlobalAveragePool)

* Add ReduceMean test

* Fix ONNX importer

* Fix ReduceMean

* Add assert

* Split test

* Fix split test
2019-07-19 19:18:34 +03:00
Alexander Alekhin
199ddff13b Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-07-18 20:25:25 +00:00
Lubov Batanina
12fdaf895e Merge pull request #15057 from l-bat:fix_vizualizer
* Fix dumpToFile

* Add test

* Fix test
2019-07-18 18:41:08 +03:00
Liubov Batanina
0d2bc7b5fd Fix TF Split layer 2019-07-17 15:50:50 +03:00
Alexander Alekhin
5ccb2a4cbd dnn(test): fix required data 2019-07-16 07:53:50 +00:00
Alexander Alekhin
f6c573880e Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-07-12 18:45:06 +00:00
Lubov Batanina
34f6b05467 Merge pull request #14996 from l-bat:ocv_deconv3d
* Support Deconvolution3D on IE backend

* Add test tag

* Fix tests
2019-07-12 15:51:44 +03:00
Lubov Batanina
8bcd7e122a Merge pull request #14842 from l-bat:ocv_conv3d
* Support Conv3D on OCV backend

* Add header

* Add perf tests

* Support pool3d

* Enable Resnet34_kinetics on OCV backend

* Add test

* Fix conv

* Optimize Conv2D
2019-07-11 20:13:52 +03:00
Alexander Alekhin
f663e8f903 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-07-09 19:57:57 +00:00
Diego
57fae4a6a1 Merge pull request #14858 from dvd42:instancenorm_onnx
Instancenorm onnx (#14858)

* Onnx unsupported operation handling

* instance norm implementation

* Revert "Onnx unsupported operation handling"

* instance norm layer test

* onnx instancenorm layer
2019-07-04 21:15:04 +03:00
Alexander Alekhin
43eba3d750 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-07-04 18:44:13 +03:00
Alexander Alekhin
e00b0f6f47
Merge pull request #14860 from vonchenplus:ocv_maxpoolgrad 2019-07-04 09:57:14 +03:00
Diego
6dfe2ddc21 Merge pull request #14959 from dvd42:onnx_clip
* onnx clip operation
2019-07-04 08:56:00 +03:00
Alexander Alekhin
bc95c609ff ts: runtime check for misused 'optional' test data files 2019-07-03 20:07:44 +03:00
gal0is
206b546e5a tensroflow support maxpoolgrad 2019-07-03 09:53:17 +08:00
Alexander Alekhin
097d81363b Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-07-02 21:17:45 +00:00
Alexander Alekhin
6dea8309c5 Merge pull request #14880 from dkurt:dnn_ie_tests 2019-07-01 16:58:57 +00:00
Alexander Alekhin
65552bf403 dnn: fix build with Vulkan 2019-07-01 17:54:40 +03:00
Alexander Alekhin
6fdce865b8 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-06-29 17:27:48 +00:00
Dmitry Kurtaev
75f4c1abf2 Enable some tests for Inference Engine backend 2019-06-28 15:52:31 +03:00
Alexander Alekhin
a743de0e24 dnn: adjust compilation options 2019-06-27 17:37:31 +03:00
Alexander Alekhin
c531e275cc Merge pull request #14914 from Nuzhny007:3.4 2019-06-27 14:22:15 +00:00
Nuzhny007
031e57b359 Fixed names conflict with dldt 2019-06-27 13:13:48 +03:00
Dmitry Kurtaev
96a2f80bf2 Limit number of threads in CPU plugin of IE by OpenCV's getNumThreads 2019-06-27 12:09:00 +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
24790e4061
Merge pull request #14899 from alalek:dnn_fix_bnll_layer
* dnn: fix BNLLLayer implementation

details: https://github.com/BVLC/caffe/blame/1.0/src/caffe/layers/bnll_layer.cpp#L17

* dnn: enable OCV/OpenCL BNLL layer
2019-06-26 23:04:26 +03:00
Alexander Alekhin
c251915198 Merge pull request #14895 from alalek:dnn_ie_extensions_path 2019-06-26 20:03:57 +00:00
Alexander Alekhin
2172544bb7 Merge pull request #14890 from alalek:dnn_consistent_protobuf_readers 2019-06-26 14:13:03 +00:00
Alexander Alekhin
333e51b217 dnn: configure plugin path for InferenceEngine 2019-06-26 06:41:01 +00:00
Alexander Alekhin
44d146af9a Merge pull request #14814 from alalek:dnn_skip_test_tags 2019-06-25 22:00:25 +00:00
Alexander Alekhin
f3e9eb3371 dnn: both protobuf readers have similar behavior
- ReadProtoFromTextFile
- ReadProtoFromTextBuffer
2019-06-25 18:03:04 +03:00
Feng Chen
5620306c70 Merge pull request #14845 from vonchenplus:ocv_mirrorpad
* tensorflow support mirror pad

* revert macro define

* revert macro define

* reduce code duplication

* revert macro define
2019-06-24 12:27:42 +03:00
Alexander Alekhin
894f208de3 dnn(test): replace SkipTestException with tags 2019-06-23 13:12:23 +00:00
Alexander Alekhin
f8c96cb18a Merge pull request #14847 from alalek:dnn_fix_test_data_searching 2019-06-23 12:42:27 +00:00
Lubov Batanina
16294437d5 Merge pull request #14833 from l-bat:ocv_eltwise3d
* Support Eltwise3d

* Refactoring

* Fix test
2019-06-22 10:13:28 +03:00
Alexander Alekhin
f84b08ff08 dnn: bump API version 2019-06-21 19:18:23 +03:00
Alexander Alekhin
f33f88de31 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-06-21 17:27:14 +03:00
Alexander Alekhin
f5ddaef46b experimental version++ 2019-06-21 16:57:17 +03:00
Alexander Alekhin
13a782c039 test: fix usage of findDataFile()
misused 'optional' mode
2019-06-20 18:20:14 +03:00
Alexander Alekhin
95d9cfb5c3 static analysis issues 2019-06-20 13:55:20 +03:00
Alexander Alekhin
66d7956e67 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-06-15 16:25:11 +00:00
Dmitry Kurtaev
dfdc91f8c9 dnn: fix MVN layer (issue 14683) 2019-06-14 18:38:05 +03:00
Dmitry Kurtaev
eba696a41e Merge pull request #14792 from dkurt:dnn_ie_min_version_r5
* Remove Inference Engine 2018R3 and 2018R4

* Fix 2018R5
2019-06-14 18:17:02 +03:00
Maksim Shabunin
d60ac98ef2 Limited API support for Python3 2019-06-11 15:20:43 +03:00
Maksim Shabunin
10d61a2b44 Limited API support for Python3 2019-06-11 15:15:49 +03:00
Alexander Alekhin
11b020b9f9 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-06-10 19:05:28 +00:00
Alexander Alekhin
6d916c5bb4 Merge pull request #14440 from alalek:async_array 2019-06-08 20:57:15 +00:00
Lubov Batanina
5e80191d27 Merge pull request #14697 from l-bat:Slice_ONNX
* Support Slice layer in ONNX importer

* Add IE support

* Fix ONNX importer

* Fix Slice
2019-06-08 16:52:40 +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
f355b3505f Merge pull request #14661 from dkurt:ie_deconv_adj 2019-06-03 16:58:17 +00:00
Dmitry Kurtaev
9c0af1f675 Enable more deconvolution layer configurations with IE backend 2019-06-03 08:15:52 +03:00
Yashas Samaga B L
ae279966c2 Merge pull request #14660 from YashasSamaga:dnn-cuda-build
add cuDNN dependency and setup build for cuda4dnn (#14660)

* update cmake for cuda4dnn

- Adds FindCUDNN
- Adds new options:
   * WITH_CUDA
   * OPENCV_DNN_CUDA
- Adds CUDA4DNN preprocessor symbol for the DNN module

* FIX: append EXCLUDE_CUDA instead of overwrite

* remove cuDNN dependency for user apps

* fix unused variable warning
2019-06-02 14:47:15 +03:00
Alexander Alekhin
805ab6331f Merge pull request #14662 from dkurt:dnn_tf_fix_identity_switch 2019-05-30 20:22:17 +00:00
Lubov Batanina
f94253b82b Merge pull request #14627 from l-bat:demo_kinetics
* Support 3D ResNet-34-kinetics

* Update sample

* Remove preprocess

* Change test

* Fix sample
2019-05-30 17:36:00 +03:00
Alexander Alekhin
52548bde05 dnn(test): replace file content reading 2019-05-29 23:08:33 +03:00
Dmitry Kurtaev
081d9bc73f Fix Identity Switch from Keras 2019-05-29 17:13:21 +03:00
Alexander Alekhin
43467a2ac7 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-05-28 18:29:48 +00:00
Alexander Alekhin
0d477d7364 Merge pull request #14651 from alalek:dnn_test_update_debug_tags 2019-05-28 16:26:49 +00:00
Alexander Alekhin
38a3c1ce6b dnn(test): update test tags for Debug build 2019-05-27 20:12:30 +00:00
LaurentBerger
a3be8d7cd7 dead link 2019-05-27 21:57:10 +02:00
Alexander Alekhin
483e9f341c Merge pull request #14626 from dkurt:dnn_ie_slice_layer 2019-05-27 16:27:14 +00:00
Lubov Batanina
61d3222a22 Merge pull request #14537 from l-bat:fix_network_vizualizer
Fix dnn visualizer (#14537)

* Fixed print layer params

* Fix print
2019-05-27 19:17:07 +03:00
Dmitry Kurtaev
44d21e5a79 Enable Slice layer on Inference Engine backend 2019-05-27 16:28:01 +03:00
Alexander Alekhin
166ecaeda8 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-05-23 19:50:20 +03:00
Dmitry Kurtaev
26e426adb1 StridedSlice from TensorFlow 2019-05-22 12:45:52 +03:00
dianlujitao
f0f50b757d Fix LogSoftmax for ONNX
Fix wrong indentation as well while at it
2019-05-20 22:55:31 +08:00
Alexander Alekhin
132253c9f3 dnn: use AsyncArray 2019-05-18 19:32:23 +00:00
Alexander Alekhin
447116a93c Merge pull request #14524 from kohei-us:onnx-load-binary-blob 2019-05-18 16:19:34 +00:00
Alexander Alekhin
d848594deb Merge pull request #14445 from l-bat:batchnorm3d 2019-05-17 17:03:53 +00:00
Kohei Yoshida
7b4aefedea Add support for loading ONNX model from in-memory buffer. 2019-05-16 11:26:20 -04:00
Alexander Alekhin
e21262deba Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-05-16 04:40:39 +00:00
Alexander Alekhin
a70e1eecd9 Merge pull request #14552 from dkurt:fixed_detections_out_blob 2019-05-15 15:17:05 +00:00
Liubov Batanina
dfa753c6b4 Support OCV backend 2019-05-14 16:44:57 +03:00
Dmitry Kurtaev
6389dfe49c Fixed DetectionOutput output blob shape 2019-05-14 15:09:32 +03:00
Liubov Batanina
dadb1473c1 Add BatchNorm3d layer 2019-05-14 12:44:48 +03:00
Dmitry Kurtaev
c3b0a68a2b Async mode for dnn's object detection sample 2019-05-14 09:58:47 +03:00
Alexander Alekhin
b2abd8ca41 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-05-07 16:04:54 +00:00
Alexander Alekhin
5ba8aa781c Merge pull request #14460 from dkurt:dnn_tf_no_extra_clone 2019-05-07 14:48:50 +00:00
Dmitry Kurtaev
471b83ccd5 Modify paddings computation for SAME pad mode 2019-05-06 10:49:10 +03:00
Dmitry Kurtaev
adc1ef9308 Fix uint8 input data for Async mode of dnn 2019-05-05 12:49:38 +03:00
Alexander Alekhin
e28e3c9491 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-05-01 08:27:45 +00:00
Alexander Alekhin
163d5e4d39 Merge pull request #14368 from dkurt:dnn_ie_tests 2019-04-30 19:35:00 +00:00
Alexander Alekhin
bc9893799d Merge pull request #14457 from alalek:dnn_fix_msvc_build 2019-04-30 16:49:33 +00:00
Alexander Alekhin
1c092a181d Merge pull request #14454 from dkurt:dnn_tf_subgraph_fusion 2019-04-30 16:24:32 +00:00
Dmitry Kurtaev
a6ed8f268a Remove extra weights cloning from TensorFlow importer 2019-04-30 19:18:41 +03:00
Lubov Batanina
77fa59c3da Merge pull request #14301 from l-bat:conv3d
Support Convolution3D layer on IE backend (#14301)

* Add Convolution3D layer

* Disable CXX11

* Fixed tests

* Add Pooling3D layer

* Merge Conv2d with Conv3d and Pool2d with Pool3d layers

* Split pads

* Add Deconvolution layer

* Refactoring

* Deduplication

* Refactoring

* Add utils for Convolution and Pooling layers
2019-04-30 17:08:17 +03:00
Alexander Alekhin
138a80611c build: avoid MSVC ICE 2019-04-30 14:16:01 +03:00
Dmitry Kurtaev
9408c3e640 Refactored TensorFlow subgraphs fusion 2019-04-30 09:21:05 +03:00
Dmitry Kurtaev
61b928d9bd Add an assertion for Async request status 2019-04-29 08:16:28 +03:00
Alexander Alekhin
e8a626d43a Merge pull request #14407 from dkurt:dnn_ie_fix_batch_detection 2019-04-27 21:48:56 +00:00
Dmitry Kurtaev
4f6be11c0e Check if Inference Engine networks are fully supported by backend 2019-04-25 11:27:17 +03:00
Alexander Alekhin
0431ecb9e2 Merge pull request #14408 from l-bat:onnx_deconv 2019-04-24 14:30:09 +00:00
Liubov Batanina
45ced8e022 Fix ONNX deconvolution 2019-04-24 14:37:52 +03:00
Dmitry Kurtaev
520e351489 Fix batching in DetectionOutput layer 2019-04-24 12:08:49 +03:00
Alexander Alekhin
d0032b0717 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-04-22 18:17:28 +00:00
Alexander Alekhin
8eb685de9d Merge pull request #14390 from dkurt:dnn_onnx_const_reshape 2019-04-22 15:55:19 +00:00
Dmitry Kurtaev
9b635830bc Run Reshape layer for const input from ONNX models 2019-04-22 17:57:46 +03:00
Dmitry Kurtaev
a5c92c2029 Merge pull request #13694 from dkurt:dnn_ie_async
Asynchronous API from Intel's Inference Engine (#13694)

* Add forwardAsync for asynchronous mode from Intel's Inference Engine

* Python test for forwardAsync

* Replace Future_Mat to AsyncMat

* Shadow AsyncMat

* Isolate InferRequest callback

* Manage exceptions in Async API of IE
2019-04-19 21:01:19 +03:00
Alexander Alekhin
c024edb9a8 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-04-19 15:43:58 +03:00
Alexander Alekhin
4f764b812e Merge pull request #14315 from dkurt:tf_squeeze_and_slim_softmax_v2 2019-04-18 16:01:24 +00:00
Alexander Alekhin
dedd966002 Merge pull request #14345 from dkurt:fix_dnn_ie_mac 2019-04-16 19:18:49 +00:00
Alexander Alekhin
c667de9b68 dnn: force visibility(default) for IE headers 2019-04-16 18:18:31 +03:00
Alexander Alekhin
74d5cdb6d8 Merge pull request #14343 from alalek:dnn_static_scans_namespace 2019-04-16 13:11:23 +00:00
Dmitry Kurtaev
62d079fa69 Fix Normalize layer for Mac 2019-04-16 12:39:04 +03:00
Alexander Alekhin
3902694075 static scans: preserve namespace name 2019-04-16 06:49:47 +00:00
Alexander Alekhin
4635356435 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-04-13 20:00:54 +00:00
Dmitry Kurtaev
92cbec6fb1 Fix dnn with IE from GitHub 2019-04-13 19:02:03 +03:00
Dmitry Kurtaev
0cfd95c097 Fix TensorFlow's Squeeze and a new fusion for SoftMax from slim backend 2019-04-13 17:04:31 +03:00
Lubov Batanina
60a841c797 Merge pull request #14255 from l-bat:networks_visualization
* Add networks visualization

* Disable CXX11

* Fixed multy inputs support

* Added output shapes

* Added color for DLIE/CPU

* Fixed graph colors
2019-04-12 19:31:07 +03:00
Alexander Alekhin
64629cb94e Merge pull request #12783 from alalek:test_tag 2019-04-12 15:35:41 +00:00
Alexander Alekhin
5f500692f1 Merge pull request #14284 from dkurt:fix_14236 2019-04-12 13:05:38 +00:00
Alexander Alekhin
227ec19929 Merge pull request #14277 from dkurt:ie_enable_tests_2019r1 2019-04-12 13:05:19 +00:00
Dmitry Kurtaev
a2bbfa1db5 Enable some tests for Inference Engine 2019R1 2019-04-12 15:21:42 +03:00
Alexander Alekhin
a0a1fb5fec python: discover tests from module/misc/python/test paths 2019-04-10 18:35:35 +00:00
Dmitry Kurtaev
7ce2397b62 Fix a bug in FusedBatchNorm (TensorFlow) layer importer 2019-04-09 13:35:34 +03:00
Alexander Alekhin
e0841f3d6e dnn(test-tags): add time / memory tags 2019-04-08 19:18:25 +00:00
Alexander Alekhin
c9fc27b337 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-04-05 19:08:23 +00:00
Alexander Alekhin
bd43e4f28b Merge pull request #14251 from dkurt:dnn_tf_manage_switch 2019-04-05 12:43:22 +00:00
Dmitry Kurtaev
ec41a4897a Remove Switch and Merge nodes from TensorFlow networks 2019-04-05 12:32:35 +03:00
Alexander Alekhin
473941c341 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-04-04 18:09:24 +00:00
BALACHANDAR S
aa167434e6 Merge pull request #14252 from balachandarsv:master-mac-openvino-support
* Mac support for op inference engine

Adding condition to check for mac and add corresponding libraries

* Adding mac support in test cases
2019-04-04 17:37:45 +03:00
Alexander Alekhin
4001346a30 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-04-03 19:33:52 +00:00
Alexander Alekhin
c300070b8a Merge pull request #14241 from alalek:openvino_2019R1 2019-04-03 19:26:46 +00:00
103yiran
4bb6edf176 Merge pull request #14117 from 103yiran:103yiran-patch-dnn
* Postpone variable definitions

* dnn: reduce scope of 'Mat image' variable
2019-04-03 22:13:11 +03:00
Alexander Alekhin
cafa010389 dnn(test): skip tests 2019-04-03 17:49:05 +03:00
Alexander Alekhin
8bc8a94645 dnn: update DNNTestOpenVINO.models tests
- models are moved out from OpenVINO package
- need to download them separatelly
2019-04-03 15:39:47 +03:00
Alexander Alekhin
8483801eab dnn: use OpenVINO 2019R1 defines 2019-04-03 15:39:47 +03:00
Alexander Alekhin
5dc606097c Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-04-02 20:54:41 +00:00
Dmitry Kurtaev
e3286c9055 Enable 1x1 convolution optimization 2019-04-02 14:05:17 +03:00
Alexander Alekhin
df1f62b34c Merge pull request #14225 from zuoshaobo:my3.4 2019-04-02 09:57:26 +00:00
Dmitry Kurtaev
07655c2b4d Fix build with IE > 2018R5 2019-04-02 11:54:50 +03:00
zuoshaobo
a34c02a001 add support for tf.add_n operation 2019-04-02 03:20:53 -04:00
Alexander Alekhin
33dde339fe Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-04-01 18:11:55 +03:00