Abijith's picture
Upload 5 files
38744b1
import os
from datatypes.datatypes import ImageData
from datatypes.datatypes import TableDetectionData
class TableDetection():
def __init__(self, feature_extractor, detection_model, threshold):
self.feature_extractor = feature_extractor
self.detection_model = detection_model
self.threshold = threshold
def table_detection_from_image(self, detection_image):
table_data_extraction = ImageData([])
image_width, image_height = detection_image.size
detection_encoding = self.feature_extractor(detection_image, return_tensors='pt')
detection_output = self.detection_model(**detection_encoding)
detection_results = self.feature_extractor.post_process_object_detection(detection_output, threshold=0.3, target_sizes=[(image_height, image_width)])
detection_results = detection_results[0]
# copying the detections
for score, label, bbox in zip((detection_results['scores']).tolist(), (detection_results['labels']).tolist(), (detection_results['boxes']).tolist()):
detection_table_results = TableDetectionData()
detection_table_results.detection_score = score
detection_table_results.detection_label = label
detection_table_results.detection_box = bbox
table_data_extraction.tables.append(detection_table_results)
return table_data_extraction