我见过几个类似的问题,并对我可能尝试的内容有一些想法,但我不记得看到过任何有关传播的内容。
所以:我正在开发一个测量系统,最终基于计算机视觉。
我进行 N 个捕获,并使用一个库来处理它们,该库以平移和旋转的 4x4 仿射变换矩阵的形式输出姿势估计。
这些姿势估计中有一些噪音。每个旋转轴的欧拉角的标准偏差小于 2.5 度,因此所有方向都非常接近(对于所有欧拉角都接近 0 或 180 的情况)。小于 0.25 度的标准误差对我来说很重要。但我已经遇到了欧拉角特有的问题。
我想对所有这些非常接近的姿势估计进行平均以获得单个最终姿势估计。我还想找到一些传播的衡量标准,以便我可以估计准确性。
我知道“平均”对于轮换实际上并没有很好的定义。
(郑重声明,我的代码是使用 Numpy 的 Python 编写的。)
我也可能想对这个平均值进行加权,因为已知某些捕获(和某些轴)比其他捕获更准确。
我的印象是,我可以只取平移向量的平均值和标准差,对于旋转,我可以转换为四元数,取平均值,并以良好的精度重新归一化,因为这些四元数非常接近。
我还听说过所有四元数中的最小二乘法,但我对如何实现这一点的大部分研究都以惨败告终。
这可行吗?在这种情况下是否有一个合理明确的传播衡量标准?
geometry quaternions affinetransform rotational-matrices pose-estimation
我正在使用py.test进行一些非传统的应用程序.基本上,我希望通过print()和input()(这是Python 3.5)在测试中进行用户交互.最终目标是对硬件和多层软件进行半自动测试,即使原则上也无法自动测试.一些测试用例会要求测试技术人员做某事(通过输入或按控制台上的任何键或类似物来确认)或要求他们进行简单的测量或在视觉上确认(在控制台上输入).
我(天真)想要做的事例:
def test_thingie():
thingie_init('red')
print('Testing the thingie.')
# Ask the testing technician to enter info, or confirm that he has set things up physically
x = int(input('Technician: How many *RED* widgets are on the thingie? Enter integer:'))
assert x == the_correct_number
Run Code Online (Sandbox Code Playgroud)
这适用于使用pytest -s调用测试文件以防止stdin和stdout捕获,但with capsys.disabled()py.test文档中记录的means()不起作用,因为它们只影响stdout和stderr.
使用py.test模块中的代码,没有命令行选项,理想情况下每次测试,这是一个很好的方法吗?
该平台,它的价值,是Windows,我宁愿没有这个clobber或被包装stdin/out /由嵌套shell,罕见的shell等产生的任何东西破坏.