Linux 意味着商业
美国邮政服务 (USPS) 于 1997 年在美国各地部署了超过 900 套基于 Linux 的系统,用于自动识别邮件上的目的地地址。每个系统由五台双 Pentium Pro 200MHz (PP200) 计算机和一台单 PP200 计算机组成,全部运行 Linux。
USPS 已经拥有邮件扫描仪和一些旧的定制计算机来识别地址。该项目将 Linux 计算机连接到每个扫描仪,以便运行由 RAF Technology Inc. 提供的更现代的 OCR(光学字符识别)算法。该系统由我在担任 RAF Technology Inc. 工程副总裁期间设计。
五台 Linux 机器中的一台配有显示器、键盘、鼠标、CD-ROM 和软盘驱动器,其他四台是无头的。每台机器都有 128MB 内存和 2.5GB 硬盘驱动器。邮件以 212dpi 的分辨率和每秒 12 件的速度进行扫描。二进制图像通过定制电缆和接收器板发送到其中一台 Linux 机器。该板打包位,并使用 DMA(直接内存访问)通过 PCI 总线传输数据。接收计算机运行一个进程,该进程压缩图像并通过以太网将其路由到 10 个相同的进程之一(每个 CPU 两个),这些进程执行手写识别和机打识别。这些算法在不到一秒的时间内识别图像中的文本,并将 ASCII 结果返回到单独计算机上的数据库,该数据库查找邮政编码。从属计算机通过子网与主计算机连接,主计算机有第二张以太网卡连接到与扫描仪相关的其余计算机。本地网络是 10Mbps 以太网,处理发送到从属机的压缩二进制图像和从从属机接收的 ASCII 结果。
最初,我计划只运行机打识别算法,与手写识别算法相比,它使用的资源要少得多。大部分邮件流是机打地址。最初的系统设计为配备四台单 PP200,每台配备 32MB 内存。只有一台配备 CD、硬盘和显示器。其他被称为从属机的机器将没有大容量存储,并将从以太网卡上的 ROM 启动。就在系统即将部署之前,USPS 决定将纽约州立大学布法罗分校开发的手写识别技术纳入系统,因为它足够准确。我们重新配置了从属机,使其配备 2.5GB 硬盘和 128MB 内存。
我为从属计算机选择了尺寸、速度和成本的最佳组合,并最终选择了 Tri Map International 提供的整洁的 3.5 英寸高机架机箱。另一种选择是带有多达四台 PC-on-a-card 计算机的无源背板。PC-on-a-card 计算机基本上是 ISA 卡,上面装有完整的 PC。该卡从背板获取电源,您可以一次将四张卡插入一个背板,因为背板分为四个独立的 ISA 总线。理论上,您可以在更小的封装中放置更多的 CPU。无源背板在机架上占用 7 英寸的垂直空间用于四个 CPU。机架的宽度和深度基本上是固定的。问题是 PC-on-a-card 计算机非常昂贵,并且不支持最快的 CPU。当时,当 Baby AT 外形尺寸的 PP200 可用时,我只能在卡上获得 P166。Baby AT 外形尺寸是极其流行的 PC 主板类型,带有大的圆形键盘插头。我更放心地推荐 Baby AT 外形尺寸,因为更换主板将永远可用。最好的选择最终是漂亮的 3.5 英寸高机箱。因此,在 7 英寸的垂直空间内,我获得了两个 PP200 而不是四个 P166,成本更低,主板更常见。
当我从事这个项目时,计算机的速度一直在加快。到我们部署时,我们在 3.5 英寸机箱中放置了两个双 PP200,而 PC-on-a-card 计算机仍然只能容纳 P200。目前尚不清楚今天的最佳选择是什么。奔腾 II 配备一个大的 riser 卡,无法安装在 3.5 英寸机箱中。3.5 英寸机箱需要一个特殊的板,将以太网卡弯曲 90 度,使其与主板平行。这限制了可以插入的卡数量;幸运的是,我只需要以太网卡。
Linux 是此应用程序的绝佳操作系统。为了使操作系统和 OCR 软件在 32MB 内存中运行且没有交换空间,内核被重新编译,只保留了必需品——这对于 Microsoft 操作系统来说是不可能的。由于 Linux 是免费的,因此我不必担心许可证费用。定制卡的设备驱动程序开发起来相对轻松,我必须说 Linux “产品支持”远优于我使用过的任何其他产品。当我在内核中分配大量真实内存时遇到问题时,我发送了一个电子邮件问题,并且总是收到快速回复。事实证明,我需要修改源代码并重新编译,因为 USPS 的一个副项目需要大量真实内存,该副项目旨在捕获 8 位灰度图像。
已经安装到位的扫描仪可以生成 8 位灰度数据。不幸的是,以每秒 12 帧图像的速度,灰度数据以 28MBps 的速率到达。采集卡和 PCI 总线能够将数据传送到 PC 的 RAM,但磁盘无法足够快地存储它。我设置 PCI 卡以图像填充 RAM,直到没有空间为止。然后将从设备驱动程序读取数据并写入磁盘。在将数据写入磁盘时,扫描仪继续以每秒 12 件邮件的速度运行,但 PCI 卡只是忽略图像,直到 RAM 被释放。使用此系统,USPS 可以实时捕获体面的灰度邮件图像样本。
USPS 告诉我,他们正在让另一家公司构建定制的便携式灰度数据采集机,以便能够在美国各地捕获样本图像。我告诉他们,昂贵的定制解决方案不是必要的,因为我可以在几周内以每台几千美元的价格构建一台。我通过组装几个可搬运的 Linux 机器做到了这一点。我使用了便携式电脑机箱,它有一个彩色平板显示器和一个全尺寸键盘,可以扣在屏幕上。由于我需要在 PC 中放入磁带驱动器和 PCI 卡,因此我无法使用笔记本电脑。我在便携式电脑上运行 X Window 系统服务器没有任何问题。如果没有 X,该设置也可以工作,但 USPS 能够当场查看图像非常重要。这些数据采集单元按照设置,为他们提供了他们所需的东西,并且效果很好。
