Scezui commited on
Commit
144dfb5
1 Parent(s): b05d188

1.supported multiple file uploads

Browse files

2. added image refresh after information extraction
3. removed some error on extractor html

Layoutlmv3_inference/__pycache__/__init__.cpython-310.pyc CHANGED
Binary files a/Layoutlmv3_inference/__pycache__/__init__.cpython-310.pyc and b/Layoutlmv3_inference/__pycache__/__init__.cpython-310.pyc differ
 
Layoutlmv3_inference/__pycache__/annotate_image.cpython-310.pyc CHANGED
Binary files a/Layoutlmv3_inference/__pycache__/annotate_image.cpython-310.pyc and b/Layoutlmv3_inference/__pycache__/annotate_image.cpython-310.pyc differ
 
Layoutlmv3_inference/__pycache__/inference_handler.cpython-310.pyc CHANGED
Binary files a/Layoutlmv3_inference/__pycache__/inference_handler.cpython-310.pyc and b/Layoutlmv3_inference/__pycache__/inference_handler.cpython-310.pyc differ
 
Layoutlmv3_inference/__pycache__/ocr.cpython-310.pyc CHANGED
Binary files a/Layoutlmv3_inference/__pycache__/ocr.cpython-310.pyc and b/Layoutlmv3_inference/__pycache__/ocr.cpython-310.pyc differ
 
Layoutlmv3_inference/__pycache__/ocr.cpython-311.pyc CHANGED
Binary files a/Layoutlmv3_inference/__pycache__/ocr.cpython-311.pyc and b/Layoutlmv3_inference/__pycache__/ocr.cpython-311.pyc differ
 
Layoutlmv3_inference/__pycache__/utils.cpython-310.pyc CHANGED
Binary files a/Layoutlmv3_inference/__pycache__/utils.cpython-310.pyc and b/Layoutlmv3_inference/__pycache__/utils.cpython-310.pyc differ
 
Layoutlmv3_inference/annotate_image.py CHANGED
@@ -4,53 +4,53 @@ from .utils import image_label_2_color
4
 
5
 
6
  def get_flattened_output(docs):
7
- print("Running Flattened Output")
8
- flattened_output = []
9
- annotation_key = 'output'
10
- for doc in docs:
11
- flattened_output_item = {annotation_key: []}
12
- doc_annotation = doc[annotation_key]
13
- for i, span in enumerate(doc_annotation):
14
- if len(span['words']) > 1:
15
- for span_chunk in span['words']:
16
- flattened_output_item[annotation_key].append(
17
- {
18
- 'label': span['label'],
19
- 'text': span_chunk['text'],
20
- 'words': [span_chunk]
21
- }
22
- )
23
-
24
- else:
25
- flattened_output_item[annotation_key].append(span)
26
- flattened_output.append(flattened_output_item)
27
- return flattened_output
28
 
29
 
30
  def annotate_image(image_path, annotation_object):
31
- print("Annotating Images")
32
- img = None
33
- image = Image.open(image_path).convert('RGBA')
34
- tmp = image.copy()
35
- label2color = image_label_2_color(annotation_object)
36
- overlay = Image.new('RGBA', tmp.size, (0, 0, 0)+(0,))
37
- draw = ImageDraw.Draw(overlay)
38
- font = ImageFont.load_default()
39
-
40
- predictions = [span['label'] for span in annotation_object['output']]
41
- boxes = [span['words'][0]['box'] for span in annotation_object['output']]
42
- for prediction, box in zip(predictions, boxes):
43
- draw.rectangle(box, outline=label2color[prediction],
44
- width=3, fill=label2color[prediction]+(int(255*0.33),))
45
- draw.text((box[0] + 10, box[1] - 10), text=prediction,
46
- fill=label2color[prediction], font=font)
47
-
48
- img = Image.alpha_composite(tmp, overlay)
49
- img = img.convert("RGB")
50
-
51
- image_name = os.path.basename(image_path)
52
- image_name = image_name[:image_name.find('.')]
53
- output_folder = 'static/temp/inferenced/'
54
- os.makedirs(output_folder, exist_ok=True)
55
-
56
- img.save(os.path.join(output_folder, f'{image_name}_inference.jpg'))
 
4
 
5
 
6
  def get_flattened_output(docs):
7
+ print("Running Flattened Output")
8
+ flattened_output = []
9
+ annotation_key = 'output'
10
+ for doc in docs:
11
+ flattened_output_item = {annotation_key: []}
12
+ doc_annotation = doc[annotation_key]
13
+ for i, span in enumerate(doc_annotation):
14
+ if len(span['words']) > 1:
15
+ for span_chunk in span['words']:
16
+ flattened_output_item[annotation_key].append(
17
+ {
18
+ 'label': span['label'],
19
+ 'text': span_chunk['text'],
20
+ 'words': [span_chunk]
21
+ }
22
+ )
23
+
24
+ else:
25
+ flattened_output_item[annotation_key].append(span)
26
+ flattened_output.append(flattened_output_item)
27
+ return flattened_output
28
 
29
 
30
  def annotate_image(image_path, annotation_object):
31
+ print("Annotating Images")
32
+ img = None
33
+ image = Image.open(image_path).convert('RGBA')
34
+ tmp = image.copy()
35
+ label2color = image_label_2_color(annotation_object)
36
+ overlay = Image.new('RGBA', tmp.size, (0, 0, 0)+(0,))
37
+ draw = ImageDraw.Draw(overlay)
38
+ font = ImageFont.load_default()
39
+
40
+ predictions = [span['label'] for span in annotation_object['output']]
41
+ boxes = [span['words'][0]['box'] for span in annotation_object['output']]
42
+ for prediction, box in zip(predictions, boxes):
43
+ draw.rectangle(box, outline=label2color[prediction],
44
+ width=3, fill=label2color[prediction]+(int(255*0.33),))
45
+ draw.text((box[0] + 10, box[1] - 10), text=prediction,
46
+ fill=label2color[prediction], font=font)
47
+
48
+ img = Image.alpha_composite(tmp, overlay)
49
+ img = img.convert("RGB")
50
+
51
+ image_name = os.path.basename(image_path)
52
+ image_name = image_name[:image_name.find('.')]
53
+ output_folder = 'static/temp/img_display/'
54
+ os.makedirs(output_folder, exist_ok=True)
55
+
56
+ img.save(os.path.join(output_folder, f'{image_name}.jpg_inference.jpg'))
Layoutlmv3_inference/ocr.py CHANGED
@@ -7,6 +7,7 @@ import requests
7
  import traceback
8
  import tempfile
9
 
 
10
  from PIL import Image
11
 
12
  def preprocess_image(image_path, max_file_size_mb=1, target_file_size_mb=0.5):
