summaryrefslogtreecommitdiff
path: root/cnn_v3
diff options
context:
space:
mode:
Diffstat (limited to 'cnn_v3')
-rw-r--r--cnn_v3/README.md4
-rw-r--r--cnn_v3/docs/HOWTO.md12
-rw-r--r--cnn_v3/tools/weights.js4
-rw-r--r--cnn_v3/training/dataset/full/0001/albedo.pngbin14586 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0001/depth.pngbin21958 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0001/matid.pngbin303 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0001/normal.pngbin32572 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0001/shadow.pngbin985 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0001/target.pngbin28694 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0002/albedo.pngbin14586 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0002/depth.pngbin21958 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0002/matid.pngbin303 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0002/normal.pngbin32572 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0002/shadow.pngbin985 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0002/target.pngbin28694 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0002/transp.pngbin303 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0003/albedo.pngbin14586 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0003/depth.pngbin21958 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0003/normal.pngbin32572 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0003/shadow.pngbin985 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0003/target.pngbin28694 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0003/transp.pngbin303 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0004/albedo.pngbin14586 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0004/depth.pngbin21958 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0004/matid.pngbin303 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0004/normal.pngbin32572 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0004/shadow.pngbin985 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0004/target.pngbin28694 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/0004/transp.pngbin303 -> 0 bytes
-rw-r--r--cnn_v3/training/dataset/full/barb_0001/albedo.pngbin0 -> 967703 bytes
-rw-r--r--cnn_v3/training/dataset/full/barb_0001/depth.pngbin0 -> 913261 bytes
-rw-r--r--cnn_v3/training/dataset/full/barb_0001/matid.pngbin0 -> 3459 bytes
-rw-r--r--cnn_v3/training/dataset/full/barb_0001/normal.pngbin0 -> 795518 bytes
-rw-r--r--cnn_v3/training/dataset/full/barb_0001/shadow.pngbin0 -> 749 bytes
-rw-r--r--cnn_v3/training/dataset/full/barb_0001/source.pngbin0 -> 1718470 bytes
-rw-r--r--cnn_v3/training/dataset/full/barb_0001/target.pngbin0 -> 1376053 bytes
-rw-r--r--cnn_v3/training/dataset/full/barb_0001/transp.pngbin0 -> 372 bytes
-rw-r--r--cnn_v3/training/dataset/full/barc_0001/albedo.pngbin0 -> 538854 bytes
-rw-r--r--cnn_v3/training/dataset/full/barc_0001/depth.pngbin0 -> 124350 bytes
-rw-r--r--cnn_v3/training/dataset/full/barc_0001/matid.pngbin0 -> 368 bytes
-rw-r--r--cnn_v3/training/dataset/full/barc_0001/normal.pngbin0 -> 263177 bytes
-rw-r--r--cnn_v3/training/dataset/full/barc_0001/shadow.pngbin0 -> 740 bytes
-rw-r--r--cnn_v3/training/dataset/full/barc_0001/source.pngbin0 -> 1196044 bytes
-rw-r--r--cnn_v3/training/dataset/full/barc_0001/target.pngbin0 -> 939782 bytes
-rw-r--r--cnn_v3/training/dataset/full/barc_0001/transp.pngbin0 -> 368 bytes
-rw-r--r--cnn_v3/training/dataset/full/class_0001/albedo.pngbin0 -> 1062417 bytes
-rw-r--r--cnn_v3/training/dataset/full/class_0001/depth.pngbin0 -> 708543 bytes
-rw-r--r--cnn_v3/training/dataset/full/class_0001/matid.pngbin0 -> 3264 bytes
-rw-r--r--cnn_v3/training/dataset/full/class_0001/normal.pngbin0 -> 916264 bytes
-rw-r--r--cnn_v3/training/dataset/full/class_0001/shadow.pngbin0 -> 745 bytes
-rw-r--r--cnn_v3/training/dataset/full/class_0001/source.pngbin0 -> 1780247 bytes
-rw-r--r--cnn_v3/training/dataset/full/class_0001/target.pngbin0 -> 1210282 bytes
-rw-r--r--cnn_v3/training/dataset/full/class_0001/transp.pngbin0 -> 10031 bytes
-rw-r--r--cnn_v3/training/dataset/full/monk_0001/albedo.pngbin0 -> 329502 bytes
-rw-r--r--cnn_v3/training/dataset/full/monk_0001/depth.pngbin0 -> 150716 bytes
-rw-r--r--cnn_v3/training/dataset/full/monk_0001/matid.pngbin0 -> 291 bytes
-rw-r--r--cnn_v3/training/dataset/full/monk_0001/normal.pngbin0 -> 323540 bytes
-rw-r--r--cnn_v3/training/dataset/full/monk_0001/shadow.pngbin0 -> 366 bytes
-rw-r--r--cnn_v3/training/dataset/full/monk_0001/source.pngbin0 -> 344777 bytes
-rw-r--r--cnn_v3/training/dataset/full/monk_0001/target.pngbin0 -> 347620 bytes
-rw-r--r--cnn_v3/training/dataset/full/monk_0001/transp.pngbin0 -> 291 bytes
-rw-r--r--cnn_v3/training/dataset/orig/barb_0001/0001.exrbin0 -> 91564636 bytes
-rw-r--r--cnn_v3/training/dataset/orig/barb_0001/albedo.pngbin0 -> 992102 bytes
-rwxr-xr-xcnn_v3/training/dataset/orig/barb_0001/align.sh11
-rw-r--r--cnn_v3/training/dataset/orig/barb_0001/depth.pngbin0 -> 949671 bytes
-rw-r--r--cnn_v3/training/dataset/orig/barb_0001/matid.pngbin0 -> 3155 bytes
-rw-r--r--cnn_v3/training/dataset/orig/barb_0001/normal.pngbin0 -> 838170 bytes
-rw-r--r--cnn_v3/training/dataset/orig/barb_0001/shadow.pngbin0 -> 2425 bytes
-rw-r--r--cnn_v3/training/dataset/orig/barb_0001/source.pngbin0 -> 1811713 bytes
-rw-r--r--cnn_v3/training/dataset/orig/barb_0001/target.pngbin0 -> 1522348 bytes
-rw-r--r--cnn_v3/training/dataset/orig/barb_0001/transp.pngbin0 -> 973 bytes
-rw-r--r--cnn_v3/training/dataset/orig/barc_0001/0001.exrbin0 -> 21761395 bytes
-rw-r--r--cnn_v3/training/dataset/orig/barc_0001/albedo.pngbin0 -> 580758 bytes
-rwxr-xr-xcnn_v3/training/dataset/orig/barc_0001/align.sh11
-rw-r--r--cnn_v3/training/dataset/orig/barc_0001/depth.pngbin0 -> 135217 bytes
-rw-r--r--cnn_v3/training/dataset/orig/barc_0001/matid.pngbin0 -> 973 bytes
-rw-r--r--cnn_v3/training/dataset/orig/barc_0001/normal.pngbin0 -> 288300 bytes
-rw-r--r--cnn_v3/training/dataset/orig/barc_0001/shadow.pngbin0 -> 2425 bytes
-rw-r--r--cnn_v3/training/dataset/orig/barc_0001/source.pngbin0 -> 1307160 bytes
-rw-r--r--cnn_v3/training/dataset/orig/barc_0001/target.pngbin0 -> 1310374 bytes
-rw-r--r--cnn_v3/training/dataset/orig/barc_0001/transp.pngbin0 -> 973 bytes
-rw-r--r--cnn_v3/training/dataset/orig/class_0001/0001.exrbin0 -> 69247661 bytes
-rw-r--r--cnn_v3/training/dataset/orig/class_0001/albedo.pngbin0 -> 1097928 bytes
-rwxr-xr-xcnn_v3/training/dataset/orig/class_0001/align.sh11
-rw-r--r--cnn_v3/training/dataset/orig/class_0001/depth.pngbin0 -> 745440 bytes
-rw-r--r--cnn_v3/training/dataset/orig/class_0001/matid.pngbin0 -> 2987 bytes
-rw-r--r--cnn_v3/training/dataset/orig/class_0001/normal.pngbin0 -> 977138 bytes
-rw-r--r--cnn_v3/training/dataset/orig/class_0001/shadow.pngbin0 -> 2425 bytes
-rw-r--r--cnn_v3/training/dataset/orig/class_0001/source.pngbin0 -> 1841885 bytes
-rw-r--r--cnn_v3/training/dataset/orig/class_0001/target.pngbin0 -> 1431310 bytes
-rw-r--r--cnn_v3/training/dataset/orig/class_0001/transp.pngbin0 -> 9934 bytes
-rw-r--r--cnn_v3/training/dataset/orig/flat_0001/0001.exrbin0 -> 63178800 bytes
-rw-r--r--cnn_v3/training/dataset/orig/flat_0001/albedo.pngbin0 -> 745000 bytes
-rw-r--r--cnn_v3/training/dataset/orig/flat_0001/depth.pngbin0 -> 877347 bytes
-rw-r--r--cnn_v3/training/dataset/orig/flat_0001/matid.pngbin0 -> 973 bytes
-rw-r--r--cnn_v3/training/dataset/orig/flat_0001/normal.pngbin0 -> 1055034 bytes
-rw-r--r--cnn_v3/training/dataset/orig/flat_0001/shadow.pngbin0 -> 2425 bytes
-rw-r--r--cnn_v3/training/dataset/orig/flat_0001/source.pngbin0 -> 691906 bytes
-rw-r--r--cnn_v3/training/dataset/orig/flat_0001/transp.pngbin0 -> 973 bytes
-rw-r--r--cnn_v3/training/dataset/orig/monk_0001/albedo.pngbin0 -> 347816 bytes
-rw-r--r--cnn_v3/training/dataset/orig/monk_0001/depth.pngbin0 -> 158212 bytes
-rwxr-xr-xcnn_v3/training/dataset/orig/monk_0001/go.sh11
-rw-r--r--cnn_v3/training/dataset/orig/monk_0001/matid.png (renamed from cnn_v3/training/dataset/full/0003/matid.png)bin303 -> 304 bytes
-rw-r--r--cnn_v3/training/dataset/orig/monk_0001/normal.pngbin0 -> 346494 bytes
-rw-r--r--cnn_v3/training/dataset/orig/monk_0001/shadow.pngbin0 -> 986 bytes
-rw-r--r--cnn_v3/training/dataset/orig/monk_0001/source.pngbin0 -> 359278 bytes
-rw-r--r--cnn_v3/training/dataset/orig/monk_0001/target.pngbin0 -> 1474398 bytes
-rw-r--r--cnn_v3/training/dataset/orig/monk_0001/transp.png (renamed from cnn_v3/training/dataset/full/0001/transp.png)bin303 -> 304 bytes
-rw-r--r--cnn_v3/training/dataset/orig/tree_0001/0001.exrbin0 -> 80359876 bytes
-rw-r--r--cnn_v3/training/dataset/orig/tree_0001/albedo.pngbin0 -> 927182 bytes
-rw-r--r--cnn_v3/training/dataset/orig/tree_0001/depth.pngbin0 -> 632806 bytes
-rw-r--r--cnn_v3/training/dataset/orig/tree_0001/matid.pngbin0 -> 973 bytes
-rw-r--r--cnn_v3/training/dataset/orig/tree_0001/normal.pngbin0 -> 1097836 bytes
-rw-r--r--cnn_v3/training/dataset/orig/tree_0001/shadow.pngbin0 -> 2425 bytes
-rw-r--r--cnn_v3/training/dataset/orig/tree_0001/source.pngbin0 -> 1155245 bytes
-rw-r--r--cnn_v3/training/dataset/orig/tree_0001/transp.pngbin0 -> 973 bytes
116 files changed, 55 insertions, 9 deletions
diff --git a/cnn_v3/README.md b/cnn_v3/README.md
index a844b1b..bd54e50 100644
--- a/cnn_v3/README.md
+++ b/cnn_v3/README.md
@@ -31,7 +31,7 @@ Add images directly to these directories and commit them.
## Status
-**Phases 1–7 complete.** 36/36 tests pass.
+**Phases 1–9 complete.** 38/38 tests pass. Training bugs fixed (2026-03-27).
| Phase | Status |
|-------|--------|
@@ -42,6 +42,8 @@ Add images directly to these directories and commit them.
| 5 — Parity validation | ✅ max_err=4.88e-4 |
| 6 — Training script | ✅ train_cnn_v3.py |
| 7 — Validation tools | ✅ GBufViewEffect + web sample loader |
+| 8 — Architecture upgrade [8,16] | ✅ enc_channels=[8,16], 16ch split into lo/hi pairs |
+| 9 — Training bug fixes | ✅ dec0 ReLU removed, FiLM MLP loaded from .bin |
See `cnn_v3/docs/HOWTO.md` for the practical playbook (§9 covers validation tools).
See `cnn_v3/docs/CNN_V3.md` for full design.
diff --git a/cnn_v3/docs/HOWTO.md b/cnn_v3/docs/HOWTO.md
index 67f7931..e8fd0a5 100644
--- a/cnn_v3/docs/HOWTO.md
+++ b/cnn_v3/docs/HOWTO.md
@@ -235,7 +235,7 @@ channel-dropout training.
python3 cnn_v3/training/pack_photo_sample.py \
--photo input/photo1.jpg \
--target target/photo1_styled.png \
- --output dataset/photos/sample_001/
+ --output dataset/simple/sample_001/
```
`--target` is required and must be a stylized ground-truth image at the same
@@ -245,9 +245,9 @@ resolution as the photo. The script writes it as `target.png` in the sample dir.
```
dataset/
- blender/
+ full/ # Blender G-buffer samples (--input-mode full)
sample_0001/ sample_0002/ ...
- photos/
+ simple/ # Photo/stylized pairs (--input-mode simple)
sample_001/ sample_002/ ...
```
@@ -399,14 +399,14 @@ Test vectors generated by `cnn_v3/training/gen_test_vectors.py` (PyTorch referen
| Phase | Status | Notes |
|-------|--------|-------|
-| 1 — G-buffer (raster + pack) | ✅ Done | Integrated, 36/36 tests pass |
+| 1 — G-buffer (raster + pack) | ✅ Done | Integrated, 38/38 tests pass |
| 1 — G-buffer (SDF shadow pass) | ✅ Done | `gbuf_shadow.wgsl`, proxy-box SDF |
| 2 — Training infrastructure | ✅ Done | blender_export.py, pack_*_sample.py |
| 3 — WGSL U-Net shaders | ✅ Done | 5 compute shaders + cnn_v3/common snippet |
-| 4 — C++ CNNv3Effect | ✅ Done | FiLM uniform upload, 36/36 tests pass |
+| 4 — C++ CNNv3Effect | ✅ Done | FiLM uniform upload, 38/38 tests pass |
| 5 — Parity validation | ✅ Done | test_cnn_v3_parity.cc, max_err=4.88e-4 |
| 6 — FiLM MLP training | ✅ Done | train_cnn_v3.py + cnn_v3_utils.py written |
-| 7 — G-buffer visualizer (C++) | ✅ Done | GBufViewEffect, 36/36 tests pass |
+| 7 — G-buffer visualizer (C++) | ✅ Done | GBufViewEffect, 38/38 tests pass |
| 8 — Architecture upgrade [8,16] | ✅ Done | enc_channels=[8,16], multi-scale loss, 16ch textures split into lo/hi pairs |
| 7 — Sample loader (web tool) | ✅ Done | "Load sample directory" in cnn_v3/tools/ |
| 9 — Training bug fixes | ✅ Done | dec0 ReLU removed (output unblocked); FiLM MLP loaded at runtime |
diff --git a/cnn_v3/tools/weights.js b/cnn_v3/tools/weights.js
index 11151fe..818a115 100644
--- a/cnn_v3/tools/weights.js
+++ b/cnn_v3/tools/weights.js
@@ -1,4 +1,4 @@
'use strict';
// Auto-generated by export_cnn_v3_weights.py --html — do not edit by hand.
-const CNN_V3_WEIGHTS_B64='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';
-const CNN_V3_FILM_MLP_B64='/PWpvuDmEb5LnNG97JGTPErsO75bKIM+FDQfvs5WYT4I4qG+H0+dvnMBv76pfr2+mdqlPL2sYL7vIIM+SpSaPQaTAz0Lg1w92J8DvXPCg7w7O3E8+BMzPTgWjL0APmK+2yCcvvxKXT307bE8M12NPKK+tjsv8QU86Q+fvbv9/rwtIAE9MGy2vZApvL0AuEK+W0SRPtSwXjy0RYY+uXOSvPqFOT2Lel88H2LgvPnckj1Fe349iOcLvhj5mb6LfIi+aIiZvgEXnr621zA9Bjkbvqemeb4utiW90nMkvgnRFj6VNJy+q3CYPpFOor3dAOu+7tOSvVjNCD6Fl8G+zh2XvPU8Ej1evkq+OnLZPJIR475Mr8e7U8T8Pa5og76WeAe+jRm0PV0L1b6HRa6+5TLQvVzXRL2aDqe9H3J9PY6/HT1SiLm9cZLEvu0HZL7oJAs/TMFbvCWDuz7+ZwY/kmENv8hrHj+qxKg9Wjybvtc31L4tZSS+dUQUvsHRcbxtGkI+cP1hvSEQzL3HD+S9kxTnPZ4BPzy63vq9ujtoPD077r2qels9qpIMvkAmBzyQRjg9cMyGvWlNGzz5Dri9WCvKPC66dD7ksmw+qsGfPVP0SD34OtG95rUiPaUz+71VTFK+M1xsvmJFsT3o51++22EePd2d1Txb/zi+xv9Bvuuhuz1UcEY+jGVCvjrAAzwnATs+4zu9vQDKXr3XOi8+RzJAPmpfhT5RRQC9PO/SPbGnOj2zCKg94Zl5PkHzAD7hxpk92MoIPTbDQjuV/gY+58jivYCs0zwxpVy9B6XYPR+1RTuERC0+4zzpPdhcYT6VGLW9FHw6vagC6LuDbpk9hl3XvaARET1tYRO+vSpnvgrdxr1h0KS8FJk5Pu5ioT2k3eI98iQdPq0s6zyijyG+FcIHvet1Qzz39US9n8gfPlOhK70YiBq+Aal4PMMSXz4eXFY+9IbgvLw1Wb5Dlay7DttQvvAtWz6mM8g9gA3TvSmKJb45oiu8cqsYvlIdIb4vqUM8bKbOvR7SRr4gudg8oHEVvKgDkL1Arsy8GGkZPgBOVTuwDyW+bqgHvvjRFL38nOq9PgxSvmCTaDyAI3k8RuVQvqxo6b241Ry9AB2rOuCUkD3QPdy8YCZ9vUAicbxsO6a9tmI1vlhlA74UzrO9wtgNvsBdIzzGzBQ+MN6avAztTT7AgRI+BZZHvkpVXL606BO+7JuTvgTCLb42qZK8o8IVvjLuqb1MERG+II4lvIiWOj0g6a676Y1PPT2rPT6OqDi++hs7vnltaD3HAUQ+My9ZPr/gyT2g5hY+j0IMvSloRz6vS+Q9q6mCvvY+db5K0ys+TJBTvp4tqj3bY+W92QLkPTQtL76fcjA+i3Q8vd4Q3r5bi1k+TM9gvcYibr7giyY+OI1Xvu7DGruod3Y9BaY5vuWn1j0NEoC9HFNzPHKDl75k4BW+KHYWvhHtebymMc2+FNM9vkTtQ77f5tq+ELaLvjqWoL73dDm+KKxxvaqwFb7U1cI9mmFvvgRjlD0ez5m+6DMWPRp1yzzow1U+OtFbvcbrAL2d7UI+LRr5PaXeyLqxqkY+maEhPsR02b3GJ+49oecGPshq27pDqNS7/SNFvUS8i71z2i09wwyKvQgHib79Ri0+HmIUPr83fT0QqSA+J1+fvH6AujxGnli+x+BwvW1kQLzWTi8+A+9iPuwzrD16cWs+qj9OPkiNAj7AQr87QhZZvl57ar7geVm8mKP8PX6OGD7g9vA8GEcmPoBVvrssio09qlh/vjgahj2opr69XkhIvgyHeb7gn8492E0QPnzlID5Qi6i9fG6gPWSna74SFXa+1jRdvjTZg73Mbmg+Cr9cvuCiDjySq2I+KMR8Pdy8Gz4vsd49p8ibPRPhgj69G1s9y1ggvtem6bwBfwA+0FP/vTLjLz7Uno299Tp2PawJEr3is5+9kQJsPQjM0D1o238+UxrtvS7Lfz2Jkl++VtkDPcrHBr7FIys9ka5QvgU6xL19+ss9rND/PeYgVD4Lxbe9X8ofu2fDJD7vf0S+MJtBvvVUbrxwjiw+vp99vniBvL5MS3S+pkNGvmUEEj1MucW+kI1mPdj7VD6h1A4+hnaIPnjlgr5Ksxk+r20Dvta/SL6WQnG+yiZRPjjYZr0wnC89lJEOPrAVfr28yE6+SNGxPWS2y72ux1++4N8KPCg8i73mvjm+AONVPh6iVT4QToM8nRqaPX4oxD36HV89FYsHvjdHUb61dhM9M7PwvWV5Hb6K9gA+vq1EPulqcj6xK0m+MNoQvvggAbwmFQQ94Na6PC/Rqzw4Vma9pEqaPRIVgr0V8XK+QDg3Ps60iT5NFZc9MHSKvQz/4L3YR1s+ye6tvUvsvb1eg6Y9JkanPDzBhr2ZkaS9XrVdvv53aL05/Ji9+/hqPjYdbD12bYe9253nvegWyb2Kbkq+VReuPXVglD6/y+C9Zi0vvaMem7rAF8I76ETzPKLvND47glS9CccBvXMwZ75YbCg+vwY6PVK0az2cQnC+0ndyPtEDm7xoh1W+uYUGPS2ASj4dh668RPkqPqUyk73gEoo8zfC+vmaUwD2x0yS9hSRdPQ17hj4SShC8A2ECPthPLb3cHx2+uYa5PddtFT5K//s9mmUAvn6AKD7Kh889EVpGPh4m9T7PjBA/As0VP/36OD77Xem72CQGP7MYIT2g02Y+ic8pvorwPD06Kds+P7aAvmxafD6IIVc+mYhUvq9doT2ykZa9XKswvm8uhL3pNxi+9B4yProyc74/y6M9aHc7vrkfNDzH/1G9GBkjPfVqd739NJQ8jJm0PcR6P77wS5c9Ssp5PmTV9b3AE5c8qEwxPqQH1L1QCNO9eKZvvu5leb7cDoq9oFqnvUC6Or6IIyq+xn8TvvBIgbwEL8W9wxvlvfHLdb6Qfee9XvHgvfsxJb4LMXA9F0hDPBMU6Tuw28y8lDvBPfjUlb7/HoG+kjy/PGuVc77YMEE+2nmWvDru1j2MxqY++2G+PbJJIT7Yn64+/3EkPjcoyD5C06e8gGHGOxXm6b2YUlY+crRTPs/mGD4pEGQ+rPPRPXhcej5addw91KZ2Ppo/SD6hVlM+EMMePm6NGj7uUbg8Y8YfvgAmj7t+RIc95g6jvf1L5LwJeuy8TQNlPWC1Yz2zGya+Eh7kvUQ+VL5QGay9I5XQPTP4TbyfPjm9GZmavam3Pj5Q3KS9u7ECPnmbGT3mCSC+XDWLvP2YHL74bD6+fiGjvK4uXD5XIh++Jpw4PbHYKr1t4MU9AXXUPanJCD4ECla+NB4jPgnoPj5zw1I+hwlivvoBVb0TdNU9QApQPFYtfj7TBlU9dHJZPPQPSj3BwN89WBDJPTed/j1TR8M9QV/yvfSK2T0gnUC+pFicPaoUHr4+Rw29BUlwvqqjAr5BP7Q8tDmhvemyrr1+aqS9yThpvcOhhD0E/H89q3kbvsg9Yj7IS0I+uil3vu0agr6e7VI9gsEWvk2xAzxAvDw9ll18vhxgmL1gzMs9yCWDPeCZj7zYQPy9nDaYvTA8Lb0sdBc+sP4qPeYJIT58UJK9+EJzvUDQo73cqkQ+pv1nPipmDb7i6Qs8ELk2Pm+TTj6DiAa+Wp+WPZZVjzozRSG+IAxuPezYIT7uy0c+57hbvONAu738Zno8Ns7dPT5kRD4R3WC9CtY+vrDeLT5wJC2+K4oWvfbvJD6ApDU+o9OkvUDXd77w+VA+8XNhPi55vz3Suou9I2t0PgnHCr6QEta8px4HPod/tr3owOs9vY6HvjsPMj1eQ46+l1OGPvTPFrut0Ym+9OaKPVvLMr4BlEG+RQqBPqNlAj5g4P49YJXJPJ566j37VQe938OtPZICcr4nlX2+//UovhAcKT4Dn2k9bmc6vuQkUj559zi86dznPOcOUr5HF+K9urc/vrjNhT27yoW8Q3PZPXR0QT7sRkK8DS/wPQfX+LwhdHi+Xx6rPWnQNj7QfrA9ck8vvZkCL772AnW7v0fwPURoKz4AQWU9jHwTvsYM1jwgjlC+FAocPiSWXD7fdre822LsPbQkD747bBI+bFPaPa1B7Lo9kWa+JTZfvsWsHT0kkMm9rOdrvoikGL6hM+U98TMWPjmYfr7dmSk9+L2AvbNw2b3fDnq+0P9bPjhHCL5EWoO9XU5DPrDUrz1c+n893QqBPvANGD5078A9DNatPdJsS74i5FE+3FwkvnwEvz10Yuu9EK2RPHjb7r3wPPQ8YH1TvYhfJ770XME9oIsKPGRb4T3SlSU+yxVCvmMbRL1NOUa9ZklDPh22S74NywI9lDMmPmnDCT5ScKe8pMtLPq5xcr4yFLa9nBGYvbLVBr7AEyK9Wm1vPiyNvj0uwAQ+iRrQvWfouzzev4w8q+9FPdJv2L1l6kM+5dFSPog/Cr35HlY+kZmRPqhcCT63dmw+0jyWvVil6r2hXou91gPLvTnsCD5g4HC8rxNavQUeQD2UVQO+l7/RPV924z1wXWi9nuqpvMsvPj7QD48+OkonPv+qKL1I3ic9Y04VvtZM4r3ONMW90GYgvkfPyb15TEE+3uJePtSoHz4ld668+KsRPXZrjD7BzRa+hCXrvZZxkb2vRLu9Sh5KPkB8xDxsOne+k08LvkcUf7wnWzy+/y9FvUnUa7zarwC+sq9tPBzqYj7EZdK8ULslvnCRnz3SkT08OdwPvoAgMb74+c+8u+tCvtir4z0yzFu+yMUqvco4K7zPWKI93YKQveYVyrtyk2O+IBMUPvCIkz2JWhw83xZOvR+zmzzk2+i9THHBvC1Tgj2/2N++HF0gvG/DDr47NxC+MVnGOlt+Gr5lcQI8HH4XvspCCz7qqok+86J2vAr/yb2yYsO+UErpPTTmAL52aRI+JMbUu/i5iT1zyYQ+D3HhPlAeDL4eeAk+8f1fvJxkKT6koWQ+k8tDvnvgVb5qhWY+jKpsPiQFPb6CLYa9JfROPmGSJTxkVxo+dpuFPspZHD7Fo6y9Jwa7PYaVyj2QkSe+vsYCvhhQBr79d+K985TmPcey2TsIHHY9mGBUPe434D3kF8Y90F4dviaRrL7swpK+zoRzPjc0Vr5ClTK+vLyJvaeqAz6z6M29IV8RPm7Rij27Qiu94nNUPkhw0L1IVY68Fn4qvi8xED6Ixwy+vyYZvjvjub0Si0Q8Wf1FvlghBr73+RS+TUwHveH8IL1XrVc8aTE8PDRtur2kszS+KhA2PfWfnT2NjRu97N9cPteiXj48XbE9yiMaPu7ERT3U1Ou9RX1svs4XOj4JSQ+8u9Eqvt4FpT2E7Kc9nmNKPmPcFL6YbEs+z5KlPZGJpz4a9jA+VJPavW770D55IAa+fh8ePi5Joj3m/cG9EB+kPSav7b3+ZAU98LPPvaHfP77eTaa9dVEWvNioDL7YYRA+3/6MPjZ+TD6+EVW9roP4vVbgNb47e1y+tVIhvdLyrz1HNT6+cB2hPkAVbb7qYhK+HU8MviDVBL5Pv3E+zcR3Owt5CD5bUgY+nFAGO3RCgD4Ejks+Mb5mvORSBb7h1F6+f7u/PNpHLL6AQ+g9LuHbPcWLxL2mOoE7jYEIOw5HFz0ygq09nBcNPrb3wT0nGxy91CjHPVOETb40JK691vdfPS9+rL1SZQE+AEVlPTYGL741o9+9pzv7PRI5/b3ZHwy9k2PWO5aJo70xXWy+t/BiviY+T760/ue9UvWovQP0Mr3iH4w8daqUvmwpgD1Kdi699lvLvLu1jT027y498DdJvgAZwL6stpS9CyKPPX9s3z3wwgu+7vFQPhxQ2T0nYRw++x0LPs0jdDxE/h4+HwP7vW+y+7xG/Vc+OuAIvlJNLD0Y1q895O6pOu6h2b1x5H2+4H6AvPKuij5hInY+nFWKvKb4Tz6X+gm+CDEDvQ4QGT7ioh2+Up0vvvfY7j1gW+G8GWcpvGqJcD4BW5A+lmDfvcBCQL3fFBk+s2VYvp4olj0kXIm9mgnyvFQudj4g9eM9og6DvfpAAjyzfiq+DJ/Hvciugr5XD0a9KJCGvi+Nkz0IViS+YHXDvWQsPj0Cvky+i2livvZxlL1IDeW9yqb/PSZQ9L3Gric99IMlPldhdDsRSCw+9TCfvNIPIT6Cc7U8MB7pvRs2WT6eRZa9KaeGPb3cbT5kJbQ9oE+WvB+dT769Ku29XQYxPV4/LL03azs+WKrIPLWxsj0sbey9ywoJvi6/GT5zOku+YxBmvRkSyD0qlxE9B90MPgQQ2T0Muhk9AHPlPejClT4hkTe+iYvxPXqxtj43nZI9XM61Pq4Jlj1Q4M09ZkyLvfGoHT7mABg+ATVyvgeOPz6Y9nW9GEU+vpvmz73iFf+9n1rzPRonkT18Xh69NqFSPkVZTr7sJRm+wGC+PMqxI76X6u89fDIgPiUKIL7490G+6JxjvYrCHr7yMSM9UU7VPLwtDj7k5iy+tdycPISgjjz2yA29IFX+PMraKL5QXUe95HKnPSGx6LtsACQ+fw77vP4UMb7giwI+wLUlPmxKbD37Gd69c86IvukUqb1TD5e8+ltovp/5EL4OMgM+WgT4veeAbz0ncGS9Y29lPqKeWL0QQvU91MHEPdJbG75yB1Q9bio0PoYaVb1Yxc680EkPvpx9Rz5qxcO82PzivRp1KD4W8Uw+APE9Pokd+ryKs9K9d7oTvtUjM7wSAyw9A5vLPWCVJz38glk+wB2UO0C9Hrw/+oy+x895vq2Bnr4Awze+MQoavI+IIL4s05i9SP9OvphlVj6Q1X66s1uDvqCB8z2cIdq8BctcvmKvN75eMyg+D4txvhZTOT/kJsq90C1jPvdTib5+uQQ/tFgMPqb4Xr6LLn+9sXI8PmUuDr7wvmq+lhOUvUJ9yT3cKDk+YuhGvopWDz53mlA+lB9Ivljh4r23MQW+7H6iPfknLz4E4ZQ85UsGPdg0vj2Irs++U+vYPoAGxLxyw946+19Pvv/u0j0giok+ZqMWvhLE8rzgj0k+lTRJPOd1d772GUs+L/KWPmfpET3527A9qtHyPX+waT4gxT2+KkNVvbxdOr4x7zC9';
+const CNN_V3_WEIGHTS_B64='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';
+const CNN_V3_FILM_MLP_B64='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';
diff --git a/cnn_v3/training/dataset/full/0001/albedo.png b/cnn_v3/training/dataset/full/0001/albedo.png
deleted file mode 100644
index 8f64b38..0000000
--- a/cnn_v3/training/dataset/full/0001/albedo.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0001/depth.png b/cnn_v3/training/dataset/full/0001/depth.png
deleted file mode 100644
index c58fcd9..0000000
--- a/cnn_v3/training/dataset/full/0001/depth.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0001/matid.png b/cnn_v3/training/dataset/full/0001/matid.png
deleted file mode 100644
index b4fa98f..0000000
--- a/cnn_v3/training/dataset/full/0001/matid.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0001/normal.png b/cnn_v3/training/dataset/full/0001/normal.png
deleted file mode 100644
index 62f26e3..0000000
--- a/cnn_v3/training/dataset/full/0001/normal.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0001/shadow.png b/cnn_v3/training/dataset/full/0001/shadow.png
deleted file mode 100644
index 0471e7f..0000000
--- a/cnn_v3/training/dataset/full/0001/shadow.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0001/target.png b/cnn_v3/training/dataset/full/0001/target.png
deleted file mode 100644
index 587d54a..0000000
--- a/cnn_v3/training/dataset/full/0001/target.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0002/albedo.png b/cnn_v3/training/dataset/full/0002/albedo.png
deleted file mode 100644
index 8f64b38..0000000
--- a/cnn_v3/training/dataset/full/0002/albedo.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0002/depth.png b/cnn_v3/training/dataset/full/0002/depth.png
deleted file mode 100644
index c58fcd9..0000000
--- a/cnn_v3/training/dataset/full/0002/depth.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0002/matid.png b/cnn_v3/training/dataset/full/0002/matid.png
deleted file mode 100644
index b4fa98f..0000000
--- a/cnn_v3/training/dataset/full/0002/matid.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0002/normal.png b/cnn_v3/training/dataset/full/0002/normal.png
deleted file mode 100644
index 62f26e3..0000000
--- a/cnn_v3/training/dataset/full/0002/normal.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0002/shadow.png b/cnn_v3/training/dataset/full/0002/shadow.png
deleted file mode 100644
index 0471e7f..0000000
--- a/cnn_v3/training/dataset/full/0002/shadow.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0002/target.png b/cnn_v3/training/dataset/full/0002/target.png
deleted file mode 100644
index 587d54a..0000000
--- a/cnn_v3/training/dataset/full/0002/target.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0002/transp.png b/cnn_v3/training/dataset/full/0002/transp.png
deleted file mode 100644
index b4fa98f..0000000
--- a/cnn_v3/training/dataset/full/0002/transp.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0003/albedo.png b/cnn_v3/training/dataset/full/0003/albedo.png
deleted file mode 100644
index 8f64b38..0000000
--- a/cnn_v3/training/dataset/full/0003/albedo.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0003/depth.png b/cnn_v3/training/dataset/full/0003/depth.png
deleted file mode 100644
index c58fcd9..0000000
--- a/cnn_v3/training/dataset/full/0003/depth.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0003/normal.png b/cnn_v3/training/dataset/full/0003/normal.png
deleted file mode 100644
index 62f26e3..0000000
--- a/cnn_v3/training/dataset/full/0003/normal.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0003/shadow.png b/cnn_v3/training/dataset/full/0003/shadow.png
deleted file mode 100644
index 0471e7f..0000000
--- a/cnn_v3/training/dataset/full/0003/shadow.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0003/target.png b/cnn_v3/training/dataset/full/0003/target.png
deleted file mode 100644
index 587d54a..0000000
--- a/cnn_v3/training/dataset/full/0003/target.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0003/transp.png b/cnn_v3/training/dataset/full/0003/transp.png
deleted file mode 100644
index b4fa98f..0000000
--- a/cnn_v3/training/dataset/full/0003/transp.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0004/albedo.png b/cnn_v3/training/dataset/full/0004/albedo.png
deleted file mode 100644
index 8f64b38..0000000
--- a/cnn_v3/training/dataset/full/0004/albedo.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0004/depth.png b/cnn_v3/training/dataset/full/0004/depth.png
deleted file mode 100644
index c58fcd9..0000000
--- a/cnn_v3/training/dataset/full/0004/depth.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0004/matid.png b/cnn_v3/training/dataset/full/0004/matid.png
deleted file mode 100644
index b4fa98f..0000000
--- a/cnn_v3/training/dataset/full/0004/matid.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0004/normal.png b/cnn_v3/training/dataset/full/0004/normal.png
deleted file mode 100644
index 62f26e3..0000000
--- a/cnn_v3/training/dataset/full/0004/normal.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0004/shadow.png b/cnn_v3/training/dataset/full/0004/shadow.png
deleted file mode 100644
index 0471e7f..0000000
--- a/cnn_v3/training/dataset/full/0004/shadow.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0004/target.png b/cnn_v3/training/dataset/full/0004/target.png
deleted file mode 100644
index 587d54a..0000000
--- a/cnn_v3/training/dataset/full/0004/target.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0004/transp.png b/cnn_v3/training/dataset/full/0004/transp.png
deleted file mode 100644
index b4fa98f..0000000
--- a/cnn_v3/training/dataset/full/0004/transp.png
+++ /dev/null
Binary files differ
diff --git a/cnn_v3/training/dataset/full/barb_0001/albedo.png b/cnn_v3/training/dataset/full/barb_0001/albedo.png
new file mode 100644
index 0000000..25070e5
--- /dev/null
+++ b/cnn_v3/training/dataset/full/barb_0001/albedo.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/barb_0001/depth.png b/cnn_v3/training/dataset/full/barb_0001/depth.png
new file mode 100644
index 0000000..3a76e89
--- /dev/null
+++ b/cnn_v3/training/dataset/full/barb_0001/depth.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/barb_0001/matid.png b/cnn_v3/training/dataset/full/barb_0001/matid.png
new file mode 100644
index 0000000..6b7a3c9
--- /dev/null
+++ b/cnn_v3/training/dataset/full/barb_0001/matid.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/barb_0001/normal.png b/cnn_v3/training/dataset/full/barb_0001/normal.png
new file mode 100644
index 0000000..c9fa0f3
--- /dev/null
+++ b/cnn_v3/training/dataset/full/barb_0001/normal.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/barb_0001/shadow.png b/cnn_v3/training/dataset/full/barb_0001/shadow.png
new file mode 100644
index 0000000..0a84060
--- /dev/null
+++ b/cnn_v3/training/dataset/full/barb_0001/shadow.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/barb_0001/source.png b/cnn_v3/training/dataset/full/barb_0001/source.png
new file mode 100644
index 0000000..67e9569
--- /dev/null
+++ b/cnn_v3/training/dataset/full/barb_0001/source.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/barb_0001/target.png b/cnn_v3/training/dataset/full/barb_0001/target.png
new file mode 100644
index 0000000..955677e
--- /dev/null
+++ b/cnn_v3/training/dataset/full/barb_0001/target.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/barb_0001/transp.png b/cnn_v3/training/dataset/full/barb_0001/transp.png
new file mode 100644
index 0000000..b8bd985
--- /dev/null
+++ b/cnn_v3/training/dataset/full/barb_0001/transp.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/barc_0001/albedo.png b/cnn_v3/training/dataset/full/barc_0001/albedo.png
new file mode 100644
index 0000000..5a3013d
--- /dev/null
+++ b/cnn_v3/training/dataset/full/barc_0001/albedo.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/barc_0001/depth.png b/cnn_v3/training/dataset/full/barc_0001/depth.png
new file mode 100644
index 0000000..0022248
--- /dev/null
+++ b/cnn_v3/training/dataset/full/barc_0001/depth.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/barc_0001/matid.png b/cnn_v3/training/dataset/full/barc_0001/matid.png
new file mode 100644
index 0000000..c825fd4
--- /dev/null
+++ b/cnn_v3/training/dataset/full/barc_0001/matid.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/barc_0001/normal.png b/cnn_v3/training/dataset/full/barc_0001/normal.png
new file mode 100644
index 0000000..fa8a8d8
--- /dev/null
+++ b/cnn_v3/training/dataset/full/barc_0001/normal.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/barc_0001/shadow.png b/cnn_v3/training/dataset/full/barc_0001/shadow.png
new file mode 100644
index 0000000..6ddba0f
--- /dev/null
+++ b/cnn_v3/training/dataset/full/barc_0001/shadow.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/barc_0001/source.png b/cnn_v3/training/dataset/full/barc_0001/source.png
new file mode 100644
index 0000000..5485c97
--- /dev/null
+++ b/cnn_v3/training/dataset/full/barc_0001/source.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/barc_0001/target.png b/cnn_v3/training/dataset/full/barc_0001/target.png
new file mode 100644
index 0000000..c288c39
--- /dev/null
+++ b/cnn_v3/training/dataset/full/barc_0001/target.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/barc_0001/transp.png b/cnn_v3/training/dataset/full/barc_0001/transp.png
new file mode 100644
index 0000000..c825fd4
--- /dev/null
+++ b/cnn_v3/training/dataset/full/barc_0001/transp.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/class_0001/albedo.png b/cnn_v3/training/dataset/full/class_0001/albedo.png
new file mode 100644
index 0000000..4debad7
--- /dev/null
+++ b/cnn_v3/training/dataset/full/class_0001/albedo.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/class_0001/depth.png b/cnn_v3/training/dataset/full/class_0001/depth.png
new file mode 100644
index 0000000..90b5853
--- /dev/null
+++ b/cnn_v3/training/dataset/full/class_0001/depth.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/class_0001/matid.png b/cnn_v3/training/dataset/full/class_0001/matid.png
new file mode 100644
index 0000000..3bd95ee
--- /dev/null
+++ b/cnn_v3/training/dataset/full/class_0001/matid.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/class_0001/normal.png b/cnn_v3/training/dataset/full/class_0001/normal.png
new file mode 100644
index 0000000..08d65bb
--- /dev/null
+++ b/cnn_v3/training/dataset/full/class_0001/normal.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/class_0001/shadow.png b/cnn_v3/training/dataset/full/class_0001/shadow.png
new file mode 100644
index 0000000..917c396
--- /dev/null
+++ b/cnn_v3/training/dataset/full/class_0001/shadow.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/class_0001/source.png b/cnn_v3/training/dataset/full/class_0001/source.png
new file mode 100644
index 0000000..176f7c0
--- /dev/null
+++ b/cnn_v3/training/dataset/full/class_0001/source.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/class_0001/target.png b/cnn_v3/training/dataset/full/class_0001/target.png
new file mode 100644
index 0000000..e4efeb8
--- /dev/null
+++ b/cnn_v3/training/dataset/full/class_0001/target.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/class_0001/transp.png b/cnn_v3/training/dataset/full/class_0001/transp.png
new file mode 100644
index 0000000..1bd8458
--- /dev/null
+++ b/cnn_v3/training/dataset/full/class_0001/transp.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/monk_0001/albedo.png b/cnn_v3/training/dataset/full/monk_0001/albedo.png
new file mode 100644
index 0000000..84a16eb
--- /dev/null
+++ b/cnn_v3/training/dataset/full/monk_0001/albedo.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/monk_0001/depth.png b/cnn_v3/training/dataset/full/monk_0001/depth.png
new file mode 100644
index 0000000..ff31c72
--- /dev/null
+++ b/cnn_v3/training/dataset/full/monk_0001/depth.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/monk_0001/matid.png b/cnn_v3/training/dataset/full/monk_0001/matid.png
new file mode 100644
index 0000000..582c655
--- /dev/null
+++ b/cnn_v3/training/dataset/full/monk_0001/matid.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/monk_0001/normal.png b/cnn_v3/training/dataset/full/monk_0001/normal.png
new file mode 100644
index 0000000..9f9d823
--- /dev/null
+++ b/cnn_v3/training/dataset/full/monk_0001/normal.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/monk_0001/shadow.png b/cnn_v3/training/dataset/full/monk_0001/shadow.png
new file mode 100644
index 0000000..dfd78d3
--- /dev/null
+++ b/cnn_v3/training/dataset/full/monk_0001/shadow.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/monk_0001/source.png b/cnn_v3/training/dataset/full/monk_0001/source.png
new file mode 100644
index 0000000..da4bf46
--- /dev/null
+++ b/cnn_v3/training/dataset/full/monk_0001/source.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/monk_0001/target.png b/cnn_v3/training/dataset/full/monk_0001/target.png
new file mode 100644
index 0000000..d4a1c16
--- /dev/null
+++ b/cnn_v3/training/dataset/full/monk_0001/target.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/monk_0001/transp.png b/cnn_v3/training/dataset/full/monk_0001/transp.png
new file mode 100644
index 0000000..582c655
--- /dev/null
+++ b/cnn_v3/training/dataset/full/monk_0001/transp.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/barb_0001/0001.exr b/cnn_v3/training/dataset/orig/barb_0001/0001.exr
new file mode 100644
index 0000000..75fe136
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barb_0001/0001.exr
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/barb_0001/albedo.png b/cnn_v3/training/dataset/orig/barb_0001/albedo.png
new file mode 100644
index 0000000..6f5c175
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barb_0001/albedo.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/barb_0001/align.sh b/cnn_v3/training/dataset/orig/barb_0001/align.sh
new file mode 100755
index 0000000..97c3186
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barb_0001/align.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+mkdir -p clipped
+
+magick "albedo.png" -crop 1256x720+14+0 +repage "clipped/albedo.png"
+magick "depth.png" -crop 1256x720+14+0 +repage "clipped/depth.png"
+magick "matid.png" -crop 1256x720+14+0 +repage "clipped/matid.png"
+magick "normal.png" -crop 1256x720+14+0 +repage "clipped/normal.png"
+magick "shadow.png" -crop 1256x720+14+0 +repage "clipped/shadow.png"
+magick "source.png" -crop 1256x720+14+0 +repage "clipped/source.png"
+magick "transp.png" -crop 1256x720+14+0 +repage "clipped/transp.png"
+magick "target.png" -virtual-pixel black -distort AffineProjection "0.934636,0,0,0.944414,13.54,-2.38" -crop 1256x720+14+0 +repage "clipped/target.png"
diff --git a/cnn_v3/training/dataset/orig/barb_0001/depth.png b/cnn_v3/training/dataset/orig/barb_0001/depth.png
new file mode 100644
index 0000000..cd1aa6e
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barb_0001/depth.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/barb_0001/matid.png b/cnn_v3/training/dataset/orig/barb_0001/matid.png
new file mode 100644
index 0000000..c189b13
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barb_0001/matid.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/barb_0001/normal.png b/cnn_v3/training/dataset/orig/barb_0001/normal.png
new file mode 100644
index 0000000..a8d4053
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barb_0001/normal.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/barb_0001/shadow.png b/cnn_v3/training/dataset/orig/barb_0001/shadow.png
new file mode 100644
index 0000000..0a89035
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barb_0001/shadow.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/barb_0001/source.png b/cnn_v3/training/dataset/orig/barb_0001/source.png
new file mode 100644
index 0000000..ab281a5
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barb_0001/source.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/barb_0001/target.png b/cnn_v3/training/dataset/orig/barb_0001/target.png
new file mode 100644
index 0000000..1e6f0d7
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barb_0001/target.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/barb_0001/transp.png b/cnn_v3/training/dataset/orig/barb_0001/transp.png
new file mode 100644
index 0000000..ba4eb70
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barb_0001/transp.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/barc_0001/0001.exr b/cnn_v3/training/dataset/orig/barc_0001/0001.exr
new file mode 100644
index 0000000..9b073bb
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barc_0001/0001.exr
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/barc_0001/albedo.png b/cnn_v3/training/dataset/orig/barc_0001/albedo.png
new file mode 100644
index 0000000..1c97e6e
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barc_0001/albedo.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/barc_0001/align.sh b/cnn_v3/training/dataset/orig/barc_0001/align.sh
new file mode 100755
index 0000000..63a8ae6
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barc_0001/align.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+mkdir -p clipped
+
+magick "albedo.png" -crop 1221x710+33+8 +repage "clipped/albedo.png"
+magick "depth.png" -crop 1221x710+33+8 +repage "clipped/depth.png"
+magick "matid.png" -crop 1221x710+33+8 +repage "clipped/matid.png"
+magick "normal.png" -crop 1221x710+33+8 +repage "clipped/normal.png"
+magick "shadow.png" -crop 1221x710+33+8 +repage "clipped/shadow.png"
+magick "source.png" -crop 1221x710+33+8 +repage "clipped/source.png"
+magick "transp.png" -crop 1221x710+33+8 +repage "clipped/transp.png"
+magick "target.png" -virtual-pixel black -distort AffineProjection "0.908899,0,0,0.925781,32.82,7.92" -crop 1221x710+33+8 +repage "clipped/target.png"
diff --git a/cnn_v3/training/dataset/orig/barc_0001/depth.png b/cnn_v3/training/dataset/orig/barc_0001/depth.png
new file mode 100644
index 0000000..0a1bd9f
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barc_0001/depth.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/barc_0001/matid.png b/cnn_v3/training/dataset/orig/barc_0001/matid.png
new file mode 100644
index 0000000..ba4eb70
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barc_0001/matid.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/barc_0001/normal.png b/cnn_v3/training/dataset/orig/barc_0001/normal.png
new file mode 100644
index 0000000..13a6473
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barc_0001/normal.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/barc_0001/shadow.png b/cnn_v3/training/dataset/orig/barc_0001/shadow.png
new file mode 100644
index 0000000..0a89035
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barc_0001/shadow.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/barc_0001/source.png b/cnn_v3/training/dataset/orig/barc_0001/source.png
new file mode 100644
index 0000000..0d35827
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barc_0001/source.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/barc_0001/target.png b/cnn_v3/training/dataset/orig/barc_0001/target.png
new file mode 100644
index 0000000..a53ebd6
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barc_0001/target.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/barc_0001/transp.png b/cnn_v3/training/dataset/orig/barc_0001/transp.png
new file mode 100644
index 0000000..ba4eb70
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/barc_0001/transp.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/class_0001/0001.exr b/cnn_v3/training/dataset/orig/class_0001/0001.exr
new file mode 100644
index 0000000..efc7a56
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/class_0001/0001.exr
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/class_0001/albedo.png b/cnn_v3/training/dataset/orig/class_0001/albedo.png
new file mode 100644
index 0000000..f6b6fc2
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/class_0001/albedo.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/class_0001/align.sh b/cnn_v3/training/dataset/orig/class_0001/align.sh
new file mode 100755
index 0000000..a4f4ff8
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/class_0001/align.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+mkdir -p clipped
+
+magick "albedo.png" -crop 1256x717+14+1 +repage "clipped/albedo.png"
+magick "depth.png" -crop 1256x717+14+1 +repage "clipped/depth.png"
+magick "matid.png" -crop 1256x717+14+1 +repage "clipped/matid.png"
+magick "normal.png" -crop 1256x717+14+1 +repage "clipped/normal.png"
+magick "shadow.png" -crop 1256x717+14+1 +repage "clipped/shadow.png"
+magick "source.png" -crop 1256x717+14+1 +repage "clipped/source.png"
+magick "transp.png" -crop 1256x717+14+1 +repage "clipped/transp.png"
+magick "target.png" -virtual-pixel black -distort AffineProjection "0.934588,0,0,0.934842,14.12,1.24" -crop 1256x717+14+1 +repage "clipped/target.png"
diff --git a/cnn_v3/training/dataset/orig/class_0001/depth.png b/cnn_v3/training/dataset/orig/class_0001/depth.png
new file mode 100644
index 0000000..5749e39
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/class_0001/depth.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/class_0001/matid.png b/cnn_v3/training/dataset/orig/class_0001/matid.png
new file mode 100644
index 0000000..a7c5fb5
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/class_0001/matid.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/class_0001/normal.png b/cnn_v3/training/dataset/orig/class_0001/normal.png
new file mode 100644
index 0000000..2ef1770
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/class_0001/normal.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/class_0001/shadow.png b/cnn_v3/training/dataset/orig/class_0001/shadow.png
new file mode 100644
index 0000000..0a89035
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/class_0001/shadow.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/class_0001/source.png b/cnn_v3/training/dataset/orig/class_0001/source.png
new file mode 100644
index 0000000..320a18b
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/class_0001/source.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/class_0001/target.png b/cnn_v3/training/dataset/orig/class_0001/target.png
new file mode 100644
index 0000000..a0b3935
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/class_0001/target.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/class_0001/transp.png b/cnn_v3/training/dataset/orig/class_0001/transp.png
new file mode 100644
index 0000000..45ff42e
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/class_0001/transp.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/flat_0001/0001.exr b/cnn_v3/training/dataset/orig/flat_0001/0001.exr
new file mode 100644
index 0000000..c64346f
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/flat_0001/0001.exr
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/flat_0001/albedo.png b/cnn_v3/training/dataset/orig/flat_0001/albedo.png
new file mode 100644
index 0000000..195f77a
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/flat_0001/albedo.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/flat_0001/depth.png b/cnn_v3/training/dataset/orig/flat_0001/depth.png
new file mode 100644
index 0000000..42c3794
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/flat_0001/depth.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/flat_0001/matid.png b/cnn_v3/training/dataset/orig/flat_0001/matid.png
new file mode 100644
index 0000000..ba4eb70
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/flat_0001/matid.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/flat_0001/normal.png b/cnn_v3/training/dataset/orig/flat_0001/normal.png
new file mode 100644
index 0000000..a28bd8d
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/flat_0001/normal.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/flat_0001/shadow.png b/cnn_v3/training/dataset/orig/flat_0001/shadow.png
new file mode 100644
index 0000000..0a89035
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/flat_0001/shadow.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/flat_0001/source.png b/cnn_v3/training/dataset/orig/flat_0001/source.png
new file mode 100644
index 0000000..86d9c83
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/flat_0001/source.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/flat_0001/transp.png b/cnn_v3/training/dataset/orig/flat_0001/transp.png
new file mode 100644
index 0000000..ba4eb70
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/flat_0001/transp.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/monk_0001/albedo.png b/cnn_v3/training/dataset/orig/monk_0001/albedo.png
new file mode 100644
index 0000000..9e938f6
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/monk_0001/albedo.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/monk_0001/depth.png b/cnn_v3/training/dataset/orig/monk_0001/depth.png
new file mode 100644
index 0000000..a9f4799
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/monk_0001/depth.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/monk_0001/go.sh b/cnn_v3/training/dataset/orig/monk_0001/go.sh
new file mode 100755
index 0000000..de1ce0d
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/monk_0001/go.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+mkdir -p clipped
+magick "albedo.png" -crop 627x357+9+2 +repage "clipped/albedo.png"
+magick "depth.png" -crop 627x357+9+2 +repage "clipped/depth.png"
+magick "matid.png" -crop 627x357+9+2 +repage "clipped/matid.png"
+magick "normal.png" -crop 627x357+9+2 +repage "clipped/normal.png"
+magick "shadow.png" -crop 627x357+9+2 +repage "clipped/shadow.png"
+magick "source.png" -crop 627x357+9+2 +repage "clipped/source.png"
+magick "target.png" -crop 627x357+9+2 +repage "clipped/target.png"
+magick "transp.png" -crop 627x357+9+2 +repage "clipped/transp.png"
+magick "target.png" -virtual-pixel black -distort AffineProjection "0.466970,0,0,0.467532,8.90,2.36" -crop 627x357+9+2 +repage "clipped/target.png"
diff --git a/cnn_v3/training/dataset/full/0003/matid.png b/cnn_v3/training/dataset/orig/monk_0001/matid.png
index b4fa98f..2428f72 100644
--- a/cnn_v3/training/dataset/full/0003/matid.png
+++ b/cnn_v3/training/dataset/orig/monk_0001/matid.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/monk_0001/normal.png b/cnn_v3/training/dataset/orig/monk_0001/normal.png
new file mode 100644
index 0000000..502a826
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/monk_0001/normal.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/monk_0001/shadow.png b/cnn_v3/training/dataset/orig/monk_0001/shadow.png
new file mode 100644
index 0000000..fb21a2e
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/monk_0001/shadow.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/monk_0001/source.png b/cnn_v3/training/dataset/orig/monk_0001/source.png
new file mode 100644
index 0000000..04fec3a
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/monk_0001/source.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/monk_0001/target.png b/cnn_v3/training/dataset/orig/monk_0001/target.png
new file mode 100644
index 0000000..ae92ad3
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/monk_0001/target.png
Binary files differ
diff --git a/cnn_v3/training/dataset/full/0001/transp.png b/cnn_v3/training/dataset/orig/monk_0001/transp.png
index b4fa98f..2428f72 100644
--- a/cnn_v3/training/dataset/full/0001/transp.png
+++ b/cnn_v3/training/dataset/orig/monk_0001/transp.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/tree_0001/0001.exr b/cnn_v3/training/dataset/orig/tree_0001/0001.exr
new file mode 100644
index 0000000..29f16a2
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/tree_0001/0001.exr
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/tree_0001/albedo.png b/cnn_v3/training/dataset/orig/tree_0001/albedo.png
new file mode 100644
index 0000000..6e6a55f
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/tree_0001/albedo.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/tree_0001/depth.png b/cnn_v3/training/dataset/orig/tree_0001/depth.png
new file mode 100644
index 0000000..89c9324
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/tree_0001/depth.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/tree_0001/matid.png b/cnn_v3/training/dataset/orig/tree_0001/matid.png
new file mode 100644
index 0000000..ba4eb70
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/tree_0001/matid.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/tree_0001/normal.png b/cnn_v3/training/dataset/orig/tree_0001/normal.png
new file mode 100644
index 0000000..1d0f951
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/tree_0001/normal.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/tree_0001/shadow.png b/cnn_v3/training/dataset/orig/tree_0001/shadow.png
new file mode 100644
index 0000000..0a89035
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/tree_0001/shadow.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/tree_0001/source.png b/cnn_v3/training/dataset/orig/tree_0001/source.png
new file mode 100644
index 0000000..513024c
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/tree_0001/source.png
Binary files differ
diff --git a/cnn_v3/training/dataset/orig/tree_0001/transp.png b/cnn_v3/training/dataset/orig/tree_0001/transp.png
new file mode 100644
index 0000000..ba4eb70
--- /dev/null
+++ b/cnn_v3/training/dataset/orig/tree_0001/transp.png
Binary files differ