Browse Source

配置手工lock锁定相机坐标

master
youwater 2 years ago
parent
commit
fc21c26f39
  1. 8
      config/exportXMP.config.lock.xml
  2. 20
      tools/gen_xmps.py

8
config/exportXMP.config.lock.xml

@ -0,0 +1,8 @@
<Configuration id="{EC40D990-B2AF-42A4-9637-1208A0FD1322}">
<entry key="xmpMerge" value="true"/>
<entry key="xmpExGps" value="true"/>
<entry key="xmpFlags" value="true"/>
<entry key="xmpCalibGroups" value="true"/>
<entry key="xmpCamera" value="3"/>
<entry key="xmpRig" value="true"/>
</Configuration>

20
tools/gen_xmps.py

@ -30,7 +30,7 @@ def upload_xmp(pid):
print(f'{time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())} pid: {pid} xmp文件上传完成,共费时{time.time() - start_time}') print(f'{time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())} pid: {pid} xmp文件上传完成,共费时{time.time() - start_time}')
def main(pid): def main(pid, lock=False):
print(f'{time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())} 开始计算相机位姿...') print(f'{time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())} 开始计算相机位姿...')
start_time = time.time() start_time = time.time()
libs.down_from_oss(config.oss_bucket, config.workdir, pid) libs.down_from_oss(config.oss_bucket, config.workdir, pid)
@ -49,12 +49,17 @@ def main(pid):
else: else:
sys.exit(0) sys.exit(0)
if lock:
exportxmp = ' -exportXMP "D:\\make2\\config\\exportXMP.config.lock.xml" '
else:
exportxmp = ' -exportXMP "D:\\make2\\config\\exportXMP.config.xml" '
cmd = f'{config.rcbin} {config.r2["init"]} -setInstanceName {pid} \ cmd = f'{config.rcbin} {config.r2["init"]} -setInstanceName {pid} \
-save "{os.path.join(config.workdir, pid, f"{pid}.rcproj")}" \ -save "{os.path.join(config.workdir, pid, f"{pid}.rcproj")}" \
-addFolder "{os.path.join(config.workdir, pid, "photo1")}" -selectAllImages \ -addFolder "{os.path.join(config.workdir, pid, "photo1")}" -selectAllImages \
-detectMarkers "D:\\make2\\config\\detectMarkers.config.xml" \ -detectMarkers "D:\\make2\\config\\detectMarkers.config.xml" \
-align -align \ -align -align \
-exportXMP "D:\\make2\\config\\exportXMP.config.xml" \ {exportxmp} \
-save "{os.path.join(config.workdir, pid, f"{pid}.rcproj")}" -quit' -save "{os.path.join(config.workdir, pid, f"{pid}.rcproj")}" -quit'
print(cmd) print(cmd)
cmd = shlex.split(cmd) cmd = shlex.split(cmd)
@ -74,7 +79,7 @@ def main(pid):
-addFolder "{os.path.join(config.workdir, pid, "photo2")}" -selectAllImages \ -addFolder "{os.path.join(config.workdir, pid, "photo2")}" -selectAllImages \
-detectMarkers "D:\\make2\\config\\detectMarkers.config.xml" \ -detectMarkers "D:\\make2\\config\\detectMarkers.config.xml" \
{libs.get_defineDistances(config.ps_floor_sticker.get(psid, config.ps_floor_sticker["default"]))} -align -align -update {config.r2["setRegion"]} \ {libs.get_defineDistances(config.ps_floor_sticker.get(psid, config.ps_floor_sticker["default"]))} -align -align -update {config.r2["setRegion"]} \
-exportXMP "D:\\make2\\config\\exportXMP.config.xml" \ {exportxmp} \
-exportReconstructionRegion "{os.path.join(config.workdir, pid, f"{pid}.rcbox")}" \ -exportReconstructionRegion "{os.path.join(config.workdir, pid, f"{pid}.rcbox")}" \
-save "{os.path.join(config.workdir, pid, f"{pid}.rcproj")}" -quit' -save "{os.path.join(config.workdir, pid, f"{pid}.rcproj")}" -quit'
print(cmd) print(cmd)
@ -83,6 +88,7 @@ def main(pid):
print(f'{time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())} {pid} photo2相机位姿完成,共费时{libs.diff_time(start_time)}') print(f'{time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())} {pid} photo2相机位姿完成,共费时{libs.diff_time(start_time)}')
# TODO:加入report相机位姿质量评估 # TODO:加入report相机位姿质量评估
if not lock:
upload_or_not = input('是否上传oss?(y/n)') upload_or_not = input('是否上传oss?(y/n)')
if upload_or_not == 'y': if upload_or_not == 'y':
upload_xmp(pid) upload_xmp(pid)
@ -100,6 +106,12 @@ if __name__ == '__main__':
pids = sys.argv[1].split(',') pids = sys.argv[1].split(',')
for pid in pids: for pid in pids:
main(pid) main(pid)
elif len(sys.argv) == 3:
pids = sys.argv[1].split(',')
for pid in pids:
main(pid)
if sys.argv[2] == 'lock':
main(pid, lock=True)
else: else:
print(f'useage: python {sys.argv[0]} pid1,pid2,pid3') print(f'useage: python {sys.argv[0]} pid1,pid2,pid3 [lock]')
sys.exit(1) sys.exit(1)
Loading…
Cancel
Save