Skip to content

Commit 35b69f1

Browse files
authored
Merge pull request #2271 from alicevision/dev/calibNodalTracking
[pipelines] Nodal Camera Tracking: Add a new template with the calibration of the distortion
2 parents 279b890 + 3e95d2b commit 35b69f1

File tree

2 files changed

+294
-13
lines changed

2 files changed

+294
-13
lines changed

meshroom/pipelines/nodalCameraTracking.mg

Lines changed: 86 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,26 @@
11
{
22
"header": {
33
"pipelineVersion": "2.2",
4-
"releaseVersion": "2023.3.0",
4+
"releaseVersion": "2024.1.0-develop",
55
"fileVersion": "1.1",
66
"template": true,
77
"nodesVersions": {
8-
"TracksBuilding": "1.0",
9-
"ImageSegmentation": "1.0",
8+
"DistortionCalibration": "3.0",
109
"FeatureExtraction": "1.3",
1110
"ScenePreview": "2.0",
12-
"ImageMatching": "2.0",
13-
"CameraInit": "9.0",
14-
"NodalSfM": "1.0",
15-
"ConvertSfMFormat": "2.0",
16-
"Publish": "1.3",
17-
"ExportAnimatedCamera": "2.0",
1811
"FeatureMatching": "2.0",
19-
"RelativePoseEstimating": "1.0"
12+
"RelativePoseEstimating": "1.0",
13+
"ExportAnimatedCamera": "2.0",
14+
"ConvertSfMFormat": "2.0",
15+
"ImageSegmentation": "1.0",
16+
"NodalSfM": "1.0",
17+
"ExportDistortion": "1.0",
18+
"CameraInit": "9.0",
19+
"CheckerboardDetection": "1.0",
20+
"ImageMatching": "2.0",
21+
"TracksBuilding": "1.0",
22+
"ApplyCalibration": "1.0",
23+
"Publish": "1.3"
2024
}
2125
},
2226
"graph": {
@@ -43,7 +47,7 @@
4347
0
4448
],
4549
"inputs": {
46-
"input": "{ImageSegmentation_1.input}",
50+
"input": "{ApplyCalibration_1.output}",
4751
"masksFolder": "{ImageSegmentation_1.output}"
4852
},
4953
"internalInputs": {
@@ -186,15 +190,16 @@
186190
"inputs": {
187191
"inputFiles": [
188192
"{ExportAnimatedCamera_1.output}",
189-
"{ScenePreview_1.output}"
193+
"{ScenePreview_1.output}",
194+
"{ExportDistortion_1.output}"
190195
]
191196
}
192197
},
193198
"ImageSegmentation_1": {
194199
"nodeType": "ImageSegmentation",
195200
"position": [
196201
0,
197-
0
202+
200
198203
],
199204
"inputs": {
200205
"input": "{CameraInit_1.output}",
@@ -203,6 +208,74 @@
203208
"internalInputs": {
204209
"color": "#80766f"
205210
}
211+
},
212+
"CheckerboardDetection_1": {
213+
"nodeType": "CheckerboardDetection",
214+
"position": [
215+
-400,
216+
-160
217+
],
218+
"inputs": {
219+
"input": "{CameraInit_2.output}",
220+
"useNestedGrids": true,
221+
"exportDebugImages": true
222+
},
223+
"internalInputs": {
224+
"color": "#302e2e"
225+
}
226+
},
227+
"DistortionCalibration_1": {
228+
"nodeType": "DistortionCalibration",
229+
"position": [
230+
-200,
231+
-160
232+
],
233+
"inputs": {
234+
"input": "{CheckerboardDetection_1.input}",
235+
"checkerboards": "{CheckerboardDetection_1.output}"
236+
},
237+
"internalInputs": {
238+
"color": "#302e2e"
239+
}
240+
},
241+
"ExportDistortion_1": {
242+
"nodeType": "ExportDistortion",
243+
"position": [
244+
0,
245+
-160
246+
],
247+
"inputs": {
248+
"input": "{DistortionCalibration_1.output}"
249+
},
250+
"internalInputs": {
251+
"color": "#302e2e"
252+
}
253+
},
254+
"ApplyCalibration_1": {
255+
"nodeType": "ApplyCalibration",
256+
"position": [
257+
0,
258+
0
259+
],
260+
"inputs": {
261+
"input": "{CameraInit_1.output}",
262+
"calibration": "{DistortionCalibration_1.output}"
263+
},
264+
"internalInputs": {
265+
"color": "#80766f"
266+
}
267+
},
268+
"CameraInit_2": {
269+
"nodeType": "CameraInit",
270+
"position": [
271+
-600,
272+
-160
273+
],
274+
"inputs": {},
275+
"internalInputs": {
276+
"label": "CameraInitLensGrid",
277+
"color": "#302e2e"
278+
}
206279
}
207280
}
208281
}
Lines changed: 208 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,208 @@
1+
{
2+
"header": {
3+
"pipelineVersion": "2.2",
4+
"releaseVersion": "2023.3.0",
5+
"fileVersion": "1.1",
6+
"template": true,
7+
"nodesVersions": {
8+
"TracksBuilding": "1.0",
9+
"ImageSegmentation": "1.0",
10+
"FeatureExtraction": "1.3",
11+
"ScenePreview": "2.0",
12+
"ImageMatching": "2.0",
13+
"CameraInit": "9.0",
14+
"NodalSfM": "1.0",
15+
"ConvertSfMFormat": "2.0",
16+
"Publish": "1.3",
17+
"ExportAnimatedCamera": "2.0",
18+
"FeatureMatching": "2.0",
19+
"RelativePoseEstimating": "1.0"
20+
}
21+
},
22+
"graph": {
23+
"ImageMatching_1": {
24+
"nodeType": "ImageMatching",
25+
"position": [
26+
400,
27+
0
28+
],
29+
"inputs": {
30+
"input": "{FeatureExtraction_1.input}",
31+
"featuresFolders": [
32+
"{FeatureExtraction_1.output}"
33+
]
34+
},
35+
"internalInputs": {
36+
"color": "#80766f"
37+
}
38+
},
39+
"FeatureExtraction_1": {
40+
"nodeType": "FeatureExtraction",
41+
"position": [
42+
200,
43+
0
44+
],
45+
"inputs": {
46+
"input": "{ImageSegmentation_1.input}",
47+
"masksFolder": "{ImageSegmentation_1.output}"
48+
},
49+
"internalInputs": {
50+
"color": "#80766f"
51+
}
52+
},
53+
"CameraInit_1": {
54+
"nodeType": "CameraInit",
55+
"position": [
56+
-200,
57+
0
58+
],
59+
"inputs": {},
60+
"internalInputs": {
61+
"color": "#80766f"
62+
}
63+
},
64+
"FeatureMatching_1": {
65+
"nodeType": "FeatureMatching",
66+
"position": [
67+
600,
68+
0
69+
],
70+
"inputs": {
71+
"input": "{ImageMatching_1.input}",
72+
"featuresFolders": "{ImageMatching_1.featuresFolders}",
73+
"imagePairsList": "{ImageMatching_1.output}",
74+
"describerTypes": "{FeatureExtraction_1.describerTypes}"
75+
},
76+
"internalInputs": {
77+
"color": "#80766f"
78+
}
79+
},
80+
"TracksBuilding_1": {
81+
"nodeType": "TracksBuilding",
82+
"position": [
83+
800,
84+
0
85+
],
86+
"inputs": {
87+
"input": "{FeatureMatching_1.input}",
88+
"featuresFolders": "{FeatureMatching_1.featuresFolders}",
89+
"matchesFolders": [
90+
"{FeatureMatching_1.output}"
91+
]
92+
},
93+
"internalInputs": {
94+
"color": "#80766f"
95+
}
96+
},
97+
"RelativePoseEstimating_1": {
98+
"nodeType": "RelativePoseEstimating",
99+
"position": [
100+
1000,
101+
0
102+
],
103+
"inputs": {
104+
"input": "{TracksBuilding_1.input}",
105+
"featuresFolders": "{TracksBuilding_1.featuresFolders}",
106+
"tracksFilename": "{TracksBuilding_1.output}",
107+
"enforcePureRotation": true
108+
},
109+
"internalInputs": {
110+
"color": "#80766f"
111+
}
112+
},
113+
"NodalSfM_1": {
114+
"nodeType": "NodalSfM",
115+
"position": [
116+
1200,
117+
0
118+
],
119+
"inputs": {
120+
"input": "{RelativePoseEstimating_1.input}",
121+
"featuresFolders": "{RelativePoseEstimating_1.featuresFolders}",
122+
"tracksFilename": "{RelativePoseEstimating_1.tracksFilename}",
123+
"pairs": "{RelativePoseEstimating_1.output}"
124+
},
125+
"internalInputs": {
126+
"color": "#80766f"
127+
}
128+
},
129+
"ExportAnimatedCamera_1": {
130+
"nodeType": "ExportAnimatedCamera",
131+
"position": [
132+
1400,
133+
0
134+
],
135+
"inputs": {
136+
"input": "{NodalSfM_1.output}",
137+
"exportUndistortedImages": true
138+
},
139+
"internalInputs": {
140+
"color": "#80766f"
141+
}
142+
},
143+
"ConvertSfMFormat_1": {
144+
"nodeType": "ConvertSfMFormat",
145+
"position": [
146+
1400,
147+
200
148+
],
149+
"inputs": {
150+
"input": "{NodalSfM_1.output}",
151+
"fileExt": "sfm",
152+
"structure": false,
153+
"observations": false
154+
},
155+
"internalInputs": {
156+
"color": "#4c594c"
157+
}
158+
},
159+
"ScenePreview_1": {
160+
"nodeType": "ScenePreview",
161+
"position": [
162+
1600,
163+
200
164+
],
165+
"inputs": {
166+
"cameras": "{ConvertSfMFormat_1.output}",
167+
"model": "{NodalSfM_1.output}",
168+
"undistortedImages": "{ExportAnimatedCamera_1.outputUndistorted}",
169+
"useMasks": false,
170+
"masks": "{ImageSegmentation_1.output}",
171+
"pointCloudParams": {
172+
"particleSize": 0.001,
173+
"particleColor": "Red"
174+
}
175+
},
176+
"internalInputs": {
177+
"color": "#4c594c"
178+
}
179+
},
180+
"Publish_1": {
181+
"nodeType": "Publish",
182+
"position": [
183+
1800,
184+
0
185+
],
186+
"inputs": {
187+
"inputFiles": [
188+
"{ExportAnimatedCamera_1.output}",
189+
"{ScenePreview_1.output}"
190+
]
191+
}
192+
},
193+
"ImageSegmentation_1": {
194+
"nodeType": "ImageSegmentation",
195+
"position": [
196+
0,
197+
0
198+
],
199+
"inputs": {
200+
"input": "{CameraInit_1.output}",
201+
"maskInvert": true
202+
},
203+
"internalInputs": {
204+
"color": "#80766f"
205+
}
206+
}
207+
}
208+
}

0 commit comments

Comments
 (0)