Open Source Computer Vision Library
Go to file
alexlyulkov a40ceff215
Merge pull request #26330 from alexlyulkov:al/new-engine-tflite-parser2
Modified TFLite parser for the new dnn engine #26330

The new dnn graph is creating just by defining input and output names of each layer.
Some TFLite layers has fused activation, which doesn't have layer name and input and output names. Also some layers require additional preprocessing layers (e.g. NHWC -> NCHW). All these layers should be added to the graph with some unique layer and input and output names. 

I solve this problem by adding additionalPreLayer and additionalPostLayer layers.

If a layer has a fused activation, I add additionalPostLayer and change input and output names this way:
**original**: conv_relu(conv123, conv123_input, conv123_output)
**new**: conv(conv123, conv123_input, conv123_output_additional_post_layer) + relu(conv123_relu,  conv1_output_additional_post_layer, conv123_output)

If a layer has additional preprocessing layer, I change input and output names this way:
**original**: permute_reshape(reshape345, reshape345_input, reshape345_output)
**new**: permute(reshape345_permute, reshape345_input, reshape345_input_additional_pre_layer) + reshape(reshape345, reshape345_input_additional_pre_layer, reshape345_output)


### 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
- [ ] 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
2024-10-22 09:05:58 +03:00
.github Added Ubuntu 24.04 pipeline for 5.x 2024-07-03 09:21:54 +03:00
3rdparty Merge branch 4.x 2024-09-23 14:18:25 +03:00
apps Added DNN engine selector to model diagnostics tool. 2024-10-17 15:09:13 +03:00
cmake Merge branch 4.x 2024-09-23 14:18:25 +03:00
doc Merge pull request #25292 from kaingwade:features2d_parts_to_contrib 2024-10-10 17:10:22 +03:00
include Move objdetect HaarCascadeClassifier and HOGDescriptor to contrib xobjdetect (#25198) 2024-03-21 23:40:10 +03:00
modules Merge pull request #26330 from alexlyulkov:al/new-engine-tflite-parser2 2024-10-22 09:05:58 +03:00
platforms Merge pull request #26056 from vpisarev:new_dnn_engine 2024-10-16 15:28:19 +03:00
samples Merge pull request #25667 from gursimarsingh:improved_person_reid_python 2024-10-17 10:46:53 +03:00
.editorconfig add .editorconfig 2018-10-11 17:57:51 +00:00
.gitattributes cmake: generate and install ffmpeg-download.ps1 2018-06-09 13:19:48 +03:00
.gitignore Merge pull request #17165 from komakai:objc-binding 2020-06-08 18:32:53 +00:00
CMakeLists.txt Merge branch 4.x 2024-09-23 14:18:25 +03:00
CONTRIBUTING.md migration: github.com/opencv/opencv 2016-07-12 12:51:12 +03:00
COPYRIGHT Merge pull request #25520 from gursimarsingh:add-bigvision-copyright 2024-09-09 17:44:30 +03:00
LICENSE Merge pull request #18073 from vpisarev:apache2_license 2020-08-17 11:49:11 +00:00
README.md Merge branch 4.x 2024-04-02 16:39:54 +03:00
SECURITY.md Updated PGP key for security reports 2023-04-19 19:16:55 +03:00

OpenCV: Open Source Computer Vision Library

Resources

Contributing

Please read the contribution guidelines before starting work on a pull request.

Summary of the guidelines:

  • One pull request per issue;
  • Choose the right base branch;
  • Include tests and documentation;
  • Clean up "oops" commits before submitting;
  • Follow the coding style guide.

Additional Resources