рдбрд╛рдХ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗрд╡рд╛рд▓рд╛ рдордЬрд╝рджреВрд░
рд▓рд┐рдирдХреНрд╕ рдкрд░ рдХреНрд░реЛрдо 79
рдЬрдм рдЖрдВрд╢рд┐рдХ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рд╕рдВрд░реЗрдЦрдг рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдПрдХ рдореБрджреНрджрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред
OpenSfM рд╕реНрд░реЛрддреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рд╕рдмрдореЙрдбрд▓ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЖрдВрд╢рд┐рдХ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЛ рдПрдХ рдмрдбрд╝реЗ рдмрдВрдбрд▓ рд╕рдорд╛рдпреЛрдЬрди рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рд╕рдорд╛рдирддрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдЖрдВрд╢рд┐рдХ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕рдВрд░реЗрдЦрд┐рдд рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдЖрдВрд╢рд┐рдХ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЖрдВрд╢рд┐рдХ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рдФрд░ рд╢реЙрдЯ рдХреЛ рдХрдо рд╕реЗ рдХрдо 1e-6 рдкрд░рд┐рдорд╛рдг рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░рддреНрдпреЗрдХ рд╕рдмрдореЙрдбрд▓ рдореЗрдВ рдПрдХрд▓ рдЖрдВрд╢рд┐рдХ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдЕрдиреНрдп рд╕рднреА рдЖрдВрд╢рд┐рдХ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдкреНрд░рддреНрдпреЗрдХ рд╢реЙрдЯ рдФрд░ рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рде-рд╕рд╛рде рддреБрд▓рдирд╛ рдореЗрдВ рд╕рдорд╛рди рд╣реИрдВред
(рдПрдХ рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА рдХрд┐ рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдмрдВрдбрд▓ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдХрдареЛрд░ рдкрд░рд┐рд╡рд░реНрддрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдирддрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреНрдпреЛрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рдпрд╣ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╕рдмрдорд░реНрд╕рд┐рдмрд▓ рдХреЗ рдмреАрдЪ рдЪрд┐рдХрдиреА рд╕реАрдорд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛? рд╣реИрдВрдбрд▓рд┐рдВрдЧ;)
OpenSfM рдореЗрдВ align_submodels рдЪрд░рдг рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдХреЗ рдХрдИ рд╕рдмрдореЙрдбрд▓ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдПрдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдХрдИ рдЖрдВрд╢рд┐рдХ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рд╣реЛрддреЗ рд╣реИрдВред рдиреНрдпреВрдирддрдо рд╕реБрд╡рд┐рдзрд╛ рдЧрдгрдирд╛ рдХреЛ рдХрдо рдХрд░рдХреЗ рдФрд░ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рд╡рд┐рднрд╛рдЬрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡реГрджреНрдзрд┐ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдмрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╕реНрд░реЛрддреЛрдВ рд╕реЗ, рд╕рднреА рдЖрдВрд╢рд┐рдХ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рдХрд┐ рдпрд╣ рднреА рд╣реИ рдХрд┐ рд╕реВрдЪрдХрд╛рдВрдХ 0 рдЖрдВрд╢рд┐рдХ рд╣рдо рдЕрднреА рд╡рд┐рднрд╛рдЬрд┐рдд / рдорд░реНрдЬ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрд░реЗрдЦрдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдорд░реНрдЬ рдХрд┐рдП рдЧрдП рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЕрдирд▓рдЧрдВрдЯреЗрдб рдмрд╛рджрд▓ рд╣реИрдВред
рдорд┐рд▓ рдЧрдпрд╛ред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ OpenSfM рдореЗрдВ apply_transformations (рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ) рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ itertools.groupby рд╡рд┐рдзрд┐ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реЙрд░реНрдЯ рдХреА рдЧрдИ рд╕реВрдЪреА рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдореВрд╣рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧреАред рдЪреВрдВрдХрд┐ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдирд▓рдЧрдЗрди рдХрд┐рдП рдЧрдП рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдХрд┐рд╕реА рднреА рдкрд╣рд▓реЗ рд╕рдВрд░реЗрдЦрд┐рдд рдШрдЯрдХреЛрдВ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
099 рдореЗрдВ PR рдХреЛ рд╕рдмрдорд┐рдЯ рдХрд░рдирд╛ рдФрд░ рдереЛрдбрд╝рд╛ рдореЗрдВ Mapillary OpenSfMред : рдЯрд╛рдбрд╛:
https://github.com/OpenDroneMap/OpenSfM/pull/5 : рдирд░реНрддрдХреА:
рдмрд╣реБрдд рдЦреБрдмрд╕! рдЗрд╕ @linusmartensson рдореЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
рдХреЛрдИ рдкрд░реЗрд╢рд╛рдиреА рдирд╣реАрдВ! рдпрд╣ рдПрдХ рдордЬреЗрджрд╛рд░ рдХреЛрдбрдмреЗрд╕ рд╣реИред : рдЙрдкрд╣рд╛рд░:
рдЕрдм рджреЛрдиреЛрдВ OpenDroneMap / OpenSfM рдФрд░ рдореЗрдкрд┐рд▓рд░реА / OpenSfM рдореЗрдВ рд╡рд┐рд▓рдп рд╣реЛ рдЧрдпрд╛, рдЗрд╕рд▓рд┐рдП рд╕рдорд╛рдкрди рд╣реБрдЖред :)
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдХреЛрдИ рдкрд░реЗрд╢рд╛рдиреА рдирд╣реАрдВ! рдпрд╣ рдПрдХ рдордЬреЗрджрд╛рд░ рдХреЛрдбрдмреЗрд╕ рд╣реИред : рдЙрдкрд╣рд╛рд░:
рдЕрдм рджреЛрдиреЛрдВ OpenDroneMap / OpenSfM рдФрд░ рдореЗрдкрд┐рд▓рд░реА / OpenSfM рдореЗрдВ рд╡рд┐рд▓рдп рд╣реЛ рдЧрдпрд╛, рдЗрд╕рд▓рд┐рдП рд╕рдорд╛рдкрди рд╣реБрдЖред :)