@@ -75,8 +76,41 @@ def enhance_txt(img, intensity_increase=20, bilateral_filter_diameter=9, bilater
75
  img = cv2.bilateralFilter(img, bilateral_filter_diameter, bilateral_filter_sigma_color, bilateral_filter_sigma_space)
76
 
77
  _, binary = cv2.threshold(blurred, threshold, 255, cv2.THRESH_BINARY)
78
- return binary
79
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
 
81
  def run_tesseract_on_preprocessed_image(preprocessed_image, image_path):
82
  try:
@@ -92,8 +126,7 @@ def run_tesseract_on_preprocessed_image(preprocessed_image, image_path):
92
  url = "https://api.ocr.space/parse/image"
93
 
94
  # Define the API key and the language
95
- # api_key = "K88232854988957" # Replace with your actual OCR Space API key
96
- api_key = os.getenv("ocr_space")
97
  language = "eng"
98
 
99
  # Save the preprocessed image
 
7
  import traceback
8
  import tempfile
9
 
10
+ FLASK_DEBUG=1
11
  from PIL import Image
12
 
13
  def preprocess_image(image_path, max_file_size_mb=1, target_file_size_mb=0.5):
 
76
  img = cv2.bilateralFilter(img, bilateral_filter_diameter, bilateral_filter_sigma_color, bilateral_filter_sigma_space)
77
 
78
  _, binary = cv2.threshold(blurred, threshold, 255, cv2.THRESH_BINARY)
 
79
 
80
+ # Find contours in the edged image, keep only the largest ones, and initialize our screen contour
81
+ contours, _ = cv2.findContours(edged.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
82
+ contours = sorted(contours, key = cv2.contourArea, reverse = True)[:5]
83
+
84
+ # Initialize a variable to hold the screen contour
85
+ screenContour = None
86
+
87
+ # Loop over the contours
88
+ for c in contours:
89
+ # Approximate the contour
90
+ peri = cv2.arcLength(c, True)
91
+ approx = cv2.approxPolyDP(c, 0.02 * peri, True)
92
+
93
+ # If our approximated contour has four points, then we can assume that we have found our screen
94
+ if len(approx) == 4:
95
+ screenContour = approx
96
+ break
97
+
98
+ # If no contour is found or the contour is small, use the whole image
99
+ if screenContour is None or cv2.contourArea(screenContour) < 500:
100
+ screenContour = np.array([[[0, 0]], [[w-1, 0]], [[w-1, h-1]], [[0, h-1]]])
101
+
102
+ # Get the bounding rectangle around the contour
103
+ x, y, w, h = cv2.boundingRect(screenContour)
104
+
105
+ # Check if the bounding rectangle is within the image boundaries
106
+ if x >= 0 and y >= 0 and x + w <= img.shape[1] and y + h <= img.shape[0]:
107
+ # Crop the image using the bounding rectangle
108
+ cropped_img = img[y:y+h, x:x+w]
109
+ else:
110
+ print("Bounding rectangle is out of image boundaries")
111
+ cropped_img = img
112
+
113
+ return cropped_img
114
 
115
  def run_tesseract_on_preprocessed_image(preprocessed_image, image_path):
116
  try:
 
126
  url = "https://api.ocr.space/parse/image"
127
 
128
  # Define the API key and the language
129
+ api_key = "K88232854988957" # Replace with your actual OCR Space API key
 
130
  language = "eng"
131
 
132
  # Save the preprocessed image
__pycache__/app.cpython-310.pyc DELETED
Binary file (4.49 kB)
 
__pycache__/app.cpython-311.pyc DELETED
Binary file (12.4 kB)
 
__pycache__/app.cpython-38.pyc DELETED
Binary file (1.58 kB)
 
app.py CHANGED
@@ -1,8 +1,3 @@
1
- # import warnings
2
-
3
- # # Ignore SourceChangeWarning
4
- # warnings.filterwarnings("ignore", category=DeprecationWarning)
5
- # warnings.filterwarnings("ignore", category=SourceChangeWarning)
6
 
7
  # Dependencies
8
  from flask import Flask, request, render_template, jsonify, send_file, redirect, url_for, flash, send_from_directory, session
@@ -29,6 +24,7 @@ import signal
29
  import shutil
30
  from datetime import datetime
31
  import zipfile
 
32
  # LLM
33
  import argparse
34
  from asyncio.log import logger
@@ -39,12 +35,14 @@ import os
39
  import copy
40
 
41
 
 
42
  UPLOAD_FOLDER = 'static/temp/uploads'
43
  if not os.path.exists(UPLOAD_FOLDER):
44
  os.makedirs(UPLOAD_FOLDER)
45
 
46
  ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg'}
47
 
 
48
  app = Flask(__name__)
49
  app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
50
  app.config['SECRET_KEY'] = 'supersecretkey'
@@ -107,8 +105,8 @@ def make_predictions(image_paths):
107
  temp = None
108
  try:
109
  # For Windows OS
110
- # temp = pathlib.PosixPath # Save the original state
111
- # pathlib.PosixPath = pathlib.WindowsPath # Change to WindowsPath temporarily
112
 
113
  model_path = Path(r'model/export')
114
  learner = load_learner(model_path)
@@ -132,12 +130,14 @@ def make_predictions(image_paths):
132
  except Exception as e:
133
  return {"error in make_predictions": str(e)}
134
 
135
- # finally:
136
- # pathlib.PosixPath = temp
137
 
138
 
139
  @app.route('/predict/<filenames>', methods=['GET', 'POST'])
140
  def predict_files(filenames):
 
 
141
  prediction_results = []
142
  image_paths = eval(filenames) # Convert the filenames string back to a list
143
 
@@ -178,8 +178,9 @@ def predict_files(filenames):
178
  file_to_remove = os.path.join('static', 'temp', 'uploads', image_paths[index])
179
  if os.path.exists(file_to_remove):
180
  os.remove(file_to_remove)
 
181
 
182
- return render_template('extractor.html', image_paths=image_paths, prediction_results = prediction_results, predictions=dict(zip(image_paths, prediction_results_copy)))
183
 
184
 
185
 
 
 
 
 
 
 
1
 
2
  # Dependencies
3
  from flask import Flask, request, render_template, jsonify, send_file, redirect, url_for, flash, send_from_directory, session
 
24
  import shutil
25
  from datetime import datetime
26
  import zipfile
27
+
28
  # LLM
29
  import argparse
30
  from asyncio.log import logger
 
35
  import copy
36
 
37
 
38
+ # Upload Folder
39
  UPLOAD_FOLDER = 'static/temp/uploads'
40
  if not os.path.exists(UPLOAD_FOLDER):
41
  os.makedirs(UPLOAD_FOLDER)
42
 
43
  ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg'}
44
 
45
+
46
  app = Flask(__name__)
47
  app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
48
  app.config['SECRET_KEY'] = 'supersecretkey'
 
105
  temp = None
106
  try:
107
  # For Windows OS
108
+ temp = pathlib.PosixPath # Save the original state
109
+ pathlib.PosixPath = pathlib.WindowsPath # Change to WindowsPath temporarily
110
 
111
  model_path = Path(r'model/export')
112
  learner = load_learner(model_path)
 
130
  except Exception as e:
131
  return {"error in make_predictions": str(e)}
132
 
133
+ finally:
134
+ pathlib.PosixPath = temp
135
 
136
 
137
  @app.route('/predict/<filenames>', methods=['GET', 'POST'])
138
  def predict_files(filenames):
139
+ index_url = url_for('index')
140
+
141
  prediction_results = []
142
  image_paths = eval(filenames) # Convert the filenames string back to a list
143
 
 
178
  file_to_remove = os.path.join('static', 'temp', 'uploads', image_paths[index])
179
  if os.path.exists(file_to_remove):
180
  os.remove(file_to_remove)
181
+
182
 
183
+ return render_template('extractor.html', index_url=index_url, image_paths=image_paths, prediction_results = prediction_results, predictions=dict(zip(image_paths, prediction_results_copy)))
184
 
185
 
186
 
exp2.ipynb ADDED
@@ -0,0 +1,183 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "# import the necessary packages\n",
10
+ "from imutils.perspective import four_point_transform\n",
11
+ "import pytesseract\n",
12
+ "import argparse\n",
13
+ "import imutils\n",
14
+ "import cv2\n",
15
+ "import re"
16
+ ]
17
+ },
18
+ {
19
+ "cell_type": "code",
20
+ "execution_count": 13,
21
+ "metadata": {},
22
+ "outputs": [
23
+ {
24
+ "name": "stderr",
25
+ "output_type": "stream",
26
+ "text": [
27
+ "usage: ipykernel_launcher.py [-h] -i INPUT [-d DEBUG]\n",
28
+ "ipykernel_launcher.py: error: the following arguments are required: -i/--input\n"
29
+ ]
30
+ },
31
+ {
32
+ "ename": "SystemExit",
33
+ "evalue": "2",
34
+ "output_type": "error",
35
+ "traceback": [
36
+ "An exception has occurred, use %tb to see the full traceback.\n",
37
+ "\u001b[1;31mSystemExit\u001b[0m\u001b[1;31m:\u001b[0m 2\n"
38
+ ]
39
+ }
40
+ ],
41
+ "source": [
42
+ "input= \"sample_711.jpg\"\n",
43
+ "\n",
44
+ "# Construct the argument parser\n",
45
+ "ap = argparse.ArgumentParser()\n",
46
+ "ap.add_argument(\"-i\", \"--input\", required=True,\n",
47
+ "\thelp=\"path to input receipt image\")\n",
48
+ "ap.add_argument(\"-d\", \"--debug\", type=int, default=-1,\n",
49
+ "\thelp=\"whether or not we are visualizing each step of the pipeline\")\n",
50
+ "\n",
51
+ "# Parse the arguments\n",
52
+ "args = vars(ap.parse_args())\n"
53
+ ]
54
+ },
55
+ {
56
+ "cell_type": "code",
57
+ "execution_count": 14,
58
+ "metadata": {},
59
+ "outputs": [
60
+ {
61
+ "ename": "NameError",
62
+ "evalue": "name 'args' is not defined",
63
+ "output_type": "error",
64
+ "traceback": [
65
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
66
+ "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
67
+ "Cell \u001b[1;32mIn[14], line 4\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# load the input image from disk, resize it, and compute the ratio\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[38;5;66;03m# of the *new* width to the *old* width\u001b[39;00m\n\u001b[0;32m 3\u001b[0m image\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msample_711.jpg\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m----> 4\u001b[0m orig \u001b[38;5;241m=\u001b[39m cv2\u001b[38;5;241m.\u001b[39mimread(\u001b[43margs\u001b[49m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mimage\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[0;32m 5\u001b[0m image \u001b[38;5;241m=\u001b[39m orig\u001b[38;5;241m.\u001b[39mcopy()\n\u001b[0;32m 6\u001b[0m image \u001b[38;5;241m=\u001b[39m imutils\u001b[38;5;241m.\u001b[39mresize(image, width\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m500\u001b[39m)\n",
68
+ "\u001b[1;31mNameError\u001b[0m: name 'args' is not defined"
69
+ ]
70
+ }
71
+ ],
72
+ "source": [
73
+ "# load the input image from disk, resize it, and compute the ratio\n",
74
+ "# of the *new* width to the *old* width\n",
75
+ "image= \"sample_711.jpg\"\n",
76
+ "orig = cv2.imread(args[\"image\"])\n",
77
+ "image = orig.copy()\n",
78
+ "image = imutils.resize(image, width=500)\n",
79
+ "ratio = orig.shape[1] / float(image.shape[1])"
80
+ ]
81
+ },
82
+ {
83
+ "cell_type": "code",
84
+ "execution_count": null,
85
+ "metadata": {},
86
+ "outputs": [],
87
+ "source": [
88
+ "# convert the image to grayscale, blur it slightly, and then apply\n",
89
+ "# edge detection\n",
90
+ "gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)\n",
91
+ "blurred = cv2.GaussianBlur(gray, (5, 5,), 0)\n",
92
+ "edged = cv2.Canny(blurred, 75, 200)\n",
93
+ "# check to see if we should show the output of our edge detection\n",
94
+ "# procedure\n",
95
+ "if args[\"debug\"] > 0:\n",
96
+ "\tcv2.imshow(\"Input\", image)\n",
97
+ "\tcv2.imshow(\"Edged\", edged)\n",
98
+ "\tcv2.waitKey(0)"
99
+ ]
100
+ },
101
+ {
102
+ "cell_type": "code",
103
+ "execution_count": null,
104
+ "metadata": {},
105
+ "outputs": [],
106
+ "source": [
107
+ "# find contours in the edge map and sort them by size in descending\n",
108
+ "# order\n",
109
+ "cnts = cv2.findContours(edged.copy(), cv2.RETR_EXTERNAL,\n",
110
+ "\tcv2.CHAIN_APPROX_SIMPLE)\n",
111
+ "cnts = imutils.grab_contours(cnts)\n",
112
+ "cnts = sorted(cnts, key=cv2.contourArea, reverse=True)"
113
+ ]
114
+ },
115
+ {
116
+ "cell_type": "code",
117
+ "execution_count": null,
118
+ "metadata": {},
119
+ "outputs": [],
120
+ "source": [
121
+ "# initialize a contour that corresponds to the receipt outline\n",
122
+ "receiptCnt = None\n",
123
+ "# loop over the contours\n",
124
+ "for c in cnts:\n",
125
+ "\t# approximate the contour\n",
126
+ "\tperi = cv2.arcLength(c, True)\n",
127
+ "\tapprox = cv2.approxPolyDP(c, 0.02 * peri, True)\n",
128
+ "\t# if our approximated contour has four points, then we can\n",
129
+ "\t# assume we have found the outline of the receipt\n",
130
+ "\tif len(approx) == 4:\n",
131
+ "\t\treceiptCnt = approx\n",
132
+ "\t\tbreak\n",
133
+ "# if the receipt contour is empty then our script could not find the\n",
134
+ "# outline and we should be notified\n",
135
+ "if receiptCnt is None:\n",
136
+ "\traise Exception((\"Could not find receipt outline. \"\n",
137
+ "\t\t\"Try debugging your edge detection and contour steps.\"))"
138
+ ]
139
+ },
140
+ {
141
+ "cell_type": "code",
142
+ "execution_count": null,
143
+ "metadata": {},
144
+ "outputs": [],
145
+ "source": [
146
+ "# check to see if we should draw the contour of the receipt on the\n",
147
+ "# image and then display it to our screen\n",
148
+ "if args[\"debug\"] > 0:\n",
149
+ "\toutput = image.copy()\n",
150
+ "\tcv2.drawContours(output, [receiptCnt], -1, (0, 255, 0), 2)\n",
151
+ "\tcv2.imshow(\"Receipt Outline\", output)\n",
152
+ "\tcv2.waitKey(0)\n",
153
+ "# apply a four-point perspective transform to the *original* image to\n",
154
+ "# obtain a top-down bird's-eye view of the receipt\n",
155
+ "receipt = four_point_transform(orig, receiptCnt.reshape(4, 2) * ratio)\n",
156
+ "# show transformed image\n",
157
+ "cv2.imshow(\"Receipt Transform\", imutils.resize(receipt, width=500))\n",
158
+ "cv2.waitKey(0)"
159
+ ]
160
+ }
161
+ ],
162
+ "metadata": {
163
+ "kernelspec": {
164
+ "display_name": "mlenv",
165
+ "language": "python",
166
+ "name": "python3"
167
+ },
168
+ "language_info": {
169
+ "codemirror_mode": {
170
+ "name": "ipython",
171
+ "version": 3
172
+ },
173
+ "file_extension": ".py",
174
+ "mimetype": "text/x-python",
175
+ "name": "python",
176
+ "nbconvert_exporter": "python",
177
+ "pygments_lexer": "ipython3",
178
+ "version": "3.11.4"
179
+ }
180
+ },
181
+ "nbformat": 4,
182
+ "nbformat_minor": 2
183
+ }
experiment.ipynb ADDED
@@ -0,0 +1,1337 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 17,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "# defining inference parameters\n",
10
+ "model_path = r\"C:\\Users\\Ayoo\\Desktop\\webapp\\model\" # path to Layoutlmv3 model\n",
11
+ "imag_path = r\"C:\\Users\\Ayoo\\Desktop\\webapp\\predictions\\imgs\" # images folder"
12
+ ]
13
+ },
14
+ {
15
+ "cell_type": "code",
16
+ "execution_count": 33,
17
+ "metadata": {},
18
+ "outputs": [
19
+ {
20
+ "name": "stdout",
21
+ "output_type": "stream",
22
+ "text": [
23
+ "^C\n"
24
+ ]
25
+ },
26
+ {
27
+ "name": "stderr",
28
+ "output_type": "stream",
29
+ "text": [
30
+ "2023-12-16 02:35:50.587274: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n",
31
+ "WARNING:tensorflow:From C:\\Users\\Ayoo\\AppData\\Roaming\\Python\\Python311\\site-packages\\keras\\src\\losses.py:2976: The name tf.losses.sparse_softmax_cross_entropy is deprecated. Please use tf.compat.v1.losses.sparse_softmax_cross_entropy instead.\n",
32
+ "\n",
33
+ "c:\\Users\\Ayoo\\anaconda3\\envs\\mlenv\\Lib\\site-packages\\transformers\\modeling_utils.py:881: FutureWarning: The `device` argument is deprecated and will be removed in v5 of Transformers.\n",
34
+ " warnings.warn(\n"
35
+ ]
36
+ },
37
+ {
38
+ "name": "stdout",
39
+ "output_type": "stream",
40
+ "text": [
41
+ "Preparing for Inference\n",
42
+ "Starting\n",
43
+ "Preprocessing\n",
44
+ "Preprocessing done. Running OCR\n",
45
+ "JSON file saved\n",
46
+ "OCR done\n",
47
+ "Run Done\n",
48
+ "Cleaned Tesseract output done\n",
49
+ "Word list done\n",
50
+ "Box list done\n",
51
+ "Prepared for Inference Batch\n",
52
+ "Running Flattened Output\n",
53
+ "Ready for Annotation\n",
54
+ "Annotating Images\n"
55
+ ]
56
+ }
57
+ ],
58
+ "source": [
59
+ "! python predictions\\inference\\run_inference.py --model_path {model_path} --images_path {imag_path}"
60
+ ]
61
+ },
62
+ {
63
+ "cell_type": "code",
64
+ "execution_count": 20,
65
+ "metadata": {},
66
+ "outputs": [
67
+ {
68
+ "name": "stdout",
69
+ "output_type": "stream",
70
+ "text": [
71
+ "Looking for C:\\Users\\Ayoo\\.keras-ocr\\craft_mlt_25k.h5\n"
72
+ ]
73
+ },
74
+ {
75
+ "ename": "KeyboardInterrupt",
76
+ "evalue": "",
77
+ "output_type": "error",
78
+ "traceback": [
79
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
80
+ "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
81
+ "Cell \u001b[1;32mIn[20], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mkeras_ocr\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m pipeline\u001b[38;5;241m=\u001b[39m\u001b[43mkeras_ocr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpipeline\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mPipeline\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
82
+ "File \u001b[1;32mc:\\Users\\Ayoo\\anaconda3\\envs\\mlenv\\Lib\\site-packages\\keras_ocr\\pipeline.py:20\u001b[0m, in \u001b[0;36mPipeline.__init__\u001b[1;34m(self, detector, recognizer, scale, max_size)\u001b[0m\n\u001b[0;32m 18\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, detector\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, recognizer\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, scale\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m2\u001b[39m, max_size\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m2048\u001b[39m):\n\u001b[0;32m 19\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m detector \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m---> 20\u001b[0m detector \u001b[38;5;241m=\u001b[39m \u001b[43mdetection\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mDetector\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 21\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m recognizer \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 22\u001b[0m recognizer \u001b[38;5;241m=\u001b[39m recognition\u001b[38;5;241m.\u001b[39mRecognizer()\n",
83
+ "File \u001b[1;32mc:\\Users\\Ayoo\\anaconda3\\envs\\mlenv\\Lib\\site-packages\\keras_ocr\\detection.py:686\u001b[0m, in \u001b[0;36mDetector.__init__\u001b[1;34m(self, weights, load_from_torch, optimizer, backbone_name)\u001b[0m\n\u001b[0;32m 682\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m (\n\u001b[0;32m 683\u001b[0m pretrained_key \u001b[38;5;129;01min\u001b[39;00m PRETRAINED_WEIGHTS\n\u001b[0;32m 684\u001b[0m ), \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mSelected weights configuration not found.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 685\u001b[0m weights_config \u001b[38;5;241m=\u001b[39m PRETRAINED_WEIGHTS[pretrained_key]\n\u001b[1;32m--> 686\u001b[0m weights_path \u001b[38;5;241m=\u001b[39m \u001b[43mtools\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdownload_and_verify\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 687\u001b[0m \u001b[43m \u001b[49m\u001b[43murl\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mweights_config\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43murl\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 688\u001b[0m \u001b[43m \u001b[49m\u001b[43mfilename\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mweights_config\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mfilename\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 689\u001b[0m \u001b[43m \u001b[49m\u001b[43msha256\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mweights_config\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43msha256\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 690\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 691\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 692\u001b[0m weights_path \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n",
84
+ "File \u001b[1;32mc:\\Users\\Ayoo\\anaconda3\\envs\\mlenv\\Lib\\site-packages\\keras_ocr\\tools.py:527\u001b[0m, in \u001b[0;36mdownload_and_verify\u001b[1;34m(url, sha256, cache_dir, verbose, filename)\u001b[0m\n\u001b[0;32m 525\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDownloading \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m filepath)\n\u001b[0;32m 526\u001b[0m urllib\u001b[38;5;241m.\u001b[39mrequest\u001b[38;5;241m.\u001b[39murlretrieve(url, filepath)\n\u001b[1;32m--> 527\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m sha256 \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mor\u001b[39;00m sha256 \u001b[38;5;241m==\u001b[39m \u001b[43msha256sum\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 528\u001b[0m \u001b[43m \u001b[49m\u001b[43mfilepath\u001b[49m\n\u001b[0;32m 529\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mError occurred verifying sha256.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 530\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m filepath\n",
85
+ "File \u001b[1;32mc:\\Users\\Ayoo\\anaconda3\\envs\\mlenv\\Lib\\site-packages\\keras_ocr\\tools.py:491\u001b[0m, in \u001b[0;36msha256sum\u001b[1;34m(filename)\u001b[0m\n\u001b[0;32m 489\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mopen\u001b[39m(filename, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mrb\u001b[39m\u001b[38;5;124m\"\u001b[39m, buffering\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m) \u001b[38;5;28;01mas\u001b[39;00m f:\n\u001b[0;32m 490\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m n \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28miter\u001b[39m(\u001b[38;5;28;01mlambda\u001b[39;00m: f\u001b[38;5;241m.\u001b[39mreadinto(mv), \u001b[38;5;241m0\u001b[39m): \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m--> 491\u001b[0m h\u001b[38;5;241m.\u001b[39mupdate(mv[:n])\n\u001b[0;32m 492\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m h\u001b[38;5;241m.\u001b[39mhexdigest()\n",
86
+ "\u001b[1;31mKeyboardInterrupt\u001b[0m: "
87
+ ]
88
+ }
89
+ ],
90
+ "source": [
91
+ "import keras_ocr\n",
92
+ "pipeline=keras_ocr.pipeline.Pipeline()"
93
+ ]
94
+ },
95
+ {
96
+ "cell_type": "code",
97
+ "execution_count": 4,
98
+ "metadata": {},
99
+ "outputs": [
100
+ {
101
+ "name": "stdout",
102
+ "output_type": "stream",
103
+ "text": [
104
+ "1/1 [==============================] - 34s 34s/step\n",
105
+ "7/7 [==============================] - 94s 13s/step\n"
106
+ ]
107
+ },
108
+ {
109
+ "data": {
110
+ "text/plain": [
111
+ "[[('feleven',\n",
112
+ " array([[212.58102 , 34.90136 ],\n",
113
+ " [577.45886 , 34.901367],\n",
114
+ " [577.45886 , 114.22263 ],\n",
115
+ " [212.58102 , 114.22263 ]], dtype=float32)),\n",
116
+ " ('es',\n",
117
+ " array([[574.28613, 82.49414],\n",
118
+ " [593.32324, 82.49414],\n",
119
+ " [593.32324, 107.87695],\n",
120
+ " [574.28613, 107.87695]], dtype=float32)),\n",
121
+ " ('store',\n",
122
+ " array([[453.71777, 203.0625 ],\n",
123
+ " [567.9404 , 203.0625 ],\n",
124
+ " [567.9404 , 253.82812],\n",
125
+ " [453.71777, 253.82812]], dtype=float32)),\n",
126
+ " ('nahj',\n",
127
+ " array([[120.56836, 209.4082 ],\n",
128
+ " [187.19824, 209.4082 ],\n",
129
+ " [187.19824, 253.82812],\n",
130
+ " [120.56836, 253.82812]], dtype=float32)),\n",
131
+ " ('conveni',\n",
132
+ " array([[203.0625 , 209.4082 ],\n",
133
+ " [352.18652, 209.4082 ],\n",
134
+ " [352.18652, 253.82812],\n",
135
+ " [203.0625 , 253.82812]], dtype=float32)),\n",
136
+ " ('enco',\n",
137
+ " array([[352.18652, 209.4082 ],\n",
138
+ " [441.02637, 209.4082 ],\n",
139
+ " [441.02637, 253.82812],\n",
140
+ " [352.18652, 253.82812]], dtype=float32)),\n",
141
+ " ('qwned',\n",
142
+ " array([[ 34.901367, 260.17383 ],\n",
143
+ " [149.12402 , 260.17383 ],\n",
144
+ " [149.12402 , 304.59375 ],\n",
145
+ " [ 34.901367, 304.59375 ]], dtype=float32)),\n",
146
+ " ('operated',\n",
147
+ " array([[203.0625 , 260.17383],\n",
148
+ " [377.56934, 260.17383],\n",
149
+ " [377.56934, 307.7666 ],\n",
150
+ " [203.0625 , 307.7666 ]], dtype=float32)),\n",
151
+ " ('nancy',\n",
152
+ " array([[475.92773, 260.17383],\n",
153
+ " [586.97754, 260.17383],\n",
154
+ " [586.97754, 304.59375],\n",
155
+ " [475.92773, 304.59375]], dtype=float32)),\n",
156
+ " ('byl',\n",
157
+ " array([[393.4336 , 263.34668],\n",
158
+ " [456.89062, 263.34668],\n",
159
+ " [456.89062, 307.7666 ],\n",
160
+ " [393.4336 , 307.7666 ]], dtype=float32)),\n",
161
+ " ('a',\n",
162
+ " array([[602.8418 , 263.34668],\n",
163
+ " [634.5703 , 263.34668],\n",
164
+ " [634.5703 , 301.4209 ],\n",
165
+ " [602.8418 , 301.4209 ]], dtype=float32)),\n",
166
+ " ('cl',\n",
167
+ " array([[244.30957, 314.1123 ],\n",
168
+ " [288.7295 , 314.1123 ],\n",
169
+ " [288.7295 , 355.35938],\n",
170
+ " [244.30957, 355.35938]], dtype=float32)),\n",
171
+ " ('inacosa',\n",
172
+ " array([[291.90234, 314.1123 ],\n",
173
+ " [437.85352, 314.1123 ],\n",
174
+ " [437.85352, 355.35938],\n",
175
+ " [291.90234, 355.35938]], dtype=float32)),\n",
176
+ " ('tregtin',\n",
177
+ " array([[123.74121, 358.53223],\n",
178
+ " [276.0381 , 358.53223],\n",
179
+ " [276.0381 , 406.125 ],\n",
180
+ " [123.74121, 406.125 ]], dtype=float32)),\n",
181
+ " ('va',\n",
182
+ " array([[ 76.14844, 361.70508],\n",
183
+ " [123.74121, 361.70508],\n",
184
+ " [123.74121, 406.125 ],\n",
185
+ " [ 76.14844, 406.125 ]], dtype=float32)),\n",
186
+ " ('hssysigm',\n",
187
+ " array([[285.55664, 361.70508],\n",
188
+ " [485.4463 , 361.70508],\n",
189
+ " [485.4463 , 406.125 ],\n",
190
+ " [285.55664, 406.125 ]], dtype=float32)),\n",
191
+ " ('gbsr0o2',\n",
192
+ " array([[475.92773, 361.70508],\n",
193
+ " [631.39746, 361.70508],\n",
194
+ " [631.39746, 406.125 ],\n",
195
+ " [475.92773, 406.125 ]], dtype=float32)),\n",
196
+ " ('pobli',\n",
197
+ " array([[ 98.3584 , 412.4707 ],\n",
198
+ " [187.19824, 412.4707 ],\n",
199
+ " [187.19824, 460.06348],\n",
200
+ " [ 98.3584 , 460.06348]], dtype=float32)),\n",
201
+ " ('acii',\n",
202
+ " array([[180.85254, 415.64355],\n",
203
+ " [250.65527, 415.64355],\n",
204
+ " [250.65527, 460.06348],\n",
205
+ " [180.85254, 460.06348]], dtype=float32)),\n",
206
+ " ('leons',\n",
207
+ " array([[326.8037 , 415.64355],\n",
208
+ " [434.68066, 415.64355],\n",
209
+ " [434.68066, 460.06348],\n",
210
+ " [326.8037 , 460.06348]], dtype=float32)),\n",
211
+ " ('ilulos',\n",
212
+ " array([[456.89062, 415.64355],\n",
213
+ " [602.8418 , 415.64355],\n",
214
+ " [602.8418 , 460.06348],\n",
215
+ " [456.89062, 460.06348]], dtype=float32)),\n",
216
+ " ('ors',\n",
217
+ " array([[241.13672, 418.8164 ],\n",
218
+ " [304.59375, 418.8164 ],\n",
219
+ " [304.59375, 456.89062],\n",
220
+ " [241.13672, 456.89062]], dtype=float32)),\n",
221
+ " ('fit',\n",
222
+ " array([[225.27246, 466.40918],\n",
223
+ " [291.90234, 466.40918],\n",
224
+ " [291.90234, 510.8291 ],\n",
225
+ " [225.27246, 510.8291 ]], dtype=float32)),\n",
226
+ " ('ipp',\n",
227
+ " array([[314.1123 , 469.58203],\n",
228
+ " [380.7422 , 469.58203],\n",
229
+ " [380.7422 , 514.00195],\n",
230
+ " [314.1123 , 514.00195]], dtype=float32)),\n",
231
+ " ('ines',\n",
232
+ " array([[374.39648, 469.58203],\n",
233
+ " [463.23633, 469.58203],\n",
234
+ " [463.23633, 510.8291 ],\n",
235
+ " [374.39648, 510.8291 ]], dtype=float32)),\n",
236
+ " ('tel',\n",
237
+ " array([[225.27246, 517.1748 ],\n",
238
+ " [288.7295 , 517.1748 ],\n",
239
+ " [288.7295 , 561.5947 ],\n",
240
+ " [225.27246, 561.5947 ]], dtype=float32)),\n",
241
+ " ('null',\n",
242
+ " array([[371.22363, 517.1748 ],\n",
243
+ " [466.40918, 517.1748 ],\n",
244
+ " [466.40918, 561.5947 ],\n",
245
+ " [371.22363, 561.5947 ]], dtype=float32)),\n",
246
+ " ('h',\n",
247
+ " array([[307.7666 , 520.34766],\n",
248
+ " [339.49512, 520.34766],\n",
249
+ " [339.49512, 558.4219 ],\n",
250
+ " [307.7666 , 558.4219 ]], dtype=float32)),\n",
251
+ " ('osd1',\n",
252
+ " array([[ 98.3584 , 618.70605],\n",
253
+ " [206.23535, 618.70605],\n",
254
+ " [206.23535, 663.126 ],\n",
255
+ " [ 98.3584 , 663.126 ]], dtype=float32)),\n",
256
+ " ('fzozx',\n",
257
+ " array([[203.0625 , 618.70605],\n",
258
+ " [314.1123 , 618.70605],\n",
259
+ " [314.1123 , 663.126 ],\n",
260
+ " [203.0625 , 663.126 ]], dtype=float32)),\n",
261
+ " ('leoost',\n",
262
+ " array([[434.68066, 618.70605],\n",
263
+ " [609.1875 , 618.70605],\n",
264
+ " [609.1875 , 663.126 ],\n",
265
+ " [434.68066, 663.126 ]], dtype=float32)),\n",
266
+ " ('smony',\n",
267
+ " array([[314.1123 , 621.8789 ],\n",
268
+ " [415.64355, 621.8789 ],\n",
269
+ " [415.64355, 663.126 ],\n",
270
+ " [314.1123 , 663.126 ]], dtype=float32)),\n",
271
+ " ('rcpt',\n",
272
+ " array([[ 12.691406, 723.41016 ],\n",
273
+ " [101.53125 , 723.41016 ],\n",
274
+ " [101.53125 , 767.8301 ],\n",
275
+ " [ 12.691406, 767.8301 ]], dtype=float32)),\n",
276
+ " ('h2a81',\n",
277
+ " array([[117.39551, 723.41016],\n",
278
+ " [228.44531, 723.41016],\n",
279
+ " [228.44531, 767.8301 ],\n",
280
+ " [117.39551, 767.8301 ]], dtype=float32)),\n",
281
+ " ('3a7',\n",
282
+ " array([[218.92676, 723.41016],\n",
283
+ " [291.90234, 723.41016],\n",
284
+ " [291.90234, 767.8301 ],\n",
285
+ " [218.92676, 767.8301 ]], dtype=float32)),\n",
286
+ " ('rcft',\n",
287
+ " array([[475.92773, 723.41016],\n",
288
+ " [567.9404 , 723.41016],\n",
289
+ " [567.9404 , 767.8301 ],\n",
290
+ " [475.92773, 767.8301 ]], dtype=float32)),\n",
291
+ " ('cnt',\n",
292
+ " array([[580.63184, 723.41016],\n",
293
+ " [647.2617 , 723.41016],\n",
294
+ " [647.2617 , 764.6572 ],\n",
295
+ " [580.63184, 764.6572 ]], dtype=float32)),\n",
296
+ " ('ho',\n",
297
+ " array([[637.74316, 723.41016],\n",
298
+ " [694.8545 , 723.41016],\n",
299
+ " [694.8545 , 767.8301 ],\n",
300
+ " [637.74316, 767.8301 ]], dtype=float32)),\n",
301
+ " ('storehsise',\n",
302
+ " array([[ 12.691406, 774.1758 ],\n",
303
+ " [231.61816 , 774.1758 ],\n",
304
+ " [231.61816 , 818.5957 ],\n",
305
+ " [ 12.691406, 818.5957 ]], dtype=float32)),\n",
306
+ " ('snit',\n",
307
+ " array([[434.68066, 774.1758 ],\n",
308
+ " [504.4834 , 774.1758 ],\n",
309
+ " [504.4834 , 818.5957 ],\n",
310
+ " [434.68066, 818.5957 ]], dtype=float32)),\n",
311
+ " ('xtiakt',\n",
312
+ " array([[520.34766, 774.1758 ],\n",
313
+ " [650.4346 , 774.1758 ],\n",
314
+ " [650.4346 , 818.5957 ],\n",
315
+ " [520.34766, 818.5957 ]], dtype=float32)),\n",
316
+ " ('70',\n",
317
+ " array([[647.2617, 774.1758],\n",
318
+ " [694.8545, 774.1758],\n",
319
+ " [694.8545, 818.5957],\n",
320
+ " [647.2617, 818.5957]], dtype=float32)),\n",
321
+ " ('091',\n",
322
+ " array([[326.8037 , 821.76855],\n",
323
+ " [396.60645, 821.76855],\n",
324
+ " [396.60645, 869.3613 ],\n",
325
+ " [326.8037 , 869.3613 ]], dtype=float32)),\n",
326
+ " ('min',\n",
327
+ " array([[ 15.864258, 824.9414 ],\n",
328
+ " [ 85.66699 , 824.9414 ],\n",
329
+ " [ 85.66699 , 869.3613 ],\n",
330
+ " [ 15.864258, 869.3613 ]], dtype=float32)),\n",
331
+ " ('1811201',\n",
332
+ " array([[161.81543, 824.9414 ],\n",
333
+ " [310.93945, 824.9414 ],\n",
334
+ " [310.93945, 869.3613 ],\n",
335
+ " [161.81543, 869.3613 ]], dtype=float32)),\n",
336
+ " ('105s1',\n",
337
+ " array([[437.85352, 824.9414 ],\n",
338
+ " [520.34766, 824.9414 ],\n",
339
+ " [520.34766, 869.3613 ],\n",
340
+ " [437.85352, 869.3613 ]], dtype=float32)),\n",
341
+ " ('ha',\n",
342
+ " array([[ 98.3584 , 828.11426],\n",
343
+ " [139.60547, 828.11426],\n",
344
+ " [139.60547, 869.3613 ],\n",
345
+ " [ 98.3584 , 869.3613 ]], dtype=float32)),\n",
346
+ " ('41',\n",
347
+ " array([[393.4336 , 828.11426],\n",
348
+ " [441.02637, 828.11426],\n",
349
+ " [441.02637, 869.3613 ],\n",
350
+ " [393.4336 , 869.3613 ]], dtype=float32)),\n",
351
+ " ('staff',\n",
352
+ " array([[ 12.691406, 878.8799 ],\n",
353
+ " [126.91406 , 878.8799 ],\n",
354
+ " [126.91406 , 923.2998 ],\n",
355
+ " [ 12.691406, 923.2998 ]], dtype=float32)),\n",
356
+ " ('angel',\n",
357
+ " array([[142.77832, 878.8799 ],\n",
358
+ " [247.48242, 878.8799 ],\n",
359
+ " [247.48242, 923.2998 ],\n",
360
+ " [142.77832, 923.2998 ]], dtype=float32)),\n",
361
+ " ('duantle',\n",
362
+ " array([[329.97656, 878.8799 ],\n",
363
+ " [463.23633, 878.8799 ],\n",
364
+ " [463.23633, 923.2998 ],\n",
365
+ " [329.97656, 923.2998 ]], dtype=float32)),\n",
366
+ " ('i',\n",
367
+ " array([[250.65527, 885.2256 ],\n",
368
+ " [266.51953, 885.2256 ],\n",
369
+ " [266.51953, 916.9541 ],\n",
370
+ " [250.65527, 916.9541 ]], dtype=float32)),\n",
371
+ " ('ca',\n",
372
+ " array([[263.34668, 885.2256 ],\n",
373
+ " [314.1123 , 885.2256 ],\n",
374
+ " [314.1123 , 923.2998 ],\n",
375
+ " [263.34668, 923.2998 ]], dtype=float32)),\n",
376
+ " ('fkoreanbun',\n",
377
+ " array([[ 15.864258, 980.41113 ],\n",
378
+ " [ 250.65527 , 980.41113 ],\n",
379
+ " [ 250.65527 , 1024.831 ],\n",
380
+ " [ 15.864258, 1024.831 ]], dtype=float32)),\n",
381
+ " ('s5',\n",
382
+ " array([[ 561.5947 , 980.41113],\n",
383
+ " [ 612.36035, 980.41113],\n",
384
+ " [ 612.36035, 1021.6582 ],\n",
385
+ " [ 561.5947 , 1021.6582 ]], dtype=float32)),\n",
386
+ " ('oflj',\n",
387
+ " array([[ 621.8789 , 980.41113],\n",
388
+ " [ 694.8545 , 980.41113],\n",
389
+ " [ 694.8545 , 1021.6582 ],\n",
390
+ " [ 621.8789 , 1021.6582 ]], dtype=float32)),\n",
391
+ " ('nis',\n",
392
+ " array([[ 15.864258, 1031.1768 ],\n",
393
+ " [ 60.28418 , 1031.1768 ],\n",
394
+ " [ 60.28418 , 1075.5967 ],\n",
395
+ " [ 15.864258, 1075.5967 ]], dtype=float32)),\n",
396
+ " ('inyasabeetig',\n",
397
+ " array([[ 104.7041 , 1031.1768 ],\n",
398
+ " [ 377.56934, 1031.1768 ],\n",
399
+ " [ 377.56934, 1078.7695 ],\n",
400
+ " [ 104.7041 , 1078.7695 ]], dtype=float32)),\n",
401
+ " ('40',\n",
402
+ " array([[ 561.5947, 1031.1768],\n",
403
+ " [ 615.5332, 1031.1768],\n",
404
+ " [ 615.5332, 1072.4238],\n",
405
+ " [ 561.5947, 1072.4238]], dtype=float32)),\n",
406
+ " ('oov',\n",
407
+ " array([[ 621.8789, 1031.1768],\n",
408
+ " [ 694.8545, 1031.1768],\n",
409
+ " [ 694.8545, 1072.4238],\n",
410
+ " [ 621.8789, 1072.4238]], dtype=float32)),\n",
411
+ " ('ss',\n",
412
+ " array([[ 53.938477, 1034.3496 ],\n",
413
+ " [ 104.7041 , 1034.3496 ],\n",
414
+ " [ 104.7041 , 1075.5967 ],\n",
415
+ " [ 53.938477, 1075.5967 ]], dtype=float32)),\n",
416
+ " ('behotogcremychees',\n",
417
+ " array([[ 12.691406, 1081.9424 ],\n",
418
+ " [ 399.7793 , 1081.9424 ],\n",
419
+ " [ 399.7793 , 1129.5352 ],\n",
420
+ " [ 12.691406, 1129.5352 ]], dtype=float32)),\n",
421
+ " ('19',\n",
422
+ " array([[ 139.60547, 1132.708 ],\n",
423
+ " [ 190.3711 , 1132.708 ],\n",
424
+ " [ 190.3711 , 1177.1279 ],\n",
425
+ " [ 139.60547, 1177.1279 ]], dtype=float32)),\n",
426
+ " ('do',\n",
427
+ " array([[ 203.0625 , 1135.8809 ],\n",
428
+ " [ 250.65527, 1135.8809 ],\n",
429
+ " [ 250.65527, 1177.1279 ],\n",
430
+ " [ 203.0625 , 1177.1279 ]], dtype=float32)),\n",
431
+ " ('a',\n",
432
+ " array([[ 266.51953, 1139.0537 ],\n",
433
+ " [ 288.7295 , 1139.0537 ],\n",
434
+ " [ 288.7295 , 1173.9551 ],\n",
435
+ " [ 266.51953, 1173.9551 ]], dtype=float32)),\n",
436
+ " ('b',\n",
437
+ " array([[ 368.05078, 1135.8809 ],\n",
438
+ " [ 396.60645, 1135.8809 ],\n",
439
+ " [ 396.60645, 1173.9551 ],\n",
440
+ " [ 368.05078, 1173.9551 ]], dtype=float32)),\n",
441
+ " ('1544',\n",
442
+ " array([[ 539.38477, 1135.8809 ],\n",
443
+ " [ 615.5332 , 1135.8809 ],\n",
444
+ " [ 615.5332 , 1177.1279 ],\n",
445
+ " [ 539.38477, 1177.1279 ]], dtype=float32)),\n",
446
+ " ('oou',\n",
447
+ " array([[ 621.8789, 1135.8809],\n",
448
+ " [ 694.8545, 1135.8809],\n",
449
+ " [ 694.8545, 1177.1279],\n",
450
+ " [ 621.8789, 1177.1279]], dtype=float32)),\n",
451
+ " ('choeog',\n",
452
+ " array([[ 266.51953, 1183.4736 ],\n",
453
+ " [ 399.7793 , 1183.4736 ],\n",
454
+ " [ 399.7793 , 1231.0664 ],\n",
455
+ " [ 266.51953, 1231.0664 ]], dtype=float32)),\n",
456
+ " ('chocvronz',\n",
457
+ " array([[ 12.691406, 1186.6465 ],\n",
458
+ " [ 209.4082 , 1186.6465 ],\n",
459
+ " [ 209.4082 , 1231.0664 ],\n",
460
+ " [ 12.691406, 1231.0664 ]], dtype=float32)),\n",
461
+ " ('in1',\n",
462
+ " array([[ 206.23535, 1186.6465 ],\n",
463
+ " [ 269.69238, 1186.6465 ],\n",
464
+ " [ 269.69238, 1227.8936 ],\n",
465
+ " [ 206.23535, 1227.8936 ]], dtype=float32)),\n",
466
+ " ('1s',\n",
467
+ " array([[ 142.77832, 1237.4121 ],\n",
468
+ " [ 206.23535, 1237.4121 ],\n",
469
+ " [ 206.23535, 1281.832 ],\n",
470
+ " [ 142.77832, 1281.832 ]], dtype=float32)),\n",
471
+ " ('0',\n",
472
+ " array([[ 203.0625 , 1237.4121 ],\n",
473
+ " [ 250.65527, 1237.4121 ],\n",
474
+ " [ 250.65527, 1281.832 ],\n",
475
+ " [ 203.0625 , 1281.832 ]], dtype=float32)),\n",
476
+ " ('x',\n",
477
+ " array([[ 263.34668, 1237.4121 ],\n",
478
+ " [ 291.90234, 1237.4121 ],\n",
479
+ " [ 291.90234, 1275.4863 ],\n",
480
+ " [ 263.34668, 1275.4863 ]], dtype=float32)),\n",
481
+ " ('l',\n",
482
+ " array([[ 371.22363, 1237.4121 ],\n",
483
+ " [ 396.60645, 1237.4121 ],\n",
484
+ " [ 396.60645, 1275.4863 ],\n",
485
+ " [ 371.22363, 1275.4863 ]], dtype=float32)),\n",
486
+ " ('50',\n",
487
+ " array([[ 561.5947, 1237.4121],\n",
488
+ " [ 615.5332, 1237.4121],\n",
489
+ " [ 615.5332, 1278.6592],\n",
490
+ " [ 561.5947, 1278.6592]], dtype=float32)),\n",
491
+ " ('doq',\n",
492
+ " array([[ 621.8789, 1237.4121],\n",
493
+ " [ 694.8545, 1237.4121],\n",
494
+ " [ 694.8545, 1278.6592],\n",
495
+ " [ 621.8789, 1278.6592]], dtype=float32)),\n",
496
+ " ('total',\n",
497
+ " array([[ 15.864258, 1338.9434 ],\n",
498
+ " [ 120.56836 , 1338.9434 ],\n",
499
+ " [ 120.56836 , 1386.5361 ],\n",
500
+ " [ 15.864258, 1386.5361 ]], dtype=float32)),\n",
501
+ " ('10',\n",
502
+ " array([[ 145.95117, 1338.9434 ],\n",
503
+ " [ 225.27246, 1338.9434 ],\n",
504
+ " [ 225.27246, 1383.3633 ],\n",
505
+ " [ 145.95117, 1383.3633 ]], dtype=float32)),\n",
506
+ " ('3599',\n",
507
+ " array([[ 558.4219 , 1338.9434 ],\n",
508
+ " [ 637.74316, 1338.9434 ],\n",
509
+ " [ 637.74316, 1383.3633 ],\n",
510
+ " [ 558.4219 , 1383.3633 ]], dtype=float32)),\n",
511
+ " ('oq',\n",
512
+ " array([[ 640.916 , 1342.1162],\n",
513
+ " [ 694.8545, 1342.1162],\n",
514
+ " [ 694.8545, 1383.3633],\n",
515
+ " [ 640.916 , 1383.3633]], dtype=float32)),\n",
516
+ " ('cash',\n",
517
+ " array([[ 53.938477, 1389.709 ],\n",
518
+ " [ 149.12402 , 1389.709 ],\n",
519
+ " [ 149.12402 , 1434.1289 ],\n",
520
+ " [ 53.938477, 1434.1289 ]], dtype=float32)),\n",
521
+ " ('dool',\n",
522
+ " array([[ 558.4219, 1389.709 ],\n",
523
+ " [ 647.2617, 1389.709 ],\n",
524
+ " [ 647.2617, 1434.1289],\n",
525
+ " [ 558.4219, 1434.1289]], dtype=float32)),\n",
526
+ " ('o0',\n",
527
+ " array([[ 640.916 , 1389.709 ],\n",
528
+ " [ 691.68164, 1389.709 ],\n",
529
+ " [ 691.68164, 1434.1289 ],\n",
530
+ " [ 640.916 , 1434.1289 ]], dtype=float32)),\n",
531
+ " ('change',\n",
532
+ " array([[ 53.938477, 1440.4746 ],\n",
533
+ " [ 187.19824 , 1440.4746 ],\n",
534
+ " [ 187.19824 , 1484.8945 ],\n",
535
+ " [ 53.938477, 1484.8945 ]], dtype=float32)),\n",
536
+ " ('841',\n",
537
+ " array([[ 558.4219, 1440.4746],\n",
538
+ " [ 628.2246, 1440.4746],\n",
539
+ " [ 628.2246, 1484.8945],\n",
540
+ " [ 558.4219, 1484.8945]], dtype=float32)),\n",
541
+ " ('sdo',\n",
542
+ " array([[ 625.05176, 1440.4746 ],\n",
543
+ " [ 694.8545 , 1440.4746 ],\n",
544
+ " [ 694.8545 , 1484.8945 ],\n",
545
+ " [ 625.05176, 1484.8945 ]], dtype=float32)),\n",
546
+ " ('vatable',\n",
547
+ " array([[ 53.938477, 1545.1787 ],\n",
548
+ " [ 209.4082 , 1545.1787 ],\n",
549
+ " [ 209.4082 , 1589.5986 ],\n",
550
+ " [ 53.938477, 1589.5986 ]], dtype=float32)),\n",
551
+ " ('szos',\n",
552
+ " array([[ 558.4219 , 1545.1787 ],\n",
553
+ " [ 644.08887, 1545.1787 ],\n",
554
+ " [ 644.08887, 1589.5986 ],\n",
555
+ " [ 558.4219 , 1589.5986 ]], dtype=float32)),\n",
556
+ " ('54',\n",
557
+ " array([[ 640.916 , 1545.1787 ],\n",
558
+ " [ 691.68164, 1545.1787 ],\n",
559
+ " [ 691.68164, 1589.5986 ],\n",
560
+ " [ 640.916 , 1589.5986 ]], dtype=float32)),\n",
561
+ " ('vat',\n",
562
+ " array([[ 53.938477, 1595.9443 ],\n",
563
+ " [ 145.95117 , 1595.9443 ],\n",
564
+ " [ 145.95117 , 1646.71 ],\n",
565
+ " [ 53.938477, 1646.71 ]], dtype=float32)),\n",
566
+ " ('8b',\n",
567
+ " array([[ 580.63184, 1595.9443 ],\n",
568
+ " [ 644.08887, 1595.9443 ],\n",
569
+ " [ 644.08887, 1640.3643 ],\n",
570
+ " [ 580.63184, 1640.3643 ]], dtype=float32)),\n",
571
+ " ('tax',\n",
572
+ " array([[ 139.60547, 1599.1172 ],\n",
573
+ " [ 209.4082 , 1599.1172 ],\n",
574
+ " [ 209.4082 , 1640.3643 ],\n",
575
+ " [ 139.60547, 1640.3643 ]], dtype=float32)),\n",
576
+ " ('4g',\n",
577
+ " array([[ 644.08887, 1599.1172 ],\n",
578
+ " [ 691.68164, 1599.1172 ],\n",
579
+ " [ 691.68164, 1640.3643 ],\n",
580
+ " [ 644.08887, 1640.3643 ]], dtype=float32)),\n",
581
+ " ('zerd',\n",
582
+ " array([[ 53.938477, 1646.71 ],\n",
583
+ " [ 149.12402 , 1646.71 ],\n",
584
+ " [ 149.12402 , 1694.3027 ],\n",
585
+ " [ 53.938477, 1694.3027 ]], dtype=float32)),\n",
586
+ " ('ra',\n",
587
+ " array([[ 158.64258, 1649.8828 ],\n",
588
+ " [ 209.4082 , 1649.8828 ],\n",
589
+ " [ 209.4082 , 1694.3027 ],\n",
590
+ " [ 158.64258, 1694.3027 ]], dtype=float32)),\n",
591
+ " ('ted',\n",
592
+ " array([[ 203.0625 , 1649.8828 ],\n",
593
+ " [ 272.86523, 1649.8828 ],\n",
594
+ " [ 272.86523, 1691.1299 ],\n",
595
+ " [ 203.0625 , 1691.1299 ]], dtype=float32)),\n",
596
+ " ('0',\n",
597
+ " array([[ 599.66895, 1649.8828 ],\n",
598
+ " [ 628.2246 , 1649.8828 ],\n",
599
+ " [ 628.2246 , 1687.957 ],\n",
600
+ " [ 599.66895, 1687.957 ]], dtype=float32)),\n",
601
+ " ('00',\n",
602
+ " array([[ 640.916 , 1649.8828],\n",
603
+ " [ 694.8545, 1649.8828],\n",
604
+ " [ 694.8545, 1691.1299],\n",
605
+ " [ 640.916 , 1691.1299]], dtype=float32)),\n",
606
+ " ('vat',\n",
607
+ " array([[ 53.938477, 1700.6484 ],\n",
608
+ " [ 123.74121 , 1700.6484 ],\n",
609
+ " [ 123.74121 , 1745.0684 ],\n",
610
+ " [ 53.938477, 1745.0684 ]], dtype=float32)),\n",
611
+ " ('mexept',\n",
612
+ " array([[ 117.39551, 1700.6484 ],\n",
613
+ " [ 257.00098, 1700.6484 ],\n",
614
+ " [ 257.00098, 1748.2412 ],\n",
615
+ " [ 117.39551, 1748.2412 ]], dtype=float32)),\n",
616
+ " ('ted',\n",
617
+ " array([[ 247.48242, 1700.6484 ],\n",
618
+ " [ 314.1123 , 1700.6484 ],\n",
619
+ " [ 314.1123 , 1745.0684 ],\n",
620
+ " [ 247.48242, 1745.0684 ]], dtype=float32)),\n",
621
+ " ('0',\n",
622
+ " array([[ 602.8418, 1703.8213],\n",
623
+ " [ 628.2246, 1703.8213],\n",
624
+ " [ 628.2246, 1738.7227],\n",
625
+ " [ 602.8418, 1738.7227]], dtype=float32)),\n",
626
+ " ('od',\n",
627
+ " array([[ 640.916 , 1703.8213 ],\n",
628
+ " [ 691.68164, 1703.8213 ],\n",
629
+ " [ 691.68164, 1741.8955 ],\n",
630
+ " [ 640.916 , 1741.8955 ]], dtype=float32)),\n",
631
+ " ('7616664',\n",
632
+ " array([[ 329.97656, 1799.0068 ],\n",
633
+ " [ 482.27344, 1799.0068 ],\n",
634
+ " [ 482.27344, 1846.5996 ],\n",
635
+ " [ 329.97656, 1846.5996 ]], dtype=float32)),\n",
636
+ " ('sol',\n",
637
+ " array([[ 12.691406, 1802.1797 ],\n",
638
+ " [ 79.32129 , 1802.1797 ],\n",
639
+ " [ 79.32129 , 1846.5996 ],\n",
640
+ " [ 12.691406, 1846.5996 ]], dtype=float32)),\n",
641
+ " ('d',\n",
642
+ " array([[ 79.32129, 1805.3525 ],\n",
643
+ " [ 101.53125, 1805.3525 ],\n",
644
+ " [ 101.53125, 1843.4268 ],\n",
645
+ " [ 79.32129, 1843.4268 ]], dtype=float32)),\n",
646
+ " ('tos',\n",
647
+ " array([[ 120.56836, 1802.1797 ],\n",
648
+ " [ 184.02539, 1802.1797 ],\n",
649
+ " [ 184.02539, 1846.5996 ],\n",
650
+ " [ 120.56836, 1846.5996 ]], dtype=float32)),\n",
651
+ " ('hobos',\n",
652
+ " array([[ 203.0625, 1802.1797],\n",
653
+ " [ 333.1494, 1802.1797],\n",
654
+ " [ 333.1494, 1846.5996],\n",
655
+ " [ 203.0625, 1846.5996]], dtype=float32)),\n",
656
+ " ('name',\n",
657
+ " array([[ 12.691406, 1852.9453 ],\n",
658
+ " [ 104.7041 , 1852.9453 ],\n",
659
+ " [ 104.7041 , 1897.3652 ],\n",
660
+ " [ 12.691406, 1897.3652 ]], dtype=float32)),\n",
661
+ " ('eeten',\n",
662
+ " array([[ 126.91406, 1887.8467 ],\n",
663
+ " [ 199.88965, 1887.8467 ],\n",
664
+ " [ 199.88965, 1897.3652 ],\n",
665
+ " [ 126.91406, 1897.3652 ]], dtype=float32)),\n",
666
+ " ('addr',\n",
667
+ " array([[ 12.691406, 1906.8838 ],\n",
668
+ " [ 104.7041 , 1906.8838 ],\n",
669
+ " [ 104.7041 , 1948.1309 ],\n",
670
+ " [ 12.691406, 1948.1309 ]], dtype=float32)),\n",
671
+ " ('ess',\n",
672
+ " array([[ 98.3584 , 1910.0566 ],\n",
673
+ " [ 168.16113, 1910.0566 ],\n",
674
+ " [ 168.16113, 1951.3037 ],\n",
675
+ " [ 98.3584 , 1951.3037 ]], dtype=float32)),\n",
676
+ " ('tins',\n",
677
+ " array([[ 12.691406, 1954.4766 ],\n",
678
+ " [ 98.3584 , 1954.4766 ],\n",
679
+ " [ 98.3584 , 1998.8965 ],\n",
680
+ " [ 12.691406, 1998.8965 ]], dtype=float32)),\n",
681
+ " ('fpti',\n",
682
+ " array([[ 13.045723, 2057.3926 ],\n",
683
+ " [ 81.36672 , 2062.2727 ],\n",
684
+ " [ 78.322716, 2104.889 ],\n",
685
+ " [ 10.001719, 2100.0088 ]], dtype=float32)),\n",
686
+ " ('ippl',\n",
687
+ " array([[ 101.53125, 2059.1807 ],\n",
688
+ " [ 171.33398, 2059.1807 ],\n",
689
+ " [ 171.33398, 2106.7734 ],\n",
690
+ " [ 101.53125, 2106.7734 ]], dtype=float32)),\n",
691
+ " ('seven',\n",
692
+ " array([[ 241.13672, 2059.1807 ],\n",
693
+ " [ 355.35938, 2059.1807 ],\n",
694
+ " [ 355.35938, 2103.6006 ],\n",
695
+ " [ 241.13672, 2103.6006 ]], dtype=float32)),\n",
696
+ " ('corpor',\n",
697
+ " array([[ 371.50757, 2057.8103 ],\n",
698
+ " [ 499.50806, 2065.8103 ],\n",
699
+ " [ 496.71796, 2110.4524 ],\n",
700
+ " [ 368.7175 , 2102.4526 ]], dtype=float32)),\n",
701
+ " ('s',\n",
702
+ " array([[ 164.98828, 2065.5264 ],\n",
703
+ " [ 180.85254, 2065.5264 ],\n",
704
+ " [ 180.85254, 2100.4277 ],\n",
705
+ " [ 164.98828, 2100.4277 ]], dtype=float32)),\n",
706
+ " ('ne',\n",
707
+ " array([[ 177.67969, 2062.3535 ],\n",
708
+ " [ 228.44531, 2062.3535 ],\n",
709
+ " [ 228.44531, 2103.6006 ],\n",
710
+ " [ 177.67969, 2103.6006 ]], dtype=float32)),\n",
711
+ " ('at',\n",
712
+ " array([[ 494.96484, 2062.3535 ],\n",
713
+ " [ 542.5576 , 2062.3535 ],\n",
714
+ " [ 542.5576 , 2103.6006 ],\n",
715
+ " [ 494.96484, 2103.6006 ]], dtype=float32)),\n",
716
+ " ('on',\n",
717
+ " array([[ 558.4219, 2065.5264],\n",
718
+ " [ 609.1875, 2065.5264],\n",
719
+ " [ 609.1875, 2103.6006],\n",
720
+ " [ 558.4219, 2103.6006]], dtype=float32)),\n",
721
+ " ('jth',\n",
722
+ " array([[ 12.691406, 2109.9463 ],\n",
723
+ " [ 82.49414 , 2109.9463 ],\n",
724
+ " [ 82.49414 , 2154.3662 ],\n",
725
+ " [ 12.691406, 2154.3662 ]], dtype=float32)),\n",
726
+ " ('the',\n",
727
+ " array([[ 225.27246, 2109.9463 ],\n",
728
+ " [ 291.90234, 2109.9463 ],\n",
729
+ " [ 291.90234, 2154.3662 ],\n",
730
+ " [ 225.27246, 2154.3662 ]], dtype=float32)),\n",
731
+ " ('co',\n",
732
+ " array([[ 304.59375, 2109.9463 ],\n",
733
+ " [ 355.35938, 2109.9463 ],\n",
734
+ " [ 355.35938, 2154.3662 ],\n",
735
+ " [ 304.59375, 2154.3662 ]], dtype=float32)),\n",
736
+ " ('tower',\n",
737
+ " array([[ 498.1377 , 2109.9463 ],\n",
738
+ " [ 606.01465, 2109.9463 ],\n",
739
+ " [ 606.01465, 2154.3662 ],\n",
740
+ " [ 498.1377 , 2154.3662 ]], dtype=float32)),\n",
741
+ " ('f',\n",
742
+ " array([[ 95.18555, 2113.1191 ],\n",
743
+ " [ 120.56836, 2113.1191 ],\n",
744
+ " [ 120.56836, 2151.1934 ],\n",
745
+ " [ 95.18555, 2151.1934 ]], dtype=float32)),\n",
746
+ " ('t',\n",
747
+ " array([[ 352.18652, 2116.292 ],\n",
748
+ " [ 368.05078, 2116.292 ],\n",
749
+ " [ 368.05078, 2151.1934 ],\n",
750
+ " [ 352.18652, 2151.1934 ]], dtype=float32)),\n",
751
+ " ('iqor',\n",
752
+ " array([[ 120.56836, 2116.292 ],\n",
753
+ " [ 206.23535, 2116.292 ],\n",
754
+ " [ 206.23535, 2154.3662 ],\n",
755
+ " [ 120.56836, 2154.3662 ]], dtype=float32)),\n",
756
+ " ('umb',\n",
757
+ " array([[ 368.05078, 2116.292 ],\n",
758
+ " [ 441.02637, 2116.292 ],\n",
759
+ " [ 441.02637, 2154.3662 ],\n",
760
+ " [ 368.05078, 2154.3662 ]], dtype=float32)),\n",
761
+ " ('id',\n",
762
+ " array([[ 434.68066, 2116.292 ],\n",
763
+ " [ 479.1006 , 2116.292 ],\n",
764
+ " [ 479.1006 , 2154.3662 ],\n",
765
+ " [ 434.68066, 2154.3662 ]], dtype=float32)),\n",
766
+ " ('avenues',\n",
767
+ " array([[ 203.0625 , 2160.712 ],\n",
768
+ " [ 349.01367, 2160.712 ],\n",
769
+ " [ 349.01367, 2208.3047 ],\n",
770
+ " [ 203.0625 , 2208.3047 ]], dtype=float32)),\n",
771
+ " ('ort',\n",
772
+ " array([[ 31.728516, 2163.8848 ],\n",
773
+ " [ 101.53125 , 2163.8848 ],\n",
774
+ " [ 101.53125 , 2205.1318 ],\n",
775
+ " [ 31.728516, 2205.1318 ]], dtype=float32)),\n",
776
+ " ('i',\n",
777
+ " array([[ 101.53125, 2167.0576 ],\n",
778
+ " [ 114.22266, 2167.0576 ],\n",
779
+ " [ 114.22266, 2198.7861 ],\n",
780
+ " [ 101.53125, 2198.7861 ]], dtype=float32)),\n",
781
+ " ('manda',\n",
782
+ " array([[ 368.05078, 2163.8848 ],\n",
783
+ " [ 479.1006 , 2163.8848 ],\n",
784
+ " [ 479.1006 , 2205.1318 ],\n",
785
+ " [ 368.05078, 2205.1318 ]], dtype=float32)),\n",
786
+ " ('gas',\n",
787
+ " array([[ 117.39551, 2167.0576 ],\n",
788
+ " [ 187.19824, 2167.0576 ],\n",
789
+ " [ 187.19824, 2211.4775 ],\n",
790
+ " [ 117.39551, 2211.4775 ]], dtype=float32)),\n",
791
+ " ('l',\n",
792
+ " array([[ 479.1006 , 2170.2305 ],\n",
793
+ " [ 488.61914, 2170.2305 ],\n",
794
+ " [ 488.61914, 2195.6133 ],\n",
795
+ " [ 479.1006 , 2195.6133 ]], dtype=float32)),\n",
796
+ " ('lyonig',\n",
797
+ " array([[ 494.96484, 2170.2305 ],\n",
798
+ " [ 606.01465, 2170.2305 ],\n",
799
+ " [ 606.01465, 2211.4775 ],\n",
800
+ " [ 494.96484, 2211.4775 ]], dtype=float32)),\n",
801
+ " ('ci',\n",
802
+ " array([[ 31.728516, 2214.6504 ],\n",
803
+ " [ 79.32129 , 2214.6504 ],\n",
804
+ " [ 79.32129 , 2259.0703 ],\n",
805
+ " [ 31.728516, 2259.0703 ]], dtype=float32)),\n",
806
+ " ('ty',\n",
807
+ " array([[ 76.14844, 2217.8232 ],\n",
808
+ " [ 123.74121, 2217.8232 ],\n",
809
+ " [ 123.74121, 2259.0703 ],\n",
810
+ " [ 76.14844, 2259.0703 ]], dtype=float32)),\n",
811
+ " ('sgrooo',\n",
812
+ " array([[ 304.59375, 2262.2432 ],\n",
813
+ " [ 441.02637, 2262.2432 ],\n",
814
+ " [ 441.02637, 2309.836 ],\n",
815
+ " [ 304.59375, 2309.836 ]], dtype=float32)),\n",
816
+ " ('tins',\n",
817
+ " array([[ 15.864258, 2265.416 ],\n",
818
+ " [ 98.3584 , 2265.416 ],\n",
819
+ " [ 98.3584 , 2309.836 ],\n",
820
+ " [ 15.864258, 2309.836 ]], dtype=float32)),\n",
821
+ " ('doo',\n",
822
+ " array([[ 117.39551, 2265.416 ],\n",
823
+ " [ 203.0625 , 2265.416 ],\n",
824
+ " [ 203.0625 , 2309.836 ],\n",
825
+ " [ 117.39551, 2309.836 ]], dtype=float32)),\n",
826
+ " ('sioul',\n",
827
+ " array([[ 199.88965, 2265.416 ],\n",
828
+ " [ 310.93945, 2265.416 ],\n",
829
+ " [ 310.93945, 2309.836 ],\n",
830
+ " [ 199.88965, 2309.836 ]], dtype=float32)),\n",
831
+ " ('bir',\n",
832
+ " array([[ 12.691406, 2316.1816 ],\n",
833
+ " [ 82.49414 , 2316.1816 ],\n",
834
+ " [ 82.49414 , 2360.6016 ],\n",
835
+ " [ 12.691406, 2360.6016 ]], dtype=float32)),\n",
836
+ " ('accr',\n",
837
+ " array([[ 95.18555, 2319.3545 ],\n",
838
+ " [ 187.19824, 2319.3545 ],\n",
839
+ " [ 187.19824, 2363.7744 ],\n",
840
+ " [ 95.18555, 2363.7744 ]], dtype=float32)),\n",
841
+ " ('h',\n",
842
+ " array([[ 203.0625 , 2322.5273 ],\n",
843
+ " [ 225.27246, 2322.5273 ],\n",
844
+ " [ 225.27246, 2357.4287 ],\n",
845
+ " [ 203.0625 , 2357.4287 ]], dtype=float32)),\n",
846
+ " ('smooojso1',\n",
847
+ " array([[ 72.975586, 2366.9473 ],\n",
848
+ " [ 263.34668 , 2366.9473 ],\n",
849
+ " [ 263.34668 , 2411.3672 ],\n",
850
+ " [ 72.975586, 2411.3672 ]], dtype=float32)),\n",
851
+ " ('sjuousa',\n",
852
+ " array([[ 263.34668, 2366.9473 ],\n",
853
+ " [ 479.1006 , 2366.9473 ],\n",
854
+ " [ 479.1006 , 2411.3672 ],\n",
855
+ " [ 263.34668, 2411.3672 ]], dtype=float32)),\n",
856
+ " ('96oz',\n",
857
+ " array([[ 494.96484, 2366.9473 ],\n",
858
+ " [ 586.97754, 2366.9473 ],\n",
859
+ " [ 586.97754, 2411.3672 ],\n",
860
+ " [ 494.96484, 2411.3672 ]], dtype=float32)),\n",
861
+ " ('11',\n",
862
+ " array([[ 34.901367, 2370.12 ],\n",
863
+ " [ 79.32129 , 2370.12 ],\n",
864
+ " [ 79.32129 , 2411.3672 ],\n",
865
+ " [ 34.901367, 2411.3672 ]], dtype=float32)),\n",
866
+ " ('accrdater',\n",
867
+ " array([[ 12.691406, 2417.713 ],\n",
868
+ " [ 203.0625 , 2417.713 ],\n",
869
+ " [ 203.0625 , 2465.3057 ],\n",
870
+ " [ 12.691406, 2465.3057 ]], dtype=float32)),\n",
871
+ " ('d8i01',\n",
872
+ " array([[ 222.09961, 2417.713 ],\n",
873
+ " [ 329.97656, 2417.713 ],\n",
874
+ " [ 329.97656, 2462.1328 ],\n",
875
+ " [ 222.09961, 2462.1328 ]], dtype=float32)),\n",
876
+ " ('220',\n",
877
+ " array([[ 329.97656, 2417.713 ],\n",
878
+ " [ 441.02637, 2417.713 ],\n",
879
+ " [ 441.02637, 2462.1328 ],\n",
880
+ " [ 329.97656, 2462.1328 ]], dtype=float32)),\n",
881
+ " ('17',\n",
882
+ " array([[ 31.728516, 2471.6514 ],\n",
883
+ " [ 85.66699 , 2471.6514 ],\n",
884
+ " [ 85.66699 , 2512.8984 ],\n",
885
+ " [ 31.728516, 2512.8984 ]], dtype=float32)),\n",
886
+ " ('151',\n",
887
+ " array([[ 76.14844, 2471.6514 ],\n",
888
+ " [ 139.60547, 2471.6514 ],\n",
889
+ " [ 139.60547, 2516.0713 ],\n",
890
+ " [ 76.14844, 2516.0713 ]], dtype=float32)),\n",
891
+ " ('izoz5',\n",
892
+ " array([[ 139.60547, 2471.6514 ],\n",
893
+ " [ 250.65527, 2471.6514 ],\n",
894
+ " [ 250.65527, 2516.0713 ],\n",
895
+ " [ 139.60547, 2516.0713 ]], dtype=float32)),\n",
896
+ " ('fermi',\n",
897
+ " array([[ 12.691406, 2519.2441 ],\n",
898
+ " [ 120.56836 , 2519.2441 ],\n",
899
+ " [ 120.56836 , 2566.837 ],\n",
900
+ " [ 12.691406, 2566.837 ]], dtype=float32)),\n",
901
+ " ('t',\n",
902
+ " array([[ 117.39551, 2525.5898 ],\n",
903
+ " [ 142.77832, 2525.5898 ],\n",
904
+ " [ 142.77832, 2563.664 ],\n",
905
+ " [ 117.39551, 2563.664 ]], dtype=float32)),\n",
906
+ " ('hs',\n",
907
+ " array([[ 158.64258, 2525.5898 ],\n",
908
+ " [ 199.88965, 2525.5898 ],\n",
909
+ " [ 199.88965, 2563.664 ],\n",
910
+ " [ 158.64258, 2563.664 ]], dtype=float32)),\n",
911
+ " ('fpzoirtias',\n",
912
+ " array([[ 31.728516, 2570.0098 ],\n",
913
+ " [ 479.1006 , 2570.0098 ],\n",
914
+ " [ 479.1006 , 2617.6025 ],\n",
915
+ " [ 31.728516, 2617.6025 ]], dtype=float32)),\n",
916
+ " ('dooniz',\n",
917
+ " array([[ 469.58203, 2573.1826 ],\n",
918
+ " [ 586.97754, 2573.1826 ],\n",
919
+ " [ 586.97754, 2617.6025 ],\n",
920
+ " [ 469.58203, 2617.6025 ]], dtype=float32)),\n",
921
+ " ('get',\n",
922
+ " array([[ 31.728516, 2674.7139 ],\n",
923
+ " [ 101.53125 , 2674.7139 ],\n",
924
+ " [ 101.53125 , 2719.1338 ],\n",
925
+ " [ 31.728516, 2719.1338 ]], dtype=float32)),\n",
926
+ " ('for',\n",
927
+ " array([[ 602.8418, 2674.7139],\n",
928
+ " [ 669.4717, 2674.7139],\n",
929
+ " [ 669.4717, 2719.1338],\n",
930
+ " [ 602.8418, 2719.1338]], dtype=float32)),\n",
931
+ " ('chance',\n",
932
+ " array([[ 158.87543, 2676.548 ],\n",
933
+ " [ 292.87747, 2680.6086 ],\n",
934
+ " [ 291.59088, 2723.0664 ],\n",
935
+ " [ 157.58882, 2719.0059 ]], dtype=float32)),\n",
936
+ " ('to',\n",
937
+ " array([[ 304.59375, 2677.8867 ],\n",
938
+ " [ 355.35938, 2677.8867 ],\n",
939
+ " [ 355.35938, 2719.1338 ],\n",
940
+ " [ 304.59375, 2719.1338 ]], dtype=float32)),\n",
941
+ " ('win',\n",
942
+ " array([[ 368.05078, 2677.8867 ],\n",
943
+ " [ 441.02637, 2677.8867 ],\n",
944
+ " [ 441.02637, 2722.3066 ],\n",
945
+ " [ 368.05078, 2722.3066 ]], dtype=float32)),\n",
946
+ " ('trip',\n",
947
+ " array([[ 494.96484, 2677.8867 ],\n",
948
+ " [ 586.97754, 2677.8867 ],\n",
949
+ " [ 586.97754, 2722.3066 ],\n",
950
+ " [ 494.96484, 2722.3066 ]], dtype=float32)),\n",
951
+ " ('t',\n",
952
+ " array([[ 114.22266, 2681.0596 ],\n",
953
+ " [ 139.60547, 2681.0596 ],\n",
954
+ " [ 139.60547, 2715.961 ],\n",
955
+ " [ 114.22266, 2715.961 ]], dtype=float32)),\n",
956
+ " ('a',\n",
957
+ " array([[ 453.71777, 2687.4053 ],\n",
958
+ " [ 475.92773, 2687.4053 ],\n",
959
+ " [ 475.92773, 2719.1338 ],\n",
960
+ " [ 453.71777, 2719.1338 ]], dtype=float32)),\n",
961
+ " ('f',\n",
962
+ " array([[ 57.11133, 2731.8252 ],\n",
963
+ " [ 79.32129, 2731.8252 ],\n",
964
+ " [ 79.32129, 2769.8994 ],\n",
965
+ " [ 57.11133, 2769.8994 ]], dtype=float32)),\n",
966
+ " ('to',\n",
967
+ " array([[ 95.18555, 2728.6523 ],\n",
968
+ " [ 142.77832, 2728.6523 ],\n",
969
+ " [ 142.77832, 2773.0723 ],\n",
970
+ " [ 95.18555, 2773.0723 ]], dtype=float32)),\n",
971
+ " ('kored',\n",
972
+ " array([[ 158.64258, 2728.6523 ],\n",
973
+ " [ 269.69238, 2728.6523 ],\n",
974
+ " [ 269.69238, 2773.0723 ],\n",
975
+ " [ 158.64258, 2773.0723 ]], dtype=float32)),\n",
976
+ " ('pis0',\n",
977
+ " array([[ 558.4219, 2728.6523],\n",
978
+ " [ 650.4346, 2728.6523],\n",
979
+ " [ 650.4346, 2773.0723],\n",
980
+ " [ 558.4219, 2773.0723]], dtype=float32)),\n",
981
+ " ('when',\n",
982
+ " array([[ 285.55664, 2731.8252 ],\n",
983
+ " [ 377.56934, 2731.8252 ],\n",
984
+ " [ 377.56934, 2773.0723 ],\n",
985
+ " [ 285.55664, 2773.0723 ]], dtype=float32)),\n",
986
+ " ('buy',\n",
987
+ " array([[ 472.75488, 2731.8252 ],\n",
988
+ " [ 542.5576 , 2731.8252 ],\n",
989
+ " [ 542.5576 , 2773.0723 ],\n",
990
+ " [ 472.75488, 2773.0723 ]], dtype=float32)),\n",
991
+ " ('you',\n",
992
+ " array([[ 390.26074, 2734.998 ],\n",
993
+ " [ 460.06348, 2734.998 ],\n",
994
+ " [ 460.06348, 2776.245 ],\n",
995
+ " [ 390.26074, 2776.245 ]], dtype=float32)),\n",
996
+ " ('of',\n",
997
+ " array([[ 158.64258, 2779.418 ],\n",
998
+ " [ 206.23535, 2779.418 ],\n",
999
+ " [ 206.23535, 2823.838 ],\n",
1000
+ " [ 158.64258, 2823.838 ]], dtype=float32)),\n",
1001
+ " ('jel',\n",
1002
+ " array([[ 225.27246, 2779.418 ],\n",
1003
+ " [ 307.7666 , 2779.418 ],\n",
1004
+ " [ 307.7666 , 2823.838 ],\n",
1005
+ " [ 225.27246, 2823.838 ]], dtype=float32)),\n",
1006
+ " ('worth',\n",
1007
+ " array([[ 31.728516, 2782.5908 ],\n",
1008
+ " [ 145.95117 , 2782.5908 ],\n",
1009
+ " [ 145.95117 , 2830.1836 ],\n",
1010
+ " [ 31.728516, 2830.1836 ]], dtype=float32)),\n",
1011
+ " ('tens',\n",
1012
+ " array([[ 434.68066, 2782.5908 ],\n",
1013
+ " [ 533.03906, 2782.5908 ],\n",
1014
+ " [ 533.03906, 2820.665 ],\n",
1015
+ " [ 434.68066, 2820.665 ]], dtype=float32)),\n",
1016
+ " ('ean',\n",
1017
+ " array([[ 558.4219, 2782.5908],\n",
1018
+ " [ 650.4346, 2782.5908],\n",
1019
+ " [ 650.4346, 2823.838 ],\n",
1020
+ " [ 558.4219, 2823.838 ]], dtype=float32)),\n",
1021
+ " ('even',\n",
1022
+ " array([[ 304.59375, 2785.7637 ],\n",
1023
+ " [ 396.60645, 2785.7637 ],\n",
1024
+ " [ 396.60645, 2823.838 ],\n",
1025
+ " [ 304.59375, 2823.838 ]], dtype=float32)),\n",
1026
+ " ('s',\n",
1027
+ " array([[ 31.728516, 2830.1836 ],\n",
1028
+ " [ 57.11133 , 2830.1836 ],\n",
1029
+ " [ 57.11133 , 2871.4307 ],\n",
1030
+ " [ 31.728516, 2871.4307 ]], dtype=float32)),\n",
1031
+ " ('era',\n",
1032
+ " array([[ 72.975586, 2830.1836 ],\n",
1033
+ " [ 142.77832 , 2830.1836 ],\n",
1034
+ " [ 142.77832 , 2877.7764 ],\n",
1035
+ " [ 72.975586, 2877.7764 ]], dtype=float32)),\n",
1036
+ " ('ffle',\n",
1037
+ " array([[ 139.60547, 2830.1836 ],\n",
1038
+ " [ 228.44531, 2830.1836 ],\n",
1039
+ " [ 228.44531, 2877.7764 ],\n",
1040
+ " [ 139.60547, 2877.7764 ]], dtype=float32)),\n",
1041
+ " ('entr',\n",
1042
+ " array([[ 241.13672, 2833.3564 ],\n",
1043
+ " [ 336.32227, 2833.3564 ],\n",
1044
+ " [ 336.32227, 2874.6035 ],\n",
1045
+ " [ 241.13672, 2874.6035 ]], dtype=float32)),\n",
1046
+ " ('ies',\n",
1047
+ " array([[ 329.97656, 2836.5293 ],\n",
1048
+ " [ 393.4336 , 2836.5293 ],\n",
1049
+ " [ 393.4336 , 2871.4307 ],\n",
1050
+ " [ 329.97656, 2871.4307 ]], dtype=float32)),\n",
1051
+ " ('aphen',\n",
1052
+ " array([[ 412.4707 , 2836.5293 ],\n",
1053
+ " [ 501.31055, 2836.5293 ],\n",
1054
+ " [ 501.31055, 2877.7764 ],\n",
1055
+ " [ 412.4707 , 2877.7764 ]], dtype=float32)),\n",
1056
+ " ('duy',\n",
1057
+ " array([[ 596.4961, 2836.5293],\n",
1058
+ " [ 669.4717, 2836.5293],\n",
1059
+ " [ 669.4717, 2877.7764],\n",
1060
+ " [ 596.4961, 2877.7764]], dtype=float32)),\n",
1061
+ " ('you',\n",
1062
+ " array([[ 517.1748 , 2839.7021 ],\n",
1063
+ " [ 586.97754, 2839.7021 ],\n",
1064
+ " [ 586.97754, 2877.7764 ],\n",
1065
+ " [ 517.1748 , 2877.7764 ]], dtype=float32)),\n",
1066
+ " ('dis',\n",
1067
+ " array([[ 31.728516, 2884.122 ],\n",
1068
+ " [ 79.32129 , 2884.122 ],\n",
1069
+ " [ 79.32129 , 2925.3691 ],\n",
1070
+ " [ 31.728516, 2925.3691 ]], dtype=float32)),\n",
1071
+ " ('scdunted',\n",
1072
+ " array([[ 76.14844, 2884.122 ],\n",
1073
+ " [ 250.65527, 2884.122 ],\n",
1074
+ " [ 250.65527, 2928.542 ],\n",
1075
+ " [ 76.14844, 2928.542 ]], dtype=float32)),\n",
1076
+ " ('booster',\n",
1077
+ " array([[ 263.34668, 2884.122 ],\n",
1078
+ " [ 415.64355, 2884.122 ],\n",
1079
+ " [ 415.64355, 2928.542 ],\n",
1080
+ " [ 263.34668, 2928.542 ]], dtype=float32)),\n",
1081
+ " ('tenss',\n",
1082
+ " array([[ 453.71777, 2884.122 ],\n",
1083
+ " [ 548.9033 , 2884.122 ],\n",
1084
+ " [ 548.9033 , 2928.542 ],\n",
1085
+ " [ 453.71777, 2928.542 ]], dtype=float32)),\n",
1086
+ " ('fper',\n",
1087
+ " array([[ 577.459 , 2884.122 ],\n",
1088
+ " [ 647.2617, 2884.122 ],\n",
1089
+ " [ 647.2617, 2928.542 ],\n",
1090
+ " [ 577.459 , 2928.542 ]], dtype=float32)),\n",
1091
+ " ('dii',\n",
1092
+ " array([[ 31.728516, 2934.8877 ],\n",
1093
+ " [ 101.53125 , 2934.8877 ],\n",
1094
+ " [ 101.53125 , 2979.3076 ],\n",
1095
+ " [ 31.728516, 2979.3076 ]], dtype=float32)),\n",
1096
+ " ('fair',\n",
1097
+ " array([[ 117.39551, 2934.8877 ],\n",
1098
+ " [ 209.4082 , 2934.8877 ],\n",
1099
+ " [ 209.4082 , 2979.3076 ],\n",
1100
+ " [ 117.39551, 2979.3076 ]], dtype=float32)),\n",
1101
+ " ('trade',\n",
1102
+ " array([[ 222.09961, 2934.8877 ],\n",
1103
+ " [ 333.1494 , 2934.8877 ],\n",
1104
+ " [ 333.1494 , 2979.3076 ],\n",
1105
+ " [ 222.09961, 2979.3076 ]], dtype=float32)),\n",
1106
+ " ('permt',\n",
1107
+ " array([[ 346.57706, 2933.5906 ],\n",
1108
+ " [ 458.4858 , 2939.4805 ],\n",
1109
+ " [ 456.2683 , 2981.6128 ],\n",
1110
+ " [ 344.35956, 2975.7231 ]], dtype=float32)),\n",
1111
+ " ('nunbers',\n",
1112
+ " array([[ 494.96484, 2934.8877 ],\n",
1113
+ " [ 644.08887, 2934.8877 ],\n",
1114
+ " [ 644.08887, 2979.3076 ],\n",
1115
+ " [ 494.96484, 2979.3076 ]], dtype=float32)),\n",
1116
+ " ('t',\n",
1117
+ " array([[ 453.71777, 2941.2334 ],\n",
1118
+ " [ 475.92773, 2941.2334 ],\n",
1119
+ " [ 475.92773, 2976.1348 ],\n",
1120
+ " [ 453.71777, 2976.1348 ]], dtype=float32)),\n",
1121
+ " ('18015',\n",
1122
+ " array([[ 117.39551, 2985.6533 ],\n",
1123
+ " [ 247.48242, 2985.6533 ],\n",
1124
+ " [ 247.48242, 3030.0732 ],\n",
1125
+ " [ 117.39551, 3030.0732 ]], dtype=float32)),\n",
1126
+ " ('series',\n",
1127
+ " array([[ 263.34668, 2985.6533 ],\n",
1128
+ " [ 396.60645, 2985.6533 ],\n",
1129
+ " [ 396.60645, 3030.0732 ],\n",
1130
+ " [ 263.34668, 3030.0732 ]], dtype=float32)),\n",
1131
+ " ('of',\n",
1132
+ " array([[ 409.29785, 2985.6533 ],\n",
1133
+ " [ 456.89062, 2985.6533 ],\n",
1134
+ " [ 456.89062, 3030.0732 ],\n",
1135
+ " [ 409.29785, 3030.0732 ]], dtype=float32)),\n",
1136
+ " ('edz5',\n",
1137
+ " array([[ 472.75488, 2985.6533 ],\n",
1138
+ " [ 571.1133 , 2985.6533 ],\n",
1139
+ " [ 571.1133 , 3026.9004 ],\n",
1140
+ " [ 472.75488, 3026.9004 ]], dtype=float32)),\n",
1141
+ " ('facebooks',\n",
1142
+ " array([[ 53.938477, 3036.419 ],\n",
1143
+ " [ 234.79102 , 3036.419 ],\n",
1144
+ " [ 234.79102 , 3080.8389 ],\n",
1145
+ " [ 53.938477, 3080.8389 ]], dtype=float32)),\n",
1146
+ " ('71',\n",
1147
+ " array([[ 329.97656, 3036.419 ],\n",
1148
+ " [ 371.22363, 3036.419 ],\n",
1149
+ " [ 371.22363, 3077.666 ],\n",
1150
+ " [ 329.97656, 3077.666 ]], dtype=float32)),\n",
1151
+ " ('iphi',\n",
1152
+ " array([[ 371.22363, 3036.419 ],\n",
1153
+ " [ 456.89062, 3036.419 ],\n",
1154
+ " [ 456.89062, 3080.8389 ],\n",
1155
+ " [ 371.22363, 3080.8389 ]], dtype=float32)),\n",
1156
+ " ('comf',\n",
1157
+ " array([[ 241.13672, 3039.5918 ],\n",
1158
+ " [ 333.1494 , 3039.5918 ],\n",
1159
+ " [ 333.1494 , 3080.8389 ],\n",
1160
+ " [ 241.13672, 3080.8389 ]], dtype=float32)),\n",
1161
+ " ('l',\n",
1162
+ " array([[ 456.89062, 3042.7646 ],\n",
1163
+ " [ 469.58203, 3042.7646 ],\n",
1164
+ " [ 469.58203, 3071.3203 ],\n",
1165
+ " [ 456.89062, 3071.3203 ]], dtype=float32)),\n",
1166
+ " ('pp',\n",
1167
+ " array([[ 491.792 , 3039.5918],\n",
1168
+ " [ 542.5576, 3039.5918],\n",
1169
+ " [ 542.5576, 3080.8389],\n",
1170
+ " [ 491.792 , 3080.8389]], dtype=float32)),\n",
1171
+ " ('fes',\n",
1172
+ " array([[ 552.0762 , 3039.5918 ],\n",
1173
+ " [ 631.39746, 3039.5918 ],\n",
1174
+ " [ 631.39746, 3077.666 ],\n",
1175
+ " [ 552.0762 , 3077.666 ]], dtype=float32)),\n",
1176
+ " ('this',\n",
1177
+ " array([[ 53.938477, 3137.9502 ],\n",
1178
+ " [ 142.77832 , 3137.9502 ],\n",
1179
+ " [ 142.77832 , 3185.543 ],\n",
1180
+ " [ 53.938477, 3185.543 ]], dtype=float32)),\n",
1181
+ " ('is',\n",
1182
+ " array([[ 158.64258, 3137.9502 ],\n",
1183
+ " [ 206.23535, 3137.9502 ],\n",
1184
+ " [ 206.23535, 3185.543 ],\n",
1185
+ " [ 158.64258, 3185.543 ]], dtype=float32)),\n",
1186
+ " ('official',\n",
1187
+ " array([[ 282.3838 , 3137.9502 ],\n",
1188
+ " [ 456.89062, 3137.9502 ],\n",
1189
+ " [ 456.89062, 3185.543 ],\n",
1190
+ " [ 282.3838 , 3185.543 ]], dtype=float32)),\n",
1191
+ " ('receift',\n",
1192
+ " array([[ 472.75488, 3137.9502 ],\n",
1193
+ " [ 628.2246 , 3137.9502 ],\n",
1194
+ " [ 628.2246 , 3185.543 ],\n",
1195
+ " [ 472.75488, 3185.543 ]], dtype=float32)),\n",
1196
+ " ('in',\n",
1197
+ " array([[ 222.09961, 3141.123 ],\n",
1198
+ " [ 269.69238, 3141.123 ],\n",
1199
+ " [ 269.69238, 3182.37 ],\n",
1200
+ " [ 222.09961, 3182.37 ]], dtype=float32))]]"
1201
+ ]
1202
+ },
1203
+ "execution_count": 4,
1204
+ "metadata": {},
1205
+ "output_type": "execute_result"
1206
+ }
1207
+ ],
1208
+ "source": [
1209
+ "pipeline.recognize([r\"temp\\20230508_122035_preprocessed.png\"])"
1210
+ ]
1211
+ },
1212
+ {
1213
+ "cell_type": "code",
1214
+ "execution_count": 5,
1215
+ "metadata": {},
1216
+ "outputs": [
1217
+ {
1218
+ "name": "stdout",
1219
+ "output_type": "stream",
1220
+ "text": [
1221
+ "Requirement already satisfied: requests in c:\\users\\ayoo\\anaconda3\\envs\\mlenv\\lib\\site-packages (2.31.0)\n",
1222
+ "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\ayoo\\anaconda3\\envs\\mlenv\\lib\\site-packages (from requests) (3.2.0)\n",
1223
+ "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\ayoo\\anaconda3\\envs\\mlenv\\lib\\site-packages (from requests) (3.4)\n",
1224
+ "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\ayoo\\anaconda3\\envs\\mlenv\\lib\\site-packages (from requests) (1.26.16)\n",
1225
+ "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\ayoo\\anaconda3\\envs\\mlenv\\lib\\site-packages (from requests) (2023.7.22)\n"
1226
+ ]
1227
+ }
1228
+ ],
1229
+ "source": [
1230
+ "!pip install requests"
1231
+ ]
1232
+ },
1233
+ {
1234
+ "cell_type": "code",
1235
+ "execution_count": 16,
1236
+ "metadata": {},
1237
+ "outputs": [
1238
+ {
1239
+ "name": "stdout",
1240
+ "output_type": "stream",
1241
+ "text": [
1242
+ "{'ParsedResults': [{'TextOverlay': {'Lines': [{'LineText': '7-ELEVEN.', 'Words': [{'WordText': '7', 'Left': 205.0, 'Top': 38.0, 'Height': 84.0, 'Width': 398.0}, {'WordText': '-', 'Left': 205.0, 'Top': 38.0, 'Height': 84.0, 'Width': 398.0}, {'WordText': 'ELEVEN', 'Left': 205.0, 'Top': 38.0, 'Height': 84.0, 'Width': 398.0}, {'WordText': '.', 'Left': 205.0, 'Top': 38.0, 'Height': 84.0, 'Width': 398.0}], 'MaxHeight': 84.0, 'MinTop': 38.0}, {'LineText': 'NHJ Convenience Store', 'Words': [{'WordText': 'NHJ', 'Left': 117.0, 'Top': 215.0, 'Height': 36.0, 'Width': 76.0}, {'WordText': 'Convenience', 'Left': 198.0, 'Top': 215.0, 'Height': 36.0, 'Width': 247.0}, {'WordText': 'Store', 'Left': 450.0, 'Top': 215.0, 'Height': 36.0, 'Width': 114.0}], 'MaxHeight': 36.0, 'MinTop': 215.0}, {'LineText': 'Owned & Operated by: Nancy A.', 'Words': [{'WordText': 'Owned', 'Left': 33.0, 'Top': 260.0, 'Height': 52.0, 'Width': 117.0}, {'WordText': '&', 'Left': 156.0, 'Top': 261.0, 'Height': 52.0, 'Width': 32.0}, {'WordText': 'Operated', 'Left': 195.0, 'Top': 261.0, 'Height': 52.0, 'Width': 182.0}, {'WordText': 'by', 'Left': 384.0, 'Top': 261.0, 'Height': 52.0, 'Width': 71.0}, {'WordText': ':', 'Left': 384.0, 'Top': 261.0, 'Height': 52.0, 'Width': 71.0}, {'WordText': 'Nancy', 'Left': 462.0, 'Top': 261.0, 'Height': 52.0, 'Width': 130.0}, {'WordText': 'A', 'Left': 598.0, 'Top': 260.0, 'Height': 52.0, 'Width': 47.0}, {'WordText': '.', 'Left': 598.0, 'Top': 260.0, 'Height': 52.0, 'Width': 47.0}], 'MaxHeight': 52.0, 'MinTop': 260.0}, {'LineText': 'Climacosa', 'Words': [{'WordText': 'Climacosa', 'Left': 244.0, 'Top': 315.0, 'Height': 38.0, 'Width': 193.0}], 'MaxHeight': 38.0, 'MinTop': 315.0}, {'LineText': 'VATREGTIN #933-598-685-002', 'Words': [{'WordText': 'VATREGTIN', 'Left': 75.0, 'Top': 361.0, 'Height': 43.0, 'Width': 204.0}, {'WordText': '#', 'Left': 285.0, 'Top': 361.0, 'Height': 43.0, 'Width': 347.0}, {'WordText': '933', 'Left': 285.0, 'Top': 361.0, 'Height': 43.0, 'Width': 347.0}, {'WordText': '-', 'Left': 285.0, 'Top': 361.0, 'Height': 43.0, 'Width': 347.0}, {'WordText': '598', 'Left': 285.0, 'Top': 361.0, 'Height': 43.0, 'Width': 347.0}, {'WordText': '-', 'Left': 285.0, 'Top': 361.0, 'Height': 43.0, 'Width': 347.0}, {'WordText': '685', 'Left': 285.0, 'Top': 361.0, 'Height': 43.0, 'Width': 347.0}, {'WordText': '-', 'Left': 285.0, 'Top': 361.0, 'Height': 43.0, 'Width': 347.0}, {'WordText': '002', 'Left': 285.0, 'Top': 361.0, 'Height': 43.0, 'Width': 347.0}], 'MaxHeight': 43.0, 'MinTop': 361.0}, {'LineText': 'Poblacion, Leon, Iloilo,', 'Words': [{'WordText': 'Poblacion', 'Left': 94.0, 'Top': 417.0, 'Height': 49.0, 'Width': 220.0}, {'WordText': ',', 'Left': 94.0, 'Top': 417.0, 'Height': 49.0, 'Width': 220.0}, {'WordText': 'Leon', 'Left': 321.0, 'Top': 417.0, 'Height': 49.0, 'Width': 122.0}, {'WordText': ',', 'Left': 321.0, 'Top': 417.0, 'Height': 49.0, 'Width': 122.0}, {'WordText': 'Iloilo', 'Left': 449.0, 'Top': 417.0, 'Height': 49.0, 'Width': 154.0}, {'WordText': ',', 'Left': 449.0, 'Top': 417.0, 'Height': 49.0, 'Width': 154.0}], 'MaxHeight': 49.0, 'MinTop': 417.0}, {'LineText': 'Philippines', 'Words': [{'WordText': 'Philippines', 'Left': 225.0, 'Top': 468.0, 'Height': 44.0, 'Width': 238.0}], 'MaxHeight': 44.0, 'MinTop': 468.0}, {'LineText': 'lel #: NULL', 'Words': [{'WordText': 'lel', 'Left': 221.0, 'Top': 524.0, 'Height': 40.0, 'Width': 78.0}, {'WordText': '#:', 'Left': 304.0, 'Top': 524.0, 'Height': 39.0, 'Width': 59.0}, {'WordText': 'NULL', 'Left': 368.0, 'Top': 523.0, 'Height': 40.0, 'Width': 89.0}], 'MaxHeight': 41.0, 'MinTop': 523.0}, {'LineText': '05/01/2023 (Mon) 23:00:57', 'Words': [{'WordText': '05', 'Left': 98.0, 'Top': 622.0, 'Height': 42.0, 'Width': 216.0}, {'WordText': '/', 'Left': 98.0, 'Top': 622.0, 'Height': 42.0, 'Width': 215.0}, {'WordText': '01', 'Left': 98.0, 'Top': 622.0, 'Height': 42.0, 'Width': 216.0}, {'WordText': '/', 'Left': 98.0, 'Top': 622.0, 'Height': 42.0, 'Width': 215.0}, {'WordText': '2023', 'Left': 98.0, 'Top': 622.0, 'Height': 42.0, 'Width': 216.0}, {'WordText': '(', 'Left': 319.0, 'Top': 622.0, 'Height': 42.0, 'Width': 105.0}, {'WordText': 'Mon', 'Left': 319.0, 'Top': 622.0, 'Height': 42.0, 'Width': 105.0}, {'WordText': ')', 'Left': 319.0, 'Top': 622.0, 'Height': 42.0, 'Width': 105.0}, {'WordText': '23', 'Left': 429.0, 'Top': 622.0, 'Height': 42.0, 'Width': 181.0}, {'WordText': ':', 'Left': 429.0, 'Top': 622.0, 'Height': 42.0, 'Width': 181.0}, {'WordText': '00', 'Left': 429.0, 'Top': 622.0, 'Height': 42.0, 'Width': 181.0}, {'WordText': ':', 'Left': 429.0, 'Top': 622.0, 'Height': 42.0, 'Width': 181.0}, {'WordText': '57', 'Left': 429.0, 'Top': 622.0, 'Height': 42.0, 'Width': 181.0}], 'MaxHeight': 42.0, 'MinTop': 622.0}, {'LineText': 'RCPT #2481347', 'Words': [{'WordText': 'RCPT', 'Left': 13.0, 'Top': 723.0, 'Height': 42.0, 'Width': 94.0}, {'WordText': '#', 'Left': 113.0, 'Top': 723.0, 'Height': 42.0, 'Width': 184.0}, {'WordText': '2481347', 'Left': 113.0, 'Top': 723.0, 'Height': 42.0, 'Width': 184.0}], 'MaxHeight': 42.0, 'MinTop': 723.0}, {'LineText': 'ROPT CNTHO', 'Words': [{'WordText': 'ROPT', 'Left': 472.0, 'Top': 723.0, 'Height': 49.0, 'Width': 96.0}, {'WordText': 'CNTHO', 'Left': 574.0, 'Top': 722.0, 'Height': 49.0, 'Width': 120.0}], 'MaxHeight': 50.0, 'MinTop': 722.0}, {'LineText': 'STORE#3058', 'Words': [{'WordText': 'STORE', 'Left': 13.0, 'Top': 771.0, 'Height': 47.0, 'Width': 219.0}, {'WordText': '#', 'Left': 13.0, 'Top': 771.0, 'Height': 47.0, 'Width': 219.0}, {'WordText': '3058', 'Left': 13.0, 'Top': 771.0, 'Height': 47.0, 'Width': 219.0}], 'MaxHeight': 47.0, 'MinTop': 771.0}, {'LineText': 'SN# :XTI43170', 'Words': [{'WordText': 'SN', 'Left': 433.0, 'Top': 771.0, 'Height': 49.0, 'Width': 66.0}, {'WordText': '#', 'Left': 433.0, 'Top': 771.0, 'Height': 49.0, 'Width': 66.0}, {'WordText': ':', 'Left': 505.0, 'Top': 771.0, 'Height': 50.0, 'Width': 189.0}, {'WordText': 'XTI43170', 'Left': 505.0, 'Top': 771.0, 'Height': 50.0, 'Width': 189.0}], 'MaxHeight': 50.0, 'MinTop': 771.0}, {'LineText': 'MIN #: 18112011091411051', 'Words': [{'WordText': 'MIN', 'Left': 13.0, 'Top': 830.0, 'Height': 39.0, 'Width': 73.0}, {'WordText': '#:', 'Left': 91.0, 'Top': 830.0, 'Height': 39.0, 'Width': 58.0}, {'WordText': '18112011091411051', 'Left': 154.0, 'Top': 830.0, 'Height': 39.0, 'Width': 360.0}], 'MaxHeight': 39.0, 'MinTop': 830.0}, {'LineText': 'STAFF: Angelica Duante', 'Words': [{'WordText': 'STAFF', 'Left': 13.0, 'Top': 879.0, 'Height': 43.0, 'Width': 124.0}, {'WordText': ':', 'Left': 13.0, 'Top': 879.0, 'Height': 43.0, 'Width': 124.0}, {'WordText': 'Angelica', 'Left': 142.0, 'Top': 879.0, 'Height': 43.0, 'Width': 177.0}, {'WordText': 'Duante', 'Left': 325.0, 'Top': 879.0, 'Height': 43.0, 'Width': 138.0}], 'MaxHeight': 43.0, 'MinTop': 879.0}, {'LineText': '7FKoreanßun', 'Words': [{'WordText': '7FKoreanßun', 'Left': 16.0, 'Top': 979.0, 'Height': 45.0, 'Width': 235.0}], 'MaxHeight': 45.0, 'MinTop': 979.0}, {'LineText': 'NissinYaSaBeet77g', 'Words': [{'WordText': 'NissinYaSaBeet77g', 'Left': 13.0, 'Top': 1032.0, 'Height': 42.0, 'Width': 365.0}], 'MaxHeight': 42.0, 'MinTop': 1032.0}, {'LineText': 'BBHOTDOGCREMYCHEES', 'Words': [{'WordText': 'BBHOTDOGCREMYCHEES', 'Left': 13.0, 'Top': 1084.0, 'Height': 39.0, 'Width': 384.0}], 'MaxHeight': 39.0, 'MinTop': 1084.0}, {'LineText': '39.00 Х 6', 'Words': [{'WordText': '39.00', 'Left': 140.0, 'Top': 1136.0, 'Height': 43.0, 'Width': 116.0}, {'WordText': 'Х', 'Left': 261.0, 'Top': 1136.0, 'Height': 43.0, 'Width': 100.0}, {'WordText': '6', 'Left': 366.0, 'Top': 1135.0, 'Height': 42.0, 'Width': 29.0}], 'MaxHeight': 44.0, 'MinTop': 1135.0}, {'LineText': 'chocvron? in1Ch020g', 'Words': [{'WordText': 'chocvron', 'Left': 13.0, 'Top': 1185.0, 'Height': 43.0, 'Width': 193.0}, {'WordText': '?', 'Left': 13.0, 'Top': 1185.0, 'Height': 43.0, 'Width': 193.0}, {'WordText': 'in1Ch020g', 'Left': 212.0, 'Top': 1185.0, 'Height': 43.0, 'Width': 186.0}], 'MaxHeight': 43.0, 'MinTop': 1185.0}, {'LineText': '15.00 X', 'Words': [{'WordText': '15.00', 'Left': 140.0, 'Top': 1240.0, 'Height': 43.0, 'Width': 116.0}, {'WordText': 'X', 'Left': 261.0, 'Top': 1240.0, 'Height': 42.0, 'Width': 42.0}], 'MaxHeight': 43.0, 'MinTop': 1240.0}, {'LineText': '2', 'Words': [{'WordText': '2', 'Left': 355.0, 'Top': 1240.0, 'Height': 39.0, 'Width': 39.0}], 'MaxHeight': 39.0, 'MinTop': 1240.0}, {'LineText': '55.004', 'Words': [{'WordText': '55.004', 'Left': 557.0, 'Top': 979.0, 'Height': 47.0, 'Width': 137.0}], 'MaxHeight': 47.0, 'MinTop': 979.0}, {'LineText': '40.000', 'Words': [{'WordText': '40.000', 'Left': 560.0, 'Top': 1031.0, 'Height': 48.0, 'Width': 134.0}], 'MaxHeight': 48.0, 'MinTop': 1031.0}, {'LineText': '234.000', 'Words': [{'WordText': '234.000', 'Left': 534.0, 'Top': 1135.0, 'Height': 47.0, 'Width': 160.0}], 'MaxHeight': 47.0, 'MinTop': 1135.0}, {'LineText': '30.000', 'Words': [{'WordText': '30.000', 'Left': 557.0, 'Top': 1237.0, 'Height': 46.0, 'Width': 137.0}], 'MaxHeight': 46.0, 'MinTop': 1237.0}, {'LineText': 'Total (10)', 'Words': [{'WordText': 'Total', 'Left': 13.0, 'Top': 1340.0, 'Height': 44.0, 'Width': 121.0}, {'WordText': '(', 'Left': 139.0, 'Top': 1342.0, 'Height': 44.0, 'Width': 86.0}, {'WordText': '10', 'Left': 139.0, 'Top': 1342.0, 'Height': 44.0, 'Width': 86.0}, {'WordText': ')', 'Left': 139.0, 'Top': 1342.0, 'Height': 44.0, 'Width': 86.0}], 'MaxHeight': 46.0, 'MinTop': 1340.0}, {'LineText': 'CASH', 'Words': [{'WordText': 'CASH', 'Left': 55.0, 'Top': 1390.0, 'Height': 43.0, 'Width': 91.0}], 'MaxHeight': 43.0, 'MinTop': 1390.0}, {'LineText': 'CHANGE', 'Words': [{'WordText': 'CHANGE', 'Left': 52.0, 'Top': 1442.0, 'Height': 43.0, 'Width': 137.0}], 'MaxHeight': 43.0, 'MinTop': 1442.0}, {'LineText': '359.00', 'Words': [{'WordText': '359.00', 'Left': 557.0, 'Top': 1341.0, 'Height': 47.0, 'Width': 137.0}], 'MaxHeight': 47.0, 'MinTop': 1341.0}, {'LineText': '1000.00', 'Words': [{'WordText': '1000.00', 'Left': 537.0, 'Top': 1389.0, 'Height': 48.0, 'Width': 154.0}], 'MaxHeight': 48.0, 'MinTop': 1389.0}, {'LineText': '641.00', 'Words': [{'WordText': '641.00', 'Left': 557.0, 'Top': 1442.0, 'Height': 46.0, 'Width': 134.0}], 'MaxHeight': 46.0, 'MinTop': 1442.0}, {'LineText': 'VATable', 'Words': [{'WordText': 'VATable', 'Left': 52.0, 'Top': 1546.0, 'Height': 40.0, 'Width': 157.0}], 'MaxHeight': 40.0, 'MinTop': 1546.0}, {'LineText': 'VAT_Tax', 'Words': [{'WordText': 'VAT_Tax', 'Left': 52.0, 'Top': 1598.0, 'Height': 50.0, 'Width': 157.0}], 'MaxHeight': 50.0, 'MinTop': 1598.0}, {'LineText': 'Zero_Rated', 'Words': [{'WordText': 'Zero_Rated', 'Left': 52.0, 'Top': 1649.0, 'Height': 48.0, 'Width': 219.0}], 'MaxHeight': 48.0, 'MinTop': 1649.0}, {'LineText': 'VAT_Exempted', 'Words': [{'WordText': 'VAT_Exempted', 'Left': 52.0, 'Top': 1699.0, 'Height': 50.0, 'Width': 264.0}], 'MaxHeight': 50.0, 'MinTop': 1699.0}, {'LineText': '320.54', 'Words': [{'WordText': '320.54', 'Left': 557.0, 'Top': 1546.0, 'Height': 46.0, 'Width': 134.0}], 'MaxHeight': 46.0, 'MinTop': 1546.0}, {'LineText': '38.46', 'Words': [{'WordText': '38.46', 'Left': 577.0, 'Top': 1598.0, 'Height': 43.0, 'Width': 114.0}], 'MaxHeight': 43.0, 'MinTop': 1598.0}, {'LineText': '0.00', 'Words': [{'WordText': '0.00', 'Left': 600.0, 'Top': 1651.0, 'Height': 42.0, 'Width': 91.0}], 'MaxHeight': 42.0, 'MinTop': 1651.0}, {'LineText': '0.00', 'Words': [{'WordText': '0.00', 'Left': 599.0, 'Top': 1702.0, 'Height': 43.0, 'Width': 95.0}], 'MaxHeight': 43.0, 'MinTop': 1702.0}, {'LineText': 'Sold To: 9906087698684', 'Words': [{'WordText': 'Sold', 'Left': 13.0, 'Top': 1803.0, 'Height': 42.0, 'Width': 94.0}, {'WordText': 'To', 'Left': 113.0, 'Top': 1803.0, 'Height': 42.0, 'Width': 79.0}, {'WordText': ':', 'Left': 113.0, 'Top': 1803.0, 'Height': 42.0, 'Width': 79.0}, {'WordText': '9906087698684', 'Left': 197.0, 'Top': 1803.0, 'Height': 42.0, 'Width': 285.0}], 'MaxHeight': 42.0, 'MinTop': 1803.0}, {'LineText': 'Name:', 'Words': [{'WordText': 'Name', 'Left': 10.0, 'Top': 1856.0, 'Height': 39.0, 'Width': 111.0}, {'WordText': ':', 'Left': 10.0, 'Top': 1856.0, 'Height': 39.0, 'Width': 111.0}], 'MaxHeight': 39.0, 'MinTop': 1856.0}, {'LineText': 'Address:', 'Words': [{'WordText': 'Address', 'Left': 13.0, 'Top': 1907.0, 'Height': 40.0, 'Width': 170.0}, {'WordText': ':', 'Left': 13.0, 'Top': 1907.0, 'Height': 40.0, 'Width': 170.0}], 'MaxHeight': 40.0, 'MinTop': 1907.0}, {'LineText': 'TIN:', 'Words': [{'WordText': 'TIN', 'Left': 13.0, 'Top': 1957.0, 'Height': 39.0, 'Width': 85.0}, {'WordText': ':', 'Left': 13.0, 'Top': 1957.0, 'Height': 39.0, 'Width': 85.0}], 'MaxHeight': 39.0, 'MinTop': 1957.0}, {'LineText': 'Philippine Seven Corporation', 'Words': [{'WordText': 'Philippine', 'Left': 10.0, 'Top': 2060.0, 'Height': 43.0, 'Width': 226.0}, {'WordText': 'Seven', 'Left': 241.0, 'Top': 2060.0, 'Height': 43.0, 'Width': 118.0}, {'WordText': 'Corporation', 'Left': 365.0, 'Top': 2060.0, 'Height': 43.0, 'Width': 241.0}], 'MaxHeight': 43.0, 'MinTop': 2060.0}, {'LineText': '7th Floor The Columbia Tower', 'Words': [{'WordText': '7th', 'Left': 13.0, 'Top': 2116.0, 'Height': 36.0, 'Width': 72.0}, {'WordText': 'Floor', 'Left': 90.0, 'Top': 2116.0, 'Height': 36.0, 'Width': 126.0}, {'WordText': 'The', 'Left': 220.0, 'Top': 2116.0, 'Height': 36.0, 'Width': 76.0}, {'WordText': 'Columbia', 'Left': 301.0, 'Top': 2116.0, 'Height': 36.0, 'Width': 189.0}, {'WordText': 'Tower', 'Left': 495.0, 'Top': 2116.0, 'Height': 36.0, 'Width': 108.0}], 'MaxHeight': 36.0, 'MinTop': 2116.0}, {'LineText': 'Ortigas Avenue, Mandaluyong', 'Words': [{'WordText': 'Ortigas', 'Left': 33.0, 'Top': 2161.0, 'Height': 49.0, 'Width': 154.0}, {'WordText': 'Avenue', 'Left': 192.0, 'Top': 2161.0, 'Height': 49.0, 'Width': 159.0}, {'WordText': ',', 'Left': 192.0, 'Top': 2161.0, 'Height': 49.0, 'Width': 159.0}, {'WordText': 'Mandaluyong', 'Left': 358.0, 'Top': 2161.0, 'Height': 49.0, 'Width': 248.0}], 'MaxHeight': 49.0, 'MinTop': 2161.0}, {'LineText': 'City', 'Words': [{'WordText': 'City', 'Left': 29.0, 'Top': 2214.0, 'Height': 42.0, 'Width': 94.0}], 'MaxHeight': 42.0, 'MinTop': 2214.0}, {'LineText': 'TIN: 000-390-189-000', 'Words': [{'WordText': 'TIN', 'Left': 13.0, 'Top': 2266.0, 'Height': 46.0, 'Width': 90.0}, {'WordText': ':', 'Left': 13.0, 'Top': 2266.0, 'Height': 46.0, 'Width': 90.0}, {'WordText': '000', 'Left': 109.0, 'Top': 2266.0, 'Height': 46.0, 'Width': 331.0}, {'WordText': '-', 'Left': 109.0, 'Top': 2266.0, 'Height': 46.0, 'Width': 331.0}, {'WordText': '390', 'Left': 109.0, 'Top': 2266.0, 'Height': 46.0, 'Width': 331.0}, {'WordText': '-', 'Left': 109.0, 'Top': 2266.0, 'Height': 46.0, 'Width': 331.0}, {'WordText': '189', 'Left': 109.0, 'Top': 2266.0, 'Height': 46.0, 'Width': 331.0}, {'WordText': '-', 'Left': 109.0, 'Top': 2266.0, 'Height': 46.0, 'Width': 331.0}, {'WordText': '000', 'Left': 109.0, 'Top': 2266.0, 'Height': 46.0, 'Width': 331.0}], 'MaxHeight': 46.0, 'MinTop': 2266.0}, {'LineText': 'BIR ACCI #', 'Words': [{'WordText': 'BIR', 'Left': 10.0, 'Top': 2318.0, 'Height': 39.0, 'Width': 78.0}, {'WordText': 'ACCI', 'Left': 93.0, 'Top': 2318.0, 'Height': 39.0, 'Width': 98.0}, {'WordText': '#', 'Left': 195.0, 'Top': 2318.0, 'Height': 39.0, 'Width': 30.0}], 'MaxHeight': 40.0, 'MinTop': 2318.0}, {'LineText': '116-000390189-000346 19602', 'Words': [{'WordText': '116', 'Left': 33.0, 'Top': 2366.0, 'Height': 43.0, 'Width': 430.0}, {'WordText': '-', 'Left': 33.0, 'Top': 2366.0, 'Height': 43.0, 'Width': 430.0}, {'WordText': '000390189', 'Left': 33.0, 'Top': 2366.0, 'Height': 43.0, 'Width': 430.0}, {'WordText': '-', 'Left': 33.0, 'Top': 2366.0, 'Height': 43.0, 'Width': 430.0}, {'WordText': '000346', 'Left': 33.0, 'Top': 2366.0, 'Height': 43.0, 'Width': 430.0}, {'WordText': '19602', 'Left': 468.0, 'Top': 2366.0, 'Height': 43.0, 'Width': 118.0}], 'MaxHeight': 43.0, 'MinTop': 2366.0}, {'LineText': 'AcciDate: 08/01/2020', 'Words': [{'WordText': 'AcciDate', 'Left': 13.0, 'Top': 2419.0, 'Height': 42.0, 'Width': 194.0}, {'WordText': ':', 'Left': 13.0, 'Top': 2419.0, 'Height': 42.0, 'Width': 194.0}, {'WordText': '08', 'Left': 212.0, 'Top': 2419.0, 'Height': 42.0, 'Width': 266.0}, {'WordText': '/', 'Left': 213.0, 'Top': 2419.0, 'Height': 42.0, 'Width': 266.0}, {'WordText': '01', 'Left': 212.0, 'Top': 2419.0, 'Height': 42.0, 'Width': 266.0}, {'WordText': '/', 'Left': 213.0, 'Top': 2419.0, 'Height': 42.0, 'Width': 266.0}, {'WordText': '2020', 'Left': 212.0, 'Top': 2419.0, 'Height': 42.0, 'Width': 266.0}], 'MaxHeight': 42.0, 'MinTop': 2419.0}, {'LineText': '07/31/2025', 'Words': [{'WordText': '07', 'Left': 29.0, 'Top': 2470.0, 'Height': 44.0, 'Width': 219.0}, {'WordText': '/', 'Left': 29.0, 'Top': 2470.0, 'Height': 44.0, 'Width': 219.0}, {'WordText': '31', 'Left': 29.0, 'Top': 2470.0, 'Height': 44.0, 'Width': 219.0}, {'WordText': '/', 'Left': 29.0, 'Top': 2470.0, 'Height': 44.0, 'Width': 219.0}, {'WordText': '2025', 'Left': 29.0, 'Top': 2470.0, 'Height': 44.0, 'Width': 219.0}], 'MaxHeight': 44.0, 'MinTop': 2470.0}, {'LineText': 'Permit #:', 'Words': [{'WordText': 'Permit', 'Left': 10.0, 'Top': 2526.0, 'Height': 40.0, 'Width': 142.0}, {'WordText': '#:', 'Left': 156.0, 'Top': 2527.0, 'Height': 39.0, 'Width': 46.0}], 'MaxHeight': 40.0, 'MinTop': 2526.0}, {'LineText': 'FP112018-074-0194656-00002', 'Words': [{'WordText': 'FP112018', 'Left': 33.0, 'Top': 2572.0, 'Height': 39.0, 'Width': 554.0}, {'WordText': '-', 'Left': 33.0, 'Top': 2572.0, 'Height': 39.0, 'Width': 554.0}, {'WordText': '074', 'Left': 33.0, 'Top': 2572.0, 'Height': 39.0, 'Width': 554.0}, {'WordText': '-', 'Left': 33.0, 'Top': 2572.0, 'Height': 39.0, 'Width': 554.0}, {'WordText': '0194656', 'Left': 33.0, 'Top': 2572.0, 'Height': 39.0, 'Width': 554.0}, {'WordText': '-', 'Left': 33.0, 'Top': 2572.0, 'Height': 39.0, 'Width': 554.0}, {'WordText': '00002', 'Left': 33.0, 'Top': 2572.0, 'Height': 39.0, 'Width': 554.0}], 'MaxHeight': 39.0, 'MinTop': 2572.0}, {'LineText': 'Get a chance to win a trip for', 'Words': [{'WordText': 'Get', 'Left': 29.0, 'Top': 2679.0, 'Height': 39.0, 'Width': 78.0}, {'WordText': 'a', 'Left': 112.0, 'Top': 2679.0, 'Height': 39.0, 'Width': 34.0}, {'WordText': 'chance', 'Left': 151.0, 'Top': 2679.0, 'Height': 39.0, 'Width': 146.0}, {'WordText': 'to', 'Left': 302.0, 'Top': 2679.0, 'Height': 39.0, 'Width': 54.0}, {'WordText': 'win', 'Left': 361.0, 'Top': 2679.0, 'Height': 39.0, 'Width': 83.0}, {'WordText': 'a', 'Left': 448.0, 'Top': 2679.0, 'Height': 39.0, 'Width': 34.0}, {'WordText': 'trip', 'Left': 487.0, 'Top': 2679.0, 'Height': 39.0, 'Width': 107.0}, {'WordText': 'for', 'Left': 599.0, 'Top': 2679.0, 'Height': 39.0, 'Width': 69.0}], 'MaxHeight': 39.0, 'MinTop': 2679.0}, {'LineText': '2 to Korea when you buy PISO', 'Words': [{'WordText': '2', 'Left': 52.0, 'Top': 2731.0, 'Height': 39.0, 'Width': 34.0}, {'WordText': 'to', 'Left': 91.0, 'Top': 2731.0, 'Height': 39.0, 'Width': 58.0}, {'WordText': 'Korea', 'Left': 154.0, 'Top': 2731.0, 'Height': 39.0, 'Width': 122.0}, {'WordText': 'when', 'Left': 281.0, 'Top': 2731.0, 'Height': 39.0, 'Width': 102.0}, {'WordText': 'you', 'Left': 388.0, 'Top': 2731.0, 'Height': 39.0, 'Width': 78.0}, {'WordText': 'buy', 'Left': 471.0, 'Top': 2731.0, 'Height': 39.0, 'Width': 78.0}, {'WordText': 'PISO', 'Left': 554.0, 'Top': 2731.0, 'Height': 39.0, 'Width': 91.0}], 'MaxHeight': 39.0, 'MinTop': 2731.0}, {'LineText': 'worth of 7-Eleven items. Earn', 'Words': [{'WordText': 'worth', 'Left': 29.0, 'Top': 2783.0, 'Height': 49.0, 'Width': 116.0}, {'WordText': 'of', 'Left': 152.0, 'Top': 2783.0, 'Height': 49.0, 'Width': 61.0}, {'WordText': '7', 'Left': 219.0, 'Top': 2783.0, 'Height': 49.0, 'Width': 184.0}, {'WordText': '-', 'Left': 219.0, 'Top': 2783.0, 'Height': 49.0, 'Width': 184.0}, {'WordText': 'Eleven', 'Left': 219.0, 'Top': 2783.0, 'Height': 49.0, 'Width': 184.0}, {'WordText': 'items', 'Left': 409.0, 'Top': 2783.0, 'Height': 49.0, 'Width': 135.0}, {'WordText': '.', 'Left': 409.0, 'Top': 2783.0, 'Height': 49.0, 'Width': 135.0}, {'WordText': 'Earn', 'Left': 550.0, 'Top': 2783.0, 'Height': 49.0, 'Width': 99.0}], 'MaxHeight': 49.0, 'MinTop': 2783.0}, {'LineText': '3 eRaffle entries when you buy', 'Words': [{'WordText': '3', 'Left': 29.0, 'Top': 2832.0, 'Height': 39.0, 'Width': 34.0}, {'WordText': 'eRaffle', 'Left': 68.0, 'Top': 2832.0, 'Height': 39.0, 'Width': 166.0}, {'WordText': 'entries', 'Left': 239.0, 'Top': 2832.0, 'Height': 39.0, 'Width': 161.0}, {'WordText': 'when', 'Left': 404.0, 'Top': 2832.0, 'Height': 39.0, 'Width': 102.0}, {'WordText': 'you', 'Left': 512.0, 'Top': 2832.0, 'Height': 39.0, 'Width': 78.0}, {'WordText': 'buy', 'Left': 594.0, 'Top': 2832.0, 'Height': 39.0, 'Width': 70.0}], 'MaxHeight': 39.0, 'MinTop': 2832.0}, {'LineText': 'discounted booster Items. Per', 'Words': [{'WordText': 'discounted', 'Left': 33.0, 'Top': 2888.0, 'Height': 42.0, 'Width': 221.0}, {'WordText': 'booster', 'Left': 259.0, 'Top': 2888.0, 'Height': 42.0, 'Width': 168.0}, {'WordText': 'Items', 'Left': 432.0, 'Top': 2888.0, 'Height': 42.0, 'Width': 137.0}, {'WordText': '.', 'Left': 432.0, 'Top': 2888.0, 'Height': 42.0, 'Width': 137.0}, {'WordText': 'Per', 'Left': 574.0, 'Top': 2888.0, 'Height': 42.0, 'Width': 68.0}], 'MaxHeight': 42.0, 'MinTop': 2888.0}, {'LineText': 'DTI FAIR TRADE Permit Number:', 'Words': [{'WordText': 'DTI', 'Left': 29.0, 'Top': 2933.0, 'Height': 42.0, 'Width': 78.0}, {'WordText': 'FAIR', 'Left': 113.0, 'Top': 2933.0, 'Height': 42.0, 'Width': 100.0}, {'WordText': 'TRADE', 'Left': 218.0, 'Top': 2933.0, 'Height': 42.0, 'Width': 121.0}, {'WordText': 'Permit', 'Left': 344.0, 'Top': 2933.0, 'Height': 42.0, 'Width': 142.0}, {'WordText': 'Number', 'Left': 491.0, 'Top': 2933.0, 'Height': 42.0, 'Width': 151.0}, {'WordText': ':', 'Left': 491.0, 'Top': 2933.0, 'Height': 42.0, 'Width': 151.0}], 'MaxHeight': 42.0, 'MinTop': 2933.0}, {'LineText': '163019 Series of 2023..', 'Words': [{'WordText': '163019', 'Left': 117.0, 'Top': 2988.0, 'Height': 40.0, 'Width': 135.0}, {'WordText': 'Series', 'Left': 257.0, 'Top': 2988.0, 'Height': 40.0, 'Width': 145.0}, {'WordText': 'of', 'Left': 407.0, 'Top': 2988.0, 'Height': 40.0, 'Width': 55.0}, {'WordText': '2023', 'Left': 467.0, 'Top': 2988.0, 'Height': 40.0, 'Width': 165.0}, {'WordText': '..', 'Left': 467.0, 'Top': 2988.0, 'Height': 40.0, 'Width': 165.0}], 'MaxHeight': 40.0, 'MinTop': 2988.0}, {'LineText': 'facebook.com/711philippines.', 'Words': [{'WordText': 'facebook.com', 'Left': 52.0, 'Top': 3037.0, 'Height': 42.0, 'Width': 590.0}, {'WordText': '/', 'Left': 52.0, 'Top': 3037.0, 'Height': 42.0, 'Width': 590.0}, {'WordText': '711philippines', 'Left': 52.0, 'Top': 3037.0, 'Height': 42.0, 'Width': 590.0}, {'WordText': '.', 'Left': 52.0, 'Top': 3037.0, 'Height': 42.0, 'Width': 590.0}], 'MaxHeight': 42.0, 'MinTop': 3037.0}, {'LineText': '- THIS IS AN OFFICIAL RECEIPT -', 'Words': [{'WordText': '-', 'Left': 0.0, 'Top': 3138.0, 'Height': 46.0, 'Width': 46.0}, {'WordText': 'THIS', 'Left': 52.0, 'Top': 3138.0, 'Height': 46.0, 'Width': 98.0}, {'WordText': 'IS', 'Left': 155.0, 'Top': 3138.0, 'Height': 46.0, 'Width': 57.0}, {'WordText': 'AN', 'Left': 219.0, 'Top': 3138.0, 'Height': 46.0, 'Width': 52.0}, {'WordText': 'OFFICIAL', 'Left': 276.0, 'Top': 3138.0, 'Height': 46.0, 'Width': 184.0}, {'WordText': 'RECEIPT', 'Left': 466.0, 'Top': 3138.0, 'Height': 46.0, 'Width': 167.0}, {'WordText': '-', 'Left': 638.0, 'Top': 3138.0, 'Height': 46.0, 'Width': 30.0}], 'MaxHeight': 46.0, 'MinTop': 3138.0}], 'HasOverlay': True}, 'TextOrientation': '0', 'FileParseExitCode': 1, 'ParsedText': '7-ELEVEN.\\nNHJ Convenience Store\\nOwned & Operated by: Nancy A.\\nClimacosa\\nVATREGTIN #933-598-685-002\\nPoblacion, Leon, Iloilo,\\nPhilippines\\nlel #: NULL\\n05/01/2023 (Mon) 23:00:57\\nRCPT #2481347\\nROPT CNTHO\\nSTORE#3058\\nSN# :XTI43170\\nMIN #: 18112011091411051\\nSTAFF: Angelica Duante\\n7FKoreanßun\\nNissinYaSaBeet77g\\nBBHOTDOGCREMYCHEES\\n39.00 Х 6\\nchocvron? in1Ch020g\\n15.00 X\\n2\\n55.004\\n40.000\\n234.000\\n30.000\\nTotal (10)\\nCASH\\nCHANGE\\n359.00\\n1000.00\\n641.00\\nVATable\\nVAT_Tax\\nZero_Rated\\nVAT_Exempted\\n320.54\\n38.46\\n0.00\\n0.00\\nSold To: 9906087698684\\nName:\\nAddress:\\nTIN:\\nPhilippine Seven Corporation\\n7th Floor The Columbia Tower\\nOrtigas Avenue, Mandaluyong\\nCity\\nTIN: 000-390-189-000\\nBIR ACCI #\\n116-000390189-000346 19602\\nAcciDate: 08/01/2020\\n07/31/2025\\nPermit #:\\nFP112018-074-0194656-00002\\nGet a chance to win a trip for\\n2 to Korea when you buy PISO\\nworth of 7-Eleven items. Earn\\n3 eRaffle entries when you buy\\ndiscounted booster Items. Per\\nDTI FAIR TRADE Permit Number:\\n163019 Series of 2023..\\nfacebook.com/711philippines.\\n- THIS IS AN OFFICIAL RECEIPT -', 'ErrorMessage': '', 'ErrorDetails': ''}], 'OCRExitCode': 1, 'IsErroredOnProcessing': False, 'ProcessingTimeInMilliseconds': '2593', 'SearchablePDFURL': 'Searchable PDF not generated as it was not requested.'}\n"
1243
+ ]
1244
+ }
1245
+ ],
1246
+ "source": [
1247
+ "# Import requests library\n",
1248
+ "import requests\n",
1249
+ "\n",
1250
+ "# Define the OCR API endpoint\n",
1251
+ "url = \"https://api.ocr.space/parse/image\"\n",
1252
+ "\n",
1253
+ "# Define the API key and the language\n",
1254
+ "api_key = \"K88232854988957\"\n",
1255
+ "language = \"eng\"\n",
1256
+ "\n",
1257
+ "# Define the image file path\n",
1258
+ "image_file = r\"C:\\Users\\Ayoo\\Desktop\\webapp\\predictions\\imgs\\20230508_122035.jpg\"\n",
1259
+ "\n",
1260
+ "# Open the image file as binary\n",
1261
+ "with open(image_file, \"rb\") as f:\n",
1262
+ " # Define the payload for the API request\n",
1263
+ " payload = {\n",
1264
+ " \"apikey\": api_key,\n",
1265
+ " \"language\": language,\n",
1266
+ " \"isOverlayRequired\": True, # Optional, set to True if you want the coordinates of the words\n",
1267
+ " \"OCREngine\": 2 # OCR Engine 2 for Layoutlmv3\n",
1268
+ " }\n",
1269
+ " # Define the file parameter for the API request\n",
1270
+ " file = {\n",
1271
+ " \"file\": f\n",
1272
+ " }\n",
1273
+ " # Send the POST request to the OCR API\n",
1274
+ " response = requests.post(url, data=payload, files=file)\n",
1275
+ "\n",
1276
+ "# Check the status code of the response\n",
1277
+ "if response.status_code == 200:\n",
1278
+ " # Parse the JSON response\n",
1279
+ " result = response.json()\n",
1280
+ " # Print the parsed text\n",
1281
+ " print(result)\n",
1282
+ "else:\n",
1283
+ " # Print the error message\n",
1284
+ " print(\"Error: \" + response.text)\n"
1285
+ ]
1286
+ },
1287
+ {
1288
+ "cell_type": "code",
1289
+ "execution_count": 13,
1290
+ "metadata": {},
1291
+ "outputs": [
1292
+ {
1293
+ "ename": "TypeError",
1294
+ "evalue": "Object of type Response is not JSON serializable",
1295
+ "output_type": "error",
1296
+ "traceback": [
1297
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
1298
+ "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
1299
+ "Cell \u001b[1;32mIn[13], line 4\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mjson\u001b[39;00m\n\u001b[0;32m 3\u001b[0m \u001b[38;5;66;03m# Assuming 'response' is the JSON response from the OCR API\u001b[39;00m\n\u001b[1;32m----> 4\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[43mjson\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdumps\u001b[49m\u001b[43m(\u001b[49m\u001b[43mresponse\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mindent\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m4\u001b[39;49m\u001b[43m)\u001b[49m)\n",
1300
+ "File \u001b[1;32mc:\\Users\\Ayoo\\anaconda3\\envs\\mlenv\\Lib\\json\\__init__.py:238\u001b[0m, in \u001b[0;36mdumps\u001b[1;34m(obj, skipkeys, ensure_ascii, check_circular, allow_nan, cls, indent, separators, default, sort_keys, **kw)\u001b[0m\n\u001b[0;32m 232\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mcls\u001b[39m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 233\u001b[0m \u001b[38;5;28mcls\u001b[39m \u001b[38;5;241m=\u001b[39m JSONEncoder\n\u001b[0;32m 234\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mcls\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[0;32m 235\u001b[0m \u001b[43m \u001b[49m\u001b[43mskipkeys\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mskipkeys\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mensure_ascii\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mensure_ascii\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 236\u001b[0m \u001b[43m \u001b[49m\u001b[43mcheck_circular\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcheck_circular\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mallow_nan\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mallow_nan\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mindent\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mindent\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 237\u001b[0m \u001b[43m \u001b[49m\u001b[43mseparators\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mseparators\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdefault\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdefault\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msort_keys\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msort_keys\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m--> 238\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mencode\u001b[49m\u001b[43m(\u001b[49m\u001b[43mobj\u001b[49m\u001b[43m)\u001b[49m\n",
1301
+ "File \u001b[1;32mc:\\Users\\Ayoo\\anaconda3\\envs\\mlenv\\Lib\\json\\encoder.py:202\u001b[0m, in \u001b[0;36mJSONEncoder.encode\u001b[1;34m(self, o)\u001b[0m\n\u001b[0;32m 200\u001b[0m chunks \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39miterencode(o, _one_shot\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m 201\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(chunks, (\u001b[38;5;28mlist\u001b[39m, \u001b[38;5;28mtuple\u001b[39m)):\n\u001b[1;32m--> 202\u001b[0m chunks \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(chunks)\n\u001b[0;32m 203\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(chunks)\n",
1302
+ "File \u001b[1;32mc:\\Users\\Ayoo\\anaconda3\\envs\\mlenv\\Lib\\json\\encoder.py:439\u001b[0m, in \u001b[0;36m_make_iterencode.<locals>._iterencode\u001b[1;34m(o, _current_indent_level)\u001b[0m\n\u001b[0;32m 437\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCircular reference detected\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 438\u001b[0m markers[markerid] \u001b[38;5;241m=\u001b[39m o\n\u001b[1;32m--> 439\u001b[0m o \u001b[38;5;241m=\u001b[39m \u001b[43m_default\u001b[49m\u001b[43m(\u001b[49m\u001b[43mo\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 440\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m _iterencode(o, _current_indent_level)\n\u001b[0;32m 441\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m markers \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
1303
+ "File \u001b[1;32mc:\\Users\\Ayoo\\anaconda3\\envs\\mlenv\\Lib\\json\\encoder.py:180\u001b[0m, in \u001b[0;36mJSONEncoder.default\u001b[1;34m(self, o)\u001b[0m\n\u001b[0;32m 161\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mdefault\u001b[39m(\u001b[38;5;28mself\u001b[39m, o):\n\u001b[0;32m 162\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Implement this method in a subclass such that it returns\u001b[39;00m\n\u001b[0;32m 163\u001b[0m \u001b[38;5;124;03m a serializable object for ``o``, or calls the base implementation\u001b[39;00m\n\u001b[0;32m 164\u001b[0m \u001b[38;5;124;03m (to raise a ``TypeError``).\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 178\u001b[0m \n\u001b[0;32m 179\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m--> 180\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mObject of type \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mo\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__class__\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m \u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[0;32m 181\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mis not JSON serializable\u001b[39m\u001b[38;5;124m'\u001b[39m)\n",
1304
+ "\u001b[1;31mTypeError\u001b[0m: Object of type Response is not JSON serializable"
1305
+ ]
1306
+ }
1307
+ ],
1308
+ "source": [
1309
+ "import json\n",
1310
+ "\n",
1311
+ "# Assuming 'response' is the JSON response from the OCR API\n",
1312
+ "print(json.dumps(response, indent=4))\n"
1313
+ ]
1314
+ }
1315
+ ],
1316
+ "metadata": {
1317
+ "kernelspec": {
1318
+ "display_name": "mlenv",
1319
+ "language": "python",
1320
+ "name": "python3"
1321
+ },
1322
+ "language_info": {
1323
+ "codemirror_mode": {
1324
+ "name": "ipython",
1325
+ "version": 3
1326
+ },
1327
+ "file_extension": ".py",
1328
+ "mimetype": "text/x-python",
1329
+ "name": "python",
1330
+ "nbconvert_exporter": "python",
1331
+ "pygments_lexer": "ipython3",
1332
+ "version": "3.11.5"
1333
+ }
1334
+ },
1335
+ "nbformat": 4,
1336
+ "nbformat_minor": 2
1337
+ }
inferenced/csv_files/Output_0.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ RECEIPTNUMBER,MERCHANTNAME,MERCHANTADDRESS,TRANSACTIONDATE,TRANSACTIONTIME,ITEMS,PRICE,TOTAL,VATTAX
2
+ # 1457229,7 - ELEVEN �,"Poblacion , Leon , Iloilo ,",05 / 01 / 2023 ( Mon ),16 : 54 : 23,NESTEALEMICET500ML,35.000,76.00,8.14
3
+ # 1457229,7 - ELEVEN �,"Poblacion , Leon , Iloilo ,",05 / 01 / 2023 ( Mon ),16 : 54 : 23,ArlaGStrwbryT200ml,41.000,76.00,8.14
inferenced/output.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ RECEIPTNUMBER,MERCHANTNAME,MERCHANTADDRESS,TRANSACTIONDATE,TRANSACTIONTIME,ITEMS,PRICE,TOTAL,VATTAX
2
+ # 1457229,7 - ELEVEN �,"Poblacion , Leon , Iloilo ,",05 / 01 / 2023 ( Mon ),16 : 54 : 23,NESTEALEMICET500ML,35.000,76.00,8.14
3
+ # 1457229,7 - ELEVEN �,"Poblacion , Leon , Iloilo ,",05 / 01 / 2023 ( Mon ),16 : 54 : 23,ArlaGStrwbryT200ml,41.000,76.00,8.14
log/error_output.log CHANGED
@@ -326,3 +326,322 @@ Traceback (most recent call last):
326
  TypeError: The view function for 'create_csv' did not return a valid response. The function either returned None or ended without a return statement.
