2

链接文本我想在 SQL Server 2008 中使用内置于 Windows 2008 Server R2 的 TIFF IFilter 和全文搜索...还有 R2。

我已经通过服务器管理器安装了过滤器,并将“强制 TIFF IFilter 为 TIFF 文档中的每个页面执行 OCR”计算机配置 -> 管理模板 -> OCR 中的本地组策略设置更新为“已启用”。

我还创建了一个全文目录和一个名为“FileData”的表,如下所示:

CREATE TABLE [FileServer].[FileData](
 [FileDataId] [int] IDENTITY(1,1) NOT NULL,
 [FileGUID] [uniqueidentifier] ROWGUIDCOL  NOT NULL,
 [Data] [varbinary](max) FILESTREAM  NOT NULL,
 [Extension] [nvarchar](100) NULL,
 [Filename] [nvarchar](256) NULL,
 [Path] [nvarchar](256) NULL,
 CONSTRAINT [PK_FileData_FileDataId] PRIMARY KEY CLUSTERED 
(
 [FileDataId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY] FILESTREAM_ON [FILES],
 CONSTRAINT [UX_File_FileGUID] UNIQUE NONCLUSTERED 
(
 [FileGUID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] FILESTREAM_ON [FILES]

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [FileServer].[FileData] ADD  CONSTRAINT [DF_FileData_FileGUID]  DEFAULT (newid()) FOR [FileGUID]
GO

ALTER TABLE [FileServer].[FileData] ADD  CONSTRAINT [DF_FileData_FileData]  DEFAULT (0x) FOR [Data]
GO

当我将文件插入到该表中时,例如 PDF 或 Word DOC,我可以稍后通过全文搜索在文件中找到关键字:

我用非常清晰的文本(1024 x 768... 大约 12 个字)制作了一个巨大的 TIFF 文件,并将其导入到 FileData 表中。我能找到里面的每一个字。

SELECT [Path], [Filename], [Data]
FROM [FileServer].[FileData]
WHERE FREETEXT(*, 'Jason') and FREETEXT(Extension, 'tif');

但是,当我使用“真正的”TIFF 文件(例如制造商的数据表)时,搜索关键字时会得到零结果。我不知道为什么,也没有太多使用 SQL Server 进行在线故障排除。

我尝试使用各种压缩、不压缩等保存 .TIFF 文件……但我没有任何运气。我的测试文件中的文本很清晰,而且仍然很大。我无法想象文件清晰度是问题所在,尽管我认为这是可能的。

为了便于比较,我拍摄了以下两张图片并导入了它们:

工作样本文件 损坏的样本文件

工作样本的结果非常好。这些是全文索引中工作示例中的关键字: $3.50 © 0004 08 1989 2010 21 21:35:42 235 282 3116 3702 40 48109 89 大量吸收摘要伴随获得的行为优势代理算法算法已经金额阿姆斯特丹分析安出现应用程序 arbor arnficioj artficia1 assignment bv 基于基础 booker brigade bucket building bv 能力仔细变化的特征检查器分类器分类器关闭认知比较竞争的复杂性复杂性计算机面临的混淆考虑连续不断不断设计的信用治疗数据 de 体面 定义 设计 设计 设计 发现 讨论 令人不安 生态 经济 EECS 努力 elsevier 文件结束 工程 环境 环境 错误甚至事件 示例 展示 经验 表达 现存 扩展 面对 可行 文件触发 第一流 遵循格式 游戏生成通用遗传 给予目标 戈德堡 好假期荷兰 然而 假设 图像 沉浸 免疫 撞击 隐含 不准确 信息 情报 兴趣 干预 介绍 不 相关 jh jh 期刊 lb 大 lb 学习 学习 寿命 长 机器 哺乳动物 哺乳动物 哺乳动物s 大量消息 mi michigan 新 nn0004 nn08 nn1989 nn2010 nn21 nn235 nn282 nn3116 nn3702 nn3d5$ nn40 nn48109 nn89 嘈杂的北 nos 新颖的新颖性 可获得 经常 一个操作选项 最初在自己的纸张之外 并行传递模式 支付许可 永久永久播放 播放器播放可能的漂亮问题 提供出版商快速 随机 很少 真实 现实 强化 反复 重印 要求 视网膜 评论 修改 机器人 规则 规则 科学 序列 设置 非常简单 简单 小 稀疏 系统 系统 标记 技术 理论 thor tiff 时间 tt2135 两次扭曲 两个典型的美国大学在我们身上 美国视觉卷 没有奇迹世界大学在我们美国视觉卷没有奇迹世界大学在我们美国视觉卷没有奇迹世界

但是破碎样本的结果只是……嗯,空的。实际 TIFF 图像中没有一个单词: 08 2010 21 21:49:22 END OF FILE 文件格式图像 nn08 nn2010 nn21 标记为 tiff tt2149

如果有人对接下来要尝试什么有任何想法,我会全力以赴。

4

4 回答 4

1

尝试将非工作图像转换为黑白,看看是否有更多单词被识别。

添加

尝试使用 IrfanView(或任何图像工具)将第二张图像的 DPI 设置为 300。然后再试一次。

显然,这些故障排除步骤不是永久的解决方案,它们只是帮助隔离问题。

于 2010-08-22T04:14:04.943 回答
1

好吧,事实证明实际问题是图像的大小。ITFF IFilter 中的 OCR 甚至没有尝试处理它……太大了。我不得不通过反复试验发现这一点,并且找不到任何说明传入 TIFF 的最大尺寸/DPI 的文档。有人知道这些规格吗?这篇文章似乎有一些信息:support.microsoft.com/kb/837847 但是特定于 Sharepoint,我没有时间弄乱设置以查看它是否有效。另外,我真的需要去掉尺寸上限。那里的想法?

于 2010-09-06T18:04:44.470 回答
1

rwong 是正确的。您需要隔离问题。

并非所有 OCR 引擎都可以处理彩色 TIFF 图像并且更喜欢黑白。我猜 OCR 引擎甚至没有处理您的非工作页面,只是发出一条您看不到的错误消息。

  1. 按照上述尝试将文件保存为黑白 TIFF 图像。
  2. 将文件另存为 JPEG 并尝试将图像识别为 JPEG。

我通过我的 OCR 运行了您的非工作图像,并且能够正确提取大部分文本,因此分辨率不是主要问题。

于 2010-09-04T11:02:48.720 回答
0

我发现了一些有趣的东西

我用 C# 做

                    Image tiffFile = Image.FromFile(TiffPath);

                    resultFilePath = Path.Combine(tempFolder, Path.GetFileName(TiffPath));

                    tiffFile.Save(resultFilePath);

并使用将新的 tiff 文件放入数据库,它可以工作,我不知道为什么,但解决了我的问题

于 2017-05-10T19:04:36.290 回答