原始 MediaWiki 页面

我知道编辑这个网站吗?
the Fiji distribution of ImageJ本页介绍与 the Fiji distribution of ImageJ 相关的内容。点击徽标查看详情。

TrackMate 性能

自迁移出 MediaWiki 以来,本页内容尚未经过审查。如果您愿意帮忙,请查看帮助指南

这是一份非常不完整的草案

测试机

用于这些测试的计算机如下:

  • Mac Pro *米-2010
  • 处理器 2 x 2.66 GHz 6 核 Intel Xeon
  • 内存 24 GB 1333 MHz DDR3 ECC
  • 软件 Mac OS X Lion 10.7.5 (11G63)

执行时间

此处报告的测试在 Apple Mac Pro、2 x 2.66 GHz 6 核 Intel Xeon、24 Go 1333 MHz DDR3、运行 Mac OS X v10.7.5 和 Java 1.6 上运行。实例化的检测器被驯服为仅使用 1 个线程。除非没有说明,否则不进行中值模块和子节点定位。

DoG 和 LoG 乐园

二维图像的处理时间与大小的关系

对于uint16图像,改变其大小,包含200个半径为3个的高点(一切均以像素为单位)。

N(像素) 图像尺寸 DoG检测器时间(毫秒) LoG检测器时间(毫秒)  
256 256 256 16x16 256 16x16 16x16 3.0 4.8  
1024 1024 1024 32x32 32x32 2.95 2.95 4.3 2.95 4.3
4096 64x64 64x64 64x64 3.95 3.95 4.35 4.35
16384 128x128 128x128 128x128 7.9 7.9 5.85 5.85
65536 256x256 256x256 256x256 23.35 256x256 23.35 17.7 17.7
262144 262144 262144 512x512 512x512 88.2 88.2 61.15 61.15
1048576 1024x1024 1024x1024 1024x1024 357.3 357.3 251.65 357.3 251.65 251.65
2359296 2359296 2359296 1536x1536 1536x1536 789.85 789.85 605.4 789.85 605.4 605.4
4194304 4194304 4194304 2048x2048 2048x2048 1463.4 2048x2048 1463.4 1463.4 1201.1 1201.1

对于DoG检测器来说,毫不奇怪,我们发现执行时间与像素数量成正比,大约为t (ms) = 3.4e-4 x Npixels。这是预期的因为,所有计算都是在直接空间中完成的。

LoG检测器在傅里叶空间中运行,并且由于我们使用傅里叶变换实现,图像会用0填充来达到等于2的大小。此处未点这一点,因为除了一个测试之外,所有测试都是使用这样的大小进行的。尽管如此,执行时间仍然是一个线性情况,并表现出一些的第二形状。最佳线性拓扑产生t (ms) = 2.8e-4 x Npixels的低值,表明LoG检测器比DoG检测器稍快。 Dogandlogtimevspixels

3D 图像的处理时间与其大小的关系

| N(像素)|图像尺寸| DoG检测器时间(毫秒)| LoG检测器时间(毫秒)| |:———–|————-|————————————————|————————| | 4096 | 16x16x16 | 16x16x16 16x16x16 8.7 | 8.7 24.7 | 24.7 | 32768 | 32x32x32 | 32x32x32 32x32x32 23.5 | 32x32x32 23.5 38.5 | 38.5 | 262144 | 262144 262144 64x64x64 | 64x64x64 129.3 | 64x64x64 129.3 159.2 | 129.3 159.2 159.2 | 2097152 | 2097152 2097152 128x128x128 | 128x128x128 875.1 | 875.1 936.3 | 936.3 | 16777216 | 256x256x256 | 256x256x256 256x256x256 7054.0 | 256x256x256 7462.4 | 7462.4 7462.4 | 134217728 | 512x512x512 | 61477.2 | 58860.6 |

然而,线性结构轮廓陡峭一些:我们同样,t (ms) = 4.6e-4 x Npixels*,将其顶点于 3D 内核头部。

有趣的是,LoG 检测器在大多数情况下似乎变得最慢,我无法很好地解释这一点。 Dogandlogtimevspixels3d

二维图像的处理时间与光斑半径的关系

我们使用了 1024x1024 uint16 图像,带有 200 个高点,我们改变了它们的大小。

TrackMate_DoGandLoGTimeVsRadius2D.png

我们发现,对于 DoG 检测器,处理时间随着指定的半径线性增加,大约如下 t (ms) = 20.5 x radius + 260。由于高斯差是在直接空间中计算的,因此预计会有显着的增加,因为有更多的像素需要迭代。然而,如果没有优化,我们应该发现时间随着半径的平方而增加,并且发现与图像尺寸相同的依赖性。由于高斯滤波[^1]的巧妙实现,这种情况得以避免。 LoG检测器显示出近乎恒定的处理时间,这使得它适合半径大于2像素的光点。这是由于我们计算本质的方式造成的,如下所述。

3D图像的处理时间与光斑半径的关系

这次我们使用了 256x256x256 3D 图像,但其他参数相同。 Dogandlogtimevsradius3d 处理时间增加,但与 DoG 情况下的线性略有偏差。我们检索 3D 图像的 3D 内核开销。 LoG 性能明显强调了由于傅立叶变换而使用的 0 填充:事实上,处理以渐进方式增加。我们使用傅立叶变换通过 LoG 核来计算填充。但对于我们使用的实现,内核映像(以及源映像)会用 0 填充,直到它们的大小达到 2 的幂(128、256、512 等)。一旦所需的内核大小时间小于 2因为最终处理时间取决于像素数量,所以我们看到处理时间恒定,直到内核大小施加更大的2次方。

####根据性能选择DoG和LoG

渐进的演变使得根据LoG和DoG之间的性能进行选择变得更加困难。作为粗略的经验法则,我们会记住

  • 对于半径大于2像素的情况,LoG检测器在2D中相当于DoG检测器。
  • 对于半径大于4像素的情况,LoG检测器在3D中相当于DoG检测器。

参考文献

[^1]:https://github.com/imagej/imglib/blob/-/algorithms/core/src/main/java/net/imglib2/algorithm/gauss3/Gauss3.java