Skip to content

Commit

Permalink
Update samples and tests for ID document recognition [Formrecognizer] (
Browse files Browse the repository at this point in the history
  • Loading branch information
samvaity committed Apr 2, 2021
1 parent 93a8ee2 commit 2b320f5
Show file tree
Hide file tree
Showing 11 changed files with 287 additions and 35 deletions.
2 changes: 1 addition & 1 deletion sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Release History

## 3.1.0-beta.3 (Unreleased)
## 3.1.0-beta.3 (2021-04-06)
- Defaults to the latest supported API version, which currently is `2.1-preview.3`.
- Added property `Pages` to `RecognizeReceiptsOptions`, `RecognizeInvoicesOptions`, `RecognizeBusinessCardsOptions`
and `RecognizeCustomFormOptions` to specify the page numbers to analyze.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,25 +113,27 @@ static List<RecognizedForm> toRecognizedForm(AnalyzeResult analyzeResult, boolea
}
} else {
extractedFormList = new ArrayList<>();
forEachWithIndex(pageResults, ((index, pageResultItem) -> {
StringBuilder formType = new StringBuilder("form-");
int pageNumber = pageResultItem.getPage();
Integer clusterId = pageResultItem.getClusterId();
if (clusterId != null) {
formType.append(clusterId);
}
Map<String, FormField> extractedFieldMap = getUnlabeledFieldMap(includeFieldElements, readResults,
pageResultItem, pageNumber);

final RecognizedForm recognizedForm = new RecognizedForm(
extractedFieldMap,
formType.toString(),
new FormPageRange(pageNumber, pageNumber),
Collections.singletonList(formPages.get(index)));

RecognizedFormHelper.setModelId(recognizedForm, modelId);
extractedFormList.add(recognizedForm);
}));
if (!CoreUtils.isNullOrEmpty(pageResults)) {
forEachWithIndex(pageResults, ((index, pageResultItem) -> {
StringBuilder formType = new StringBuilder("form-");
int pageNumber = pageResultItem.getPage();
Integer clusterId = pageResultItem.getClusterId();
if (clusterId != null) {
formType.append(clusterId);
}
Map<String, FormField> extractedFieldMap = getUnlabeledFieldMap(includeFieldElements, readResults,
pageResultItem, pageNumber);

final RecognizedForm recognizedForm = new RecognizedForm(
extractedFieldMap,
formType.toString(),
new FormPageRange(pageNumber, pageNumber),
Collections.singletonList(formPages.get(index)));

RecognizedFormHelper.setModelId(recognizedForm, modelId);
extractedFormList.add(recognizedForm);
}));
}
}
return extractedFormList;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,10 +82,10 @@ Guidelines][SDK_README_CONTRIBUTING] for more information.
[recognize_content_from_url_async]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/formrecognizer/azure-ai-formrecognizer/src/samples/java/com/azure/ai/formrecognizer/RecognizeContentFromUrlAsync.java
[recognize_custom_forms]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/formrecognizer/azure-ai-formrecognizer/src/samples/java/com/azure/ai/formrecognizer/RecognizeCustomFormsFromUrl.java
[recognize_custom_forms_async]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/formrecognizer/azure-ai-formrecognizer/src/samples/java/com/azure/ai/formrecognizer/RecognizeCustomFormsAsync.java
[recognize_id_documents]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/formrecognizer/azure-ai-formrecognizer/src/samples/java/com/azure/ai/formrecognizer/RecognizeReceipts.java
[recognize_id_documents_async]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/formrecognizer/azure-ai-formrecognizer/src/samples/java/com/azure/ai/formrecognizer/RecognizeReceiptsAsync.java
[recognize_id_documents_from_url]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/formrecognizer/azure-ai-formrecognizer/src/samples/java/com/azure/ai/formrecognizer/RecognizeReceiptsFromUrl.java
[recognize_id_documents_from_url_async]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/formrecognizer/azure-ai-formrecognizer/src/samples/java/com/azure/ai/formrecognizer/RecognizeReceiptsFromUrlAsync.java
[recognize_id_documents]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/formrecognizer/azure-ai-formrecognizer/src/samples/java/com/azure/ai/formrecognizer/RecognizeIdDocuments.java
[recognize_id_documents_async]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/formrecognizer/azure-ai-formrecognizer/src/samples/java/com/azure/ai/formrecognizer/RecognizeIdDocumentsAsync.java
[recognize_id_documents_from_url]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/formrecognizer/azure-ai-formrecognizer/src/samples/java/com/azure/ai/formrecognizer/RecognizeIdDocumentsFromUrl.java
[recognize_id_documents_from_url_async]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/formrecognizer/azure-ai-formrecognizer/src/samples/java/com/azure/ai/formrecognizer/RecognizeIdDocumentsFromUrlAsync.java
[recognize_receipts]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/formrecognizer/azure-ai-formrecognizer/src/samples/java/com/azure/ai/formrecognizer/RecognizeReceipts.java
[recognize_receipts_async]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/formrecognizer/azure-ai-formrecognizer/src/samples/java/com/azure/ai/formrecognizer/RecognizeReceiptsAsync.java
[recognize_receipts_from_url]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/formrecognizer/azure-ai-formrecognizer/src/samples/java/com/azure/ai/formrecognizer/RecognizeReceiptsFromUrl.java
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ public static void main(final String[] args) throws IOException {
.endpoint("https://{endpoint}.cognitiveservices.azure.com/")
.buildClient();

String idDocumentUrl = "<>";
String idDocumentUrl = "https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/formrecognizer/"
+ "azure-ai-formrecognizer/src/test/resources/sample_files/Test/license.jpg";
SyncPoller<FormRecognizerOperationResult, List<RecognizedForm>> analyzeIDDocumentPoller
= client.beginRecognizeIdDocumentsFromUrl(idDocumentUrl);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ public static void main(final String[] args) {
.endpoint("https://{endpoint}.cognitiveservices.azure.com/")
.buildAsyncClient();

String licenseDocumentUrl = "<update>";
String licenseDocumentUrl = "https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/formrecognizer/"
+ "azure-ai-formrecognizer/src/test/resources/sample_files/Test/license.jpg";
PollerFlux<FormRecognizerOperationResult, List<RecognizedForm>> recognizeIDPoller =
client.beginRecognizeIdDocumentsFromUrl(licenseDocumentUrl);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2038,7 +2038,7 @@ public void recognizeLicenseDataIncludeFieldElements(HttpClient httpClient,
@Disabled
public void recognizeIDDocumentWithBlankPdf(HttpClient httpClient,
FormRecognizerServiceVersion serviceVersion) {
// TODO: (service-bug) documentResult missing required fields
// TODO: (service-bug) Still a discrepancy between other prebuilt results and ID document testing
client = getFormRecognizerAsyncClient(httpClient, serviceVersion);
dataRunner((data, dataLength) -> {
SyncPoller<FormRecognizerOperationResult, List<RecognizedForm>> syncPoller =
Expand Down Expand Up @@ -2083,9 +2083,7 @@ public void recognizeIDDocumentFromDamagedPdf(HttpClient httpClient,
*/
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
@MethodSource("com.azure.ai.formrecognizer.TestUtils#getTestParameters")
@Disabled
public void recognizeLicenseSourceUrl(HttpClient httpClient, FormRecognizerServiceVersion serviceVersion) {
// TODO: (enable once file uploaded on github)
client = getFormRecognizerAsyncClient(httpClient, serviceVersion);
urlRunner(sourceUrl -> {
SyncPoller<FormRecognizerOperationResult, List<RecognizedForm>> syncPoller =
Expand Down Expand Up @@ -2123,10 +2121,8 @@ public void recognizeIDDocumentInvalidSourceUrl(HttpClient httpClient,
*/
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
@MethodSource("com.azure.ai.formrecognizer.TestUtils#getTestParameters")
@Disabled
public void recognizeIDDocumentFromUrlIncludeFieldElements(HttpClient httpClient,
FormRecognizerServiceVersion serviceVersion) {
// TODO: (enable once file uploaded on github)
client = getFormRecognizerAsyncClient(httpClient, serviceVersion);
urlRunner(sourceUrl -> {
SyncPoller<FormRecognizerOperationResult, List<RecognizedForm>> syncPoller =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2178,9 +2178,7 @@ public void recognizeIDDocumentFromDamagedPdf(HttpClient httpClient,
*/
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
@MethodSource("com.azure.ai.formrecognizer.TestUtils#getTestParameters")
@Disabled
public void recognizeLicenseSourceUrl(HttpClient httpClient, FormRecognizerServiceVersion serviceVersion) {
// TODO: (enable once file uploaded on github)
client = getFormRecognizerClient(httpClient, serviceVersion);
urlRunner(sourceUrl -> {
SyncPoller<FormRecognizerOperationResult, List<RecognizedForm>> syncPoller =
Expand Down Expand Up @@ -2221,10 +2219,8 @@ public void recognizeIDDocumentInvalidSourceUrl(HttpClient httpClient,
*/
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
@MethodSource("com.azure.ai.formrecognizer.TestUtils#getTestParameters")
@Disabled
public void recognizeIDDocumentFromUrlIncludeFieldElements(HttpClient httpClient,
FormRecognizerServiceVersion serviceVersion) {
// TODO: (enable once file uploaded on github)
client = getFormRecognizerClient(httpClient, serviceVersion);
urlRunner(sourceUrl -> {
SyncPoller<FormRecognizerOperationResult, List<RecognizedForm>> syncPoller =
Expand Down

0 comments on commit 2b320f5

Please sign in to comment.