Spaces:
Sleeping
Sleeping
Commit ·
05a48f3
1
Parent(s): 480596b
Upload 33 files
Browse files- .gitattributes +4 -0
- app.py +248 -0
- eported_models/00000026.jpg +0 -0
- eported_models/efficientdet_d0_ocr_numberplate/.ipynb_checkpoints/label_map-checkpoint.pbtxt +144 -0
- eported_models/efficientdet_d0_ocr_numberplate/checkpoint/checkpoint +4 -0
- eported_models/efficientdet_d0_ocr_numberplate/checkpoint/ckpt-0.data-00000-of-00001 +3 -0
- eported_models/efficientdet_d0_ocr_numberplate/checkpoint/ckpt-0.index +0 -0
- eported_models/efficientdet_d0_ocr_numberplate/label_map.pbtxt +144 -0
- eported_models/efficientdet_d0_ocr_numberplate/pipeline.config +189 -0
- eported_models/efficientdet_d0_ocr_numberplate/saved_model/saved_model.pb +3 -0
- eported_models/efficientdet_d0_ocr_numberplate/saved_model/variables/variables.data-00000-of-00001 +3 -0
- eported_models/efficientdet_d0_ocr_numberplate/saved_model/variables/variables.index +0 -0
- eported_models/hyundai.jpg +0 -0
- eported_models/mahindra.jpg +0 -0
- eported_models/ssd_mobilnet_numberplate_region_detection/.ipynb_checkpoints/label_map-checkpoint.pbtxt +4 -0
- eported_models/ssd_mobilnet_numberplate_region_detection/.ipynb_checkpoints/pipeline-checkpoint.config +191 -0
- eported_models/ssd_mobilnet_numberplate_region_detection/checkpoint/checkpoint +4 -0
- eported_models/ssd_mobilnet_numberplate_region_detection/checkpoint/ckpt-0.data-00000-of-00001 +3 -0
- eported_models/ssd_mobilnet_numberplate_region_detection/checkpoint/ckpt-0.index +0 -0
- eported_models/ssd_mobilnet_numberplate_region_detection/label_map.pbtxt +4 -0
- eported_models/ssd_mobilnet_numberplate_region_detection/pipeline.config +191 -0
- eported_models/ssd_mobilnet_numberplate_region_detection/saved_model/saved_model.pb +3 -0
- eported_models/ssd_mobilnet_numberplate_region_detection/saved_model/variables/variables.data-00000-of-00001 +3 -0
- eported_models/ssd_mobilnet_numberplate_region_detection/saved_model/variables/variables.index +0 -0
- requirements.txt +7 -0
- test_images/desktop.ini +24 -0
- test_images/test1.png +0 -0
- test_images/test2.png +0 -0
- test_images/test3.png +0 -0
- test_images/test4.jpg +0 -0
- test_images/test5.jpg +0 -0
- test_images/test6.jpg +0 -0
- test_images/test7.jpg +0 -0
- test_images/test8.jpg +0 -0
.gitattributes
CHANGED
|
@@ -32,3 +32,7 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 32 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 33 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 33 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 35 |
+
eported_models/efficientdet_d0_ocr_numberplate/checkpoint/ckpt-0.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
eported_models/efficientdet_d0_ocr_numberplate/saved_model/variables/variables.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
eported_models/ssd_mobilnet_numberplate_region_detection/checkpoint/ckpt-0.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
eported_models/ssd_mobilnet_numberplate_region_detection/saved_model/variables/variables.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text
|
app.py
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import streamlit as st
|
| 2 |
+
from streamlit_image_select import image_select
|
| 3 |
+
import tensorflow as tf
|
| 4 |
+
import datetime
|
| 5 |
+
import os
|
| 6 |
+
import pandas as pd
|
| 7 |
+
import numpy as np
|
| 8 |
+
import cv2
|
| 9 |
+
from PIL import Image
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
# trained model files and paths
|
| 13 |
+
files = {
|
| 14 |
+
"label_map_ssd" : os.path.join('eported_models','ssd_mobilnet_numberplate_region_detection','label_map.pbtxt'),
|
| 15 |
+
"label_map_efficientdet" : os.path.join('eported_models','efficientdet_d0_ocr_numberplate','label_map.pbtxt')
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
paths = {
|
| 19 |
+
"saved_model_path_ssd" : os.path.join('eported_models','ssd_mobilnet_numberplate_region_detection','saved_model'),
|
| 20 |
+
"saved_model_path_efficientdet" : os.path.join('eported_models','efficientdet_d0_ocr_numberplate','saved_model')
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
def read_label_map(label_map_path):
|
| 24 |
+
item_id = None
|
| 25 |
+
item_name = None
|
| 26 |
+
items = {}
|
| 27 |
+
with open(label_map_path, "r") as file:
|
| 28 |
+
for line in file:
|
| 29 |
+
line.replace(" ", "")
|
| 30 |
+
if line == "item{":
|
| 31 |
+
pass
|
| 32 |
+
elif line == "}":
|
| 33 |
+
pass
|
| 34 |
+
elif "id" in line:
|
| 35 |
+
item_id = int(line.split(":", 1)[1].strip())
|
| 36 |
+
elif "name" in line:
|
| 37 |
+
item_name = {line.split(":")[0].replace("\"", " ").strip() : line.split(":")[1].replace("'", '').strip()}
|
| 38 |
+
if item_id is not None and item_name is not None:
|
| 39 |
+
items[item_id] = item_name
|
| 40 |
+
item_id = None
|
| 41 |
+
item_name = None
|
| 42 |
+
return items
|
| 43 |
+
|
| 44 |
+
#load model
|
| 45 |
+
@st.cache(allow_output_mutation = True)
|
| 46 |
+
def cache_model(path1, path2):
|
| 47 |
+
model1 = tf.saved_model.load(path1)
|
| 48 |
+
model2 = tf.saved_model.load(path2)
|
| 49 |
+
return (model1, model2)
|
| 50 |
+
detect_fn_ssd, detect_fn_efficientdet = cache_model(paths["saved_model_path_ssd"], paths["saved_model_path_efficientdet"])
|
| 51 |
+
|
| 52 |
+
# Creating category index
|
| 53 |
+
category_index_ssd = read_label_map(files["label_map_ssd"])
|
| 54 |
+
category_index_efficientdet = read_label_map(files["label_map_efficientdet"])
|
| 55 |
+
|
| 56 |
+
def image_resize_with_padding(image):
|
| 57 |
+
image = np.array(image)
|
| 58 |
+
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
|
| 59 |
+
old_size = image.shape[:2] # old_size is in (height, width) format
|
| 60 |
+
|
| 61 |
+
if max(old_size) > 256:
|
| 62 |
+
desired_size = 512
|
| 63 |
+
else:
|
| 64 |
+
desired_size = 256
|
| 65 |
+
|
| 66 |
+
ratio = float(desired_size)/max(old_size)
|
| 67 |
+
new_size = tuple([int(x*ratio) for x in old_size])
|
| 68 |
+
# resize the image
|
| 69 |
+
resized = cv2.resize(image, (new_size[1],new_size[0]))
|
| 70 |
+
|
| 71 |
+
delta_w = desired_size - new_size[1]
|
| 72 |
+
delta_h = desired_size - new_size[0]
|
| 73 |
+
top, bottom = delta_h//2, delta_h-(delta_h//2)
|
| 74 |
+
left, right = delta_w//2, delta_w-(delta_w//2)
|
| 75 |
+
# print(top,bottom,left,right)
|
| 76 |
+
|
| 77 |
+
color = [255, 255, 255]
|
| 78 |
+
new_im = cv2.copyMakeBorder(resized, top, bottom, left, right, cv2.BORDER_CONSTANT,value=color)
|
| 79 |
+
|
| 80 |
+
return new_im
|
| 81 |
+
|
| 82 |
+
def ExtractBBoxes(bboxes, bclasses, bscores, im_width, im_height, threshold, category_index):
|
| 83 |
+
bbox = []
|
| 84 |
+
class_labels = []
|
| 85 |
+
for idx in range(len(bboxes)):
|
| 86 |
+
if bscores[idx] >= threshold:
|
| 87 |
+
y_min = int(bboxes[idx][0] * im_height)
|
| 88 |
+
x_min = int(bboxes[idx][1] * im_width)
|
| 89 |
+
y_max = int(bboxes[idx][2] * im_height)
|
| 90 |
+
x_max = int(bboxes[idx][3] * im_width)
|
| 91 |
+
class_label = category_index[int(bclasses[idx])]['name']
|
| 92 |
+
class_labels.append(class_label)
|
| 93 |
+
bbox.append([x_min, y_min, x_max, y_max, class_label, float(bscores[idx])])
|
| 94 |
+
return (bbox, class_labels)
|
| 95 |
+
|
| 96 |
+
def ocr_predict(img,threshold):
|
| 97 |
+
|
| 98 |
+
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
|
| 99 |
+
image_np = tf.convert_to_tensor(img, dtype=tf.uint8)
|
| 100 |
+
input_tensor = np.expand_dims(image_np, 0)
|
| 101 |
+
image_height, image_width, _ = image_np.shape
|
| 102 |
+
detections = detect_fn_efficientdet(input_tensor)
|
| 103 |
+
bboxes = detections['detection_boxes'][0].numpy()
|
| 104 |
+
bclasses = detections['detection_classes'][0].numpy().astype(np.int32)
|
| 105 |
+
bscores = detections['detection_scores'][0].numpy()
|
| 106 |
+
det_boxes, class_labels = ExtractBBoxes(bboxes, bclasses, bscores, image_width, image_height, threshold, category_index_efficientdet)
|
| 107 |
+
output = []
|
| 108 |
+
for detection in det_boxes:
|
| 109 |
+
x_min, y_min, x_max, y_max, label, score = detection[0], detection[1], detection[2], detection[3], detection[4], round(detection[5])
|
| 110 |
+
|
| 111 |
+
output.append((label, int(x_min*image_width), int(y_min*image_height),
|
| 112 |
+
int(x_max*image_width), int(y_max*image_height), score))
|
| 113 |
+
|
| 114 |
+
df = pd.DataFrame(output, columns = ['label','xmin','ymin','xmax','ymax', 'score'])
|
| 115 |
+
|
| 116 |
+
df_up = df[df.ymin < (df.ymin.min()*1.2)].sort_values(by = ['xmin'])
|
| 117 |
+
df_down = df[df.ymin > (df.ymin.min()*1.2)].sort_values(by = ['xmin'])
|
| 118 |
+
df = pd.concat([df_up,df_down])
|
| 119 |
+
vehicle_number = "".join(df["label"])
|
| 120 |
+
|
| 121 |
+
|
| 122 |
+
|
| 123 |
+
current_date_time = datetime.datetime.now()
|
| 124 |
+
day = current_date_time.strftime("%A")
|
| 125 |
+
date = current_date_time.strftime("%d/%m/%Y")
|
| 126 |
+
time = current_date_time.strftime("%I:%M:%S %p")
|
| 127 |
+
data = [(vehicle_number,day,date,time)]
|
| 128 |
+
|
| 129 |
+
return (data)
|
| 130 |
+
|
| 131 |
+
def predict(img,threshold):
|
| 132 |
+
image_np = np.array(img)
|
| 133 |
+
img = cv2.cvtColor(image_np, cv2.COLOR_BGR2RGB)
|
| 134 |
+
image = tf.convert_to_tensor(img, dtype=tf.uint8)
|
| 135 |
+
input_tensor = np.expand_dims(image, 0)
|
| 136 |
+
# image = tf.image.decode_image(open(file, 'rb').read(), channels=3)
|
| 137 |
+
# img = cv2.imread(file)
|
| 138 |
+
image_height, image_width, _ = image.shape
|
| 139 |
+
|
| 140 |
+
|
| 141 |
+
|
| 142 |
+
# input_tensor = np.expand_dims(image, 0)
|
| 143 |
+
detections = detect_fn_ssd(input_tensor)
|
| 144 |
+
|
| 145 |
+
bboxes = detections['detection_boxes'][0].numpy()
|
| 146 |
+
bclasses = detections['detection_classes'][0].numpy().astype(np.int32)
|
| 147 |
+
bscores = detections['detection_scores'][0].numpy()
|
| 148 |
+
det_boxes, class_labels = ExtractBBoxes(bboxes, bclasses, bscores, image_width, image_height, threshold, category_index_ssd)
|
| 149 |
+
output = []
|
| 150 |
+
for detection in det_boxes:
|
| 151 |
+
x_min, y_min, x_max, y_max, label, score = detection[0], detection[1], detection[2], detection[3], detection[4], round(detection[5])
|
| 152 |
+
|
| 153 |
+
output.append((label, x_min, y_min, x_max, y_max, score))
|
| 154 |
+
|
| 155 |
+
image_np_with_detections = image_np.copy()
|
| 156 |
+
|
| 157 |
+
data_list = []
|
| 158 |
+
for l, x_min, y_min, x_max, y_max, score in output:
|
| 159 |
+
|
| 160 |
+
array = cv2.cvtColor(np.array(img), cv2.COLOR_RGB2BGR)
|
| 161 |
+
image = Image.fromarray(array)
|
| 162 |
+
|
| 163 |
+
cropped_img = image.crop((x_min, y_min, x_max, y_max))
|
| 164 |
+
input_ocr_image = image_resize_with_padding(cropped_img)
|
| 165 |
+
|
| 166 |
+
data = ocr_predict(input_ocr_image,threshold)
|
| 167 |
+
data_list.append(data)
|
| 168 |
+
|
| 169 |
+
for l, x_min, y_min, x_max, y_max, score in output:
|
| 170 |
+
|
| 171 |
+
|
| 172 |
+
x1 = x_min
|
| 173 |
+
y1 = y_min
|
| 174 |
+
x2 = x_max
|
| 175 |
+
y2 = y_max
|
| 176 |
+
# For bounding box
|
| 177 |
+
color = (0,255,0)
|
| 178 |
+
|
| 179 |
+
img = cv2.rectangle(img, (x1, y1), (x2, y2),color, 2)
|
| 180 |
+
|
| 181 |
+
label = f"{l} : {round(score,2)}"
|
| 182 |
+
text_color = (0,0,255)
|
| 183 |
+
# For the text background
|
| 184 |
+
# Finds space required by the text so that we can put a background with that amount of width.
|
| 185 |
+
(w, h), _ = cv2.getTextSize(
|
| 186 |
+
label, cv2.FONT_HERSHEY_SIMPLEX, 0.6, 1)
|
| 187 |
+
|
| 188 |
+
# Prints the text.
|
| 189 |
+
img = cv2.rectangle(img, (x1, y1 - 20), (x1 + w, y1), color, -1)
|
| 190 |
+
img = cv2.putText(img, label, (x1, y1 - 5),
|
| 191 |
+
cv2.FONT_HERSHEY_SIMPLEX, 0.6, text_color, 1)
|
| 192 |
+
# plt.imshow(img)
|
| 193 |
+
|
| 194 |
+
|
| 195 |
+
im_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
|
| 196 |
+
|
| 197 |
+
return (im_rgb, data_list)
|
| 198 |
+
|
| 199 |
+
st.write("""
|
| 200 |
+
# Automated Number Plate Recognition
|
| 201 |
+
"""
|
| 202 |
+
)
|
| 203 |
+
|
| 204 |
+
st.write("""
|
| 205 |
+
**For full code implementation and sub modules please visit the [Github link](https://github.com/gourav300/Automated-Number-plate-Recognition-for-Indian-Vehicles)**
|
| 206 |
+
""")
|
| 207 |
+
|
| 208 |
+
### load file
|
| 209 |
+
uploaded_file = st.file_uploader("Upload an image file for a vehicle with standard number plate", type=["jpg", "png", "jpeg"])
|
| 210 |
+
|
| 211 |
+
st.write("Note -: if you have uploaded an image please click X to enable below images")
|
| 212 |
+
test_img = image_select(
|
| 213 |
+
label='''Select an image to get number plate data''',
|
| 214 |
+
images=[
|
| 215 |
+
"test_images/test3.png",
|
| 216 |
+
"test_images/test2.png",
|
| 217 |
+
"test_images/test1.png",
|
| 218 |
+
"test_images/test4.jpg",
|
| 219 |
+
"test_images/test5.jpg",
|
| 220 |
+
"test_images/test6.jpg",
|
| 221 |
+
"test_images/test7.jpg",
|
| 222 |
+
"test_images/test8.jpg",
|
| 223 |
+
])
|
| 224 |
+
|
| 225 |
+
|
| 226 |
+
if uploaded_file is not None:
|
| 227 |
+
image = Image.open(uploaded_file)
|
| 228 |
+
img, data = predict(image, 0.6)
|
| 229 |
+
# image = Image.open(uploaded_file)
|
| 230 |
+
st.image(img,width = 500)#, use_column_width=True)
|
| 231 |
+
st.write(f'''
|
| 232 |
+
Vehicle details :
|
| 233 |
+
|
| 234 |
+
{data}
|
| 235 |
+
|
| 236 |
+
''')
|
| 237 |
+
else:
|
| 238 |
+
|
| 239 |
+
image = Image.open(test_img)
|
| 240 |
+
img, data = predict(image, 0.6)
|
| 241 |
+
# image = Image.open(uploaded_file)
|
| 242 |
+
st.image(img,width = 500)#, use_column_width=True)
|
| 243 |
+
st.write(f'''
|
| 244 |
+
Vehicle details :
|
| 245 |
+
|
| 246 |
+
{data}
|
| 247 |
+
|
| 248 |
+
''')
|
eported_models/00000026.jpg
ADDED
|
eported_models/efficientdet_d0_ocr_numberplate/.ipynb_checkpoints/label_map-checkpoint.pbtxt
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
item {
|
| 2 |
+
name:'0'
|
| 3 |
+
id:1
|
| 4 |
+
}
|
| 5 |
+
item {
|
| 6 |
+
name:'1'
|
| 7 |
+
id:2
|
| 8 |
+
}
|
| 9 |
+
item {
|
| 10 |
+
name:'2'
|
| 11 |
+
id:3
|
| 12 |
+
}
|
| 13 |
+
item {
|
| 14 |
+
name:'3'
|
| 15 |
+
id:4
|
| 16 |
+
}
|
| 17 |
+
item {
|
| 18 |
+
name:'4'
|
| 19 |
+
id:5
|
| 20 |
+
}
|
| 21 |
+
item {
|
| 22 |
+
name:'5'
|
| 23 |
+
id:6
|
| 24 |
+
}
|
| 25 |
+
item {
|
| 26 |
+
name:'6'
|
| 27 |
+
id:7
|
| 28 |
+
}
|
| 29 |
+
item {
|
| 30 |
+
name:'7'
|
| 31 |
+
id:8
|
| 32 |
+
}
|
| 33 |
+
item {
|
| 34 |
+
name:'8'
|
| 35 |
+
id:9
|
| 36 |
+
}
|
| 37 |
+
item {
|
| 38 |
+
name:'9'
|
| 39 |
+
id:10
|
| 40 |
+
}
|
| 41 |
+
item {
|
| 42 |
+
name:'A'
|
| 43 |
+
id:11
|
| 44 |
+
}
|
| 45 |
+
item {
|
| 46 |
+
name:'B'
|
| 47 |
+
id:12
|
| 48 |
+
}
|
| 49 |
+
item {
|
| 50 |
+
name:'C'
|
| 51 |
+
id:13
|
| 52 |
+
}
|
| 53 |
+
item {
|
| 54 |
+
name:'D'
|
| 55 |
+
id:14
|
| 56 |
+
}
|
| 57 |
+
item {
|
| 58 |
+
name:'E'
|
| 59 |
+
id:15
|
| 60 |
+
}
|
| 61 |
+
item {
|
| 62 |
+
name:'F'
|
| 63 |
+
id:16
|
| 64 |
+
}
|
| 65 |
+
item {
|
| 66 |
+
name:'G'
|
| 67 |
+
id:17
|
| 68 |
+
}
|
| 69 |
+
item {
|
| 70 |
+
name:'H'
|
| 71 |
+
id:18
|
| 72 |
+
}
|
| 73 |
+
item {
|
| 74 |
+
name:'I'
|
| 75 |
+
id:19
|
| 76 |
+
}
|
| 77 |
+
item {
|
| 78 |
+
name:'J'
|
| 79 |
+
id:20
|
| 80 |
+
}
|
| 81 |
+
item {
|
| 82 |
+
name:'K'
|
| 83 |
+
id:21
|
| 84 |
+
}
|
| 85 |
+
item {
|
| 86 |
+
name:'L'
|
| 87 |
+
id:22
|
| 88 |
+
}
|
| 89 |
+
item {
|
| 90 |
+
name:'M'
|
| 91 |
+
id:23
|
| 92 |
+
}
|
| 93 |
+
item {
|
| 94 |
+
name:'N'
|
| 95 |
+
id:24
|
| 96 |
+
}
|
| 97 |
+
item {
|
| 98 |
+
name:'O'
|
| 99 |
+
id:25
|
| 100 |
+
}
|
| 101 |
+
item {
|
| 102 |
+
name:'P'
|
| 103 |
+
id:26
|
| 104 |
+
}
|
| 105 |
+
item {
|
| 106 |
+
name:'Q'
|
| 107 |
+
id:27
|
| 108 |
+
}
|
| 109 |
+
item {
|
| 110 |
+
name:'R'
|
| 111 |
+
id:28
|
| 112 |
+
}
|
| 113 |
+
item {
|
| 114 |
+
name:'S'
|
| 115 |
+
id:29
|
| 116 |
+
}
|
| 117 |
+
item {
|
| 118 |
+
name:'T'
|
| 119 |
+
id:30
|
| 120 |
+
}
|
| 121 |
+
item {
|
| 122 |
+
name:'U'
|
| 123 |
+
id:31
|
| 124 |
+
}
|
| 125 |
+
item {
|
| 126 |
+
name:'V'
|
| 127 |
+
id:32
|
| 128 |
+
}
|
| 129 |
+
item {
|
| 130 |
+
name:'W'
|
| 131 |
+
id:33
|
| 132 |
+
}
|
| 133 |
+
item {
|
| 134 |
+
name:'X'
|
| 135 |
+
id:34
|
| 136 |
+
}
|
| 137 |
+
item {
|
| 138 |
+
name:'Y'
|
| 139 |
+
id:35
|
| 140 |
+
}
|
| 141 |
+
item {
|
| 142 |
+
name:'Z'
|
| 143 |
+
id:36
|
| 144 |
+
}
|
eported_models/efficientdet_d0_ocr_numberplate/checkpoint/checkpoint
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
model_checkpoint_path: "ckpt-0"
|
| 2 |
+
all_model_checkpoint_paths: "ckpt-0"
|
| 3 |
+
all_model_checkpoint_timestamps: 1656053241.2777963
|
| 4 |
+
last_preserved_timestamp: 1656053239.3308609
|
eported_models/efficientdet_d0_ocr_numberplate/checkpoint/ckpt-0.data-00000-of-00001
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a32ab47b7ee4aa8fc6527caa24c68fccdb39c1c967d6c4369f20c89124faec0e
|
| 3 |
+
size 22535607
|
eported_models/efficientdet_d0_ocr_numberplate/checkpoint/ckpt-0.index
ADDED
|
Binary file (46.6 kB). View file
|
|
|
eported_models/efficientdet_d0_ocr_numberplate/label_map.pbtxt
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
item {
|
| 2 |
+
name:'0'
|
| 3 |
+
id:1
|
| 4 |
+
}
|
| 5 |
+
item {
|
| 6 |
+
name:'1'
|
| 7 |
+
id:2
|
| 8 |
+
}
|
| 9 |
+
item {
|
| 10 |
+
name:'2'
|
| 11 |
+
id:3
|
| 12 |
+
}
|
| 13 |
+
item {
|
| 14 |
+
name:'3'
|
| 15 |
+
id:4
|
| 16 |
+
}
|
| 17 |
+
item {
|
| 18 |
+
name:'4'
|
| 19 |
+
id:5
|
| 20 |
+
}
|
| 21 |
+
item {
|
| 22 |
+
name:'5'
|
| 23 |
+
id:6
|
| 24 |
+
}
|
| 25 |
+
item {
|
| 26 |
+
name:'6'
|
| 27 |
+
id:7
|
| 28 |
+
}
|
| 29 |
+
item {
|
| 30 |
+
name:'7'
|
| 31 |
+
id:8
|
| 32 |
+
}
|
| 33 |
+
item {
|
| 34 |
+
name:'8'
|
| 35 |
+
id:9
|
| 36 |
+
}
|
| 37 |
+
item {
|
| 38 |
+
name:'9'
|
| 39 |
+
id:10
|
| 40 |
+
}
|
| 41 |
+
item {
|
| 42 |
+
name:'A'
|
| 43 |
+
id:11
|
| 44 |
+
}
|
| 45 |
+
item {
|
| 46 |
+
name:'B'
|
| 47 |
+
id:12
|
| 48 |
+
}
|
| 49 |
+
item {
|
| 50 |
+
name:'C'
|
| 51 |
+
id:13
|
| 52 |
+
}
|
| 53 |
+
item {
|
| 54 |
+
name:'D'
|
| 55 |
+
id:14
|
| 56 |
+
}
|
| 57 |
+
item {
|
| 58 |
+
name:'E'
|
| 59 |
+
id:15
|
| 60 |
+
}
|
| 61 |
+
item {
|
| 62 |
+
name:'F'
|
| 63 |
+
id:16
|
| 64 |
+
}
|
| 65 |
+
item {
|
| 66 |
+
name:'G'
|
| 67 |
+
id:17
|
| 68 |
+
}
|
| 69 |
+
item {
|
| 70 |
+
name:'H'
|
| 71 |
+
id:18
|
| 72 |
+
}
|
| 73 |
+
item {
|
| 74 |
+
name:'I'
|
| 75 |
+
id:19
|
| 76 |
+
}
|
| 77 |
+
item {
|
| 78 |
+
name:'J'
|
| 79 |
+
id:20
|
| 80 |
+
}
|
| 81 |
+
item {
|
| 82 |
+
name:'K'
|
| 83 |
+
id:21
|
| 84 |
+
}
|
| 85 |
+
item {
|
| 86 |
+
name:'L'
|
| 87 |
+
id:22
|
| 88 |
+
}
|
| 89 |
+
item {
|
| 90 |
+
name:'M'
|
| 91 |
+
id:23
|
| 92 |
+
}
|
| 93 |
+
item {
|
| 94 |
+
name:'N'
|
| 95 |
+
id:24
|
| 96 |
+
}
|
| 97 |
+
item {
|
| 98 |
+
name:'O'
|
| 99 |
+
id:25
|
| 100 |
+
}
|
| 101 |
+
item {
|
| 102 |
+
name:'P'
|
| 103 |
+
id:26
|
| 104 |
+
}
|
| 105 |
+
item {
|
| 106 |
+
name:'Q'
|
| 107 |
+
id:27
|
| 108 |
+
}
|
| 109 |
+
item {
|
| 110 |
+
name:'R'
|
| 111 |
+
id:28
|
| 112 |
+
}
|
| 113 |
+
item {
|
| 114 |
+
name:'S'
|
| 115 |
+
id:29
|
| 116 |
+
}
|
| 117 |
+
item {
|
| 118 |
+
name:'T'
|
| 119 |
+
id:30
|
| 120 |
+
}
|
| 121 |
+
item {
|
| 122 |
+
name:'U'
|
| 123 |
+
id:31
|
| 124 |
+
}
|
| 125 |
+
item {
|
| 126 |
+
name:'V'
|
| 127 |
+
id:32
|
| 128 |
+
}
|
| 129 |
+
item {
|
| 130 |
+
name:'W'
|
| 131 |
+
id:33
|
| 132 |
+
}
|
| 133 |
+
item {
|
| 134 |
+
name:'X'
|
| 135 |
+
id:34
|
| 136 |
+
}
|
| 137 |
+
item {
|
| 138 |
+
name:'Y'
|
| 139 |
+
id:35
|
| 140 |
+
}
|
| 141 |
+
item {
|
| 142 |
+
name:'Z'
|
| 143 |
+
id:36
|
| 144 |
+
}
|
eported_models/efficientdet_d0_ocr_numberplate/pipeline.config
ADDED
|
@@ -0,0 +1,189 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
model {
|
| 2 |
+
ssd {
|
| 3 |
+
num_classes: 36
|
| 4 |
+
image_resizer {
|
| 5 |
+
keep_aspect_ratio_resizer {
|
| 6 |
+
min_dimension: 512
|
| 7 |
+
max_dimension: 512
|
| 8 |
+
pad_to_max_dimension: true
|
| 9 |
+
}
|
| 10 |
+
}
|
| 11 |
+
feature_extractor {
|
| 12 |
+
type: "ssd_efficientnet-b0_bifpn_keras"
|
| 13 |
+
conv_hyperparams {
|
| 14 |
+
regularizer {
|
| 15 |
+
l2_regularizer {
|
| 16 |
+
weight: 4e-05
|
| 17 |
+
}
|
| 18 |
+
}
|
| 19 |
+
initializer {
|
| 20 |
+
truncated_normal_initializer {
|
| 21 |
+
mean: 0.0
|
| 22 |
+
stddev: 0.03
|
| 23 |
+
}
|
| 24 |
+
}
|
| 25 |
+
activation: SWISH
|
| 26 |
+
batch_norm {
|
| 27 |
+
decay: 0.99
|
| 28 |
+
scale: true
|
| 29 |
+
epsilon: 0.001
|
| 30 |
+
}
|
| 31 |
+
force_use_bias: true
|
| 32 |
+
}
|
| 33 |
+
bifpn {
|
| 34 |
+
min_level: 3
|
| 35 |
+
max_level: 7
|
| 36 |
+
num_iterations: 3
|
| 37 |
+
num_filters: 64
|
| 38 |
+
}
|
| 39 |
+
}
|
| 40 |
+
box_coder {
|
| 41 |
+
faster_rcnn_box_coder {
|
| 42 |
+
y_scale: 1.0
|
| 43 |
+
x_scale: 1.0
|
| 44 |
+
height_scale: 1.0
|
| 45 |
+
width_scale: 1.0
|
| 46 |
+
}
|
| 47 |
+
}
|
| 48 |
+
matcher {
|
| 49 |
+
argmax_matcher {
|
| 50 |
+
matched_threshold: 0.5
|
| 51 |
+
unmatched_threshold: 0.5
|
| 52 |
+
ignore_thresholds: false
|
| 53 |
+
negatives_lower_than_unmatched: true
|
| 54 |
+
force_match_for_each_row: true
|
| 55 |
+
use_matmul_gather: true
|
| 56 |
+
}
|
| 57 |
+
}
|
| 58 |
+
similarity_calculator {
|
| 59 |
+
iou_similarity {
|
| 60 |
+
}
|
| 61 |
+
}
|
| 62 |
+
box_predictor {
|
| 63 |
+
weight_shared_convolutional_box_predictor {
|
| 64 |
+
conv_hyperparams {
|
| 65 |
+
regularizer {
|
| 66 |
+
l2_regularizer {
|
| 67 |
+
weight: 4e-05
|
| 68 |
+
}
|
| 69 |
+
}
|
| 70 |
+
initializer {
|
| 71 |
+
random_normal_initializer {
|
| 72 |
+
mean: 0.0
|
| 73 |
+
stddev: 0.01
|
| 74 |
+
}
|
| 75 |
+
}
|
| 76 |
+
activation: SWISH
|
| 77 |
+
batch_norm {
|
| 78 |
+
decay: 0.99
|
| 79 |
+
scale: true
|
| 80 |
+
epsilon: 0.001
|
| 81 |
+
}
|
| 82 |
+
force_use_bias: true
|
| 83 |
+
}
|
| 84 |
+
depth: 64
|
| 85 |
+
num_layers_before_predictor: 3
|
| 86 |
+
kernel_size: 3
|
| 87 |
+
class_prediction_bias_init: -4.6
|
| 88 |
+
use_depthwise: true
|
| 89 |
+
}
|
| 90 |
+
}
|
| 91 |
+
anchor_generator {
|
| 92 |
+
multiscale_anchor_generator {
|
| 93 |
+
min_level: 3
|
| 94 |
+
max_level: 7
|
| 95 |
+
anchor_scale: 4.0
|
| 96 |
+
aspect_ratios: 1.0
|
| 97 |
+
aspect_ratios: 2.0
|
| 98 |
+
aspect_ratios: 0.5
|
| 99 |
+
scales_per_octave: 3
|
| 100 |
+
}
|
| 101 |
+
}
|
| 102 |
+
post_processing {
|
| 103 |
+
batch_non_max_suppression {
|
| 104 |
+
score_threshold: 1e-08
|
| 105 |
+
iou_threshold: 0.5
|
| 106 |
+
max_detections_per_class: 100
|
| 107 |
+
max_total_detections: 100
|
| 108 |
+
}
|
| 109 |
+
score_converter: SIGMOID
|
| 110 |
+
}
|
| 111 |
+
normalize_loss_by_num_matches: true
|
| 112 |
+
loss {
|
| 113 |
+
localization_loss {
|
| 114 |
+
weighted_smooth_l1 {
|
| 115 |
+
}
|
| 116 |
+
}
|
| 117 |
+
classification_loss {
|
| 118 |
+
weighted_sigmoid_focal {
|
| 119 |
+
gamma: 1.5
|
| 120 |
+
alpha: 0.25
|
| 121 |
+
}
|
| 122 |
+
}
|
| 123 |
+
classification_weight: 1.0
|
| 124 |
+
localization_weight: 1.0
|
| 125 |
+
}
|
| 126 |
+
encode_background_as_zeros: true
|
| 127 |
+
normalize_loc_loss_by_codesize: true
|
| 128 |
+
inplace_batchnorm_update: true
|
| 129 |
+
freeze_batchnorm: false
|
| 130 |
+
add_background_class: false
|
| 131 |
+
}
|
| 132 |
+
}
|
| 133 |
+
train_config {
|
| 134 |
+
batch_size: 4
|
| 135 |
+
data_augmentation_options {
|
| 136 |
+
random_horizontal_flip {
|
| 137 |
+
}
|
| 138 |
+
}
|
| 139 |
+
data_augmentation_options {
|
| 140 |
+
random_scale_crop_and_pad_to_square {
|
| 141 |
+
output_size: 512
|
| 142 |
+
scale_min: 0.1
|
| 143 |
+
scale_max: 2.0
|
| 144 |
+
}
|
| 145 |
+
}
|
| 146 |
+
sync_replicas: true
|
| 147 |
+
optimizer {
|
| 148 |
+
momentum_optimizer {
|
| 149 |
+
learning_rate {
|
| 150 |
+
cosine_decay_learning_rate {
|
| 151 |
+
learning_rate_base: 0.08
|
| 152 |
+
total_steps: 300000
|
| 153 |
+
warmup_learning_rate: 0.001
|
| 154 |
+
warmup_steps: 2500
|
| 155 |
+
}
|
| 156 |
+
}
|
| 157 |
+
momentum_optimizer_value: 0.9
|
| 158 |
+
}
|
| 159 |
+
use_moving_average: false
|
| 160 |
+
}
|
| 161 |
+
fine_tune_checkpoint: "Tensorflow/workspace/pre-trained-models/efficientdet_d0_coco17_tpu-32/checkpoint/ckpt-0"
|
| 162 |
+
num_steps: 300000
|
| 163 |
+
startup_delay_steps: 0.0
|
| 164 |
+
replicas_to_aggregate: 8
|
| 165 |
+
max_number_of_boxes: 100
|
| 166 |
+
unpad_groundtruth_tensors: false
|
| 167 |
+
fine_tune_checkpoint_type: "detection"
|
| 168 |
+
use_bfloat16: true
|
| 169 |
+
fine_tune_checkpoint_version: V2
|
| 170 |
+
}
|
| 171 |
+
train_input_reader {
|
| 172 |
+
label_map_path: "Tensorflow/workspace/annotations/label_map.pbtxt"
|
| 173 |
+
tf_record_input_reader {
|
| 174 |
+
input_path: "Tensorflow/workspace/annotations/train.record"
|
| 175 |
+
}
|
| 176 |
+
}
|
| 177 |
+
eval_config {
|
| 178 |
+
metrics_set: "coco_detection_metrics"
|
| 179 |
+
use_moving_averages: false
|
| 180 |
+
batch_size: 1
|
| 181 |
+
}
|
| 182 |
+
eval_input_reader {
|
| 183 |
+
label_map_path: "Tensorflow/workspace/annotations/label_map.pbtxt"
|
| 184 |
+
shuffle: false
|
| 185 |
+
num_epochs: 1
|
| 186 |
+
tf_record_input_reader {
|
| 187 |
+
input_path: "Tensorflow/workspace/annotations/validation.record"
|
| 188 |
+
}
|
| 189 |
+
}
|
eported_models/efficientdet_d0_ocr_numberplate/saved_model/saved_model.pb
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:20b80872f2125e8ec9a6cfc5ca1be4cc92c4757e5ccd17a77deb44c4847a6a9b
|
| 3 |
+
size 19100786
|
eported_models/efficientdet_d0_ocr_numberplate/saved_model/variables/variables.data-00000-of-00001
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:61ea30bfa3efc98a4eab9108e0e4493a760d11c9168712a4bc618b5da0baaf33
|
| 3 |
+
size 22796625
|
eported_models/efficientdet_d0_ocr_numberplate/saved_model/variables/variables.index
ADDED
|
Binary file (39.3 kB). View file
|
|
|
eported_models/hyundai.jpg
ADDED
|
eported_models/mahindra.jpg
ADDED
|
eported_models/ssd_mobilnet_numberplate_region_detection/.ipynb_checkpoints/label_map-checkpoint.pbtxt
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
item {
|
| 2 |
+
name:'np'
|
| 3 |
+
id:1
|
| 4 |
+
}
|
eported_models/ssd_mobilnet_numberplate_region_detection/.ipynb_checkpoints/pipeline-checkpoint.config
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
model {
|
| 2 |
+
ssd {
|
| 3 |
+
num_classes: 1
|
| 4 |
+
image_resizer {
|
| 5 |
+
fixed_shape_resizer {
|
| 6 |
+
height: 320
|
| 7 |
+
width: 320
|
| 8 |
+
}
|
| 9 |
+
}
|
| 10 |
+
feature_extractor {
|
| 11 |
+
type: "ssd_mobilenet_v2_fpn_keras"
|
| 12 |
+
depth_multiplier: 1.0
|
| 13 |
+
min_depth: 16
|
| 14 |
+
conv_hyperparams {
|
| 15 |
+
regularizer {
|
| 16 |
+
l2_regularizer {
|
| 17 |
+
weight: 4e-05
|
| 18 |
+
}
|
| 19 |
+
}
|
| 20 |
+
initializer {
|
| 21 |
+
random_normal_initializer {
|
| 22 |
+
mean: 0.0
|
| 23 |
+
stddev: 0.01
|
| 24 |
+
}
|
| 25 |
+
}
|
| 26 |
+
activation: RELU_6
|
| 27 |
+
batch_norm {
|
| 28 |
+
decay: 0.997
|
| 29 |
+
scale: true
|
| 30 |
+
epsilon: 0.001
|
| 31 |
+
}
|
| 32 |
+
}
|
| 33 |
+
use_depthwise: true
|
| 34 |
+
override_base_feature_extractor_hyperparams: true
|
| 35 |
+
fpn {
|
| 36 |
+
min_level: 3
|
| 37 |
+
max_level: 7
|
| 38 |
+
additional_layer_depth: 128
|
| 39 |
+
}
|
| 40 |
+
}
|
| 41 |
+
box_coder {
|
| 42 |
+
faster_rcnn_box_coder {
|
| 43 |
+
y_scale: 10.0
|
| 44 |
+
x_scale: 10.0
|
| 45 |
+
height_scale: 5.0
|
| 46 |
+
width_scale: 5.0
|
| 47 |
+
}
|
| 48 |
+
}
|
| 49 |
+
matcher {
|
| 50 |
+
argmax_matcher {
|
| 51 |
+
matched_threshold: 0.5
|
| 52 |
+
unmatched_threshold: 0.5
|
| 53 |
+
ignore_thresholds: false
|
| 54 |
+
negatives_lower_than_unmatched: true
|
| 55 |
+
force_match_for_each_row: true
|
| 56 |
+
use_matmul_gather: true
|
| 57 |
+
}
|
| 58 |
+
}
|
| 59 |
+
similarity_calculator {
|
| 60 |
+
iou_similarity {
|
| 61 |
+
}
|
| 62 |
+
}
|
| 63 |
+
box_predictor {
|
| 64 |
+
weight_shared_convolutional_box_predictor {
|
| 65 |
+
conv_hyperparams {
|
| 66 |
+
regularizer {
|
| 67 |
+
l2_regularizer {
|
| 68 |
+
weight: 4e-05
|
| 69 |
+
}
|
| 70 |
+
}
|
| 71 |
+
initializer {
|
| 72 |
+
random_normal_initializer {
|
| 73 |
+
mean: 0.0
|
| 74 |
+
stddev: 0.01
|
| 75 |
+
}
|
| 76 |
+
}
|
| 77 |
+
activation: RELU_6
|
| 78 |
+
batch_norm {
|
| 79 |
+
decay: 0.997
|
| 80 |
+
scale: true
|
| 81 |
+
epsilon: 0.001
|
| 82 |
+
}
|
| 83 |
+
}
|
| 84 |
+
depth: 128
|
| 85 |
+
num_layers_before_predictor: 4
|
| 86 |
+
kernel_size: 3
|
| 87 |
+
class_prediction_bias_init: -4.6
|
| 88 |
+
share_prediction_tower: true
|
| 89 |
+
use_depthwise: true
|
| 90 |
+
}
|
| 91 |
+
}
|
| 92 |
+
anchor_generator {
|
| 93 |
+
multiscale_anchor_generator {
|
| 94 |
+
min_level: 3
|
| 95 |
+
max_level: 7
|
| 96 |
+
anchor_scale: 4.0
|
| 97 |
+
aspect_ratios: 1.0
|
| 98 |
+
aspect_ratios: 2.0
|
| 99 |
+
aspect_ratios: 0.5
|
| 100 |
+
scales_per_octave: 2
|
| 101 |
+
}
|
| 102 |
+
}
|
| 103 |
+
post_processing {
|
| 104 |
+
batch_non_max_suppression {
|
| 105 |
+
score_threshold: 1e-08
|
| 106 |
+
iou_threshold: 0.6
|
| 107 |
+
max_detections_per_class: 100
|
| 108 |
+
max_total_detections: 100
|
| 109 |
+
use_static_shapes: false
|
| 110 |
+
}
|
| 111 |
+
score_converter: SIGMOID
|
| 112 |
+
}
|
| 113 |
+
normalize_loss_by_num_matches: true
|
| 114 |
+
loss {
|
| 115 |
+
localization_loss {
|
| 116 |
+
weighted_smooth_l1 {
|
| 117 |
+
}
|
| 118 |
+
}
|
| 119 |
+
classification_loss {
|
| 120 |
+
weighted_sigmoid_focal {
|
| 121 |
+
gamma: 2.0
|
| 122 |
+
alpha: 0.25
|
| 123 |
+
}
|
| 124 |
+
}
|
| 125 |
+
classification_weight: 1.0
|
| 126 |
+
localization_weight: 1.0
|
| 127 |
+
}
|
| 128 |
+
encode_background_as_zeros: true
|
| 129 |
+
normalize_loc_loss_by_codesize: true
|
| 130 |
+
inplace_batchnorm_update: true
|
| 131 |
+
freeze_batchnorm: false
|
| 132 |
+
}
|
| 133 |
+
}
|
| 134 |
+
train_config {
|
| 135 |
+
batch_size: 4
|
| 136 |
+
data_augmentation_options {
|
| 137 |
+
random_horizontal_flip {
|
| 138 |
+
}
|
| 139 |
+
}
|
| 140 |
+
data_augmentation_options {
|
| 141 |
+
random_crop_image {
|
| 142 |
+
min_object_covered: 0.0
|
| 143 |
+
min_aspect_ratio: 0.75
|
| 144 |
+
max_aspect_ratio: 3.0
|
| 145 |
+
min_area: 0.75
|
| 146 |
+
max_area: 1.0
|
| 147 |
+
overlap_thresh: 0.0
|
| 148 |
+
}
|
| 149 |
+
}
|
| 150 |
+
sync_replicas: true
|
| 151 |
+
optimizer {
|
| 152 |
+
momentum_optimizer {
|
| 153 |
+
learning_rate {
|
| 154 |
+
cosine_decay_learning_rate {
|
| 155 |
+
learning_rate_base: 0.08
|
| 156 |
+
total_steps: 50000
|
| 157 |
+
warmup_learning_rate: 0.026666
|
| 158 |
+
warmup_steps: 1000
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
momentum_optimizer_value: 0.9
|
| 162 |
+
}
|
| 163 |
+
use_moving_average: false
|
| 164 |
+
}
|
| 165 |
+
fine_tune_checkpoint: "Tensorflow/workspace/pre-trained-models/ssd_mobilenet_v2_fpnlite_320x320_coco17_tpu-8/checkpoint/ckpt-0"
|
| 166 |
+
num_steps: 50000
|
| 167 |
+
startup_delay_steps: 0.0
|
| 168 |
+
replicas_to_aggregate: 8
|
| 169 |
+
max_number_of_boxes: 100
|
| 170 |
+
unpad_groundtruth_tensors: false
|
| 171 |
+
fine_tune_checkpoint_type: "detection"
|
| 172 |
+
fine_tune_checkpoint_version: V2
|
| 173 |
+
}
|
| 174 |
+
train_input_reader {
|
| 175 |
+
label_map_path: "Tensorflow/workspace/annotations/label_map.pbtxt"
|
| 176 |
+
tf_record_input_reader {
|
| 177 |
+
input_path: "Tensorflow/workspace/annotations/train.record"
|
| 178 |
+
}
|
| 179 |
+
}
|
| 180 |
+
eval_config {
|
| 181 |
+
metrics_set: "coco_detection_metrics"
|
| 182 |
+
use_moving_averages: false
|
| 183 |
+
}
|
| 184 |
+
eval_input_reader {
|
| 185 |
+
label_map_path: "Tensorflow/workspace/annotations/label_map.pbtxt"
|
| 186 |
+
shuffle: false
|
| 187 |
+
num_epochs: 1
|
| 188 |
+
tf_record_input_reader {
|
| 189 |
+
input_path: "Tensorflow/workspace/annotations/test.record"
|
| 190 |
+
}
|
| 191 |
+
}
|
eported_models/ssd_mobilnet_numberplate_region_detection/checkpoint/checkpoint
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
model_checkpoint_path: "ckpt-0"
|
| 2 |
+
all_model_checkpoint_paths: "ckpt-0"
|
| 3 |
+
all_model_checkpoint_timestamps: 1656053463.9657378
|
| 4 |
+
last_preserved_timestamp: 1656053462.6085548
|
eported_models/ssd_mobilnet_numberplate_region_detection/checkpoint/ckpt-0.data-00000-of-00001
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d1acb8bad133127a3eefd272141b4ff0d26f91425d17b0696afe1cff41ff5596
|
| 3 |
+
size 10479347
|
eported_models/ssd_mobilnet_numberplate_region_detection/checkpoint/ckpt-0.index
ADDED
|
Binary file (26.2 kB). View file
|
|
|
eported_models/ssd_mobilnet_numberplate_region_detection/label_map.pbtxt
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
item {
|
| 2 |
+
name:'np'
|
| 3 |
+
id:1
|
| 4 |
+
}
|
eported_models/ssd_mobilnet_numberplate_region_detection/pipeline.config
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
model {
|
| 2 |
+
ssd {
|
| 3 |
+
num_classes: 1
|
| 4 |
+
image_resizer {
|
| 5 |
+
fixed_shape_resizer {
|
| 6 |
+
height: 320
|
| 7 |
+
width: 320
|
| 8 |
+
}
|
| 9 |
+
}
|
| 10 |
+
feature_extractor {
|
| 11 |
+
type: "ssd_mobilenet_v2_fpn_keras"
|
| 12 |
+
depth_multiplier: 1.0
|
| 13 |
+
min_depth: 16
|
| 14 |
+
conv_hyperparams {
|
| 15 |
+
regularizer {
|
| 16 |
+
l2_regularizer {
|
| 17 |
+
weight: 4e-05
|
| 18 |
+
}
|
| 19 |
+
}
|
| 20 |
+
initializer {
|
| 21 |
+
random_normal_initializer {
|
| 22 |
+
mean: 0.0
|
| 23 |
+
stddev: 0.01
|
| 24 |
+
}
|
| 25 |
+
}
|
| 26 |
+
activation: RELU_6
|
| 27 |
+
batch_norm {
|
| 28 |
+
decay: 0.997
|
| 29 |
+
scale: true
|
| 30 |
+
epsilon: 0.001
|
| 31 |
+
}
|
| 32 |
+
}
|
| 33 |
+
use_depthwise: true
|
| 34 |
+
override_base_feature_extractor_hyperparams: true
|
| 35 |
+
fpn {
|
| 36 |
+
min_level: 3
|
| 37 |
+
max_level: 7
|
| 38 |
+
additional_layer_depth: 128
|
| 39 |
+
}
|
| 40 |
+
}
|
| 41 |
+
box_coder {
|
| 42 |
+
faster_rcnn_box_coder {
|
| 43 |
+
y_scale: 10.0
|
| 44 |
+
x_scale: 10.0
|
| 45 |
+
height_scale: 5.0
|
| 46 |
+
width_scale: 5.0
|
| 47 |
+
}
|
| 48 |
+
}
|
| 49 |
+
matcher {
|
| 50 |
+
argmax_matcher {
|
| 51 |
+
matched_threshold: 0.5
|
| 52 |
+
unmatched_threshold: 0.5
|
| 53 |
+
ignore_thresholds: false
|
| 54 |
+
negatives_lower_than_unmatched: true
|
| 55 |
+
force_match_for_each_row: true
|
| 56 |
+
use_matmul_gather: true
|
| 57 |
+
}
|
| 58 |
+
}
|
| 59 |
+
similarity_calculator {
|
| 60 |
+
iou_similarity {
|
| 61 |
+
}
|
| 62 |
+
}
|
| 63 |
+
box_predictor {
|
| 64 |
+
weight_shared_convolutional_box_predictor {
|
| 65 |
+
conv_hyperparams {
|
| 66 |
+
regularizer {
|
| 67 |
+
l2_regularizer {
|
| 68 |
+
weight: 4e-05
|
| 69 |
+
}
|
| 70 |
+
}
|
| 71 |
+
initializer {
|
| 72 |
+
random_normal_initializer {
|
| 73 |
+
mean: 0.0
|
| 74 |
+
stddev: 0.01
|
| 75 |
+
}
|
| 76 |
+
}
|
| 77 |
+
activation: RELU_6
|
| 78 |
+
batch_norm {
|
| 79 |
+
decay: 0.997
|
| 80 |
+
scale: true
|
| 81 |
+
epsilon: 0.001
|
| 82 |
+
}
|
| 83 |
+
}
|
| 84 |
+
depth: 128
|
| 85 |
+
num_layers_before_predictor: 4
|
| 86 |
+
kernel_size: 3
|
| 87 |
+
class_prediction_bias_init: -4.6
|
| 88 |
+
share_prediction_tower: true
|
| 89 |
+
use_depthwise: true
|
| 90 |
+
}
|
| 91 |
+
}
|
| 92 |
+
anchor_generator {
|
| 93 |
+
multiscale_anchor_generator {
|
| 94 |
+
min_level: 3
|
| 95 |
+
max_level: 7
|
| 96 |
+
anchor_scale: 4.0
|
| 97 |
+
aspect_ratios: 1.0
|
| 98 |
+
aspect_ratios: 2.0
|
| 99 |
+
aspect_ratios: 0.5
|
| 100 |
+
scales_per_octave: 2
|
| 101 |
+
}
|
| 102 |
+
}
|
| 103 |
+
post_processing {
|
| 104 |
+
batch_non_max_suppression {
|
| 105 |
+
score_threshold: 1e-08
|
| 106 |
+
iou_threshold: 0.6
|
| 107 |
+
max_detections_per_class: 100
|
| 108 |
+
max_total_detections: 100
|
| 109 |
+
use_static_shapes: false
|
| 110 |
+
}
|
| 111 |
+
score_converter: SIGMOID
|
| 112 |
+
}
|
| 113 |
+
normalize_loss_by_num_matches: true
|
| 114 |
+
loss {
|
| 115 |
+
localization_loss {
|
| 116 |
+
weighted_smooth_l1 {
|
| 117 |
+
}
|
| 118 |
+
}
|
| 119 |
+
classification_loss {
|
| 120 |
+
weighted_sigmoid_focal {
|
| 121 |
+
gamma: 2.0
|
| 122 |
+
alpha: 0.25
|
| 123 |
+
}
|
| 124 |
+
}
|
| 125 |
+
classification_weight: 1.0
|
| 126 |
+
localization_weight: 1.0
|
| 127 |
+
}
|
| 128 |
+
encode_background_as_zeros: true
|
| 129 |
+
normalize_loc_loss_by_codesize: true
|
| 130 |
+
inplace_batchnorm_update: true
|
| 131 |
+
freeze_batchnorm: false
|
| 132 |
+
}
|
| 133 |
+
}
|
| 134 |
+
train_config {
|
| 135 |
+
batch_size: 4
|
| 136 |
+
data_augmentation_options {
|
| 137 |
+
random_horizontal_flip {
|
| 138 |
+
}
|
| 139 |
+
}
|
| 140 |
+
data_augmentation_options {
|
| 141 |
+
random_crop_image {
|
| 142 |
+
min_object_covered: 0.0
|
| 143 |
+
min_aspect_ratio: 0.75
|
| 144 |
+
max_aspect_ratio: 3.0
|
| 145 |
+
min_area: 0.75
|
| 146 |
+
max_area: 1.0
|
| 147 |
+
overlap_thresh: 0.0
|
| 148 |
+
}
|
| 149 |
+
}
|
| 150 |
+
sync_replicas: true
|
| 151 |
+
optimizer {
|
| 152 |
+
momentum_optimizer {
|
| 153 |
+
learning_rate {
|
| 154 |
+
cosine_decay_learning_rate {
|
| 155 |
+
learning_rate_base: 0.08
|
| 156 |
+
total_steps: 50000
|
| 157 |
+
warmup_learning_rate: 0.026666
|
| 158 |
+
warmup_steps: 1000
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
momentum_optimizer_value: 0.9
|
| 162 |
+
}
|
| 163 |
+
use_moving_average: false
|
| 164 |
+
}
|
| 165 |
+
fine_tune_checkpoint: "Tensorflow/workspace/pre-trained-models/ssd_mobilenet_v2_fpnlite_320x320_coco17_tpu-8/checkpoint/ckpt-0"
|
| 166 |
+
num_steps: 50000
|
| 167 |
+
startup_delay_steps: 0.0
|
| 168 |
+
replicas_to_aggregate: 8
|
| 169 |
+
max_number_of_boxes: 100
|
| 170 |
+
unpad_groundtruth_tensors: false
|
| 171 |
+
fine_tune_checkpoint_type: "detection"
|
| 172 |
+
fine_tune_checkpoint_version: V2
|
| 173 |
+
}
|
| 174 |
+
train_input_reader {
|
| 175 |
+
label_map_path: "Tensorflow/workspace/annotations/label_map.pbtxt"
|
| 176 |
+
tf_record_input_reader {
|
| 177 |
+
input_path: "Tensorflow/workspace/annotations/train.record"
|
| 178 |
+
}
|
| 179 |
+
}
|
| 180 |
+
eval_config {
|
| 181 |
+
metrics_set: "coco_detection_metrics"
|
| 182 |
+
use_moving_averages: false
|
| 183 |
+
}
|
| 184 |
+
eval_input_reader {
|
| 185 |
+
label_map_path: "Tensorflow/workspace/annotations/label_map.pbtxt"
|
| 186 |
+
shuffle: false
|
| 187 |
+
num_epochs: 1
|
| 188 |
+
tf_record_input_reader {
|
| 189 |
+
input_path: "Tensorflow/workspace/annotations/test.record"
|
| 190 |
+
}
|
| 191 |
+
}
|
eported_models/ssd_mobilnet_numberplate_region_detection/saved_model/saved_model.pb
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ccda1785409cb8a3b2e7c15d667d3acdc65a6c7e132c1b337e7e256bcb94794a
|
| 3 |
+
size 6790910
|
eported_models/ssd_mobilnet_numberplate_region_detection/saved_model/variables/variables.data-00000-of-00001
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b9b2231bd26467b5ea210a83a39d86d403686f11ed5651a3b90549ee9d78ac84
|
| 3 |
+
size 10590742
|
eported_models/ssd_mobilnet_numberplate_region_detection/saved_model/variables/variables.index
ADDED
|
Binary file (22.1 kB). View file
|
|
|
requirements.txt
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
tensorflow == 2.11.0
|
| 2 |
+
streamlit == 1.15.2
|
| 3 |
+
Pillow == 9.3.0
|
| 4 |
+
streamlit-image-select == 0.5.1
|
| 5 |
+
pandas == 1.5.2
|
| 6 |
+
numpy == 1.23.4
|
| 7 |
+
opencv-python == 4.6.0.66
|
test_images/desktop.ini
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[LocalizedFileNames]
|
| 2 |
+
6e52e238-927b-46e0-a8f1-5f77ef1ecf9f___3e7fd381-0ae5-4421-8a70-279ee0ec1c61_nissan-terrano-rear.jpg=@6e52e238-927b-46e0-a8f1-5f77ef1ecf9f___3e7fd381-0ae5-4421-8a70-279ee0ec1c61_nissan-terrano-rear,0
|
| 3 |
+
6ec9d264-9eab-4027-bdcc-6f71c842ee75___3e7fd381-0ae5-4421-8a70-279ee0ec1c61_846635891_1_1080x720_nissan-terrano-xl-d-thp-110-ps-2013-diesel-dehra-dun.jpg=@6ec9d264-9eab-4027-bdcc-6f71c842ee75___3e7fd381-0ae5-4421-8a70-279ee0ec1c61_846635891_1_1080x720_nissan-terrano-xl-d-thp-110-ps-2013-diesel-dehra-dun,0
|
| 4 |
+
7f7e27cc-930a-46cb-b3af-6e43da8b566d___3e7fd381-0ae5-4421-8a70-279ee0ec1c61_Nissan-Terrano-Petrol-Review-Images-Black-Front-Grille-720x480.jpg=@7f7e27cc-930a-46cb-b3af-6e43da8b566d___3e7fd381-0ae5-4421-8a70-279ee0ec1c61_Nissan-Terrano-Petrol-Review-Images-Black-Front-Grille-720x480,0
|
| 5 |
+
5231116f-7a07-4ce2-b437-d34b497e7969___3e7fd381-0ae5-4421-8a70-279ee0ec1c61_844329566_3_1080x720_nissan-terrano-xe-d-2014-diesel-.jpg=@5231116f-7a07-4ce2-b437-d34b497e7969___3e7fd381-0ae5-4421-8a70-279ee0ec1c61_844329566_3_1080x720_nissan-terrano-xe-d-2014-diesel-,0
|
| 6 |
+
AN2.jpg=@AN2,0
|
| 7 |
+
AN5.jpg=@AN5,0
|
| 8 |
+
AP15.jpg=@AP15,0
|
| 9 |
+
BR13.jpg=@BR13,0
|
| 10 |
+
car-wbs-HR26CH3604_00000.jpg=@car-wbs-HR26CH3604_00000,0
|
| 11 |
+
car-wbs-KL20K7561_00000.jpg=@car-wbs-KL20K7561_00000,0
|
| 12 |
+
car-ybs-MH47N4570_00001.jpg=@car-ybs-MH47N4570_00001,0
|
| 13 |
+
GJ8.jpg=@GJ8,0
|
| 14 |
+
GJ9.jpg=@GJ9,0
|
| 15 |
+
JK19.jpg=@JK19,0
|
| 16 |
+
KA8.jpg=@KA8,0
|
| 17 |
+
video2_220.jpg=@video2_220,0
|
| 18 |
+
PB12.jpg=@PB12,0
|
| 19 |
+
PY2.jpg=@PY2,0
|
| 20 |
+
RJ5.jpg=@RJ5,0
|
| 21 |
+
SK8.jpg=@SK8,0
|
| 22 |
+
TR1.jpg=@TR1,0
|
| 23 |
+
UP1.jpg=@UP1,0
|
| 24 |
+
UP8.jpg=@UP8,0
|
test_images/test1.png
ADDED
|
test_images/test2.png
ADDED
|
test_images/test3.png
ADDED
|
test_images/test4.jpg
ADDED
|
test_images/test5.jpg
ADDED
|
test_images/test6.jpg
ADDED
|
test_images/test7.jpg
ADDED
|
test_images/test8.jpg
ADDED
|