327
  2024-02-22 17:02:51,766 INFO werkzeug 127.0.0.1 - - [22/Feb/2024 17:02:51] "GET /create_csv HTTP/1.1" 500 -
328
  2024-02-22 17:02:52,348 INFO werkzeug 127.0.0.1 - - [22/Feb/2024 17:02:52] "GET /get_data HTTP/1.1" 404 -
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
326
  TypeError: The view function for 'create_csv' did not return a valid response. The function either returned None or ended without a return statement.
327
  2024-02-22 17:02:51,766 INFO werkzeug 127.0.0.1 - - [22/Feb/2024 17:02:51] "GET /create_csv HTTP/1.1" 500 -
328
  2024-02-22 17:02:52,348 INFO werkzeug 127.0.0.1 - - [22/Feb/2024 17:02:52] "GET /get_data HTTP/1.1" 404 -
329
+ 2024-05-14 23:17:20,132 ERROR app 'NoneType' object is not iterable
330
+ 2024-05-14 23:17:20,132 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:17:20] "GET /run_inference HTTP/1.1" 302 -
331
+ 2024-05-14 23:17:20,211 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:17:20] "GET /create_csv HTTP/1.1" 500 -
332
+ 2024-05-14 23:17:21,304 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:17:21] "GET /static/temp/img_display/sample_coop.jpg_inference.jpg HTTP/1.1" 404 -
333
+ 2024-05-14 23:17:21,304 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:17:21] "GET /get_data HTTP/1.1" 404 -
334
+ 2024-05-14 23:17:21,320 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:17:21] "GET /static/temp/img_display/sample_711.jpg_inference.jpg HTTP/1.1" 404 -
335
+ 2024-05-14 23:17:21,320 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:17:21] "GET /static/temp/img_display/sample_grace.jpg_inference.jpg HTTP/1.1" 404 -
336
+ 2024-05-14 23:17:21,335 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:17:21] "GET /static/temp/img_display/sample1_711.jpg_inference.jpg HTTP/1.1" 404 -
337
+ 2024-05-14 23:17:21,367 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:17:21] "GET /static/temp/img_display/sample1_grace.jpg_inference.jpg HTTP/1.1" 404 -
338
+ 2024-05-14 23:19:04,201 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:04] "GET /static/temp/img_display/sample1_grace.jpg_inference.jpg HTTP/1.1" 404 -
339
+ 2024-05-14 23:19:06,397 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:06] "GET / HTTP/1.1" 200 -
340
+ 2024-05-14 23:19:06,524 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:06] "GET /styles.css HTTP/1.1" 404 -
341
+ 2024-05-14 23:19:06,659 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:06] "GET /static/css/style.css HTTP/1.1" 304 -
342
+ 2024-05-14 23:19:06,712 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:06] "GET /static/css/color.css HTTP/1.1" 304 -
343
+ 2024-05-14 23:19:06,719 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:06] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
344
+ 2024-05-14 23:19:06,723 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:06] "GET /static/css/animate.css HTTP/1.1" 304 -
345
+ 2024-05-14 23:19:06,788 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:06] "GET /static/images/logo.png HTTP/1.1" 304 -
346
+ 2024-05-14 23:19:06,825 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:06] "GET /static/images/uplogo.gif HTTP/1.1" 304 -
347
+ 2024-05-14 23:19:06,869 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:06] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
348
+ 2024-05-14 23:19:06,875 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:06] "GET /static/js/wow.min.js HTTP/1.1" 304 -
349
+ 2024-05-14 23:19:06,900 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:06] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
350
+ 2024-05-14 23:19:06,950 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:06] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
351
+ 2024-05-14 23:19:06,975 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:06] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
352
+ 2024-05-14 23:19:06,987 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:06] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
353
+ 2024-05-14 23:19:07,025 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:07] "GET /static/static/js/jquery.stickyNavbar.min.js HTTP/1.1" 404 -
354
+ 2024-05-14 23:19:07,033 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:07] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
355
+ 2024-05-14 23:19:07,074 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:07] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
356
+ 2024-05-14 23:19:07,097 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:07] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
357
+ 2024-05-14 23:19:07,107 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:07] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
358
+ 2024-05-14 23:19:07,139 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:07] "GET /static/js/site.js HTTP/1.1" 304 -
359
+ 2024-05-14 23:19:07,946 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:07] "GET /static/images/favicon.ico HTTP/1.1" 304 -
360
+ 2024-05-14 23:19:27,049 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:27] "POST /upload HTTP/1.1" 302 -
361
+ 2024-05-14 23:19:35,432 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:35] "GET /predict/%5B'sample_grace.jpg',%20'sample1_711.jpg',%20'sample1_grace.jpg'%5D HTTP/1.1" 200 -
362
+ 2024-05-14 23:19:35,609 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:35] "GET /predict/css/animate.css HTTP/1.1" 404 -
363
+ 2024-05-14 23:19:35,623 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:35] "GET /static/css/style.css HTTP/1.1" 304 -
364
+ 2024-05-14 23:19:35,641 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:35] "GET /static/css/color.css HTTP/1.1" 304 -
365
+ 2024-05-14 23:19:35,751 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:35] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
366
+ 2024-05-14 23:19:35,765 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:35] "GET /static/temp/img_display/sample1_711.jpg HTTP/1.1" 200 -
367
+ 2024-05-14 23:19:35,780 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:35] "GET /static/temp/img_display/sample_grace.jpg HTTP/1.1" 200 -
368
+ 2024-05-14 23:19:35,989 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:35] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
369
+ 2024-05-14 23:19:36,035 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:36] "GET /static/images/logo.png HTTP/1.1" 304 -
370
+ 2024-05-14 23:19:36,089 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:36] "GET /static/images/avatar.gif HTTP/1.1" 304 -
371
+ 2024-05-14 23:19:36,101 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:36] "GET /static/temp/img_display/sample1_grace.jpg HTTP/1.1" 200 -
372
+ 2024-05-14 23:19:36,191 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:36] "GET /static/js/wow.min.js HTTP/1.1" 304 -
373
+ 2024-05-14 23:19:36,201 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:36] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
374
+ 2024-05-14 23:19:36,230 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:36] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
375
+ 2024-05-14 23:19:36,264 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:36] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
376
+ 2024-05-14 23:19:36,299 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:36] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
377
+ 2024-05-14 23:19:36,340 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:36] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
378
+ 2024-05-14 23:19:36,350 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:36] "GET /static/js/jquery.stickyNavbar.min.js HTTP/1.1" 304 -
379
+ 2024-05-14 23:19:36,386 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:36] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
380
+ 2024-05-14 23:19:36,398 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:36] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
381
+ 2024-05-14 23:19:36,451 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:36] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
382
+ 2024-05-14 23:19:36,538 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:36] "GET /static/js/site.js HTTP/1.1" 304 -
383
+ 2024-05-14 23:19:37,526 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:19:37] "GET /static/images/favicon.ico HTTP/1.1" 304 -
384
+ 2024-05-14 23:21:37,313 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:21:37] "GET /run_inference HTTP/1.1" 302 -
385
+ 2024-05-14 23:21:37,413 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:21:37] "GET /create_csv HTTP/1.1" 204 -
386
+ 2024-05-14 23:21:38,013 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:21:38] "GET /get_data HTTP/1.1" 200 -
387
+ 2024-05-14 23:21:38,068 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:21:38] "GET /static/temp/img_display/sample_grace.jpg_inference.jpg HTTP/1.1" 200 -
388
+ 2024-05-14 23:21:38,119 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:21:38] "GET /static/temp/img_display/sample1_711.jpg_inference.jpg HTTP/1.1" 200 -
389
+ 2024-05-14 23:21:38,197 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:21:38] "GET /static/temp/img_display/sample1_grace.jpg_inference.jpg HTTP/1.1" 200 -
390
+ 2024-05-14 23:28:11,969 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:11] "GET / HTTP/1.1" 200 -
391
+ 2024-05-14 23:28:12,118 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /styles.css HTTP/1.1" 404 -
392
+ 2024-05-14 23:28:12,143 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /static/css/style.css HTTP/1.1" 304 -
393
+ 2024-05-14 23:28:12,211 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /static/css/color.css HTTP/1.1" 304 -
394
+ 2024-05-14 23:28:12,277 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
395
+ 2024-05-14 23:28:12,338 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /static/images/logo.png HTTP/1.1" 304 -
396
+ 2024-05-14 23:28:12,341 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /static/css/animate.css HTTP/1.1" 304 -
397
+ 2024-05-14 23:28:12,488 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /static/images/uplogo.gif HTTP/1.1" 304 -
398
+ 2024-05-14 23:28:12,500 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
399
+ 2024-05-14 23:28:12,526 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /static/js/wow.min.js HTTP/1.1" 304 -
400
+ 2024-05-14 23:28:12,541 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
401
+ 2024-05-14 23:28:12,583 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
402
+ 2024-05-14 23:28:12,589 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
403
+ 2024-05-14 23:28:12,698 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
404
+ 2024-05-14 23:28:12,738 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /static/static/js/jquery.stickyNavbar.min.js HTTP/1.1" 404 -
405
+ 2024-05-14 23:28:12,741 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
406
+ 2024-05-14 23:28:12,763 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
407
+ 2024-05-14 23:28:12,773 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
408
+ 2024-05-14 23:28:12,786 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
409
+ 2024-05-14 23:28:12,834 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:12] "GET /static/js/site.js HTTP/1.1" 304 -
410
+ 2024-05-14 23:28:14,617 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:28:14] "GET /static/images/favicon.ico HTTP/1.1" 304 -
411
+ 2024-05-14 23:29:07,771 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:07] "POST /upload HTTP/1.1" 302 -
412
+ 2024-05-14 23:29:11,451 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:11] "GET /predict/%5B'Screenshot_22.png'%5D HTTP/1.1" 200 -
413
+ 2024-05-14 23:29:11,635 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:11] "GET /predict/css/animate.css HTTP/1.1" 404 -
414
+ 2024-05-14 23:29:11,661 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:11] "GET /static/temp/img_display/Screenshot_22.png HTTP/1.1" 200 -
415
+ 2024-05-14 23:29:11,764 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:11] "GET /static/css/color.css HTTP/1.1" 304 -
416
+ 2024-05-14 23:29:11,784 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:11] "GET /static/css/style.css HTTP/1.1" 304 -
417
+ 2024-05-14 23:29:11,797 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:11] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
418
+ 2024-05-14 23:29:11,947 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:11] "GET /static/images/logo.png HTTP/1.1" 304 -
419
+ 2024-05-14 23:29:12,120 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:12] "GET /static/images/avatar.gif HTTP/1.1" 304 -
420
+ 2024-05-14 23:29:12,175 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:12] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
421
+ 2024-05-14 23:29:12,283 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:12] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
422
+ 2024-05-14 23:29:12,285 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:12] "GET /static/js/wow.min.js HTTP/1.1" 304 -
423
+ 2024-05-14 23:29:12,307 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:12] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
424
+ 2024-05-14 23:29:12,344 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:12] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
425
+ 2024-05-14 23:29:12,391 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:12] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
426
+ 2024-05-14 23:29:12,459 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:12] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
427
+ 2024-05-14 23:29:12,503 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:12] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
428
+ 2024-05-14 23:29:12,538 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:12] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
429
+ 2024-05-14 23:29:12,547 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:12] "GET /static/js/jquery.stickyNavbar.min.js HTTP/1.1" 304 -
430
+ 2024-05-14 23:29:12,563 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:12] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
431
+ 2024-05-14 23:29:12,595 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:12] "GET /static/js/site.js HTTP/1.1" 304 -
432
+ 2024-05-14 23:29:13,408 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:13] "GET /static/images/favicon.ico HTTP/1.1" 304 -
433
+ 2024-05-14 23:29:16,302 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:16] "GET / HTTP/1.1" 200 -
434
+ 2024-05-14 23:29:16,446 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:16] "GET /static/css/style.css HTTP/1.1" 304 -
435
+ 2024-05-14 23:29:16,521 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:16] "GET /static/css/animate.css HTTP/1.1" 304 -
436
+ 2024-05-14 23:29:16,540 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:16] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
437
+ 2024-05-14 23:29:16,636 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:16] "GET /static/css/color.css HTTP/1.1" 304 -
438
+ 2024-05-14 23:29:16,678 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:16] "GET /static/images/logo.png HTTP/1.1" 304 -
439
+ 2024-05-14 23:29:16,693 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:16] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
440
+ 2024-05-14 23:29:16,727 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:16] "GET /styles.css HTTP/1.1" 404 -
441
+ 2024-05-14 23:29:16,761 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:16] "GET /static/js/wow.min.js HTTP/1.1" 304 -
442
+ 2024-05-14 23:29:16,794 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:16] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
443
+ 2024-05-14 23:29:16,844 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:16] "GET /static/images/uplogo.gif HTTP/1.1" 304 -
444
+ 2024-05-14 23:29:16,971 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:16] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
445
+ 2024-05-14 23:29:16,975 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:16] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
446
+ 2024-05-14 23:29:17,096 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:17] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
447
+ 2024-05-14 23:29:17,146 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:17] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
448
+ 2024-05-14 23:29:17,164 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:17] "GET /static/static/js/jquery.stickyNavbar.min.js HTTP/1.1" 404 -
449
+ 2024-05-14 23:29:17,176 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:17] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
450
+ 2024-05-14 23:29:17,238 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:17] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
451
+ 2024-05-14 23:29:17,242 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:17] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
452
+ 2024-05-14 23:29:17,250 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:17] "GET /static/js/site.js HTTP/1.1" 304 -
453
+ 2024-05-14 23:29:17,920 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:17] "GET /static/images/favicon.ico HTTP/1.1" 304 -
454
+ 2024-05-14 23:29:26,116 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:26] "POST /upload HTTP/1.1" 302 -
455
+ 2024-05-14 23:29:30,688 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:30] "GET /predict/%5B'Screenshot_24.png'%5D HTTP/1.1" 200 -
456
+ 2024-05-14 23:29:30,889 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:30] "GET /static/css/style.css HTTP/1.1" 304 -
457
+ 2024-05-14 23:29:30,926 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:30] "GET /static/css/color.css HTTP/1.1" 304 -
458
+ 2024-05-14 23:29:30,958 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:30] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
459
+ 2024-05-14 23:29:31,008 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:31] "GET /static/temp/img_display/Screenshot_24.png HTTP/1.1" 200 -
460
+ 2024-05-14 23:29:31,106 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:31] "GET /static/images/logo.png HTTP/1.1" 304 -
461
+ 2024-05-14 23:29:31,125 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:31] "GET /predict/css/animate.css HTTP/1.1" 404 -
462
+ 2024-05-14 23:29:31,318 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:31] "GET /static/images/avatar.gif HTTP/1.1" 304 -
463
+ 2024-05-14 23:29:31,332 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:31] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
464
+ 2024-05-14 23:29:31,398 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:31] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
465
+ 2024-05-14 23:29:31,459 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:31] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
466
+ 2024-05-14 23:29:31,487 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:31] "GET /static/js/wow.min.js HTTP/1.1" 304 -
467
+ 2024-05-14 23:29:31,526 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:31] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
468
+ 2024-05-14 23:29:31,606 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:31] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
469
+ 2024-05-14 23:29:31,643 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:31] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
470
+ 2024-05-14 23:29:31,688 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:31] "GET /static/js/jquery.stickyNavbar.min.js HTTP/1.1" 304 -
471
+ 2024-05-14 23:29:31,729 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:31] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
472
+ 2024-05-14 23:29:31,760 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:31] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
473
+ 2024-05-14 23:29:31,795 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:31] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
474
+ 2024-05-14 23:29:31,813 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:31] "GET /static/js/site.js HTTP/1.1" 304 -
475
+ 2024-05-14 23:29:32,091 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:32] "GET /static/images/favicon.ico HTTP/1.1" 304 -
476
+ 2024-05-14 23:29:33,924 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:33] "GET / HTTP/1.1" 200 -
477
+ 2024-05-14 23:29:34,375 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:34] "GET /static/css/style.css HTTP/1.1" 304 -
478
+ 2024-05-14 23:29:34,551 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:34] "GET /static/css/color.css HTTP/1.1" 304 -
479
+ 2024-05-14 23:29:34,606 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:34] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
480
+ 2024-05-14 23:29:34,641 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:34] "GET /static/css/animate.css HTTP/1.1" 304 -
481
+ 2024-05-14 23:29:34,873 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:34] "GET /styles.css HTTP/1.1" 404 -
482
+ 2024-05-14 23:29:34,994 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:34] "GET /static/images/logo.png HTTP/1.1" 304 -
483
+ 2024-05-14 23:29:35,156 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:35] "GET /static/images/uplogo.gif HTTP/1.1" 304 -
484
+ 2024-05-14 23:29:35,181 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:35] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
485
+ 2024-05-14 23:29:35,209 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:35] "GET /static/js/wow.min.js HTTP/1.1" 304 -
486
+ 2024-05-14 23:29:35,243 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:35] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
487
+ 2024-05-14 23:29:35,293 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:35] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
488
+ 2024-05-14 23:29:35,398 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:35] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
489
+ 2024-05-14 23:29:35,424 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:35] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
490
+ 2024-05-14 23:29:35,457 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:35] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
491
+ 2024-05-14 23:29:35,537 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:35] "GET /static/static/js/jquery.stickyNavbar.min.js HTTP/1.1" 404 -
492
+ 2024-05-14 23:29:35,546 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:35] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
493
+ 2024-05-14 23:29:35,554 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:35] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
494
+ 2024-05-14 23:29:35,579 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:35] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
495
+ 2024-05-14 23:29:35,610 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:35] "GET /static/js/site.js HTTP/1.1" 304 -
496
+ 2024-05-14 23:29:36,187 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:29:36] "GET /static/images/favicon.ico HTTP/1.1" 304 -
497
+ 2024-05-14 23:30:51,152 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:51] "POST /upload HTTP/1.1" 302 -
498
+ 2024-05-14 23:30:58,321 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:58] "GET /predict/%5B'images.png',%20'sample_711.jpg',%20'sample_coop.jpg'%5D HTTP/1.1" 200 -
499
+ 2024-05-14 23:30:58,535 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:58] "GET /predict/css/animate.css HTTP/1.1" 404 -
500
+ 2024-05-14 23:30:58,535 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:58] "GET /static/css/style.css HTTP/1.1" 304 -
501
+ 2024-05-14 23:30:58,553 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:58] "GET /static/temp/img_display/images.png HTTP/1.1" 200 -
502
+ 2024-05-14 23:30:58,586 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:58] "GET /static/css/color.css HTTP/1.1" 304 -
503
+ 2024-05-14 23:30:58,628 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:58] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
504
+ 2024-05-14 23:30:58,745 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:58] "GET /static/temp/img_display/sample_711.jpg HTTP/1.1" 200 -
505
+ 2024-05-14 23:30:58,887 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:58] "GET /static/temp/img_display/sample_coop.jpg HTTP/1.1" 200 -
506
+ 2024-05-14 23:30:58,968 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:58] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
507
+ 2024-05-14 23:30:58,974 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:58] "GET /static/images/logo.png HTTP/1.1" 304 -
508
+ 2024-05-14 23:30:58,987 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:58] "GET /static/images/avatar.gif HTTP/1.1" 304 -
509
+ 2024-05-14 23:30:58,996 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:58] "GET /static/js/wow.min.js HTTP/1.1" 304 -
510
+ 2024-05-14 23:30:59,143 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:59] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
511
+ 2024-05-14 23:30:59,149 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:59] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
512
+ 2024-05-14 23:30:59,150 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:59] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
513
+ 2024-05-14 23:30:59,156 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:59] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
514
+ 2024-05-14 23:30:59,181 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:59] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
515
+ 2024-05-14 23:30:59,295 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:59] "GET /static/js/jquery.stickyNavbar.min.js HTTP/1.1" 304 -
516
+ 2024-05-14 23:30:59,309 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:59] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
517
+ 2024-05-14 23:30:59,317 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:59] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
518
+ 2024-05-14 23:30:59,393 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:59] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
519
+ 2024-05-14 23:30:59,403 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:30:59] "GET /static/js/site.js HTTP/1.1" 304 -
520
+ 2024-05-14 23:31:00,089 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:00] "GET /static/images/favicon.ico HTTP/1.1" 304 -
521
+ 2024-05-14 23:31:12,060 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET / HTTP/1.1" 200 -
522
+ 2024-05-14 23:31:12,238 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /styles.css HTTP/1.1" 404 -
523
+ 2024-05-14 23:31:12,310 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /static/css/style.css HTTP/1.1" 304 -
524
+ 2024-05-14 23:31:12,324 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /static/css/color.css HTTP/1.1" 304 -
525
+ 2024-05-14 23:31:12,342 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /static/images/logo.png HTTP/1.1" 304 -
526
+ 2024-05-14 23:31:12,397 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
527
+ 2024-05-14 23:31:12,408 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /static/css/animate.css HTTP/1.1" 304 -
528
+ 2024-05-14 23:31:12,469 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /static/images/uplogo.gif HTTP/1.1" 304 -
529
+ 2024-05-14 23:31:12,514 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
530
+ 2024-05-14 23:31:12,529 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /static/js/wow.min.js HTTP/1.1" 304 -
531
+ 2024-05-14 23:31:12,558 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
532
+ 2024-05-14 23:31:12,629 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
533
+ 2024-05-14 23:31:12,631 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
534
+ 2024-05-14 23:31:12,641 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
535
+ 2024-05-14 23:31:12,669 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
536
+ 2024-05-14 23:31:12,721 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /static/static/js/jquery.stickyNavbar.min.js HTTP/1.1" 404 -
537
+ 2024-05-14 23:31:12,748 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
538
+ 2024-05-14 23:31:12,795 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
539
+ 2024-05-14 23:31:12,803 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
540
+ 2024-05-14 23:31:12,810 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:12] "GET /static/js/site.js HTTP/1.1" 304 -
541
+ 2024-05-14 23:31:13,327 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:13] "GET /static/images/favicon.ico HTTP/1.1" 304 -
542
+ 2024-05-14 23:31:53,017 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:53] "POST /upload HTTP/1.1" 302 -
543
+ 2024-05-14 23:31:53,356 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:53] "GET /predict/%5B%5D HTTP/1.1" 500 -
544
+ 2024-05-14 23:31:55,576 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:55] "GET /predict/%5B%5D?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1" 200 -
545
+ 2024-05-14 23:31:55,580 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:55] "GET /predict/%5B%5D?__debugger__=yes&cmd=resource&f=debugger.js HTTP/1.1" 200 -
546
+ 2024-05-14 23:31:55,844 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:55] "GET /predict/%5B%5D?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 -
547
+ 2024-05-14 23:31:56,026 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:31:56] "GET /predict/%5B%5D?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 304 -
548
+ 2024-05-14 23:32:36,479 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:36] "GET /styles.css HTTP/1.1" 404 -
549
+ 2024-05-14 23:32:39,383 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:39] "GET /static/images/favicon.ico HTTP/1.1" 304 -
550
+ 2024-05-14 23:32:52,950 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:52] "POST /upload HTTP/1.1" 302 -
551
+ 2024-05-14 23:32:55,357 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:55] "GET /predict/%5B'images.png'%5D HTTP/1.1" 200 -
552
+ 2024-05-14 23:32:55,513 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:55] "GET /predict/css/animate.css HTTP/1.1" 404 -
553
+ 2024-05-14 23:32:55,585 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:55] "GET /static/css/style.css HTTP/1.1" 304 -
554
+ 2024-05-14 23:32:55,654 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:55] "GET /static/css/color.css HTTP/1.1" 304 -
555
+ 2024-05-14 23:32:55,711 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:55] "GET /static/images/logo.png HTTP/1.1" 304 -
556
+ 2024-05-14 23:32:55,712 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:55] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
557
+ 2024-05-14 23:32:55,772 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:55] "GET /static/temp/img_display/images.png HTTP/1.1" 200 -
558
+ 2024-05-14 23:32:55,991 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:55] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
559
+ 2024-05-14 23:32:56,106 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:56] "GET /static/js/wow.min.js HTTP/1.1" 304 -
560
+ 2024-05-14 23:32:56,129 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:56] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
561
+ 2024-05-14 23:32:56,177 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:56] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
562
+ 2024-05-14 23:32:56,178 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:56] "GET /static/images/avatar.gif HTTP/1.1" 304 -
563
+ 2024-05-14 23:32:56,218 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:56] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
564
+ 2024-05-14 23:32:56,274 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:56] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
565
+ 2024-05-14 23:32:56,327 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:56] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
566
+ 2024-05-14 23:32:56,340 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:56] "GET /static/js/jquery.stickyNavbar.min.js HTTP/1.1" 304 -
567
+ 2024-05-14 23:32:56,371 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:56] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
568
+ 2024-05-14 23:32:56,397 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:56] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
569
+ 2024-05-14 23:32:56,419 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:56] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
570
+ 2024-05-14 23:32:56,443 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:56] "GET /static/js/site.js HTTP/1.1" 304 -
571
+ 2024-05-14 23:32:57,068 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:32:57] "GET /static/images/favicon.ico HTTP/1.1" 304 -
572
+ 2024-05-14 23:33:00,355 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:00] "GET / HTTP/1.1" 200 -
573
+ 2024-05-14 23:33:00,945 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:00] "GET /static/css/style.css HTTP/1.1" 304 -
574
+ 2024-05-14 23:33:00,994 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:00] "GET /static/css/color.css HTTP/1.1" 304 -
575
+ 2024-05-14 23:33:01,048 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:01] "GET /styles.css HTTP/1.1" 404 -
576
+ 2024-05-14 23:33:01,115 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:01] "GET /static/css/animate.css HTTP/1.1" 304 -
577
+ 2024-05-14 23:33:01,165 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:01] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
578
+ 2024-05-14 23:33:01,257 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:01] "GET /static/images/logo.png HTTP/1.1" 304 -
579
+ 2024-05-14 23:33:01,290 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:01] "GET /static/images/uplogo.gif HTTP/1.1" 304 -
580
+ 2024-05-14 23:33:01,391 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:01] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
581
+ 2024-05-14 23:33:01,429 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:01] "GET /static/js/wow.min.js HTTP/1.1" 304 -
582
+ 2024-05-14 23:33:01,487 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:01] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
583
+ 2024-05-14 23:33:01,540 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:01] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
584
+ 2024-05-14 23:33:01,603 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:01] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
585
+ 2024-05-14 23:33:01,654 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:01] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
586
+ 2024-05-14 23:33:01,691 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:01] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
587
+ 2024-05-14 23:33:01,726 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:01] "GET /static/static/js/jquery.stickyNavbar.min.js HTTP/1.1" 404 -
588
+ 2024-05-14 23:33:01,763 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:01] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
589
+ 2024-05-14 23:33:01,804 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:01] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
590
+ 2024-05-14 23:33:01,840 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:01] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
591
+ 2024-05-14 23:33:01,873 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:01] "GET /static/js/site.js HTTP/1.1" 304 -
592
+ 2024-05-14 23:33:02,194 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:02] "GET /static/images/favicon.ico HTTP/1.1" 304 -
593
+ 2024-05-14 23:33:13,871 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:13] "POST /upload HTTP/1.1" 302 -
594
+ 2024-05-14 23:33:23,234 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:23] "GET /predict/%5B'images.png',%20'sample_711.jpg',%20'sample_coop.jpg'%5D HTTP/1.1" 200 -
595
+ 2024-05-14 23:33:23,428 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:23] "GET /predict/css/animate.css HTTP/1.1" 404 -
596
+ 2024-05-14 23:33:23,441 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:23] "GET /static/css/style.css HTTP/1.1" 304 -
597
+ 2024-05-14 23:33:23,452 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:23] "GET /static/css/color.css HTTP/1.1" 304 -
598
+ 2024-05-14 23:33:23,558 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:23] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
599
+ 2024-05-14 23:33:23,708 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:23] "GET /static/temp/img_display/images.png HTTP/1.1" 200 -
600
+ 2024-05-14 23:33:23,717 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:23] "GET /static/temp/img_display/sample_711.jpg HTTP/1.1" 200 -
601
+ 2024-05-14 23:33:23,933 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:23] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
602
+ 2024-05-14 23:33:23,958 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:23] "GET /static/js/wow.min.js HTTP/1.1" 304 -
603
+ 2024-05-14 23:33:23,998 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:23] "GET /static/images/logo.png HTTP/1.1" 304 -
604
+ 2024-05-14 23:33:24,057 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:24] "GET /static/images/avatar.gif HTTP/1.1" 304 -
605
+ 2024-05-14 23:33:24,116 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:24] "GET /static/temp/img_display/sample_coop.jpg HTTP/1.1" 200 -
606
+ 2024-05-14 23:33:24,139 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:24] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
607
+ 2024-05-14 23:33:24,213 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:24] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
608
+ 2024-05-14 23:33:24,244 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:24] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
609
+ 2024-05-14 23:33:24,362 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:24] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
610
+ 2024-05-14 23:33:24,422 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:24] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
611
+ 2024-05-14 23:33:24,459 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:24] "GET /static/js/jquery.stickyNavbar.min.js HTTP/1.1" 304 -
612
+ 2024-05-14 23:33:24,521 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:24] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
613
+ 2024-05-14 23:33:24,537 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:24] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
614
+ 2024-05-14 23:33:24,557 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:24] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
615
+ 2024-05-14 23:33:24,580 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:24] "GET /static/js/site.js HTTP/1.1" 304 -
616
+ 2024-05-14 23:33:25,667 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:33:25] "GET /static/images/favicon.ico HTTP/1.1" 304 -
617
+ 2024-05-14 23:34:47,610 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:34:47] "GET /run_inference HTTP/1.1" 302 -
618
+ 2024-05-14 23:34:47,749 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:34:47] "GET /create_csv HTTP/1.1" 204 -
619
+ 2024-05-14 23:34:48,414 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:34:48] "GET /get_data HTTP/1.1" 200 -
620
+ 2024-05-14 23:34:48,429 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:34:48] "GET /static/temp/img_display/images.png_inference.jpg HTTP/1.1" 404 -
621
+ 2024-05-14 23:34:48,432 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:34:48] "GET /static/temp/img_display/sample_711.jpg_inference.jpg HTTP/1.1" 200 -
622
+ 2024-05-14 23:34:48,437 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:34:48] "GET /static/temp/img_display/sample_coop.jpg_inference.jpg HTTP/1.1" 200 -
623
+ 2024-05-14 23:35:56,707 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:35:56] "GET /static/temp/img_display/images.png_inference.jpg HTTP/1.1" 404 -
624
+ 2024-05-14 23:35:57,943 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:35:57] "GET /static/temp/img_display/images.png_inference.jpg HTTP/1.1" 404 -
625
+ 2024-05-14 23:36:03,801 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:03] "GET /static/temp/img_display/images.png_inference.jpg HTTP/1.1" 404 -
626
+ 2024-05-14 23:36:05,354 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:05] "GET / HTTP/1.1" 200 -
627
+ 2024-05-14 23:36:05,498 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:05] "GET /static/css/style.css HTTP/1.1" 304 -
628
+ 2024-05-14 23:36:05,644 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:05] "GET /styles.css HTTP/1.1" 404 -
629
+ 2024-05-14 23:36:05,712 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:05] "GET /static/css/color.css HTTP/1.1" 304 -
630
+ 2024-05-14 23:36:05,761 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:05] "GET /static/css/font-awesome.min.css HTTP/1.1" 304 -
631
+ 2024-05-14 23:36:05,797 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:05] "GET /static/css/animate.css HTTP/1.1" 304 -
632
+ 2024-05-14 23:36:05,907 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:05] "GET /static/images/logo.png HTTP/1.1" 304 -
633
+ 2024-05-14 23:36:05,952 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:05] "GET /static/images/uplogo.gif HTTP/1.1" 304 -
634
+ 2024-05-14 23:36:05,975 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:05] "GET /static/js/jquery.1.8.3.min.js HTTP/1.1" 304 -
635
+ 2024-05-14 23:36:06,002 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:06] "GET /static/js/wow.min.js HTTP/1.1" 304 -
636
+ 2024-05-14 23:36:06,138 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:06] "GET /static/js/featherlight.min.js HTTP/1.1" 304 -
637
+ 2024-05-14 23:36:06,196 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:06] "GET /static/js/featherlight.gallery.min.js HTTP/1.1" 304 -
638
+ 2024-05-14 23:36:06,242 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:06] "GET /static/js/jquery.easing.min.js HTTP/1.1" 304 -
639
+ 2024-05-14 23:36:06,249 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:06] "GET /static/static/js/jquery.stickyNavbar.min.js HTTP/1.1" 404 -
640
+ 2024-05-14 23:36:06,285 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:06] "GET /static/js/jquery.enllax.min.js HTTP/1.1" 304 -
641
+ 2024-05-14 23:36:06,302 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:06] "GET /static/js/jquery.scrollUp.min.js HTTP/1.1" 304 -
642
+ 2024-05-14 23:36:06,356 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:06] "GET /static/js/images-loaded.min.js HTTP/1.1" 304 -
643
+ 2024-05-14 23:36:06,358 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:06] "GET /static/js/jquery.waypoints.min.js HTTP/1.1" 304 -
644
+ 2024-05-14 23:36:06,430 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:06] "GET /static/js/lightbox.min.js HTTP/1.1" 304 -
645
+ 2024-05-14 23:36:06,565 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:06] "GET /static/js/site.js HTTP/1.1" 304 -
646
+ 2024-05-14 23:36:08,126 INFO werkzeug 127.0.0.1 - - [14/May/2024 23:36:08] "GET /static/images/favicon.ico HTTP/1.1" 304 -
647
+ 2024-05-14 23:36:39,815 INFO werkzeug * Detected change in 'C:\\Users\\Ayoo\\Desktop\\bewwebapp\\app.py', reloading
sample_711.jpg ADDED
templates/extractor.html CHANGED
@@ -24,19 +24,20 @@
24
  <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700,800' rel='stylesheet' type='text/css'>
