Spaces:
Runtime error
Runtime error
Commit
·
f1df74a
0
Parent(s):
init
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +35 -0
- .gitignore +6 -0
- LICENSE +201 -0
- README.md +83 -0
- app.py +1079 -0
- assets/traj_layout.png +0 -0
- configs/inference/config_both.yaml +104 -0
- configs/inference/run.sh +52 -0
- examples/camera_poses/test_camera_018f7907401f2fef.json +1 -0
- examples/camera_poses/test_camera_088b93f15ca8745d.json +1 -0
- examples/camera_poses/test_camera_1424acd0007d40b5.json +1 -0
- examples/camera_poses/test_camera_D.json +226 -0
- examples/camera_poses/test_camera_I.json +226 -0
- examples/camera_poses/test_camera_I_0.2x.json +226 -0
- examples/camera_poses/test_camera_I_0.4x.json +226 -0
- examples/camera_poses/test_camera_I_1.0x.json +226 -0
- examples/camera_poses/test_camera_I_2.0x.json +226 -0
- examples/camera_poses/test_camera_L.json +226 -0
- examples/camera_poses/test_camera_O.json +226 -0
- examples/camera_poses/test_camera_O_0.2x.json +226 -0
- examples/camera_poses/test_camera_O_0.4x.json +226 -0
- examples/camera_poses/test_camera_O_1.0x.json +226 -0
- examples/camera_poses/test_camera_O_2.0x.json +226 -0
- examples/camera_poses/test_camera_R.json +226 -0
- examples/camera_poses/test_camera_Round-RI-120.json +226 -0
- examples/camera_poses/test_camera_Round-RI.json +226 -0
- examples/camera_poses/test_camera_Round-RI_90.json +226 -0
- examples/camera_poses/test_camera_Round-ZoomIn.json +226 -0
- examples/camera_poses/test_camera_SPIN-ACW-60.json +226 -0
- examples/camera_poses/test_camera_SPIN-CW-60.json +226 -0
- examples/camera_poses/test_camera_U.json +226 -0
- examples/camera_poses/test_camera_b133a504fc90a2d1.json +1 -0
- examples/camera_poses/test_camera_d9642c8efc01481d.json +1 -0
- examples/camera_poses/test_camera_d971457c81bca597.json +1 -0
- examples/trajectories/curve_1.txt +59 -0
- examples/trajectories/curve_2.txt +80 -0
- examples/trajectories/curve_3.txt +150 -0
- examples/trajectories/curve_4.txt +137 -0
- examples/trajectories/horizon_2.txt +48 -0
- examples/trajectories/shake_1.txt +205 -0
- examples/trajectories/shake_2.txt +156 -0
- examples/trajectories/shaking_10.txt +373 -0
- gradio_utils/camera_utils.py +146 -0
- gradio_utils/flow_utils.py +69 -0
- gradio_utils/traj_utils.py +104 -0
- gradio_utils/utils.py +175 -0
- lvdm/basics.py +106 -0
- lvdm/common.py +142 -0
- lvdm/distributions.py +95 -0
- lvdm/ema.py +76 -0
.gitattributes
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
.gitignore
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# main/evaluation
|
2 |
+
.vscode/
|
3 |
+
|
4 |
+
*.pyc
|
5 |
+
gradio_temp
|
6 |
+
*.pth
|
LICENSE
ADDED
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Apache License
|
2 |
+
Version 2.0, January 2004
|
3 |
+
http://www.apache.org/licenses/
|
4 |
+
|
5 |
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
6 |
+
|
7 |
+
1. Definitions.
|
8 |
+
|
9 |
+
"License" shall mean the terms and conditions for use, reproduction,
|
10 |
+
and distribution as defined by Sections 1 through 9 of this document.
|
11 |
+
|
12 |
+
"Licensor" shall mean the copyright owner or entity authorized by
|
13 |
+
the copyright owner that is granting the License.
|
14 |
+
|
15 |
+
"Legal Entity" shall mean the union of the acting entity and all
|
16 |
+
other entities that control, are controlled by, or are under common
|
17 |
+
control with that entity. For the purposes of this definition,
|
18 |
+
"control" means (i) the power, direct or indirect, to cause the
|
19 |
+
direction or management of such entity, whether by contract or
|
20 |
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
21 |
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
22 |
+
|
23 |
+
"You" (or "Your") shall mean an individual or Legal Entity
|
24 |
+
exercising permissions granted by this License.
|
25 |
+
|
26 |
+
"Source" form shall mean the preferred form for making modifications,
|
27 |
+
including but not limited to software source code, documentation
|
28 |
+
source, and configuration files.
|
29 |
+
|
30 |
+
"Object" form shall mean any form resulting from mechanical
|
31 |
+
transformation or translation of a Source form, including but
|
32 |
+
not limited to compiled object code, generated documentation,
|
33 |
+
and conversions to other media types.
|
34 |
+
|
35 |
+
"Work" shall mean the work of authorship, whether in Source or
|
36 |
+
Object form, made available under the License, as indicated by a
|
37 |
+
copyright notice that is included in or attached to the work
|
38 |
+
(an example is provided in the Appendix below).
|
39 |
+
|
40 |
+
"Derivative Works" shall mean any work, whether in Source or Object
|
41 |
+
form, that is based on (or derived from) the Work and for which the
|
42 |
+
editorial revisions, annotations, elaborations, or other modifications
|
43 |
+
represent, as a whole, an original work of authorship. For the purposes
|
44 |
+
of this License, Derivative Works shall not include works that remain
|
45 |
+
separable from, or merely link (or bind by name) to the interfaces of,
|
46 |
+
the Work and Derivative Works thereof.
|
47 |
+
|
48 |
+
"Contribution" shall mean any work of authorship, including
|
49 |
+
the original version of the Work and any modifications or additions
|
50 |
+
to that Work or Derivative Works thereof, that is intentionally
|
51 |
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
52 |
+
or by an individual or Legal Entity authorized to submit on behalf of
|
53 |
+
the copyright owner. For the purposes of this definition, "submitted"
|
54 |
+
means any form of electronic, verbal, or written communication sent
|
55 |
+
to the Licensor or its representatives, including but not limited to
|
56 |
+
communication on electronic mailing lists, source code control systems,
|
57 |
+
and issue tracking systems that are managed by, or on behalf of, the
|
58 |
+
Licensor for the purpose of discussing and improving the Work, but
|
59 |
+
excluding communication that is conspicuously marked or otherwise
|
60 |
+
designated in writing by the copyright owner as "Not a Contribution."
|
61 |
+
|
62 |
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
63 |
+
on behalf of whom a Contribution has been received by Licensor and
|
64 |
+
subsequently incorporated within the Work.
|
65 |
+
|
66 |
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
67 |
+
this License, each Contributor hereby grants to You a perpetual,
|
68 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
69 |
+
copyright license to reproduce, prepare Derivative Works of,
|
70 |
+
publicly display, publicly perform, sublicense, and distribute the
|
71 |
+
Work and such Derivative Works in Source or Object form.
|
72 |
+
|
73 |
+
3. Grant of Patent License. Subject to the terms and conditions of
|
74 |
+
this License, each Contributor hereby grants to You a perpetual,
|
75 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
76 |
+
(except as stated in this section) patent license to make, have made,
|
77 |
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
78 |
+
where such license applies only to those patent claims licensable
|
79 |
+
by such Contributor that are necessarily infringed by their
|
80 |
+
Contribution(s) alone or by combination of their Contribution(s)
|
81 |
+
with the Work to which such Contribution(s) was submitted. If You
|
82 |
+
institute patent litigation against any entity (including a
|
83 |
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
84 |
+
or a Contribution incorporated within the Work constitutes direct
|
85 |
+
or contributory patent infringement, then any patent licenses
|
86 |
+
granted to You under this License for that Work shall terminate
|
87 |
+
as of the date such litigation is filed.
|
88 |
+
|
89 |
+
4. Redistribution. You may reproduce and distribute copies of the
|
90 |
+
Work or Derivative Works thereof in any medium, with or without
|
91 |
+
modifications, and in Source or Object form, provided that You
|
92 |
+
meet the following conditions:
|
93 |
+
|
94 |
+
(a) You must give any other recipients of the Work or
|
95 |
+
Derivative Works a copy of this License; and
|
96 |
+
|
97 |
+
(b) You must cause any modified files to carry prominent notices
|
98 |
+
stating that You changed the files; and
|
99 |
+
|
100 |
+
(c) You must retain, in the Source form of any Derivative Works
|
101 |
+
that You distribute, all copyright, patent, trademark, and
|
102 |
+
attribution notices from the Source form of the Work,
|
103 |
+
excluding those notices that do not pertain to any part of
|
104 |
+
the Derivative Works; and
|
105 |
+
|
106 |
+
(d) If the Work includes a "NOTICE" text file as part of its
|
107 |
+
distribution, then any Derivative Works that You distribute must
|
108 |
+
include a readable copy of the attribution notices contained
|
109 |
+
within such NOTICE file, excluding those notices that do not
|
110 |
+
pertain to any part of the Derivative Works, in at least one
|
111 |
+
of the following places: within a NOTICE text file distributed
|
112 |
+
as part of the Derivative Works; within the Source form or
|
113 |
+
documentation, if provided along with the Derivative Works; or,
|
114 |
+
within a display generated by the Derivative Works, if and
|
115 |
+
wherever such third-party notices normally appear. The contents
|
116 |
+
of the NOTICE file are for informational purposes only and
|
117 |
+
do not modify the License. You may add Your own attribution
|
118 |
+
notices within Derivative Works that You distribute, alongside
|
119 |
+
or as an addendum to the NOTICE text from the Work, provided
|
120 |
+
that such additional attribution notices cannot be construed
|
121 |
+
as modifying the License.
|
122 |
+
|
123 |
+
You may add Your own copyright statement to Your modifications and
|
124 |
+
may provide additional or different license terms and conditions
|
125 |
+
for use, reproduction, or distribution of Your modifications, or
|
126 |
+
for any such Derivative Works as a whole, provided Your use,
|
127 |
+
reproduction, and distribution of the Work otherwise complies with
|
128 |
+
the conditions stated in this License.
|
129 |
+
|
130 |
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
131 |
+
any Contribution intentionally submitted for inclusion in the Work
|
132 |
+
by You to the Licensor shall be under the terms and conditions of
|
133 |
+
this License, without any additional terms or conditions.
|
134 |
+
Notwithstanding the above, nothing herein shall supersede or modify
|
135 |
+
the terms of any separate license agreement you may have executed
|
136 |
+
with Licensor regarding such Contributions.
|
137 |
+
|
138 |
+
6. Trademarks. This License does not grant permission to use the trade
|
139 |
+
names, trademarks, service marks, or product names of the Licensor,
|
140 |
+
except as required for reasonable and customary use in describing the
|
141 |
+
origin of the Work and reproducing the content of the NOTICE file.
|
142 |
+
|
143 |
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
144 |
+
agreed to in writing, Licensor provides the Work (and each
|
145 |
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
146 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
147 |
+
implied, including, without limitation, any warranties or conditions
|
148 |
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
149 |
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
150 |
+
appropriateness of using or redistributing the Work and assume any
|
151 |
+
risks associated with Your exercise of permissions under this License.
|
152 |
+
|
153 |
+
8. Limitation of Liability. In no event and under no legal theory,
|
154 |
+
whether in tort (including negligence), contract, or otherwise,
|
155 |
+
unless required by applicable law (such as deliberate and grossly
|
156 |
+
negligent acts) or agreed to in writing, shall any Contributor be
|
157 |
+
liable to You for damages, including any direct, indirect, special,
|
158 |
+
incidental, or consequential damages of any character arising as a
|
159 |
+
result of this License or out of the use or inability to use the
|
160 |
+
Work (including but not limited to damages for loss of goodwill,
|
161 |
+
work stoppage, computer failure or malfunction, or any and all
|
162 |
+
other commercial damages or losses), even if such Contributor
|
163 |
+
has been advised of the possibility of such damages.
|
164 |
+
|
165 |
+
9. Accepting Warranty or Additional Liability. While redistributing
|
166 |
+
the Work or Derivative Works thereof, You may choose to offer,
|
167 |
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
168 |
+
or other liability obligations and/or rights consistent with this
|
169 |
+
License. However, in accepting such obligations, You may act only
|
170 |
+
on Your own behalf and on Your sole responsibility, not on behalf
|
171 |
+
of any other Contributor, and only if You agree to indemnify,
|
172 |
+
defend, and hold each Contributor harmless for any liability
|
173 |
+
incurred by, or claims asserted against, such Contributor by reason
|
174 |
+
of your accepting any such warranty or additional liability.
|
175 |
+
|
176 |
+
END OF TERMS AND CONDITIONS
|
177 |
+
|
178 |
+
APPENDIX: How to apply the Apache License to your work.
|
179 |
+
|
180 |
+
To apply the Apache License to your work, attach the following
|
181 |
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
182 |
+
replaced with your own identifying information. (Don't include
|
183 |
+
the brackets!) The text should be enclosed in the appropriate
|
184 |
+
comment syntax for the file format. We also recommend that a
|
185 |
+
file or class name and description of purpose be included on the
|
186 |
+
same "printed page" as the copyright notice for easier
|
187 |
+
identification within third-party archives.
|
188 |
+
|
189 |
+
Copyright [yyyy] [name of copyright owner]
|
190 |
+
|
191 |
+
Licensed under the Apache License, Version 2.0 (the "License");
|
192 |
+
you may not use this file except in compliance with the License.
|
193 |
+
You may obtain a copy of the License at
|
194 |
+
|
195 |
+
http://www.apache.org/licenses/LICENSE-2.0
|
196 |
+
|
197 |
+
Unless required by applicable law or agreed to in writing, software
|
198 |
+
distributed under the License is distributed on an "AS IS" BASIS,
|
199 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
200 |
+
See the License for the specific language governing permissions and
|
201 |
+
limitations under the License.
|
README.md
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
<div align="center">
|
3 |
+
<!-- <h1>AnimateZero</h1> -->
|
4 |
+
<h3><b>MotionCtrl</b>: A Unified and Flexible
|
5 |
+
Motion Controller
|
6 |
+
for Video Generation</h3>
|
7 |
+
|
8 |
+
<!-- [](https://wzhouxiff.github.io/projects/MotionCtrl/assets/paper/MotionCtrl.pdf)   [](https://arxiv.org/pdf/2312.03641.pdf)   [
|
11 |
+
](https://wzhouxiff.github.io/projects/MotionCtrl/)   []() -->
|
13 |
+
|
14 |
+
[](https://wzhouxiff.github.io/projects/MotionCtrl/assets/paper/MotionCtrl.pdf)   [](https://arxiv.org/pdf/2312.03641.pdf)   [
|
18 |
+
](https://wzhouxiff.github.io/projects/MotionCtrl/)   []()
|
20 |
+
|
21 |
+
[Zhouxia Wang](https://vvictoryuki.github.io/website/)<sup>1,2</sup>, [Ziyang Yuan](https://github.com/jiangyzy)<sup>1,4</sup>, [Xintao Wang](https://xinntao.github.io/)<sup>1,3</sup>, [Tianshui Chen](http://tianshuichen.com/)<sup>6</sup>, [Menghan Xia](https://menghanxia.github.io/)<sup>3</sup>, [Ping Luo](http://luoping.me/)<sup>2,5</sup>, [Ying Shan](https://scholar.google.com/citations?hl=zh-CN&user=4oXBp9UAAAAJ)<sup>1,3</sup>
|
22 |
+
|
23 |
+
<sup>1</sup> ARC Lab, Tencent PCG, <sup>2</sup> The University of Hong Kong, <sup>3</sup> Tencent AI Lab, <sup>4</sup> Tsinghua University, <sup>5</sup> Shanghai AI Laboratory, <sup>6</sup> Guangdong University of Technology
|
24 |
+
|
25 |
+
|
26 |
+
</div>
|
27 |
+
|
28 |
+
<!-- ## Results of MotionCtrl -->
|
29 |
+
|
30 |
+
Our proposed <b>MotionCtrl</b> is capable of independently controlling the complex camera motion and object motion of the generated videos, with <b>only a unified</b> model.
|
31 |
+
There are some results attained with <b>MotionCtrl</b> and more results are showcased in our [Project Page](https://wzhouxiff.github.io/projects/MotionCtrl/).
|
32 |
+
|
33 |
+
<!-- </br>
|
34 |
+
<video poster="" id="steve" autoplay controls muted loop playsinline height="100%" width="100%">
|
35 |
+
<source src="https://wzhouxiff.github.io/projects/MotionCtrl/assets/videos/teasers/camera_d971457c81bca597.mp4" type="video/mp4">
|
36 |
+
</video>
|
37 |
+
<video poster="" id="steve" autoplay controls muted loop playsinline height="100%" width="100%">
|
38 |
+
<source src="https://wzhouxiff.github.io/projects/MotionCtrl/assets/videos/teasers/camera_Round-R_ZoomIn.mp4" type="video/mp4">
|
39 |
+
</video>
|
40 |
+
<video poster="" id="steve" autoplay controls muted loop playsinline height="100%" width="100%">
|
41 |
+
<source src="https://wzhouxiff.github.io/projects/MotionCtrl/assets/videos/teasers/shake_1.mp4" type="video/mp4">
|
42 |
+
</video>
|
43 |
+
<video poster="" id="steve" autoplay controls muted loop playsinline height="100%" width="100%">
|
44 |
+
<source src="https://wzhouxiff.github.io/projects/MotionCtrl/assets/videos/teasers/s_curve_3_v1.mp4" type="video/mp4">
|
45 |
+
</video> -->
|
46 |
+
|
47 |
+
<div align="center">
|
48 |
+
<img src="assets/hpxvu-3d8ym.gif", width="600">
|
49 |
+
<img src="assets/w3nb7-9vz5t.gif", width="600">
|
50 |
+
<img src="assets/62n2a-wuvsw.gif", width="600">
|
51 |
+
<img src="assets/ilw96-ak827.gif", width="600">
|
52 |
+
</div>
|
53 |
+
|
54 |
+
|
55 |
+
## Updating
|
56 |
+
- [x] Release MotionCtrl depolyed on *LVDM/VideoCrafter*
|
57 |
+
- [ ] Gradio Demo Available
|
58 |
+
|
59 |
+
<!-- ## training
|
60 |
+
sh configs/training/train_cmcm.sh
|
61 |
+
sh configs/training/train_omcm_dense.sh
|
62 |
+
sh configs/training/train_omcm_sparse.sh -->
|
63 |
+
|
64 |
+
## Inference
|
65 |
+
|
66 |
+
1. Download the weights of MotionCtrl from [weipan](https://drive.weixin.qq.com/s?k=AJEAIQdfAAogLtIAPh) to `./checkpoints`.
|
67 |
+
2. Go into `configs/inference/run.sh` and set `condtype` as 'camera_motion', 'object_motion', or 'both'.
|
68 |
+
- `condtype=camera_motion` means only control the **camera motion** in the generated video.
|
69 |
+
- `condtype=object_motion` means only control the **object motion** in the generated video.
|
70 |
+
- `condtype=both` means control the camera motion and object motion in the generated video **simultaneously**.
|
71 |
+
3. sh configs/inference/run.sh
|
72 |
+
|
73 |
+
## Citation
|
74 |
+
If you make use of our work, please cite our paper.
|
75 |
+
```bibtex
|
76 |
+
@inproceedings{wang2023motionctrl,
|
77 |
+
title={MotionCtrl: A Unified and Flexible Motion Controller for Video Generation},
|
78 |
+
author={Wang, Zhouxia and Yuan, Ziyang and Wang, Xintao and Chen, Tianshui and Xia, Menghan and Luo, Ping and Shan, Yin},
|
79 |
+
booktitle={arXiv preprint arXiv:2312.03641},
|
80 |
+
year={2023}
|
81 |
+
}
|
82 |
+
```
|
83 |
+
|
app.py
ADDED
@@ -0,0 +1,1079 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import argparse
|
2 |
+
import os
|
3 |
+
import tempfile
|
4 |
+
from functools import partial
|
5 |
+
|
6 |
+
import cv2
|
7 |
+
import gradio as gr
|
8 |
+
import imageio
|
9 |
+
import numpy as np
|
10 |
+
import torch
|
11 |
+
import torchvision
|
12 |
+
from omegaconf import OmegaConf
|
13 |
+
from PIL import Image
|
14 |
+
from pytorch_lightning import seed_everything
|
15 |
+
|
16 |
+
from gradio_utils.camera_utils import CAMERA_MOTION_MODE, process_camera
|
17 |
+
from gradio_utils.traj_utils import (OBJECT_MOTION_MODE, get_provided_traj,
|
18 |
+
process_points, process_traj)
|
19 |
+
from gradio_utils.utils import vis_camera
|
20 |
+
from lvdm.models.samplers.ddim import DDIMSampler
|
21 |
+
from main.evaluation.motionctrl_inference import (DEFAULT_NEGATIVE_PROMPT,
|
22 |
+
load_model_checkpoint,
|
23 |
+
post_prompt)
|
24 |
+
from utils.utils import instantiate_from_config
|
25 |
+
|
26 |
+
os.environ['KMP_DUPLICATE_LIB_OK']='True'
|
27 |
+
|
28 |
+
|
29 |
+
#### Description ####
|
30 |
+
title = r"""<h1 align="center">MotionCtrl: A Unified and Flexible Motion Controller for Video Generation</h1>"""
|
31 |
+
|
32 |
+
description = r"""
|
33 |
+
<b>Official Gradio demo</b> for <a href='https://github.com/TencentARC/MotionCtrl' target='_blank'><b>MotionCtrl: A Unified and Flexible Motion Controller for Video Generation</b></a>.<br>
|
34 |
+
🔥 MotionCtrl is capable of independently and flexibly controling the camera motion and object motion of a generated video, with only a unified model.<br>
|
35 |
+
🤗 Try to control the motion of the generated videos yourself!<br>
|
36 |
+
❗❗❗ Please note that current version of **MotionCtrl** is deployed on **LVDM/VideoCrafter**. The versions that depolyed on **AnimateDiff** and **SVD** will be released soon.<br>
|
37 |
+
"""
|
38 |
+
article = r"""
|
39 |
+
If MotionCtrl is helpful, please help to ⭐ the <a href='https://github.com/TencentARC/MotionCtrl' target='_blank'>Github Repo</a>. Thanks!
|
40 |
+
[](https://github.com/TencentARC/MotionCtrl)
|
42 |
+
|
43 |
+
---
|
44 |
+
|
45 |
+
📝 **Citation**
|
46 |
+
<br>
|
47 |
+
If our work is useful for your research, please consider citing:
|
48 |
+
```bibtex
|
49 |
+
@inproceedings{wang2023motionctrl,
|
50 |
+
title={MotionCtrl: A Unified and Flexible Motion Controller for Video Generation},
|
51 |
+
author={Wang, Zhouxia and Yuan, Ziyang and Wang, Xintao and Chen, Tianshui and Xia, Menghan and Luo, Ping and Shan, Yin},
|
52 |
+
booktitle={arXiv preprint arXiv:2312.03641},
|
53 |
+
year={2023}
|
54 |
+
}
|
55 |
+
```
|
56 |
+
|
57 |
+
📧 **Contact**
|
58 |
+
<br>
|
59 |
+
If you have any questions, please feel free to reach me out at <b>wzhoux@connect.hku.hk</b>.
|
60 |
+
|
61 |
+
"""
|
62 |
+
css = """
|
63 |
+
.gradio-container {width: 85% !important}
|
64 |
+
.gr-monochrome-group {border-radius: 5px !important; border: revert-layer !important; border-width: 2px !important; color: black !important;}
|
65 |
+
span.svelte-s1r2yt {font-size: 17px !important; font-weight: bold !important; color: #d30f2f !important;}
|
66 |
+
button {border-radius: 8px !important;}
|
67 |
+
.add_button {background-color: #4CAF50 !important;}
|
68 |
+
.remove_button {background-color: #f44336 !important;}
|
69 |
+
.clear_button {background-color: gray !important;}
|
70 |
+
.mask_button_group {gap: 10px !important;}
|
71 |
+
.video {height: 300px !important;}
|
72 |
+
.image {height: 300px !important;}
|
73 |
+
.video .wrap.svelte-lcpz3o {display: flex !important; align-items: center !important; justify-content: center !important;}
|
74 |
+
.video .wrap.svelte-lcpz3o > :first-child {height: 100% !important;}
|
75 |
+
.margin_center {width: 50% !important; margin: auto !important;}
|
76 |
+
.jc_center {justify-content: center !important;}
|
77 |
+
"""
|
78 |
+
|
79 |
+
|
80 |
+
T_base = [
|
81 |
+
[1.,0.,0.], ## W2C x 的正方向: 相机朝左 left
|
82 |
+
[-1.,0.,0.], ## W2C x 的负方向: 相机朝右 right
|
83 |
+
[0., 1., 0.], ## W2C y 的正方向: 相机朝上 up
|
84 |
+
[0.,-1.,0.], ## W2C y 的负方向: 相机朝下 down
|
85 |
+
[0.,0.,1.], ## W2C z 的正方向: 相机往前 zoom out
|
86 |
+
[0.,0.,-1.], ## W2C z 的负方向: 相机往前 zoom in
|
87 |
+
]
|
88 |
+
radius = 1
|
89 |
+
n = 16
|
90 |
+
# step =
|
91 |
+
look_at = np.array([0, 0, 0.8]).reshape(3,1)
|
92 |
+
# look_at = np.array([0, 0, 0.2]).reshape(3,1)
|
93 |
+
|
94 |
+
T_list = []
|
95 |
+
base_R = np.array([[1., 0., 0.],
|
96 |
+
[0., 1., 0.],
|
97 |
+
[0., 0., 1.]])
|
98 |
+
res = []
|
99 |
+
res_forsave = []
|
100 |
+
T_range = 1.8
|
101 |
+
|
102 |
+
|
103 |
+
|
104 |
+
for i in range(0, 16):
|
105 |
+
# theta = (1)*np.pi*i/n
|
106 |
+
|
107 |
+
R = base_R[:,:3]
|
108 |
+
T = np.array([0.,0.,1.]).reshape(3,1) * (i/n)*2
|
109 |
+
RT = np.concatenate([R,T], axis=1)
|
110 |
+
res.append(RT)
|
111 |
+
|
112 |
+
fig = vis_camera(res)
|
113 |
+
|
114 |
+
# MODE = ["camera motion control", "object motion control", "camera + object motion control"]
|
115 |
+
MODE = ["control camera poses", "control object trajectory", "control both camera and object motion"]
|
116 |
+
BASE_MODEL = ['LVDM/VideoCrafter', 'AnimateDiff', 'SVD']
|
117 |
+
|
118 |
+
|
119 |
+
traj_list = []
|
120 |
+
camera_dict = {
|
121 |
+
"motion":[],
|
122 |
+
"mode": "Customized Mode 1: First A then B", # "First A then B", "Both A and B", "Custom"
|
123 |
+
"speed": 1.0,
|
124 |
+
"complex": None
|
125 |
+
}
|
126 |
+
|
127 |
+
def fn_vis_camera(info_mode):
|
128 |
+
global camera_dict
|
129 |
+
RT = process_camera(camera_dict) # [t, 3, 4]
|
130 |
+
if camera_dict['complex'] is not None:
|
131 |
+
# rescale T to [-2,2]
|
132 |
+
for i in range(3):
|
133 |
+
min_T = np.min(RT[:,i,-1])
|
134 |
+
max_T = np.max(RT[:,i,-1])
|
135 |
+
if min_T < -2 or max_T > 2:
|
136 |
+
RT[:,i,-1] = RT[:,i,-1] - min_T
|
137 |
+
RT[:,i,-1] = RT[:,i,-1] / (np.max(RT[:,:,-1]) + 1e-6)
|
138 |
+
RT[:,i,-1] = RT[:,i,-1] * 4
|
139 |
+
RT[:,i,-1] = RT[:,i,-1] - 2
|
140 |
+
|
141 |
+
fig = vis_camera(RT)
|
142 |
+
|
143 |
+
if info_mode == MODE[0]:
|
144 |
+
vis_step3_prompt_generate = True
|
145 |
+
vis_prompt = True
|
146 |
+
vis_num_samples = True
|
147 |
+
vis_seed = True
|
148 |
+
vis_start = True
|
149 |
+
vis_gen_video = True
|
150 |
+
|
151 |
+
vis_object_mode = False
|
152 |
+
vis_object_info = False
|
153 |
+
|
154 |
+
else:
|
155 |
+
vis_step3_prompt_generate = False
|
156 |
+
vis_prompt = False
|
157 |
+
vis_num_samples = False
|
158 |
+
vis_seed = False
|
159 |
+
vis_start = False
|
160 |
+
vis_gen_video = False
|
161 |
+
|
162 |
+
vis_object_mode = True
|
163 |
+
vis_object_info = True
|
164 |
+
|
165 |
+
return fig, \
|
166 |
+
gr.update(visible=vis_object_mode), \
|
167 |
+
gr.update(visible=vis_object_info), \
|
168 |
+
gr.update(visible=vis_step3_prompt_generate), \
|
169 |
+
gr.update(visible=vis_prompt), \
|
170 |
+
gr.update(visible=vis_num_samples), \
|
171 |
+
gr.update(visible=vis_seed), \
|
172 |
+
gr.update(visible=vis_start), \
|
173 |
+
gr.update(visible=vis_gen_video, value=None)
|
174 |
+
|
175 |
+
def fn_vis_traj():
|
176 |
+
global traj_list
|
177 |
+
xy_range = 1024
|
178 |
+
points = process_points(traj_list)
|
179 |
+
imgs = []
|
180 |
+
for idx in range(16):
|
181 |
+
bg_img = np.ones((1024, 1024, 3), dtype=np.uint8) * 255
|
182 |
+
for i in range(15):
|
183 |
+
p = points[i]
|
184 |
+
p1 = points[i+1]
|
185 |
+
cv2.line(bg_img, p, p1, (255, 0, 0), 2)
|
186 |
+
|
187 |
+
if i == idx:
|
188 |
+
cv2.circle(bg_img, p, 2, (0, 255, 0), 20)
|
189 |
+
|
190 |
+
if idx==(15):
|
191 |
+
cv2.circle(bg_img, points[-1], 2, (0, 255, 0), 20)
|
192 |
+
|
193 |
+
imgs.append(bg_img.astype(np.uint8))
|
194 |
+
|
195 |
+
# size = (512, 512)
|
196 |
+
fps = 10
|
197 |
+
path = tempfile.NamedTemporaryFile(suffix='.mp4', delete=False).name
|
198 |
+
writer = imageio.get_writer(path, format='mp4', mode='I', fps=fps)
|
199 |
+
for img in imgs:
|
200 |
+
writer.append_data(img)
|
201 |
+
|
202 |
+
writer.close()
|
203 |
+
|
204 |
+
vis_step3_prompt_generate = True
|
205 |
+
vis_prompt = True
|
206 |
+
vis_num_samples = True
|
207 |
+
vis_seed = True
|
208 |
+
vis_start = True
|
209 |
+
vis_gen_video = True
|
210 |
+
return path, gr.update(visible=vis_step3_prompt_generate), \
|
211 |
+
gr.update(visible=vis_prompt), \
|
212 |
+
gr.update(visible=vis_num_samples), \
|
213 |
+
gr.update(visible=vis_seed), \
|
214 |
+
gr.update(visible=vis_start), \
|
215 |
+
gr.update(visible=vis_gen_video, value=None)
|
216 |
+
|
217 |
+
def display_camera_info(camera_dict, camera_mode=None):
|
218 |
+
if camera_dict['complex'] is not None:
|
219 |
+
res = f"complex : {camera_dict['complex']}. "
|
220 |
+
else:
|
221 |
+
res = ""
|
222 |
+
res += f"motion : {[_ for _ in camera_dict['motion']]}. "
|
223 |
+
res += f"speed : {camera_dict['speed']}. "
|
224 |
+
if camera_mode == 'Custom Camera Poses':
|
225 |
+
res += f"mode : {camera_dict['mode']}. "
|
226 |
+
return res
|
227 |
+
|
228 |
+
def add_traj_point(evt: gr.SelectData, ):
|
229 |
+
global traj_list
|
230 |
+
traj_list.append(evt.index)
|
231 |
+
traj_str = [f"{traj}" for traj in traj_list]
|
232 |
+
return ", ".join(traj_str)
|
233 |
+
|
234 |
+
def add_provided_traj(traj_name):
|
235 |
+
global traj_list
|
236 |
+
traj_list = get_provided_traj(traj_name)
|
237 |
+
traj_str = [f"{traj}" for traj in traj_list]
|
238 |
+
return ", ".join(traj_str)
|
239 |
+
|
240 |
+
def add_camera_motion(camera_motion, camera_mode):
|
241 |
+
global camera_dict
|
242 |
+
if camera_dict['complex'] is not None:
|
243 |
+
camera_dict['complex'] = None
|
244 |
+
if camera_mode == 'Custom Camera Poses' and len(camera_dict['motion']) <2:
|
245 |
+
camera_dict['motion'].append(camera_motion)
|
246 |
+
else:
|
247 |
+
camera_dict['motion']=[camera_motion]
|
248 |
+
|
249 |
+
return display_camera_info(camera_dict, camera_mode)
|
250 |
+
|
251 |
+
def add_complex_camera_motion(camera_motion):
|
252 |
+
global camera_dict
|
253 |
+
camera_dict['complex']=camera_motion
|
254 |
+
return display_camera_info(camera_dict)
|
255 |
+
|
256 |
+
def change_camera_mode(combine_type, camera_mode):
|
257 |
+
global camera_dict
|
258 |
+
camera_dict['mode'] = combine_type
|
259 |
+
|
260 |
+
return display_camera_info(camera_dict, camera_mode)
|
261 |
+
|
262 |
+
def change_camera_speed(camera_speed):
|
263 |
+
global camera_dict
|
264 |
+
camera_dict['speed'] = camera_speed
|
265 |
+
return display_camera_info(camera_dict)
|
266 |
+
|
267 |
+
def reset_camera():
|
268 |
+
global camera_dict
|
269 |
+
camera_dict = {
|
270 |
+
"motion":[],
|
271 |
+
"mode": "Customized Mode 1: First A then B",
|
272 |
+
"speed": 1.0,
|
273 |
+
"complex": None
|
274 |
+
}
|
275 |
+
return display_camera_info(camera_dict)
|
276 |
+
|
277 |
+
|
278 |
+
def fn_traj_droplast():
|
279 |
+
global traj_list
|
280 |
+
|
281 |
+
if traj_list:
|
282 |
+
traj_list.pop()
|
283 |
+
|
284 |
+
if traj_list:
|
285 |
+
traj_str = [f"{traj}" for traj in traj_list]
|
286 |
+
return ", ".join(traj_str)
|
287 |
+
else:
|
288 |
+
return "Click to specify trajectory"
|
289 |
+
|
290 |
+
def fn_traj_reset():
|
291 |
+
global traj_list
|
292 |
+
traj_list = []
|
293 |
+
return "Click to specify trajectory"
|
294 |
+
|
295 |
+
###########################################
|
296 |
+
model_path='./checkpoints/motionctrl.pth'
|
297 |
+
config_path='./configs/inference/config_both.yaml'
|
298 |
+
|
299 |
+
config = OmegaConf.load(config_path)
|
300 |
+
model_config = config.pop("model", OmegaConf.create())
|
301 |
+
model = instantiate_from_config(model_config)
|
302 |
+
model = model.cuda()
|
303 |
+
|
304 |
+
model = load_model_checkpoint(model, model_path)
|
305 |
+
model.eval()
|
306 |
+
|
307 |
+
|
308 |
+
def model_run(prompts, infer_mode, seed, n_samples):
|
309 |
+
global traj_list
|
310 |
+
global camera_dict
|
311 |
+
|
312 |
+
RT = process_camera(camera_dict).reshape(-1,12)
|
313 |
+
traj_flow = process_traj(traj_list).transpose(3,0,1,2)
|
314 |
+
print(prompts)
|
315 |
+
print(RT.shape)
|
316 |
+
print(traj_flow.shape)
|
317 |
+
|
318 |
+
noise_shape = [1, 4, 16, 32, 32]
|
319 |
+
unconditional_guidance_scale = 7.5
|
320 |
+
unconditional_guidance_scale_temporal = None
|
321 |
+
# n_samples = 1
|
322 |
+
ddim_steps= 50
|
323 |
+
ddim_eta=1.0
|
324 |
+
cond_T=800
|
325 |
+
|
326 |
+
if n_samples < 1:
|
327 |
+
n_samples = 1
|
328 |
+
if n_samples > 4:
|
329 |
+
n_samples = 4
|
330 |
+
|
331 |
+
seed_everything(seed)
|
332 |
+
|
333 |
+
if infer_mode == MODE[0]:
|
334 |
+
camera_poses = RT
|
335 |
+
camera_poses = torch.tensor(camera_poses).float().cuda()
|
336 |
+
camera_poses = camera_poses.unsqueeze(0)
|
337 |
+
trajs = None
|
338 |
+
elif infer_mode == MODE[1]:
|
339 |
+
trajs = traj_flow
|
340 |
+
trajs = torch.tensor(trajs).float().cuda()
|
341 |
+
trajs = trajs.unsqueeze(0)
|
342 |
+
camera_poses = None
|
343 |
+
else:
|
344 |
+
camera_poses = RT
|
345 |
+
trajs = traj_flow
|
346 |
+
camera_poses = torch.tensor(camera_poses).float().cuda()
|
347 |
+
trajs = torch.tensor(trajs).float().cuda()
|
348 |
+
camera_poses = camera_poses.unsqueeze(0)
|
349 |
+
trajs = trajs.unsqueeze(0)
|
350 |
+
|
351 |
+
ddim_sampler = DDIMSampler(model)
|
352 |
+
batch_size = noise_shape[0]
|
353 |
+
## get condition embeddings (support single prompt only)
|
354 |
+
if isinstance(prompts, str):
|
355 |
+
prompts = [prompts]
|
356 |
+
|
357 |
+
for i in range(len(prompts)):
|
358 |
+
prompts[i] = f'{prompts[i]}, {post_prompt}'
|
359 |
+
|
360 |
+
cond = model.get_learned_conditioning(prompts)
|
361 |
+
if camera_poses is not None:
|
362 |
+
RT = camera_poses[..., None]
|
363 |
+
else:
|
364 |
+
RT = None
|
365 |
+
|
366 |
+
if trajs is not None:
|
367 |
+
traj_features = model.get_traj_features(trajs)
|
368 |
+
else:
|
369 |
+
traj_features = None
|
370 |
+
|
371 |
+
if unconditional_guidance_scale != 1.0:
|
372 |
+
# prompts = batch_size * [""]
|
373 |
+
prompts = batch_size * [DEFAULT_NEGATIVE_PROMPT]
|
374 |
+
uc = model.get_learned_conditioning(prompts)
|
375 |
+
if traj_features is not None:
|
376 |
+
un_motion = model.get_traj_features(torch.zeros_like(trajs))
|
377 |
+
else:
|
378 |
+
un_motion = None
|
379 |
+
uc = {"features_adapter": un_motion, "uc": uc}
|
380 |
+
else:
|
381 |
+
uc = None
|
382 |
+
|
383 |
+
batch_variants = []
|
384 |
+
for _ in range(n_samples):
|
385 |
+
if ddim_sampler is not None:
|
386 |
+
samples, _ = ddim_sampler.sample(S=ddim_steps,
|
387 |
+
conditioning=cond,
|
388 |
+
batch_size=noise_shape[0],
|
389 |
+
shape=noise_shape[1:],
|
390 |
+
verbose=False,
|
391 |
+
unconditional_guidance_scale=unconditional_guidance_scale,
|
392 |
+
unconditional_conditioning=uc,
|
393 |
+
eta=ddim_eta,
|
394 |
+
temporal_length=noise_shape[2],
|
395 |
+
conditional_guidance_scale_temporal=unconditional_guidance_scale_temporal,
|
396 |
+
features_adapter=traj_features,
|
397 |
+
pose_emb=RT,
|
398 |
+
cond_T=cond_T
|
399 |
+
)
|
400 |
+
## reconstruct from latent to pixel space
|
401 |
+
batch_images = model.decode_first_stage(samples)
|
402 |
+
batch_variants.append(batch_images)
|
403 |
+
## variants, batch, c, t, h, w
|
404 |
+
batch_variants = torch.stack(batch_variants, dim=1)
|
405 |
+
batch_variants = batch_variants[0]
|
406 |
+
|
407 |
+
# file_path = save_results(batch_variants, "MotionCtrl", "gradio_temp", fps=10)
|
408 |
+
file_path = save_results(batch_variants, fps=10)
|
409 |
+
print(file_path)
|
410 |
+
|
411 |
+
return gr.update(value=file_path, width=256*n_samples, height=256)
|
412 |
+
|
413 |
+
# return file_path
|
414 |
+
|
415 |
+
def save_results(video, fps=10):
|
416 |
+
|
417 |
+
# b,c,t,h,w
|
418 |
+
video = video.detach().cpu()
|
419 |
+
video = torch.clamp(video.float(), -1., 1.)
|
420 |
+
n = video.shape[0]
|
421 |
+
video = video.permute(2, 0, 1, 3, 4) # t,n,c,h,w
|
422 |
+
frame_grids = [torchvision.utils.make_grid(framesheet, nrow=int(n)) for framesheet in video] #[3, 1*h, n*w]
|
423 |
+
grid = torch.stack(frame_grids, dim=0) # stack in temporal dim [t, 3, n*h, w]
|
424 |
+
grid = (grid + 1.0) / 2.0
|
425 |
+
grid = (grid * 255).to(torch.uint8).permute(0, 2, 3, 1) # [t, h, w*n, 3]
|
426 |
+
|
427 |
+
path = tempfile.NamedTemporaryFile(suffix='.mp4', delete=False).name
|
428 |
+
|
429 |
+
writer = imageio.get_writer(path, format='mp4', mode='I', fps=fps)
|
430 |
+
for i in range(grid.shape[0]):
|
431 |
+
img = grid[i].numpy()
|
432 |
+
writer.append_data(img)
|
433 |
+
|
434 |
+
writer.close()
|
435 |
+
|
436 |
+
return path
|
437 |
+
|
438 |
+
def visualized_step2(infer_mode):
|
439 |
+
|
440 |
+
# reset
|
441 |
+
reset_camera()
|
442 |
+
fn_traj_reset()
|
443 |
+
|
444 |
+
# camera motion control
|
445 |
+
vis_basic_camera_motion = False
|
446 |
+
vis_basic_camera_motion_des = False
|
447 |
+
vis_custom_camera_motion = False
|
448 |
+
vis_custom_run_status = False
|
449 |
+
vis_complex_camera_motion = False
|
450 |
+
vis_complex_camera_motion_des = False
|
451 |
+
vis_U = False
|
452 |
+
vis_D = False
|
453 |
+
vis_L = False
|
454 |
+
vis_R = False
|
455 |
+
vis_I = False
|
456 |
+
vis_O = False
|
457 |
+
vis_ACW = False
|
458 |
+
vis_CW = False
|
459 |
+
vis_combine1 = False
|
460 |
+
vis_combine2 = False
|
461 |
+
vis_speed = False
|
462 |
+
|
463 |
+
vis_Pose_1, vis_Pose_2, vis_Pose_3, vis_Pose_4 = False, False, False, False
|
464 |
+
vis_Pose_5, vis_Pose_6, vis_Pose_7, vis_Pose_8 = False, False, False, False
|
465 |
+
|
466 |
+
vis_camera_args = False
|
467 |
+
vis_camera_reset = False
|
468 |
+
vis_camera_vis = False
|
469 |
+
vis_vis_camera = False
|
470 |
+
|
471 |
+
# object motion control
|
472 |
+
vis_provided_traj = False
|
473 |
+
vis_provided_traj_des = False
|
474 |
+
vis_draw_yourself = False
|
475 |
+
vis_draw_run_status = False
|
476 |
+
|
477 |
+
vis_traj_1, vis_traj_2, vis_traj_3, vis_traj_4 = False, False, False, False
|
478 |
+
vis_traj_5, vis_traj_6, vis_traj_7, vis_traj_8 = False, False, False, False
|
479 |
+
|
480 |
+
traj_args = False
|
481 |
+
traj_droplast, traj_reset = False, False
|
482 |
+
traj_vis = False
|
483 |
+
traj_input, vis_traj = False, False
|
484 |
+
|
485 |
+
|
486 |
+
# generate video
|
487 |
+
vis_step3_prompt_generate = False
|
488 |
+
vis_prompt = False
|
489 |
+
vis_num_samples = False
|
490 |
+
vis_seed = False
|
491 |
+
vis_start = False
|
492 |
+
vis_gen_video = False
|
493 |
+
|
494 |
+
if infer_mode == MODE[0]:
|
495 |
+
vis_step2_camera_motion = True
|
496 |
+
vis_step2_camera_motion_des = True
|
497 |
+
vis_camera_mode = True
|
498 |
+
vis_camera_info = True
|
499 |
+
|
500 |
+
vis_step2_object_motion = False
|
501 |
+
vis_step2_object_motion_des = False
|
502 |
+
vis_traj_mode = False
|
503 |
+
vis_traj_info = False
|
504 |
+
|
505 |
+
step2_camera_object_motion = False
|
506 |
+
step2_camera_object_motion_des = False
|
507 |
+
|
508 |
+
elif infer_mode == MODE[1]:
|
509 |
+
vis_step2_camera_motion = False
|
510 |
+
vis_step2_camera_motion_des = False
|
511 |
+
vis_camera_mode = False
|
512 |
+
vis_camera_info = False
|
513 |
+
|
514 |
+
vis_step2_object_motion = True
|
515 |
+
vis_step2_object_motion_des = True
|
516 |
+
vis_traj_mode = True
|
517 |
+
vis_traj_info = True
|
518 |
+
|
519 |
+
step2_camera_object_motion = False
|
520 |
+
step2_camera_object_motion_des = False
|
521 |
+
else: #infer_mode == MODE[2]:
|
522 |
+
vis_step2_camera_motion = False
|
523 |
+
vis_step2_camera_motion_des = False
|
524 |
+
vis_camera_mode = False
|
525 |
+
vis_camera_info = False
|
526 |
+
|
527 |
+
vis_step2_object_motion = False
|
528 |
+
vis_step2_object_motion_des = False
|
529 |
+
vis_traj_mode = False
|
530 |
+
vis_traj_info = False
|
531 |
+
|
532 |
+
step2_camera_object_motion = True
|
533 |
+
step2_camera_object_motion_des = True
|
534 |
+
|
535 |
+
vis_basic_camera_motion = True
|
536 |
+
vis_basic_camera_motion_des = True
|
537 |
+
vis_U = True
|
538 |
+
vis_D = True
|
539 |
+
vis_L = True
|
540 |
+
vis_R = True
|
541 |
+
vis_I = True
|
542 |
+
vis_O = True
|
543 |
+
vis_ACW = True
|
544 |
+
vis_CW = True
|
545 |
+
vis_speed = True
|
546 |
+
|
547 |
+
vis_camera_args = True
|
548 |
+
vis_camera_reset = True
|
549 |
+
vis_camera_vis = True
|
550 |
+
vis_vis_camera = True
|
551 |
+
|
552 |
+
|
553 |
+
return gr.update(visible=vis_step2_camera_motion), \
|
554 |
+
gr.update(visible=vis_step2_camera_motion_des), \
|
555 |
+
gr.update(visible=vis_camera_mode), \
|
556 |
+
gr.update(visible=vis_camera_info), \
|
557 |
+
gr.update(visible=vis_basic_camera_motion), \
|
558 |
+
gr.update(visible=vis_basic_camera_motion_des), \
|
559 |
+
gr.update(visible=vis_custom_camera_motion), \
|
560 |
+
gr.update(visible=vis_custom_run_status), \
|
561 |
+
gr.update(visible=vis_complex_camera_motion), \
|
562 |
+
gr.update(visible=vis_complex_camera_motion_des), \
|
563 |
+
gr.update(visible=vis_U), gr.update(visible=vis_D), gr.update(visible=vis_L), gr.update(visible=vis_R), \
|
564 |
+
gr.update(visible=vis_I), gr.update(visible=vis_O), gr.update(visible=vis_ACW), gr.update(visible=vis_CW), \
|
565 |
+
gr.update(visible=vis_combine1), gr.update(visible=vis_combine2), \
|
566 |
+
gr.update(visible=vis_speed), \
|
567 |
+
gr.update(visible=vis_Pose_1), gr.update(visible=vis_Pose_2), gr.update(visible=vis_Pose_3), gr.update(visible=vis_Pose_4), \
|
568 |
+
gr.update(visible=vis_Pose_5), gr.update(visible=vis_Pose_6), gr.update(visible=vis_Pose_7), gr.update(visible=vis_Pose_8), \
|
569 |
+
gr.update(visible=vis_camera_args, value=None), \
|
570 |
+
gr.update(visible=vis_camera_reset), gr.update(visible=vis_camera_vis), \
|
571 |
+
gr.update(visible=vis_vis_camera, value=None), \
|
572 |
+
gr.update(visible=vis_step2_object_motion), \
|
573 |
+
gr.update(visible=vis_step2_object_motion_des), \
|
574 |
+
gr.update(visible=vis_traj_mode), \
|
575 |
+
gr.update(visible=vis_traj_info), \
|
576 |
+
gr.update(visible=vis_provided_traj), \
|
577 |
+
gr.update(visible=vis_provided_traj_des), \
|
578 |
+
gr.update(visible=vis_draw_yourself), \
|
579 |
+
gr.update(visible=vis_draw_run_status), \
|
580 |
+
gr.update(visible=vis_traj_1), gr.update(visible=vis_traj_2), gr.update(visible=vis_traj_3), gr.update(visible=vis_traj_4), \
|
581 |
+
gr.update(visible=vis_traj_5), gr.update(visible=vis_traj_6), gr.update(visible=vis_traj_7), gr.update(visible=vis_traj_8), \
|
582 |
+
gr.update(visible=traj_args), \
|
583 |
+
gr.update(visible=traj_droplast), gr.update(visible=traj_reset), \
|
584 |
+
gr.update(visible=traj_vis), \
|
585 |
+
gr.update(visible=traj_input), gr.update(visible=vis_traj, value=None), \
|
586 |
+
gr.update(visible=step2_camera_object_motion), \
|
587 |
+
gr.update(visible=step2_camera_object_motion_des), \
|
588 |
+
gr.update(visible=vis_step3_prompt_generate), \
|
589 |
+
gr.update(visible=vis_prompt), \
|
590 |
+
gr.update(visible=vis_num_samples), \
|
591 |
+
gr.update(visible=vis_seed), \
|
592 |
+
gr.update(visible=vis_start), \
|
593 |
+
gr.update(visible=vis_gen_video)
|
594 |
+
|
595 |
+
def visualized_camera_poses(step2_camera_motion):
|
596 |
+
reset_camera()
|
597 |
+
|
598 |
+
# generate video
|
599 |
+
vis_step3_prompt_generate = False
|
600 |
+
vis_prompt = False
|
601 |
+
vis_num_samples = False
|
602 |
+
vis_seed = False
|
603 |
+
vis_start = False
|
604 |
+
vis_gen_video = False
|
605 |
+
|
606 |
+
if step2_camera_motion == CAMERA_MOTION_MODE[0]:
|
607 |
+
vis_basic_camera_motion = True
|
608 |
+
vis_basic_camera_motion_des = True
|
609 |
+
vis_custom_camera_motion = False
|
610 |
+
vis_custom_run_status = False
|
611 |
+
vis_complex_camera_motion = False
|
612 |
+
vis_complex_camera_motion_des = False
|
613 |
+
vis_U = True
|
614 |
+
vis_D = True
|
615 |
+
vis_L = True
|
616 |
+
vis_R = True
|
617 |
+
vis_I = True
|
618 |
+
vis_O = True
|
619 |
+
vis_ACW = True
|
620 |
+
vis_CW = True
|
621 |
+
vis_combine1 = False
|
622 |
+
vis_combine2 = False
|
623 |
+
vis_speed = True
|
624 |
+
|
625 |
+
vis_Pose_1, vis_Pose_2, vis_Pose_3, vis_Pose_4 = False, False, False, False
|
626 |
+
vis_Pose_5, vis_Pose_6, vis_Pose_7, vis_Pose_8 = False, False, False, False
|
627 |
+
|
628 |
+
elif step2_camera_motion == CAMERA_MOTION_MODE[1]:
|
629 |
+
vis_basic_camera_motion = False
|
630 |
+
vis_basic_camera_motion_des = False
|
631 |
+
vis_custom_camera_motion = False
|
632 |
+
vis_custom_run_status = False
|
633 |
+
vis_complex_camera_motion = True
|
634 |
+
vis_complex_camera_motion_des = True
|
635 |
+
vis_U = False
|
636 |
+
vis_D = False
|
637 |
+
vis_L = False
|
638 |
+
vis_R = False
|
639 |
+
vis_I = False
|
640 |
+
vis_O = False
|
641 |
+
vis_ACW = False
|
642 |
+
vis_CW = False
|
643 |
+
vis_combine1 = False
|
644 |
+
vis_combine2 = False
|
645 |
+
vis_speed = False
|
646 |
+
|
647 |
+
vis_Pose_1, vis_Pose_2, vis_Pose_3, vis_Pose_4 = True, True, True, True
|
648 |
+
vis_Pose_5, vis_Pose_6, vis_Pose_7, vis_Pose_8 = True, True, True, True
|
649 |
+
|
650 |
+
else: # step2_camera_motion = CAMERA_MOTION_MODE[2]:
|
651 |
+
vis_basic_camera_motion = False
|
652 |
+
vis_basic_camera_motion_des = False
|
653 |
+
vis_custom_camera_motion = True
|
654 |
+
vis_custom_run_status = True
|
655 |
+
vis_complex_camera_motion = False
|
656 |
+
vis_complex_camera_motion_des = False
|
657 |
+
vis_U = True
|
658 |
+
vis_D = True
|
659 |
+
vis_L = True
|
660 |
+
vis_R = True
|
661 |
+
vis_I = True
|
662 |
+
vis_O = True
|
663 |
+
vis_ACW = True
|
664 |
+
vis_CW = True
|
665 |
+
vis_combine1 = True
|
666 |
+
vis_combine2 = True
|
667 |
+
vis_speed = True
|
668 |
+
|
669 |
+
vis_Pose_1, vis_Pose_2, vis_Pose_3, vis_Pose_4 = False, False, False, False
|
670 |
+
vis_Pose_5, vis_Pose_6, vis_Pose_7, vis_Pose_8 = False, False, False, False
|
671 |
+
|
672 |
+
vis_camera_args = True
|
673 |
+
vis_camera_reset = True
|
674 |
+
vis_camera_vis = True
|
675 |
+
vis_vis_camera = True
|
676 |
+
|
677 |
+
return gr.update(visible=vis_basic_camera_motion), \
|
678 |
+
gr.update(visible=vis_basic_camera_motion_des), \
|
679 |
+
gr.update(visible=vis_custom_camera_motion), \
|
680 |
+
gr.update(visible=vis_custom_run_status), \
|
681 |
+
gr.update(visible=vis_complex_camera_motion), \
|
682 |
+
gr.update(visible=vis_complex_camera_motion_des), \
|
683 |
+
gr.update(visible=vis_U), gr.update(visible=vis_D), gr.update(visible=vis_L), gr.update(visible=vis_R), \
|
684 |
+
gr.update(visible=vis_I), gr.update(visible=vis_O), gr.update(visible=vis_ACW), gr.update(visible=vis_CW), \
|
685 |
+
gr.update(visible=vis_combine1), gr.update(visible=vis_combine2), \
|
686 |
+
gr.update(visible=vis_speed), \
|
687 |
+
gr.update(visible=vis_Pose_1), gr.update(visible=vis_Pose_2), gr.update(visible=vis_Pose_3), gr.update(visible=vis_Pose_4), \
|
688 |
+
gr.update(visible=vis_Pose_5), gr.update(visible=vis_Pose_6), gr.update(visible=vis_Pose_7), gr.update(visible=vis_Pose_8), \
|
689 |
+
gr.update(visible=vis_camera_args, value=None), \
|
690 |
+
gr.update(visible=vis_camera_reset), gr.update(visible=vis_camera_vis), \
|
691 |
+
gr.update(visible=vis_vis_camera, value=None), \
|
692 |
+
gr.update(visible=vis_step3_prompt_generate), \
|
693 |
+
gr.update(visible=vis_prompt), \
|
694 |
+
gr.update(visible=vis_num_samples), \
|
695 |
+
gr.update(visible=vis_seed), \
|
696 |
+
gr.update(visible=vis_start), \
|
697 |
+
gr.update(visible=vis_gen_video)
|
698 |
+
|
699 |
+
def visualized_traj_poses(step2_object_motion):
|
700 |
+
|
701 |
+
fn_traj_reset()
|
702 |
+
|
703 |
+
# generate video
|
704 |
+
vis_step3_prompt_generate = False
|
705 |
+
vis_prompt = False
|
706 |
+
vis_num_samples = False
|
707 |
+
vis_seed = False
|
708 |
+
vis_start = False
|
709 |
+
vis_gen_video = False
|
710 |
+
|
711 |
+
if step2_object_motion == "Provided Trajectory":
|
712 |
+
vis_provided_traj = True
|
713 |
+
vis_provided_traj_des = True
|
714 |
+
vis_draw_yourself = False
|
715 |
+
vis_draw_run_status = False
|
716 |
+
|
717 |
+
vis_traj_1, vis_traj_2, vis_traj_3, vis_traj_4 = True, True, True, True
|
718 |
+
vis_traj_5, vis_traj_6, vis_traj_7, vis_traj_8 = True, True, True, True
|
719 |
+
|
720 |
+
traj_args = True
|
721 |
+
traj_droplast, traj_reset = False, True
|
722 |
+
traj_vis = True
|
723 |
+
traj_input, vis_traj = False, True
|
724 |
+
|
725 |
+
|
726 |
+
elif step2_object_motion == "Custom Trajectory":
|
727 |
+
vis_provided_traj = False
|
728 |
+
vis_provided_traj_des = False
|
729 |
+
vis_draw_yourself = True
|
730 |
+
vis_draw_run_status = True
|
731 |
+
|
732 |
+
vis_traj_1, vis_traj_2, vis_traj_3, vis_traj_4 = False, False, False, False
|
733 |
+
vis_traj_5, vis_traj_6, vis_traj_7, vis_traj_8 = False, False, False, False
|
734 |
+
|
735 |
+
traj_args = True
|
736 |
+
traj_droplast, traj_reset = True, True
|
737 |
+
traj_vis = True
|
738 |
+
traj_input, vis_traj = True, True
|
739 |
+
|
740 |
+
return gr.update(visible=vis_provided_traj), \
|
741 |
+
gr.update(visible=vis_provided_traj_des), \
|
742 |
+
gr.update(visible=vis_draw_yourself), \
|
743 |
+
gr.update(visible=vis_draw_run_status), \
|
744 |
+
gr.update(visible=vis_traj_1), gr.update(visible=vis_traj_2), gr.update(visible=vis_traj_3), gr.update(visible=vis_traj_4), \
|
745 |
+
gr.update(visible=vis_traj_5), gr.update(visible=vis_traj_6), gr.update(visible=vis_traj_7), gr.update(visible=vis_traj_8), \
|
746 |
+
gr.update(visible=traj_args), \
|
747 |
+
gr.update(visible=traj_droplast), gr.update(visible=traj_reset), \
|
748 |
+
gr.update(visible=traj_vis), \
|
749 |
+
gr.update(visible=traj_input), gr.update(visible=vis_traj, value=None), \
|
750 |
+
gr.update(visible=vis_step3_prompt_generate), \
|
751 |
+
gr.update(visible=vis_prompt), \
|
752 |
+
gr.update(visible=vis_num_samples), \
|
753 |
+
gr.update(visible=vis_seed), \
|
754 |
+
gr.update(visible=vis_start), \
|
755 |
+
gr.update(visible=vis_gen_video)
|
756 |
+
|
757 |
+
def main(args):
|
758 |
+
demo = gr.Blocks()
|
759 |
+
with demo:
|
760 |
+
|
761 |
+
gr.Markdown(title)
|
762 |
+
gr.Markdown(description)
|
763 |
+
|
764 |
+
# state = gr.State({
|
765 |
+
# "mode": "camera_only",
|
766 |
+
# "camera_input": [],
|
767 |
+
# "traj_input": [],
|
768 |
+
# })
|
769 |
+
|
770 |
+
with gr.Column():
|
771 |
+
'''
|
772 |
+
# step 0: select based model.
|
773 |
+
gr.Markdown("## Step0: Selecting the model", show_label=False)
|
774 |
+
gr.Markdown( f'- {BASE_MODEL[0]}: **MotionCtrl** deployed on {BASE_MODEL[0]}', show_label=False)
|
775 |
+
gr.Markdown( f'- {BASE_MODEL[1]}: **MotionCtrl** deployed on {BASE_MODEL[1]}', show_label=False)
|
776 |
+
gr.Markdown( f'- {BASE_MODEL[2]}: **MotionCtrl** deployed on {BASE_MODEL[2]}', show_label=False)
|
777 |
+
gr.Markdown( f'- **Only the model that deployed on {BASE_MODEL[0]} is avalible now. MotionCtrl models deployed on {BASE_MODEL[1]} and {BASE_MODEL[2]} are coming soon.**', show_label=False)
|
778 |
+
gr.Radio(choices=BASE_MODEL, value=BASE_MODEL[0], label="Based Model", interactive=False)
|
779 |
+
'''
|
780 |
+
|
781 |
+
# step 1: select motion control mode
|
782 |
+
gr.Markdown("## Step 1/3: Selecting the motion control mode", show_label=False)
|
783 |
+
gr.Markdown( f'- {MODE[0]}: Control the camera motion only', show_label=False)
|
784 |
+
gr.Markdown( f'- {MODE[1]}: Control the object motion only', show_label=False)
|
785 |
+
gr.Markdown( f'- {MODE[2]}: Control both the camera and object motion', show_label=False)
|
786 |
+
gr.Markdown( f'- Click `Proceed` to go into next step', show_label=False)
|
787 |
+
infer_mode = gr.Radio(choices=MODE, value=MODE[0], label="Motion Control Mode", interactive=True)
|
788 |
+
mode_info = gr.Button(value="Proceed")
|
789 |
+
|
790 |
+
# step2 - camera + object motion control
|
791 |
+
step2_camera_object_motion = gr.Markdown("---\n## Step 2/3: Select the camera poses and trajectory", show_label=False, visible=False)
|
792 |
+
step2_camera_object_motion_des = gr.Markdown(f"\n 1. Select a basic camera pose. \
|
793 |
+
\n 2. Select a provided trajectory or draw the trajectory yourself.",
|
794 |
+
show_label=False, visible=False)
|
795 |
+
|
796 |
+
# step2 - camera motion control
|
797 |
+
step2_camera_motion = gr.Markdown("---\n## Step 2/3: Select the camera poses", show_label=False, visible=False)
|
798 |
+
step2_camera_motion_des = gr.Markdown(f"\n - {CAMERA_MOTION_MODE[0]}: Including 8 basic camera poses, such as pan up, pan down, zoom in, and zoom out. \
|
799 |
+
\n - {CAMERA_MOTION_MODE[1]}: Complex camera poses extracted from the real videos. \
|
800 |
+
\n - {CAMERA_MOTION_MODE[2]}: You can customize complex camera poses yourself by combining or fusing two of the eight basic camera poses. \
|
801 |
+
\n - Click `Proceed` to go into next step",
|
802 |
+
show_label=False, visible=False)
|
803 |
+
camera_mode = gr.Radio(choices=CAMERA_MOTION_MODE, value=CAMERA_MOTION_MODE[0], label="Camera Motion Control Mode", interactive=True, visible=False)
|
804 |
+
camera_info = gr.Button(value="Proceed", visible=False)
|
805 |
+
|
806 |
+
with gr.Row():
|
807 |
+
with gr.Column():
|
808 |
+
# step2.1 - camera motion control - basic
|
809 |
+
basic_camera_motion = gr.Markdown("---\n### Basic Camera Poses", show_label=False, visible=False)
|
810 |
+
basic_camera_motion_des = gr.Markdown(f"\n 1. Click one of the basic camera poses, such as `Pan Up`; \
|
811 |
+
\n 2. Slide the `Motion speed` to get a speed value. The large the value, the fast the camera motion; \
|
812 |
+
\n 3. Click `Visualize Camera and Proceed` to visualize the camera poses and go proceed; \
|
813 |
+
\n 4. Click `Reset Camera` to reset the camera poses (If needed). ",
|
814 |
+
show_label=False, visible=False)
|
815 |
+
|
816 |
+
|
817 |
+
# step2.2 - camera motion control - provided complex
|
818 |
+
complex_camera_motion = gr.Markdown("---\n### Provided Complex Camera Poses", show_label=False, visible=False)
|
819 |
+
complex_camera_motion_des = gr.Markdown(f"\n 1. Click one of the complex camera poses, such as `Pose_1`; \
|
820 |
+
\n 2. Click `Visualize Camera and Proceed` to visualize the camera poses and go proceed; \
|
821 |
+
\n 3. Click `Reset Camera` to reset the camera poses (If needed). ",
|
822 |
+
show_label=False, visible=False)
|
823 |
+
|
824 |
+
# step2.3 - camera motion control - custom
|
825 |
+
custom_camera_motion = gr.Markdown("---\n### Custom Camera Poses", show_label=False, visible=False)
|
826 |
+
custom_run_status = gr.Markdown(f"\n 1. Click two of the basic camera poses, such as `Pan Up` and `Pan Left`; \
|
827 |
+
\n 2. Click `Customized Mode 1: First A then B` or `Customized Mode 1: First A then B` \
|
828 |
+
\n - `Customized Mode 1: First A then B`: The camera first `Pan Up` and then `Pan Left`; \
|
829 |
+
\n - `Customized Mode 2: Both A and B`: The camera move towards the upper left corner; \
|
830 |
+
\n 3. Slide the `Motion speed` to get a speed value. The large the value, the fast the camera motion; \
|
831 |
+
\n 4. Click `Visualize Camera and Proceed` to visualize the camera poses and go proceed; \
|
832 |
+
\n 5. Click `Reset Camera` to reset the camera poses (If needed). ",
|
833 |
+
show_label=False, visible=False)
|
834 |
+
|
835 |
+
gr.HighlightedText(value=[("",""), ("1. Select two of the basic camera poses; 2. Select Customized Mode 1 OR Customized Mode 2. 3. Visualized Camera to show the customized camera poses", "Normal")],
|
836 |
+
color_map={"Normal": "green", "Error": "red", "Clear clicks": "gray", "Add mask": "green", "Remove mask": "red"}, visible=False)
|
837 |
+
|
838 |
+
with gr.Row():
|
839 |
+
U = gr.Button(value="Pan Up", visible=False)
|
840 |
+
D = gr.Button(value="Pan Down", visible=False)
|
841 |
+
L = gr.Button(value="Pan Left", visible=False)
|
842 |
+
R = gr.Button(value="Pan Right", visible=False)
|
843 |
+
with gr.Row():
|
844 |
+
I = gr.Button(value="Zoom In", visible=False)
|
845 |
+
O = gr.Button(value="Zoom Out", visible=False)
|
846 |
+
ACW = gr.Button(value="ACW", visible=False)
|
847 |
+
CW = gr.Button(value="CW", visible=False)
|
848 |
+
|
849 |
+
with gr.Row():
|
850 |
+
combine1 = gr.Button(value="Customized Mode 1: First A then B", visible=False)
|
851 |
+
combine2 = gr.Button(value="Customized Mode 2: Both A and B", visible=False)
|
852 |
+
|
853 |
+
with gr.Row():
|
854 |
+
speed = gr.Slider(minimum=0, maximum=2, step=0.2, label="Motion Speed", value=1.0, visible=False)
|
855 |
+
|
856 |
+
with gr.Row():
|
857 |
+
Pose_1 = gr.Button(value="Pose_1", visible=False)
|
858 |
+
Pose_2 = gr.Button(value="Pose_2", visible=False)
|
859 |
+
Pose_3 = gr.Button(value="Pose_3", visible=False)
|
860 |
+
Pose_4 = gr.Button(value="Pose_4", visible=False)
|
861 |
+
with gr.Row():
|
862 |
+
Pose_5 = gr.Button(value="Pose_5", visible=False)
|
863 |
+
Pose_6 = gr.Button(value="Pose_6", visible=False)
|
864 |
+
Pose_7 = gr.Button(value="Pose_7", visible=False)
|
865 |
+
Pose_8 = gr.Button(value="Pose_8", visible=False)
|
866 |
+
|
867 |
+
with gr.Row():
|
868 |
+
camera_args = gr.Textbox(value="Camera Type", label="Camera Type", visible=False)
|
869 |
+
with gr.Row():
|
870 |
+
camera_vis= gr.Button(value="Visualize Camera and Proceed", visible=False)
|
871 |
+
camera_reset = gr.Button(value="Reset Camera", visible=False)
|
872 |
+
with gr.Column():
|
873 |
+
vis_camera = gr.Plot(fig, label='Camera Poses', visible=False)
|
874 |
+
|
875 |
+
# step2 - object motion control
|
876 |
+
step2_object_motion = gr.Markdown("---\n## Step 2/3: Select a Provided Trajectory of Draw Yourself", show_label=False, visible=False)
|
877 |
+
step2_object_motion_des = gr.Markdown(f"\n - {OBJECT_MOTION_MODE[0]}: We provide some example trajectories. You can select one of them directly. \
|
878 |
+
\n - {OBJECT_MOTION_MODE[1]}: Draw the trajectory yourself. \
|
879 |
+
\n - Click `Proceed` to go into next step",
|
880 |
+
show_label=False, visible=False)
|
881 |
+
|
882 |
+
object_mode = gr.Radio(choices=OBJECT_MOTION_MODE, value=OBJECT_MOTION_MODE[0], label="Motion Control Mode", interactive=True, visible=False)
|
883 |
+
object_info = gr.Button(value="Proceed", visible=False)
|
884 |
+
|
885 |
+
with gr.Row():
|
886 |
+
with gr.Column():
|
887 |
+
# step2.1 - object motion control - provided
|
888 |
+
provided_traj = gr.Markdown("---\n### Provided Trajectory", show_label=False, visible=False)
|
889 |
+
provided_traj_des = gr.Markdown(f"\n 1. Click one of the provided trajectories, such as `horizon_1`; \
|
890 |
+
\n 2. Click `Visualize Trajectory and Proceed` to visualize the trajectory and go proceed; \
|
891 |
+
\n 3. Click `Reset Trajectory` to reset the trajectory (If needed). ",
|
892 |
+
show_label=False, visible=False)
|
893 |
+
|
894 |
+
# step2.2 - object motion control - draw yourself
|
895 |
+
draw_traj = gr.Markdown("---\n### Draw Yourself", show_label=False, visible=False)
|
896 |
+
draw_run_status = gr.Markdown(f"\n 1. Click the `Canvas` in the right to draw the trajectory. **Note that You have to click the canva many times. For time saving, \
|
897 |
+
the click point will not appear in the canvas but its coordinates will be written in `Points of Trajectory`**; \
|
898 |
+
\n 2. Click `Visualize Trajectory and Proceed` to visualize the trajectory and go proceed; \
|
899 |
+
\n 3. Click `Reset Trajectory` to reset the trajectory (If needed). ",
|
900 |
+
show_label=False, visible=False)
|
901 |
+
|
902 |
+
with gr.Row():
|
903 |
+
traj_1 = gr.Button(value="horizon_1", visible=False)
|
904 |
+
traj_2 = gr.Button(value="swaying_1", visible=False)
|
905 |
+
traj_3 = gr.Button(value="swaying_2", visible=False)
|
906 |
+
traj_4 = gr.Button(value="swaying_3", visible=False)
|
907 |
+
with gr.Row():
|
908 |
+
traj_5 = gr.Button(value="curve_1", visible=False)
|
909 |
+
traj_6 = gr.Button(value="curve_2", visible=False)
|
910 |
+
traj_7 = gr.Button(value="curve_3", visible=False)
|
911 |
+
traj_8 = gr.Button(value="curve_4", visible=False)
|
912 |
+
|
913 |
+
traj_args = gr.Textbox(value="", label="Points of Trajectory", visible=False)
|
914 |
+
with gr.Row():
|
915 |
+
traj_vis = gr.Button(value="Visualize Trajectory and Proceed", visible=False)
|
916 |
+
traj_reset = gr.Button(value="Reset Trajectory", visible=False)
|
917 |
+
traj_droplast = gr.Button(value="Drop Last Point", visible=False)
|
918 |
+
|
919 |
+
with gr.Column():
|
920 |
+
traj_input = gr.Image("assets/traj_layout.png", tool='sketch', source="canvas",
|
921 |
+
width=256, height=256,
|
922 |
+
label="Canvas for Drawing", visible=False)
|
923 |
+
vis_traj = gr.Video(value=None, label="Trajectory", visible=False, width=256, height=256)
|
924 |
+
|
925 |
+
|
926 |
+
|
927 |
+
# step3 - Add prompt and Generate videos
|
928 |
+
with gr.Row():
|
929 |
+
with gr.Column():
|
930 |
+
step3_prompt_generate = gr.Markdown("---\n## Step 3/3: Add prompt and Generate videos", show_label=False, visible=False)
|
931 |
+
prompt = gr.Textbox(value="a dog sitting on grass", label="Prompt", interactive=True, visible=False)
|
932 |
+
n_samples = gr.Number(value=3, precision=0, interactive=True, label="n_samples", visible=False)
|
933 |
+
seed = gr.Number(value=1234, precision=0, interactive=True, label="Seed", visible=False)
|
934 |
+
start = gr.Button(value="Start generation !", visible=False)
|
935 |
+
with gr.Column():
|
936 |
+
gen_video = gr.Video(value=None, label="Generate Video", visible=False)
|
937 |
+
|
938 |
+
mode_info.click(
|
939 |
+
fn=visualized_step2,
|
940 |
+
inputs=[infer_mode],
|
941 |
+
outputs=[step2_camera_motion,
|
942 |
+
step2_camera_motion_des,
|
943 |
+
camera_mode,
|
944 |
+
camera_info,
|
945 |
+
|
946 |
+
basic_camera_motion,
|
947 |
+
basic_camera_motion_des,
|
948 |
+
custom_camera_motion,
|
949 |
+
custom_run_status,
|
950 |
+
complex_camera_motion,
|
951 |
+
complex_camera_motion_des,
|
952 |
+
U, D, L, R,
|
953 |
+
I, O, ACW, CW,
|
954 |
+
combine1, combine2,
|
955 |
+
speed,
|
956 |
+
Pose_1, Pose_2, Pose_3, Pose_4,
|
957 |
+
Pose_5, Pose_6, Pose_7, Pose_8,
|
958 |
+
camera_args,
|
959 |
+
camera_reset, camera_vis,
|
960 |
+
vis_camera,
|
961 |
+
|
962 |
+
step2_object_motion,
|
963 |
+
step2_object_motion_des,
|
964 |
+
object_mode,
|
965 |
+
object_info,
|
966 |
+
|
967 |
+
provided_traj,
|
968 |
+
provided_traj_des,
|
969 |
+
draw_traj,
|
970 |
+
draw_run_status,
|
971 |
+
traj_1, traj_2, traj_3, traj_4,
|
972 |
+
traj_5, traj_6, traj_7, traj_8,
|
973 |
+
traj_args,
|
974 |
+
traj_droplast, traj_reset,
|
975 |
+
traj_vis,
|
976 |
+
traj_input, vis_traj,
|
977 |
+
|
978 |
+
step2_camera_object_motion,
|
979 |
+
step2_camera_object_motion_des,
|
980 |
+
|
981 |
+
step3_prompt_generate, prompt, n_samples, seed, start, gen_video,
|
982 |
+
|
983 |
+
],
|
984 |
+
)
|
985 |
+
|
986 |
+
camera_info.click(
|
987 |
+
fn=visualized_camera_poses,
|
988 |
+
inputs=[camera_mode],
|
989 |
+
outputs=[basic_camera_motion,
|
990 |
+
basic_camera_motion_des,
|
991 |
+
custom_camera_motion,
|
992 |
+
custom_run_status,
|
993 |
+
complex_camera_motion,
|
994 |
+
complex_camera_motion_des,
|
995 |
+
U, D, L, R,
|
996 |
+
I, O, ACW, CW,
|
997 |
+
combine1, combine2,
|
998 |
+
speed,
|
999 |
+
Pose_1, Pose_2, Pose_3, Pose_4,
|
1000 |
+
Pose_5, Pose_6, Pose_7, Pose_8,
|
1001 |
+
camera_args,
|
1002 |
+
camera_reset, camera_vis,
|
1003 |
+
vis_camera,
|
1004 |
+
step3_prompt_generate, prompt, n_samples, seed, start, gen_video],
|
1005 |
+
)
|
1006 |
+
|
1007 |
+
object_info.click(
|
1008 |
+
fn=visualized_traj_poses,
|
1009 |
+
inputs=[object_mode],
|
1010 |
+
outputs=[provided_traj,
|
1011 |
+
provided_traj_des,
|
1012 |
+
draw_traj,
|
1013 |
+
draw_run_status,
|
1014 |
+
traj_1, traj_2, traj_3, traj_4,
|
1015 |
+
traj_5, traj_6, traj_7, traj_8,
|
1016 |
+
traj_args,
|
1017 |
+
traj_droplast, traj_reset,
|
1018 |
+
traj_vis,
|
1019 |
+
traj_input, vis_traj,
|
1020 |
+
step3_prompt_generate, prompt, n_samples, seed, start, gen_video,],
|
1021 |
+
)
|
1022 |
+
|
1023 |
+
|
1024 |
+
U.click(fn=add_camera_motion, inputs=[U, camera_mode], outputs=camera_args)
|
1025 |
+
D.click(fn=add_camera_motion, inputs=[D, camera_mode], outputs=camera_args)
|
1026 |
+
L.click(fn=add_camera_motion, inputs=[L, camera_mode], outputs=camera_args)
|
1027 |
+
R.click(fn=add_camera_motion, inputs=[R, camera_mode], outputs=camera_args)
|
1028 |
+
I.click(fn=add_camera_motion, inputs=[I, camera_mode], outputs=camera_args)
|
1029 |
+
O.click(fn=add_camera_motion, inputs=[O, camera_mode], outputs=camera_args)
|
1030 |
+
ACW.click(fn=add_camera_motion, inputs=[ACW, camera_mode], outputs=camera_args)
|
1031 |
+
CW.click(fn=add_camera_motion, inputs=[CW, camera_mode], outputs=camera_args)
|
1032 |
+
speed.change(fn=change_camera_speed, inputs=speed, outputs=camera_args)
|
1033 |
+
camera_reset.click(fn=reset_camera, inputs=None, outputs=[camera_args])
|
1034 |
+
|
1035 |
+
combine1.click(fn=change_camera_mode, inputs=[combine1, camera_mode], outputs=camera_args)
|
1036 |
+
combine2.click(fn=change_camera_mode, inputs=[combine2, camera_mode], outputs=camera_args)
|
1037 |
+
|
1038 |
+
camera_vis.click(fn=fn_vis_camera, inputs=[infer_mode], outputs=[vis_camera, object_mode, object_info, step3_prompt_generate, prompt, n_samples, seed, start, gen_video])
|
1039 |
+
|
1040 |
+
Pose_1.click(fn=add_complex_camera_motion, inputs=Pose_1, outputs=camera_args)
|
1041 |
+
Pose_2.click(fn=add_complex_camera_motion, inputs=Pose_2, outputs=camera_args)
|
1042 |
+
Pose_3.click(fn=add_complex_camera_motion, inputs=Pose_3, outputs=camera_args)
|
1043 |
+
Pose_4.click(fn=add_complex_camera_motion, inputs=Pose_4, outputs=camera_args)
|
1044 |
+
Pose_5.click(fn=add_complex_camera_motion, inputs=Pose_5, outputs=camera_args)
|
1045 |
+
Pose_6.click(fn=add_complex_camera_motion, inputs=Pose_6, outputs=camera_args)
|
1046 |
+
Pose_7.click(fn=add_complex_camera_motion, inputs=Pose_7, outputs=camera_args)
|
1047 |
+
Pose_8.click(fn=add_complex_camera_motion, inputs=Pose_8, outputs=camera_args)
|
1048 |
+
|
1049 |
+
traj_1.click(fn=add_provided_traj, inputs=traj_1, outputs=traj_args)
|
1050 |
+
traj_2.click(fn=add_provided_traj, inputs=traj_2, outputs=traj_args)
|
1051 |
+
traj_3.click(fn=add_provided_traj, inputs=traj_3, outputs=traj_args)
|
1052 |
+
traj_4.click(fn=add_provided_traj, inputs=traj_4, outputs=traj_args)
|
1053 |
+
traj_5.click(fn=add_provided_traj, inputs=traj_5, outputs=traj_args)
|
1054 |
+
traj_6.click(fn=add_provided_traj, inputs=traj_6, outputs=traj_args)
|
1055 |
+
traj_7.click(fn=add_provided_traj, inputs=traj_7, outputs=traj_args)
|
1056 |
+
traj_8.click(fn=add_provided_traj, inputs=traj_8, outputs=traj_args)
|
1057 |
+
|
1058 |
+
traj_vis.click(fn=fn_vis_traj, inputs=None, outputs=[vis_traj, step3_prompt_generate, prompt, n_samples, seed, start, gen_video])
|
1059 |
+
traj_input.select(fn=add_traj_point, inputs=None, outputs=traj_args)
|
1060 |
+
traj_droplast.click(fn=fn_traj_droplast, inputs=None, outputs=traj_args)
|
1061 |
+
traj_reset.click(fn=fn_traj_reset, inputs=None, outputs=traj_args)
|
1062 |
+
|
1063 |
+
|
1064 |
+
start.click(fn=model_run, inputs=[prompt, infer_mode, seed, n_samples], outputs=gen_video)
|
1065 |
+
|
1066 |
+
gr.Markdown(article)
|
1067 |
+
|
1068 |
+
# demo.launch(server_name='0.0.0.0', share=False, server_port=args.port)
|
1069 |
+
demo.queue(concurrency_count=1, max_size=10)
|
1070 |
+
demo.launch()
|
1071 |
+
|
1072 |
+
|
1073 |
+
|
1074 |
+
if __name__=="__main__":
|
1075 |
+
parser = argparse.ArgumentParser()
|
1076 |
+
parser.add_argument("--port", type=int, default=12345)
|
1077 |
+
args = parser.parse_args()
|
1078 |
+
|
1079 |
+
main(args)
|
assets/traj_layout.png
ADDED
![]() |
configs/inference/config_both.yaml
ADDED
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
model:
|
2 |
+
base_learning_rate: 0.0001
|
3 |
+
scale_lr: false
|
4 |
+
target: motionctrl.motionctrl.MotionCtrl
|
5 |
+
params:
|
6 |
+
# param for object motion control
|
7 |
+
omcm_config:
|
8 |
+
pretrained: ~
|
9 |
+
target: lvdm.modules.encoders.adapter.Adapter
|
10 |
+
params:
|
11 |
+
channels:
|
12 |
+
- 320
|
13 |
+
- 640
|
14 |
+
- 1280
|
15 |
+
- 1280
|
16 |
+
nums_rb: 2
|
17 |
+
cin: 128
|
18 |
+
sk: true
|
19 |
+
use_conv: false
|
20 |
+
|
21 |
+
linear_start: 0.00085
|
22 |
+
linear_end: 0.012
|
23 |
+
num_timesteps_cond: 1
|
24 |
+
log_every_t: 200
|
25 |
+
timesteps: 1000
|
26 |
+
first_stage_key: video
|
27 |
+
cond_stage_key: caption
|
28 |
+
cond_stage_trainable: false
|
29 |
+
conditioning_key: crossattn
|
30 |
+
image_size:
|
31 |
+
- 32
|
32 |
+
- 32
|
33 |
+
channels: 4
|
34 |
+
scale_by_std: false
|
35 |
+
scale_factor: 0.18215
|
36 |
+
use_ema: false
|
37 |
+
uncond_prob: 0.1
|
38 |
+
uncond_type: empty_seq
|
39 |
+
empty_params_only: true
|
40 |
+
scheduler_config:
|
41 |
+
target: utils.lr_scheduler.LambdaLRScheduler
|
42 |
+
interval: step
|
43 |
+
frequency: 100
|
44 |
+
params:
|
45 |
+
start_step: 0
|
46 |
+
final_decay_ratio: 0.01
|
47 |
+
decay_steps: 20000
|
48 |
+
unet_config:
|
49 |
+
target: lvdm.modules.networks.openaimodel3d_next.UNetModel
|
50 |
+
params:
|
51 |
+
in_channels: 4
|
52 |
+
out_channels: 4
|
53 |
+
model_channels: 320
|
54 |
+
attention_resolutions:
|
55 |
+
- 4
|
56 |
+
- 2
|
57 |
+
- 1
|
58 |
+
num_res_blocks: 2
|
59 |
+
channel_mult:
|
60 |
+
- 1
|
61 |
+
- 2
|
62 |
+
- 4
|
63 |
+
- 4
|
64 |
+
num_head_channels: 64
|
65 |
+
transformer_depth: 1
|
66 |
+
context_dim: 1024
|
67 |
+
use_linear: true
|
68 |
+
use_checkpoint: true
|
69 |
+
temporal_conv: true
|
70 |
+
temporal_attention: true
|
71 |
+
temporal_selfatt_only: true
|
72 |
+
use_relative_position: false
|
73 |
+
use_causal_attention: false
|
74 |
+
temporal_length: 16
|
75 |
+
use_image_dataset: false
|
76 |
+
addition_attention: true
|
77 |
+
first_stage_config:
|
78 |
+
target: lvdm.models.autoencoder.AutoencoderKL
|
79 |
+
params:
|
80 |
+
embed_dim: 4
|
81 |
+
monitor: val/rec_loss
|
82 |
+
ddconfig:
|
83 |
+
double_z: true
|
84 |
+
z_channels: 4
|
85 |
+
resolution: 256
|
86 |
+
in_channels: 3
|
87 |
+
out_ch: 3
|
88 |
+
ch: 128
|
89 |
+
ch_mult:
|
90 |
+
- 1
|
91 |
+
- 2
|
92 |
+
- 4
|
93 |
+
- 4
|
94 |
+
num_res_blocks: 2
|
95 |
+
attn_resolutions: []
|
96 |
+
dropout: 0.0
|
97 |
+
lossconfig:
|
98 |
+
target: torch.nn.Identity
|
99 |
+
cond_stage_config:
|
100 |
+
target: lvdm.modules.encoders.condition2.FrozenOpenCLIPEmbedder
|
101 |
+
params:
|
102 |
+
freeze: true
|
103 |
+
layer: penultimate
|
104 |
+
|
configs/inference/run.sh
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
config="configs/inference/config_both.yaml"
|
3 |
+
ckpt='./checkpoints/motionctrl.pth'
|
4 |
+
|
5 |
+
condtype='both'
|
6 |
+
condtype='object_motion'
|
7 |
+
condtype='camera_motion'
|
8 |
+
|
9 |
+
cond_dir="examples/"
|
10 |
+
|
11 |
+
res_dir="./outputs/"
|
12 |
+
if [ ! -d $res_dir ]; then
|
13 |
+
mkdir -p $res_dir
|
14 |
+
fi
|
15 |
+
|
16 |
+
save_dir=$res_dir/$condtype'_seed'$seed
|
17 |
+
|
18 |
+
use_ddp=0
|
19 |
+
|
20 |
+
if [ $use_ddp == 0 ]; then
|
21 |
+
CUDA_VISIBLE_DEVICES=7 python 'main/evaluation/motionctrl_inference.py' \
|
22 |
+
--seed 1234 \
|
23 |
+
--ckpt_path $ckpt \
|
24 |
+
--base $config \
|
25 |
+
--savedir $save_dir \
|
26 |
+
--n_samples 5 \
|
27 |
+
--bs 1 --height 256 --width 256 \
|
28 |
+
--unconditional_guidance_scale 7.5 \
|
29 |
+
--ddim_steps 50 \
|
30 |
+
--ddim_eta 1.0 \
|
31 |
+
--condtype $condtype \
|
32 |
+
--cond_dir $cond_dir \
|
33 |
+
# --save_imgs
|
34 |
+
fi
|
35 |
+
|
36 |
+
if [ $use_ddp == 1 ]; then
|
37 |
+
python3 -m torch.distributed.launch \
|
38 |
+
--nproc_per_node=3 --nnodes=1 --master_port=23466 \
|
39 |
+
main/evaluation/ddp_wrapper.py \
|
40 |
+
--module 'inference' \
|
41 |
+
--seed 2000 \
|
42 |
+
--ckpt_path $ckpt \
|
43 |
+
--base $config \
|
44 |
+
--savedir $res_dir/$name \
|
45 |
+
--n_samples 3 \
|
46 |
+
--bs 1 --height 256 --width 256 \
|
47 |
+
--unconditional_guidance_scale 7.5 \
|
48 |
+
--ddim_steps 50 \
|
49 |
+
--ddim_eta 1.0 \
|
50 |
+
--condtype $condtype \
|
51 |
+
--cond_dir $cond_dir
|
52 |
+
fi
|
examples/camera_poses/test_camera_018f7907401f2fef.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
[[1.0, -4.493872218791495e-10, 5.58983348497577e-09, 1.9967236752904682e-09, -4.493872218791495e-10, 1.0, -6.144247333139674e-10, 1.0815730533408896e-09, 5.58983348497577e-09, -6.144247333139674e-10, 1.0, -7.984015226725205e-09], [0.9982863664627075, -0.0024742060340940952, 0.05846544727683067, -0.024547122418880463, 0.002410230925306678, 0.9999964237213135, 0.0011647245846688747, -0.003784072818234563, -0.05846811458468437, -0.0010218139505013824, 0.9982887506484985, -0.09103696048259735], [0.9933298230171204, -0.006303737405687571, 0.11513543128967285, -0.053876250982284546, 0.00586089538410306, 0.9999741315841675, 0.004184383898973465, -0.006566310301423073, -0.115158811211586, -0.0034816779661923647, 0.9933409690856934, -0.18525512516498566], [0.9849286675453186, -0.013619760051369667, 0.17242403328418732, -0.08322551101446152, 0.01256392989307642, 0.9998950958251953, 0.0072133541107177734, -0.004579910542815924, -0.17250417172908783, -0.004938316997140646, 0.9849964380264282, -0.28701746463775635], [0.9731453657150269, -0.022617166861891747, 0.2290775030851364, -0.11655563861131668, 0.02060025744140148, 0.9997251629829407, 0.011192308738827705, -0.0017426757840439677, -0.2292676568031311, -0.006172688212245703, 0.9733438491821289, -0.37736839056015015], [0.9582399725914001, -0.03294993191957474, 0.2840607464313507, -0.15743066370487213, 0.030182993039488792, 0.9994447827339172, 0.014113469049334526, -0.002769832033663988, -0.28436803817749023, -0.004950287751853466, 0.9587023854255676, -0.46959081292152405], [0.940129816532135, -0.03991429880261421, 0.3384712040424347, -0.22889098525047302, 0.03725311905145645, 0.9992027282714844, 0.01435780432075262, -0.0028311305213719606, -0.3387744128704071, -0.0008890923927538097, 0.9408671855926514, -0.5631460547447205], [0.9222924709320068, -0.044258520007133484, 0.38395029306411743, -0.2986142039299011, 0.04110203683376312, 0.9990199208259583, 0.01642671786248684, 0.0013055746676400304, -0.38430097699165344, 0.000630900904070586, 0.9232076406478882, -0.6414245367050171], [0.9061535000801086, -0.04851173609495163, 0.4201577305793762, -0.3483412563800812, 0.04521748423576355, 0.9988185167312622, 0.017803886905312538, 0.0010280977003276348, -0.4205249547958374, 0.0028654206544160843, 0.907276451587677, -0.7144853472709656], [0.8919307589530945, -0.05171844735741615, 0.4492044746875763, -0.37905213236808777, 0.04818608984351158, 0.9986518621444702, 0.019300933927297592, 0.00036871168413199484, -0.44959715008735657, 0.004430312197655439, 0.8932204246520996, -0.7976372241973877], [0.8792291879653931, -0.05425972864031792, 0.47329893708229065, -0.39671003818511963, 0.05076585337519646, 0.998507022857666, 0.02016463316977024, 0.001104982104152441, -0.4736863970756531, 0.00629808846861124, 0.8806710243225098, -0.8874085545539856], [0.8659296035766602, -0.0567130371928215, 0.49694016575813293, -0.4097800552845001, 0.05366959795355797, 0.9983500838279724, 0.020415671169757843, 0.0009228077251464128, -0.497278094291687, 0.008992047980427742, 0.8675445914268494, -0.9762357473373413], [0.8503361940383911, -0.055699657648801804, 0.5232837200164795, -0.44268566370010376, 0.054582174867391586, 0.9983546733856201, 0.01757136546075344, 0.005412018392235041, -0.5234014391899109, 0.013620397076010704, 0.8519773483276367, -1.069865107536316], [0.836037814617157, -0.05214058235287666, 0.5461887717247009, -0.4671085774898529, 0.05177384987473488, 0.9985294938087463, 0.01607322134077549, 0.008980141952633858, -0.5462236404418945, 0.014840473420917988, 0.8375079035758972, -1.1569048166275024], [0.82603919506073, -0.04987695440649986, 0.5614013671875, -0.4677649438381195, 0.05124447122216225, 0.9985973834991455, 0.013318539597094059, 0.012170637026429176, -0.5612781643867493, 0.017767081037163734, 0.8274364471435547, -1.2651430368423462], [0.8179472088813782, -0.0496118925511837, 0.573150098323822, -0.45822662115097046, 0.052784956991672516, 0.9985441565513611, 0.011104168370366096, 0.018991567194461823, -0.5728666186332703, 0.0211710836738348, 0.8193751573562622, -1.3895009756088257]]
|
examples/camera_poses/test_camera_088b93f15ca8745d.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
[[0.9999999403953552, 3.8618797049139175e-10, -1.3441345814158012e-08, 1.3928219289027766e-07, 3.8618797049139175e-10, 1.0, -4.134579345560496e-10, -6.074658998045379e-09, -1.3441345814158012e-08, -4.134579345560496e-10, 1.0, 7.038884319854333e-08], [0.9994913339614868, 0.003077245783060789, -0.031741149723529816, 0.08338673412799835, -0.0030815028585493565, 0.999995231628418, -8.520588744431734e-05, 0.006532138213515282, 0.0317407064139843, 0.00018297435599379241, 0.9994961619377136, -0.02256060019135475], [0.9979938268661499, 0.0051255361177027225, -0.06310292333364487, 0.18344485759735107, -0.005117486696690321, 0.9999868869781494, 0.00028916727751493454, 0.018134046345949173, 0.06310353428125381, 3.434090831433423e-05, 0.9980069994926453, -0.030579563230276108], [0.9954646825790405, 0.00820203311741352, -0.0947771891951561, 0.29663264751434326, -0.00811922550201416, 0.9999662041664124, 0.0012593322899192572, 0.02404301054775715, 0.09478426724672318, -0.0004841022891923785, 0.9954977035522461, -0.02678978443145752], [0.9913660883903503, 0.012001598253846169, -0.13057230412960052, 0.4076530337333679, -0.011968829669058323, 0.999927818775177, 0.0010357286082580686, 0.024977533146739006, 0.1305752843618393, 0.0005360084469430149, 0.9914382100105286, -0.010779343545436859], [0.985666811466217, 0.017323914915323257, -0.16781197488307953, 0.509911060333252, -0.017399737611413002, 0.9998481273651123, 0.0010186078725382686, 0.023117201402783394, 0.16780413687229156, 0.0019158748909831047, 0.9858185052871704, 0.018053216859698296], [0.9784473180770874, 0.022585421800613403, -0.20525763928890228, 0.5957884192466736, -0.022850200533866882, 0.9997382760047913, 0.0010805513011291623, 0.020451901480555534, 0.2052282989025116, 0.003632916137576103, 0.9787073731422424, 0.03460140898823738], [0.9711515307426453, 0.026846906170248985, -0.23694702982902527, 0.6832671165466309, -0.02745947800576687, 0.999622642993927, 0.0007151798927225173, 0.012211678549647331, 0.23687675595283508, 0.005811895243823528, 0.971522331237793, 0.03236595541238785], [0.9641746878623962, 0.030338184908032417, -0.26352745294570923, 0.7764986157417297, -0.031404945999383926, 0.9995067715644836, 0.0001645474840188399, 0.0011497576488181949, 0.26340243220329285, 0.008117412216961384, 0.964651882648468, 0.022656364366412163], [0.9573631882667542, 0.0335896760225296, -0.2869274914264679, 0.8815275430679321, -0.03532479330897331, 0.9993755221366882, -0.0008711823611520231, -0.003618708113208413, 0.2867189943790436, 0.010969695635139942, 0.9579519033432007, 0.005283573176711798], [0.9507063627243042, 0.036557890474796295, -0.3079299330711365, 0.9931321740150452, -0.03846294432878494, 0.9992600679397583, -0.00011733790597645566, 0.0018704120302572846, 0.30769774317741394, 0.01195544097572565, 0.9514090418815613, -0.035360634326934814], [0.9448517560958862, 0.039408694952726364, -0.3251185715198517, 1.1025006771087646, -0.041503626853227615, 0.9991382360458374, 0.0004919985658489168, 0.007425118237733841, 0.32485777139663696, 0.013028733432292938, 0.9456731081008911, -0.09869624674320221], [0.940796971321106, 0.04081147164106369, -0.33650481700897217, 1.1961394548416138, -0.0429220013320446, 0.9990777373313904, 0.0011677180882543325, 0.019955899566411972, 0.336242139339447, 0.013344875536859035, 0.9416810274124146, -0.16835527122020721], [0.9376427531242371, 0.04111124947667122, -0.3451607823371887, 1.2392503023147583, -0.043144747614860535, 0.9990671873092651, 0.0017920633545145392, 0.03982722759246826, 0.34491249918937683, 0.013211555778980255, 0.938541829586029, -0.24618202447891235], [0.9353355765342712, 0.04122937470674515, -0.3513509929180145, 1.285768747329712, -0.043183211237192154, 0.9990646243095398, 0.0022769556380808353, 0.06841164082288742, 0.3511161506175995, 0.01304274145513773, 0.936241090297699, -0.3213619291782379], [0.9342393279075623, 0.041213057935237885, -0.3542574644088745, 1.3363462686538696, -0.04236872121691704, 0.9990919232368469, 0.0044970144517719746, 0.08925694227218628, 0.35412102937698364, 0.010808154009282589, 0.9351370930671692, -0.40201041102409363]]
|
examples/camera_poses/test_camera_1424acd0007d40b5.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
[[1.0, 9.44418099280142e-10, 3.889182664806867e-08, 6.214055492392845e-09, 9.44418099280142e-10, 1.0, -1.0644604121756718e-11, -7.621465680784922e-10, 3.889182664806867e-08, -1.0644604121756718e-11, 1.0, -2.7145965475483536e-08], [0.9873979091644287, -0.007892023772001266, 0.15806053578853607, 0.4749181270599365, 0.008024877868592739, 0.9999678134918213, -0.00020230526570230722, 0.1585356593132019, -0.15805381536483765, 0.0014681711327284575, 0.9874294400215149, -0.2091633826494217], [0.9708925485610962, -0.011486345902085304, 0.23923994600772858, 0.8120080828666687, 0.012198254466056824, 0.9999244809150696, -0.0014952132478356361, 0.2486257702112198, -0.23920467495918274, 0.004370000213384628, 0.9709593057632446, -0.5957822799682617], [0.9619541168212891, -0.013188007287681103, 0.2728927433490753, 1.1486873626708984, 0.014017474837601185, 0.9999011754989624, -0.001090032048523426, 0.3114692270755768, -0.2728513777256012, 0.0048738280311226845, 0.962043821811676, -1.0323039293289185], [0.9586812257766724, -0.013936692848801613, 0.284140944480896, 1.5948307514190674, 0.014867136254906654, 0.9998888373374939, -0.0011181083973497152, 0.36000898480415344, -0.2840937674045563, 0.0052962712943553925, 0.958781898021698, -1.4377187490463257], [0.9583359360694885, -0.011928150430321693, 0.28539448976516724, 2.002793788909912, 0.014221147634088993, 0.9998810887336731, -0.0059633455239236355, 0.35464340448379517, -0.28528934717178345, 0.009773525409400463, 0.9583916068077087, -1.8953297138214111], [0.9584393501281738, -0.010862396098673344, 0.28508952260017395, 2.3351645469665527, 0.012857729569077492, 0.9999041557312012, -0.005128204356878996, 0.38934090733528137, -0.28500640392303467, 0.008580676279962063, 0.9584871530532837, -2.4214961528778076], [0.9587277173995972, -0.009760312736034393, 0.28415825963020325, 2.6858017444610596, 0.012186127714812756, 0.9999027848243713, -0.0067702098749578, 0.4173329174518585, -0.28406453132629395, 0.009953574277460575, 0.9587535262107849, -3.030754327774048], [0.9589635729789734, -0.0070899901911616325, 0.2834406793117523, 2.8917219638824463, 0.010482418350875378, 0.9998904466629028, -0.01045384630560875, 0.4001043438911438, -0.28333547711372375, 0.012996001169085503, 0.9589328169822693, -3.6960957050323486], [0.9590328931808472, -0.005921780597418547, 0.2832328677177429, 3.034579038619995, 0.00947173498570919, 0.9998928308486938, -0.01116593275219202, 0.4193899631500244, -0.2831363379955292, 0.013391205109655857, 0.9589861631393433, -4.384733200073242], [0.9593284726142883, -0.004661113955080509, 0.28225383162498474, 3.2042288780212402, 0.0076906089670956135, 0.9999240636825562, -0.009626304730772972, 0.4752484858036041, -0.28218749165534973, 0.011405492201447487, 0.9592914581298828, -5.098723411560059], [0.9591755867004395, -0.0035665074829012156, 0.2827887237071991, 3.263953924179077, 0.0062992447055876255, 0.9999418258666992, -0.008754877373576164, 0.4543868899345398, -0.282740980386734, 0.010178821161389351, 0.95914226770401, -5.7807512283325195], [0.9591742753982544, -0.003413048107177019, 0.2827949523925781, 3.3116462230682373, 0.003146615345031023, 0.9999940991401672, 0.0013963348465040326, 0.4299861788749695, -0.28279799222946167, -0.0004494813329074532, 0.9591793417930603, -6.478931903839111], [0.9585762619972229, -0.002857929328456521, 0.28482162952423096, 3.4120190143585205, -0.008201238699257374, 0.9992581605911255, 0.0376281812787056, 0.21596357226371765, -0.2847178280353546, -0.03840537369251251, 0.957841694355011, -7.178638935089111], [0.9572952389717102, -0.002719884505495429, 0.28909942507743835, 3.4662365913391113, -0.030634215101599693, 0.9933721423149109, 0.11078491061925888, -0.29767531156539917, -0.2874845862388611, -0.11491020023822784, 0.9508671164512634, -7.794575214385986], [0.9545961618423462, -0.005338957067579031, 0.29785510897636414, 3.5083835124969482, -0.06037351116538048, 0.9756243824958801, 0.2109788954257965, -1.0968165397644043, -0.29172107577323914, -0.21938219666481018, 0.9310050010681152, -8.306528091430664]]
|
examples/camera_poses/test_camera_D.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.0,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
-0.2,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
0.0
|
15 |
+
],
|
16 |
+
[
|
17 |
+
1.0,
|
18 |
+
0.0,
|
19 |
+
0.0,
|
20 |
+
0.0,
|
21 |
+
0.0,
|
22 |
+
1.0,
|
23 |
+
0.0,
|
24 |
+
-0.28750000000000003,
|
25 |
+
0.0,
|
26 |
+
0.0,
|
27 |
+
1.0,
|
28 |
+
0.0
|
29 |
+
],
|
30 |
+
[
|
31 |
+
1.0,
|
32 |
+
0.0,
|
33 |
+
0.0,
|
34 |
+
0.0,
|
35 |
+
0.0,
|
36 |
+
1.0,
|
37 |
+
0.0,
|
38 |
+
-0.37500000000000006,
|
39 |
+
0.0,
|
40 |
+
0.0,
|
41 |
+
1.0,
|
42 |
+
0.0
|
43 |
+
],
|
44 |
+
[
|
45 |
+
1.0,
|
46 |
+
0.0,
|
47 |
+
0.0,
|
48 |
+
0.0,
|
49 |
+
0.0,
|
50 |
+
1.0,
|
51 |
+
0.0,
|
52 |
+
-0.4625000000000001,
|
53 |
+
0.0,
|
54 |
+
0.0,
|
55 |
+
1.0,
|
56 |
+
0.0
|
57 |
+
],
|
58 |
+
[
|
59 |
+
1.0,
|
60 |
+
0.0,
|
61 |
+
0.0,
|
62 |
+
0.0,
|
63 |
+
0.0,
|
64 |
+
1.0,
|
65 |
+
0.0,
|
66 |
+
-0.55,
|
67 |
+
0.0,
|
68 |
+
0.0,
|
69 |
+
1.0,
|
70 |
+
0.0
|
71 |
+
],
|
72 |
+
[
|
73 |
+
1.0,
|
74 |
+
0.0,
|
75 |
+
0.0,
|
76 |
+
0.0,
|
77 |
+
0.0,
|
78 |
+
1.0,
|
79 |
+
0.0,
|
80 |
+
-0.6375000000000002,
|
81 |
+
0.0,
|
82 |
+
0.0,
|
83 |
+
1.0,
|
84 |
+
0.0
|
85 |
+
],
|
86 |
+
[
|
87 |
+
1.0,
|
88 |
+
0.0,
|
89 |
+
0.0,
|
90 |
+
0.0,
|
91 |
+
0.0,
|
92 |
+
1.0,
|
93 |
+
0.0,
|
94 |
+
-0.7250000000000001,
|
95 |
+
0.0,
|
96 |
+
0.0,
|
97 |
+
1.0,
|
98 |
+
0.0
|
99 |
+
],
|
100 |
+
[
|
101 |
+
1.0,
|
102 |
+
0.0,
|
103 |
+
0.0,
|
104 |
+
0.0,
|
105 |
+
0.0,
|
106 |
+
1.0,
|
107 |
+
0.0,
|
108 |
+
-0.8125000000000002,
|
109 |
+
0.0,
|
110 |
+
0.0,
|
111 |
+
1.0,
|
112 |
+
0.0
|
113 |
+
],
|
114 |
+
[
|
115 |
+
1.0,
|
116 |
+
0.0,
|
117 |
+
0.0,
|
118 |
+
0.0,
|
119 |
+
0.0,
|
120 |
+
1.0,
|
121 |
+
0.0,
|
122 |
+
-0.9000000000000001,
|
123 |
+
0.0,
|
124 |
+
0.0,
|
125 |
+
1.0,
|
126 |
+
0.0
|
127 |
+
],
|
128 |
+
[
|
129 |
+
1.0,
|
130 |
+
0.0,
|
131 |
+
0.0,
|
132 |
+
0.0,
|
133 |
+
0.0,
|
134 |
+
1.0,
|
135 |
+
0.0,
|
136 |
+
-0.9875000000000003,
|
137 |
+
0.0,
|
138 |
+
0.0,
|
139 |
+
1.0,
|
140 |
+
0.0
|
141 |
+
],
|
142 |
+
[
|
143 |
+
1.0,
|
144 |
+
0.0,
|
145 |
+
0.0,
|
146 |
+
0.0,
|
147 |
+
0.0,
|
148 |
+
1.0,
|
149 |
+
0.0,
|
150 |
+
-1.0750000000000002,
|
151 |
+
0.0,
|
152 |
+
0.0,
|
153 |
+
1.0,
|
154 |
+
0.0
|
155 |
+
],
|
156 |
+
[
|
157 |
+
1.0,
|
158 |
+
0.0,
|
159 |
+
0.0,
|
160 |
+
0.0,
|
161 |
+
0.0,
|
162 |
+
1.0,
|
163 |
+
0.0,
|
164 |
+
-1.1625000000000003,
|
165 |
+
0.0,
|
166 |
+
0.0,
|
167 |
+
1.0,
|
168 |
+
0.0
|
169 |
+
],
|
170 |
+
[
|
171 |
+
1.0,
|
172 |
+
0.0,
|
173 |
+
0.0,
|
174 |
+
0.0,
|
175 |
+
0.0,
|
176 |
+
1.0,
|
177 |
+
0.0,
|
178 |
+
-1.2500000000000002,
|
179 |
+
0.0,
|
180 |
+
0.0,
|
181 |
+
1.0,
|
182 |
+
0.0
|
183 |
+
],
|
184 |
+
[
|
185 |
+
1.0,
|
186 |
+
0.0,
|
187 |
+
0.0,
|
188 |
+
0.0,
|
189 |
+
0.0,
|
190 |
+
1.0,
|
191 |
+
0.0,
|
192 |
+
-1.3375000000000001,
|
193 |
+
0.0,
|
194 |
+
0.0,
|
195 |
+
1.0,
|
196 |
+
0.0
|
197 |
+
],
|
198 |
+
[
|
199 |
+
1.0,
|
200 |
+
0.0,
|
201 |
+
0.0,
|
202 |
+
0.0,
|
203 |
+
0.0,
|
204 |
+
1.0,
|
205 |
+
0.0,
|
206 |
+
-1.4250000000000003,
|
207 |
+
0.0,
|
208 |
+
0.0,
|
209 |
+
1.0,
|
210 |
+
0.0
|
211 |
+
],
|
212 |
+
[
|
213 |
+
1.0,
|
214 |
+
0.0,
|
215 |
+
0.0,
|
216 |
+
0.0,
|
217 |
+
0.0,
|
218 |
+
1.0,
|
219 |
+
0.0,
|
220 |
+
-1.5125000000000004,
|
221 |
+
0.0,
|
222 |
+
0.0,
|
223 |
+
1.0,
|
224 |
+
0.0
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_I.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.0,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.0,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
-0.2
|
15 |
+
],
|
16 |
+
[
|
17 |
+
1.0,
|
18 |
+
0.0,
|
19 |
+
0.0,
|
20 |
+
0.0,
|
21 |
+
0.0,
|
22 |
+
1.0,
|
23 |
+
0.0,
|
24 |
+
0.0,
|
25 |
+
0.0,
|
26 |
+
0.0,
|
27 |
+
1.0,
|
28 |
+
-0.28750000000000003
|
29 |
+
],
|
30 |
+
[
|
31 |
+
1.0,
|
32 |
+
0.0,
|
33 |
+
0.0,
|
34 |
+
0.0,
|
35 |
+
0.0,
|
36 |
+
1.0,
|
37 |
+
0.0,
|
38 |
+
0.0,
|
39 |
+
0.0,
|
40 |
+
0.0,
|
41 |
+
1.0,
|
42 |
+
-0.37500000000000006
|
43 |
+
],
|
44 |
+
[
|
45 |
+
1.0,
|
46 |
+
0.0,
|
47 |
+
0.0,
|
48 |
+
0.0,
|
49 |
+
0.0,
|
50 |
+
1.0,
|
51 |
+
0.0,
|
52 |
+
0.0,
|
53 |
+
0.0,
|
54 |
+
0.0,
|
55 |
+
1.0,
|
56 |
+
-0.4625000000000001
|
57 |
+
],
|
58 |
+
[
|
59 |
+
1.0,
|
60 |
+
0.0,
|
61 |
+
0.0,
|
62 |
+
0.0,
|
63 |
+
0.0,
|
64 |
+
1.0,
|
65 |
+
0.0,
|
66 |
+
0.0,
|
67 |
+
0.0,
|
68 |
+
0.0,
|
69 |
+
1.0,
|
70 |
+
-0.55
|
71 |
+
],
|
72 |
+
[
|
73 |
+
1.0,
|
74 |
+
0.0,
|
75 |
+
0.0,
|
76 |
+
0.0,
|
77 |
+
0.0,
|
78 |
+
1.0,
|
79 |
+
0.0,
|
80 |
+
0.0,
|
81 |
+
0.0,
|
82 |
+
0.0,
|
83 |
+
1.0,
|
84 |
+
-0.6375000000000002
|
85 |
+
],
|
86 |
+
[
|
87 |
+
1.0,
|
88 |
+
0.0,
|
89 |
+
0.0,
|
90 |
+
0.0,
|
91 |
+
0.0,
|
92 |
+
1.0,
|
93 |
+
0.0,
|
94 |
+
0.0,
|
95 |
+
0.0,
|
96 |
+
0.0,
|
97 |
+
1.0,
|
98 |
+
-0.7250000000000001
|
99 |
+
],
|
100 |
+
[
|
101 |
+
1.0,
|
102 |
+
0.0,
|
103 |
+
0.0,
|
104 |
+
0.0,
|
105 |
+
0.0,
|
106 |
+
1.0,
|
107 |
+
0.0,
|
108 |
+
0.0,
|
109 |
+
0.0,
|
110 |
+
0.0,
|
111 |
+
1.0,
|
112 |
+
-0.8125000000000002
|
113 |
+
],
|
114 |
+
[
|
115 |
+
1.0,
|
116 |
+
0.0,
|
117 |
+
0.0,
|
118 |
+
0.0,
|
119 |
+
0.0,
|
120 |
+
1.0,
|
121 |
+
0.0,
|
122 |
+
0.0,
|
123 |
+
0.0,
|
124 |
+
0.0,
|
125 |
+
1.0,
|
126 |
+
-0.9000000000000001
|
127 |
+
],
|
128 |
+
[
|
129 |
+
1.0,
|
130 |
+
0.0,
|
131 |
+
0.0,
|
132 |
+
0.0,
|
133 |
+
0.0,
|
134 |
+
1.0,
|
135 |
+
0.0,
|
136 |
+
0.0,
|
137 |
+
0.0,
|
138 |
+
0.0,
|
139 |
+
1.0,
|
140 |
+
-0.9875000000000003
|
141 |
+
],
|
142 |
+
[
|
143 |
+
1.0,
|
144 |
+
0.0,
|
145 |
+
0.0,
|
146 |
+
0.0,
|
147 |
+
0.0,
|
148 |
+
1.0,
|
149 |
+
0.0,
|
150 |
+
0.0,
|
151 |
+
0.0,
|
152 |
+
0.0,
|
153 |
+
1.0,
|
154 |
+
-1.0750000000000002
|
155 |
+
],
|
156 |
+
[
|
157 |
+
1.0,
|
158 |
+
0.0,
|
159 |
+
0.0,
|
160 |
+
0.0,
|
161 |
+
0.0,
|
162 |
+
1.0,
|
163 |
+
0.0,
|
164 |
+
0.0,
|
165 |
+
0.0,
|
166 |
+
0.0,
|
167 |
+
1.0,
|
168 |
+
-1.1625000000000003
|
169 |
+
],
|
170 |
+
[
|
171 |
+
1.0,
|
172 |
+
0.0,
|
173 |
+
0.0,
|
174 |
+
0.0,
|
175 |
+
0.0,
|
176 |
+
1.0,
|
177 |
+
0.0,
|
178 |
+
0.0,
|
179 |
+
0.0,
|
180 |
+
0.0,
|
181 |
+
1.0,
|
182 |
+
-1.2500000000000002
|
183 |
+
],
|
184 |
+
[
|
185 |
+
1.0,
|
186 |
+
0.0,
|
187 |
+
0.0,
|
188 |
+
0.0,
|
189 |
+
0.0,
|
190 |
+
1.0,
|
191 |
+
0.0,
|
192 |
+
0.0,
|
193 |
+
0.0,
|
194 |
+
0.0,
|
195 |
+
1.0,
|
196 |
+
-1.3375000000000001
|
197 |
+
],
|
198 |
+
[
|
199 |
+
1.0,
|
200 |
+
0.0,
|
201 |
+
0.0,
|
202 |
+
0.0,
|
203 |
+
0.0,
|
204 |
+
1.0,
|
205 |
+
0.0,
|
206 |
+
0.0,
|
207 |
+
0.0,
|
208 |
+
0.0,
|
209 |
+
1.0,
|
210 |
+
-1.4250000000000003
|
211 |
+
],
|
212 |
+
[
|
213 |
+
1.0,
|
214 |
+
0.0,
|
215 |
+
0.0,
|
216 |
+
0.0,
|
217 |
+
0.0,
|
218 |
+
1.0,
|
219 |
+
0.0,
|
220 |
+
0.0,
|
221 |
+
0.0,
|
222 |
+
0.0,
|
223 |
+
1.0,
|
224 |
+
-1.5125000000000004
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_I_0.2x.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.0,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.0,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
-0.0
|
15 |
+
],
|
16 |
+
[
|
17 |
+
1.0,
|
18 |
+
0.0,
|
19 |
+
0.0,
|
20 |
+
0.0,
|
21 |
+
0.0,
|
22 |
+
1.0,
|
23 |
+
0.0,
|
24 |
+
0.0,
|
25 |
+
0.0,
|
26 |
+
0.0,
|
27 |
+
1.0,
|
28 |
+
-0.022500000000000003
|
29 |
+
],
|
30 |
+
[
|
31 |
+
1.0,
|
32 |
+
0.0,
|
33 |
+
0.0,
|
34 |
+
0.0,
|
35 |
+
0.0,
|
36 |
+
1.0,
|
37 |
+
0.0,
|
38 |
+
0.0,
|
39 |
+
0.0,
|
40 |
+
0.0,
|
41 |
+
1.0,
|
42 |
+
-0.045000000000000005
|
43 |
+
],
|
44 |
+
[
|
45 |
+
1.0,
|
46 |
+
0.0,
|
47 |
+
0.0,
|
48 |
+
0.0,
|
49 |
+
0.0,
|
50 |
+
1.0,
|
51 |
+
0.0,
|
52 |
+
0.0,
|
53 |
+
0.0,
|
54 |
+
0.0,
|
55 |
+
1.0,
|
56 |
+
-0.0675
|
57 |
+
],
|
58 |
+
[
|
59 |
+
1.0,
|
60 |
+
0.0,
|
61 |
+
0.0,
|
62 |
+
0.0,
|
63 |
+
0.0,
|
64 |
+
1.0,
|
65 |
+
0.0,
|
66 |
+
0.0,
|
67 |
+
0.0,
|
68 |
+
0.0,
|
69 |
+
1.0,
|
70 |
+
-0.09000000000000001
|
71 |
+
],
|
72 |
+
[
|
73 |
+
1.0,
|
74 |
+
0.0,
|
75 |
+
0.0,
|
76 |
+
0.0,
|
77 |
+
0.0,
|
78 |
+
1.0,
|
79 |
+
0.0,
|
80 |
+
0.0,
|
81 |
+
0.0,
|
82 |
+
0.0,
|
83 |
+
1.0,
|
84 |
+
-0.11250000000000002
|
85 |
+
],
|
86 |
+
[
|
87 |
+
1.0,
|
88 |
+
0.0,
|
89 |
+
0.0,
|
90 |
+
0.0,
|
91 |
+
0.0,
|
92 |
+
1.0,
|
93 |
+
0.0,
|
94 |
+
0.0,
|
95 |
+
0.0,
|
96 |
+
0.0,
|
97 |
+
1.0,
|
98 |
+
-0.135
|
99 |
+
],
|
100 |
+
[
|
101 |
+
1.0,
|
102 |
+
0.0,
|
103 |
+
0.0,
|
104 |
+
0.0,
|
105 |
+
0.0,
|
106 |
+
1.0,
|
107 |
+
0.0,
|
108 |
+
0.0,
|
109 |
+
0.0,
|
110 |
+
0.0,
|
111 |
+
1.0,
|
112 |
+
-0.15750000000000003
|
113 |
+
],
|
114 |
+
[
|
115 |
+
1.0,
|
116 |
+
0.0,
|
117 |
+
0.0,
|
118 |
+
0.0,
|
119 |
+
0.0,
|
120 |
+
1.0,
|
121 |
+
0.0,
|
122 |
+
0.0,
|
123 |
+
0.0,
|
124 |
+
0.0,
|
125 |
+
1.0,
|
126 |
+
-0.18000000000000002
|
127 |
+
],
|
128 |
+
[
|
129 |
+
1.0,
|
130 |
+
0.0,
|
131 |
+
0.0,
|
132 |
+
0.0,
|
133 |
+
0.0,
|
134 |
+
1.0,
|
135 |
+
0.0,
|
136 |
+
0.0,
|
137 |
+
0.0,
|
138 |
+
0.0,
|
139 |
+
1.0,
|
140 |
+
-0.2025
|
141 |
+
],
|
142 |
+
[
|
143 |
+
1.0,
|
144 |
+
0.0,
|
145 |
+
0.0,
|
146 |
+
0.0,
|
147 |
+
0.0,
|
148 |
+
1.0,
|
149 |
+
0.0,
|
150 |
+
0.0,
|
151 |
+
0.0,
|
152 |
+
0.0,
|
153 |
+
1.0,
|
154 |
+
-0.22500000000000003
|
155 |
+
],
|
156 |
+
[
|
157 |
+
1.0,
|
158 |
+
0.0,
|
159 |
+
0.0,
|
160 |
+
0.0,
|
161 |
+
0.0,
|
162 |
+
1.0,
|
163 |
+
0.0,
|
164 |
+
0.0,
|
165 |
+
0.0,
|
166 |
+
0.0,
|
167 |
+
1.0,
|
168 |
+
-0.24750000000000003
|
169 |
+
],
|
170 |
+
[
|
171 |
+
1.0,
|
172 |
+
0.0,
|
173 |
+
0.0,
|
174 |
+
0.0,
|
175 |
+
0.0,
|
176 |
+
1.0,
|
177 |
+
0.0,
|
178 |
+
0.0,
|
179 |
+
0.0,
|
180 |
+
0.0,
|
181 |
+
1.0,
|
182 |
+
-0.27
|
183 |
+
],
|
184 |
+
[
|
185 |
+
1.0,
|
186 |
+
0.0,
|
187 |
+
0.0,
|
188 |
+
0.0,
|
189 |
+
0.0,
|
190 |
+
1.0,
|
191 |
+
0.0,
|
192 |
+
0.0,
|
193 |
+
0.0,
|
194 |
+
0.0,
|
195 |
+
1.0,
|
196 |
+
-0.29250000000000004
|
197 |
+
],
|
198 |
+
[
|
199 |
+
1.0,
|
200 |
+
0.0,
|
201 |
+
0.0,
|
202 |
+
0.0,
|
203 |
+
0.0,
|
204 |
+
1.0,
|
205 |
+
0.0,
|
206 |
+
0.0,
|
207 |
+
0.0,
|
208 |
+
0.0,
|
209 |
+
1.0,
|
210 |
+
-0.31500000000000006
|
211 |
+
],
|
212 |
+
[
|
213 |
+
1.0,
|
214 |
+
0.0,
|
215 |
+
0.0,
|
216 |
+
0.0,
|
217 |
+
0.0,
|
218 |
+
1.0,
|
219 |
+
0.0,
|
220 |
+
0.0,
|
221 |
+
0.0,
|
222 |
+
0.0,
|
223 |
+
1.0,
|
224 |
+
-0.3375
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_I_0.4x.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.0,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.0,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
-0.0
|
15 |
+
],
|
16 |
+
[
|
17 |
+
1.0,
|
18 |
+
0.0,
|
19 |
+
0.0,
|
20 |
+
0.0,
|
21 |
+
0.0,
|
22 |
+
1.0,
|
23 |
+
0.0,
|
24 |
+
0.0,
|
25 |
+
0.0,
|
26 |
+
0.0,
|
27 |
+
1.0,
|
28 |
+
-0.045000000000000005
|
29 |
+
],
|
30 |
+
[
|
31 |
+
1.0,
|
32 |
+
0.0,
|
33 |
+
0.0,
|
34 |
+
0.0,
|
35 |
+
0.0,
|
36 |
+
1.0,
|
37 |
+
0.0,
|
38 |
+
0.0,
|
39 |
+
0.0,
|
40 |
+
0.0,
|
41 |
+
1.0,
|
42 |
+
-0.09000000000000001
|
43 |
+
],
|
44 |
+
[
|
45 |
+
1.0,
|
46 |
+
0.0,
|
47 |
+
0.0,
|
48 |
+
0.0,
|
49 |
+
0.0,
|
50 |
+
1.0,
|
51 |
+
0.0,
|
52 |
+
0.0,
|
53 |
+
0.0,
|
54 |
+
0.0,
|
55 |
+
1.0,
|
56 |
+
-0.135
|
57 |
+
],
|
58 |
+
[
|
59 |
+
1.0,
|
60 |
+
0.0,
|
61 |
+
0.0,
|
62 |
+
0.0,
|
63 |
+
0.0,
|
64 |
+
1.0,
|
65 |
+
0.0,
|
66 |
+
0.0,
|
67 |
+
0.0,
|
68 |
+
0.0,
|
69 |
+
1.0,
|
70 |
+
-0.18000000000000002
|
71 |
+
],
|
72 |
+
[
|
73 |
+
1.0,
|
74 |
+
0.0,
|
75 |
+
0.0,
|
76 |
+
0.0,
|
77 |
+
0.0,
|
78 |
+
1.0,
|
79 |
+
0.0,
|
80 |
+
0.0,
|
81 |
+
0.0,
|
82 |
+
0.0,
|
83 |
+
1.0,
|
84 |
+
-0.22500000000000003
|
85 |
+
],
|
86 |
+
[
|
87 |
+
1.0,
|
88 |
+
0.0,
|
89 |
+
0.0,
|
90 |
+
0.0,
|
91 |
+
0.0,
|
92 |
+
1.0,
|
93 |
+
0.0,
|
94 |
+
0.0,
|
95 |
+
0.0,
|
96 |
+
0.0,
|
97 |
+
1.0,
|
98 |
+
-0.27
|
99 |
+
],
|
100 |
+
[
|
101 |
+
1.0,
|
102 |
+
0.0,
|
103 |
+
0.0,
|
104 |
+
0.0,
|
105 |
+
0.0,
|
106 |
+
1.0,
|
107 |
+
0.0,
|
108 |
+
0.0,
|
109 |
+
0.0,
|
110 |
+
0.0,
|
111 |
+
1.0,
|
112 |
+
-0.31500000000000006
|
113 |
+
],
|
114 |
+
[
|
115 |
+
1.0,
|
116 |
+
0.0,
|
117 |
+
0.0,
|
118 |
+
0.0,
|
119 |
+
0.0,
|
120 |
+
1.0,
|
121 |
+
0.0,
|
122 |
+
0.0,
|
123 |
+
0.0,
|
124 |
+
0.0,
|
125 |
+
1.0,
|
126 |
+
-0.36000000000000004
|
127 |
+
],
|
128 |
+
[
|
129 |
+
1.0,
|
130 |
+
0.0,
|
131 |
+
0.0,
|
132 |
+
0.0,
|
133 |
+
0.0,
|
134 |
+
1.0,
|
135 |
+
0.0,
|
136 |
+
0.0,
|
137 |
+
0.0,
|
138 |
+
0.0,
|
139 |
+
1.0,
|
140 |
+
-0.405
|
141 |
+
],
|
142 |
+
[
|
143 |
+
1.0,
|
144 |
+
0.0,
|
145 |
+
0.0,
|
146 |
+
0.0,
|
147 |
+
0.0,
|
148 |
+
1.0,
|
149 |
+
0.0,
|
150 |
+
0.0,
|
151 |
+
0.0,
|
152 |
+
0.0,
|
153 |
+
1.0,
|
154 |
+
-0.45000000000000007
|
155 |
+
],
|
156 |
+
[
|
157 |
+
1.0,
|
158 |
+
0.0,
|
159 |
+
0.0,
|
160 |
+
0.0,
|
161 |
+
0.0,
|
162 |
+
1.0,
|
163 |
+
0.0,
|
164 |
+
0.0,
|
165 |
+
0.0,
|
166 |
+
0.0,
|
167 |
+
1.0,
|
168 |
+
-0.49500000000000005
|
169 |
+
],
|
170 |
+
[
|
171 |
+
1.0,
|
172 |
+
0.0,
|
173 |
+
0.0,
|
174 |
+
0.0,
|
175 |
+
0.0,
|
176 |
+
1.0,
|
177 |
+
0.0,
|
178 |
+
0.0,
|
179 |
+
0.0,
|
180 |
+
0.0,
|
181 |
+
1.0,
|
182 |
+
-0.54
|
183 |
+
],
|
184 |
+
[
|
185 |
+
1.0,
|
186 |
+
0.0,
|
187 |
+
0.0,
|
188 |
+
0.0,
|
189 |
+
0.0,
|
190 |
+
1.0,
|
191 |
+
0.0,
|
192 |
+
0.0,
|
193 |
+
0.0,
|
194 |
+
0.0,
|
195 |
+
1.0,
|
196 |
+
-0.5850000000000001
|
197 |
+
],
|
198 |
+
[
|
199 |
+
1.0,
|
200 |
+
0.0,
|
201 |
+
0.0,
|
202 |
+
0.0,
|
203 |
+
0.0,
|
204 |
+
1.0,
|
205 |
+
0.0,
|
206 |
+
0.0,
|
207 |
+
0.0,
|
208 |
+
0.0,
|
209 |
+
1.0,
|
210 |
+
-0.6300000000000001
|
211 |
+
],
|
212 |
+
[
|
213 |
+
1.0,
|
214 |
+
0.0,
|
215 |
+
0.0,
|
216 |
+
0.0,
|
217 |
+
0.0,
|
218 |
+
1.0,
|
219 |
+
0.0,
|
220 |
+
0.0,
|
221 |
+
0.0,
|
222 |
+
0.0,
|
223 |
+
1.0,
|
224 |
+
-0.675
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_I_1.0x.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.0,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.0,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
-0.0
|
15 |
+
],
|
16 |
+
[
|
17 |
+
1.0,
|
18 |
+
0.0,
|
19 |
+
0.0,
|
20 |
+
0.0,
|
21 |
+
0.0,
|
22 |
+
1.0,
|
23 |
+
0.0,
|
24 |
+
0.0,
|
25 |
+
0.0,
|
26 |
+
0.0,
|
27 |
+
1.0,
|
28 |
+
-0.1125
|
29 |
+
],
|
30 |
+
[
|
31 |
+
1.0,
|
32 |
+
0.0,
|
33 |
+
0.0,
|
34 |
+
0.0,
|
35 |
+
0.0,
|
36 |
+
1.0,
|
37 |
+
0.0,
|
38 |
+
0.0,
|
39 |
+
0.0,
|
40 |
+
0.0,
|
41 |
+
1.0,
|
42 |
+
-0.225
|
43 |
+
],
|
44 |
+
[
|
45 |
+
1.0,
|
46 |
+
0.0,
|
47 |
+
0.0,
|
48 |
+
0.0,
|
49 |
+
0.0,
|
50 |
+
1.0,
|
51 |
+
0.0,
|
52 |
+
0.0,
|
53 |
+
0.0,
|
54 |
+
0.0,
|
55 |
+
1.0,
|
56 |
+
-0.3375
|
57 |
+
],
|
58 |
+
[
|
59 |
+
1.0,
|
60 |
+
0.0,
|
61 |
+
0.0,
|
62 |
+
0.0,
|
63 |
+
0.0,
|
64 |
+
1.0,
|
65 |
+
0.0,
|
66 |
+
0.0,
|
67 |
+
0.0,
|
68 |
+
0.0,
|
69 |
+
1.0,
|
70 |
+
-0.45
|
71 |
+
],
|
72 |
+
[
|
73 |
+
1.0,
|
74 |
+
0.0,
|
75 |
+
0.0,
|
76 |
+
0.0,
|
77 |
+
0.0,
|
78 |
+
1.0,
|
79 |
+
0.0,
|
80 |
+
0.0,
|
81 |
+
0.0,
|
82 |
+
0.0,
|
83 |
+
1.0,
|
84 |
+
-0.5625
|
85 |
+
],
|
86 |
+
[
|
87 |
+
1.0,
|
88 |
+
0.0,
|
89 |
+
0.0,
|
90 |
+
0.0,
|
91 |
+
0.0,
|
92 |
+
1.0,
|
93 |
+
0.0,
|
94 |
+
0.0,
|
95 |
+
0.0,
|
96 |
+
0.0,
|
97 |
+
1.0,
|
98 |
+
-0.675
|
99 |
+
],
|
100 |
+
[
|
101 |
+
1.0,
|
102 |
+
0.0,
|
103 |
+
0.0,
|
104 |
+
0.0,
|
105 |
+
0.0,
|
106 |
+
1.0,
|
107 |
+
0.0,
|
108 |
+
0.0,
|
109 |
+
0.0,
|
110 |
+
0.0,
|
111 |
+
1.0,
|
112 |
+
-0.7875
|
113 |
+
],
|
114 |
+
[
|
115 |
+
1.0,
|
116 |
+
0.0,
|
117 |
+
0.0,
|
118 |
+
0.0,
|
119 |
+
0.0,
|
120 |
+
1.0,
|
121 |
+
0.0,
|
122 |
+
0.0,
|
123 |
+
0.0,
|
124 |
+
0.0,
|
125 |
+
1.0,
|
126 |
+
-0.9
|
127 |
+
],
|
128 |
+
[
|
129 |
+
1.0,
|
130 |
+
0.0,
|
131 |
+
0.0,
|
132 |
+
0.0,
|
133 |
+
0.0,
|
134 |
+
1.0,
|
135 |
+
0.0,
|
136 |
+
0.0,
|
137 |
+
0.0,
|
138 |
+
0.0,
|
139 |
+
1.0,
|
140 |
+
-1.0125
|
141 |
+
],
|
142 |
+
[
|
143 |
+
1.0,
|
144 |
+
0.0,
|
145 |
+
0.0,
|
146 |
+
0.0,
|
147 |
+
0.0,
|
148 |
+
1.0,
|
149 |
+
0.0,
|
150 |
+
0.0,
|
151 |
+
0.0,
|
152 |
+
0.0,
|
153 |
+
1.0,
|
154 |
+
-1.125
|
155 |
+
],
|
156 |
+
[
|
157 |
+
1.0,
|
158 |
+
0.0,
|
159 |
+
0.0,
|
160 |
+
0.0,
|
161 |
+
0.0,
|
162 |
+
1.0,
|
163 |
+
0.0,
|
164 |
+
0.0,
|
165 |
+
0.0,
|
166 |
+
0.0,
|
167 |
+
1.0,
|
168 |
+
-1.2375
|
169 |
+
],
|
170 |
+
[
|
171 |
+
1.0,
|
172 |
+
0.0,
|
173 |
+
0.0,
|
174 |
+
0.0,
|
175 |
+
0.0,
|
176 |
+
1.0,
|
177 |
+
0.0,
|
178 |
+
0.0,
|
179 |
+
0.0,
|
180 |
+
0.0,
|
181 |
+
1.0,
|
182 |
+
-1.35
|
183 |
+
],
|
184 |
+
[
|
185 |
+
1.0,
|
186 |
+
0.0,
|
187 |
+
0.0,
|
188 |
+
0.0,
|
189 |
+
0.0,
|
190 |
+
1.0,
|
191 |
+
0.0,
|
192 |
+
0.0,
|
193 |
+
0.0,
|
194 |
+
0.0,
|
195 |
+
1.0,
|
196 |
+
-1.4625000000000001
|
197 |
+
],
|
198 |
+
[
|
199 |
+
1.0,
|
200 |
+
0.0,
|
201 |
+
0.0,
|
202 |
+
0.0,
|
203 |
+
0.0,
|
204 |
+
1.0,
|
205 |
+
0.0,
|
206 |
+
0.0,
|
207 |
+
0.0,
|
208 |
+
0.0,
|
209 |
+
1.0,
|
210 |
+
-1.575
|
211 |
+
],
|
212 |
+
[
|
213 |
+
1.0,
|
214 |
+
0.0,
|
215 |
+
0.0,
|
216 |
+
0.0,
|
217 |
+
0.0,
|
218 |
+
1.0,
|
219 |
+
0.0,
|
220 |
+
0.0,
|
221 |
+
0.0,
|
222 |
+
0.0,
|
223 |
+
1.0,
|
224 |
+
-1.6875
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_I_2.0x.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.0,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.0,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
-0.0
|
15 |
+
],
|
16 |
+
[
|
17 |
+
1.0,
|
18 |
+
0.0,
|
19 |
+
0.0,
|
20 |
+
0.0,
|
21 |
+
0.0,
|
22 |
+
1.0,
|
23 |
+
0.0,
|
24 |
+
0.0,
|
25 |
+
0.0,
|
26 |
+
0.0,
|
27 |
+
1.0,
|
28 |
+
-0.225
|
29 |
+
],
|
30 |
+
[
|
31 |
+
1.0,
|
32 |
+
0.0,
|
33 |
+
0.0,
|
34 |
+
0.0,
|
35 |
+
0.0,
|
36 |
+
1.0,
|
37 |
+
0.0,
|
38 |
+
0.0,
|
39 |
+
0.0,
|
40 |
+
0.0,
|
41 |
+
1.0,
|
42 |
+
-0.45
|
43 |
+
],
|
44 |
+
[
|
45 |
+
1.0,
|
46 |
+
0.0,
|
47 |
+
0.0,
|
48 |
+
0.0,
|
49 |
+
0.0,
|
50 |
+
1.0,
|
51 |
+
0.0,
|
52 |
+
0.0,
|
53 |
+
0.0,
|
54 |
+
0.0,
|
55 |
+
1.0,
|
56 |
+
-0.675
|
57 |
+
],
|
58 |
+
[
|
59 |
+
1.0,
|
60 |
+
0.0,
|
61 |
+
0.0,
|
62 |
+
0.0,
|
63 |
+
0.0,
|
64 |
+
1.0,
|
65 |
+
0.0,
|
66 |
+
0.0,
|
67 |
+
0.0,
|
68 |
+
0.0,
|
69 |
+
1.0,
|
70 |
+
-0.9
|
71 |
+
],
|
72 |
+
[
|
73 |
+
1.0,
|
74 |
+
0.0,
|
75 |
+
0.0,
|
76 |
+
0.0,
|
77 |
+
0.0,
|
78 |
+
1.0,
|
79 |
+
0.0,
|
80 |
+
0.0,
|
81 |
+
0.0,
|
82 |
+
0.0,
|
83 |
+
1.0,
|
84 |
+
-1.125
|
85 |
+
],
|
86 |
+
[
|
87 |
+
1.0,
|
88 |
+
0.0,
|
89 |
+
0.0,
|
90 |
+
0.0,
|
91 |
+
0.0,
|
92 |
+
1.0,
|
93 |
+
0.0,
|
94 |
+
0.0,
|
95 |
+
0.0,
|
96 |
+
0.0,
|
97 |
+
1.0,
|
98 |
+
-1.35
|
99 |
+
],
|
100 |
+
[
|
101 |
+
1.0,
|
102 |
+
0.0,
|
103 |
+
0.0,
|
104 |
+
0.0,
|
105 |
+
0.0,
|
106 |
+
1.0,
|
107 |
+
0.0,
|
108 |
+
0.0,
|
109 |
+
0.0,
|
110 |
+
0.0,
|
111 |
+
1.0,
|
112 |
+
-1.575
|
113 |
+
],
|
114 |
+
[
|
115 |
+
1.0,
|
116 |
+
0.0,
|
117 |
+
0.0,
|
118 |
+
0.0,
|
119 |
+
0.0,
|
120 |
+
1.0,
|
121 |
+
0.0,
|
122 |
+
0.0,
|
123 |
+
0.0,
|
124 |
+
0.0,
|
125 |
+
1.0,
|
126 |
+
-1.8
|
127 |
+
],
|
128 |
+
[
|
129 |
+
1.0,
|
130 |
+
0.0,
|
131 |
+
0.0,
|
132 |
+
0.0,
|
133 |
+
0.0,
|
134 |
+
1.0,
|
135 |
+
0.0,
|
136 |
+
0.0,
|
137 |
+
0.0,
|
138 |
+
0.0,
|
139 |
+
1.0,
|
140 |
+
-2.025
|
141 |
+
],
|
142 |
+
[
|
143 |
+
1.0,
|
144 |
+
0.0,
|
145 |
+
0.0,
|
146 |
+
0.0,
|
147 |
+
0.0,
|
148 |
+
1.0,
|
149 |
+
0.0,
|
150 |
+
0.0,
|
151 |
+
0.0,
|
152 |
+
0.0,
|
153 |
+
1.0,
|
154 |
+
-2.25
|
155 |
+
],
|
156 |
+
[
|
157 |
+
1.0,
|
158 |
+
0.0,
|
159 |
+
0.0,
|
160 |
+
0.0,
|
161 |
+
0.0,
|
162 |
+
1.0,
|
163 |
+
0.0,
|
164 |
+
0.0,
|
165 |
+
0.0,
|
166 |
+
0.0,
|
167 |
+
1.0,
|
168 |
+
-2.475
|
169 |
+
],
|
170 |
+
[
|
171 |
+
1.0,
|
172 |
+
0.0,
|
173 |
+
0.0,
|
174 |
+
0.0,
|
175 |
+
0.0,
|
176 |
+
1.0,
|
177 |
+
0.0,
|
178 |
+
0.0,
|
179 |
+
0.0,
|
180 |
+
0.0,
|
181 |
+
1.0,
|
182 |
+
-2.7
|
183 |
+
],
|
184 |
+
[
|
185 |
+
1.0,
|
186 |
+
0.0,
|
187 |
+
0.0,
|
188 |
+
0.0,
|
189 |
+
0.0,
|
190 |
+
1.0,
|
191 |
+
0.0,
|
192 |
+
0.0,
|
193 |
+
0.0,
|
194 |
+
0.0,
|
195 |
+
1.0,
|
196 |
+
-2.9250000000000003
|
197 |
+
],
|
198 |
+
[
|
199 |
+
1.0,
|
200 |
+
0.0,
|
201 |
+
0.0,
|
202 |
+
0.0,
|
203 |
+
0.0,
|
204 |
+
1.0,
|
205 |
+
0.0,
|
206 |
+
0.0,
|
207 |
+
0.0,
|
208 |
+
0.0,
|
209 |
+
1.0,
|
210 |
+
-3.15
|
211 |
+
],
|
212 |
+
[
|
213 |
+
1.0,
|
214 |
+
0.0,
|
215 |
+
0.0,
|
216 |
+
0.0,
|
217 |
+
0.0,
|
218 |
+
1.0,
|
219 |
+
0.0,
|
220 |
+
0.0,
|
221 |
+
0.0,
|
222 |
+
0.0,
|
223 |
+
1.0,
|
224 |
+
-3.375
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_L.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.2,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.0,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
0.0
|
15 |
+
],
|
16 |
+
[
|
17 |
+
1.0,
|
18 |
+
0.0,
|
19 |
+
0.0,
|
20 |
+
0.28750000000000003,
|
21 |
+
0.0,
|
22 |
+
1.0,
|
23 |
+
0.0,
|
24 |
+
0.0,
|
25 |
+
0.0,
|
26 |
+
0.0,
|
27 |
+
1.0,
|
28 |
+
0.0
|
29 |
+
],
|
30 |
+
[
|
31 |
+
1.0,
|
32 |
+
0.0,
|
33 |
+
0.0,
|
34 |
+
0.37500000000000006,
|
35 |
+
0.0,
|
36 |
+
1.0,
|
37 |
+
0.0,
|
38 |
+
0.0,
|
39 |
+
0.0,
|
40 |
+
0.0,
|
41 |
+
1.0,
|
42 |
+
0.0
|
43 |
+
],
|
44 |
+
[
|
45 |
+
1.0,
|
46 |
+
0.0,
|
47 |
+
0.0,
|
48 |
+
0.4625000000000001,
|
49 |
+
0.0,
|
50 |
+
1.0,
|
51 |
+
0.0,
|
52 |
+
0.0,
|
53 |
+
0.0,
|
54 |
+
0.0,
|
55 |
+
1.0,
|
56 |
+
0.0
|
57 |
+
],
|
58 |
+
[
|
59 |
+
1.0,
|
60 |
+
0.0,
|
61 |
+
0.0,
|
62 |
+
0.55,
|
63 |
+
0.0,
|
64 |
+
1.0,
|
65 |
+
0.0,
|
66 |
+
0.0,
|
67 |
+
0.0,
|
68 |
+
0.0,
|
69 |
+
1.0,
|
70 |
+
0.0
|
71 |
+
],
|
72 |
+
[
|
73 |
+
1.0,
|
74 |
+
0.0,
|
75 |
+
0.0,
|
76 |
+
0.6375000000000002,
|
77 |
+
0.0,
|
78 |
+
1.0,
|
79 |
+
0.0,
|
80 |
+
0.0,
|
81 |
+
0.0,
|
82 |
+
0.0,
|
83 |
+
1.0,
|
84 |
+
0.0
|
85 |
+
],
|
86 |
+
[
|
87 |
+
1.0,
|
88 |
+
0.0,
|
89 |
+
0.0,
|
90 |
+
0.7250000000000001,
|
91 |
+
0.0,
|
92 |
+
1.0,
|
93 |
+
0.0,
|
94 |
+
0.0,
|
95 |
+
0.0,
|
96 |
+
0.0,
|
97 |
+
1.0,
|
98 |
+
0.0
|
99 |
+
],
|
100 |
+
[
|
101 |
+
1.0,
|
102 |
+
0.0,
|
103 |
+
0.0,
|
104 |
+
0.8125000000000002,
|
105 |
+
0.0,
|
106 |
+
1.0,
|
107 |
+
0.0,
|
108 |
+
0.0,
|
109 |
+
0.0,
|
110 |
+
0.0,
|
111 |
+
1.0,
|
112 |
+
0.0
|
113 |
+
],
|
114 |
+
[
|
115 |
+
1.0,
|
116 |
+
0.0,
|
117 |
+
0.0,
|
118 |
+
0.9000000000000001,
|
119 |
+
0.0,
|
120 |
+
1.0,
|
121 |
+
0.0,
|
122 |
+
0.0,
|
123 |
+
0.0,
|
124 |
+
0.0,
|
125 |
+
1.0,
|
126 |
+
0.0
|
127 |
+
],
|
128 |
+
[
|
129 |
+
1.0,
|
130 |
+
0.0,
|
131 |
+
0.0,
|
132 |
+
0.9875000000000003,
|
133 |
+
0.0,
|
134 |
+
1.0,
|
135 |
+
0.0,
|
136 |
+
0.0,
|
137 |
+
0.0,
|
138 |
+
0.0,
|
139 |
+
1.0,
|
140 |
+
0.0
|
141 |
+
],
|
142 |
+
[
|
143 |
+
1.0,
|
144 |
+
0.0,
|
145 |
+
0.0,
|
146 |
+
1.0750000000000002,
|
147 |
+
0.0,
|
148 |
+
1.0,
|
149 |
+
0.0,
|
150 |
+
0.0,
|
151 |
+
0.0,
|
152 |
+
0.0,
|
153 |
+
1.0,
|
154 |
+
0.0
|
155 |
+
],
|
156 |
+
[
|
157 |
+
1.0,
|
158 |
+
0.0,
|
159 |
+
0.0,
|
160 |
+
1.1625000000000003,
|
161 |
+
0.0,
|
162 |
+
1.0,
|
163 |
+
0.0,
|
164 |
+
0.0,
|
165 |
+
0.0,
|
166 |
+
0.0,
|
167 |
+
1.0,
|
168 |
+
0.0
|
169 |
+
],
|
170 |
+
[
|
171 |
+
1.0,
|
172 |
+
0.0,
|
173 |
+
0.0,
|
174 |
+
1.2500000000000002,
|
175 |
+
0.0,
|
176 |
+
1.0,
|
177 |
+
0.0,
|
178 |
+
0.0,
|
179 |
+
0.0,
|
180 |
+
0.0,
|
181 |
+
1.0,
|
182 |
+
0.0
|
183 |
+
],
|
184 |
+
[
|
185 |
+
1.0,
|
186 |
+
0.0,
|
187 |
+
0.0,
|
188 |
+
1.3375000000000001,
|
189 |
+
0.0,
|
190 |
+
1.0,
|
191 |
+
0.0,
|
192 |
+
0.0,
|
193 |
+
0.0,
|
194 |
+
0.0,
|
195 |
+
1.0,
|
196 |
+
0.0
|
197 |
+
],
|
198 |
+
[
|
199 |
+
1.0,
|
200 |
+
0.0,
|
201 |
+
0.0,
|
202 |
+
1.4250000000000003,
|
203 |
+
0.0,
|
204 |
+
1.0,
|
205 |
+
0.0,
|
206 |
+
0.0,
|
207 |
+
0.0,
|
208 |
+
0.0,
|
209 |
+
1.0,
|
210 |
+
0.0
|
211 |
+
],
|
212 |
+
[
|
213 |
+
1.0,
|
214 |
+
0.0,
|
215 |
+
0.0,
|
216 |
+
1.5125000000000004,
|
217 |
+
0.0,
|
218 |
+
1.0,
|
219 |
+
0.0,
|
220 |
+
0.0,
|
221 |
+
0.0,
|
222 |
+
0.0,
|
223 |
+
1.0,
|
224 |
+
0.0
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_O.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.0,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.0,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
0.2
|
15 |
+
],
|
16 |
+
[
|
17 |
+
1.0,
|
18 |
+
0.0,
|
19 |
+
0.0,
|
20 |
+
0.0,
|
21 |
+
0.0,
|
22 |
+
1.0,
|
23 |
+
0.0,
|
24 |
+
0.0,
|
25 |
+
0.0,
|
26 |
+
0.0,
|
27 |
+
1.0,
|
28 |
+
0.28750000000000003
|
29 |
+
],
|
30 |
+
[
|
31 |
+
1.0,
|
32 |
+
0.0,
|
33 |
+
0.0,
|
34 |
+
0.0,
|
35 |
+
0.0,
|
36 |
+
1.0,
|
37 |
+
0.0,
|
38 |
+
0.0,
|
39 |
+
0.0,
|
40 |
+
0.0,
|
41 |
+
1.0,
|
42 |
+
0.37500000000000006
|
43 |
+
],
|
44 |
+
[
|
45 |
+
1.0,
|
46 |
+
0.0,
|
47 |
+
0.0,
|
48 |
+
0.0,
|
49 |
+
0.0,
|
50 |
+
1.0,
|
51 |
+
0.0,
|
52 |
+
0.0,
|
53 |
+
0.0,
|
54 |
+
0.0,
|
55 |
+
1.0,
|
56 |
+
0.4625000000000001
|
57 |
+
],
|
58 |
+
[
|
59 |
+
1.0,
|
60 |
+
0.0,
|
61 |
+
0.0,
|
62 |
+
0.0,
|
63 |
+
0.0,
|
64 |
+
1.0,
|
65 |
+
0.0,
|
66 |
+
0.0,
|
67 |
+
0.0,
|
68 |
+
0.0,
|
69 |
+
1.0,
|
70 |
+
0.55
|
71 |
+
],
|
72 |
+
[
|
73 |
+
1.0,
|
74 |
+
0.0,
|
75 |
+
0.0,
|
76 |
+
0.0,
|
77 |
+
0.0,
|
78 |
+
1.0,
|
79 |
+
0.0,
|
80 |
+
0.0,
|
81 |
+
0.0,
|
82 |
+
0.0,
|
83 |
+
1.0,
|
84 |
+
0.6375000000000002
|
85 |
+
],
|
86 |
+
[
|
87 |
+
1.0,
|
88 |
+
0.0,
|
89 |
+
0.0,
|
90 |
+
0.0,
|
91 |
+
0.0,
|
92 |
+
1.0,
|
93 |
+
0.0,
|
94 |
+
0.0,
|
95 |
+
0.0,
|
96 |
+
0.0,
|
97 |
+
1.0,
|
98 |
+
0.7250000000000001
|
99 |
+
],
|
100 |
+
[
|
101 |
+
1.0,
|
102 |
+
0.0,
|
103 |
+
0.0,
|
104 |
+
0.0,
|
105 |
+
0.0,
|
106 |
+
1.0,
|
107 |
+
0.0,
|
108 |
+
0.0,
|
109 |
+
0.0,
|
110 |
+
0.0,
|
111 |
+
1.0,
|
112 |
+
0.8125000000000002
|
113 |
+
],
|
114 |
+
[
|
115 |
+
1.0,
|
116 |
+
0.0,
|
117 |
+
0.0,
|
118 |
+
0.0,
|
119 |
+
0.0,
|
120 |
+
1.0,
|
121 |
+
0.0,
|
122 |
+
0.0,
|
123 |
+
0.0,
|
124 |
+
0.0,
|
125 |
+
1.0,
|
126 |
+
0.9000000000000001
|
127 |
+
],
|
128 |
+
[
|
129 |
+
1.0,
|
130 |
+
0.0,
|
131 |
+
0.0,
|
132 |
+
0.0,
|
133 |
+
0.0,
|
134 |
+
1.0,
|
135 |
+
0.0,
|
136 |
+
0.0,
|
137 |
+
0.0,
|
138 |
+
0.0,
|
139 |
+
1.0,
|
140 |
+
0.9875000000000003
|
141 |
+
],
|
142 |
+
[
|
143 |
+
1.0,
|
144 |
+
0.0,
|
145 |
+
0.0,
|
146 |
+
0.0,
|
147 |
+
0.0,
|
148 |
+
1.0,
|
149 |
+
0.0,
|
150 |
+
0.0,
|
151 |
+
0.0,
|
152 |
+
0.0,
|
153 |
+
1.0,
|
154 |
+
1.0750000000000002
|
155 |
+
],
|
156 |
+
[
|
157 |
+
1.0,
|
158 |
+
0.0,
|
159 |
+
0.0,
|
160 |
+
0.0,
|
161 |
+
0.0,
|
162 |
+
1.0,
|
163 |
+
0.0,
|
164 |
+
0.0,
|
165 |
+
0.0,
|
166 |
+
0.0,
|
167 |
+
1.0,
|
168 |
+
1.1625000000000003
|
169 |
+
],
|
170 |
+
[
|
171 |
+
1.0,
|
172 |
+
0.0,
|
173 |
+
0.0,
|
174 |
+
0.0,
|
175 |
+
0.0,
|
176 |
+
1.0,
|
177 |
+
0.0,
|
178 |
+
0.0,
|
179 |
+
0.0,
|
180 |
+
0.0,
|
181 |
+
1.0,
|
182 |
+
1.2500000000000002
|
183 |
+
],
|
184 |
+
[
|
185 |
+
1.0,
|
186 |
+
0.0,
|
187 |
+
0.0,
|
188 |
+
0.0,
|
189 |
+
0.0,
|
190 |
+
1.0,
|
191 |
+
0.0,
|
192 |
+
0.0,
|
193 |
+
0.0,
|
194 |
+
0.0,
|
195 |
+
1.0,
|
196 |
+
1.3375000000000001
|
197 |
+
],
|
198 |
+
[
|
199 |
+
1.0,
|
200 |
+
0.0,
|
201 |
+
0.0,
|
202 |
+
0.0,
|
203 |
+
0.0,
|
204 |
+
1.0,
|
205 |
+
0.0,
|
206 |
+
0.0,
|
207 |
+
0.0,
|
208 |
+
0.0,
|
209 |
+
1.0,
|
210 |
+
1.4250000000000003
|
211 |
+
],
|
212 |
+
[
|
213 |
+
1.0,
|
214 |
+
0.0,
|
215 |
+
0.0,
|
216 |
+
0.0,
|
217 |
+
0.0,
|
218 |
+
1.0,
|
219 |
+
0.0,
|
220 |
+
0.0,
|
221 |
+
0.0,
|
222 |
+
0.0,
|
223 |
+
1.0,
|
224 |
+
1.5125000000000004
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_O_0.2x.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.0,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.0,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
0.0
|
15 |
+
],
|
16 |
+
[
|
17 |
+
1.0,
|
18 |
+
0.0,
|
19 |
+
0.0,
|
20 |
+
0.0,
|
21 |
+
0.0,
|
22 |
+
1.0,
|
23 |
+
0.0,
|
24 |
+
0.0,
|
25 |
+
0.0,
|
26 |
+
0.0,
|
27 |
+
1.0,
|
28 |
+
0.022500000000000003
|
29 |
+
],
|
30 |
+
[
|
31 |
+
1.0,
|
32 |
+
0.0,
|
33 |
+
0.0,
|
34 |
+
0.0,
|
35 |
+
0.0,
|
36 |
+
1.0,
|
37 |
+
0.0,
|
38 |
+
0.0,
|
39 |
+
0.0,
|
40 |
+
0.0,
|
41 |
+
1.0,
|
42 |
+
0.045000000000000005
|
43 |
+
],
|
44 |
+
[
|
45 |
+
1.0,
|
46 |
+
0.0,
|
47 |
+
0.0,
|
48 |
+
0.0,
|
49 |
+
0.0,
|
50 |
+
1.0,
|
51 |
+
0.0,
|
52 |
+
0.0,
|
53 |
+
0.0,
|
54 |
+
0.0,
|
55 |
+
1.0,
|
56 |
+
0.0675
|
57 |
+
],
|
58 |
+
[
|
59 |
+
1.0,
|
60 |
+
0.0,
|
61 |
+
0.0,
|
62 |
+
0.0,
|
63 |
+
0.0,
|
64 |
+
1.0,
|
65 |
+
0.0,
|
66 |
+
0.0,
|
67 |
+
0.0,
|
68 |
+
0.0,
|
69 |
+
1.0,
|
70 |
+
0.09000000000000001
|
71 |
+
],
|
72 |
+
[
|
73 |
+
1.0,
|
74 |
+
0.0,
|
75 |
+
0.0,
|
76 |
+
0.0,
|
77 |
+
0.0,
|
78 |
+
1.0,
|
79 |
+
0.0,
|
80 |
+
0.0,
|
81 |
+
0.0,
|
82 |
+
0.0,
|
83 |
+
1.0,
|
84 |
+
0.11250000000000002
|
85 |
+
],
|
86 |
+
[
|
87 |
+
1.0,
|
88 |
+
0.0,
|
89 |
+
0.0,
|
90 |
+
0.0,
|
91 |
+
0.0,
|
92 |
+
1.0,
|
93 |
+
0.0,
|
94 |
+
0.0,
|
95 |
+
0.0,
|
96 |
+
0.0,
|
97 |
+
1.0,
|
98 |
+
0.135
|
99 |
+
],
|
100 |
+
[
|
101 |
+
1.0,
|
102 |
+
0.0,
|
103 |
+
0.0,
|
104 |
+
0.0,
|
105 |
+
0.0,
|
106 |
+
1.0,
|
107 |
+
0.0,
|
108 |
+
0.0,
|
109 |
+
0.0,
|
110 |
+
0.0,
|
111 |
+
1.0,
|
112 |
+
0.15750000000000003
|
113 |
+
],
|
114 |
+
[
|
115 |
+
1.0,
|
116 |
+
0.0,
|
117 |
+
0.0,
|
118 |
+
0.0,
|
119 |
+
0.0,
|
120 |
+
1.0,
|
121 |
+
0.0,
|
122 |
+
0.0,
|
123 |
+
0.0,
|
124 |
+
0.0,
|
125 |
+
1.0,
|
126 |
+
0.18000000000000002
|
127 |
+
],
|
128 |
+
[
|
129 |
+
1.0,
|
130 |
+
0.0,
|
131 |
+
0.0,
|
132 |
+
0.0,
|
133 |
+
0.0,
|
134 |
+
1.0,
|
135 |
+
0.0,
|
136 |
+
0.0,
|
137 |
+
0.0,
|
138 |
+
0.0,
|
139 |
+
1.0,
|
140 |
+
0.2025
|
141 |
+
],
|
142 |
+
[
|
143 |
+
1.0,
|
144 |
+
0.0,
|
145 |
+
0.0,
|
146 |
+
0.0,
|
147 |
+
0.0,
|
148 |
+
1.0,
|
149 |
+
0.0,
|
150 |
+
0.0,
|
151 |
+
0.0,
|
152 |
+
0.0,
|
153 |
+
1.0,
|
154 |
+
0.22500000000000003
|
155 |
+
],
|
156 |
+
[
|
157 |
+
1.0,
|
158 |
+
0.0,
|
159 |
+
0.0,
|
160 |
+
0.0,
|
161 |
+
0.0,
|
162 |
+
1.0,
|
163 |
+
0.0,
|
164 |
+
0.0,
|
165 |
+
0.0,
|
166 |
+
0.0,
|
167 |
+
1.0,
|
168 |
+
0.24750000000000003
|
169 |
+
],
|
170 |
+
[
|
171 |
+
1.0,
|
172 |
+
0.0,
|
173 |
+
0.0,
|
174 |
+
0.0,
|
175 |
+
0.0,
|
176 |
+
1.0,
|
177 |
+
0.0,
|
178 |
+
0.0,
|
179 |
+
0.0,
|
180 |
+
0.0,
|
181 |
+
1.0,
|
182 |
+
0.27
|
183 |
+
],
|
184 |
+
[
|
185 |
+
1.0,
|
186 |
+
0.0,
|
187 |
+
0.0,
|
188 |
+
0.0,
|
189 |
+
0.0,
|
190 |
+
1.0,
|
191 |
+
0.0,
|
192 |
+
0.0,
|
193 |
+
0.0,
|
194 |
+
0.0,
|
195 |
+
1.0,
|
196 |
+
0.29250000000000004
|
197 |
+
],
|
198 |
+
[
|
199 |
+
1.0,
|
200 |
+
0.0,
|
201 |
+
0.0,
|
202 |
+
0.0,
|
203 |
+
0.0,
|
204 |
+
1.0,
|
205 |
+
0.0,
|
206 |
+
0.0,
|
207 |
+
0.0,
|
208 |
+
0.0,
|
209 |
+
1.0,
|
210 |
+
0.31500000000000006
|
211 |
+
],
|
212 |
+
[
|
213 |
+
1.0,
|
214 |
+
0.0,
|
215 |
+
0.0,
|
216 |
+
0.0,
|
217 |
+
0.0,
|
218 |
+
1.0,
|
219 |
+
0.0,
|
220 |
+
0.0,
|
221 |
+
0.0,
|
222 |
+
0.0,
|
223 |
+
1.0,
|
224 |
+
0.3375
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_O_0.4x.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.0,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.0,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
0.0
|
15 |
+
],
|
16 |
+
[
|
17 |
+
1.0,
|
18 |
+
0.0,
|
19 |
+
0.0,
|
20 |
+
0.0,
|
21 |
+
0.0,
|
22 |
+
1.0,
|
23 |
+
0.0,
|
24 |
+
0.0,
|
25 |
+
0.0,
|
26 |
+
0.0,
|
27 |
+
1.0,
|
28 |
+
0.045000000000000005
|
29 |
+
],
|
30 |
+
[
|
31 |
+
1.0,
|
32 |
+
0.0,
|
33 |
+
0.0,
|
34 |
+
0.0,
|
35 |
+
0.0,
|
36 |
+
1.0,
|
37 |
+
0.0,
|
38 |
+
0.0,
|
39 |
+
0.0,
|
40 |
+
0.0,
|
41 |
+
1.0,
|
42 |
+
0.09000000000000001
|
43 |
+
],
|
44 |
+
[
|
45 |
+
1.0,
|
46 |
+
0.0,
|
47 |
+
0.0,
|
48 |
+
0.0,
|
49 |
+
0.0,
|
50 |
+
1.0,
|
51 |
+
0.0,
|
52 |
+
0.0,
|
53 |
+
0.0,
|
54 |
+
0.0,
|
55 |
+
1.0,
|
56 |
+
0.135
|
57 |
+
],
|
58 |
+
[
|
59 |
+
1.0,
|
60 |
+
0.0,
|
61 |
+
0.0,
|
62 |
+
0.0,
|
63 |
+
0.0,
|
64 |
+
1.0,
|
65 |
+
0.0,
|
66 |
+
0.0,
|
67 |
+
0.0,
|
68 |
+
0.0,
|
69 |
+
1.0,
|
70 |
+
0.18000000000000002
|
71 |
+
],
|
72 |
+
[
|
73 |
+
1.0,
|
74 |
+
0.0,
|
75 |
+
0.0,
|
76 |
+
0.0,
|
77 |
+
0.0,
|
78 |
+
1.0,
|
79 |
+
0.0,
|
80 |
+
0.0,
|
81 |
+
0.0,
|
82 |
+
0.0,
|
83 |
+
1.0,
|
84 |
+
0.22500000000000003
|
85 |
+
],
|
86 |
+
[
|
87 |
+
1.0,
|
88 |
+
0.0,
|
89 |
+
0.0,
|
90 |
+
0.0,
|
91 |
+
0.0,
|
92 |
+
1.0,
|
93 |
+
0.0,
|
94 |
+
0.0,
|
95 |
+
0.0,
|
96 |
+
0.0,
|
97 |
+
1.0,
|
98 |
+
0.27
|
99 |
+
],
|
100 |
+
[
|
101 |
+
1.0,
|
102 |
+
0.0,
|
103 |
+
0.0,
|
104 |
+
0.0,
|
105 |
+
0.0,
|
106 |
+
1.0,
|
107 |
+
0.0,
|
108 |
+
0.0,
|
109 |
+
0.0,
|
110 |
+
0.0,
|
111 |
+
1.0,
|
112 |
+
0.31500000000000006
|
113 |
+
],
|
114 |
+
[
|
115 |
+
1.0,
|
116 |
+
0.0,
|
117 |
+
0.0,
|
118 |
+
0.0,
|
119 |
+
0.0,
|
120 |
+
1.0,
|
121 |
+
0.0,
|
122 |
+
0.0,
|
123 |
+
0.0,
|
124 |
+
0.0,
|
125 |
+
1.0,
|
126 |
+
0.36000000000000004
|
127 |
+
],
|
128 |
+
[
|
129 |
+
1.0,
|
130 |
+
0.0,
|
131 |
+
0.0,
|
132 |
+
0.0,
|
133 |
+
0.0,
|
134 |
+
1.0,
|
135 |
+
0.0,
|
136 |
+
0.0,
|
137 |
+
0.0,
|
138 |
+
0.0,
|
139 |
+
1.0,
|
140 |
+
0.405
|
141 |
+
],
|
142 |
+
[
|
143 |
+
1.0,
|
144 |
+
0.0,
|
145 |
+
0.0,
|
146 |
+
0.0,
|
147 |
+
0.0,
|
148 |
+
1.0,
|
149 |
+
0.0,
|
150 |
+
0.0,
|
151 |
+
0.0,
|
152 |
+
0.0,
|
153 |
+
1.0,
|
154 |
+
0.45000000000000007
|
155 |
+
],
|
156 |
+
[
|
157 |
+
1.0,
|
158 |
+
0.0,
|
159 |
+
0.0,
|
160 |
+
0.0,
|
161 |
+
0.0,
|
162 |
+
1.0,
|
163 |
+
0.0,
|
164 |
+
0.0,
|
165 |
+
0.0,
|
166 |
+
0.0,
|
167 |
+
1.0,
|
168 |
+
0.49500000000000005
|
169 |
+
],
|
170 |
+
[
|
171 |
+
1.0,
|
172 |
+
0.0,
|
173 |
+
0.0,
|
174 |
+
0.0,
|
175 |
+
0.0,
|
176 |
+
1.0,
|
177 |
+
0.0,
|
178 |
+
0.0,
|
179 |
+
0.0,
|
180 |
+
0.0,
|
181 |
+
1.0,
|
182 |
+
0.54
|
183 |
+
],
|
184 |
+
[
|
185 |
+
1.0,
|
186 |
+
0.0,
|
187 |
+
0.0,
|
188 |
+
0.0,
|
189 |
+
0.0,
|
190 |
+
1.0,
|
191 |
+
0.0,
|
192 |
+
0.0,
|
193 |
+
0.0,
|
194 |
+
0.0,
|
195 |
+
1.0,
|
196 |
+
0.5850000000000001
|
197 |
+
],
|
198 |
+
[
|
199 |
+
1.0,
|
200 |
+
0.0,
|
201 |
+
0.0,
|
202 |
+
0.0,
|
203 |
+
0.0,
|
204 |
+
1.0,
|
205 |
+
0.0,
|
206 |
+
0.0,
|
207 |
+
0.0,
|
208 |
+
0.0,
|
209 |
+
1.0,
|
210 |
+
0.6300000000000001
|
211 |
+
],
|
212 |
+
[
|
213 |
+
1.0,
|
214 |
+
0.0,
|
215 |
+
0.0,
|
216 |
+
0.0,
|
217 |
+
0.0,
|
218 |
+
1.0,
|
219 |
+
0.0,
|
220 |
+
0.0,
|
221 |
+
0.0,
|
222 |
+
0.0,
|
223 |
+
1.0,
|
224 |
+
0.675
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_O_1.0x.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.0,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.0,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
0.0
|
15 |
+
],
|
16 |
+
[
|
17 |
+
1.0,
|
18 |
+
0.0,
|
19 |
+
0.0,
|
20 |
+
0.0,
|
21 |
+
0.0,
|
22 |
+
1.0,
|
23 |
+
0.0,
|
24 |
+
0.0,
|
25 |
+
0.0,
|
26 |
+
0.0,
|
27 |
+
1.0,
|
28 |
+
0.1125
|
29 |
+
],
|
30 |
+
[
|
31 |
+
1.0,
|
32 |
+
0.0,
|
33 |
+
0.0,
|
34 |
+
0.0,
|
35 |
+
0.0,
|
36 |
+
1.0,
|
37 |
+
0.0,
|
38 |
+
0.0,
|
39 |
+
0.0,
|
40 |
+
0.0,
|
41 |
+
1.0,
|
42 |
+
0.225
|
43 |
+
],
|
44 |
+
[
|
45 |
+
1.0,
|
46 |
+
0.0,
|
47 |
+
0.0,
|
48 |
+
0.0,
|
49 |
+
0.0,
|
50 |
+
1.0,
|
51 |
+
0.0,
|
52 |
+
0.0,
|
53 |
+
0.0,
|
54 |
+
0.0,
|
55 |
+
1.0,
|
56 |
+
0.3375
|
57 |
+
],
|
58 |
+
[
|
59 |
+
1.0,
|
60 |
+
0.0,
|
61 |
+
0.0,
|
62 |
+
0.0,
|
63 |
+
0.0,
|
64 |
+
1.0,
|
65 |
+
0.0,
|
66 |
+
0.0,
|
67 |
+
0.0,
|
68 |
+
0.0,
|
69 |
+
1.0,
|
70 |
+
0.45
|
71 |
+
],
|
72 |
+
[
|
73 |
+
1.0,
|
74 |
+
0.0,
|
75 |
+
0.0,
|
76 |
+
0.0,
|
77 |
+
0.0,
|
78 |
+
1.0,
|
79 |
+
0.0,
|
80 |
+
0.0,
|
81 |
+
0.0,
|
82 |
+
0.0,
|
83 |
+
1.0,
|
84 |
+
0.5625
|
85 |
+
],
|
86 |
+
[
|
87 |
+
1.0,
|
88 |
+
0.0,
|
89 |
+
0.0,
|
90 |
+
0.0,
|
91 |
+
0.0,
|
92 |
+
1.0,
|
93 |
+
0.0,
|
94 |
+
0.0,
|
95 |
+
0.0,
|
96 |
+
0.0,
|
97 |
+
1.0,
|
98 |
+
0.675
|
99 |
+
],
|
100 |
+
[
|
101 |
+
1.0,
|
102 |
+
0.0,
|
103 |
+
0.0,
|
104 |
+
0.0,
|
105 |
+
0.0,
|
106 |
+
1.0,
|
107 |
+
0.0,
|
108 |
+
0.0,
|
109 |
+
0.0,
|
110 |
+
0.0,
|
111 |
+
1.0,
|
112 |
+
0.7875
|
113 |
+
],
|
114 |
+
[
|
115 |
+
1.0,
|
116 |
+
0.0,
|
117 |
+
0.0,
|
118 |
+
0.0,
|
119 |
+
0.0,
|
120 |
+
1.0,
|
121 |
+
0.0,
|
122 |
+
0.0,
|
123 |
+
0.0,
|
124 |
+
0.0,
|
125 |
+
1.0,
|
126 |
+
0.9
|
127 |
+
],
|
128 |
+
[
|
129 |
+
1.0,
|
130 |
+
0.0,
|
131 |
+
0.0,
|
132 |
+
0.0,
|
133 |
+
0.0,
|
134 |
+
1.0,
|
135 |
+
0.0,
|
136 |
+
0.0,
|
137 |
+
0.0,
|
138 |
+
0.0,
|
139 |
+
1.0,
|
140 |
+
1.0125
|
141 |
+
],
|
142 |
+
[
|
143 |
+
1.0,
|
144 |
+
0.0,
|
145 |
+
0.0,
|
146 |
+
0.0,
|
147 |
+
0.0,
|
148 |
+
1.0,
|
149 |
+
0.0,
|
150 |
+
0.0,
|
151 |
+
0.0,
|
152 |
+
0.0,
|
153 |
+
1.0,
|
154 |
+
1.125
|
155 |
+
],
|
156 |
+
[
|
157 |
+
1.0,
|
158 |
+
0.0,
|
159 |
+
0.0,
|
160 |
+
0.0,
|
161 |
+
0.0,
|
162 |
+
1.0,
|
163 |
+
0.0,
|
164 |
+
0.0,
|
165 |
+
0.0,
|
166 |
+
0.0,
|
167 |
+
1.0,
|
168 |
+
1.2375
|
169 |
+
],
|
170 |
+
[
|
171 |
+
1.0,
|
172 |
+
0.0,
|
173 |
+
0.0,
|
174 |
+
0.0,
|
175 |
+
0.0,
|
176 |
+
1.0,
|
177 |
+
0.0,
|
178 |
+
0.0,
|
179 |
+
0.0,
|
180 |
+
0.0,
|
181 |
+
1.0,
|
182 |
+
1.35
|
183 |
+
],
|
184 |
+
[
|
185 |
+
1.0,
|
186 |
+
0.0,
|
187 |
+
0.0,
|
188 |
+
0.0,
|
189 |
+
0.0,
|
190 |
+
1.0,
|
191 |
+
0.0,
|
192 |
+
0.0,
|
193 |
+
0.0,
|
194 |
+
0.0,
|
195 |
+
1.0,
|
196 |
+
1.4625000000000001
|
197 |
+
],
|
198 |
+
[
|
199 |
+
1.0,
|
200 |
+
0.0,
|
201 |
+
0.0,
|
202 |
+
0.0,
|
203 |
+
0.0,
|
204 |
+
1.0,
|
205 |
+
0.0,
|
206 |
+
0.0,
|
207 |
+
0.0,
|
208 |
+
0.0,
|
209 |
+
1.0,
|
210 |
+
1.575
|
211 |
+
],
|
212 |
+
[
|
213 |
+
1.0,
|
214 |
+
0.0,
|
215 |
+
0.0,
|
216 |
+
0.0,
|
217 |
+
0.0,
|
218 |
+
1.0,
|
219 |
+
0.0,
|
220 |
+
0.0,
|
221 |
+
0.0,
|
222 |
+
0.0,
|
223 |
+
1.0,
|
224 |
+
1.6875
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_O_2.0x.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.0,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.0,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
0.0
|
15 |
+
],
|
16 |
+
[
|
17 |
+
1.0,
|
18 |
+
0.0,
|
19 |
+
0.0,
|
20 |
+
0.0,
|
21 |
+
0.0,
|
22 |
+
1.0,
|
23 |
+
0.0,
|
24 |
+
0.0,
|
25 |
+
0.0,
|
26 |
+
0.0,
|
27 |
+
1.0,
|
28 |
+
0.225
|
29 |
+
],
|
30 |
+
[
|
31 |
+
1.0,
|
32 |
+
0.0,
|
33 |
+
0.0,
|
34 |
+
0.0,
|
35 |
+
0.0,
|
36 |
+
1.0,
|
37 |
+
0.0,
|
38 |
+
0.0,
|
39 |
+
0.0,
|
40 |
+
0.0,
|
41 |
+
1.0,
|
42 |
+
0.45
|
43 |
+
],
|
44 |
+
[
|
45 |
+
1.0,
|
46 |
+
0.0,
|
47 |
+
0.0,
|
48 |
+
0.0,
|
49 |
+
0.0,
|
50 |
+
1.0,
|
51 |
+
0.0,
|
52 |
+
0.0,
|
53 |
+
0.0,
|
54 |
+
0.0,
|
55 |
+
1.0,
|
56 |
+
0.675
|
57 |
+
],
|
58 |
+
[
|
59 |
+
1.0,
|
60 |
+
0.0,
|
61 |
+
0.0,
|
62 |
+
0.0,
|
63 |
+
0.0,
|
64 |
+
1.0,
|
65 |
+
0.0,
|
66 |
+
0.0,
|
67 |
+
0.0,
|
68 |
+
0.0,
|
69 |
+
1.0,
|
70 |
+
0.9
|
71 |
+
],
|
72 |
+
[
|
73 |
+
1.0,
|
74 |
+
0.0,
|
75 |
+
0.0,
|
76 |
+
0.0,
|
77 |
+
0.0,
|
78 |
+
1.0,
|
79 |
+
0.0,
|
80 |
+
0.0,
|
81 |
+
0.0,
|
82 |
+
0.0,
|
83 |
+
1.0,
|
84 |
+
1.125
|
85 |
+
],
|
86 |
+
[
|
87 |
+
1.0,
|
88 |
+
0.0,
|
89 |
+
0.0,
|
90 |
+
0.0,
|
91 |
+
0.0,
|
92 |
+
1.0,
|
93 |
+
0.0,
|
94 |
+
0.0,
|
95 |
+
0.0,
|
96 |
+
0.0,
|
97 |
+
1.0,
|
98 |
+
1.35
|
99 |
+
],
|
100 |
+
[
|
101 |
+
1.0,
|
102 |
+
0.0,
|
103 |
+
0.0,
|
104 |
+
0.0,
|
105 |
+
0.0,
|
106 |
+
1.0,
|
107 |
+
0.0,
|
108 |
+
0.0,
|
109 |
+
0.0,
|
110 |
+
0.0,
|
111 |
+
1.0,
|
112 |
+
1.575
|
113 |
+
],
|
114 |
+
[
|
115 |
+
1.0,
|
116 |
+
0.0,
|
117 |
+
0.0,
|
118 |
+
0.0,
|
119 |
+
0.0,
|
120 |
+
1.0,
|
121 |
+
0.0,
|
122 |
+
0.0,
|
123 |
+
0.0,
|
124 |
+
0.0,
|
125 |
+
1.0,
|
126 |
+
1.8
|
127 |
+
],
|
128 |
+
[
|
129 |
+
1.0,
|
130 |
+
0.0,
|
131 |
+
0.0,
|
132 |
+
0.0,
|
133 |
+
0.0,
|
134 |
+
1.0,
|
135 |
+
0.0,
|
136 |
+
0.0,
|
137 |
+
0.0,
|
138 |
+
0.0,
|
139 |
+
1.0,
|
140 |
+
2.025
|
141 |
+
],
|
142 |
+
[
|
143 |
+
1.0,
|
144 |
+
0.0,
|
145 |
+
0.0,
|
146 |
+
0.0,
|
147 |
+
0.0,
|
148 |
+
1.0,
|
149 |
+
0.0,
|
150 |
+
0.0,
|
151 |
+
0.0,
|
152 |
+
0.0,
|
153 |
+
1.0,
|
154 |
+
2.25
|
155 |
+
],
|
156 |
+
[
|
157 |
+
1.0,
|
158 |
+
0.0,
|
159 |
+
0.0,
|
160 |
+
0.0,
|
161 |
+
0.0,
|
162 |
+
1.0,
|
163 |
+
0.0,
|
164 |
+
0.0,
|
165 |
+
0.0,
|
166 |
+
0.0,
|
167 |
+
1.0,
|
168 |
+
2.475
|
169 |
+
],
|
170 |
+
[
|
171 |
+
1.0,
|
172 |
+
0.0,
|
173 |
+
0.0,
|
174 |
+
0.0,
|
175 |
+
0.0,
|
176 |
+
1.0,
|
177 |
+
0.0,
|
178 |
+
0.0,
|
179 |
+
0.0,
|
180 |
+
0.0,
|
181 |
+
1.0,
|
182 |
+
2.7
|
183 |
+
],
|
184 |
+
[
|
185 |
+
1.0,
|
186 |
+
0.0,
|
187 |
+
0.0,
|
188 |
+
0.0,
|
189 |
+
0.0,
|
190 |
+
1.0,
|
191 |
+
0.0,
|
192 |
+
0.0,
|
193 |
+
0.0,
|
194 |
+
0.0,
|
195 |
+
1.0,
|
196 |
+
2.9250000000000003
|
197 |
+
],
|
198 |
+
[
|
199 |
+
1.0,
|
200 |
+
0.0,
|
201 |
+
0.0,
|
202 |
+
0.0,
|
203 |
+
0.0,
|
204 |
+
1.0,
|
205 |
+
0.0,
|
206 |
+
0.0,
|
207 |
+
0.0,
|
208 |
+
0.0,
|
209 |
+
1.0,
|
210 |
+
3.15
|
211 |
+
],
|
212 |
+
[
|
213 |
+
1.0,
|
214 |
+
0.0,
|
215 |
+
0.0,
|
216 |
+
0.0,
|
217 |
+
0.0,
|
218 |
+
1.0,
|
219 |
+
0.0,
|
220 |
+
0.0,
|
221 |
+
0.0,
|
222 |
+
0.0,
|
223 |
+
1.0,
|
224 |
+
3.375
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_R.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
-0.2,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.0,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
0.0
|
15 |
+
],
|
16 |
+
[
|
17 |
+
1.0,
|
18 |
+
0.0,
|
19 |
+
0.0,
|
20 |
+
-0.28750000000000003,
|
21 |
+
0.0,
|
22 |
+
1.0,
|
23 |
+
0.0,
|
24 |
+
0.0,
|
25 |
+
0.0,
|
26 |
+
0.0,
|
27 |
+
1.0,
|
28 |
+
0.0
|
29 |
+
],
|
30 |
+
[
|
31 |
+
1.0,
|
32 |
+
0.0,
|
33 |
+
0.0,
|
34 |
+
-0.37500000000000006,
|
35 |
+
0.0,
|
36 |
+
1.0,
|
37 |
+
0.0,
|
38 |
+
0.0,
|
39 |
+
0.0,
|
40 |
+
0.0,
|
41 |
+
1.0,
|
42 |
+
0.0
|
43 |
+
],
|
44 |
+
[
|
45 |
+
1.0,
|
46 |
+
0.0,
|
47 |
+
0.0,
|
48 |
+
-0.4625000000000001,
|
49 |
+
0.0,
|
50 |
+
1.0,
|
51 |
+
0.0,
|
52 |
+
0.0,
|
53 |
+
0.0,
|
54 |
+
0.0,
|
55 |
+
1.0,
|
56 |
+
0.0
|
57 |
+
],
|
58 |
+
[
|
59 |
+
1.0,
|
60 |
+
0.0,
|
61 |
+
0.0,
|
62 |
+
-0.55,
|
63 |
+
0.0,
|
64 |
+
1.0,
|
65 |
+
0.0,
|
66 |
+
0.0,
|
67 |
+
0.0,
|
68 |
+
0.0,
|
69 |
+
1.0,
|
70 |
+
0.0
|
71 |
+
],
|
72 |
+
[
|
73 |
+
1.0,
|
74 |
+
0.0,
|
75 |
+
0.0,
|
76 |
+
-0.6375000000000002,
|
77 |
+
0.0,
|
78 |
+
1.0,
|
79 |
+
0.0,
|
80 |
+
0.0,
|
81 |
+
0.0,
|
82 |
+
0.0,
|
83 |
+
1.0,
|
84 |
+
0.0
|
85 |
+
],
|
86 |
+
[
|
87 |
+
1.0,
|
88 |
+
0.0,
|
89 |
+
0.0,
|
90 |
+
-0.7250000000000001,
|
91 |
+
0.0,
|
92 |
+
1.0,
|
93 |
+
0.0,
|
94 |
+
0.0,
|
95 |
+
0.0,
|
96 |
+
0.0,
|
97 |
+
1.0,
|
98 |
+
0.0
|
99 |
+
],
|
100 |
+
[
|
101 |
+
1.0,
|
102 |
+
0.0,
|
103 |
+
0.0,
|
104 |
+
-0.8125000000000002,
|
105 |
+
0.0,
|
106 |
+
1.0,
|
107 |
+
0.0,
|
108 |
+
0.0,
|
109 |
+
0.0,
|
110 |
+
0.0,
|
111 |
+
1.0,
|
112 |
+
0.0
|
113 |
+
],
|
114 |
+
[
|
115 |
+
1.0,
|
116 |
+
0.0,
|
117 |
+
0.0,
|
118 |
+
-0.9000000000000001,
|
119 |
+
0.0,
|
120 |
+
1.0,
|
121 |
+
0.0,
|
122 |
+
0.0,
|
123 |
+
0.0,
|
124 |
+
0.0,
|
125 |
+
1.0,
|
126 |
+
0.0
|
127 |
+
],
|
128 |
+
[
|
129 |
+
1.0,
|
130 |
+
0.0,
|
131 |
+
0.0,
|
132 |
+
-0.9875000000000003,
|
133 |
+
0.0,
|
134 |
+
1.0,
|
135 |
+
0.0,
|
136 |
+
0.0,
|
137 |
+
0.0,
|
138 |
+
0.0,
|
139 |
+
1.0,
|
140 |
+
0.0
|
141 |
+
],
|
142 |
+
[
|
143 |
+
1.0,
|
144 |
+
0.0,
|
145 |
+
0.0,
|
146 |
+
-1.0750000000000002,
|
147 |
+
0.0,
|
148 |
+
1.0,
|
149 |
+
0.0,
|
150 |
+
0.0,
|
151 |
+
0.0,
|
152 |
+
0.0,
|
153 |
+
1.0,
|
154 |
+
0.0
|
155 |
+
],
|
156 |
+
[
|
157 |
+
1.0,
|
158 |
+
0.0,
|
159 |
+
0.0,
|
160 |
+
-1.1625000000000003,
|
161 |
+
0.0,
|
162 |
+
1.0,
|
163 |
+
0.0,
|
164 |
+
0.0,
|
165 |
+
0.0,
|
166 |
+
0.0,
|
167 |
+
1.0,
|
168 |
+
0.0
|
169 |
+
],
|
170 |
+
[
|
171 |
+
1.0,
|
172 |
+
0.0,
|
173 |
+
0.0,
|
174 |
+
-1.2500000000000002,
|
175 |
+
0.0,
|
176 |
+
1.0,
|
177 |
+
0.0,
|
178 |
+
0.0,
|
179 |
+
0.0,
|
180 |
+
0.0,
|
181 |
+
1.0,
|
182 |
+
0.0
|
183 |
+
],
|
184 |
+
[
|
185 |
+
1.0,
|
186 |
+
0.0,
|
187 |
+
0.0,
|
188 |
+
-1.3375000000000001,
|
189 |
+
0.0,
|
190 |
+
1.0,
|
191 |
+
0.0,
|
192 |
+
0.0,
|
193 |
+
0.0,
|
194 |
+
0.0,
|
195 |
+
1.0,
|
196 |
+
0.0
|
197 |
+
],
|
198 |
+
[
|
199 |
+
1.0,
|
200 |
+
0.0,
|
201 |
+
0.0,
|
202 |
+
-1.4250000000000003,
|
203 |
+
0.0,
|
204 |
+
1.0,
|
205 |
+
0.0,
|
206 |
+
0.0,
|
207 |
+
0.0,
|
208 |
+
0.0,
|
209 |
+
1.0,
|
210 |
+
0.0
|
211 |
+
],
|
212 |
+
[
|
213 |
+
1.0,
|
214 |
+
0.0,
|
215 |
+
0.0,
|
216 |
+
-1.5125000000000004,
|
217 |
+
0.0,
|
218 |
+
1.0,
|
219 |
+
0.0,
|
220 |
+
0.0,
|
221 |
+
0.0,
|
222 |
+
0.0,
|
223 |
+
1.0,
|
224 |
+
0.0
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_Round-RI-120.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.0,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.0,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
1.8
|
15 |
+
],
|
16 |
+
[
|
17 |
+
0.9914448613738104,
|
18 |
+
0.0,
|
19 |
+
0.13052619222005157,
|
20 |
+
0.13052619222005157,
|
21 |
+
0.0,
|
22 |
+
1.0,
|
23 |
+
0.0,
|
24 |
+
0.0,
|
25 |
+
-0.13052619222005157,
|
26 |
+
0.0,
|
27 |
+
0.9914448613738104,
|
28 |
+
1.7914448613738103
|
29 |
+
],
|
30 |
+
[
|
31 |
+
0.9659258262890683,
|
32 |
+
0.0,
|
33 |
+
0.25881904510252074,
|
34 |
+
0.25881904510252074,
|
35 |
+
0.0,
|
36 |
+
1.0,
|
37 |
+
0.0,
|
38 |
+
0.0,
|
39 |
+
-0.25881904510252074,
|
40 |
+
0.0,
|
41 |
+
0.9659258262890683,
|
42 |
+
1.7659258262890685
|
43 |
+
],
|
44 |
+
[
|
45 |
+
0.9238795325112867,
|
46 |
+
0.0,
|
47 |
+
0.3826834323650898,
|
48 |
+
0.3826834323650898,
|
49 |
+
0.0,
|
50 |
+
1.0,
|
51 |
+
0.0,
|
52 |
+
0.0,
|
53 |
+
-0.3826834323650898,
|
54 |
+
0.0,
|
55 |
+
0.9238795325112867,
|
56 |
+
1.7238795325112868
|
57 |
+
],
|
58 |
+
[
|
59 |
+
0.8660254037844387,
|
60 |
+
0.0,
|
61 |
+
0.49999999999999994,
|
62 |
+
0.49999999999999994,
|
63 |
+
0.0,
|
64 |
+
1.0,
|
65 |
+
0.0,
|
66 |
+
0.0,
|
67 |
+
-0.49999999999999994,
|
68 |
+
0.0,
|
69 |
+
0.8660254037844387,
|
70 |
+
1.6660254037844386
|
71 |
+
],
|
72 |
+
[
|
73 |
+
0.7933533402912353,
|
74 |
+
0.0,
|
75 |
+
0.6087614290087205,
|
76 |
+
0.6087614290087205,
|
77 |
+
0.0,
|
78 |
+
1.0,
|
79 |
+
0.0,
|
80 |
+
0.0,
|
81 |
+
-0.6087614290087205,
|
82 |
+
0.0,
|
83 |
+
0.7933533402912353,
|
84 |
+
1.5933533402912352
|
85 |
+
],
|
86 |
+
[
|
87 |
+
0.7071067811865476,
|
88 |
+
0.0,
|
89 |
+
0.7071067811865476,
|
90 |
+
0.7071067811865476,
|
91 |
+
0.0,
|
92 |
+
1.0,
|
93 |
+
0.0,
|
94 |
+
0.0,
|
95 |
+
-0.7071067811865476,
|
96 |
+
0.0,
|
97 |
+
0.7071067811865476,
|
98 |
+
1.5071067811865477
|
99 |
+
],
|
100 |
+
[
|
101 |
+
0.6087614290087207,
|
102 |
+
0.0,
|
103 |
+
0.7933533402912352,
|
104 |
+
0.7933533402912352,
|
105 |
+
0.0,
|
106 |
+
1.0,
|
107 |
+
0.0,
|
108 |
+
0.0,
|
109 |
+
-0.7933533402912352,
|
110 |
+
0.0,
|
111 |
+
0.6087614290087207,
|
112 |
+
1.4087614290087207
|
113 |
+
],
|
114 |
+
[
|
115 |
+
0.5000000000000001,
|
116 |
+
0.0,
|
117 |
+
0.8660254037844386,
|
118 |
+
0.8660254037844386,
|
119 |
+
0.0,
|
120 |
+
1.0,
|
121 |
+
0.0,
|
122 |
+
0.0,
|
123 |
+
-0.8660254037844386,
|
124 |
+
0.0,
|
125 |
+
0.5000000000000001,
|
126 |
+
1.3000000000000003
|
127 |
+
],
|
128 |
+
[
|
129 |
+
0.38268343236508984,
|
130 |
+
0.0,
|
131 |
+
0.9238795325112867,
|
132 |
+
0.9238795325112867,
|
133 |
+
0.0,
|
134 |
+
1.0,
|
135 |
+
0.0,
|
136 |
+
0.0,
|
137 |
+
-0.9238795325112867,
|
138 |
+
0.0,
|
139 |
+
0.38268343236508984,
|
140 |
+
1.1826834323650899
|
141 |
+
],
|
142 |
+
[
|
143 |
+
0.25881904510252096,
|
144 |
+
0.0,
|
145 |
+
0.9659258262890682,
|
146 |
+
0.9659258262890682,
|
147 |
+
0.0,
|
148 |
+
1.0,
|
149 |
+
0.0,
|
150 |
+
0.0,
|
151 |
+
-0.9659258262890682,
|
152 |
+
0.0,
|
153 |
+
0.25881904510252096,
|
154 |
+
1.058819045102521
|
155 |
+
],
|
156 |
+
[
|
157 |
+
0.1305261922200517,
|
158 |
+
0.0,
|
159 |
+
0.9914448613738104,
|
160 |
+
0.9914448613738104,
|
161 |
+
0.0,
|
162 |
+
1.0,
|
163 |
+
0.0,
|
164 |
+
0.0,
|
165 |
+
-0.9914448613738104,
|
166 |
+
0.0,
|
167 |
+
0.1305261922200517,
|
168 |
+
0.9305261922200517
|
169 |
+
],
|
170 |
+
[
|
171 |
+
6.123233995736766e-17,
|
172 |
+
0.0,
|
173 |
+
1.0,
|
174 |
+
1.0,
|
175 |
+
0.0,
|
176 |
+
1.0,
|
177 |
+
0.0,
|
178 |
+
0.0,
|
179 |
+
-1.0,
|
180 |
+
0.0,
|
181 |
+
6.123233995736766e-17,
|
182 |
+
0.8000000000000002
|
183 |
+
],
|
184 |
+
[
|
185 |
+
-0.13052619222005138,
|
186 |
+
0.0,
|
187 |
+
0.9914448613738105,
|
188 |
+
0.9914448613738105,
|
189 |
+
0.0,
|
190 |
+
1.0,
|
191 |
+
0.0,
|
192 |
+
0.0,
|
193 |
+
-0.9914448613738105,
|
194 |
+
0.0,
|
195 |
+
-0.13052619222005138,
|
196 |
+
0.6694738077799487
|
197 |
+
],
|
198 |
+
[
|
199 |
+
-0.25881904510252063,
|
200 |
+
0.0,
|
201 |
+
0.9659258262890683,
|
202 |
+
0.9659258262890683,
|
203 |
+
0.0,
|
204 |
+
1.0,
|
205 |
+
0.0,
|
206 |
+
0.0,
|
207 |
+
-0.9659258262890683,
|
208 |
+
0.0,
|
209 |
+
-0.25881904510252063,
|
210 |
+
0.5411809548974794
|
211 |
+
],
|
212 |
+
[
|
213 |
+
-0.3826834323650895,
|
214 |
+
0.0,
|
215 |
+
0.9238795325112868,
|
216 |
+
0.9238795325112868,
|
217 |
+
0.0,
|
218 |
+
1.0,
|
219 |
+
0.0,
|
220 |
+
0.0,
|
221 |
+
-0.9238795325112868,
|
222 |
+
0.0,
|
223 |
+
-0.3826834323650895,
|
224 |
+
0.41731656763491054
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_Round-RI.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.0,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.0,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
1.7000000000000002
|
15 |
+
],
|
16 |
+
[
|
17 |
+
0.9807852804032304,
|
18 |
+
0.0,
|
19 |
+
0.19509032201612825,
|
20 |
+
0.17558128981451543,
|
21 |
+
0.0,
|
22 |
+
1.0,
|
23 |
+
0.0,
|
24 |
+
0.0,
|
25 |
+
-0.19509032201612825,
|
26 |
+
0.0,
|
27 |
+
0.9807852804032304,
|
28 |
+
1.6827067523629076
|
29 |
+
],
|
30 |
+
[
|
31 |
+
0.9238795325112867,
|
32 |
+
0.0,
|
33 |
+
0.3826834323650898,
|
34 |
+
0.3444150891285808,
|
35 |
+
0.0,
|
36 |
+
1.0,
|
37 |
+
0.0,
|
38 |
+
0.0,
|
39 |
+
-0.3826834323650898,
|
40 |
+
0.0,
|
41 |
+
0.9238795325112867,
|
42 |
+
1.631491579260158
|
43 |
+
],
|
44 |
+
[
|
45 |
+
0.8314696123025452,
|
46 |
+
0.0,
|
47 |
+
0.5555702330196022,
|
48 |
+
0.500013209717642,
|
49 |
+
0.0,
|
50 |
+
1.0,
|
51 |
+
0.0,
|
52 |
+
0.0,
|
53 |
+
-0.5555702330196022,
|
54 |
+
0.0,
|
55 |
+
0.8314696123025452,
|
56 |
+
1.5483226510722907
|
57 |
+
],
|
58 |
+
[
|
59 |
+
0.7071067811865476,
|
60 |
+
0.0,
|
61 |
+
0.7071067811865476,
|
62 |
+
0.6363961030678928,
|
63 |
+
0.0,
|
64 |
+
1.0,
|
65 |
+
0.0,
|
66 |
+
0.0,
|
67 |
+
-0.7071067811865476,
|
68 |
+
0.0,
|
69 |
+
0.7071067811865476,
|
70 |
+
1.436396103067893
|
71 |
+
],
|
72 |
+
[
|
73 |
+
0.5555702330196023,
|
74 |
+
0.0,
|
75 |
+
0.8314696123025452,
|
76 |
+
0.7483226510722907,
|
77 |
+
0.0,
|
78 |
+
1.0,
|
79 |
+
0.0,
|
80 |
+
0.0,
|
81 |
+
-0.8314696123025452,
|
82 |
+
0.0,
|
83 |
+
0.5555702330196023,
|
84 |
+
1.3000132097176422
|
85 |
+
],
|
86 |
+
[
|
87 |
+
0.38268343236508984,
|
88 |
+
0.0,
|
89 |
+
0.9238795325112867,
|
90 |
+
0.831491579260158,
|
91 |
+
0.0,
|
92 |
+
1.0,
|
93 |
+
0.0,
|
94 |
+
0.0,
|
95 |
+
-0.9238795325112867,
|
96 |
+
0.0,
|
97 |
+
0.38268343236508984,
|
98 |
+
1.144415089128581
|
99 |
+
],
|
100 |
+
[
|
101 |
+
0.19509032201612833,
|
102 |
+
0.0,
|
103 |
+
0.9807852804032304,
|
104 |
+
0.8827067523629074,
|
105 |
+
0.0,
|
106 |
+
1.0,
|
107 |
+
0.0,
|
108 |
+
0.0,
|
109 |
+
-0.9807852804032304,
|
110 |
+
0.0,
|
111 |
+
0.19509032201612833,
|
112 |
+
0.9755812898145155
|
113 |
+
],
|
114 |
+
[
|
115 |
+
6.123233995736766e-17,
|
116 |
+
0.0,
|
117 |
+
1.0,
|
118 |
+
0.9,
|
119 |
+
0.0,
|
120 |
+
1.0,
|
121 |
+
0.0,
|
122 |
+
0.0,
|
123 |
+
-1.0,
|
124 |
+
0.0,
|
125 |
+
6.123233995736766e-17,
|
126 |
+
0.8
|
127 |
+
],
|
128 |
+
[
|
129 |
+
-0.1950903220161282,
|
130 |
+
0.0,
|
131 |
+
0.9807852804032304,
|
132 |
+
0.8827067523629074,
|
133 |
+
0.0,
|
134 |
+
1.0,
|
135 |
+
0.0,
|
136 |
+
0.0,
|
137 |
+
-0.9807852804032304,
|
138 |
+
0.0,
|
139 |
+
-0.1950903220161282,
|
140 |
+
0.6244187101854847
|
141 |
+
],
|
142 |
+
[
|
143 |
+
-0.3826834323650897,
|
144 |
+
0.0,
|
145 |
+
0.9238795325112867,
|
146 |
+
0.831491579260158,
|
147 |
+
0.0,
|
148 |
+
1.0,
|
149 |
+
0.0,
|
150 |
+
0.0,
|
151 |
+
-0.9238795325112867,
|
152 |
+
0.0,
|
153 |
+
-0.3826834323650897,
|
154 |
+
0.4555849108714193
|
155 |
+
],
|
156 |
+
[
|
157 |
+
-0.555570233019602,
|
158 |
+
0.0,
|
159 |
+
0.8314696123025453,
|
160 |
+
0.7483226510722908,
|
161 |
+
0.0,
|
162 |
+
1.0,
|
163 |
+
0.0,
|
164 |
+
0.0,
|
165 |
+
-0.8314696123025453,
|
166 |
+
0.0,
|
167 |
+
-0.555570233019602,
|
168 |
+
0.2999867902823583
|
169 |
+
],
|
170 |
+
[
|
171 |
+
-0.7071067811865475,
|
172 |
+
0.0,
|
173 |
+
0.7071067811865476,
|
174 |
+
0.6363961030678928,
|
175 |
+
0.0,
|
176 |
+
1.0,
|
177 |
+
0.0,
|
178 |
+
0.0,
|
179 |
+
-0.7071067811865476,
|
180 |
+
0.0,
|
181 |
+
-0.7071067811865475,
|
182 |
+
0.1636038969321073
|
183 |
+
],
|
184 |
+
[
|
185 |
+
-0.8314696123025453,
|
186 |
+
0.0,
|
187 |
+
0.5555702330196022,
|
188 |
+
0.500013209717642,
|
189 |
+
0.0,
|
190 |
+
1.0,
|
191 |
+
0.0,
|
192 |
+
0.0,
|
193 |
+
-0.5555702330196022,
|
194 |
+
0.0,
|
195 |
+
-0.8314696123025453,
|
196 |
+
0.051677348927709255
|
197 |
+
],
|
198 |
+
[
|
199 |
+
-0.9238795325112867,
|
200 |
+
0.0,
|
201 |
+
0.3826834323650899,
|
202 |
+
0.34441508912858093,
|
203 |
+
0.0,
|
204 |
+
1.0,
|
205 |
+
0.0,
|
206 |
+
0.0,
|
207 |
+
-0.3826834323650899,
|
208 |
+
0.0,
|
209 |
+
-0.9238795325112867,
|
210 |
+
-0.031491579260158
|
211 |
+
],
|
212 |
+
[
|
213 |
+
-0.9807852804032304,
|
214 |
+
0.0,
|
215 |
+
0.1950903220161286,
|
216 |
+
0.17558128981451576,
|
217 |
+
0.0,
|
218 |
+
1.0,
|
219 |
+
0.0,
|
220 |
+
0.0,
|
221 |
+
-0.1950903220161286,
|
222 |
+
0.0,
|
223 |
+
-0.9807852804032304,
|
224 |
+
-0.08270675236290737
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_Round-RI_90.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.0,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.0,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
1.7000000000000002
|
15 |
+
],
|
16 |
+
[
|
17 |
+
0.9951847266721969,
|
18 |
+
0.0,
|
19 |
+
0.0980171403295606,
|
20 |
+
0.08821542629660455,
|
21 |
+
0.0,
|
22 |
+
1.0,
|
23 |
+
0.0,
|
24 |
+
0.0,
|
25 |
+
-0.0980171403295606,
|
26 |
+
0.0,
|
27 |
+
0.9951847266721969,
|
28 |
+
1.6956662540049772
|
29 |
+
],
|
30 |
+
[
|
31 |
+
0.9807852804032304,
|
32 |
+
0.0,
|
33 |
+
0.19509032201612825,
|
34 |
+
0.17558128981451543,
|
35 |
+
0.0,
|
36 |
+
1.0,
|
37 |
+
0.0,
|
38 |
+
0.0,
|
39 |
+
-0.19509032201612825,
|
40 |
+
0.0,
|
41 |
+
0.9807852804032304,
|
42 |
+
1.6827067523629076
|
43 |
+
],
|
44 |
+
[
|
45 |
+
0.9569403357322088,
|
46 |
+
0.0,
|
47 |
+
0.29028467725446233,
|
48 |
+
0.2612562095290161,
|
49 |
+
0.0,
|
50 |
+
1.0,
|
51 |
+
0.0,
|
52 |
+
0.0,
|
53 |
+
-0.29028467725446233,
|
54 |
+
0.0,
|
55 |
+
0.9569403357322088,
|
56 |
+
1.661246302158988
|
57 |
+
],
|
58 |
+
[
|
59 |
+
0.9238795325112867,
|
60 |
+
0.0,
|
61 |
+
0.3826834323650898,
|
62 |
+
0.3444150891285808,
|
63 |
+
0.0,
|
64 |
+
1.0,
|
65 |
+
0.0,
|
66 |
+
0.0,
|
67 |
+
-0.3826834323650898,
|
68 |
+
0.0,
|
69 |
+
0.9238795325112867,
|
70 |
+
1.631491579260158
|
71 |
+
],
|
72 |
+
[
|
73 |
+
0.881921264348355,
|
74 |
+
0.0,
|
75 |
+
0.47139673682599764,
|
76 |
+
0.4242570631433979,
|
77 |
+
0.0,
|
78 |
+
1.0,
|
79 |
+
0.0,
|
80 |
+
0.0,
|
81 |
+
-0.47139673682599764,
|
82 |
+
0.0,
|
83 |
+
0.881921264348355,
|
84 |
+
1.5937291379135194
|
85 |
+
],
|
86 |
+
[
|
87 |
+
0.8314696123025452,
|
88 |
+
0.0,
|
89 |
+
0.5555702330196022,
|
90 |
+
0.500013209717642,
|
91 |
+
0.0,
|
92 |
+
1.0,
|
93 |
+
0.0,
|
94 |
+
0.0,
|
95 |
+
-0.5555702330196022,
|
96 |
+
0.0,
|
97 |
+
0.8314696123025452,
|
98 |
+
1.5483226510722907
|
99 |
+
],
|
100 |
+
[
|
101 |
+
0.773010453362737,
|
102 |
+
0.0,
|
103 |
+
0.6343932841636455,
|
104 |
+
0.5709539557472809,
|
105 |
+
0.0,
|
106 |
+
1.0,
|
107 |
+
0.0,
|
108 |
+
0.0,
|
109 |
+
-0.6343932841636455,
|
110 |
+
0.0,
|
111 |
+
0.773010453362737,
|
112 |
+
1.4957094080264635
|
113 |
+
],
|
114 |
+
[
|
115 |
+
0.7071067811865476,
|
116 |
+
0.0,
|
117 |
+
0.7071067811865476,
|
118 |
+
0.6363961030678928,
|
119 |
+
0.0,
|
120 |
+
1.0,
|
121 |
+
0.0,
|
122 |
+
0.0,
|
123 |
+
-0.7071067811865476,
|
124 |
+
0.0,
|
125 |
+
0.7071067811865476,
|
126 |
+
1.436396103067893
|
127 |
+
],
|
128 |
+
[
|
129 |
+
0.6343932841636455,
|
130 |
+
0.0,
|
131 |
+
0.7730104533627369,
|
132 |
+
0.6957094080264632,
|
133 |
+
0.0,
|
134 |
+
1.0,
|
135 |
+
0.0,
|
136 |
+
0.0,
|
137 |
+
-0.7730104533627369,
|
138 |
+
0.0,
|
139 |
+
0.6343932841636455,
|
140 |
+
1.370953955747281
|
141 |
+
],
|
142 |
+
[
|
143 |
+
0.5555702330196023,
|
144 |
+
0.0,
|
145 |
+
0.8314696123025452,
|
146 |
+
0.7483226510722907,
|
147 |
+
0.0,
|
148 |
+
1.0,
|
149 |
+
0.0,
|
150 |
+
0.0,
|
151 |
+
-0.8314696123025452,
|
152 |
+
0.0,
|
153 |
+
0.5555702330196023,
|
154 |
+
1.3000132097176422
|
155 |
+
],
|
156 |
+
[
|
157 |
+
0.4713967368259978,
|
158 |
+
0.0,
|
159 |
+
0.8819212643483549,
|
160 |
+
0.7937291379135195,
|
161 |
+
0.0,
|
162 |
+
1.0,
|
163 |
+
0.0,
|
164 |
+
0.0,
|
165 |
+
-0.8819212643483549,
|
166 |
+
0.0,
|
167 |
+
0.4713967368259978,
|
168 |
+
1.2242570631433982
|
169 |
+
],
|
170 |
+
[
|
171 |
+
0.38268343236508984,
|
172 |
+
0.0,
|
173 |
+
0.9238795325112867,
|
174 |
+
0.831491579260158,
|
175 |
+
0.0,
|
176 |
+
1.0,
|
177 |
+
0.0,
|
178 |
+
0.0,
|
179 |
+
-0.9238795325112867,
|
180 |
+
0.0,
|
181 |
+
0.38268343236508984,
|
182 |
+
1.144415089128581
|
183 |
+
],
|
184 |
+
[
|
185 |
+
0.29028467725446233,
|
186 |
+
0.0,
|
187 |
+
0.9569403357322089,
|
188 |
+
0.861246302158988,
|
189 |
+
0.0,
|
190 |
+
1.0,
|
191 |
+
0.0,
|
192 |
+
0.0,
|
193 |
+
-0.9569403357322089,
|
194 |
+
0.0,
|
195 |
+
0.29028467725446233,
|
196 |
+
1.0612562095290161
|
197 |
+
],
|
198 |
+
[
|
199 |
+
0.19509032201612833,
|
200 |
+
0.0,
|
201 |
+
0.9807852804032304,
|
202 |
+
0.8827067523629074,
|
203 |
+
0.0,
|
204 |
+
1.0,
|
205 |
+
0.0,
|
206 |
+
0.0,
|
207 |
+
-0.9807852804032304,
|
208 |
+
0.0,
|
209 |
+
0.19509032201612833,
|
210 |
+
0.9755812898145155
|
211 |
+
],
|
212 |
+
[
|
213 |
+
0.09801714032956077,
|
214 |
+
0.0,
|
215 |
+
0.9951847266721968,
|
216 |
+
0.8956662540049771,
|
217 |
+
0.0,
|
218 |
+
1.0,
|
219 |
+
0.0,
|
220 |
+
0.0,
|
221 |
+
-0.9951847266721968,
|
222 |
+
0.0,
|
223 |
+
0.09801714032956077,
|
224 |
+
0.8882154262966048
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_Round-ZoomIn.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.0,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.0,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
0.81
|
15 |
+
],
|
16 |
+
[
|
17 |
+
0.9807852804032304,
|
18 |
+
0.0,
|
19 |
+
0.19509032201612825,
|
20 |
+
0.0019509032201612826,
|
21 |
+
0.0,
|
22 |
+
1.0,
|
23 |
+
0.0,
|
24 |
+
0.0,
|
25 |
+
-0.19509032201612825,
|
26 |
+
0.0,
|
27 |
+
0.9807852804032304,
|
28 |
+
0.8098078528040323
|
29 |
+
],
|
30 |
+
[
|
31 |
+
0.9238795325112867,
|
32 |
+
0.0,
|
33 |
+
0.3826834323650898,
|
34 |
+
0.003826834323650898,
|
35 |
+
0.0,
|
36 |
+
1.0,
|
37 |
+
0.0,
|
38 |
+
0.0,
|
39 |
+
-0.3826834323650898,
|
40 |
+
0.0,
|
41 |
+
0.9238795325112867,
|
42 |
+
0.8092387953251129
|
43 |
+
],
|
44 |
+
[
|
45 |
+
0.8314696123025452,
|
46 |
+
0.0,
|
47 |
+
0.5555702330196022,
|
48 |
+
0.005555702330196022,
|
49 |
+
0.0,
|
50 |
+
1.0,
|
51 |
+
0.0,
|
52 |
+
0.0,
|
53 |
+
-0.5555702330196022,
|
54 |
+
0.0,
|
55 |
+
0.8314696123025452,
|
56 |
+
0.8083146961230255
|
57 |
+
],
|
58 |
+
[
|
59 |
+
0.7071067811865476,
|
60 |
+
0.0,
|
61 |
+
0.7071067811865476,
|
62 |
+
0.007071067811865476,
|
63 |
+
0.0,
|
64 |
+
1.0,
|
65 |
+
0.0,
|
66 |
+
0.0,
|
67 |
+
-0.7071067811865476,
|
68 |
+
0.0,
|
69 |
+
0.7071067811865476,
|
70 |
+
0.8070710678118656
|
71 |
+
],
|
72 |
+
[
|
73 |
+
0.5555702330196023,
|
74 |
+
0.0,
|
75 |
+
0.8314696123025452,
|
76 |
+
0.008314696123025453,
|
77 |
+
0.0,
|
78 |
+
1.0,
|
79 |
+
0.0,
|
80 |
+
0.0,
|
81 |
+
-0.8314696123025452,
|
82 |
+
0.0,
|
83 |
+
0.5555702330196023,
|
84 |
+
0.805555702330196
|
85 |
+
],
|
86 |
+
[
|
87 |
+
0.38268343236508984,
|
88 |
+
0.0,
|
89 |
+
0.9238795325112867,
|
90 |
+
0.009238795325112868,
|
91 |
+
0.0,
|
92 |
+
1.0,
|
93 |
+
0.0,
|
94 |
+
0.0,
|
95 |
+
-0.9238795325112867,
|
96 |
+
0.0,
|
97 |
+
0.38268343236508984,
|
98 |
+
0.803826834323651
|
99 |
+
],
|
100 |
+
[
|
101 |
+
0.19509032201612833,
|
102 |
+
0.0,
|
103 |
+
0.9807852804032304,
|
104 |
+
0.009807852804032305,
|
105 |
+
0.0,
|
106 |
+
1.0,
|
107 |
+
0.0,
|
108 |
+
0.0,
|
109 |
+
-0.9807852804032304,
|
110 |
+
0.0,
|
111 |
+
0.19509032201612833,
|
112 |
+
0.8019509032201614
|
113 |
+
],
|
114 |
+
[
|
115 |
+
0.19509032201612833,
|
116 |
+
0.0,
|
117 |
+
0.9807852804032304,
|
118 |
+
0.009807852804032305,
|
119 |
+
0.0,
|
120 |
+
1.0,
|
121 |
+
0.0,
|
122 |
+
0.0,
|
123 |
+
-0.9807852804032304,
|
124 |
+
0.0,
|
125 |
+
0.19509032201612833,
|
126 |
+
0.8019509032201614
|
127 |
+
],
|
128 |
+
[
|
129 |
+
0.19509032201612833,
|
130 |
+
0.0,
|
131 |
+
0.9807852804032304,
|
132 |
+
0.009807852804032305,
|
133 |
+
0.0,
|
134 |
+
1.0,
|
135 |
+
0.0,
|
136 |
+
0.0,
|
137 |
+
-0.9807852804032304,
|
138 |
+
0.0,
|
139 |
+
0.19509032201612833,
|
140 |
+
0.7019509032201614
|
141 |
+
],
|
142 |
+
[
|
143 |
+
0.19509032201612833,
|
144 |
+
0.0,
|
145 |
+
0.9807852804032304,
|
146 |
+
0.009807852804032305,
|
147 |
+
0.0,
|
148 |
+
1.0,
|
149 |
+
0.0,
|
150 |
+
0.0,
|
151 |
+
-0.9807852804032304,
|
152 |
+
0.0,
|
153 |
+
0.19509032201612833,
|
154 |
+
0.6019509032201614
|
155 |
+
],
|
156 |
+
[
|
157 |
+
0.19509032201612833,
|
158 |
+
0.0,
|
159 |
+
0.9807852804032304,
|
160 |
+
0.009807852804032305,
|
161 |
+
0.0,
|
162 |
+
1.0,
|
163 |
+
0.0,
|
164 |
+
0.0,
|
165 |
+
-0.9807852804032304,
|
166 |
+
0.0,
|
167 |
+
0.19509032201612833,
|
168 |
+
0.5019509032201613
|
169 |
+
],
|
170 |
+
[
|
171 |
+
0.19509032201612833,
|
172 |
+
0.0,
|
173 |
+
0.9807852804032304,
|
174 |
+
0.009807852804032305,
|
175 |
+
0.0,
|
176 |
+
1.0,
|
177 |
+
0.0,
|
178 |
+
0.0,
|
179 |
+
-0.9807852804032304,
|
180 |
+
0.0,
|
181 |
+
0.19509032201612833,
|
182 |
+
0.4019509032201613
|
183 |
+
],
|
184 |
+
[
|
185 |
+
0.19509032201612833,
|
186 |
+
0.0,
|
187 |
+
0.9807852804032304,
|
188 |
+
0.009807852804032305,
|
189 |
+
0.0,
|
190 |
+
1.0,
|
191 |
+
0.0,
|
192 |
+
0.0,
|
193 |
+
-0.9807852804032304,
|
194 |
+
0.0,
|
195 |
+
0.19509032201612833,
|
196 |
+
0.3019509032201613
|
197 |
+
],
|
198 |
+
[
|
199 |
+
0.19509032201612833,
|
200 |
+
0.0,
|
201 |
+
0.9807852804032304,
|
202 |
+
0.009807852804032305,
|
203 |
+
0.0,
|
204 |
+
1.0,
|
205 |
+
0.0,
|
206 |
+
0.0,
|
207 |
+
-0.9807852804032304,
|
208 |
+
0.0,
|
209 |
+
0.19509032201612833,
|
210 |
+
0.2019509032201613
|
211 |
+
],
|
212 |
+
[
|
213 |
+
0.19509032201612833,
|
214 |
+
0.0,
|
215 |
+
0.9807852804032304,
|
216 |
+
0.009807852804032305,
|
217 |
+
0.0,
|
218 |
+
1.0,
|
219 |
+
0.0,
|
220 |
+
0.0,
|
221 |
+
-0.9807852804032304,
|
222 |
+
0.0,
|
223 |
+
0.19509032201612833,
|
224 |
+
0.10195090322016129
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_SPIN-ACW-60.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.0,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.0,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
0.0
|
15 |
+
],
|
16 |
+
[
|
17 |
+
0.9978589232386035,
|
18 |
+
-0.06540312923014306,
|
19 |
+
0.0,
|
20 |
+
0.0,
|
21 |
+
0.06540312923014306,
|
22 |
+
0.9978589232386035,
|
23 |
+
0.0,
|
24 |
+
0.0,
|
25 |
+
0.0,
|
26 |
+
0.0,
|
27 |
+
1.0,
|
28 |
+
0.0
|
29 |
+
],
|
30 |
+
[
|
31 |
+
0.9914448613738104,
|
32 |
+
-0.13052619222005157,
|
33 |
+
0.0,
|
34 |
+
0.0,
|
35 |
+
0.13052619222005157,
|
36 |
+
0.9914448613738104,
|
37 |
+
0.0,
|
38 |
+
0.0,
|
39 |
+
0.0,
|
40 |
+
0.0,
|
41 |
+
1.0,
|
42 |
+
0.0
|
43 |
+
],
|
44 |
+
[
|
45 |
+
0.9807852804032304,
|
46 |
+
-0.19509032201612825,
|
47 |
+
0.0,
|
48 |
+
0.0,
|
49 |
+
0.19509032201612825,
|
50 |
+
0.9807852804032304,
|
51 |
+
0.0,
|
52 |
+
0.0,
|
53 |
+
0.0,
|
54 |
+
0.0,
|
55 |
+
1.0,
|
56 |
+
0.0
|
57 |
+
],
|
58 |
+
[
|
59 |
+
0.9659258262890683,
|
60 |
+
-0.25881904510252074,
|
61 |
+
0.0,
|
62 |
+
0.0,
|
63 |
+
0.25881904510252074,
|
64 |
+
0.9659258262890683,
|
65 |
+
0.0,
|
66 |
+
0.0,
|
67 |
+
0.0,
|
68 |
+
0.0,
|
69 |
+
1.0,
|
70 |
+
0.0
|
71 |
+
],
|
72 |
+
[
|
73 |
+
0.9469301294951057,
|
74 |
+
-0.32143946530316153,
|
75 |
+
0.0,
|
76 |
+
0.0,
|
77 |
+
0.32143946530316153,
|
78 |
+
0.9469301294951057,
|
79 |
+
0.0,
|
80 |
+
0.0,
|
81 |
+
0.0,
|
82 |
+
0.0,
|
83 |
+
1.0,
|
84 |
+
0.0
|
85 |
+
],
|
86 |
+
[
|
87 |
+
0.9238795325112867,
|
88 |
+
-0.3826834323650898,
|
89 |
+
0.0,
|
90 |
+
0.0,
|
91 |
+
0.3826834323650898,
|
92 |
+
0.9238795325112867,
|
93 |
+
0.0,
|
94 |
+
0.0,
|
95 |
+
0.0,
|
96 |
+
0.0,
|
97 |
+
1.0,
|
98 |
+
0.0
|
99 |
+
],
|
100 |
+
[
|
101 |
+
0.8968727415326884,
|
102 |
+
-0.44228869021900125,
|
103 |
+
0.0,
|
104 |
+
0.0,
|
105 |
+
0.44228869021900125,
|
106 |
+
0.8968727415326884,
|
107 |
+
0.0,
|
108 |
+
0.0,
|
109 |
+
0.0,
|
110 |
+
0.0,
|
111 |
+
1.0,
|
112 |
+
0.0
|
113 |
+
],
|
114 |
+
[
|
115 |
+
0.8660254037844387,
|
116 |
+
-0.49999999999999994,
|
117 |
+
0.0,
|
118 |
+
0.0,
|
119 |
+
0.49999999999999994,
|
120 |
+
0.8660254037844387,
|
121 |
+
0.0,
|
122 |
+
0.0,
|
123 |
+
0.0,
|
124 |
+
0.0,
|
125 |
+
1.0,
|
126 |
+
0.0
|
127 |
+
],
|
128 |
+
[
|
129 |
+
0.8314696123025452,
|
130 |
+
-0.5555702330196022,
|
131 |
+
0.0,
|
132 |
+
0.0,
|
133 |
+
0.5555702330196022,
|
134 |
+
0.8314696123025452,
|
135 |
+
0.0,
|
136 |
+
0.0,
|
137 |
+
0.0,
|
138 |
+
0.0,
|
139 |
+
1.0,
|
140 |
+
0.0
|
141 |
+
],
|
142 |
+
[
|
143 |
+
0.7933533402912353,
|
144 |
+
-0.6087614290087205,
|
145 |
+
0.0,
|
146 |
+
0.0,
|
147 |
+
0.6087614290087205,
|
148 |
+
0.7933533402912353,
|
149 |
+
0.0,
|
150 |
+
0.0,
|
151 |
+
0.0,
|
152 |
+
0.0,
|
153 |
+
1.0,
|
154 |
+
0.0
|
155 |
+
],
|
156 |
+
[
|
157 |
+
0.7518398074789774,
|
158 |
+
-0.6593458151000688,
|
159 |
+
0.0,
|
160 |
+
0.0,
|
161 |
+
0.6593458151000688,
|
162 |
+
0.7518398074789774,
|
163 |
+
0.0,
|
164 |
+
0.0,
|
165 |
+
0.0,
|
166 |
+
0.0,
|
167 |
+
1.0,
|
168 |
+
0.0
|
169 |
+
],
|
170 |
+
[
|
171 |
+
0.7071067811865476,
|
172 |
+
-0.7071067811865476,
|
173 |
+
0.0,
|
174 |
+
0.0,
|
175 |
+
0.7071067811865476,
|
176 |
+
0.7071067811865476,
|
177 |
+
0.0,
|
178 |
+
0.0,
|
179 |
+
0.0,
|
180 |
+
0.0,
|
181 |
+
1.0,
|
182 |
+
0.0
|
183 |
+
],
|
184 |
+
[
|
185 |
+
0.659345815100069,
|
186 |
+
-0.7518398074789773,
|
187 |
+
0.0,
|
188 |
+
0.0,
|
189 |
+
0.7518398074789773,
|
190 |
+
0.659345815100069,
|
191 |
+
0.0,
|
192 |
+
0.0,
|
193 |
+
0.0,
|
194 |
+
0.0,
|
195 |
+
1.0,
|
196 |
+
0.0
|
197 |
+
],
|
198 |
+
[
|
199 |
+
0.6087614290087207,
|
200 |
+
-0.7933533402912352,
|
201 |
+
0.0,
|
202 |
+
0.0,
|
203 |
+
0.7933533402912352,
|
204 |
+
0.6087614290087207,
|
205 |
+
0.0,
|
206 |
+
0.0,
|
207 |
+
0.0,
|
208 |
+
0.0,
|
209 |
+
1.0,
|
210 |
+
0.0
|
211 |
+
],
|
212 |
+
[
|
213 |
+
0.5555702330196024,
|
214 |
+
-0.8314696123025451,
|
215 |
+
0.0,
|
216 |
+
0.0,
|
217 |
+
0.8314696123025451,
|
218 |
+
0.5555702330196024,
|
219 |
+
0.0,
|
220 |
+
0.0,
|
221 |
+
0.0,
|
222 |
+
0.0,
|
223 |
+
1.0,
|
224 |
+
0.0
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_SPIN-CW-60.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.0,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.0,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
0.0
|
15 |
+
],
|
16 |
+
[
|
17 |
+
0.9978589232386035,
|
18 |
+
0.06540312923014306,
|
19 |
+
0.0,
|
20 |
+
0.0,
|
21 |
+
-0.06540312923014306,
|
22 |
+
0.9978589232386035,
|
23 |
+
0.0,
|
24 |
+
0.0,
|
25 |
+
0.0,
|
26 |
+
0.0,
|
27 |
+
1.0,
|
28 |
+
0.0
|
29 |
+
],
|
30 |
+
[
|
31 |
+
0.9914448613738104,
|
32 |
+
0.13052619222005157,
|
33 |
+
0.0,
|
34 |
+
0.0,
|
35 |
+
-0.13052619222005157,
|
36 |
+
0.9914448613738104,
|
37 |
+
0.0,
|
38 |
+
0.0,
|
39 |
+
0.0,
|
40 |
+
0.0,
|
41 |
+
1.0,
|
42 |
+
0.0
|
43 |
+
],
|
44 |
+
[
|
45 |
+
0.9807852804032304,
|
46 |
+
0.19509032201612825,
|
47 |
+
0.0,
|
48 |
+
0.0,
|
49 |
+
-0.19509032201612825,
|
50 |
+
0.9807852804032304,
|
51 |
+
0.0,
|
52 |
+
0.0,
|
53 |
+
0.0,
|
54 |
+
0.0,
|
55 |
+
1.0,
|
56 |
+
0.0
|
57 |
+
],
|
58 |
+
[
|
59 |
+
0.9659258262890683,
|
60 |
+
0.25881904510252074,
|
61 |
+
0.0,
|
62 |
+
0.0,
|
63 |
+
-0.25881904510252074,
|
64 |
+
0.9659258262890683,
|
65 |
+
0.0,
|
66 |
+
0.0,
|
67 |
+
0.0,
|
68 |
+
0.0,
|
69 |
+
1.0,
|
70 |
+
0.0
|
71 |
+
],
|
72 |
+
[
|
73 |
+
0.9469301294951057,
|
74 |
+
0.32143946530316153,
|
75 |
+
0.0,
|
76 |
+
0.0,
|
77 |
+
-0.32143946530316153,
|
78 |
+
0.9469301294951057,
|
79 |
+
0.0,
|
80 |
+
0.0,
|
81 |
+
0.0,
|
82 |
+
0.0,
|
83 |
+
1.0,
|
84 |
+
0.0
|
85 |
+
],
|
86 |
+
[
|
87 |
+
0.9238795325112867,
|
88 |
+
0.3826834323650898,
|
89 |
+
0.0,
|
90 |
+
0.0,
|
91 |
+
-0.3826834323650898,
|
92 |
+
0.9238795325112867,
|
93 |
+
0.0,
|
94 |
+
0.0,
|
95 |
+
0.0,
|
96 |
+
0.0,
|
97 |
+
1.0,
|
98 |
+
0.0
|
99 |
+
],
|
100 |
+
[
|
101 |
+
0.8968727415326884,
|
102 |
+
0.44228869021900125,
|
103 |
+
0.0,
|
104 |
+
0.0,
|
105 |
+
-0.44228869021900125,
|
106 |
+
0.8968727415326884,
|
107 |
+
0.0,
|
108 |
+
0.0,
|
109 |
+
0.0,
|
110 |
+
0.0,
|
111 |
+
1.0,
|
112 |
+
0.0
|
113 |
+
],
|
114 |
+
[
|
115 |
+
0.8660254037844387,
|
116 |
+
0.49999999999999994,
|
117 |
+
0.0,
|
118 |
+
0.0,
|
119 |
+
-0.49999999999999994,
|
120 |
+
0.8660254037844387,
|
121 |
+
0.0,
|
122 |
+
0.0,
|
123 |
+
0.0,
|
124 |
+
0.0,
|
125 |
+
1.0,
|
126 |
+
0.0
|
127 |
+
],
|
128 |
+
[
|
129 |
+
0.8314696123025452,
|
130 |
+
0.5555702330196022,
|
131 |
+
0.0,
|
132 |
+
0.0,
|
133 |
+
-0.5555702330196022,
|
134 |
+
0.8314696123025452,
|
135 |
+
0.0,
|
136 |
+
0.0,
|
137 |
+
0.0,
|
138 |
+
0.0,
|
139 |
+
1.0,
|
140 |
+
0.0
|
141 |
+
],
|
142 |
+
[
|
143 |
+
0.7933533402912353,
|
144 |
+
0.6087614290087205,
|
145 |
+
0.0,
|
146 |
+
0.0,
|
147 |
+
-0.6087614290087205,
|
148 |
+
0.7933533402912353,
|
149 |
+
0.0,
|
150 |
+
0.0,
|
151 |
+
0.0,
|
152 |
+
0.0,
|
153 |
+
1.0,
|
154 |
+
0.0
|
155 |
+
],
|
156 |
+
[
|
157 |
+
0.7518398074789774,
|
158 |
+
0.6593458151000688,
|
159 |
+
0.0,
|
160 |
+
0.0,
|
161 |
+
-0.6593458151000688,
|
162 |
+
0.7518398074789774,
|
163 |
+
0.0,
|
164 |
+
0.0,
|
165 |
+
0.0,
|
166 |
+
0.0,
|
167 |
+
1.0,
|
168 |
+
0.0
|
169 |
+
],
|
170 |
+
[
|
171 |
+
0.7071067811865476,
|
172 |
+
0.7071067811865476,
|
173 |
+
0.0,
|
174 |
+
0.0,
|
175 |
+
-0.7071067811865476,
|
176 |
+
0.7071067811865476,
|
177 |
+
0.0,
|
178 |
+
0.0,
|
179 |
+
0.0,
|
180 |
+
0.0,
|
181 |
+
1.0,
|
182 |
+
0.0
|
183 |
+
],
|
184 |
+
[
|
185 |
+
0.659345815100069,
|
186 |
+
0.7518398074789773,
|
187 |
+
0.0,
|
188 |
+
0.0,
|
189 |
+
-0.7518398074789773,
|
190 |
+
0.659345815100069,
|
191 |
+
0.0,
|
192 |
+
0.0,
|
193 |
+
0.0,
|
194 |
+
0.0,
|
195 |
+
1.0,
|
196 |
+
0.0
|
197 |
+
],
|
198 |
+
[
|
199 |
+
0.6087614290087207,
|
200 |
+
0.7933533402912352,
|
201 |
+
0.0,
|
202 |
+
0.0,
|
203 |
+
-0.7933533402912352,
|
204 |
+
0.6087614290087207,
|
205 |
+
0.0,
|
206 |
+
0.0,
|
207 |
+
0.0,
|
208 |
+
0.0,
|
209 |
+
1.0,
|
210 |
+
0.0
|
211 |
+
],
|
212 |
+
[
|
213 |
+
0.5555702330196024,
|
214 |
+
0.8314696123025451,
|
215 |
+
0.0,
|
216 |
+
0.0,
|
217 |
+
-0.8314696123025451,
|
218 |
+
0.5555702330196024,
|
219 |
+
0.0,
|
220 |
+
0.0,
|
221 |
+
0.0,
|
222 |
+
0.0,
|
223 |
+
1.0,
|
224 |
+
0.0
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_U.json
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
[
|
3 |
+
1.0,
|
4 |
+
0.0,
|
5 |
+
0.0,
|
6 |
+
0.0,
|
7 |
+
0.0,
|
8 |
+
1.0,
|
9 |
+
0.0,
|
10 |
+
0.2,
|
11 |
+
0.0,
|
12 |
+
0.0,
|
13 |
+
1.0,
|
14 |
+
0.0
|
15 |
+
],
|
16 |
+
[
|
17 |
+
1.0,
|
18 |
+
0.0,
|
19 |
+
0.0,
|
20 |
+
0.0,
|
21 |
+
0.0,
|
22 |
+
1.0,
|
23 |
+
0.0,
|
24 |
+
0.28750000000000003,
|
25 |
+
0.0,
|
26 |
+
0.0,
|
27 |
+
1.0,
|
28 |
+
0.0
|
29 |
+
],
|
30 |
+
[
|
31 |
+
1.0,
|
32 |
+
0.0,
|
33 |
+
0.0,
|
34 |
+
0.0,
|
35 |
+
0.0,
|
36 |
+
1.0,
|
37 |
+
0.0,
|
38 |
+
0.37500000000000006,
|
39 |
+
0.0,
|
40 |
+
0.0,
|
41 |
+
1.0,
|
42 |
+
0.0
|
43 |
+
],
|
44 |
+
[
|
45 |
+
1.0,
|
46 |
+
0.0,
|
47 |
+
0.0,
|
48 |
+
0.0,
|
49 |
+
0.0,
|
50 |
+
1.0,
|
51 |
+
0.0,
|
52 |
+
0.4625000000000001,
|
53 |
+
0.0,
|
54 |
+
0.0,
|
55 |
+
1.0,
|
56 |
+
0.0
|
57 |
+
],
|
58 |
+
[
|
59 |
+
1.0,
|
60 |
+
0.0,
|
61 |
+
0.0,
|
62 |
+
0.0,
|
63 |
+
0.0,
|
64 |
+
1.0,
|
65 |
+
0.0,
|
66 |
+
0.55,
|
67 |
+
0.0,
|
68 |
+
0.0,
|
69 |
+
1.0,
|
70 |
+
0.0
|
71 |
+
],
|
72 |
+
[
|
73 |
+
1.0,
|
74 |
+
0.0,
|
75 |
+
0.0,
|
76 |
+
0.0,
|
77 |
+
0.0,
|
78 |
+
1.0,
|
79 |
+
0.0,
|
80 |
+
0.6375000000000002,
|
81 |
+
0.0,
|
82 |
+
0.0,
|
83 |
+
1.0,
|
84 |
+
0.0
|
85 |
+
],
|
86 |
+
[
|
87 |
+
1.0,
|
88 |
+
0.0,
|
89 |
+
0.0,
|
90 |
+
0.0,
|
91 |
+
0.0,
|
92 |
+
1.0,
|
93 |
+
0.0,
|
94 |
+
0.7250000000000001,
|
95 |
+
0.0,
|
96 |
+
0.0,
|
97 |
+
1.0,
|
98 |
+
0.0
|
99 |
+
],
|
100 |
+
[
|
101 |
+
1.0,
|
102 |
+
0.0,
|
103 |
+
0.0,
|
104 |
+
0.0,
|
105 |
+
0.0,
|
106 |
+
1.0,
|
107 |
+
0.0,
|
108 |
+
0.8125000000000002,
|
109 |
+
0.0,
|
110 |
+
0.0,
|
111 |
+
1.0,
|
112 |
+
0.0
|
113 |
+
],
|
114 |
+
[
|
115 |
+
1.0,
|
116 |
+
0.0,
|
117 |
+
0.0,
|
118 |
+
0.0,
|
119 |
+
0.0,
|
120 |
+
1.0,
|
121 |
+
0.0,
|
122 |
+
0.9000000000000001,
|
123 |
+
0.0,
|
124 |
+
0.0,
|
125 |
+
1.0,
|
126 |
+
0.0
|
127 |
+
],
|
128 |
+
[
|
129 |
+
1.0,
|
130 |
+
0.0,
|
131 |
+
0.0,
|
132 |
+
0.0,
|
133 |
+
0.0,
|
134 |
+
1.0,
|
135 |
+
0.0,
|
136 |
+
0.9875000000000003,
|
137 |
+
0.0,
|
138 |
+
0.0,
|
139 |
+
1.0,
|
140 |
+
0.0
|
141 |
+
],
|
142 |
+
[
|
143 |
+
1.0,
|
144 |
+
0.0,
|
145 |
+
0.0,
|
146 |
+
0.0,
|
147 |
+
0.0,
|
148 |
+
1.0,
|
149 |
+
0.0,
|
150 |
+
1.0750000000000002,
|
151 |
+
0.0,
|
152 |
+
0.0,
|
153 |
+
1.0,
|
154 |
+
0.0
|
155 |
+
],
|
156 |
+
[
|
157 |
+
1.0,
|
158 |
+
0.0,
|
159 |
+
0.0,
|
160 |
+
0.0,
|
161 |
+
0.0,
|
162 |
+
1.0,
|
163 |
+
0.0,
|
164 |
+
1.1625000000000003,
|
165 |
+
0.0,
|
166 |
+
0.0,
|
167 |
+
1.0,
|
168 |
+
0.0
|
169 |
+
],
|
170 |
+
[
|
171 |
+
1.0,
|
172 |
+
0.0,
|
173 |
+
0.0,
|
174 |
+
0.0,
|
175 |
+
0.0,
|
176 |
+
1.0,
|
177 |
+
0.0,
|
178 |
+
1.2500000000000002,
|
179 |
+
0.0,
|
180 |
+
0.0,
|
181 |
+
1.0,
|
182 |
+
0.0
|
183 |
+
],
|
184 |
+
[
|
185 |
+
1.0,
|
186 |
+
0.0,
|
187 |
+
0.0,
|
188 |
+
0.0,
|
189 |
+
0.0,
|
190 |
+
1.0,
|
191 |
+
0.0,
|
192 |
+
1.3375000000000001,
|
193 |
+
0.0,
|
194 |
+
0.0,
|
195 |
+
1.0,
|
196 |
+
0.0
|
197 |
+
],
|
198 |
+
[
|
199 |
+
1.0,
|
200 |
+
0.0,
|
201 |
+
0.0,
|
202 |
+
0.0,
|
203 |
+
0.0,
|
204 |
+
1.0,
|
205 |
+
0.0,
|
206 |
+
1.4250000000000003,
|
207 |
+
0.0,
|
208 |
+
0.0,
|
209 |
+
1.0,
|
210 |
+
0.0
|
211 |
+
],
|
212 |
+
[
|
213 |
+
1.0,
|
214 |
+
0.0,
|
215 |
+
0.0,
|
216 |
+
0.0,
|
217 |
+
0.0,
|
218 |
+
1.0,
|
219 |
+
0.0,
|
220 |
+
1.5125000000000004,
|
221 |
+
0.0,
|
222 |
+
0.0,
|
223 |
+
1.0,
|
224 |
+
0.0
|
225 |
+
]
|
226 |
+
]
|
examples/camera_poses/test_camera_b133a504fc90a2d1.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
[[0.9999999403953552, -3.2563843288535566e-10, 8.624932434919685e-10, -5.431840754965833e-09, -3.2563843288535566e-10, 1.0, -7.078895802870022e-10, -2.678919752696629e-09, 8.624932434919685e-10, -7.078895802870022e-10, 1.0, 7.303774474110014e-09], [0.9999998807907104, 0.00026603759033605456, -0.0003414043167140335, -0.030107486993074417, -0.0002659278397914022, 0.9999999403953552, 0.00032293255208060145, 0.011978899128735065, 0.0003414914826862514, -0.0003228419227525592, 0.9999999403953552, -0.07893969118595123], [0.9999994039535522, -0.0006866907933726907, -0.0008186722989194095, -0.050785429775714874, 0.0006877407431602478, 0.9999989867210388, 0.0012827541213482618, 0.023323407396674156, 0.0008177922572940588, -0.0012833180371671915, 0.9999988675117493, -0.1486724615097046], [0.999999463558197, -0.0005364732351154089, -0.0008647883078083396, -0.0673225075006485, 0.0005379383219406009, 0.9999984502792358, 0.0016958877677097917, 0.03169107437133789, 0.0008638793369755149, -0.0016963522648438811, 0.9999982118606567, -0.21477271616458893], [0.9999995231628418, -0.0005853328038938344, 0.000731398060452193, -0.08539554476737976, 0.0005843221442773938, 0.9999988675117493, 0.0013807439245283604, 0.037947509437799454, -0.0007322035962715745, -0.0013803173787891865, 0.9999987483024597, -0.2858566641807556], [0.9999935030937195, -0.0007727851625531912, 0.00352613371796906, -0.10591986775398254, 0.0007684561423957348, 0.9999989867210388, 0.0012290359009057283, 0.0426139310002327, -0.003527079476043582, -0.0012263187672942877, 0.999993085861206, -0.3645589053630829], [0.9999805688858032, -0.0012497249990701675, 0.006103655323386192, -0.12257411330938339, 0.0012419418198987842, 0.9999984502792358, 0.001278668874874711, 0.05143251642584801, -0.006105243694037199, -0.0012710647424682975, 0.9999805688858032, -0.44212815165519714], [0.9999697804450989, -0.001364423311315477, 0.0076533216051757336, -0.13916294276714325, 0.0013530527940019965, 0.9999980330467224, 0.0014907552395015955, 0.06076823174953461, -0.0076553407125175, -0.0014803558588027954, 0.9999696016311646, -0.5131306648254395], [0.9999656081199646, -0.001309191924519837, 0.00818517804145813, -0.1577269434928894, 0.0012902054004371166, 0.9999964833259583, 0.0023244714830070734, 0.07221967726945877, -0.008188189007341862, -0.0023138325195759535, 0.9999638199806213, -0.5706046223640442], [0.9999715089797974, -0.000632039678748697, 0.0075194560922682285, -0.1842648684978485, 0.0006101227481849492, 0.9999955892562866, 0.002916603581979871, 0.0780157595872879, -0.0075212628580629826, -0.0029119334649294615, 0.9999675154685974, -0.6207911372184753], [0.999971330165863, 9.749359742272645e-05, 0.007570990361273289, -0.2200128734111786, -0.00012177121971035376, 0.9999948740005493, 0.0032062893733382225, 0.07083319127559662, -0.007570638321340084, -0.003207120578736067, 0.9999662041664124, -0.671477735042572], [0.9999842047691345, 0.0011085873702540994, 0.005505275446921587, -0.265299528837204, -0.0011242963373661041, 0.9999953508377075, 0.002851187251508236, 0.06430258601903915, -0.00550208892673254, -0.002857332583516836, 0.9999808073043823, -0.7294802069664001], [0.9999891519546509, 0.0030521126464009285, -0.003507567336782813, -0.3109421133995056, -0.0030410285107791424, 0.9999904632568359, 0.003161099273711443, 0.06503432989120483, 0.003517185803502798, -0.0031503995414823294, 0.999988853931427, -0.7917969226837158], [0.9995473623275757, 0.00647346256300807, -0.029379382729530334, -0.3455933630466461, -0.006376372650265694, 0.9999739527702332, 0.0033971993252635, 0.06981948018074036, 0.02940060943365097, -0.003208327107131481, 0.9995625615119934, -0.8474093675613403], [0.9966378808021545, 0.011493867263197899, -0.08112204819917679, -0.3555213510990143, -0.011167873628437519, 0.9999276399612427, 0.004471173509955406, 0.0734858587384224, 0.08116757124662399, -0.00355018163099885, 0.9966941475868225, -0.9062771201133728], [0.9889613389968872, 0.01762101612985134, -0.14712226390838623, -0.33937495946884155, -0.01693679392337799, 0.999839186668396, 0.0059022014029324055, 0.0776127353310585, 0.14720259606838226, -0.0033452697098255157, 0.9891006946563721, -0.9548948407173157]]
|
examples/camera_poses/test_camera_d9642c8efc01481d.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
[[1.0, -1.4532828274127496e-09, 3.928266045782891e-10, -8.700192566379883e-09, -1.4532828274127496e-09, 1.0, -1.7456260048565042e-10, 9.261455491405002e-11, 3.928266045782891e-10, -1.7456260048565042e-10, 1.0, -1.5881864712241622e-08], [0.9850640296936035, -0.04082970321178436, 0.16727784276008606, 0.20439539849758148, 0.03502606600522995, 0.9986825585365295, 0.03750050067901611, -0.15185177326202393, -0.16858860850334167, -0.03108130767941475, 0.9851963520050049, 0.10121102631092072], [0.9168016910552979, -0.09482394903898239, 0.387921541929245, 0.44365406036376953, 0.06679922342300415, 0.9941277503967285, 0.08513444662094116, -0.26796984672546387, -0.39371633529663086, -0.0521385557949543, 0.9177521467208862, 0.06753730028867722], [0.7643709182739258, -0.15802493691444397, 0.6251122951507568, 0.6479341983795166, 0.09576083719730377, 0.9865723252296448, 0.13230620324611664, -0.33551496267318726, -0.6376261115074158, -0.04126973822712898, 0.7692397236824036, -0.07632352411746979], [0.5624101758003235, -0.2065712958574295, 0.8006392121315002, 0.8095709085464478, 0.10458854585886002, 0.9782856106758118, 0.17893710732460022, -0.3449772298336029, -0.8202170729637146, -0.016898371279239655, 0.5718027949333191, -0.267223596572876], [0.3860713243484497, -0.23765023052692413, 0.8913311958312988, 1.017128586769104, 0.10842984914779663, 0.9712379574775696, 0.21198998391628265, -0.34939509630203247, -0.9160742163658142, 0.014803661964833736, 0.4007355272769928, -0.5046621561050415], [0.25270596146583557, -0.2560441493988037, 0.9330493807792664, 1.2611535787582397, 0.09987718611955643, 0.9661006331443787, 0.23806333541870117, -0.36809343099594116, -0.9623742699623108, 0.03303031623363495, 0.26971235871315, -0.8164812922477722], [0.12896282970905304, -0.26742202043533325, 0.9549105167388916, 1.4084848165512085, 0.09037449955940247, 0.9621138572692871, 0.25723403692245483, -0.3597045838832855, -0.9875227212905884, 0.05312592536211014, 0.14824506640434265, -1.1886308193206787], [-0.037818778306245804, -0.2752484083175659, 0.9606289863586426, 1.3755683898925781, 0.08146493136882782, 0.957267701625824, 0.277492493391037, -0.353816956281662, -0.9959584474563599, 0.08875200152397156, -0.013779602944850922, -1.6891316175460815], [-0.1970304548740387, -0.2752428948879242, 0.9409677982330322, 1.1786020994186401, 0.07280438393354416, 0.9530242681503296, 0.2940141260623932, -0.36850038170814514, -0.9776904582977295, 0.12643630802631378, -0.16773590445518494, -2.261430025100708], [-0.3677733540534973, -0.26668044924736023, 0.8908559679985046, 0.8089978098869324, 0.06243090331554413, 0.9487544894218445, 0.30978602170944214, -0.37012383341789246, -0.9278174042701721, 0.16954797506332397, -0.33227747678756714, -2.8139760494232178], [-0.5150132775306702, -0.2527574300765991, 0.8190696835517883, 0.4462648332118988, 0.050335872918367386, 0.9449706673622131, 0.32325950264930725, -0.381427526473999, -0.8557030558586121, 0.20771150290966034, -0.473949670791626, -3.2886314392089844], [-0.6352092623710632, -0.23657281696796417, 0.7352160215377808, 0.0826139897108078, 0.036419764161109924, 0.9416990280151367, 0.33447936177253723, -0.3719184398651123, -0.771480917930603, 0.23924078047275543, -0.5895600318908691, -3.677316904067993], [-0.7218965888023376, -0.21918001770973206, 0.6563730239868164, -0.2607730031013489, 0.024064550176262856, 0.9399895071983337, 0.340353786945343, -0.359468549489975, -0.6915825009346008, 0.26149556040763855, -0.6733006834983826, -3.9900803565979004], [-0.7831082344055176, -0.2019210308790207, 0.5881916880607605, -0.609000563621521, 0.015634668990969658, 0.9391284584999084, 0.3432103097438812, -0.35386255383491516, -0.621688961982727, 0.2779669761657715, -0.732282280921936, -4.316582202911377], [-0.8348898887634277, -0.1848600059747696, 0.5184455513954163, -0.9689992070198059, 0.007868430577218533, 0.93780916929245, 0.3470619320869446, -0.3402447998523712, -0.5503608584403992, 0.2938378155231476, -0.7815127968788147, -4.561704635620117]]
|
examples/camera_poses/test_camera_d971457c81bca597.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
[[1.0, -1.9455232563858615e-11, -8.611562019034125e-10, -1.0473515388298438e-09, -1.9455232563858615e-11, 1.0, 8.674055917978762e-10, 1.8375034827045056e-09, -8.611562019034125e-10, 8.674055917978762e-10, 1.0, 8.45981773522908e-09], [0.9973401427268982, -0.0032562706619501114, 0.07281485944986343, -0.07197967171669006, 0.00329946493729949, 0.9999944567680359, -0.00047293686657212675, -0.0565447174012661, -0.07281292229890823, 0.0007119301008060575, 0.9973453879356384, -0.3188611567020416], [0.9906007051467896, -0.0066957552917301655, 0.13662146031856537, -0.15415722131729126, 0.006810691673308611, 0.9999766945838928, -0.00037385127507150173, -0.10014614462852478, -0.1366157978773117, 0.0013008243404328823, 0.9906232953071594, -0.6077051758766174], [0.9827210903167725, -0.009423106908798218, 0.18485280871391296, -0.23053960502147675, 0.009786692447960377, 0.9999515414237976, -0.0010545575059950352, -0.11272216588258743, -0.18483391404151917, 0.002845433307811618, 0.9827656745910645, -0.8897562623023987], [0.9756309986114502, -0.011318936944007874, 0.2191258817911148, -0.2929331362247467, 0.01199379749596119, 0.9999265670776367, -0.0017497432418167591, -0.10348402708768845, -0.21908999979496002, 0.004335256293416023, 0.9756950736045837, -1.1368639469146729], [0.9685831069946289, -0.012191502377390862, 0.24839124083518982, -0.379209041595459, 0.013217172585427761, 0.9999096393585205, -0.0024619612377136946, -0.12078691273927689, -0.24833877384662628, 0.005667644087225199, 0.9686566591262817, -1.3666095733642578], [0.9615083932876587, -0.012519675306975842, 0.2744903266429901, -0.5242342352867126, 0.013806014321744442, 0.9999009370803833, -0.0027547888457775116, -0.13015854358673096, -0.2744286358356476, 0.006438371259719133, 0.9615859389305115, -1.5762972831726074], [0.9528889656066895, -0.014083069749176502, 0.3029923439025879, -0.6702165007591248, 0.015383570455014706, 0.9998798370361328, -0.0019058430334553123, -0.14860114455223083, -0.3029291331768036, 0.00647716224193573, 0.9529911279678345, -1.7173497676849365], [0.9457509517669678, -0.015159872360527515, 0.3245387375354767, -0.8001917600631714, 0.016729505732655525, 0.9998579621315002, -0.0020466779824346304, -0.15521110594272614, -0.32446160912513733, 0.007365020923316479, 0.9458702206611633, -1.8571592569351196], [0.9417706727981567, -0.015540024265646935, 0.33589670062065125, -0.9244012236595154, 0.017394419759511948, 0.9998455047607422, -0.0025124624371528625, -0.1416105479001999, -0.3358057737350464, 0.008208892308175564, 0.9418954849243164, -1.9969842433929443], [0.9381415247917175, -0.016401933506131172, 0.34586337208747864, -1.0128529071807861, 0.01851990446448326, 0.9998245239257812, -0.0028197101783007383, -0.11503250896930695, -0.3457564413547516, 0.009050644934177399, 0.9382806420326233, -2.080850124359131], [0.9357938766479492, -0.016873901709914207, 0.3521435558795929, -1.1008079051971436, 0.01865064539015293, 0.9998247027397156, -0.0016533475136384368, -0.048780668526887894, -0.3520539104938507, 0.008114897646009922, 0.9359445571899414, -2.088500499725342], [0.9334627985954285, -0.016492612659931183, 0.3582947850227356, -1.2417148351669312, 0.017931735143065453, 0.9998390078544617, -0.0006939812446944416, 0.01625901833176613, -0.35822567343711853, 0.007072653621435165, 0.9336082339286804, -2.0250792503356934], [0.9281281232833862, -0.016213543713092804, 0.3719078302383423, -1.4365860223770142, 0.01746317930519581, 0.9998475313186646, 8.084020009846427e-06, 0.060201361775398254, -0.37185123562812805, 0.006487190257757902, 0.9282696843147278, -1.8963005542755127], [0.9220678806304932, -0.017285069450736046, 0.3866421580314636, -1.604330062866211, 0.01880805380642414, 0.9998230934143066, -0.00015593231364618987, 0.0799601748585701, -0.38657107949256897, 0.007415766827762127, 0.9222298264503479, -1.7388361692428589], [0.9185494184494019, -0.018356993794441223, 0.3948797583580017, -1.7530856132507324, 0.019847355782985687, 0.9998030066490173, 0.0003104731731582433, 0.10000917315483093, -0.3948076665401459, 0.007552135270088911, 0.9187328219413757, -1.5337872505187988]]
|
examples/trajectories/curve_1.txt
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
88, 173
|
2 |
+
89, 173
|
3 |
+
91, 173
|
4 |
+
92, 173
|
5 |
+
93, 173
|
6 |
+
93, 174
|
7 |
+
95, 175
|
8 |
+
97, 176
|
9 |
+
98, 176
|
10 |
+
100, 178
|
11 |
+
103, 180
|
12 |
+
104, 181
|
13 |
+
105, 181
|
14 |
+
106, 182
|
15 |
+
107, 182
|
16 |
+
108, 182
|
17 |
+
110, 184
|
18 |
+
111, 185
|
19 |
+
113, 186
|
20 |
+
115, 186
|
21 |
+
116, 187
|
22 |
+
116, 188
|
23 |
+
119, 189
|
24 |
+
122, 190
|
25 |
+
125, 191
|
26 |
+
128, 192
|
27 |
+
129, 192
|
28 |
+
130, 192
|
29 |
+
133, 193
|
30 |
+
134, 193
|
31 |
+
140, 194
|
32 |
+
146, 194
|
33 |
+
150, 194
|
34 |
+
151, 194
|
35 |
+
153, 194
|
36 |
+
155, 194
|
37 |
+
156, 194
|
38 |
+
157, 194
|
39 |
+
158, 194
|
40 |
+
159, 194
|
41 |
+
162, 193
|
42 |
+
165, 192
|
43 |
+
168, 191
|
44 |
+
169, 190
|
45 |
+
170, 190
|
46 |
+
172, 189
|
47 |
+
173, 188
|
48 |
+
173, 187
|
49 |
+
174, 187
|
50 |
+
175, 186
|
51 |
+
178, 185
|
52 |
+
179, 183
|
53 |
+
180, 183
|
54 |
+
181, 183
|
55 |
+
183, 181
|
56 |
+
185, 180
|
57 |
+
185, 179
|
58 |
+
185, 179
|
59 |
+
185, 179
|
examples/trajectories/curve_2.txt
ADDED
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
206, 146
|
2 |
+
206, 147
|
3 |
+
205, 149
|
4 |
+
204, 151
|
5 |
+
203, 151
|
6 |
+
202, 154
|
7 |
+
201, 156
|
8 |
+
200, 159
|
9 |
+
199, 161
|
10 |
+
198, 163
|
11 |
+
197, 164
|
12 |
+
197, 165
|
13 |
+
197, 166
|
14 |
+
195, 168
|
15 |
+
193, 171
|
16 |
+
191, 173
|
17 |
+
189, 176
|
18 |
+
188, 177
|
19 |
+
187, 178
|
20 |
+
187, 179
|
21 |
+
186, 180
|
22 |
+
185, 181
|
23 |
+
184, 181
|
24 |
+
184, 182
|
25 |
+
182, 184
|
26 |
+
180, 186
|
27 |
+
179, 187
|
28 |
+
177, 189
|
29 |
+
175, 191
|
30 |
+
174, 191
|
31 |
+
173, 192
|
32 |
+
172, 193
|
33 |
+
171, 193
|
34 |
+
169, 195
|
35 |
+
167, 197
|
36 |
+
164, 198
|
37 |
+
161, 200
|
38 |
+
160, 201
|
39 |
+
158, 202
|
40 |
+
156, 204
|
41 |
+
155, 204
|
42 |
+
154, 204
|
43 |
+
153, 205
|
44 |
+
151, 206
|
45 |
+
150, 206
|
46 |
+
149, 206
|
47 |
+
147, 207
|
48 |
+
146, 207
|
49 |
+
143, 209
|
50 |
+
139, 210
|
51 |
+
138, 210
|
52 |
+
135, 211
|
53 |
+
135, 212
|
54 |
+
134, 212
|
55 |
+
133, 212
|
56 |
+
132, 212
|
57 |
+
131, 212
|
58 |
+
130, 212
|
59 |
+
129, 212
|
60 |
+
128, 212
|
61 |
+
127, 212
|
62 |
+
126, 213
|
63 |
+
124, 213
|
64 |
+
122, 213
|
65 |
+
120, 213
|
66 |
+
120, 214
|
67 |
+
119, 214
|
68 |
+
118, 214
|
69 |
+
116, 214
|
70 |
+
115, 214
|
71 |
+
114, 214
|
72 |
+
113, 214
|
73 |
+
112, 214
|
74 |
+
111, 214
|
75 |
+
110, 214
|
76 |
+
110, 215
|
77 |
+
109, 215
|
78 |
+
108, 215
|
79 |
+
108, 215
|
80 |
+
108, 215
|
examples/trajectories/curve_3.txt
ADDED
@@ -0,0 +1,150 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
73, 149
|
2 |
+
74, 149
|
3 |
+
76, 149
|
4 |
+
82, 149
|
5 |
+
83, 149
|
6 |
+
90, 149
|
7 |
+
98, 149
|
8 |
+
102, 149
|
9 |
+
104, 149
|
10 |
+
105, 149
|
11 |
+
106, 150
|
12 |
+
108, 152
|
13 |
+
111, 154
|
14 |
+
114, 157
|
15 |
+
116, 158
|
16 |
+
117, 160
|
17 |
+
118, 161
|
18 |
+
119, 164
|
19 |
+
121, 166
|
20 |
+
122, 168
|
21 |
+
122, 169
|
22 |
+
123, 171
|
23 |
+
123, 172
|
24 |
+
124, 174
|
25 |
+
125, 177
|
26 |
+
126, 179
|
27 |
+
126, 181
|
28 |
+
126, 183
|
29 |
+
126, 184
|
30 |
+
126, 185
|
31 |
+
127, 186
|
32 |
+
127, 187
|
33 |
+
127, 188
|
34 |
+
127, 189
|
35 |
+
127, 190
|
36 |
+
127, 191
|
37 |
+
128, 192
|
38 |
+
128, 193
|
39 |
+
129, 194
|
40 |
+
130, 196
|
41 |
+
130, 197
|
42 |
+
131, 198
|
43 |
+
131, 199
|
44 |
+
134, 201
|
45 |
+
135, 202
|
46 |
+
137, 203
|
47 |
+
138, 204
|
48 |
+
139, 204
|
49 |
+
139, 205
|
50 |
+
140, 206
|
51 |
+
142, 206
|
52 |
+
142, 207
|
53 |
+
147, 209
|
54 |
+
151, 211
|
55 |
+
153, 212
|
56 |
+
154, 212
|
57 |
+
156, 212
|
58 |
+
158, 213
|
59 |
+
159, 214
|
60 |
+
161, 214
|
61 |
+
162, 214
|
62 |
+
163, 214
|
63 |
+
164, 214
|
64 |
+
165, 214
|
65 |
+
167, 214
|
66 |
+
168, 214
|
67 |
+
169, 214
|
68 |
+
170, 214
|
69 |
+
171, 214
|
70 |
+
172, 213
|
71 |
+
173, 213
|
72 |
+
175, 212
|
73 |
+
176, 212
|
74 |
+
177, 212
|
75 |
+
178, 211
|
76 |
+
179, 211
|
77 |
+
179, 208
|
78 |
+
182, 205
|
79 |
+
184, 203
|
80 |
+
184, 202
|
81 |
+
186, 200
|
82 |
+
187, 199
|
83 |
+
187, 198
|
84 |
+
188, 196
|
85 |
+
190, 194
|
86 |
+
192, 191
|
87 |
+
193, 189
|
88 |
+
193, 188
|
89 |
+
194, 188
|
90 |
+
194, 187
|
91 |
+
195, 184
|
92 |
+
196, 183
|
93 |
+
197, 182
|
94 |
+
197, 180
|
95 |
+
198, 180
|
96 |
+
198, 179
|
97 |
+
199, 178
|
98 |
+
199, 177
|
99 |
+
200, 176
|
100 |
+
200, 175
|
101 |
+
201, 174
|
102 |
+
202, 173
|
103 |
+
203, 171
|
104 |
+
204, 170
|
105 |
+
204, 169
|
106 |
+
205, 169
|
107 |
+
205, 167
|
108 |
+
207, 165
|
109 |
+
208, 163
|
110 |
+
209, 163
|
111 |
+
209, 162
|
112 |
+
210, 162
|
113 |
+
211, 162
|
114 |
+
212, 162
|
115 |
+
213, 162
|
116 |
+
215, 162
|
117 |
+
216, 162
|
118 |
+
217, 163
|
119 |
+
219, 164
|
120 |
+
220, 164
|
121 |
+
221, 165
|
122 |
+
223, 166
|
123 |
+
224, 166
|
124 |
+
224, 167
|
125 |
+
225, 167
|
126 |
+
225, 168
|
127 |
+
226, 169
|
128 |
+
227, 171
|
129 |
+
228, 173
|
130 |
+
228, 174
|
131 |
+
229, 175
|
132 |
+
229, 176
|
133 |
+
229, 177
|
134 |
+
229, 180
|
135 |
+
229, 181
|
136 |
+
229, 182
|
137 |
+
229, 183
|
138 |
+
229, 184
|
139 |
+
229, 185
|
140 |
+
230, 186
|
141 |
+
230, 187
|
142 |
+
230, 187
|
143 |
+
230, 189
|
144 |
+
224, 192
|
145 |
+
223, 193
|
146 |
+
220, 194
|
147 |
+
219, 195
|
148 |
+
218, 195
|
149 |
+
218, 195
|
150 |
+
218, 195
|
examples/trajectories/curve_4.txt
ADDED
@@ -0,0 +1,137 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
176, 109
|
2 |
+
177, 110
|
3 |
+
177, 111
|
4 |
+
177, 112
|
5 |
+
177, 114
|
6 |
+
178, 118
|
7 |
+
179, 122
|
8 |
+
180, 125
|
9 |
+
180, 126
|
10 |
+
180, 127
|
11 |
+
180, 128
|
12 |
+
180, 129
|
13 |
+
180, 130
|
14 |
+
180, 131
|
15 |
+
180, 133
|
16 |
+
180, 134
|
17 |
+
179, 136
|
18 |
+
177, 138
|
19 |
+
177, 139
|
20 |
+
176, 140
|
21 |
+
176, 141
|
22 |
+
174, 143
|
23 |
+
172, 145
|
24 |
+
170, 147
|
25 |
+
170, 148
|
26 |
+
167, 150
|
27 |
+
163, 154
|
28 |
+
159, 158
|
29 |
+
158, 158
|
30 |
+
155, 160
|
31 |
+
154, 161
|
32 |
+
152, 163
|
33 |
+
151, 164
|
34 |
+
149, 165
|
35 |
+
147, 166
|
36 |
+
145, 167
|
37 |
+
143, 169
|
38 |
+
140, 171
|
39 |
+
137, 172
|
40 |
+
135, 174
|
41 |
+
133, 175
|
42 |
+
131, 176
|
43 |
+
130, 176
|
44 |
+
128, 177
|
45 |
+
127, 177
|
46 |
+
125, 178
|
47 |
+
123, 179
|
48 |
+
121, 179
|
49 |
+
119, 179
|
50 |
+
116, 179
|
51 |
+
114, 180
|
52 |
+
112, 180
|
53 |
+
111, 180
|
54 |
+
110, 180
|
55 |
+
108, 180
|
56 |
+
104, 181
|
57 |
+
99, 181
|
58 |
+
95, 181
|
59 |
+
94, 181
|
60 |
+
93, 179
|
61 |
+
92, 179
|
62 |
+
92, 176
|
63 |
+
91, 173
|
64 |
+
91, 171
|
65 |
+
91, 170
|
66 |
+
91, 168
|
67 |
+
91, 165
|
68 |
+
91, 164
|
69 |
+
91, 163
|
70 |
+
91, 162
|
71 |
+
91, 161
|
72 |
+
93, 159
|
73 |
+
94, 159
|
74 |
+
99, 156
|
75 |
+
100, 156
|
76 |
+
105, 153
|
77 |
+
106, 152
|
78 |
+
110, 149
|
79 |
+
112, 148
|
80 |
+
113, 148
|
81 |
+
114, 147
|
82 |
+
115, 146
|
83 |
+
117, 145
|
84 |
+
119, 144
|
85 |
+
120, 144
|
86 |
+
121, 143
|
87 |
+
122, 142
|
88 |
+
123, 142
|
89 |
+
124, 142
|
90 |
+
125, 141
|
91 |
+
126, 141
|
92 |
+
127, 140
|
93 |
+
128, 140
|
94 |
+
128, 139
|
95 |
+
129, 138
|
96 |
+
128, 138
|
97 |
+
126, 137
|
98 |
+
125, 136
|
99 |
+
123, 136
|
100 |
+
122, 136
|
101 |
+
121, 135
|
102 |
+
120, 135
|
103 |
+
119, 135
|
104 |
+
118, 135
|
105 |
+
117, 135
|
106 |
+
116, 135
|
107 |
+
115, 135
|
108 |
+
112, 134
|
109 |
+
111, 134
|
110 |
+
109, 134
|
111 |
+
107, 133
|
112 |
+
104, 133
|
113 |
+
103, 133
|
114 |
+
102, 133
|
115 |
+
100, 133
|
116 |
+
99, 133
|
117 |
+
96, 133
|
118 |
+
94, 133
|
119 |
+
93, 133
|
120 |
+
92, 133
|
121 |
+
91, 133
|
122 |
+
89, 133
|
123 |
+
88, 133
|
124 |
+
87, 133
|
125 |
+
86, 133
|
126 |
+
85, 133
|
127 |
+
84, 133
|
128 |
+
82, 133
|
129 |
+
81, 133
|
130 |
+
80, 133
|
131 |
+
79, 133
|
132 |
+
78, 133
|
133 |
+
77, 133
|
134 |
+
76, 133
|
135 |
+
76, 133
|
136 |
+
76, 133
|
137 |
+
76, 133
|
examples/trajectories/horizon_2.txt
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
121, 124
|
2 |
+
123, 124
|
3 |
+
124, 124
|
4 |
+
125, 124
|
5 |
+
127, 124
|
6 |
+
130, 124
|
7 |
+
131, 124
|
8 |
+
135, 124
|
9 |
+
140, 124
|
10 |
+
143, 124
|
11 |
+
144, 124
|
12 |
+
145, 124
|
13 |
+
149, 124
|
14 |
+
152, 124
|
15 |
+
154, 124
|
16 |
+
155, 124
|
17 |
+
156, 124
|
18 |
+
159, 125
|
19 |
+
160, 125
|
20 |
+
163, 125
|
21 |
+
166, 126
|
22 |
+
168, 126
|
23 |
+
169, 126
|
24 |
+
170, 126
|
25 |
+
173, 126
|
26 |
+
176, 126
|
27 |
+
177, 126
|
28 |
+
178, 126
|
29 |
+
179, 126
|
30 |
+
180, 126
|
31 |
+
181, 126
|
32 |
+
183, 126
|
33 |
+
184, 126
|
34 |
+
185, 126
|
35 |
+
186, 126
|
36 |
+
187, 126
|
37 |
+
188, 126
|
38 |
+
189, 126
|
39 |
+
190, 126
|
40 |
+
191, 126
|
41 |
+
192, 126
|
42 |
+
193, 126
|
43 |
+
194, 126
|
44 |
+
195, 126
|
45 |
+
196, 126
|
46 |
+
196, 126
|
47 |
+
196, 126
|
48 |
+
196, 126
|
examples/trajectories/shake_1.txt
ADDED
@@ -0,0 +1,205 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
103, 89
|
2 |
+
104, 89
|
3 |
+
106, 89
|
4 |
+
107, 89
|
5 |
+
108, 89
|
6 |
+
109, 89
|
7 |
+
110, 89
|
8 |
+
111, 89
|
9 |
+
112, 89
|
10 |
+
113, 89
|
11 |
+
114, 89
|
12 |
+
115, 89
|
13 |
+
116, 89
|
14 |
+
117, 89
|
15 |
+
118, 89
|
16 |
+
119, 89
|
17 |
+
120, 89
|
18 |
+
122, 89
|
19 |
+
123, 89
|
20 |
+
124, 89
|
21 |
+
125, 89
|
22 |
+
126, 89
|
23 |
+
127, 88
|
24 |
+
128, 88
|
25 |
+
129, 88
|
26 |
+
130, 88
|
27 |
+
131, 88
|
28 |
+
133, 87
|
29 |
+
136, 86
|
30 |
+
137, 86
|
31 |
+
138, 86
|
32 |
+
139, 86
|
33 |
+
140, 86
|
34 |
+
141, 86
|
35 |
+
142, 86
|
36 |
+
143, 86
|
37 |
+
144, 86
|
38 |
+
145, 86
|
39 |
+
146, 87
|
40 |
+
147, 87
|
41 |
+
148, 87
|
42 |
+
149, 87
|
43 |
+
148, 87
|
44 |
+
146, 87
|
45 |
+
145, 88
|
46 |
+
144, 88
|
47 |
+
142, 89
|
48 |
+
141, 89
|
49 |
+
140, 90
|
50 |
+
140, 91
|
51 |
+
138, 91
|
52 |
+
137, 92
|
53 |
+
136, 92
|
54 |
+
136, 93
|
55 |
+
135, 93
|
56 |
+
134, 93
|
57 |
+
133, 93
|
58 |
+
132, 93
|
59 |
+
131, 93
|
60 |
+
130, 93
|
61 |
+
129, 93
|
62 |
+
128, 93
|
63 |
+
127, 92
|
64 |
+
125, 92
|
65 |
+
124, 92
|
66 |
+
123, 92
|
67 |
+
122, 92
|
68 |
+
121, 92
|
69 |
+
120, 92
|
70 |
+
119, 92
|
71 |
+
118, 92
|
72 |
+
117, 92
|
73 |
+
116, 92
|
74 |
+
115, 92
|
75 |
+
113, 92
|
76 |
+
112, 92
|
77 |
+
111, 92
|
78 |
+
110, 92
|
79 |
+
109, 92
|
80 |
+
108, 92
|
81 |
+
108, 91
|
82 |
+
108, 90
|
83 |
+
109, 90
|
84 |
+
110, 90
|
85 |
+
111, 89
|
86 |
+
112, 89
|
87 |
+
113, 89
|
88 |
+
114, 89
|
89 |
+
115, 89
|
90 |
+
115, 88
|
91 |
+
116, 88
|
92 |
+
117, 88
|
93 |
+
118, 88
|
94 |
+
118, 87
|
95 |
+
119, 87
|
96 |
+
120, 87
|
97 |
+
121, 87
|
98 |
+
122, 86
|
99 |
+
123, 86
|
100 |
+
124, 86
|
101 |
+
125, 86
|
102 |
+
126, 85
|
103 |
+
127, 85
|
104 |
+
128, 85
|
105 |
+
129, 85
|
106 |
+
130, 85
|
107 |
+
131, 85
|
108 |
+
132, 85
|
109 |
+
133, 85
|
110 |
+
134, 85
|
111 |
+
135, 85
|
112 |
+
136, 85
|
113 |
+
137, 85
|
114 |
+
138, 85
|
115 |
+
139, 85
|
116 |
+
140, 85
|
117 |
+
141, 85
|
118 |
+
142, 85
|
119 |
+
143, 85
|
120 |
+
143, 84
|
121 |
+
144, 84
|
122 |
+
145, 84
|
123 |
+
146, 84
|
124 |
+
147, 84
|
125 |
+
148, 84
|
126 |
+
149, 84
|
127 |
+
148, 84
|
128 |
+
147, 84
|
129 |
+
145, 84
|
130 |
+
144, 84
|
131 |
+
143, 84
|
132 |
+
142, 84
|
133 |
+
141, 84
|
134 |
+
140, 85
|
135 |
+
139, 85
|
136 |
+
138, 85
|
137 |
+
137, 86
|
138 |
+
136, 86
|
139 |
+
136, 87
|
140 |
+
135, 87
|
141 |
+
134, 87
|
142 |
+
133, 87
|
143 |
+
132, 88
|
144 |
+
131, 88
|
145 |
+
130, 88
|
146 |
+
129, 88
|
147 |
+
129, 89
|
148 |
+
128, 89
|
149 |
+
127, 89
|
150 |
+
126, 89
|
151 |
+
125, 89
|
152 |
+
124, 90
|
153 |
+
123, 90
|
154 |
+
122, 90
|
155 |
+
121, 90
|
156 |
+
120, 91
|
157 |
+
119, 91
|
158 |
+
118, 91
|
159 |
+
117, 91
|
160 |
+
116, 91
|
161 |
+
115, 91
|
162 |
+
114, 91
|
163 |
+
113, 91
|
164 |
+
112, 91
|
165 |
+
111, 91
|
166 |
+
110, 91
|
167 |
+
109, 91
|
168 |
+
109, 90
|
169 |
+
108, 90
|
170 |
+
110, 90
|
171 |
+
111, 90
|
172 |
+
113, 90
|
173 |
+
114, 90
|
174 |
+
115, 90
|
175 |
+
116, 90
|
176 |
+
118, 90
|
177 |
+
120, 90
|
178 |
+
121, 90
|
179 |
+
122, 90
|
180 |
+
123, 90
|
181 |
+
124, 90
|
182 |
+
126, 90
|
183 |
+
127, 90
|
184 |
+
128, 90
|
185 |
+
129, 90
|
186 |
+
130, 90
|
187 |
+
131, 90
|
188 |
+
132, 90
|
189 |
+
133, 90
|
190 |
+
134, 90
|
191 |
+
135, 90
|
192 |
+
136, 90
|
193 |
+
137, 90
|
194 |
+
138, 90
|
195 |
+
139, 90
|
196 |
+
140, 90
|
197 |
+
141, 89
|
198 |
+
142, 89
|
199 |
+
143, 89
|
200 |
+
144, 89
|
201 |
+
145, 89
|
202 |
+
146, 89
|
203 |
+
147, 89
|
204 |
+
147, 89
|
205 |
+
147, 89
|
examples/trajectories/shake_2.txt
ADDED
@@ -0,0 +1,156 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
125, 86
|
2 |
+
127, 86
|
3 |
+
129, 86
|
4 |
+
130, 86
|
5 |
+
131, 86
|
6 |
+
133, 86
|
7 |
+
134, 86
|
8 |
+
135, 86
|
9 |
+
137, 86
|
10 |
+
138, 86
|
11 |
+
139, 86
|
12 |
+
140, 86
|
13 |
+
141, 86
|
14 |
+
142, 86
|
15 |
+
141, 86
|
16 |
+
139, 86
|
17 |
+
139, 87
|
18 |
+
138, 87
|
19 |
+
137, 87
|
20 |
+
136, 87
|
21 |
+
135, 87
|
22 |
+
134, 87
|
23 |
+
134, 88
|
24 |
+
133, 88
|
25 |
+
132, 88
|
26 |
+
131, 88
|
27 |
+
130, 88
|
28 |
+
129, 88
|
29 |
+
128, 88
|
30 |
+
127, 88
|
31 |
+
128, 88
|
32 |
+
129, 88
|
33 |
+
130, 88
|
34 |
+
131, 88
|
35 |
+
132, 88
|
36 |
+
133, 88
|
37 |
+
134, 88
|
38 |
+
135, 88
|
39 |
+
136, 88
|
40 |
+
137, 88
|
41 |
+
138, 88
|
42 |
+
139, 88
|
43 |
+
140, 88
|
44 |
+
141, 88
|
45 |
+
140, 88
|
46 |
+
139, 88
|
47 |
+
138, 88
|
48 |
+
136, 88
|
49 |
+
134, 88
|
50 |
+
133, 88
|
51 |
+
131, 88
|
52 |
+
130, 88
|
53 |
+
129, 88
|
54 |
+
128, 88
|
55 |
+
127, 88
|
56 |
+
128, 88
|
57 |
+
129, 88
|
58 |
+
130, 88
|
59 |
+
132, 87
|
60 |
+
133, 87
|
61 |
+
134, 86
|
62 |
+
136, 86
|
63 |
+
137, 86
|
64 |
+
138, 85
|
65 |
+
139, 85
|
66 |
+
140, 85
|
67 |
+
140, 84
|
68 |
+
141, 84
|
69 |
+
139, 85
|
70 |
+
138, 85
|
71 |
+
137, 86
|
72 |
+
136, 86
|
73 |
+
135, 86
|
74 |
+
134, 86
|
75 |
+
133, 86
|
76 |
+
132, 86
|
77 |
+
131, 86
|
78 |
+
130, 86
|
79 |
+
129, 86
|
80 |
+
128, 86
|
81 |
+
127, 86
|
82 |
+
126, 86
|
83 |
+
127, 86
|
84 |
+
129, 86
|
85 |
+
130, 86
|
86 |
+
132, 86
|
87 |
+
133, 86
|
88 |
+
135, 86
|
89 |
+
137, 86
|
90 |
+
138, 86
|
91 |
+
139, 86
|
92 |
+
140, 86
|
93 |
+
141, 87
|
94 |
+
142, 87
|
95 |
+
143, 87
|
96 |
+
144, 88
|
97 |
+
143, 88
|
98 |
+
142, 88
|
99 |
+
141, 88
|
100 |
+
139, 88
|
101 |
+
138, 88
|
102 |
+
137, 88
|
103 |
+
136, 88
|
104 |
+
135, 88
|
105 |
+
134, 88
|
106 |
+
133, 88
|
107 |
+
131, 88
|
108 |
+
130, 88
|
109 |
+
129, 88
|
110 |
+
128, 88
|
111 |
+
127, 88
|
112 |
+
128, 88
|
113 |
+
129, 88
|
114 |
+
130, 88
|
115 |
+
132, 88
|
116 |
+
133, 88
|
117 |
+
134, 88
|
118 |
+
136, 88
|
119 |
+
137, 88
|
120 |
+
138, 88
|
121 |
+
139, 88
|
122 |
+
140, 88
|
123 |
+
141, 88
|
124 |
+
142, 88
|
125 |
+
143, 88
|
126 |
+
144, 88
|
127 |
+
143, 88
|
128 |
+
142, 88
|
129 |
+
141, 88
|
130 |
+
140, 88
|
131 |
+
139, 88
|
132 |
+
138, 88
|
133 |
+
137, 88
|
134 |
+
135, 89
|
135 |
+
135, 90
|
136 |
+
133, 90
|
137 |
+
131, 91
|
138 |
+
130, 91
|
139 |
+
129, 91
|
140 |
+
128, 91
|
141 |
+
127, 91
|
142 |
+
128, 91
|
143 |
+
129, 91
|
144 |
+
130, 91
|
145 |
+
132, 91
|
146 |
+
133, 90
|
147 |
+
134, 89
|
148 |
+
135, 89
|
149 |
+
136, 89
|
150 |
+
137, 89
|
151 |
+
138, 89
|
152 |
+
138, 88
|
153 |
+
139, 88
|
154 |
+
140, 88
|
155 |
+
140, 88
|
156 |
+
140, 88
|
examples/trajectories/shaking_10.txt
ADDED
@@ -0,0 +1,373 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
117, 102
|
2 |
+
114, 102
|
3 |
+
109, 102
|
4 |
+
106, 102
|
5 |
+
105, 102
|
6 |
+
102, 102
|
7 |
+
99, 102
|
8 |
+
97, 102
|
9 |
+
96, 102
|
10 |
+
95, 102
|
11 |
+
93, 102
|
12 |
+
89, 102
|
13 |
+
85, 103
|
14 |
+
82, 103
|
15 |
+
81, 103
|
16 |
+
80, 103
|
17 |
+
79, 103
|
18 |
+
78, 103
|
19 |
+
76, 103
|
20 |
+
74, 104
|
21 |
+
73, 104
|
22 |
+
72, 104
|
23 |
+
71, 104
|
24 |
+
70, 105
|
25 |
+
69, 105
|
26 |
+
68, 105
|
27 |
+
67, 105
|
28 |
+
66, 106
|
29 |
+
64, 107
|
30 |
+
63, 108
|
31 |
+
62, 108
|
32 |
+
61, 108
|
33 |
+
61, 109
|
34 |
+
60, 109
|
35 |
+
59, 109
|
36 |
+
58, 109
|
37 |
+
57, 110
|
38 |
+
56, 110
|
39 |
+
55, 111
|
40 |
+
54, 111
|
41 |
+
53, 111
|
42 |
+
52, 111
|
43 |
+
52, 112
|
44 |
+
51, 112
|
45 |
+
50, 112
|
46 |
+
50, 113
|
47 |
+
49, 113
|
48 |
+
48, 113
|
49 |
+
46, 114
|
50 |
+
46, 115
|
51 |
+
45, 115
|
52 |
+
45, 116
|
53 |
+
44, 116
|
54 |
+
43, 117
|
55 |
+
42, 117
|
56 |
+
41, 117
|
57 |
+
41, 118
|
58 |
+
40, 118
|
59 |
+
41, 118
|
60 |
+
41, 119
|
61 |
+
42, 119
|
62 |
+
43, 119
|
63 |
+
44, 119
|
64 |
+
46, 119
|
65 |
+
47, 119
|
66 |
+
48, 119
|
67 |
+
49, 119
|
68 |
+
50, 119
|
69 |
+
51, 119
|
70 |
+
52, 119
|
71 |
+
53, 119
|
72 |
+
54, 119
|
73 |
+
55, 119
|
74 |
+
56, 118
|
75 |
+
58, 118
|
76 |
+
59, 118
|
77 |
+
61, 118
|
78 |
+
63, 118
|
79 |
+
64, 117
|
80 |
+
67, 117
|
81 |
+
70, 117
|
82 |
+
71, 117
|
83 |
+
73, 117
|
84 |
+
75, 116
|
85 |
+
76, 116
|
86 |
+
77, 116
|
87 |
+
80, 116
|
88 |
+
82, 116
|
89 |
+
83, 116
|
90 |
+
84, 116
|
91 |
+
85, 116
|
92 |
+
88, 116
|
93 |
+
91, 116
|
94 |
+
94, 116
|
95 |
+
97, 116
|
96 |
+
98, 116
|
97 |
+
100, 116
|
98 |
+
101, 117
|
99 |
+
102, 117
|
100 |
+
104, 117
|
101 |
+
105, 117
|
102 |
+
106, 117
|
103 |
+
107, 117
|
104 |
+
108, 117
|
105 |
+
109, 117
|
106 |
+
110, 117
|
107 |
+
111, 117
|
108 |
+
115, 117
|
109 |
+
119, 117
|
110 |
+
123, 117
|
111 |
+
124, 117
|
112 |
+
128, 117
|
113 |
+
129, 117
|
114 |
+
132, 117
|
115 |
+
134, 117
|
116 |
+
135, 117
|
117 |
+
136, 117
|
118 |
+
138, 117
|
119 |
+
139, 117
|
120 |
+
140, 117
|
121 |
+
141, 117
|
122 |
+
142, 116
|
123 |
+
145, 116
|
124 |
+
146, 116
|
125 |
+
148, 116
|
126 |
+
149, 116
|
127 |
+
151, 115
|
128 |
+
152, 115
|
129 |
+
153, 115
|
130 |
+
154, 115
|
131 |
+
155, 114
|
132 |
+
156, 114
|
133 |
+
157, 114
|
134 |
+
158, 114
|
135 |
+
159, 114
|
136 |
+
162, 114
|
137 |
+
163, 113
|
138 |
+
164, 113
|
139 |
+
165, 113
|
140 |
+
166, 113
|
141 |
+
167, 113
|
142 |
+
168, 113
|
143 |
+
169, 113
|
144 |
+
170, 113
|
145 |
+
171, 113
|
146 |
+
172, 113
|
147 |
+
173, 113
|
148 |
+
174, 113
|
149 |
+
175, 113
|
150 |
+
178, 113
|
151 |
+
181, 113
|
152 |
+
182, 113
|
153 |
+
183, 113
|
154 |
+
184, 113
|
155 |
+
185, 113
|
156 |
+
187, 113
|
157 |
+
188, 113
|
158 |
+
189, 113
|
159 |
+
191, 113
|
160 |
+
192, 113
|
161 |
+
193, 113
|
162 |
+
194, 113
|
163 |
+
195, 113
|
164 |
+
196, 113
|
165 |
+
197, 113
|
166 |
+
198, 113
|
167 |
+
199, 113
|
168 |
+
200, 113
|
169 |
+
201, 113
|
170 |
+
202, 113
|
171 |
+
203, 113
|
172 |
+
202, 113
|
173 |
+
201, 113
|
174 |
+
200, 113
|
175 |
+
198, 113
|
176 |
+
197, 113
|
177 |
+
196, 113
|
178 |
+
195, 112
|
179 |
+
194, 112
|
180 |
+
193, 112
|
181 |
+
192, 112
|
182 |
+
191, 111
|
183 |
+
190, 111
|
184 |
+
189, 111
|
185 |
+
188, 110
|
186 |
+
187, 110
|
187 |
+
186, 110
|
188 |
+
185, 110
|
189 |
+
184, 110
|
190 |
+
183, 110
|
191 |
+
182, 110
|
192 |
+
181, 110
|
193 |
+
180, 110
|
194 |
+
179, 110
|
195 |
+
178, 110
|
196 |
+
177, 110
|
197 |
+
175, 110
|
198 |
+
173, 110
|
199 |
+
172, 110
|
200 |
+
171, 110
|
201 |
+
170, 110
|
202 |
+
168, 110
|
203 |
+
167, 110
|
204 |
+
165, 110
|
205 |
+
164, 110
|
206 |
+
163, 110
|
207 |
+
161, 111
|
208 |
+
159, 111
|
209 |
+
155, 111
|
210 |
+
153, 111
|
211 |
+
151, 111
|
212 |
+
151, 112
|
213 |
+
150, 112
|
214 |
+
149, 112
|
215 |
+
148, 112
|
216 |
+
147, 112
|
217 |
+
145, 112
|
218 |
+
143, 113
|
219 |
+
142, 113
|
220 |
+
140, 113
|
221 |
+
139, 113
|
222 |
+
138, 113
|
223 |
+
136, 113
|
224 |
+
135, 113
|
225 |
+
134, 113
|
226 |
+
133, 114
|
227 |
+
131, 114
|
228 |
+
130, 114
|
229 |
+
128, 115
|
230 |
+
127, 115
|
231 |
+
126, 115
|
232 |
+
125, 115
|
233 |
+
124, 115
|
234 |
+
122, 115
|
235 |
+
121, 115
|
236 |
+
120, 115
|
237 |
+
118, 116
|
238 |
+
115, 116
|
239 |
+
113, 116
|
240 |
+
111, 116
|
241 |
+
109, 117
|
242 |
+
106, 117
|
243 |
+
103, 117
|
244 |
+
102, 117
|
245 |
+
100, 117
|
246 |
+
98, 117
|
247 |
+
97, 117
|
248 |
+
95, 117
|
249 |
+
94, 117
|
250 |
+
93, 117
|
251 |
+
92, 117
|
252 |
+
91, 117
|
253 |
+
90, 117
|
254 |
+
89, 117
|
255 |
+
88, 117
|
256 |
+
87, 117
|
257 |
+
86, 117
|
258 |
+
85, 117
|
259 |
+
84, 117
|
260 |
+
83, 117
|
261 |
+
84, 117
|
262 |
+
85, 117
|
263 |
+
87, 117
|
264 |
+
88, 117
|
265 |
+
89, 117
|
266 |
+
90, 117
|
267 |
+
92, 117
|
268 |
+
93, 117
|
269 |
+
95, 117
|
270 |
+
97, 117
|
271 |
+
99, 117
|
272 |
+
101, 117
|
273 |
+
103, 117
|
274 |
+
104, 117
|
275 |
+
105, 117
|
276 |
+
106, 117
|
277 |
+
107, 117
|
278 |
+
108, 117
|
279 |
+
109, 117
|
280 |
+
110, 117
|
281 |
+
112, 117
|
282 |
+
113, 117
|
283 |
+
114, 117
|
284 |
+
116, 117
|
285 |
+
117, 117
|
286 |
+
118, 117
|
287 |
+
119, 117
|
288 |
+
120, 117
|
289 |
+
121, 117
|
290 |
+
123, 117
|
291 |
+
124, 117
|
292 |
+
125, 117
|
293 |
+
126, 117
|
294 |
+
127, 117
|
295 |
+
129, 117
|
296 |
+
130, 117
|
297 |
+
131, 117
|
298 |
+
133, 117
|
299 |
+
134, 117
|
300 |
+
135, 117
|
301 |
+
136, 117
|
302 |
+
137, 117
|
303 |
+
138, 117
|
304 |
+
139, 117
|
305 |
+
140, 117
|
306 |
+
141, 117
|
307 |
+
142, 117
|
308 |
+
143, 117
|
309 |
+
145, 117
|
310 |
+
146, 117
|
311 |
+
147, 117
|
312 |
+
148, 117
|
313 |
+
149, 117
|
314 |
+
150, 117
|
315 |
+
149, 117
|
316 |
+
148, 117
|
317 |
+
147, 117
|
318 |
+
146, 117
|
319 |
+
144, 117
|
320 |
+
143, 118
|
321 |
+
142, 118
|
322 |
+
141, 118
|
323 |
+
140, 118
|
324 |
+
139, 118
|
325 |
+
138, 118
|
326 |
+
136, 118
|
327 |
+
135, 118
|
328 |
+
132, 119
|
329 |
+
131, 119
|
330 |
+
130, 119
|
331 |
+
129, 119
|
332 |
+
127, 119
|
333 |
+
126, 119
|
334 |
+
124, 119
|
335 |
+
123, 119
|
336 |
+
122, 119
|
337 |
+
121, 119
|
338 |
+
119, 119
|
339 |
+
118, 119
|
340 |
+
117, 119
|
341 |
+
115, 119
|
342 |
+
114, 119
|
343 |
+
113, 119
|
344 |
+
112, 119
|
345 |
+
111, 119
|
346 |
+
110, 119
|
347 |
+
109, 119
|
348 |
+
108, 119
|
349 |
+
107, 119
|
350 |
+
106, 119
|
351 |
+
107, 119
|
352 |
+
108, 119
|
353 |
+
109, 119
|
354 |
+
110, 119
|
355 |
+
112, 119
|
356 |
+
113, 119
|
357 |
+
114, 119
|
358 |
+
115, 119
|
359 |
+
116, 119
|
360 |
+
117, 119
|
361 |
+
118, 119
|
362 |
+
119, 119
|
363 |
+
120, 119
|
364 |
+
121, 119
|
365 |
+
122, 119
|
366 |
+
123, 119
|
367 |
+
124, 119
|
368 |
+
125, 119
|
369 |
+
126, 119
|
370 |
+
127, 119
|
371 |
+
127, 119
|
372 |
+
127, 119
|
373 |
+
127, 119
|
gradio_utils/camera_utils.py
ADDED
@@ -0,0 +1,146 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import copy
|
2 |
+
# import plotly.express as px
|
3 |
+
# import plotly.graph_objects as go
|
4 |
+
import json
|
5 |
+
|
6 |
+
import numpy as np
|
7 |
+
|
8 |
+
CAMERA_MOTION_MODE = ["Basic Camera Poses", "Provided Complex Camera Poses", "Customize Camera Poses"]
|
9 |
+
|
10 |
+
CAMERA = {
|
11 |
+
# T
|
12 |
+
"base_T_norm": 1.5,
|
13 |
+
"base_angle": np.pi/3,
|
14 |
+
|
15 |
+
"Pan Up": { "angle":[0., 0., 0.], "T":[0., 1., 0.]},
|
16 |
+
"Pan Down": { "angle":[0., 0., 0.], "T":[0.,-1.,0.]},
|
17 |
+
"Pan Left": { "angle":[0., 0., 0.], "T":[1.,0.,0.]},
|
18 |
+
"Pan Right": { "angle":[0., 0., 0.], "T": [-1.,0.,0.]},
|
19 |
+
"Zoom In": { "angle":[0., 0., 0.], "T": [0.,0.,-2.]},
|
20 |
+
"Zoom Out": { "angle":[0., 0., 0.], "T": [0.,0.,2.]},
|
21 |
+
"ACW": { "angle": [0., 0., 1.], "T":[0., 0., 0.]},
|
22 |
+
"CW": { "angle": [0., 0., -1.], "T":[0., 0., 0.]},
|
23 |
+
}
|
24 |
+
|
25 |
+
COMPLEX_CAMERA = {
|
26 |
+
"Pose_1": "examples/camera_poses/test_camera_1424acd0007d40b5.json",
|
27 |
+
"Pose_2": "examples/camera_poses/test_camera_d971457c81bca597.json",
|
28 |
+
"Pose_3": "examples/camera_poses/test_camera_Round-ZoomIn.json",
|
29 |
+
"Pose_4": "examples/camera_poses/test_camera_Round-RI_90.json",
|
30 |
+
"Pose_5": "examples/camera_poses/test_camera_Round-RI_120.json",
|
31 |
+
"Pose_6": "examples/camera_poses/test_camera_018f7907401f2fef.json",
|
32 |
+
"Pose_7": "examples/camera_poses/test_camera_088b93f15ca8745d.json",
|
33 |
+
"Pose_8": "examples/camera_poses/test_camera_b133a504fc90a2d1.json",
|
34 |
+
}
|
35 |
+
|
36 |
+
|
37 |
+
|
38 |
+
def compute_R_form_rad_angle(angles):
|
39 |
+
theta_x, theta_y, theta_z = angles
|
40 |
+
Rx = np.array([[1, 0, 0],
|
41 |
+
[0, np.cos(theta_x), -np.sin(theta_x)],
|
42 |
+
[0, np.sin(theta_x), np.cos(theta_x)]])
|
43 |
+
|
44 |
+
Ry = np.array([[np.cos(theta_y), 0, np.sin(theta_y)],
|
45 |
+
[0, 1, 0],
|
46 |
+
[-np.sin(theta_y), 0, np.cos(theta_y)]])
|
47 |
+
|
48 |
+
Rz = np.array([[np.cos(theta_z), -np.sin(theta_z), 0],
|
49 |
+
[np.sin(theta_z), np.cos(theta_z), 0],
|
50 |
+
[0, 0, 1]])
|
51 |
+
|
52 |
+
# 计算相机外参的旋转矩阵
|
53 |
+
R = np.dot(Rz, np.dot(Ry, Rx))
|
54 |
+
return R
|
55 |
+
|
56 |
+
def get_camera_motion(angle, T, speed, n=16):
|
57 |
+
RT = []
|
58 |
+
for i in range(n):
|
59 |
+
_angle = (i/n)*speed*(CAMERA["base_angle"])*angle
|
60 |
+
R = compute_R_form_rad_angle(_angle)
|
61 |
+
# _T = (i/n)*speed*(T.reshape(3,1))
|
62 |
+
_T=(i/n)*speed*(CAMERA["base_T_norm"])*(T.reshape(3,1))
|
63 |
+
_RT = np.concatenate([R,_T], axis=1)
|
64 |
+
RT.append(_RT)
|
65 |
+
RT = np.stack(RT)
|
66 |
+
return RT
|
67 |
+
|
68 |
+
def create_relative(RT_list, K_1=4.7, dataset="syn"):
|
69 |
+
RT = copy.deepcopy(RT_list[0])
|
70 |
+
R_inv = RT[:,:3].T
|
71 |
+
T = RT[:,-1]
|
72 |
+
|
73 |
+
temp = []
|
74 |
+
for _RT in RT_list:
|
75 |
+
_RT[:,:3] = np.dot(_RT[:,:3], R_inv)
|
76 |
+
_RT[:,-1] = _RT[:,-1] - np.dot(_RT[:,:3], T)
|
77 |
+
temp.append(_RT)
|
78 |
+
RT_list = temp
|
79 |
+
|
80 |
+
return RT_list
|
81 |
+
|
82 |
+
def combine_camera_motion(RT_0, RT_1):
|
83 |
+
RT = copy.deepcopy(RT_0[-1])
|
84 |
+
R = RT[:,:3]
|
85 |
+
R_inv = RT[:,:3].T
|
86 |
+
T = RT[:,-1]
|
87 |
+
|
88 |
+
temp = []
|
89 |
+
for _RT in RT_1:
|
90 |
+
_RT[:,:3] = np.dot(_RT[:,:3], R)
|
91 |
+
_RT[:,-1] = _RT[:,-1] + np.dot(np.dot(_RT[:,:3], R_inv), T)
|
92 |
+
temp.append(_RT)
|
93 |
+
|
94 |
+
RT_1 = np.stack(temp)
|
95 |
+
|
96 |
+
return np.concatenate([RT_0, RT_1], axis=0)
|
97 |
+
|
98 |
+
def process_camera(camera_dict):
|
99 |
+
# "First A then B", "Both A and B", "Custom"
|
100 |
+
if camera_dict['complex'] is not None:
|
101 |
+
with open(COMPLEX_CAMERA[camera_dict['complex']]) as f:
|
102 |
+
RT = json.load(f) # [16, 12]
|
103 |
+
RT = np.array(RT).reshape(-1, 3, 4)
|
104 |
+
print(RT.shape)
|
105 |
+
return RT
|
106 |
+
|
107 |
+
|
108 |
+
motion_list = camera_dict['motion']
|
109 |
+
mode = camera_dict['mode']
|
110 |
+
speed = camera_dict['speed']
|
111 |
+
print(len(motion_list))
|
112 |
+
if len(motion_list) == 0:
|
113 |
+
angle = np.array([0,0,0])
|
114 |
+
T = np.array([0,0,0])
|
115 |
+
RT = get_camera_motion(angle, T, speed, 16)
|
116 |
+
|
117 |
+
|
118 |
+
elif len(motion_list) == 1:
|
119 |
+
angle = np.array(CAMERA[motion_list[0]]["angle"])
|
120 |
+
T = np.array(CAMERA[motion_list[0]]["T"])
|
121 |
+
print(angle, T)
|
122 |
+
RT = get_camera_motion(angle, T, speed, 16)
|
123 |
+
|
124 |
+
|
125 |
+
|
126 |
+
elif len(motion_list) == 2:
|
127 |
+
if mode == "Customized Mode 1: First A then B":
|
128 |
+
angle = np.array(CAMERA[motion_list[0]]["angle"])
|
129 |
+
T = np.array(CAMERA[motion_list[0]]["T"])
|
130 |
+
RT_0 = get_camera_motion(angle, T, speed, 8)
|
131 |
+
|
132 |
+
angle = np.array(CAMERA[motion_list[1]]["angle"])
|
133 |
+
T = np.array(CAMERA[motion_list[1]]["T"])
|
134 |
+
RT_1 = get_camera_motion(angle, T, speed, 8)
|
135 |
+
|
136 |
+
RT = combine_camera_motion(RT_0, RT_1)
|
137 |
+
|
138 |
+
elif mode == "Customized Mode 2: Both A and B":
|
139 |
+
angle = np.array(CAMERA[motion_list[0]]["angle"]) + np.array(CAMERA[motion_list[1]]["angle"])
|
140 |
+
T = np.array(CAMERA[motion_list[0]]["T"]) + np.array(CAMERA[motion_list[1]]["T"])
|
141 |
+
RT = get_camera_motion(angle, T, speed, 16)
|
142 |
+
|
143 |
+
|
144 |
+
# return RT.reshape(-1, 12)
|
145 |
+
return RT
|
146 |
+
|
gradio_utils/flow_utils.py
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import numpy as np
|
2 |
+
|
3 |
+
|
4 |
+
def sigma_matrix2(sig_x, sig_y, theta):
|
5 |
+
"""Calculate the rotated sigma matrix (two dimensional matrix).
|
6 |
+
Args:
|
7 |
+
sig_x (float):
|
8 |
+
sig_y (float):
|
9 |
+
theta (float): Radian measurement.
|
10 |
+
Returns:
|
11 |
+
ndarray: Rotated sigma matrix.
|
12 |
+
"""
|
13 |
+
d_matrix = np.array([[sig_x**2, 0], [0, sig_y**2]])
|
14 |
+
u_matrix = np.array([[np.cos(theta), -np.sin(theta)], [np.sin(theta), np.cos(theta)]])
|
15 |
+
return np.dot(u_matrix, np.dot(d_matrix, u_matrix.T))
|
16 |
+
|
17 |
+
|
18 |
+
def mesh_grid(kernel_size):
|
19 |
+
"""Generate the mesh grid, centering at zero.
|
20 |
+
Args:
|
21 |
+
kernel_size (int):
|
22 |
+
Returns:
|
23 |
+
xy (ndarray): with the shape (kernel_size, kernel_size, 2)
|
24 |
+
xx (ndarray): with the shape (kernel_size, kernel_size)
|
25 |
+
yy (ndarray): with the shape (kernel_size, kernel_size)
|
26 |
+
"""
|
27 |
+
ax = np.arange(-kernel_size // 2 + 1., kernel_size // 2 + 1.)
|
28 |
+
xx, yy = np.meshgrid(ax, ax)
|
29 |
+
xy = np.hstack((xx.reshape((kernel_size * kernel_size, 1)), yy.reshape(kernel_size * kernel_size,
|
30 |
+
1))).reshape(kernel_size, kernel_size, 2)
|
31 |
+
return xy, xx, yy
|
32 |
+
|
33 |
+
|
34 |
+
def pdf2(sigma_matrix, grid):
|
35 |
+
"""Calculate PDF of the bivariate Gaussian distribution.
|
36 |
+
Args:
|
37 |
+
sigma_matrix (ndarray): with the shape (2, 2)
|
38 |
+
grid (ndarray): generated by :func:`mesh_grid`,
|
39 |
+
with the shape (K, K, 2), K is the kernel size.
|
40 |
+
Returns:
|
41 |
+
kernel (ndarrray): un-normalized kernel.
|
42 |
+
"""
|
43 |
+
inverse_sigma = np.linalg.inv(sigma_matrix)
|
44 |
+
kernel = np.exp(-0.5 * np.sum(np.dot(grid, inverse_sigma) * grid, 2))
|
45 |
+
return kernel
|
46 |
+
|
47 |
+
def bivariate_Gaussian(kernel_size, sig_x, sig_y, theta, grid=None, isotropic=True):
|
48 |
+
"""Generate a bivariate isotropic or anisotropic Gaussian kernel.
|
49 |
+
In the isotropic mode, only `sig_x` is used. `sig_y` and `theta` is ignored.
|
50 |
+
Args:
|
51 |
+
kernel_size (int):
|
52 |
+
sig_x (float):
|
53 |
+
sig_y (float):
|
54 |
+
theta (float): Radian measurement.
|
55 |
+
grid (ndarray, optional): generated by :func:`mesh_grid`,
|
56 |
+
with the shape (K, K, 2), K is the kernel size. Default: None
|
57 |
+
isotropic (bool):
|
58 |
+
Returns:
|
59 |
+
kernel (ndarray): normalized kernel.
|
60 |
+
"""
|
61 |
+
if grid is None:
|
62 |
+
grid, _, _ = mesh_grid(kernel_size)
|
63 |
+
if isotropic:
|
64 |
+
sigma_matrix = np.array([[sig_x**2, 0], [0, sig_x**2]])
|
65 |
+
else:
|
66 |
+
sigma_matrix = sigma_matrix2(sig_x, sig_y, theta)
|
67 |
+
kernel = pdf2(sigma_matrix, grid)
|
68 |
+
kernel = kernel / np.sum(kernel)
|
69 |
+
return kernel
|
gradio_utils/traj_utils.py
ADDED
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import cv2
|
2 |
+
import numpy as np
|
3 |
+
|
4 |
+
from gradio_utils.flow_utils import bivariate_Gaussian
|
5 |
+
|
6 |
+
OBJECT_MOTION_MODE = ["Provided Trajectory", "Custom Trajectory"]
|
7 |
+
|
8 |
+
PROVIDED_TRAJS = {
|
9 |
+
"horizon_1": "examples/trajectories/horizon_2.txt",
|
10 |
+
"swaying_1": "examples/trajectories/shake_1.txt",
|
11 |
+
"swaying_2": "examples/trajectories/shake_2.txt",
|
12 |
+
"swaying_3": "examples/trajectories/shaking_10.txt",
|
13 |
+
"curve_1": "examples/trajectories/curve_1.txt",
|
14 |
+
"curve_2": "examples/trajectories/curve_2.txt",
|
15 |
+
"curve_3": "examples/trajectories/curve_3.txt",
|
16 |
+
"curve_4": "examples/trajectories/curve_4.txt",
|
17 |
+
}
|
18 |
+
|
19 |
+
|
20 |
+
def read_points(file, video_len=16, reverse=False):
|
21 |
+
with open(file, 'r') as f:
|
22 |
+
lines = f.readlines()
|
23 |
+
points = []
|
24 |
+
for line in lines:
|
25 |
+
x, y = line.strip().split(',')
|
26 |
+
points.append((int(x), int(y)))
|
27 |
+
if reverse:
|
28 |
+
points = points[::-1]
|
29 |
+
|
30 |
+
if len(points) > video_len:
|
31 |
+
skip = len(points) // video_len
|
32 |
+
points = points[::skip]
|
33 |
+
points = points[:video_len]
|
34 |
+
|
35 |
+
return points
|
36 |
+
|
37 |
+
def get_provided_traj(traj_name):
|
38 |
+
traj = read_points(PROVIDED_TRAJS[traj_name])
|
39 |
+
# xrange from 256 to 1024
|
40 |
+
traj = [[int(1024*x/256), int(1024*y/256)] for x,y in traj]
|
41 |
+
return traj
|
42 |
+
|
43 |
+
blur_kernel = bivariate_Gaussian(99, 10, 10, 0, grid=None, isotropic=True)
|
44 |
+
|
45 |
+
def process_points(points):
|
46 |
+
frames = 16
|
47 |
+
defualt_points = [[512,512]]*16
|
48 |
+
|
49 |
+
if len(points) < 2:
|
50 |
+
return defualt_points
|
51 |
+
elif len(points) >= frames:
|
52 |
+
skip = len(points)//frames
|
53 |
+
return points[::skip][:15] + points[-1:]
|
54 |
+
else:
|
55 |
+
insert_num = frames - len(points)
|
56 |
+
insert_num_dict = {}
|
57 |
+
interval = len(points) - 1
|
58 |
+
n = insert_num // interval
|
59 |
+
m = insert_num % interval
|
60 |
+
for i in range(interval):
|
61 |
+
insert_num_dict[i] = n
|
62 |
+
for i in range(m):
|
63 |
+
insert_num_dict[i] += 1
|
64 |
+
|
65 |
+
res = []
|
66 |
+
for i in range(interval):
|
67 |
+
insert_points = []
|
68 |
+
x0,y0 = points[i]
|
69 |
+
x1,y1 = points[i+1]
|
70 |
+
|
71 |
+
delta_x = x1 - x0
|
72 |
+
delta_y = y1 - y0
|
73 |
+
for j in range(insert_num_dict[i]):
|
74 |
+
x = x0 + (j+1)/(insert_num_dict[i]+1)*delta_x
|
75 |
+
y = y0 + (j+1)/(insert_num_dict[i]+1)*delta_y
|
76 |
+
insert_points.append([int(x), int(y)])
|
77 |
+
|
78 |
+
res += points[i:i+1] + insert_points
|
79 |
+
res += points[-1:]
|
80 |
+
return res
|
81 |
+
|
82 |
+
def get_flow(points, video_len=16):
|
83 |
+
optical_flow = np.zeros((video_len, 256, 256, 2), dtype=np.float32)
|
84 |
+
for i in range(video_len-1):
|
85 |
+
p = points[i]
|
86 |
+
p1 = points[i+1]
|
87 |
+
optical_flow[i+1, p[1], p[0], 0] = p1[0] - p[0]
|
88 |
+
optical_flow[i+1, p[1], p[0], 1] = p1[1] - p[1]
|
89 |
+
for i in range(1, video_len):
|
90 |
+
optical_flow[i] = cv2.filter2D(optical_flow[i], -1, blur_kernel)
|
91 |
+
|
92 |
+
|
93 |
+
return optical_flow
|
94 |
+
|
95 |
+
|
96 |
+
def process_traj(points, device='cpu'):
|
97 |
+
xy_range = 1024
|
98 |
+
points = process_points(points)
|
99 |
+
points = [[int(256*x/xy_range), int(256*y/xy_range)] for x,y in points]
|
100 |
+
|
101 |
+
optical_flow = get_flow(points)
|
102 |
+
# optical_flow = torch.tensor(optical_flow).to(device)
|
103 |
+
|
104 |
+
return optical_flow
|
gradio_utils/utils.py
ADDED
@@ -0,0 +1,175 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import numpy as np
|
2 |
+
import plotly.express as px
|
3 |
+
import plotly.graph_objects as go
|
4 |
+
|
5 |
+
def vis_camera(RT_list, rescale_T=1):
|
6 |
+
fig = go.Figure()
|
7 |
+
showticklabels = True
|
8 |
+
visible = True
|
9 |
+
scene_bounds = 2
|
10 |
+
base_radius = 2.5
|
11 |
+
zoom_scale = 1.5
|
12 |
+
fov_deg = 50.0
|
13 |
+
|
14 |
+
edges = [(0, 1), (0, 2), (0, 3), (1, 2), (2, 3), (3, 1), (3, 4)]
|
15 |
+
|
16 |
+
colors = px.colors.qualitative.Plotly
|
17 |
+
|
18 |
+
cone_list = []
|
19 |
+
n = len(RT_list)
|
20 |
+
for i, RT in enumerate(RT_list):
|
21 |
+
R = RT[:,:3]
|
22 |
+
T = RT[:,-1]/rescale_T
|
23 |
+
cone = calc_cam_cone_pts_3d(R, T, fov_deg)
|
24 |
+
cone_list.append((cone, (i*1/n, "green"), f"view_{i}"))
|
25 |
+
|
26 |
+
|
27 |
+
for (cone, clr, legend) in cone_list:
|
28 |
+
for (i, edge) in enumerate(edges):
|
29 |
+
(x1, x2) = (cone[edge[0], 0], cone[edge[1], 0])
|
30 |
+
(y1, y2) = (cone[edge[0], 1], cone[edge[1], 1])
|
31 |
+
(z1, z2) = (cone[edge[0], 2], cone[edge[1], 2])
|
32 |
+
fig.add_trace(go.Scatter3d(
|
33 |
+
x=[x1, x2], y=[y1, y2], z=[z1, z2], mode='lines',
|
34 |
+
line=dict(color=clr, width=3),
|
35 |
+
name=legend, showlegend=(i == 0)))
|
36 |
+
fig.update_layout(
|
37 |
+
height=500,
|
38 |
+
autosize=True,
|
39 |
+
# hovermode=False,
|
40 |
+
margin=go.layout.Margin(l=0, r=0, b=0, t=0),
|
41 |
+
|
42 |
+
showlegend=True,
|
43 |
+
legend=dict(
|
44 |
+
yanchor='bottom',
|
45 |
+
y=0.01,
|
46 |
+
xanchor='right',
|
47 |
+
x=0.99,
|
48 |
+
),
|
49 |
+
scene=dict(
|
50 |
+
aspectmode='manual',
|
51 |
+
aspectratio=dict(x=1, y=1, z=1.0),
|
52 |
+
camera=dict(
|
53 |
+
center=dict(x=0.0, y=0.0, z=0.0),
|
54 |
+
up=dict(x=0.0, y=-1.0, z=0.0),
|
55 |
+
eye=dict(x=scene_bounds/2, y=-scene_bounds/2, z=-scene_bounds/2),
|
56 |
+
),
|
57 |
+
|
58 |
+
xaxis=dict(
|
59 |
+
range=[-scene_bounds, scene_bounds],
|
60 |
+
showticklabels=showticklabels,
|
61 |
+
visible=visible,
|
62 |
+
),
|
63 |
+
|
64 |
+
|
65 |
+
yaxis=dict(
|
66 |
+
range=[-scene_bounds, scene_bounds],
|
67 |
+
showticklabels=showticklabels,
|
68 |
+
visible=visible,
|
69 |
+
),
|
70 |
+
|
71 |
+
|
72 |
+
zaxis=dict(
|
73 |
+
range=[-scene_bounds, scene_bounds],
|
74 |
+
showticklabels=showticklabels,
|
75 |
+
visible=visible,
|
76 |
+
)
|
77 |
+
))
|
78 |
+
return fig
|
79 |
+
|
80 |
+
|
81 |
+
def calc_cam_cone_pts_3d(R_W2C, T_W2C, fov_deg, scale=0.1, set_canonical=False, first_frame_RT=None):
|
82 |
+
fov_rad = np.deg2rad(fov_deg)
|
83 |
+
R_W2C_inv = np.linalg.inv(R_W2C)
|
84 |
+
|
85 |
+
# Camera pose center:
|
86 |
+
T = np.zeros_like(T_W2C) - T_W2C
|
87 |
+
T = np.dot(R_W2C_inv, T)
|
88 |
+
cam_x = T[0]
|
89 |
+
cam_y = T[1]
|
90 |
+
cam_z = T[2]
|
91 |
+
if set_canonical:
|
92 |
+
T = np.zeros_like(T_W2C)
|
93 |
+
T = np.dot(first_frame_RT[:,:3], T) + first_frame_RT[:,-1]
|
94 |
+
T = T - T_W2C
|
95 |
+
T = np.dot(R_W2C_inv, T)
|
96 |
+
cam_x = T[0]
|
97 |
+
cam_y = T[1]
|
98 |
+
cam_z = T[2]
|
99 |
+
|
100 |
+
# vertex
|
101 |
+
corn1 = np.array([np.tan(fov_rad / 2.0), 0.5*np.tan(fov_rad / 2.0), 1.0]) *scale
|
102 |
+
corn2 = np.array([-np.tan(fov_rad / 2.0), 0.5*np.tan(fov_rad / 2.0), 1.0]) *scale
|
103 |
+
corn3 = np.array([0, -0.25*np.tan(fov_rad / 2.0), 1.0]) *scale
|
104 |
+
corn4 = np.array([0, -0.5*np.tan(fov_rad / 2.0), 1.0]) *scale
|
105 |
+
|
106 |
+
corn1 = corn1 - T_W2C
|
107 |
+
corn2 = corn2 - T_W2C
|
108 |
+
corn3 = corn3 - T_W2C
|
109 |
+
corn4 = corn4 - T_W2C
|
110 |
+
|
111 |
+
corn1 = np.dot(R_W2C_inv, corn1)
|
112 |
+
corn2 = np.dot(R_W2C_inv, corn2)
|
113 |
+
corn3 = np.dot(R_W2C_inv, corn3)
|
114 |
+
corn4 = np.dot(R_W2C_inv, corn4)
|
115 |
+
|
116 |
+
# Now attach as offset to actual 3D camera position:
|
117 |
+
corn_x1 = corn1[0]
|
118 |
+
corn_y1 = corn1[1]
|
119 |
+
corn_z1 = corn1[2]
|
120 |
+
|
121 |
+
corn_x2 = corn2[0]
|
122 |
+
corn_y2 = corn2[1]
|
123 |
+
corn_z2 = corn2[2]
|
124 |
+
|
125 |
+
corn_x3 = corn3[0]
|
126 |
+
corn_y3 = corn3[1]
|
127 |
+
corn_z3 = corn3[2]
|
128 |
+
|
129 |
+
corn_x4 = corn4[0]
|
130 |
+
corn_y4 = corn4[1]
|
131 |
+
corn_z4 = corn4[2]
|
132 |
+
|
133 |
+
|
134 |
+
xs = [cam_x, corn_x1, corn_x2, corn_x3, corn_x4, ]
|
135 |
+
ys = [cam_y, corn_y1, corn_y2, corn_y3, corn_y4, ]
|
136 |
+
zs = [cam_z, corn_z1, corn_z2, corn_z3, corn_z4, ]
|
137 |
+
|
138 |
+
return np.array([xs, ys, zs]).T
|
139 |
+
|
140 |
+
|
141 |
+
|
142 |
+
# T_base = [
|
143 |
+
# [1.,0.,0.], ## W2C x 的正方向: 相机朝左 left
|
144 |
+
# [-1.,0.,0.], ## W2C x 的负方向: 相机朝右 right
|
145 |
+
# [0., 1., 0.], ## W2C y 的正方向: 相机朝上 up
|
146 |
+
# [0.,-1.,0.], ## W2C y 的负方向: 相机朝下 down
|
147 |
+
# [0.,0.,1.], ## W2C z 的正方向: 相机往前 zoom out
|
148 |
+
# [0.,0.,-1.], ## W2C z 的负方向: 相机往前 zoom in
|
149 |
+
# ]
|
150 |
+
# radius = 1
|
151 |
+
# n = 16
|
152 |
+
# # step =
|
153 |
+
# look_at = np.array([0, 0, 0.8]).reshape(3,1)
|
154 |
+
# # look_at = np.array([0, 0, 0.2]).reshape(3,1)
|
155 |
+
|
156 |
+
# T_list = []
|
157 |
+
# base_R = np.array([[1., 0., 0.],
|
158 |
+
# [0., 1., 0.],
|
159 |
+
# [0., 0., 1.]])
|
160 |
+
# res = []
|
161 |
+
# res_forsave = []
|
162 |
+
# T_range = 1.8
|
163 |
+
|
164 |
+
|
165 |
+
|
166 |
+
# for i in range(0, 16):
|
167 |
+
# # theta = (1)*np.pi*i/n
|
168 |
+
|
169 |
+
# R = base_R[:,:3]
|
170 |
+
# T = np.array([0.,0.,1.]).reshape(3,1) * (i/n)*2
|
171 |
+
# RT = np.concatenate([R,T], axis=1)
|
172 |
+
# res.append(RT)
|
173 |
+
|
174 |
+
# fig = vis_camera(res)
|
175 |
+
|
lvdm/basics.py
ADDED
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# adopted from
|
2 |
+
# https://github.com/openai/improved-diffusion/blob/main/improved_diffusion/gaussian_diffusion.py
|
3 |
+
# and
|
4 |
+
# https://github.com/lucidrains/denoising-diffusion-pytorch/blob/7706bdfc6f527f58d33f84b7b522e61e6e3164b3/denoising_diffusion_pytorch/denoising_diffusion_pytorch.py
|
5 |
+
# and
|
6 |
+
# https://github.com/openai/guided-diffusion/blob/0ba878e517b276c45d1195eb29f6f5f72659a05b/guided_diffusion/nn.py
|
7 |
+
#
|
8 |
+
# thanks!
|
9 |
+
|
10 |
+
import numpy as np
|
11 |
+
from einops import repeat
|
12 |
+
|
13 |
+
import torch
|
14 |
+
import torch.nn as nn
|
15 |
+
import torch.nn.functional as F
|
16 |
+
|
17 |
+
from utils.utils import instantiate_from_config
|
18 |
+
|
19 |
+
|
20 |
+
def disabled_train(self, mode=True):
|
21 |
+
"""Overwrite model.train with this function to make sure train/eval mode
|
22 |
+
does not change anymore."""
|
23 |
+
return self
|
24 |
+
|
25 |
+
def zero_module(module):
|
26 |
+
"""
|
27 |
+
Zero out the parameters of a module and return it.
|
28 |
+
"""
|
29 |
+
for p in module.parameters():
|
30 |
+
p.detach().zero_()
|
31 |
+
return module
|
32 |
+
|
33 |
+
def scale_module(module, scale):
|
34 |
+
"""
|
35 |
+
Scale the parameters of a module and return it.
|
36 |
+
"""
|
37 |
+
for p in module.parameters():
|
38 |
+
p.detach().mul_(scale)
|
39 |
+
return module
|
40 |
+
|
41 |
+
|
42 |
+
def conv_nd(dims, *args, **kwargs):
|
43 |
+
"""
|
44 |
+
Create a 1D, 2D, or 3D convolution module.
|
45 |
+
"""
|
46 |
+
if dims == 1:
|
47 |
+
return nn.Conv1d(*args, **kwargs)
|
48 |
+
elif dims == 2:
|
49 |
+
return nn.Conv2d(*args, **kwargs)
|
50 |
+
elif dims == 3:
|
51 |
+
return nn.Conv3d(*args, **kwargs)
|
52 |
+
raise ValueError(f"unsupported dimensions: {dims}")
|
53 |
+
|
54 |
+
|
55 |
+
def linear(*args, **kwargs):
|
56 |
+
"""
|
57 |
+
Create a linear module.
|
58 |
+
"""
|
59 |
+
return nn.Linear(*args, **kwargs)
|
60 |
+
|
61 |
+
|
62 |
+
def avg_pool_nd(dims, *args, **kwargs):
|
63 |
+
"""
|
64 |
+
Create a 1D, 2D, or 3D average pooling module.
|
65 |
+
"""
|
66 |
+
if dims == 1:
|
67 |
+
return nn.AvgPool1d(*args, **kwargs)
|
68 |
+
elif dims == 2:
|
69 |
+
return nn.AvgPool2d(*args, **kwargs)
|
70 |
+
elif dims == 3:
|
71 |
+
return nn.AvgPool3d(*args, **kwargs)
|
72 |
+
raise ValueError(f"unsupported dimensions: {dims}")
|
73 |
+
|
74 |
+
|
75 |
+
def nonlinearity(type='silu'):
|
76 |
+
if type == 'silu':
|
77 |
+
return nn.SiLU()
|
78 |
+
elif type == 'leaky_relu':
|
79 |
+
return nn.LeakyReLU()
|
80 |
+
|
81 |
+
|
82 |
+
class GroupNormSpecific(nn.GroupNorm):
|
83 |
+
def forward(self, x):
|
84 |
+
return super().forward(x.float()).type(x.dtype)
|
85 |
+
|
86 |
+
|
87 |
+
def normalization(channels, num_groups=32):
|
88 |
+
"""
|
89 |
+
Make a standard normalization layer.
|
90 |
+
:param channels: number of input channels.
|
91 |
+
:return: an nn.Module for normalization.
|
92 |
+
"""
|
93 |
+
return GroupNormSpecific(num_groups, channels)
|
94 |
+
|
95 |
+
|
96 |
+
class HybridConditioner(nn.Module):
|
97 |
+
|
98 |
+
def __init__(self, c_concat_config, c_crossattn_config):
|
99 |
+
super().__init__()
|
100 |
+
self.concat_conditioner = instantiate_from_config(c_concat_config)
|
101 |
+
self.crossattn_conditioner = instantiate_from_config(c_crossattn_config)
|
102 |
+
|
103 |
+
def forward(self, c_concat, c_crossattn):
|
104 |
+
c_concat = self.concat_conditioner(c_concat)
|
105 |
+
c_crossattn = self.crossattn_conditioner(c_crossattn)
|
106 |
+
return {'c_concat': [c_concat], 'c_crossattn': [c_crossattn]}
|
lvdm/common.py
ADDED
@@ -0,0 +1,142 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os, math
|
2 |
+
import numpy as np
|
3 |
+
from inspect import isfunction
|
4 |
+
|
5 |
+
import torch
|
6 |
+
from torch import nn
|
7 |
+
import torch.nn.functional as F
|
8 |
+
import torch.distributed as dist
|
9 |
+
|
10 |
+
|
11 |
+
def gather_data(data, return_np=True):
|
12 |
+
''' gather data from multiple processes to one list '''
|
13 |
+
data_list = [torch.zeros_like(data) for _ in range(dist.get_world_size())]
|
14 |
+
dist.all_gather(data_list, data) # gather not supported with NCCL
|
15 |
+
if return_np:
|
16 |
+
data_list = [data.cpu().numpy() for data in data_list]
|
17 |
+
return data_list
|
18 |
+
|
19 |
+
def autocast(f):
|
20 |
+
def do_autocast(*args, **kwargs):
|
21 |
+
with torch.cuda.amp.autocast(enabled=True,
|
22 |
+
dtype=torch.get_autocast_gpu_dtype(),
|
23 |
+
cache_enabled=torch.is_autocast_cache_enabled()):
|
24 |
+
return f(*args, **kwargs)
|
25 |
+
return do_autocast
|
26 |
+
|
27 |
+
|
28 |
+
def extract_into_tensor(a, t, x_shape):
|
29 |
+
b, *_ = t.shape
|
30 |
+
out = a.gather(-1, t)
|
31 |
+
return out.reshape(b, *((1,) * (len(x_shape) - 1)))
|
32 |
+
|
33 |
+
|
34 |
+
def noise_like(shape, device, repeat=False):
|
35 |
+
repeat_noise = lambda: torch.randn((1, *shape[1:]), device=device).repeat(shape[0], *((1,) * (len(shape) - 1)))
|
36 |
+
noise = lambda: torch.randn(shape, device=device)
|
37 |
+
return repeat_noise() if repeat else noise()
|
38 |
+
|
39 |
+
|
40 |
+
def default(val, d):
|
41 |
+
if exists(val):
|
42 |
+
return val
|
43 |
+
return d() if isfunction(d) else d
|
44 |
+
|
45 |
+
def exists(val):
|
46 |
+
return val is not None
|
47 |
+
|
48 |
+
def identity(*args, **kwargs):
|
49 |
+
return nn.Identity()
|
50 |
+
|
51 |
+
def uniq(arr):
|
52 |
+
return{el: True for el in arr}.keys()
|
53 |
+
|
54 |
+
def mean_flat(tensor):
|
55 |
+
"""
|
56 |
+
Take the mean over all non-batch dimensions.
|
57 |
+
"""
|
58 |
+
return tensor.mean(dim=list(range(1, len(tensor.shape))))
|
59 |
+
|
60 |
+
def ismap(x):
|
61 |
+
if not isinstance(x, torch.Tensor):
|
62 |
+
return False
|
63 |
+
return (len(x.shape) == 4) and (x.shape[1] > 3)
|
64 |
+
|
65 |
+
def isimage(x):
|
66 |
+
if not isinstance(x,torch.Tensor):
|
67 |
+
return False
|
68 |
+
return (len(x.shape) == 4) and (x.shape[1] == 3 or x.shape[1] == 1)
|
69 |
+
|
70 |
+
def max_neg_value(t):
|
71 |
+
return -torch.finfo(t.dtype).max
|
72 |
+
|
73 |
+
def shape_to_str(x):
|
74 |
+
shape_str = "x".join([str(x) for x in x.shape])
|
75 |
+
return shape_str
|
76 |
+
|
77 |
+
def init_(tensor):
|
78 |
+
dim = tensor.shape[-1]
|
79 |
+
std = 1 / math.sqrt(dim)
|
80 |
+
tensor.uniform_(-std, std)
|
81 |
+
return tensor
|
82 |
+
|
83 |
+
#import deepspeed
|
84 |
+
#ckpt = deepspeed.checkpointing.checkpoint
|
85 |
+
ckpt = torch.utils.checkpoint.checkpoint
|
86 |
+
def checkpoint(func, inputs, params, flag):
|
87 |
+
"""
|
88 |
+
Evaluate a function without caching intermediate activations, allowing for
|
89 |
+
reduced memory at the expense of extra compute in the backward pass.
|
90 |
+
:param func: the function to evaluate.
|
91 |
+
:param inputs: the argument sequence to pass to `func`.
|
92 |
+
:param params: a sequence of parameters `func` depends on but does not
|
93 |
+
explicitly take as arguments.
|
94 |
+
:param flag: if False, disable gradient checkpointing.
|
95 |
+
"""
|
96 |
+
if flag:
|
97 |
+
try:
|
98 |
+
return ckpt(func, *inputs)
|
99 |
+
except:
|
100 |
+
args = tuple(inputs) + tuple(params)
|
101 |
+
return CheckpointFunction.apply(func, len(inputs), *args)
|
102 |
+
else:
|
103 |
+
return func(*inputs)
|
104 |
+
|
105 |
+
|
106 |
+
class CheckpointFunction(torch.autograd.Function):
|
107 |
+
@staticmethod
|
108 |
+
@torch.cuda.amp.custom_fwd
|
109 |
+
def forward(ctx, run_function, length, *args):
|
110 |
+
ctx.run_function = run_function
|
111 |
+
ctx.input_tensors = list(args[:length])
|
112 |
+
ctx.input_params = list(args[length:])
|
113 |
+
|
114 |
+
with torch.no_grad():
|
115 |
+
output_tensors = ctx.run_function(*ctx.input_tensors)
|
116 |
+
return output_tensors
|
117 |
+
|
118 |
+
@staticmethod
|
119 |
+
@torch.cuda.amp.custom_bwd # add this
|
120 |
+
def backward(ctx, *output_grads):
|
121 |
+
'''
|
122 |
+
for x in ctx.input_tensors:
|
123 |
+
if isinstance(x, int):
|
124 |
+
print('-----------------', ctx.run_function)
|
125 |
+
'''
|
126 |
+
ctx.input_tensors = [x.detach().requires_grad_(True) for x in ctx.input_tensors]
|
127 |
+
with torch.enable_grad():
|
128 |
+
# Fixes a bug where the first op in run_function modifies the
|
129 |
+
# Tensor storage in place, which is not allowed for detach()'d
|
130 |
+
# Tensors.
|
131 |
+
shallow_copies = [x.view_as(x) for x in ctx.input_tensors]
|
132 |
+
output_tensors = ctx.run_function(*shallow_copies)
|
133 |
+
input_grads = torch.autograd.grad(
|
134 |
+
output_tensors,
|
135 |
+
ctx.input_tensors + ctx.input_params,
|
136 |
+
output_grads,
|
137 |
+
allow_unused=True,
|
138 |
+
)
|
139 |
+
del ctx.input_tensors
|
140 |
+
del ctx.input_params
|
141 |
+
del output_tensors
|
142 |
+
return (None, None) + input_grads
|
lvdm/distributions.py
ADDED
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import torch
|
2 |
+
import numpy as np
|
3 |
+
|
4 |
+
|
5 |
+
class AbstractDistribution:
|
6 |
+
def sample(self):
|
7 |
+
raise NotImplementedError()
|
8 |
+
|
9 |
+
def mode(self):
|
10 |
+
raise NotImplementedError()
|
11 |
+
|
12 |
+
|
13 |
+
class DiracDistribution(AbstractDistribution):
|
14 |
+
def __init__(self, value):
|
15 |
+
self.value = value
|
16 |
+
|
17 |
+
def sample(self):
|
18 |
+
return self.value
|
19 |
+
|
20 |
+
def mode(self):
|
21 |
+
return self.value
|
22 |
+
|
23 |
+
|
24 |
+
class DiagonalGaussianDistribution(object):
|
25 |
+
def __init__(self, parameters, deterministic=False):
|
26 |
+
self.parameters = parameters
|
27 |
+
self.mean, self.logvar = torch.chunk(parameters, 2, dim=1)
|
28 |
+
self.logvar = torch.clamp(self.logvar, -30.0, 20.0)
|
29 |
+
self.deterministic = deterministic
|
30 |
+
self.std = torch.exp(0.5 * self.logvar)
|
31 |
+
self.var = torch.exp(self.logvar)
|
32 |
+
if self.deterministic:
|
33 |
+
self.var = self.std = torch.zeros_like(self.mean).to(device=self.parameters.device)
|
34 |
+
|
35 |
+
def sample(self, noise=None):
|
36 |
+
if noise is None:
|
37 |
+
noise = torch.randn(self.mean.shape)
|
38 |
+
|
39 |
+
x = self.mean + self.std * noise.to(device=self.parameters.device)
|
40 |
+
return x
|
41 |
+
|
42 |
+
def kl(self, other=None):
|
43 |
+
if self.deterministic:
|
44 |
+
return torch.Tensor([0.])
|
45 |
+
else:
|
46 |
+
if other is None:
|
47 |
+
return 0.5 * torch.sum(torch.pow(self.mean, 2)
|
48 |
+
+ self.var - 1.0 - self.logvar,
|
49 |
+
dim=[1, 2, 3])
|
50 |
+
else:
|
51 |
+
return 0.5 * torch.sum(
|
52 |
+
torch.pow(self.mean - other.mean, 2) / other.var
|
53 |
+
+ self.var / other.var - 1.0 - self.logvar + other.logvar,
|
54 |
+
dim=[1, 2, 3])
|
55 |
+
|
56 |
+
def nll(self, sample, dims=[1,2,3]):
|
57 |
+
if self.deterministic:
|
58 |
+
return torch.Tensor([0.])
|
59 |
+
logtwopi = np.log(2.0 * np.pi)
|
60 |
+
return 0.5 * torch.sum(
|
61 |
+
logtwopi + self.logvar + torch.pow(sample - self.mean, 2) / self.var,
|
62 |
+
dim=dims)
|
63 |
+
|
64 |
+
def mode(self):
|
65 |
+
return self.mean
|
66 |
+
|
67 |
+
|
68 |
+
def normal_kl(mean1, logvar1, mean2, logvar2):
|
69 |
+
"""
|
70 |
+
source: https://github.com/openai/guided-diffusion/blob/27c20a8fab9cb472df5d6bdd6c8d11c8f430b924/guided_diffusion/losses.py#L12
|
71 |
+
Compute the KL divergence between two gaussians.
|
72 |
+
Shapes are automatically broadcasted, so batches can be compared to
|
73 |
+
scalars, among other use cases.
|
74 |
+
"""
|
75 |
+
tensor = None
|
76 |
+
for obj in (mean1, logvar1, mean2, logvar2):
|
77 |
+
if isinstance(obj, torch.Tensor):
|
78 |
+
tensor = obj
|
79 |
+
break
|
80 |
+
assert tensor is not None, "at least one argument must be a Tensor"
|
81 |
+
|
82 |
+
# Force variances to be Tensors. Broadcasting helps convert scalars to
|
83 |
+
# Tensors, but it does not work for torch.exp().
|
84 |
+
logvar1, logvar2 = [
|
85 |
+
x if isinstance(x, torch.Tensor) else torch.tensor(x).to(tensor)
|
86 |
+
for x in (logvar1, logvar2)
|
87 |
+
]
|
88 |
+
|
89 |
+
return 0.5 * (
|
90 |
+
-1.0
|
91 |
+
+ logvar2
|
92 |
+
- logvar1
|
93 |
+
+ torch.exp(logvar1 - logvar2)
|
94 |
+
+ ((mean1 - mean2) ** 2) * torch.exp(-logvar2)
|
95 |
+
)
|
lvdm/ema.py
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import torch
|
2 |
+
from torch import nn
|
3 |
+
|
4 |
+
|
5 |
+
class LitEma(nn.Module):
|
6 |
+
def __init__(self, model, decay=0.9999, use_num_upates=True):
|
7 |
+
super().__init__()
|
8 |
+
if decay < 0.0 or decay > 1.0:
|
9 |
+
raise ValueError('Decay must be between 0 and 1')
|
10 |
+
|
11 |
+
self.m_name2s_name = {}
|
12 |
+
self.register_buffer('decay', torch.tensor(decay, dtype=torch.float32))
|
13 |
+
self.register_buffer('num_updates', torch.tensor(0,dtype=torch.int) if use_num_upates
|
14 |
+
else torch.tensor(-1,dtype=torch.int))
|
15 |
+
|
16 |
+
for name, p in model.named_parameters():
|
17 |
+
if p.requires_grad:
|
18 |
+
#remove as '.'-character is not allowed in buffers
|
19 |
+
s_name = name.replace('.','')
|
20 |
+
self.m_name2s_name.update({name:s_name})
|
21 |
+
self.register_buffer(s_name,p.clone().detach().data)
|
22 |
+
|
23 |
+
self.collected_params = []
|
24 |
+
|
25 |
+
def forward(self,model):
|
26 |
+
decay = self.decay
|
27 |
+
|
28 |
+
if self.num_updates >= 0:
|
29 |
+
self.num_updates += 1
|
30 |
+
decay = min(self.decay,(1 + self.num_updates) / (10 + self.num_updates))
|
31 |
+
|
32 |
+
one_minus_decay = 1.0 - decay
|
33 |
+
|
34 |
+
with torch.no_grad():
|
35 |
+
m_param = dict(model.named_parameters())
|
36 |
+
shadow_params = dict(self.named_buffers())
|
37 |
+
|
38 |
+
for key in m_param:
|
39 |
+
if m_param[key].requires_grad:
|
40 |
+
sname = self.m_name2s_name[key]
|
41 |
+
shadow_params[sname] = shadow_params[sname].type_as(m_param[key])
|
42 |
+
shadow_params[sname].sub_(one_minus_decay * (shadow_params[sname] - m_param[key]))
|
43 |
+
else:
|
44 |
+
assert not key in self.m_name2s_name
|
45 |
+
|
46 |
+
def copy_to(self, model):
|
47 |
+
m_param = dict(model.named_parameters())
|
48 |
+
shadow_params = dict(self.named_buffers())
|
49 |
+
for key in m_param:
|
50 |
+
if m_param[key].requires_grad:
|
51 |
+
m_param[key].data.copy_(shadow_params[self.m_name2s_name[key]].data)
|
52 |
+
else:
|
53 |
+
assert not key in self.m_name2s_name
|
54 |
+
|
55 |
+
def store(self, parameters):
|
56 |
+
"""
|
57 |
+
Save the current parameters for restoring later.
|
58 |
+
Args:
|
59 |
+
parameters: Iterable of `torch.nn.Parameter`; the parameters to be
|
60 |
+
temporarily stored.
|
61 |
+
"""
|
62 |
+
self.collected_params = [param.clone() for param in parameters]
|
63 |
+
|
64 |
+
def restore(self, parameters):
|
65 |
+
"""
|
66 |
+
Restore the parameters stored with the `store` method.
|
67 |
+
Useful to validate the model with EMA parameters without affecting the
|
68 |
+
original optimization process. Store the parameters before the
|
69 |
+
`copy_to` method. After validation (or model saving), use this to
|
70 |
+
restore the former parameters.
|
71 |
+
Args:
|
72 |
+
parameters: Iterable of `torch.nn.Parameter`; the parameters to be
|
73 |
+
updated with the stored parameters.
|
74 |
+
"""
|
75 |
+
for c_param, param in zip(self.collected_params, parameters):
|
76 |
+
param.data.copy_(c_param.data)
|