aws-samples / aws-samples/amazon-textract-code-samples

Textract Analyze document for Tables issue

Open
#56 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Jupyter Notebook
Stars
449
Forks
262
PR merge metrics
No merged PRs in 30d

Description

Hi,

I found an issue while extracting tables from a document using Analyze. My Textract OCR identified proper table with correct Bbox. Now, If I am using the same info and trying to extract text, I am missing some information. Here are the samples for that.

Below Image is the cropped image which I got using Bbox info from textract ocr output.
![temp_crop](https://github.com/aws-samples/amazon-textract-code-samples/assets/31265978/ef35d9dd-d148-46e5-a403-a5600348806d)

Analyze Document output (after some postprocessing like including markdowns) : "**\n\n | n pricing | ¥10,000/ton of CO2, utilized in our investment decision-making, awards program, etc. |\n|---|---|\n| of climate change issues into of executives | Attainment of "promoting sustainability," including climate change-relat initiatives. reflected in performance-linked remuneration |**"

If you observe the image and output clearly, I am getting missed "**Internal Carbo**" in first row and "**Incorporation**" and "**Remuneration**" in second row of 1st cell.

For this, I tried to apply canvas with the page size from which I fetched the table and created below image. Still it is giving me same output.

![temp_crop (1)](https://github.com/aws-samples/amazon-textract-code-samples/assets/31265978/c68f3695-3a94-487b-bb61-ec1a4fc30ea1)

Now, I went ahead and tried to add thresholding and got this image as an output.
![temp_crop (2)](https://github.com/aws-samples/amazon-textract-code-samples/assets/31265978/5f8b8683-0cde-44da-a394-37b0f455026b)

Interestingly, this provided proper output - "**\n\n | Internal carbon pricing | ¥10,000/ton of CO2, utilized in our investment decision-making, awards program, etc. |\n|---|---|\n| Incorporation of climate change issues into remuneration of executives | Attainment of "promoting sustainability," including climate change-related initiatives, reflected in performance-linkeo remuneration |**"

Here is the way, I created sample threshold -
_, binary_image = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)

But there will be problem with colored images, the solution which I proposed won't work as it makes things worst.

This is the issue I found and the some hack, If there is anything interesting rather than this please feel free to post the solution.
I ask AWS team to have a look over and fix this issue.

Contributor guide

Open the contributing guide

Research direction

No repository file or test is named. Start by reproducing the Amazon Textract Analyze Document result from the attached table samples, then compare the original and thresholded OpenCV inputs and outputs. Done would require a confirmed cause or a documented, reliable fix that also accounts for colored images.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, opencv, python
Domain
cloud, computer-vision
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.