25
  <link rel="preconnect" href="https://fonts.googleapis.com">
26
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
27
- <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600&display=swap" rel="stylesheet">
 
28
  <title>ExCeipt | Extractor</title>
29
  <style>
30
  body {
31
  background-color: #ddd;
32
  }
33
-
34
  .containerz {
35
  display: flex;
36
  width: 100vw;
37
  height: 100vh;
38
  }
39
-
40
  .left-column {
41
  padding-top: 100px;
42
  flex: 2;
@@ -48,28 +49,39 @@
48
  box-shadow: inset 0 15px 30px rgba(0, 0, 0, 0.1);
49
  overflow-y: auto;
50
  }
 
51
  #canvas-container {
52
  display: flex;
53
- flex-wrap: wrap; /* Wrap items to next line when they exceed the container width */
54
- justify-content: center; /* Center items horizontally */
55
- gap: 10px; /* Add some space between images */
56
- max-width: 100%; /* Ensure images don't exceed the container width */
 
 
 
 
57
  margin-top: 70px;
58
  }
59
-
60
  .image-container {
61
- width: 200px; /* Set your desired width */
62
- height: 300px; /* Set your desired height */
63
- background-color: white; /* White background */
64
- padding: 30px 30px 40px 30px; /* Add padding */
 
 
 
 
65
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
66
- border-radius:10px;
67
  }
