Commit Graph

35 Commits

Author SHA1 Message Date
rogday
a2b84e9897 add assert to tf graph simplifier to address security concerns 2022-04-13 22:50:27 +03:00
Oliver Kuckertz
a3d7811f24
Merge pull request #20725 from mologie:fix-dnn-tf-on-arm
* dnn: fix unaligned memory access crash on armv7

The getTensorContent function would return a Mat pointing to some
member of a Protobuf-encoded message. Protobuf does not make any
alignment guarantees, which results in a crash on armv7 when loading
models while bit 2 is set in /proc/cpu/alignment (or the relevant
kernel feature for alignment compatibility is disabled). Any read
attempt from the previously unaligned data member would send SIGBUS.

As workaround, this commit makes an aligned copy via existing clone
functionality in getTensorContent. The unsafe copy=false option is
removed. Unfortunately, a rather crude hack in PReLUSubgraph in fact
writes(!) to the Protobuf message. We limit ourselves to fixing the
alignment issues in this commit, and add getTensorContentRefUnaligned
to cover the write case with a safe memcpy. A FIXME marks the issue.

* dnn: reduce amount of .clone() calls

* dnn: update FIXME comment

Co-authored-by: Alexander Alekhin <alexander.a.alekhin@gmail.com>
2021-10-06 16:41:05 +00:00
Dmitry Kurtaev
cc584760d3 Fix TensorFlow->ONNX imports 2020-07-15 14:36:13 +03:00
Liubov Batanina
ba3cf47600
Merge pull request #17386 from l-bat:tf_clamp_subgraph
* Added ClipByValue subgraph

* Return const nodes
2020-05-26 19:01:47 +00:00
Dmitry Kurtaev
b4a6aa335d TensorFlow bilinear resize downscale 2020-05-13 23:59:20 +03:00
Dmitry Kurtaev
25ec4ce6f1 PReLU from Tensorflow 2020-04-28 00:01:21 +03:00
Dmitry Kurtaev
7e4b2057f2 Import TF2.0 network from Keras 2020-03-25 15:34:28 +03:00
ashishiva3@gmail.com
8559237d4e ONNX: upsample subgraph fusion added 2020-02-29 15:24:06 +05:30
Alexander Alekhin
a67228cd73 Merge pull request #16291 from dkurt:dnn_onnx_graph_simplifier 2020-01-14 12:45:59 +00:00
Dmitry Kurtaev
c1c84d2fd1 ONNX graphs simplifier 2020-01-14 12:45:49 +03:00
Dmitry Kurtaev
f954f0830c Sort text TensorFlow graphs 2019-12-31 11:43:32 +03:00
Dmitry Kurtaev
57676cf64d Fix https://github.com/opencv/opencv/issues/15141 2019-08-24 23:14:26 +03:00
Dmitry Kurtaev
dfdc91f8c9 dnn: fix MVN layer (issue 14683) 2019-06-14 18:38:05 +03:00
Dmitry Kurtaev
081d9bc73f Fix Identity Switch from Keras 2019-05-29 17:13:21 +03: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
a6ed8f268a Remove extra weights cloning from TensorFlow importer 2019-04-30 19:18:41 +03:00
Dmitry Kurtaev
9408c3e640 Refactored TensorFlow subgraphs fusion 2019-04-30 09:21:05 +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
Dmitry Kurtaev
ec41a4897a Remove Switch and Merge nodes from TensorFlow networks 2019-04-05 12:32:35 +03:00
Dmitry Kurtaev
9cfd219d70 Fix Mobilenet v2 from TensorFlow slim 2019-03-27 15:10:57 +03:00
Dmitry Kurtaev
c8f3579f93 Fix #12542 (#12603)
* Fix #12542

* Remove ignore of non-virtual-dtor error
2018-09-26 16:08:51 +03:00
Dmitry Kurtaev
c7cf8fb35c Import SSDs from TensorFlow by training config (#12188)
* Remove TensorFlow and protobuf dependencies from object detection scripts

* Create text graphs for TensorFlow object detection networks from sample
2018-09-03 17:08:40 +03: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
449696f1e5 Enable reshape-as-shape layer from TensorFlow 2018-08-06 17:35:06 +03:00
Dmitry Kurtaev
36288eebe7 Nearest neighbor resize from Keras 2018-07-04 11:53:24 +03:00
Alexander Alekhin
799b4f48e7 fix missing precomp.hpp 2018-05-31 16:53:44 +03:00
Dmitry Kurtaev
8488f2e265 EAST: An Efficient and Accurate Scene Text Detector (https://arxiv.org/abs/1704.03155v2) 2018-05-11 14:55:42 +03:00
Dmitry Kurtaev
777d77848c Free Convolution and MatMul weights after TensorFlow layers import 2018-05-04 11:20:14 +03:00
Alexander Alekhin
576d2dbac0 refactor: don't use CV_ErrorNoReturn() internally 2018-04-24 15:38:42 +03:00
Dmitry Kurtaev
d959d7b9f0 Fuse deconvolution layer subgraphs from Keras 2018-04-20 16:51:38 +03:00
Dmitry Kurtaev
1ba72ca0d3 Fuse tf.nn.l2_normalize layer 2018-04-10 10:12:44 +03:00
Alexander Alekhin
e8a67de0d2 Merge pull request #11182 from dkurt:fix_11102_part_2 2018-03-30 13:11:01 +00:00
Alexander Alekhin
1060c0f439 dnn: apply CV_OVERRIDE/CV_FINAL 2018-03-28 18:43:27 +03:00
Dmitry Kurtaev
e039fc3a63 Replace protobuf's ReleaseLast to RemoveLast to deallocate memory.
Change an order of PriorBox layer operations.
2018-03-28 17:27:36 +03:00
Dmitry Kurtaev
69a8f110b6 Fuse subgraphs from Keras 2018-03-12 10:53:06 +03:00