Spaces:
Paused
Paused
| ## Tr OCR | |
| import numpy as np | |
| from tqdm.auto import tqdm | |
| from Model_loading import processor_tr_ocr, trocr_model | |
| import torch | |
| from PIL import Image | |
| def apply_TRocr(cropped_image,cell_coordinates): | |
| """ | |
| Apply TrOCR to the given cell coordinates. | |
| Parameters: | |
| - cell_coordinates: List of coordinates for cropping cells from an image. | |
| Returns: | |
| - data: A list of extracted text for each cell. | |
| """ | |
| data = [] # Initialize a list to store data for each row | |
| for idx, row in enumerate(tqdm(cell_coordinates)): | |
| row_text = [] # List to store text for the current row | |
| for cell in row["cells"]: | |
| # Crop cell out of the image | |
| cell_image = np.array(cropped_image.crop(cell["cell"])) | |
| # Convert the cell image to RGB format for TrOCR processing | |
| pil_image = Image.fromarray(cell_image).convert("RGB") | |
| pixel_values = processor_tr_ocr(images=pil_image, return_tensors="pt").pixel_values | |
| # Generate text predictions using TrOCR model | |
| generated_ids = trocr_model.generate(pixel_values) | |
| text = processor_tr_ocr.batch_decode(generated_ids, skip_special_tokens=True)[0] | |
| if not text: | |
| text = "NAN" # Append "NAN" if no text is detected | |
| row_text.append(text) | |
| # Append the row's text list to the data list | |
| data.append(row_text) | |
| return data |