68
- .image-container:hover{
 
69
  transition: all 0.3s;
70
  transform: translateY(1.5px);
71
  box-shadow: 0 6px 8px rgba(0, 0, 0, 0.4);
72
  }
 
73
  .image-container img {
74
  width: 100%;
75
  height: 100%;
@@ -77,16 +89,17 @@
77
  box-shadow: 0 6px 8px rgba(0, 0, 0, 0.1);
78
  transition: all 0.3s;
79
  }
 
80
  p.images-name {
81
  text-overflow: ellipsis;
82
  white-space: nowrap;
83
  overflow: hidden;
84
  font-size: 10px;
85
- margin: 5px 0 0 0 ;
86
  text-align: center;
87
  padding: 0;
88
  }
89
-
90
  .right-column {
91
  flex: 2;
92
  background-color: #ffffff;
@@ -94,7 +107,7 @@
94
  overflow-y: auto;
95
  max-height: 100vh;
96
  }
97
-
98
  .backbutton {
99
  box-sizing: border-box;
100
  border-radius: 10px;
@@ -112,7 +125,7 @@
112
  position: fixed;
113
  z-index: 999;
114
  }
115
-
116
  .backbutton span {
117
  text-decoration: none;
118
  color: black;
@@ -120,78 +133,78 @@
120
  font-size: 14px;
121
  font-weight: 300;
122
  }
123
-
124
  .backbutton:hover {
125
  background: linear-gradient(45deg, #FF6347, #FFA07A);
126
  transition: all .3s ease-in-out;
127
  }
128
-
129
  .backbutton:hover span {
130
  color: white;
131
  transition: all .3s ease-in-out;
132
  }
133
-
134
  .backbutton:hover i {
135
  color: white;
136
  transition: all .3s ease-in-out;
137
  }
138
-
139
  .left-column h1 {
140
  padding-top: 45px;
141
  }
142
-
143
  #canvas-container {
144
  position: relative;
145
  width: 100%;
146
  height: 100%;
147
  }
148
-
149
  #canvas {
150
  cursor: grab;
151
  user-select: none;
152
  }
153
-
154
  #upload-input {
155
  margin-top: 10px;
156
  object-position: center;
157
  }
158
-
159
  .bordered-table {
160
  justify-content: center;
161
  display: flex;
162
  padding: 0px 30px;
163
  }
164
-
165
  .bordered-table tbody td.full-width {
166
  display: flex;
167
  flex-wrap: wrap;
168
  align-items: center;
169
  }
170
-
171
  .bordered-table tbody td.full-width .label {
172
  width: 100px;
173
  text-align: right;
174
  margin-right: 5px;
175
  }
176
-
177
  .bordered-table tbody td .full-width input {
178
  flex-grow: 1;
179
  }
180
-
181
  .bordered-table tbody td.full-width {
182
  display: grid;
183
  grid-template-columns: 100px 1fr;
184
  }
185
-
186
  .bordered-table tbody td.full-width .label {
187
  justify-self: end;
188
  }
189
-
190
  #logox {
191
  display: flex;
192
  justify-content: center;
193
  }
194
-
195
  #logox img {
196
  position: relative;
197
  object-position: center;
@@ -199,60 +212,63 @@
199
  height: 25%;
200
  padding: 10px 10px 10px 10px;
201
  }
202
-
203
  .receipt {
204
  margin: 20px 20px;
205
  }
206
-
207
  .receipt1 {
208
  margin: 20px 20px;
209
  font: 14px;
210
  }
211
-
212
  .receipt1 table {
213
  border-radius: 10px;
214
  }
215
-
216
  .receipt h1 {
217
  text-align: center;
218
  }
219
-
220
  .receipt .details {
221
  margin: 0px 0px 0px 15px;
222
  }
223
-
224
  .receipt table {
225
  width: 100%;
226
  border-collapse: collapse;
227
  margin-bottom: 20px;
228
  }
 
229
  .receipt table {
230
  border-radius: 10px;
231
  }
 
232
  .receipt table th,
233
  .receipt table td {
234
  border: 1px solid #ccc;
235
  padding: 5px;
236
  }
237
-
238
  .receipt table th {
239
  background-color: #f0f0f0;
240
  text-align: left;
241
- font-size:16px;
242
- font-weight:500;
243
- text-align:center;
244
  }
245
-
246
  .receipt table td {
247
- text-align:center;
248
  font-size: 14px;
249
- max-width: 150px; /* Set the maximum width */
 
250
  overflow: hidden;
251
  text-overflow: ellipsis;
252
  white-space: nowrap;
253
- padding: 0 20px ;
254
  }
255
-
256
  #dataTable {
257
  border-radius: 10px;
258
  border-collapse: collapse;
@@ -262,22 +278,22 @@
262
  table-layout: fixed;
263
  overflow-x: auto;
264
  }
265
-
266
  #receiptdiv {
267
  display: none;
268
  }
269
-
270
  #dataTable th,
271
  #dataTable td {
272
  font-size: 12px;
273
  text-align: center;
274
  padding: 3px;
275
  }
276
-
277
  #downloadbutton {
278
  display: none;
279
  }
280
-
281
  #loadingSpinner {
282
  position: relative;
283
  top: 20%;
@@ -292,26 +308,27 @@
292
  display: none;
293
  /* Hide initially */
294
  }
295
-
296
  @keyframes spin {
297
  0% {
298
  transform: rotate(0deg);
299
  }
 
300
  100% {
301
  transform: rotate(360deg);
302
  }
303
  }
304
-
305
  #uploadbutton:disabled {
306
  cursor: not-allowed;
307
  background-color: #dddddd;
308
  }
309
-
310
  .labels {
311
  margin: 0 0 0 20px;
312
  font-weight: 500;
313
  }
314
-
315
  .labels p {
316
  font-size: 14px;
317
  padding-top: 8px;
@@ -320,25 +337,25 @@
320
  padding: 8px 0 0 0;
321
  text-align: left;
322
  }
323
-
324
  #filenm {
325
  position: relative;
326
  z-index: 999;
327
  }
328
-
329
  .valid {
330
  padding-left: 8px;
331
  font-weight: 300;
332
  font-size: 14px;
333
  }
334
-
335
  .details1 {
336
  border-radius: 10px;
337
  z-index: -1;
338
  }
339
- .details{
340
 
341
- }
 
342
  .exportbutton {
343
  margin-right: 17px;
344
  box-sizing: border-box;
@@ -355,14 +372,14 @@
355
  color: white;
356
  cursor: pointer;
357
  }
358
-
359
  .exportbutton:hover {
360
  border: 2px solid #FF8B4A;
361
  background: #f5f5f5;
362
  color: #000;
363
  transition: all .3s ease-in-out;
364
  }
365
-
366
  @media (max-width: 1024px) {
367
  .filenm {
368
  border-radius: 10px;
@@ -371,40 +388,49 @@
371
  padding: 9px 11px;
372
  margin: 0;
373
  }
 
374
  .filenm span {
375
  text-overflow: ellipsis;
376
  white-space: nowrap;
377
  overflow: hidden;
378
  }
 
379
  .backbutton span {
380
  font-size: 9px;
381
  }
 
382
  .backbutton {
383
  padding: 12px 14px;
384
  border-radius: 10px;
385
  }
 
386
  .receipt {
387
  margin: 15px 15px;
388
  }
 
389
  p {
390
  padding: 10px;
391
  font-size: 13px;
392
  }
 
393
  p.desc {
394
  font-size: 8px;
395
  text-align: left;
396
  }
 
397
  .labels {
398
  text-align: left;
399
  }
 
400
  .labels p {
401
  padding: 8px 0 8px 0;
402
  }
 
403
  .avatargif img {
404
  margin-top: 1.5em;
405
  }
406
  }
407
-
408
  @media (max-width: 768px) {
409
  #logox img {
410
  position: relative;
@@ -413,6 +439,7 @@
413
  height: 30%;
414
  padding: 10px 10px 10px 10px;
415
  }
 
416
  .filenm {
417
  border-radius: 6px;
418
  gap: 0.3em;
@@ -420,48 +447,59 @@
420
  padding: 10px 12px;
421
  margin: 0;
422
  }
 
423
  .filenm span {
424
  text-overflow: ellipsis;
425
  white-space: nowrap;
426
  overflow: hidden;
427
  }
 
428
  .backbutton span {
429
  font-size: 10px;
430
  }
 
431
  .backbutton {
432
  padding: 12px 14px;
433
  border-radius: 6px;
434
  }
 
435
  .labels {
436
  padding: 0 0 5px 0;
437
  margin: 0;
438
  }
 
439
  p {
440
  padding: 8px;
441
  font-size: 12px;
442
  }
 
443
  .uploadbutton {
444
  padding: 8px 24px;
445
  font-size: 14px;
446
  font-weight: 300;
447
  }
 
448
  p.desc {
449
  font-size: 6px;
450
  line-height: 12px;
451
  }
 
452
  .valid {
453
  padding-left: 5px;
454
  font-size: 12px;
455
  }
 
456
  .labels p {
457
  padding: 8px 0 8px 0;
458
  }
 
459
  #dataTable th,
460
  #dataTable td {
461
  font-size: 6px;
462
  text-align: left;
463
  padding: 1px;
464
  }
 
465
  .exportbutton {
466
  margin-left: 17px;
467
  border-radius: 5px;
@@ -469,29 +507,35 @@
469
  font-weight: 300;
470
  font-size: 12px;
471
  }
 
472
  .avatargif img {
473
  margin-top: 1.25em;
474
  }
475
  }
476
-
477
  @media screen and (max-width: 576px) {
 
478
  /* Styles for screens up to 576px wide */
479
  .containerz {
480
  flex-direction: column;
481
  }
 
482
  .left-column,
483
  .right-column {
484
  flex: 1;
485
  width: 100%;
486
  }
 
487
  .left-column {
488
  box-shadow: inset 0 15px 30px rgba(0, 0, 0, 0.1);
489
  padding: 10px;
490
  }
 
491
  .right-column {
492
  border-radius: 20px;
493
  flex: 1.2;
494
  }
 
495
  .filenm {
496
  border-radius: 7px;
497
  gap: 0.3em;
@@ -502,40 +546,49 @@
502
  padding: 8px 10px;
503
  margin: 0;
504
  }
 
505
  .backbutton span {
506
  font-size: 12px;
507
  }
 
508
  .backbutton {
509
  padding: 8px 10px;
510
  border-radius: 7px;
511
  }
 
512
  .labels {
513
  padding: 0 0 5px 0;
514
  margin: 0;
515
  }
 
516
  .uploadbutton {
517
  padding: 6px 22px;
518
  font-size: 12px;
519
  font-weight: 300;
520
  }
 
521
  p.desc {
522
  font-size: 4px;
523
  text-align: left;
524
  line-height: 10px;
525
  }
 
526
  .valid {
527
  padding-left: 5px;
528
  font-size: 10px;
529
  }
 
530
  .labels p {
531
  padding: 8px 0 8px 0;
532
  }
 
533
  #dataTable th,
534
  #dataTable td {
535
  font-size: 6px;
536
  text-align: left;
537
  padding: 1px;
538
  }
 
