此內容適用於:
v4.0 (GA) | 舊版:
v3.1 (GA)
v3.0 (GA)
附註
若要從外部影像如標籤、街道標誌和海報中擷取文字,請使用 Azure Image Analysis v4.0 Read 功能,該功能針對一般(非文件)影像優化,並搭配效能提升的同步 API。 這項功能可讓您更輕鬆地在即時使用者體驗案例中內嵌 OCR。
文件智慧讀取光學字元辨識(OCR)模型的解析度高於 Azure Vision Read,能從 PDF 文件及掃描影像中擷取列印及手寫文字。 它還包括從 Microsoft Word、Excel、PowerPoint 和 HTML 文件中擷取文字的支援。 它會偵測段落、文字行、字組、位置和語言。 讀取模型是其他文件智慧服務預建模型的基礎 OCR 引擎,例如版面配置、一般文件、發票、收據、身分識別 (ID) 文件、醫療保險卡、W2 (聯邦報稅表) 以及自訂模型。
什麼是光學字元辨識?
文件的光學字元辨識 (OCR) 已針對多種檔案格式及全域語言中的大型文字密集文件進行最佳化。 它包含更高解析度的文件影像掃描等功能,可以更妥善地處理較小且密集的文字、段落偵測,以及可填寫的表單管理。 OCR 功能也包括單一字元方塊等進階案例,還能精確擷取發票、收據及其他預先建置案例中常見的索引鍵欄位。
開發選項 (v4)
文件智慧服務 v4.0:2024-11-30 支援下列工具、應用程式和程式庫:
| 功能 | 資源 | 型號識別碼 |
|---|---|---|
| 讀取 OCR 模型 | • 文件智慧服務工作室 • REST API • C# SDK • Python SDK • Java SDK • JavaScript SDK |
prebuilt-read |
輸入需求 (v4)
支援下列檔案格式。
| 模型 | 影像: JPEG/JPG、PNG、BMP、TIFF、HEIF |
Office: Word (DOCX)、Excel (XLSX)、PowerPoint (PPTX)、HTML |
|
|---|---|---|---|
| 讀取 | ✔ | ✔ | ✔ |
| 版面配置 | ✔ | ✔ | ✔ |
| 一般文件 | ✔ | ✔ | |
| 預先建置 | ✔ | ✔ | |
| 自訂擷取 | ✔ | ✔ | |
| 自訂分類 | ✔ | ✔ | ✔ |
- 相片和掃描:若要得到最佳結果,請為每個文件提供一張清晰的相片或高畫質的掃描檔案。
- PDF 和 TIFF:對於 PDF 和 TIFF,最多可以處理 2,000 頁。 (使用免費層訂用帳戶的情況下,只會處理前兩頁。)
- 檔案大小:對於付費 (S0) 層,分析文件的檔案大小為 500 MB,對於免費 (F0) 層,則為 4 MB。
- 影像維度:影像維度必須介於 50 像素 x 50 像素和 10,000 像素 x 10,000 像素之間。
- 密碼鎖定:如果您的 PDF 有密碼鎖定,則必須先移除鎖定才能提交。
- 文字高度:針對 1024 x 768 像素影像的擷取文字高度下限為 12 像素。 此維度對應至大約 8 點文字 (150 個 DPI)。
- 自訂模型訓練:自訂範本模型的定型資料頁數上限為 500,而自訂神經網路模型的上限則為 50,000。
- 自訂擷取模型訓練:範本模型的定型資料大小總計為 50 MB,而神經模型的大小總計則為 1 GB。
- 自訂分類模型訓練:訓練資料的大小總計為 1 GB (上限為 10,000 頁)。 對於 2024-11-30 (GA),訓練資料的大小總計為 2 GB,最多 10,000 頁。
- Office 檔案類型 (DOCX、XLSX、PPTX):字串長度上限為 8 百萬個字元。
開始使用讀取模型 (v4)
請嘗試使用文件智慧服務工作室,擷取表單和文件中的文字。 您需要以下資產:
一個 Azure 訂用帳戶 - 您可以建立一個免費訂用帳戶。
Azure 入口網站中的文件智慧服務執行個體。 您可以使用免費定價層 (
F0) 來試用服務。 部署資源後,選取 [前往資源] 以取得金鑰和端點。
附註
文件智慧服務工作室目前不支援 Microsoft Word、Excel、PowerPoint 和 HTML 檔案格式。
使用文件智慧服務工作室處理的範例文件
在 Document Intelligence Studio 首頁上,選取 [讀取]。
您可以分析範例文件,或上傳您自己的檔案。
選取 [執行分析] 按鈕,如有必要,設定 [分析選項]:
支援的語言和地區設定 (v4)
如需支援語言的完整清單,請參閱我們的語言支援 - 文件分析模型頁面。
資料擷取 (v4)
附註
v4.0 支援 Microsoft Word 和 HTML 檔案。 目前不支援下列功能:
- 沒有與每個頁面物件一起傳回的角度、寬度/高度和單位。
- 未偵測到每個物件的周框多邊形或周框區域。
- 未傳回任何頁面範圍 (
pages) 作為參數。 - 沒有
lines物件。
可搜尋 PDF
可搜尋 PDF 功能可讓您將類比 PDF (例如掃描影像 PDF 檔案) 轉換為具有內嵌文字的 PDF。 內嵌文字可在 PDF 擷取的內容中啟用深層文字搜尋,方法是將偵測到的文字實體重疊在影像檔案上。
重要事項
- 目前,只有讀取 OCR 模型
prebuilt-read支援可搜尋 PDF 功能。 使用此功能時,請將modelId指定為prebuilt-read。 其他模型類型會針對這個預覽版本傳回錯誤。 - 可搜尋 PDF 隨附於
2024-11-30GAprebuilt-read模型,不需新增任何成本,即可產生可搜尋 PDF 輸出。
使用可搜尋 PDF
若要使用可搜尋 PDF,請使用 POST 作業提出 Analyze 要求,並將輸出格式指定為 pdf:
POST {endpoint}/documentintelligence/documentModels/prebuilt-read:analyze?_overload=analyzeDocument&api-version=2024-11-30&output=pdf
{...}
202
輪詢 Analyze 作業完成。 作業完成之後,請提出 GET 要求來擷取 PDF 格式的 Analyze 作業結果。
成功完成時,可以擷取 PDF 並下載為 application/pdf。 此作業允許直接下載 PDF 的內嵌文字格式,而不是 Base64 編碼 JSON。
// Monitor the operation until completion.
GET /documentModels/prebuilt-read/analyzeResults/{resultId}
200
{...}
// Upon successful completion, retrieve the PDF as application/pdf.
GET {endpoint}/documentintelligence/documentModels/prebuilt-read/analyzeResults/{resultId}/pdf?api-version=2024-11-30
URI Parameters
Name In Required Type Description
endpoint path True
string
uri
The Document Intelligence service endpoint.
modelId path True
string
Unique document model name.
Regex pattern: ^[a-zA-Z0-9][a-zA-Z0-9._~-]{1,63}$
resultId path True
string
uuid
Analyze operation result ID.
api-version query True
string
The API version to use for this operation.
Responses
Name Type Description
200 OK
file
The request has succeeded.
Media Types: "application/pdf", "application/json"
Other Status Codes
DocumentIntelligenceErrorResponse
An unexpected error response.
Media Types: "application/pdf", "application/json"
Security
Ocp-Apim-Subscription-Key
Type: apiKey
In: header
OAuth2Auth
Type: oauth2
Flow: accessCode
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize
Token URL: https://login.microsoftonline.com/common/oauth2/token
Scopes
Name Description
https://cognitiveservices.azure.com/.default
Examples
Get Analyze Document Result PDF
Sample request
HTTP
HTTP
Copy
GET https://myendpoint.cognitiveservices.azure.com/documentintelligence/documentModels/prebuilt-invoice/analyzeResults/3b31320d-8bab-4f88-b19c-2322a7f11034/pdf?api-version=2024-11-30
Sample response
Status code:
200
JSON
Copy
"{pdfBinary}"
Definitions
Name Description
DocumentIntelligenceError
The error object.
DocumentIntelligenceErrorResponse
Error response object.
DocumentIntelligenceInnerError
An object containing more specific information about the error.
DocumentIntelligenceError
The error object.
Name Type Description
code
string
One of a server-defined set of error codes.
details
DocumentIntelligenceError[]
An array of details about specific errors that led to this reported error.
innererror
DocumentIntelligenceInnerError
An object containing more specific information than the current object about the error.
message
string
A human-readable representation of the error.
target
string
The target of the error.
DocumentIntelligenceErrorResponse
Error response object.
Name Type Description
error
DocumentIntelligenceError
Error info.
DocumentIntelligenceInnerError
An object containing more specific information about the error.
Name Type Description
code
string
One of a server-defined set of error codes.
innererror
DocumentIntelligenceInnerError
Inner error.
message
string
A human-readable representation of the error.
In this article
URI Parameters
Responses
Security
Examples
200 OK
Content-Type: application/pdf
Pages 參數
頁面集合是文件內的頁面清單。 每個頁面都會在文件內循序表示,並包含方向角度,指出頁面是否旋轉,以及寬度和高度 (以像素表示維度)。 會計算模型輸出中的頁面單位,如下所示:
| 檔案格式 | 計算的頁面單位 | 總頁數 |
|---|---|---|
| 影像 (JPEG/JPG、PNG、BMP、HEIF) | 每個影像 = 1 個頁面單位 | 影像總計 |
| PDF 每頁 = 1 個頁面單位 | PDF 總頁數 | |
| TIFF | TIFF = 1 個頁面單位中的每個映像 | TIFF 中的影像總數 |
| Word (DOCX) | 最多 3,000 個字元 = 1 個頁面單位,不支援內嵌或連結的影像 | 總頁數 (每頁最多 3,000 個字元) |
| Excel (XLSX) | 每個工作表 = 1 個頁面單位,不支援內嵌或連結的影像 | 工作表總計 |
| PowerPoint (PPTX) | 每張投影片 = 1 個頁面單位,不支援內嵌或連結的影像 | 投影片總計 |
| HTML | 最多 3,000 個字元 = 1 個頁面單位,不支援內嵌或連結的影像 | 總頁數 (每頁最多 3,000 個字元) |
# Analyze pages.
for page in result.pages:
print(f"----Analyzing document from page #{page.page_number}----")
print(f"Page has width: {page.width} and height: {page.height}, measured with unit: {page.unit}")
使用頁面進行文字擷取
若為大型的多頁 PDF 文件,請使用 pages 查詢參數來表示文字擷取的特定頁碼或頁面範圍。
擷取段落
文件智慧服務中的讀取 OCR 模型會擷取 paragraphs 集合中所有已識別的文字區塊,以做為 analyzeResults 底下的最上層物件。 此集合中的每個項目都代表一個文字區塊,並包含作為 content 的擷取文字和週框 polygon 座標。
span 資訊會指向包含文件全文檢索的最上層 content 屬性的文字片段。
"paragraphs": [
{
"spans": [],
"boundingRegions": [],
"content": "While healthcare is still in the early stages of its Al journey, we are seeing pharmaceutical and other life sciences organizations making major investments in Al and related technologies.\" TOM LAWRY | National Director for Al, Health and Life Sciences | Microsoft"
}
]
文字、行和字組擷取
讀取 OCR 模型會將列印和手寫樣式的文字擷取為 lines 和 words。 模型會輸出所擷取字組的週框 polygon 座標和 confidence。 若也偵測到指向相關文字的範圍,styles 集合便會包含任何手寫樣式的文字行。 此功能適用於支援的手寫語言。
針對 Microsoft Word、Excel、PowerPoint 和 HTML,文件智慧服務讀取模型 v3.1 和更新版本會依原狀擷取所有內嵌文字。 文字會擷取為字組和段落。 不支援內嵌的影像。
# Analyze lines.
if page.lines:
for line_idx, line in enumerate(page.lines):
words = get_words(page, line)
print(
f"...Line # {line_idx} has {len(words)} words and text '{line.content}' within bounding polygon '{line.polygon}'"
)
# Analyze words.
for word in words:
print(f"......Word '{word.content}' has a confidence of {word.confidence}")
手寫樣式擷取
回應會包含辨別每個文字行是否為手寫樣式的分類,以及信賴度分數。 如需詳細資訊,請參閱手寫語言支援。 下列範例顯示 JSON 程式碼片段範例。
"styles": [
{
"confidence": 0.95,
"spans": [
{
"offset": 509,
"length": 24
}
"isHandwritten": true
]
}
如果您已啟用字型/樣式附加元件功能,也會取得字型/樣式結果作為 styles 物件的一部分。
後續步驟 v4.0
完成文件智慧服務快速入門:
探索 REST API:
在 GitHub 上尋找更多範例:
附註
若要從外部影像如標籤、街道標誌和海報中擷取文字,請使用 Azure Image Analysis v4.0 Read 功能,該功能針對一般(非文件)影像優化,並搭配效能提升的同步 API。 這項功能可讓您更輕鬆地在即時使用者體驗案例中內嵌 OCR。
文件智慧讀取光學字元辨識(OCR)模型的解析度高於 Azure Vision Read,能從 PDF 文件及掃描影像中擷取列印及手寫文字。 它還包括從 Microsoft Word、Excel、PowerPoint 和 HTML 文件中擷取文字的支援。 它會偵測段落、文字行、字組、位置和語言。 讀取模型是其他文件智慧服務預建模型的基礎 OCR 引擎,例如版面配置、一般文件、發票、收據、身分識別 (ID) 文件、醫療保險卡、W2 (聯邦報稅表) 以及自訂模型。
什麼是文件的 OCR?
文件的光學字元辨識 (OCR) 已針對多種檔案格式及全域語言中的大型文字密集文件進行最佳化。 它包含更高解析度的文件影像掃描等功能,可以更妥善地處理較小且密集的文字、段落偵測,以及可填寫的表單管理。 OCR 功能也包括單一字元方塊等進階案例,還能精確擷取發票、收據及其他預先建置案例中常見的索引鍵欄位。
開發選項
文件智慧服務 v3.1 支援下列工具、應用程式和程式庫:
| 功能 | 資源 | 型號識別碼 |
|---|---|---|
| 讀取 OCR 模型 | • 文件智慧服務工作室 • REST API • C# SDK • Python SDK • Java SDK • JavaScript SDK |
prebuilt-read |
文件智慧服務 v3.0 支援下列工具、應用程式和程式庫:
| 功能 | 資源 | 型號識別碼 |
|---|---|---|
| 讀取 OCR 模型 | • 文件智慧服務工作室 • REST API • C# SDK • Python SDK • Java SDK • JavaScript SDK |
prebuilt-read |
輸入需求
支援下列檔案格式。
| 模型 | 影像: JPEG/JPG、PNG、BMP、TIFF、HEIF |
Office: Word (DOCX)、Excel (XLSX)、PowerPoint (PPTX)、HTML |
|
|---|---|---|---|
| 讀取 | ✔ | ✔ | ✔ |
| 版面配置 | ✔ | ✔ | ✔ |
| 一般文件 | ✔ | ✔ | |
| 預先建置 | ✔ | ✔ | |
| 自訂擷取 | ✔ | ✔ | |
| 自訂分類 | ✔ | ✔ | ✔ |
- 相片和掃描:若要得到最佳結果,請為每個文件提供一張清晰的相片或高畫質的掃描檔案。
- PDF 和 TIFF:對於 PDF 和 TIFF,最多可以處理 2,000 頁。 (使用免費層訂用帳戶的情況下,只會處理前兩頁。)
- 檔案大小:對於付費 (S0) 層,分析文件的檔案大小為 500 MB,對於免費 (F0) 層,則為 4 MB。
- 影像維度:影像維度必須介於 50 像素 x 50 像素和 10,000 像素 x 10,000 像素之間。
- 密碼鎖定:如果您的 PDF 有密碼鎖定,則必須先移除鎖定才能提交。
- 文字高度:針對 1024 x 768 像素影像的擷取文字高度下限為 12 像素。 此維度對應至大約 8 點文字 (150 個 DPI)。
- 自訂模型訓練:自訂範本模型的定型資料頁數上限為 500,而自訂神經網路模型的上限則為 50,000。
- 自訂擷取模型訓練:範本模型的定型資料大小總計為 50 MB,而神經模型的大小總計則為 1 GB。
- 自訂分類模型訓練:訓練資料的大小總計為 1 GB (上限為 10,000 頁)。 對於 2024-11-30 (GA),訓練資料的大小總計為 2 GB,最多 10,000 頁。
- Office 檔案類型 (DOCX、XLSX、PPTX):字串長度上限為 8 百萬個字元。
開始使用讀取模型
請嘗試使用文件智慧服務工作室,擷取表單和文件中的文字。 您需要以下資產:
一個 Azure 訂用帳戶 - 您可以建立一個免費訂用帳戶。
Azure 入口網站中的文件智慧服務執行個體。 您可以使用免費定價層 (
F0) 來試用服務。 部署資源後,選取 [前往資源] 以取得金鑰和端點。
附註
文件智慧服務工作室目前不支援 Microsoft Word、Excel、PowerPoint 和 HTML 檔案格式。
使用文件智慧服務工作室處理的範例文件
在 Document Intelligence Studio 首頁上,選取 [讀取]。
您可以分析範例文件,或上傳您自己的檔案。
選取 [執行分析] 按鈕,如有必要,設定 [分析選項]:
支援的語言和地區設定
如需支援語言的完整清單,請參閱我們的語言支援 - 文件分析模型頁面。
資料擷取
附註
v4.0 支援 Microsoft Word 和 HTML 檔案。 目前不支援下列功能:
- 沒有與每個頁面物件一起傳回的角度、寬度/高度和單位。
- 未偵測到每個物件的周框多邊形或周框區域。
- 未傳回任何頁面範圍 (
pages) 作為參數。 - 沒有
lines物件。
可搜尋 PDF
可搜尋 PDF 功能可讓您將類比 PDF (例如掃描影像 PDF 檔案) 轉換為具有內嵌文字的 PDF。 內嵌文字可在 PDF 擷取的內容中啟用深層文字搜尋,方法是將偵測到的文字實體重疊在影像檔案上。
重要事項
- 目前,只有讀取 OCR 模型
prebuilt-read支援可搜尋 PDF 功能。 使用此功能時,請將modelId指定為prebuilt-read。 其他模型類型會傳回錯誤。 - 可搜尋 PDF 隨附於
2024-11-30prebuilt-read模型,不需新增任何成本,即可產生可搜尋 PDF 輸出。- 可搜尋的 PDF 目前僅支援 PDF 檔案做為輸入。
使用可搜尋 PDF
若要使用可搜尋 PDF,請使用 POST 作業提出 Analyze 要求,並將輸出格式指定為 pdf:
POST /documentModels/prebuilt-read:analyze?output=pdf
{...}
202
輪詢 Analyze 作業完成。 作業完成之後,請提出 GET 要求來擷取 PDF 格式的 Analyze 作業結果。
成功完成時,可以擷取 PDF 並下載為 application/pdf。 此作業允許直接下載 PDF 的內嵌文字格式,而不是 Base64 編碼 JSON。
// Monitor the operation until completion.
GET /documentModels/prebuilt-read/analyzeResults/{resultId}
200
{...}
// Upon successful completion, retrieve the PDF as application/pdf.
GET /documentModels/prebuilt-read/analyzeResults/{resultId}/pdf
200 OK
Content-Type: application/pdf
頁面
頁面集合是文件內的頁面清單。 每個頁面都會在文件內循序表示,並包含方向角度,指出頁面是否旋轉,以及寬度和高度 (以像素表示維度)。 會計算模型輸出中的頁面單位,如下所示:
| 檔案格式 | 計算的頁面單位 | 總頁數 |
|---|---|---|
| 影像 (JPEG/JPG、PNG、BMP、HEIF) | 每個影像 = 1 個頁面單位 | 影像總計 |
| PDF 每頁 = 1 個頁面單位 | PDF 總頁數 | |
| TIFF | TIFF = 1 個頁面單位中的每個映像 | TIFF 中的影像總數 |
| Word (DOCX) | 最多 3,000 個字元 = 1 個頁面單位,不支援內嵌或連結的影像 | 總頁數 (每頁最多 3,000 個字元) |
| Excel (XLSX) | 每個工作表 = 1 個頁面單位,不支援內嵌或連結的影像 | 工作表總計 |
| PowerPoint (PPTX) | 每張投影片 = 1 個頁面單位,不支援內嵌或連結的影像 | 投影片總計 |
| HTML | 最多 3,000 個字元 = 1 個頁面單位,不支援內嵌或連結的影像 | 總頁數 (每頁最多 3,000 個字元) |
"pages": [
{
"pageNumber": 1,
"angle": 0,
"width": 915,
"height": 1190,
"unit": "pixel",
"words": [],
"lines": [],
"spans": []
}
]
# Analyze pages.
for page in result.pages:
print(f"----Analyzing document from page #{page.page_number}----")
print(
f"Page has width: {page.width} and height: {page.height}, measured with unit: {page.unit}"
)
選取頁面進行文字擷取
若為大型的多頁 PDF 文件,請使用 pages 查詢參數來表示文字擷取的特定頁碼或頁面範圍。
段落
文件智慧服務中的讀取 OCR 模型會擷取 paragraphs 集合中所有已識別的文字區塊,以做為 analyzeResults 底下的最上層物件。 此集合中的每個項目都代表一個文字區塊,並包含作為 content 的擷取文字和週框 polygon 座標。
span 資訊會指向包含文件全文檢索的最上層 content 屬性的文字片段。
"paragraphs": [
{
"spans": [],
"boundingRegions": [],
"content": "While healthcare is still in the early stages of its Al journey, we are seeing pharmaceutical and other life sciences organizations making major investments in Al and related technologies.\" TOM LAWRY | National Director for Al, Health and Life Sciences | Microsoft"
}
]
文字、行和字組
讀取 OCR 模型會將列印和手寫樣式的文字擷取為 lines 和 words。 模型會輸出所擷取字組的週框 polygon 座標和 confidence。 若也偵測到指向相關文字的範圍,styles 集合便會包含任何手寫樣式的文字行。 此功能適用於支援的手寫語言。
針對 Microsoft Word、Excel、PowerPoint 和 HTML,文件智慧服務讀取模型 v3.1 和更新版本會依原狀擷取所有內嵌文字。 文字會擷取為字組和段落。 不支援內嵌的影像。
"words": [
{
"content": "While",
"polygon": [],
"confidence": 0.997,
"span": {}
},
],
"lines": [
{
"content": "While healthcare is still in the early stages of its Al journey, we",
"polygon": [],
"spans": [],
}
]
# Analyze lines.
for line_idx, line in enumerate(page.lines):
words = line.get_words()
print(
f"...Line # {line_idx} has {len(words)} words and text '{line.content}' within bounding polygon '{format_polygon(line.polygon)}'"
)
# Analyze words.
for word in words:
print(
f"......Word '{word.content}' has a confidence of {word.confidence}"
)
手寫樣式的文字行
回應會包含辨別每個文字行是否為手寫樣式的分類,以及信賴度分數。 如需詳細資訊,請參閱手寫語言支援。 下列範例顯示 JSON 程式碼片段範例。
"styles": [
{
"confidence": 0.95,
"spans": [
{
"offset": 509,
"length": 24
}
"isHandwritten": true
]
}
如果您已啟用字型/樣式附加元件功能,也會取得字型/樣式結果作為 styles 物件的一部分。
後續步驟
完成文件智慧服務快速入門:
探索 REST API:
在 GitHub 上尋找更多範例: