diff --git a/.gitattributes b/.gitattributes
index f222e622962c1dd255a4154a289b8b782a1a167f..2de9fc99f732b23987b9df1ffd6e3d84e3a80360 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -127,3 +127,6 @@ assets/assets/models/lsk.glb filter=lfs diff=lfs merge=lfs -text
assets/assets/models/outside.glb filter=lfs diff=lfs merge=lfs -text
assets/t2v/couple.gif filter=lfs diff=lfs merge=lfs -text
ECCV2022-RIFE-main/demo/I0_slomo_clipped.gif filter=lfs diff=lfs merge=lfs -text
+uvq/models/compressionnet_baseline/variables/variables.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text
+uvq/models/contentnet_baseline/variables/variables.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text
+uvq/models/distortionnet_baseline/variables/variables.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text
diff --git a/uvq/LICENSE b/uvq/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..d645695673349e3947e8e5ae42332d0ac3164cd7
--- /dev/null
+++ b/uvq/LICENSE
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/uvq/README.md b/uvq/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..b3ef92431a040b119b5e80412d6e1f9c70a85a4f
--- /dev/null
+++ b/uvq/README.md
@@ -0,0 +1,99 @@
+# UVQ: Universal Video Quality Model
+
+This repository contains checkpointed models of Google's Universal Video Quality (UVQ) model.
+UVQ is a no-reference perceptual video quality assessment model that is designed to work
+well on user-generated content, where there is no pristine reference.
+
+Read this blog post for an overview of UVQ:
+
+"[UVQ: Measuring YouTube's Perceptual Video Quality](https://ai.googleblog.com/2022/08/uvq-measuring-youtubes-perceptual-video.html)", Google AI Blog 2022
+
+More details are available in our paper:
+
+Yilin Wang, Junjie Ke, Hossein Talebi, Joong Gon Yim, Neil Birkbeck, Balu Adsumilli, Peyman Milanfar, Feng Yang, "[Rich features for perceptual quality assessment of UGC videos](https://openaccess.thecvf.com/content/CVPR2021/html/Wang_Rich_Features_for_Perceptual_Quality_Assessment_of_UGC_Videos_CVPR_2021_paper.html)", CVPR 2021.
+
+The corresponding data from the paper is available for download from: [YouTube UGC Dataset](https://media.withyoutube.com)
+
+## Running the code
+
+### Dependencies
+
+You must have [FFmpeg](http://www.ffmpeg.org/) installed and available on your path.
+
+The models and code require Python 3.6 (or greater) and [Tensorflow](https://www.tensorflow.org/install).
+
+With virtualenv, you can install the requirements to a virtual environment:
+```
+virtualenv venv
+source venv/bin/activate
+pip3 install -r requirements.txt
+```
+
+### Predict Quality
+
+You can grab some examples videos from the [YouTube UGC Dataset](https://media.withyoutube.com). For example, you can get Gaming_1080P-0ce6_orig.mp4 using curl:
+
+```
+curl -o Gaming_1080P-0ce6_orig.mp4 https://storage.googleapis.com/ugc-dataset/vp9_compressed_videos/Gaming_1080P-0ce6_orig.mp4
+```
+
+You can then run the example:
+
+```bash
+mkdir -p results
+python3 uvq_main.py --input_files="Gaming_1080P-0ce6_orig,20,Gaming_1080P-0ce6_orig.mp4" --output_dir results --model_dir models
+```
+
+#### Input file formatting
+The input files format is a line with the following fields:
+
+`id,video_length,filepath`
+
+#### Results
+
+The `output_dir` will contain a csv file with the results for each model. For example,
+```bash
+cat results/mos_ytugc20s_0_Gaming_1080P-0ce6_orig.mp4_orig.csv
+```
+Gives:
+```bash
+Gaming_1080P-0ce6,compression,3.927867603302002
+Gaming_1080P-0ce6,content,3.945391607284546
+Gaming_1080P-0ce6,distortion,4.267196607589722
+Gaming_1080P-0ce6,compression_content,3.9505696296691895
+Gaming_1080P-0ce6,compression_distortion,4.062019920349121
+Gaming_1080P-0ce6,content_distortion,4.067790699005127
+Gaming_1080P-0ce6,compression_content_distortion,4.058663845062256
+```
+
+We provide multiple predcited scores, using different combinations of UVQ features.
+`compression_content_distortion` (combining three features) is our default score for Mean Opinion Score (MOS) prediction.
+
+The output features folder includes UVQ labels and raw features:
+```bash
+Gaming_1080P-0ce6_orig_feature_compression.binary
+Gaming_1080P-0ce6_orig_feature_content.binary
+Gaming_1080P-0ce6_orig_feature_distortion.binary
+Gaming_1080P-0ce6_orig_label_compression.csv
+Gaming_1080P-0ce6_orig_label_content.csv
+Gaming_1080P-0ce6_orig_label_distortion.csv
+```
+UVQ labels (.csv, each row corresponding to 1s chunk):
+compression: 16 compression levels per row, corresponding to 4x4 subregions of the entire frame.
+distortion: 26 distortion types defined in [KADID-10k](http://database.mmsp-kn.de/kadid-10k-database.html) for 2x2 subregions. The first element is the undefined type.
+content: 3862 content labels defined in [YouTube-8M](https://research.google.com/youtube8m/).
+
+UVQ raw features (in binary):
+25600 float numbers per 1s chunk.
+
+
+## Contributors
+
+[//]: contributor-faces
+
+
+
+
+
+[//]: contributor-faces
+
diff --git a/uvq/__pycache__/uvq_utils.cpython-310.pyc b/uvq/__pycache__/uvq_utils.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..d1dc1b3c5388751663f00047e9f0e708e57fa4d8
Binary files /dev/null and b/uvq/__pycache__/uvq_utils.cpython-310.pyc differ
diff --git a/uvq/docs/contributing.md b/uvq/docs/contributing.md
new file mode 100644
index 0000000000000000000000000000000000000000..654a071648d6c1647f845136cf9805de41c34916
--- /dev/null
+++ b/uvq/docs/contributing.md
@@ -0,0 +1,28 @@
+# How to Contribute
+
+We'd love to accept your patches and contributions to this project. There are
+just a few small guidelines you need to follow.
+
+## Contributor License Agreement
+
+Contributions to this project must be accompanied by a Contributor License
+Agreement. You (or your employer) retain the copyright to your contribution;
+this simply gives us permission to use and redistribute your contributions as
+part of the project. Head over to to see
+your current agreements on file or to sign a new one.
+
+You generally only need to submit a CLA once, so if you've already submitted one
+(even if it was for a different project), you probably don't need to do it
+again.
+
+## Code reviews
+
+All submissions, including submissions by project members, require review. We
+use GitHub pull requests for this purpose. Consult
+[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
+information on using pull requests.
+
+## Community Guidelines
+
+This project follows [Google's Open Source Community
+Guidelines](https://opensource.google/conduct/).
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..f0a9483948f65158c4de04cb48a0bc3b1a25b643
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:acf13ec105f0de33a44fe0f0ebf504b9129a9357262396223da1e9cc6759b0d2
+size 71479
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..5285cb34f5603846bd250a2c78b5a4c81bd95c80
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..36c6beeaa4c991e8702fc40cd0a4264e05ae2c7e
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_content/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_content/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..43ec724c4a21019ab0634913da6ce367ca2034a5
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_content/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d2718dd31ad218b386bebfff7732500ca8345e6cceed7b60a697cb0205f0d4ac
+size 72083
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_content/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_content/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..42e32a8f2873a3a3ec81d13a819652ecc61ee23f
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_content/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_content/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_content/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..1f06ce83fcf00d39eaf60021b92bd0156e89eef5
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_content/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_content_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_content_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..3501230978cdb906b978ae2c028fedcf0d9dc296
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_content_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9bb2d03ac51aabf458e2fd1b3dd360ec3b86133366a75e54b5805297c5feed2d
+size 72132
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_content_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_content_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..773eeff202299ba149a1ef8ca4cf2d04314c3876
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_content_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_content_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_content_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..7b9a1b7d257a38cb6856125f778c402f5016f82d
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_content_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..2b5e3bb139f203af310fb6b919b2349174c1c7d8
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c7282d17625018eeec19ff8bb0e6c98d0d3c1fc02eae1efef90011511f918a32
+size 72089
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..b1c4f4696df80b753a6ace3ce2d11f3aa3246342
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..15016518201861a6fd384f117809c91b5e2d4fb2
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_compression_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_content/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_content/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..d9447babcc2957eae45f11cadd7cfe8a9315b810
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_content/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7e01847a7e5c0bdc2090ab37e602d798aadeeab96b1ff4ccd726d02b72624f6e
+size 71471
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_content/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_content/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..50a23fb1f1c7bbc17266cccf446c072caa7f0eb1
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_content/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_content/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_content/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..d107e672ea9551c07fced94275f01495f98ada40
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_content/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_content_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_content_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..bb9bd3f8d24e0dbb7b61ba14a67e8ef24d2dccf1
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_content_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b7e7b5725502928ad1bc1f5ff9452fca645e199a4a1a16671e8526b9c6ac6e49
+size 72081
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_content_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_content_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..1635c0cbfa2d67f14f1a48820ab96e90a4aaba40
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_content_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_content_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_content_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..322eae1a632c0d5473a6293193adf1dfc358d6af
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_content_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..5c0bbae98c46cbba662820109b781f6ed68feec6
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:30e2746d6183b03e586550d310661fea1d1ef7ee773b61258ec858ee39853054
+size 71477
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..6c1b7c6d530f6d1135e6d74aac95dd958f7d51ed
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..147040c7b2efc9ad39d3d2e6ffb46b882b375bd9
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_0_avgpool_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..f0a9483948f65158c4de04cb48a0bc3b1a25b643
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:acf13ec105f0de33a44fe0f0ebf504b9129a9357262396223da1e9cc6759b0d2
+size 71479
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..a94afa0647d8f20dd6b31b6359b58f6c45c53e1c
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..4febdeaba0f83381acfccf60a7cde3f6e6d5fbcd
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_content/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_content/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..43ec724c4a21019ab0634913da6ce367ca2034a5
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_content/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d2718dd31ad218b386bebfff7732500ca8345e6cceed7b60a697cb0205f0d4ac
+size 72083
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_content/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_content/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..3f8780de8dbf0f7a1c4d6ea8fa1b97e61d14c9cb
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_content/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_content/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_content/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..8bddd26550286b2339b25c5d0f5fd7deacdd56de
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_content/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_content_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_content_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..3501230978cdb906b978ae2c028fedcf0d9dc296
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_content_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9bb2d03ac51aabf458e2fd1b3dd360ec3b86133366a75e54b5805297c5feed2d
+size 72132
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_content_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_content_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..bfce7b91fd96b9f60b654b01de144ac4ddfda4eb
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_content_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_content_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_content_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..30d8e20b0c93c3da8eeba4b31bdfd5b80ffdabc3
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_content_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..2b5e3bb139f203af310fb6b919b2349174c1c7d8
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c7282d17625018eeec19ff8bb0e6c98d0d3c1fc02eae1efef90011511f918a32
+size 72089
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..d1635512b0a98c110cebfd77bec109fe9ae21ddd
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..6018b840a94804b4bd1eac354e67f03a658c4b2b
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_compression_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_content/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_content/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..d9447babcc2957eae45f11cadd7cfe8a9315b810
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_content/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7e01847a7e5c0bdc2090ab37e602d798aadeeab96b1ff4ccd726d02b72624f6e
+size 71471
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_content/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_content/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..f3d11a3b647c23c99196bf625d2baeb3d103aa22
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_content/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_content/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_content/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..2fd5250c437f150d09e268bfdc3090402a54f937
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_content/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_content_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_content_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..bb9bd3f8d24e0dbb7b61ba14a67e8ef24d2dccf1
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_content_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b7e7b5725502928ad1bc1f5ff9452fca645e199a4a1a16671e8526b9c6ac6e49
+size 72081
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_content_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_content_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..18d429a70f36238a3aa39261c16f5457f93e2694
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_content_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_content_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_content_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..a5d59b09a8c6f0cdd28e47dd0f2a1dc6c4688954
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_content_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..5c0bbae98c46cbba662820109b781f6ed68feec6
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:30e2746d6183b03e586550d310661fea1d1ef7ee773b61258ec858ee39853054
+size 71477
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..a5c369dff06e5d099812e6478ae86c087808af49
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..174ae84575204e7cce9eb05a1b885128ccbc5df3
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_1_avgpool_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..f0a9483948f65158c4de04cb48a0bc3b1a25b643
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:acf13ec105f0de33a44fe0f0ebf504b9129a9357262396223da1e9cc6759b0d2
+size 71479
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..2ecdf2b9436ae8229254476196217246d3d22f5b
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..1935037ae32ae28bef16506ed89f466768746d97
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_content/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_content/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..43ec724c4a21019ab0634913da6ce367ca2034a5
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_content/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d2718dd31ad218b386bebfff7732500ca8345e6cceed7b60a697cb0205f0d4ac
+size 72083
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_content/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_content/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..0d480896e870dff6109f5dd9291e1c0e6775acdc
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_content/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_content/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_content/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..6e874213501a1883eaea3be3a6c08de5e7db3dd2
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_content/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_content_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_content_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..3501230978cdb906b978ae2c028fedcf0d9dc296
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_content_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9bb2d03ac51aabf458e2fd1b3dd360ec3b86133366a75e54b5805297c5feed2d
+size 72132
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_content_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_content_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..d03bafe89242f616ef69692dccf42d8bfc186388
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_content_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_content_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_content_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..4868fc4a0eb883e9b8f43563852475ad07210cb5
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_content_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..2b5e3bb139f203af310fb6b919b2349174c1c7d8
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c7282d17625018eeec19ff8bb0e6c98d0d3c1fc02eae1efef90011511f918a32
+size 72089
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..22fedfc7d8ebf1ce277cb569d22851f858421f9a
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..c65e21a729b1aac4230b159ec309cd8788b14e95
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_compression_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_content/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_content/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..d9447babcc2957eae45f11cadd7cfe8a9315b810
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_content/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7e01847a7e5c0bdc2090ab37e602d798aadeeab96b1ff4ccd726d02b72624f6e
+size 71471
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_content/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_content/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..1ce4d6af5dba59d9424c96a584a96f5489bc2311
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_content/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_content/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_content/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..efd0163cb47676a0673ff5d52de68ee70f846347
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_content/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_content_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_content_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..bb9bd3f8d24e0dbb7b61ba14a67e8ef24d2dccf1
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_content_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b7e7b5725502928ad1bc1f5ff9452fca645e199a4a1a16671e8526b9c6ac6e49
+size 72081
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_content_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_content_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..dee7ab08105b2f1e00301ec11fca253c58883870
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_content_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_content_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_content_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..9652124b7faf119b26b1e35d004041ccb4233a0d
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_content_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..5c0bbae98c46cbba662820109b781f6ed68feec6
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:30e2746d6183b03e586550d310661fea1d1ef7ee773b61258ec858ee39853054
+size 71477
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..71dc29657512ff8e8b565ddd5b89a3432c68a54f
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..64b7b4280f819c32122726c94bc74106ec54f60c
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_2_avgpool_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..f0a9483948f65158c4de04cb48a0bc3b1a25b643
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:acf13ec105f0de33a44fe0f0ebf504b9129a9357262396223da1e9cc6759b0d2
+size 71479
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..e2542e7ba156d9628d14cb043bdc04b83bb4a2e3
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..be4830f7eeb1fb80b5f824ace155702f5176a25a
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_content/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_content/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..43ec724c4a21019ab0634913da6ce367ca2034a5
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_content/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d2718dd31ad218b386bebfff7732500ca8345e6cceed7b60a697cb0205f0d4ac
+size 72083
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_content/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_content/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..6939e18cedc716e8546cc89556880da23c123f5b
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_content/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_content/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_content/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..57382e41f341563fb4f71331ab6ab3746eb0e1cf
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_content/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_content_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_content_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..3501230978cdb906b978ae2c028fedcf0d9dc296
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_content_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9bb2d03ac51aabf458e2fd1b3dd360ec3b86133366a75e54b5805297c5feed2d
+size 72132
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_content_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_content_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..910bd1eb1577b17b24ec12b8c3cb240220a38736
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_content_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_content_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_content_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..7f5a364e8514db5aecc1d8186f381c227f9d4fe4
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_content_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..2b5e3bb139f203af310fb6b919b2349174c1c7d8
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c7282d17625018eeec19ff8bb0e6c98d0d3c1fc02eae1efef90011511f918a32
+size 72089
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..690eee551d3d84b73c8aee4736163fa36911daad
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..cd487123d91b7ec03d5ba2fca5c1a73ed3bef0cc
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_compression_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_content/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_content/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..d9447babcc2957eae45f11cadd7cfe8a9315b810
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_content/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7e01847a7e5c0bdc2090ab37e602d798aadeeab96b1ff4ccd726d02b72624f6e
+size 71471
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_content/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_content/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..18b77fd597f8a50c204ce7d6e955ef3966831bde
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_content/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_content/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_content/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..7c9b99747c3f5197c9da57a538182fb359b930d3
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_content/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_content_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_content_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..bb9bd3f8d24e0dbb7b61ba14a67e8ef24d2dccf1
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_content_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b7e7b5725502928ad1bc1f5ff9452fca645e199a4a1a16671e8526b9c6ac6e49
+size 72081
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_content_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_content_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..a429cd932e888cfb4b2dd766cb8ddd045c0ddcb5
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_content_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_content_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_content_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..27b3fe422d872a790d097c23d8d82ee7da2ff60e
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_content_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..5c0bbae98c46cbba662820109b781f6ed68feec6
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:30e2746d6183b03e586550d310661fea1d1ef7ee773b61258ec858ee39853054
+size 71477
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..054ff6fe97b98723ca5666b271a47ad5766b1bf8
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..bee0bd1accdacfe5e4561d10ae37a3ff22193553
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_3_avgpool_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..f0a9483948f65158c4de04cb48a0bc3b1a25b643
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:acf13ec105f0de33a44fe0f0ebf504b9129a9357262396223da1e9cc6759b0d2
+size 71479
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..0dbb2177dead37bd86553371d8b162be293beb87
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..8a14cb8ee48fdcc05acaffe8ac96df2e0023dc6f
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_content/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_content/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..43ec724c4a21019ab0634913da6ce367ca2034a5
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_content/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d2718dd31ad218b386bebfff7732500ca8345e6cceed7b60a697cb0205f0d4ac
+size 72083
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_content/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_content/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..5492755509b8ce1c015729b1a52897da6776275e
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_content/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_content/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_content/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..3ff6451e0b045382580cd623e8273d845e2b08e6
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_content/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_content_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_content_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..3501230978cdb906b978ae2c028fedcf0d9dc296
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_content_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9bb2d03ac51aabf458e2fd1b3dd360ec3b86133366a75e54b5805297c5feed2d
+size 72132
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_content_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_content_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..cb215d7451b85f09d48a6d44c2ace799c968a505
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_content_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_content_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_content_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..c82098b2e9ec0e8b5bb6a05fa52dee8471c4d09e
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_content_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..2b5e3bb139f203af310fb6b919b2349174c1c7d8
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c7282d17625018eeec19ff8bb0e6c98d0d3c1fc02eae1efef90011511f918a32
+size 72089
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..7767c942cfbe0440aa3b73f8d0db04f5625e6229
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..d85000f35636d9f3b8f73431119202b8a3b01fd0
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_compression_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_content/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_content/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..d9447babcc2957eae45f11cadd7cfe8a9315b810
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_content/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7e01847a7e5c0bdc2090ab37e602d798aadeeab96b1ff4ccd726d02b72624f6e
+size 71471
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_content/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_content/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..06709d4224fe419790f17e106ad1f49638b33fc1
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_content/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_content/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_content/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..6b50b1c57b1d4be80554255ec22848d0eaa5379f
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_content/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_content_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_content_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..bb9bd3f8d24e0dbb7b61ba14a67e8ef24d2dccf1
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_content_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b7e7b5725502928ad1bc1f5ff9452fca645e199a4a1a16671e8526b9c6ac6e49
+size 72081
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_content_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_content_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..94b33d7d4ca65726687c6a453d1544ee420daf8e
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_content_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_content_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_content_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..e9e47b23701692f1ed058ca6c4125a2918d2a5cb
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_content_distortion/variables/variables.index differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_distortion/saved_model.pb b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_distortion/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..5c0bbae98c46cbba662820109b781f6ed68feec6
--- /dev/null
+++ b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_distortion/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:30e2746d6183b03e586550d310661fea1d1ef7ee773b61258ec858ee39853054
+size 71477
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_distortion/variables/variables.data-00000-of-00001 b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_distortion/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..6970fcd03c938caeeae6635b8f4bef8cb9d4e83e
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_distortion/variables/variables.data-00000-of-00001 differ
diff --git a/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_distortion/variables/variables.index b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_distortion/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..a5aeb4ea8e272021aa5db018f30ceb9049e19834
Binary files /dev/null and b/uvq/models/aggregationnet_baseline/ytugc20s_4_avgpool_distortion/variables/variables.index differ
diff --git a/uvq/models/compressionnet_baseline/saved_model.pb b/uvq/models/compressionnet_baseline/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..6fc6b95a687f9338492966d1c478e27d53615cdd
--- /dev/null
+++ b/uvq/models/compressionnet_baseline/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:66f6d2daa2b1307eeefa8a9b257306bcf5fc0b31aa8bba4e83ec7e0268692fe4
+size 24752679
diff --git a/uvq/models/compressionnet_baseline/variables/variables.data-00000-of-00001 b/uvq/models/compressionnet_baseline/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..1e9afa363ddb2fecfed19ab992bc23180a6ab790
--- /dev/null
+++ b/uvq/models/compressionnet_baseline/variables/variables.data-00000-of-00001
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:733533d87405b1d20902af28c697c3b1baf337844c844c3726185baf6af61290
+size 65588444
diff --git a/uvq/models/compressionnet_baseline/variables/variables.index b/uvq/models/compressionnet_baseline/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..9a6d62445e5158bcdbeb0ac737fc43af78c0a141
Binary files /dev/null and b/uvq/models/compressionnet_baseline/variables/variables.index differ
diff --git a/uvq/models/contentnet_baseline/saved_model.pb b/uvq/models/contentnet_baseline/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..398b0012c3595bf5bfe4bb00a9428f39877406c2
--- /dev/null
+++ b/uvq/models/contentnet_baseline/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8a5bcae18a35664761553d8006de0b00d7f916ef5032a37755673b14af96b3c2
+size 1681861
diff --git a/uvq/models/contentnet_baseline/variables/variables.data-00000-of-00001 b/uvq/models/contentnet_baseline/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..b4a4808473784f749d80c4d929d29ed8ad5bc17f
--- /dev/null
+++ b/uvq/models/contentnet_baseline/variables/variables.data-00000-of-00001
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4587b51d242886ef47614f2357cb52a7ba57e3786005a8a347d8858ea751997a
+size 48867624
diff --git a/uvq/models/contentnet_baseline/variables/variables.index b/uvq/models/contentnet_baseline/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..a14147b224791684e6cbc72fa56059af5c7ae4c7
Binary files /dev/null and b/uvq/models/contentnet_baseline/variables/variables.index differ
diff --git a/uvq/models/distortionnet_baseline/saved_model.pb b/uvq/models/distortionnet_baseline/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..ed8bfc460ed916ea862fe25dbdfb68c17d7cf653
--- /dev/null
+++ b/uvq/models/distortionnet_baseline/saved_model.pb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fa1190c1c0837d1684d71699cc27732903492b056de9ab9c0cf03138d62fed69
+size 1222827
diff --git a/uvq/models/distortionnet_baseline/variables/variables.data-00000-of-00001 b/uvq/models/distortionnet_baseline/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..abe11a6e670fb9de2efd723991b42c654fefe1c0
--- /dev/null
+++ b/uvq/models/distortionnet_baseline/variables/variables.data-00000-of-00001
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f033d6f6dbabb6f132ccd8fb201c928dac25a134511aa5ab9e039028d25225bc
+size 58421976
diff --git a/uvq/models/distortionnet_baseline/variables/variables.index b/uvq/models/distortionnet_baseline/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..843dc99c4bc148883070304c151fac50f1decf07
Binary files /dev/null and b/uvq/models/distortionnet_baseline/variables/variables.index differ
diff --git a/uvq/requirements.txt b/uvq/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5bf8de1c4a8299978a5321b24bc3e36174614fe1
--- /dev/null
+++ b/uvq/requirements.txt
@@ -0,0 +1,3 @@
+numpy==1.23.1
+Pillow==9.2.0
+tensorflow==2.9.1
diff --git a/uvq/uvq_main.py b/uvq/uvq_main.py
new file mode 100644
index 0000000000000000000000000000000000000000..0dca183869c638020af3da71e78d2dfce3308a5a
--- /dev/null
+++ b/uvq/uvq_main.py
@@ -0,0 +1,60 @@
+"""Run inference with the UVQ model.
+
+Example usage:
+
+python3 uvq_main.py \
+ --input_files="Gaming_1080P-0ce6,20,Gaming_1080P-0ce6_orig.mp4" \
+ --output_dir=results \
+ --model_dir=models \
+ --transpose=False
+
+
+Copyright 2022 Google LLC
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+"""
+
+import tensorflow as tf
+
+import uvq_utils as utils
+from tensorflow.compat.v1 import flags, gfile
+
+
+FLAGS = tf.compat.v1.flags.FLAGS
+
+# Following parameters are required
+flags.DEFINE_string('input_files', '', 'configuration of input files.')
+flags.DEFINE_string('output_dir', '', 'Directory to save results.')
+flags.DEFINE_string('model_dir', 'models', 'Directory to UVQ models.')
+flags.DEFINE_bool('transpose', False, 'Whether to tranpose the input video.')
+
+
+def main(_):
+ # Input must be in format: video_id,video_length,file_path
+ video_id, video_length, filepath = FLAGS.input_files.split(',')
+ video_length = int(video_length)
+
+ output_dir = '%s/%s' % (FLAGS.output_dir, video_id)
+ feature_dir = '%s/features' % output_dir
+ if not gfile.IsDirectory(feature_dir):
+ gfile.MakeDirs(feature_dir)
+
+ utils.generate_features(video_id, video_length, filepath, FLAGS.model_dir,
+ feature_dir, FLAGS.transpose)
+
+ utils.prediction(video_id, video_length, FLAGS.model_dir, feature_dir,
+ output_dir)
+
+
+if __name__ == '__main__':
+ tf.compat.v1.app.run()
diff --git a/uvq/uvq_utils.py b/uvq/uvq_utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..a83a65c170141c055bf31434b7b1dea803ae162e
--- /dev/null
+++ b/uvq/uvq_utils.py
@@ -0,0 +1,342 @@
+"""Utility functions of the UVQ model.
+
+Copyright 2022 Google LLC
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+"""
+
+
+import csv
+import os
+import subprocess
+import tempfile
+
+import numpy as np
+from PIL import Image
+import tensorflow as tf
+
+from tensorflow.compat.v1 import gfile, logging, saved_model
+from tensorflow.compat.v1 import ConfigProto, Session, Graph
+
+
+# Explicitly set input size
+VIDEO_HEIGHT = 720
+VIDEO_WIDTH = 1280
+VIDEO_FPS = 5
+VIDEO_CHANNEL = 3
+
+# Output feature size
+DIM_HEIGHT_FEATURE = 16
+DIM_WIDTH_FEATURE = 16
+DIM_CHANNEL_FEATURE = 100
+
+# ContentNet specs
+INPUT_HEIGHT_CONTENT = 496
+INPUT_WIDTH_CONTENT = 496
+INPUT_CHANNEL_CONTENT = 3
+DIM_LABEL_CONTENT = 3862
+
+def extend_array(rgb, total_len):
+ """Extends the byte array (or truncates) to be total_len"""
+ missing = total_len - len(rgb)
+ if missing < 0:
+ rgb = rgb[0 : total_len]
+ else:
+ rgb.extend(bytearray(missing))
+ return rgb
+
+
+def load_video(filepath, video_length, transpose=False):
+ """Load input video."""
+ # Rotate video if requested
+ if transpose:
+ transpose_param = 'transpose=1,'
+ else:
+ transpose_param = ''
+
+ # Sample at constant frame rate, and save as RGB24 (RGBRGB...)
+ fd, temp_filename = tempfile.mkstemp()
+ fd_small, temp_filename_small = tempfile.mkstemp()
+ cmd = (
+ 'ffmpeg -i %s -filter_complex '
+ ' "[0:v]%sscale=w=%d:h=%d:flags=bicubic:force_original_aspect_ratio=1,'
+ 'pad=%d:%d:(ow-iw)/2:(oh-ih)/2,format=rgb24,split=2[out1][tmp],[tmp]scale=%d:%d:flags=bilinear[out2]"'
+ ' -map [out1] -r %d -f rawvideo -pix_fmt rgb24 -y %s'
+ ' -map [out2] -r %d -f rawvideo -pix_fmt rgb24 -y %s'
+ ) % (filepath, transpose_param, VIDEO_WIDTH, VIDEO_HEIGHT,
+ VIDEO_WIDTH, VIDEO_HEIGHT, INPUT_WIDTH_CONTENT, INPUT_HEIGHT_CONTENT,
+ VIDEO_FPS, temp_filename, VIDEO_FPS, temp_filename_small)
+
+ try:
+ logging.info('Run with cmd:% s\n', cmd)
+ subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
+ except subprocess.CalledProcessError as error:
+ logging.fatal('Run with cmd: %s \n terminated with return code %s\n%s',
+ cmd, str(error.returncode), error.output)
+ raise error
+
+ # For video, the entire video is divided into 1s chunks in 5 fps
+ with gfile.Open(temp_filename, 'rb') as rgb_file, gfile.Open(temp_filename_small, 'rb') as rgb_file_small:
+ single_frame_size = VIDEO_WIDTH * VIDEO_HEIGHT * VIDEO_CHANNEL
+ full_decode_size = video_length * VIDEO_FPS * single_frame_size
+ assert rgb_file.size() >= single_frame_size, f'Decoding failed to output a single frame: {rgb_file.size()} < {single_frame_size}'
+ if rgb_file.size() < full_decode_size:
+ logging.warn('Decoding may be truncated: %d bytes (%d frames) < %d bytes (%d frames),'
+ ' or video length (%ds) may be too incorrect',
+ rgb_file.size(), rgb_file.size() / single_frame_size,
+ full_decode_size, full_decode_size / single_frame_size,
+ video_length)
+
+ rgb = extend_array(bytearray(rgb_file.read()), full_decode_size)
+ rgb_small = extend_array(bytearray(rgb_file_small.read()),
+ video_length * VIDEO_FPS * INPUT_WIDTH_CONTENT * INPUT_HEIGHT_CONTENT * VIDEO_CHANNEL)
+ video = (np.reshape(np.frombuffer(rgb, 'uint8'),
+ (video_length, int(VIDEO_FPS), VIDEO_HEIGHT, VIDEO_WIDTH, 3))/255.0 - 0.5) *2
+ video_resized = (np.reshape(np.frombuffer(rgb_small, 'uint8'),
+ (video_length, int(VIDEO_FPS), INPUT_HEIGHT_CONTENT, INPUT_WIDTH_CONTENT, 3))/255.0 - 0.5) *2
+
+ # Delete temp files
+ os.close(fd)
+ os.remove(temp_filename)
+ os.close(fd_small)
+ os.remove(temp_filename_small)
+ logging.info('Load %s done successfully.', filepath)
+ return video, video_resized
+
+
+def generate_content_feature(video, model_path, input_node, output_nodes):
+ """Extract features from ContentNet."""
+ with Session(graph=Graph(), config=ConfigProto(
+ allow_soft_placement=True, log_device_placement=False)) as sess:
+ saved_model.loader.load(
+ sess, [saved_model.tag_constants.SERVING], model_path)
+
+ label = np.ndarray((video.shape[0], DIM_LABEL_CONTENT), np.float32)
+ feature = np.ndarray((video.shape[0], DIM_HEIGHT_FEATURE,
+ DIM_WIDTH_FEATURE, DIM_CHANNEL_FEATURE), np.float32)
+
+ patch = np.ndarray((1, INPUT_HEIGHT_CONTENT, INPUT_WIDTH_CONTENT,
+ INPUT_CHANNEL_CONTENT), np.float32)
+
+ for k in range(video.shape[0]):
+ patch[0, :] = video[k, 0, :, :, :]
+ patch_feature, patch_label = sess.run(output_nodes,
+ feed_dict={input_node: patch})
+
+ feature[k, :, :, :] = patch_feature
+ label[k, :] = patch_label
+ return feature, label
+
+
+def generate_subnet_feature(video, model_path, input_width, input_height,
+ input_fps, feature_width, feature_height,
+ feature_channel, label_dim, input_node,
+ output_nodes):
+ """Extract features from CompresionNet or DistortionNet."""
+ with Session(graph=Graph(), config=ConfigProto(
+ allow_soft_placement=True, log_device_placement=False)) as sess:
+ saved_model.loader.load(
+ sess, [saved_model.tag_constants.SERVING], model_path)
+
+ num_h = int(VIDEO_HEIGHT / input_height)
+ num_w = int(VIDEO_WIDTH / input_width)
+
+ label = np.ndarray((video.shape[0], num_h, num_w, label_dim), np.float32)
+ feature = np.ndarray((video.shape[0], num_h * feature_height,
+ num_w * feature_width, feature_channel), np.float32)
+
+ if input_fps == 1:
+ patch = np.ndarray((1, input_height, input_width,
+ video.shape[-1]), np.float32)
+ else:
+ patch = np.ndarray((1, input_fps, input_height, input_width,
+ video.shape[-1]), np.float32)
+
+ for k in range(video.shape[0]):
+ for j in range(num_h):
+ for i in range(num_w):
+ if input_fps == 1:
+ patch[0, :] = video[k, 0, j * input_height:(j + 1) * input_height,
+ i * input_width:(i + 1) * input_width, :]
+ else:
+ patch[0, :] = video[k, :, j * input_height:(j + 1) * input_height,
+ i * input_width:(i + 1) * input_width, :]
+
+ patch_feature, patch_label = sess.run(output_nodes,
+ feed_dict={input_node: patch})
+
+ feature[k, j * feature_height:(j + 1) * feature_height, i *
+ feature_width:(i + 1) * feature_width, :] = patch_feature
+
+ label[k, j, i, :] = patch_label
+
+ return feature, label
+
+
+def generate_features(video_id, video_length, filepath, model_dir, output_dir,
+ transpose=False):
+ """Generate features from input video."""
+ video, video_resized = load_video(filepath, video_length, transpose)
+
+ feature_compression, label_compression = generate_subnet_feature(
+ video, '%s/compressionnet_baseline' % model_dir,
+ 320, 180, 5, # input height, weight, fps,
+ 4, 4, 100, 1, # feature map height, width, channels, and label_size
+ 'input_orig:0',
+ ['feature_layer_orig:0', 'compress_level_orig:0'])
+
+ feature_content, label_content = generate_content_feature(
+ video_resized, '%s/contentnet_baseline' % model_dir,
+ 'map/TensorArrayV2Stack/TensorListStack:0',
+ ['final_conv2d/Conv2D:0', 'class_confidence:0'])
+
+ feature_distortion, label_distortion = generate_subnet_feature(
+ video, '%s/distortionnet_baseline' % model_dir,
+ 640, 360, 1, # input height, weight, fps,
+ 8, 8, 100, 26, # feature map height, width, channels, and label_size
+ 'input_images:0',
+ ['feature_map:0', 'dist_type_prediction/dist_type_predictions:0'])
+
+ # Save features
+ fd, temp = tempfile.mkstemp()
+
+ feature_compression.astype('float32').tofile(temp)
+ out_feature = '%s/%s_feature_compression.binary' % (output_dir, video_id)
+ gfile.Copy(temp, out_feature, overwrite=True)
+
+ feature_content.astype('float32').tofile(temp)
+ out_feature = '%s/%s_feature_content.binary' % (output_dir, video_id)
+ gfile.Copy(temp, out_feature, overwrite=True)
+
+ feature_distortion.astype('float32').tofile(temp)
+ out_feature = '%s/%s_feature_distortion.binary' % (output_dir, video_id)
+ gfile.Copy(temp, out_feature, overwrite=True)
+
+ # Feature labels
+ np.savetxt(temp, label_compression.reshape(label_compression.shape[0], -1),
+ fmt='%0.3f', delimiter=',')
+ out_feature = '%s/%s_label_compression.csv' % (output_dir, video_id)
+ gfile.Copy(temp, out_feature, overwrite=True)
+
+ np.savetxt(temp, label_content.reshape(label_content.shape[0], -1),
+ fmt='%0.3f', delimiter=',')
+ out_feature = '%s/%s_label_content.csv' % (output_dir, video_id)
+ gfile.Copy(temp, out_feature, overwrite=True)
+
+ np.savetxt(temp, label_distortion.reshape(label_distortion.shape[0], -1),
+ fmt='%0.3f', delimiter=',')
+ out_feature = '%s/%s_label_distortion.csv' % (output_dir, video_id)
+ gfile.Copy(temp, out_feature, overwrite=True)
+
+ os.close(fd)
+ os.remove(temp)
+
+
+def load_features(video_id, dim_time, feature_dir):
+ """Load pre-generated features."""
+ input_compression_feature = '%s/%s_feature_compression.binary' % (
+ feature_dir, video_id)
+ with gfile.Open(input_compression_feature, 'rb') as input_file:
+ s = input_file.read()
+ with Session() as sess:
+ feature_1d = tf.io.decode_raw(s, out_type=tf.float32)
+
+ feature = tf.reshape(feature_1d,
+ [1, dim_time, DIM_HEIGHT_FEATURE,
+ DIM_WIDTH_FEATURE, DIM_CHANNEL_FEATURE])
+ feature_compression = sess.run(feature)
+
+ input_content_feature = '%s/%s_feature_content.binary' % (
+ feature_dir, video_id)
+ with gfile.Open(input_content_feature, 'rb') as input_file:
+ s = input_file.read()
+ with Session() as sess:
+ feature_1d = tf.io.decode_raw(s, out_type=tf.float32)
+
+ feature = tf.reshape(feature_1d,
+ [1, dim_time, DIM_HEIGHT_FEATURE,
+ DIM_WIDTH_FEATURE, DIM_CHANNEL_FEATURE])
+ feature_content = sess.run(feature)
+
+ input_distortion_feature = '%s/%s_feature_distortion.binary' % (
+ feature_dir, video_id)
+ with gfile.Open(input_distortion_feature, 'rb') as input_file:
+ s = input_file.read()
+ with Session() as sess:
+ feature_1d = tf.io.decode_raw(s, out_type=tf.float32)
+
+ feature = tf.reshape(feature_1d,
+ [1, dim_time, DIM_HEIGHT_FEATURE,
+ DIM_WIDTH_FEATURE, DIM_CHANNEL_FEATURE])
+ feature_distortion = sess.run(feature)
+
+ return feature_compression, feature_content, feature_distortion
+
+
+def prediction(video_id, video_length, model_dir, feature_dir, output_dir):
+ """Predict quality (MOS)."""
+ trainset = 'ytugc20s'
+ all_trainset_subindex = ['0', '1', '2', '3', '4']
+
+ all_feature = ['compression',
+ 'content',
+ 'distortion',
+ 'compression_content',
+ 'compression_distortion',
+ 'content_distortion',
+ 'compression_content_distortion',
+ ]
+ aggregation_model = 'avgpool'
+ all_outputs = []
+ for feature in all_feature:
+ aggregated_mos = 0
+ for trainset_subindex in all_trainset_subindex:
+ model_name = '%s_%s_%s_%s' % (
+ trainset, trainset_subindex, aggregation_model, feature)
+
+ with Session(graph=Graph(), config=ConfigProto(
+ allow_soft_placement=True, log_device_placement=False)) as sess:
+ saved_model.loader.load(
+ sess, [saved_model.tag_constants.SERVING],
+ '%s/aggregationnet_baseline/%s' % (
+ model_dir, model_name))
+
+ [feature_compression, feature_content, feature_distortion
+ ] = load_features(video_id, video_length, feature_dir)
+ feature_compression = feature_compression[
+ :, 0:video_length, :, :, :]
+ feature_content = feature_content[
+ :, 0:video_length, :, :, :]
+ feature_distortion = feature_distortion[
+ :, 0:video_length, :, :, :]
+
+ pred_mos = sess.run(
+ 'Model/mos:0',
+ feed_dict={'feature_compression:0': feature_compression,
+ 'feature_content:0': feature_content,
+ 'feature_distortion:0': feature_distortion,
+ })
+ pred_mos = pred_mos[0][0]
+ aggregated_mos += pred_mos
+
+ aggregated_mos /= len(all_trainset_subindex)
+ all_outputs.append([video_id, feature, aggregated_mos])
+
+ fd, temp = tempfile.mkstemp()
+ with gfile.Open(temp, 'w') as f:
+ writer = csv.writer(f)
+ writer.writerows(all_outputs)
+ out_file = '%s/%s_uvq.csv' % (output_dir, video_id)
+ gfile.Copy(temp, out_file, overwrite=True)
+ os.close(fd)
+ os.remove(temp)