539
  .exportbutton {
540
  margin-left: 17px;
541
  border-radius: 5px;
@@ -543,11 +596,12 @@
543
  font-weight: 300;
544
  font-size: 10px;
545
  }
 
546
  .avatargif img {
547
  margin-top: 1em;
548
  }
549
  }
550
-
551
  p.desc {
552
  font-size: 10px;
553
  font-family: 'Poppins';
@@ -557,26 +611,27 @@
557
  line-height: 12px;
558
  font-style: italic;
559
  }
560
-
561
  .fa-spinner {
562
  font-size: 16px;
563
  }
564
-
565
  .avatargif {
566
  display: flex;
567
  justify-content: center;
568
  align-items: center;
569
  }
570
-
571
  .avatargif img {
572
  margin-top: 3.5em;
573
  width: 40%;
574
  height: 40%;
575
  }
 
576
  .red-border {
577
  border: 2px solid red;
578
  }
579
-
580
  .green-border {
581
  border: 2px solid green;
582
  }
@@ -607,7 +662,7 @@
607
  opacity: 0;
608
  transition: opacity 0.3s;
609
  }
610
-
611
  .tooltiptext::after {
612
  content: "";
613
  position: absolute;
@@ -618,6 +673,7 @@
618
  border-style: solid;
619
  border-color: #333 transparent transparent transparent;
620
  }
 
621
  .zoomed-image-container {
622
  position: fixed;
623
  top: 0;
@@ -630,12 +686,13 @@
630
  align-items: center;
631
  z-index: 999;
632
  }
633
-
634
  .zoomed-image-container img {
635
  max-width: 90%;
636
  max-height: 90%;
637
  object-fit: contain;
638
  }
 
639
  @media (max-width: 576px) {
640
  .zoomed-image-container {
641
  position: fixed;
@@ -648,10 +705,10 @@
648
  justify-content: center;
649
  align-items: center;
650
  z-index: 999;
 
 
651
  }
652
  }
653
- /* Optional: If you want to hide the scrollbar in Firefox */
654
- scrollbar-width: none;
655
  </style>
656
  <script src="https://cdn.lordicon.com/lordicon.js"></script>
657
  </head>
@@ -662,23 +719,26 @@
662
  </div>
663
  <div class="containerz">
664
  <div class="left-column">
665
- <button class="backbutton" id="submitButton" onclick="window.location.href='{{ url_for('index') }}'">
666
  <i class="fa-solid fa-arrow-left"></i>
667
  <span>Back</span>
668
  </button>
669
  <div id="canvas-container">
670
  {% if image_paths %}
671
- {% for image_path, prediction_results_copy in predictions.items() %}
672
- <div class="image-container {% if prediction_results_copy == 'non-receipt' %}red-border{% elif prediction_results_copy == 'receipt' %}green-border{% endif %}">
673
- <div class="tooltiptext">Click to view fullscreen</div>
674
- <img src="{{ url_for('static', filename='temp/img_display/' + image_path) }}" id="my-image" alt="uploads" />
675
- <div class="image-name">
676
- <p class="images-name">{{image_path}}</p>
677
- </div>
678
- </div>
679
- {% endfor %}
 
 
 
680
  {% else %}
681
- <p>No files uploaded.</p>
682
  {% endif %}
683
  </div>
684
  </div>
@@ -692,44 +752,50 @@
692
  <hr style="color: #ccc; width:95%; opacity:0.35;">
693
  <div class="labels" style="margin: 0 0 0 20px;">
694
  <p>Receipt Verification</p>
695
- <p class="desc">Verify receipt details attentively, acknowledging occasional misclassification, which may arise from variations in image quality or format.</p>
 
696
  </div>
697
  <div class="receipt">
698
- <table>
699
- <thead>
700
- <tr>
701
- <th>File Name</th>
702
- <th>Prediction Result</th>
703
- </tr>
704
- </thead>
705
- <tbody>
706
- {% for image_path, prediction_results_copy in predictions.items() %}
707
- <tr>
708
- <td>{{ image_path }}</td>
709
- <td>
710
- <div class="details">
711
- <div style="display: flex; align-items: center; justify-content: center;">
712
- {% if prediction_results_copy.lower() == 'receipt' %}
713
- <lord-icon src="https://cdn.lordicon.com/lomfljuq.json" trigger="in" delay="1500" colors="primary:#16c72e" state="morph-check-in-1" style="width:25px;height:25px">
714
- </lord-icon>
715
- <p class="valid">Valid Receipt</p>
716
- {% else %}
717
- <lord-icon src="https://cdn.lordicon.com/zxvuvcnc.json" trigger="in" delay="1500" state="morph-cross-in" colors="primary:#e83a30" style="width:25px;height:25px">
718
- </lord-icon>
719
- <p class="valid">Not a Receipt</p>
720
- {% endif %}
 
 
 
 
 
721
  </div>
722
- </div>
723
- </td>
724
- </tr>
725
- {% endfor %}
726
- </tbody>
727
- </table>
728
  </div>
729
  <hr style="color: #ccc; width:95%; opacity:0.35;">
730
  <div class="labels" style="margin: 0 0 0 20px;">
731
  <p>Text Extraction</p>
732
- <p class="desc">Ensure optimal text extraction accuracy from receipts by making sure that the receipt image is clear, well-lit, and after extraction review the extracted text and edit.</p>
 
733
  </div>
734
  <div style="text-align: center; margin-top: 25px;">
735
  <button id="uploadbutton" class="uploadbutton" type="submit">
@@ -766,7 +832,7 @@
766
  <a href="{{ url_for('download_csv') }}">
767
  <button class="exportbutton" type="submit"><i class="fa-solid fa-download"></i>Download CSV</button>
768
  </a>
769
- <button class="exportbutton" onclick="window.location.href='{{ url_for('index') }}'">
770
  <span id="uploadIcon"><i class="fas fa-upload"></i></span>
771
  <span>Upload again</span>
772
  </button>
@@ -777,14 +843,14 @@
777
  </div>
778
  <a href="https://lordicon.com/" hidden>Icons by Lordicon.com</a>
779
  <script>
780
- document.addEventListener('DOMContentLoaded', function() {
781
  const dataTable = document.getElementById('receiptdiv');
782
  const loadingSpinner = document.getElementById('loadingIcon');
783
  const extractingText = document.getElementById('extractingText');
784
  const runInferenceButton = document.getElementById('uploadbutton');
785
  const exportCSVButton = document.getElementById('downloadbutton');
786
 
787
- document.getElementById('uploadbutton').addEventListener('click', function() {
788
  loadingSpinner.style.display = 'inline-block'; // Show loading spinner
789
  extractingText.textContent = 'Extracting...'; // Change text to "Extracting..."
790
  runInferenceButton.disabled = true;
@@ -802,24 +868,42 @@
802
  // Show the table when data is updated
803
  dataTable.style.display = 'table';
804
  }
 
 
805
 
806
  async function runInference() {
807
  await fetch('/run_inference');
808
 
809
- setTimeout(function() {
810
  loadingSpinner.style.display = 'none';
811
  runInferenceButton.style.display = 'none';
812
  exportCSVButton.style.display = 'flex';
 
 
 
 
 
 
 
 
 
813
 
 
 
 
 
 
 
814
  getData();
815
  }, 500);
816
  }
817
 
 
818
  function updateTable(data) {
819
  Papa.parse(data, {
820
  header: true,
821
  skipEmptyLines: true,
822
- complete: function(results) {
823
  const tbody = document.querySelector('#dataTable tbody');
824
  tbody.innerHTML = ''; // Clear existing rows
825
 
 
24
  <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700,800' rel='stylesheet' type='text/css'>
25
  <link rel="preconnect" href="https://fonts.googleapis.com">
26
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
27
+ <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600&display=swap"
28
+ rel="stylesheet">
29
  <title>ExCeipt | Extractor</title>
30
  <style>
31
  body {
32
  background-color: #ddd;
33
  }
34
+
35
  .containerz {
36
  display: flex;
37
  width: 100vw;
38
  height: 100vh;
39
  }
40
+
41
  .left-column {
42
  padding-top: 100px;
43
  flex: 2;
 
49
  box-shadow: inset 0 15px 30px rgba(0, 0, 0, 0.1);
50
  overflow-y: auto;
51
  }
52
+
53
  #canvas-container {
54
  display: flex;
55
+ flex-wrap: wrap;
56
+ /* Wrap items to next line when they exceed the container width */
57
+ justify-content: center;
58
+ /* Center items horizontally */
59
+ gap: 10px;
60
+ /* Add some space between images */
61
+ max-width: 100%;
62
+ /* Ensure images don't exceed the container width */
63
  margin-top: 70px;
64
  }
65
+
66
  .image-container {
67
+ width: 200px;
68
+ /* Set your desired width */
69
+ height: 300px;
70
+ /* Set your desired height */
71
+ background-color: white;
72
+ /* White background */
73
+ padding: 30px 30px 40px 30px;
74
+ /* Add padding */
75
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
76
+ border-radius: 10px;
77
  }
78
+
79
+ .image-container:hover {
80
  transition: all 0.3s;
81
  transform: translateY(1.5px);
82
  box-shadow: 0 6px 8px rgba(0, 0, 0, 0.4);
83
  }
84
+
85
  .image-container img {
86
  width: 100%;
87
  height: 100%;
 
89
  box-shadow: 0 6px 8px rgba(0, 0, 0, 0.1);
90
  transition: all 0.3s;
91
  }
92
+
93
  p.images-name {
94
  text-overflow: ellipsis;
95
  white-space: nowrap;
96
  overflow: hidden;
97
  font-size: 10px;
98
+ margin: 5px 0 0 0;
99
  text-align: center;
100
  padding: 0;
101
  }
102
+
103
  .right-column {
104
  flex: 2;
105
  background-color: #ffffff;
 
107
  overflow-y: auto;
108
  max-height: 100vh;
109
  }
110
+
111
  .backbutton {
112
  box-sizing: border-box;
113
  border-radius: 10px;
 
125
  position: fixed;
126
  z-index: 999;
127
  }
128
+
129
  .backbutton span {
130
  text-decoration: none;
131
  color: black;
 
133
  font-size: 14px;
134
  font-weight: 300;
135
  }
136
+
137
  .backbutton:hover {
138
  background: linear-gradient(45deg, #FF6347, #FFA07A);
139
  transition: all .3s ease-in-out;
140
  }
141
+
142
  .backbutton:hover span {
143
  color: white;
144
  transition: all .3s ease-in-out;
145
  }
146
+
147
  .backbutton:hover i {
148
  color: white;
149
  transition: all .3s ease-in-out;
150
  }
151
+
152
  .left-column h1 {
153
  padding-top: 45px;
154
  }
155
+
156
  #canvas-container {
157
  position: relative;
158
  width: 100%;
159
  height: 100%;
160
  }
161
+
162
  #canvas {
163
  cursor: grab;
164
  user-select: none;
165
  }
166
+
167
  #upload-input {
168
  margin-top: 10px;
169
  object-position: center;
170
  }
171
+
172
  .bordered-table {
173
  justify-content: center;
174
  display: flex;
175
  padding: 0px 30px;
176
  }
177
+
178
  .bordered-table tbody td.full-width {
179
  display: flex;
180
  flex-wrap: wrap;
181
  align-items: center;
182
  }
183
+
184
  .bordered-table tbody td.full-width .label {
185
  width: 100px;
186
  text-align: right;
187
  margin-right: 5px;
188
  }
189
+
190
  .bordered-table tbody td .full-width input {
191
  flex-grow: 1;
192
  }
193
+
194
  .bordered-table tbody td.full-width {
195
  display: grid;
196
  grid-template-columns: 100px 1fr;
197
  }
198
+
199
  .bordered-table tbody td.full-width .label {
200
  justify-self: end;
201
  }
202
+
203
  #logox {
204
  display: flex;
205
  justify-content: center;
206
  }
207
+
208
  #logox img {
209
  position: relative;
210
  object-position: center;
 
212
  height: 25%;
213
  padding: 10px 10px 10px 10px;
214
  }
215
+
216
  .receipt {
217
  margin: 20px 20px;
218
  }
219
+
220
  .receipt1 {
221
  margin: 20px 20px;
222
  font: 14px;
223
  }
224
+
225
  .receipt1 table {
226
  border-radius: 10px;
227
  }
228
+
229
  .receipt h1 {
230
  text-align: center;
231
  }
232
+
233
  .receipt .details {
234
  margin: 0px 0px 0px 15px;
235
  }
236
+
237
  .receipt table {
238
  width: 100%;
239
  border-collapse: collapse;
240
  margin-bottom: 20px;
241
  }
242
+
243
  .receipt table {
244
  border-radius: 10px;
245
  }
246
+
247
  .receipt table th,
248
  .receipt table td {
249
  border: 1px solid #ccc;
250
  padding: 5px;
251
  }
252
+
253
  .receipt table th {
254
  background-color: #f0f0f0;
255
  text-align: left;
256
+ font-size: 16px;
257
+ font-weight: 500;
258
+ text-align: center;
259
  }
260
+
261
  .receipt table td {
262
+ text-align: center;
263
  font-size: 14px;
264
+ max-width: 150px;
265
+ /* Set the maximum width */
266
  overflow: hidden;
267
  text-overflow: ellipsis;
268
  white-space: nowrap;
269
+ padding: 0 20px;
270
  }
271
+
272
  #dataTable {
273
  border-radius: 10px;
274
  border-collapse: collapse;
 
278
  table-layout: fixed;
279
  overflow-x: auto;
280
  }
281
+
282
  #receiptdiv {
283
  display: none;
284
  }
285
+
286
  #dataTable th,
287
  #dataTable td {
288
  font-size: 12px;
289
  text-align: center;
290
  padding: 3px;
291
  }
292
+
293
  #downloadbutton {
294
  display: none;
295
  }
296
+
297
  #loadingSpinner {
298
  position: relative;
299
  top: 20%;
 
308
  display: none;
309
  /* Hide initially */
310
  }
311
+
312
  @keyframes spin {
313
  0% {
314
  transform: rotate(0deg);
315
  }
316
+
317
  100% {
318
  transform: rotate(360deg);
319
  }
320
  }
321
+
322
  #uploadbutton:disabled {
323
  cursor: not-allowed;
324
  background-color: #dddddd;
325
  }
326
+
327
  .labels {
328
  margin: 0 0 0 20px;
329
  font-weight: 500;
330
  }
331
+
332
  .labels p {
333
  font-size: 14px;
334
  padding-top: 8px;
 
337
  padding: 8px 0 0 0;
338
  text-align: left;
339
  }
340
+
341
  #filenm {
342
  position: relative;
343
  z-index: 999;
344
  }
345
+
346
  .valid {
347
  padding-left: 8px;
348
  font-weight: 300;
349
  font-size: 14px;
350
  }
351
+
352
  .details1 {
353
  border-radius: 10px;
354
  z-index: -1;
355
  }
 
356
 
357
+ .details {}
358
+
359
  .exportbutton {
360
  margin-right: 17px;
361
  box-sizing: border-box;
 
372
  color: white;
373
  cursor: pointer;
374
  }
375
+
376
  .exportbutton:hover {
377
  border: 2px solid #FF8B4A;
378
  background: #f5f5f5;
379
  color: #000;
380
  transition: all .3s ease-in-out;
381
  }
382
+
383
  @media (max-width: 1024px) {
384
  .filenm {
385
  border-radius: 10px;
 
388
  padding: 9px 11px;
389
  margin: 0;
390
  }
391
+
392
  .filenm span {
393
  text-overflow: ellipsis;
394
  white-space: nowrap;
395
  overflow: hidden;
396
  }
397
+
398
  .backbutton span {
399
  font-size: 9px;
400
  }
401
+
402
  .backbutton {
403
  padding: 12px 14px;
404
  border-radius: 10px;
405
  }
406
+
407
  .receipt {
408
  margin: 15px 15px;
409
  }
410
+
411
  p {
412
  padding: 10px;
413
  font-size: 13px;
414
  }
415
+
416
  p.desc {
417
  font-size: 8px;
418
  text-align: left;
419
  }
420
+
421
  .labels {
422
  text-align: left;
423
  }
424
+
425
  .labels p {
426
  padding: 8px 0 8px 0;
427
  }
428
+
429
  .avatargif img {
430
  margin-top: 1.5em;
431
  }
432
  }
433
+
434
  @media (max-width: 768px) {
435
  #logox img {
436
  position: relative;
 
439
  height: 30%;
440
  padding: 10px 10px 10px 10px;
441
  }
442
+
443
  .filenm {
444
  border-radius: 6px;
445
  gap: 0.3em;
 
447
  padding: 10px 12px;
448
  margin: 0;
449
  }
450
+
451
  .filenm span {
452
  text-overflow: ellipsis;
453
  white-space: nowrap;
454
  overflow: hidden;
455
  }
456
+
457
  .backbutton span {
458
  font-size: 10px;
459
  }
460
+
461
  .backbutton {
462
  padding: 12px 14px;
463
  border-radius: 6px;
464
  }
465
+
466
  .labels {
467
  padding: 0 0 5px 0;
468
  margin: 0;
469
  }
470
+
471
  p {
472
  padding: 8px;
473
  font-size: 12px;
474
  }
475
+
476
  .uploadbutton {
477
  padding: 8px 24px;
478
  font-size: 14px;
479
  font-weight: 300;
480
  }
481
+
482
  p.desc {
483
  font-size: 6px;
484
  line-height: 12px;
485
  }
486
+
487
  .valid {
488
  padding-left: 5px;
489
  font-size: 12px;
490
  }
491
+
492
  .labels p {
493
  padding: 8px 0 8px 0;
494
  }
495
+
496
  #dataTable th,
497
  #dataTable td {
498
  font-size: 6px;
499
  text-align: left;
500
  padding: 1px;
501
  }
502
+
503
  .exportbutton {
504
  margin-left: 17px;
505
  border-radius: 5px;
 
507
  font-weight: 300;
508
  font-size: 12px;
509
  }
510
+
511
  .avatargif img {
512
  margin-top: 1.25em;
513
  }
514
  }
515
+
516
  @media screen and (max-width: 576px) {
517
+
518
  /* Styles for screens up to 576px wide */
519
  .containerz {
520
  flex-direction: column;
521
  }
522
+
523
  .left-column,
524
  .right-column {
525
  flex: 1;
526
  width: 100%;
527
  }
528
+
529
  .left-column {
530
  box-shadow: inset 0 15px 30px rgba(0, 0, 0, 0.1);
531
  padding: 10px;
532
  }
533
+
534
  .right-column {
535
  border-radius: 20px;
536
  flex: 1.2;
537
  }
538
+
539
  .filenm {
540
  border-radius: 7px;
541
  gap: 0.3em;
 
546
  padding: 8px 10px;
547
  margin: 0;
548
  }
549
+
550
  .backbutton span {
551
  font-size: 12px;
552
  }
553
+
554
  .backbutton {
555
  padding: 8px 10px;
556
  border-radius: 7px;
557
  }
558
+
559
  .labels {
560
  padding: 0 0 5px 0;
561
  margin: 0;
562
  }
563
+
564
  .uploadbutton {
565
  padding: 6px 22px;
566
  font-size: 12px;
567
  font-weight: 300;
568
  }
569
+
570
  p.desc {
571
  font-size: 4px;
572
  text-align: left;
573
  line-height: 10px;
574
  }
575
+
576
  .valid {
577
  padding-left: 5px;
578
  font-size: 10px;
579
  }
580
+
581
  .labels p {
582
  padding: 8px 0 8px 0;
583
  }
584
+
585
  #dataTable th,
586
  #dataTable td {
587
  font-size: 6px;
588
  text-align: left;
589
  padding: 1px;
590
  }
591
+
592
  .exportbutton {
593
  margin-left: 17px;
594
  border-radius: 5px;
 
596
  font-weight: 300;
597
  font-size: 10px;
598
  }
599
+
600
  .avatargif img {
601
  margin-top: 1em;
602
  }
603
  }
604
+
605
  p.desc {
606
  font-size: 10px;
607
  font-family: 'Poppins';
 
611
  line-height: 12px;
612
  font-style: italic;
613
  }
614
+
615
  .fa-spinner {
616
  font-size: 16px;
617
  }
618
+
619
  .avatargif {
620
  display: flex;
621
  justify-content: center;
622
  align-items: center;
623
  }
624
+
625
  .avatargif img {
626
  margin-top: 3.5em;
627
  width: 40%;
628
  height: 40%;
629
  }
630
+
631
  .red-border {
632
  border: 2px solid red;
633
  }
634
+
635
  .green-border {
636
  border: 2px solid green;
637
  }
 
662
  opacity: 0;
663
  transition: opacity 0.3s;
664
  }
665
+
666
  .tooltiptext::after {
667
  content: "";
668
  position: absolute;
 
673
  border-style: solid;
674
  border-color: #333 transparent transparent transparent;
675
  }
676
+
677
  .zoomed-image-container {
678
  position: fixed;
679
  top: 0;
 
686
  align-items: center;
687
  z-index: 999;
688
  }
689
+
690
  .zoomed-image-container img {
691
  max-width: 90%;
692
  max-height: 90%;
693
  object-fit: contain;
694
  }
695
+
696
  @media (max-width: 576px) {
697
  .zoomed-image-container {
698
  position: fixed;
 
705
  justify-content: center;
706
  align-items: center;
707
  z-index: 999;
708
+ /* Optional: If you want to hide the scrollbar in Firefox */
709
+ scrollbar-width: none;
710
  }
711
  }
 
 
712
  </style>
713
  <script src="https://cdn.lordicon.com/lordicon.js"></script>
714
  </head>
 
719
  </div>
720
  <div class="containerz">
721
  <div class="left-column">
722
+ <button class="backbutton" id="submitButton" onclick="window.location.href='{{ index_url }}'">
723
  <i class="fa-solid fa-arrow-left"></i>
724
  <span>Back</span>
725
  </button>
726
  <div id="canvas-container">
727
  {% if image_paths %}
728
+ {% for image_path, prediction_results_copy in predictions.items() %}
729
+ <div
730
+ class="image-container {% if prediction_results_copy == 'non-receipt' %}red-border{% elif prediction_results_copy == 'receipt' %}green-border{% endif %}">
731
+ <div class="tooltiptext">Click to view fullscreen</div>
732
+ <img src="{{ url_for('static', filename='temp/img_display/' + image_path) }}" id="my-image"
733
+ alt="uploads"
734
+ data-img-path="{{ url_for('static', filename='temp/img_display/' + image_path) }}" />
735
+ <div class="image-name">
736
+ <p class="images-name">{{image_path}}</p>
737
+ </div>
738
+ </div>
739
+ {% endfor %}
740
  {% else %}
741
+ <p>No files uploaded.</p>
742
  {% endif %}
743
  </div>
744
  </div>
 
752
  <hr style="color: #ccc; width:95%; opacity:0.35;">
753
  <div class="labels" style="margin: 0 0 0 20px;">
754
  <p>Receipt Verification</p>
755
+ <p class="desc">Verify receipt details attentively, acknowledging occasional misclassification, which
756
+ may arise from variations in image quality or format.</p>
757
  </div>
758
  <div class="receipt">
759
+ <table>
760
+ <thead>
761
+ <tr>
762
+ <th>File Name</th>
763
+ <th>Prediction Result</th>
764
+ </tr>
765
+ </thead>
766
+ <tbody>
767
+ {% for image_path, prediction_results_copy in predictions.items() %}
768
+ <tr>
769
+ <td>{{ image_path }}</td>
770
+ <td>
771
+ <div class="details">
772
+ <div style="display: flex; align-items: center; justify-content: center;">
773
+ {% if prediction_results_copy.lower() == 'receipt' %}
774
+ <lord-icon src="https://cdn.lordicon.com/lomfljuq.json" trigger="in"
775
+ delay="1500" colors="primary:#16c72e" state="morph-check-in-1"
776
+ style="width:25px;height:25px">
777
+ </lord-icon>
778
+ <p class="valid">Valid Receipt</p>
779
+ {% else %}
780
+ <lord-icon src="https://cdn.lordicon.com/zxvuvcnc.json" trigger="in"
781
+ delay="1500" state="morph-cross-in" colors="primary:#e83a30"
782
+ style="width:25px;height:25px">
783
+ </lord-icon>
784
+ <p class="valid">Not a Receipt</p>
785
+ {% endif %}
786
+ </div>
787
  </div>
788
+ </td>
789
+ </tr>
790
+ {% endfor %}
791
+ </tbody>
792
+ </table>
 
793
  </div>
794
  <hr style="color: #ccc; width:95%; opacity:0.35;">
795
  <div class="labels" style="margin: 0 0 0 20px;">
796
  <p>Text Extraction</p>
797
+ <p class="desc">Ensure optimal text extraction accuracy from receipts by making sure that the receipt
798
+ image is clear, well-lit, and after extraction review the extracted text and edit.</p>
799
  </div>
800
  <div style="text-align: center; margin-top: 25px;">
801
  <button id="uploadbutton" class="uploadbutton" type="submit">
 
832
  <a href="{{ url_for('download_csv') }}">
833
  <button class="exportbutton" type="submit"><i class="fa-solid fa-download"></i>Download CSV</button>
834
  </a>
835
+ <button class="exportbutton" onclick="window.location.href='{{ index_url }}'">
836
  <span id="uploadIcon"><i class="fas fa-upload"></i></span>
837
  <span>Upload again</span>
838
  </button>
 
843
  </div>
844
  <a href="https://lordicon.com/" hidden>Icons by Lordicon.com</a>
845
  <script>
846
+ document.addEventListener('DOMContentLoaded', function () {
847
  const dataTable = document.getElementById('receiptdiv');
848
  const loadingSpinner = document.getElementById('loadingIcon');
849
  const extractingText = document.getElementById('extractingText');
850
  const runInferenceButton = document.getElementById('uploadbutton');
851
  const exportCSVButton = document.getElementById('downloadbutton');
852
 
853
+ document.getElementById('uploadbutton').addEventListener('click', function () {
854
  loadingSpinner.style.display = 'inline-block'; // Show loading spinner
855
  extractingText.textContent = 'Extracting...'; // Change text to "Extracting..."
856
  runInferenceButton.disabled = true;
 
868
  // Show the table when data is updated
869
  dataTable.style.display = 'table';
870
  }
871
+ const imageElement = document.getElementById('my-image'); // replace 'my-image' with the id of your image element
872
+
873
 
874
  async function runInference() {
875
  await fetch('/run_inference');
876
 
877
+ setTimeout(function () {
878
  loadingSpinner.style.display = 'none';
879
  runInferenceButton.style.display = 'none';
880
  exportCSVButton.style.display = 'flex';
881
+ var imageElements = document.querySelectorAll('[data-img-path]');
882
+
883
+ // Iterate over each image
884
+ imageElements.forEach(function (imageElement) {
885
+ var imagePath = imageElement.dataset.imgPath;
886
+ // Remove the 'temp/img_display/' part from the imagePath
887
+ // var newImagePath = imagePath.replace('temp/img_display/', '');
888
+ // Update the image source
889
+ imageElement.src = imagePath + "_inference.jpg";
890
 
891
+ // Add an error handler
892
+ imageElement.onerror = function () {
893
+ // Hide the image's container if the image fails to load
894
+ this.parentElement.style.display = 'none';
895
+ };
896
+ });
897
  getData();
898
  }, 500);
899
  }
900
 
901
+
902
  function updateTable(data) {
903
  Papa.parse(data, {
904
  header: true,
905
  skipEmptyLines: true,
906
+ complete: function (results) {
907
  const tbody = document.querySelector('#dataTable tbody');
908
  tbody.innerHTML = ''; // Clear existing rows
909