首页 > 其他分享 >open3d Reconstruction system 问题解决

open3d Reconstruction system 问题解决

时间:2023-04-29 18:56:24浏览次数:36  
标签:approx good 数组 Reconstruction system open3d 并行任务 np

1. https://github.com/luckyluckydadada/Azure-Kinect-DK-3D-reconstruction

 

2. open3d 版本:

  0.14.1

  0.16.0 0.17.0 会报错:open3d.cuda.pybind.piplines.odommetry.OdomtryOption boject has no attribute 'max_depth_diff' 

3. 结果

  

问题一:

 

 

 

 

根据错误提示,问题出在文件 opencv_pose_estimation.py 的第 178 行,Transform_good[:3, 3] = [t_approx[0], t_approx[1], t_approx[2]] 这行代码。根据错误信息,看起来是尝试将一个序列赋值给一个数组元素,但是数组维度不够。

可能的解决方法是将 [t_approx[0], t_approx[1], t_approx[2]] 这个列表改为 numpy 数组,可以使用 np.array() 函数将其转换为 1D numpy 数组,即

Transform_good[:3, 3] = np.array([t_approx[0], t_approx[1], t_approx[2]])

 

问题二:

这个报错是由于试图将形状为 (3,1) 的数组广播到形状为 (3,) 的数组,导致维度不匹配。你可以使用 np.squeeze() 函数将数组的维度降为1维,或者使用 [0] 索引来访问数组的第一个元素,例如将这一行代码

Transform_good[:3, 3] = np.array([t_approx[0], t_approx[1], t_approx[2]])[0]

 

问题三:

这个错误发生在使用joblib库并行处理任务时,其中一个工作进程异常终止导致整个程序崩溃。可能的原因是调用函数时发生了段错误或者内存占用过高导致操作系统强制杀死进程。可以考虑增加机器的内存或者减小并行任务的规模

 

减小并行任务规模可以通过减少每个任务的输入数据量来实现。在这种情况下,您可以尝试使用更小的输入数据集来运行代码,或者将原始数据分成更小的块,并逐步处理它们。您还可以通过减少同时运行的作业数来减小并行任务规模。这可以通过在调用 Parallel() 函数时将 n_jobs 参数设置为较小的数字来实现。例如,如果您正在使用 16 个作业来并行处理数据,您可以将 n_jobs 设置为 8 或 4,以便减小作业的规模

 MAX_THREAD 的值是根据 CPU 核心数和分块数量来计算的,因此可以尝试调整代码中 n_fragments 的值来降低并行任务规模,n_fragments是指待处理的碎片(fragment)数量,可以理解为需要被并行处理的任务数量。在这个上下文中,这个变量的值会用来计算并行任务规模

 

问题四:

 

标签:approx,good,数组,Reconstruction,system,open3d,并行任务,np
From: https://www.cnblogs.com/mxleader/p/17364361.html

相关文章

  • 阅读文献《DCRNet:Dilated Convolution based CSI Feedback Compression for Massive M
    这篇文章的作者是广州大学的范立生老师和他的学生汤舜璞,于2022年10月发表在IEEETRANSACTIONSONVEHICULARTECHNOLOGY。文献提出了一种基于空洞卷积(DilatedConvolution)的CSI反馈网络,即空洞信道重建网络(DilatedChannelReconstructionNetwork,DCRNet)。还设计了编码器和解......
  • System.getProperty()参数大全
    java.versionJavaRuntimeEnvironmentversionjava.vendorJavaRuntimeEnvironmentvendorjava.vendor.urlJavavendorURLjava.homeJavainstallationdirectoryjava.vm.specification.version......
  • 数据库还原失败System.Data.SqlClient.SqlError: 无法执行 BACKUP LOG,因为当前没有数
    https://www.shuzhiduo.com/A/1O5EbK6yd7/高版本可以兼容低版本的数据库哎。所以低版本可以直接还原到高版本。过程中提示数据库还原失败System.Data.SqlClient.SqlError:无法执行BACKUPLOG,因为当前没有数据库备份,按照链接中的第二个方法解决了: 在还原的界面中,取消勾选还......
  • 论文阅读笔记《Residual Physics Learning and System Identification for Sim to rea
    ResidualPhysicsLearningandSystemIdentificationforSimtorealTransferofPoliciesonBuoyancyAssistedLeggedRobots发表于2023年。论文较新,未找到发表期刊。基于浮力辅助的足式机器人策略迁移的残差物理学习与系统识别SontakkeN,ChaeH,LeeS,etal.Resi......
  • Tablespace 'innodb_system' Page [page id: space=0, page number=5] log sequence n
    场景:这几天在外面实习,老师的项目数据库崩了让我看,连着两条看到十一二点,哎。主要场景是mysql突然崩溃,发现重启mysqld服务无效,重启系统无效。查看/var/log/mysql.log日志,看到以下内容:Themanualpageathttp://dev.mysql.com/doc/mysql/en/crashing.htmlcontainsinfo......
  • Oracle数据库中SYS、SYSTEM、DBSNMP、SYSMAN四用户的区别
    Oracle数据库中SYS、SYSTEM、DBSNMP、SYSMAN四用户的区别SYS用户:SYS,默认密码为CHANGE_ON_INSTALL,当创建一个数据库时,SYS用户将被默认创建并授予DBA角色,所有数据库数据字典中的基本表和视图都存储在名为SYS的方案中,这些基本表和视图对于Oracle数据库的操作时非常重要的。为了维护......
  • Python中 os.popen、os.system和subprocess.popen方法介绍
    Python提供了多种与操作系统交互的方法,比如os模块中的popen和system方法,此外,Pythonsubprocess模块中的Popen类也提供了与操作系统交互的方法,使用起来更加灵活,本文将简单介绍这几种方法。目录os.popen方法os.system方法susbprocess.Popen方法替代os.popen()方法替代os.system......
  • 在程序里面执行system(“cd /某个目录“),为什么路径切换不成功?
    粉丝提问:彭老师,问下,在程序里面执行system("cd/某个目录"),这样会切换不成功,为啥呢实例代码:粉丝的疑惑是明明第10行执行了cd/media操作,为什么12行执行的pwd>test2.txt结果提示的仍然是当前目录?这是一个很不错的问题,要想整明白这个问题,需要知道system的原理。system()函......
  • Unity框架:JKFrame2.0学习笔记(十一)——MonoSystem(1)
    内部结构MonoSystemMonoSystem是继承MonoBehaviour的,声明几个action,在MonoBehaviour的声明周期内调用,实现了不继承MonoBehaviour也可以用mono的生命周期。包括以下几个方法可供外部调用:Init:初始化,获取MonoSystem的实例AddUpdateListener:添加Update监听RemoveUpdateListener:移除Upd......
  • authentication required to refresh system repositories
     安装完centos8后,图形界面不时出现如下的要求输入密码的验证 解决办法:cd/etc/polkit-1/localauthority/50-local.d/vi46-allow-packagekit.pkla内容如下:[AllowRefreshRepositoryallUsers]Identity=unix-user:*Action=org.freedesktop.packagekit.system-sou......