Marthee commited on
Commit
df2ca7f
·
verified ·
1 Parent(s): 50d34b9

Update doors_fasterrcnn.py

Browse files
Files changed (1) hide show
  1. doors_fasterrcnn.py +20 -59
doors_fasterrcnn.py CHANGED
@@ -100,21 +100,18 @@ def calculate_midpoint(p1, p2):
100
  xm = int((x1 + x2) / 2)
101
  ym = int((y1 + y2) / 2)
102
  return (xm, ym)
103
- def get_door_info(doors_info, doors_info_double):
 
104
  width_pixels = []
105
  lines = []
106
  sanda = []
107
  line_midpoint = []
108
- #doubleD_bbox = []
109
- #doubleD_width = []
110
  singles = 0
111
- doubles = 0
112
  door_type = []
113
  for door_inf in doors_info:
114
  xmin, ymin, xmax, ymax = door_inf[0]
115
- #horz_bottom #double_bottom
116
- if door_inf[1] == 2 or door_inf[1] == 1:
117
- #if door_inf[1] == 2:
118
  #for drawing
119
  point_st = (int(xmin), int(ymax) + 5)
120
  point_end = (int(xmax),int(ymax) + 5)
@@ -128,16 +125,9 @@ def get_door_info(doors_info, doors_info_double):
128
  #for calculation
129
  width = distance((xmin,ymax), (xmax,ymax))
130
  width_pixels.append(width)
131
- if door_inf[1] == 2:
132
- singles +=1
133
- door_type.append(0)
134
- if door_inf[1] == 1:
135
- doubles +=1
136
- door_type.append(1)
137
-
138
 
139
- #horz_upper #double_upper
140
- if door_inf[1] == 3 or door_inf[1] == 7:
141
  #for drawing
142
  point_st = (int(xmin),int(ymin) -5)
143
  point_end = (int(xmax),int(ymin) - 5)
@@ -150,15 +140,9 @@ def get_door_info(doors_info, doors_info_double):
150
  #for calculation
151
  width = distance((xmin,ymin), (xmax,ymin))
152
  width_pixels.append(width)
153
- if door_inf[1] == 3:
154
- singles +=1
155
- door_type.append(0)
156
- if door_inf[1] == 7:
157
- doubles +=1
158
- door_type.append(1)
159
-
160
- #vert_right #double_right
161
- if door_inf[1] == 5 or door_inf[1] == 8:
162
  #for drawing
163
  point_st = (int(xmax) + 5,int(ymin))
164
  point_end = (int(xmax) + 5,int(ymax))
@@ -171,15 +155,8 @@ def get_door_info(doors_info, doors_info_double):
171
  #for calculation
172
  width = distance((xmax,ymin), (xmax,ymax))
173
  width_pixels.append(width)
174
- if door_inf[1] == 5:
175
- singles +=1
176
- door_type.append(0)
177
- if door_inf[1] == 8:
178
- doubles +=1
179
- door_type.append(1)
180
-
181
- #vert_left #double_left
182
- if door_inf[1] == 6 or door_inf[1] == 4:
183
  #for drawing
184
  point_st = (int(xmin) -5,int(ymin))
185
  point_end = (int(xmin) -5,int(ymax))
@@ -192,29 +169,11 @@ def get_door_info(doors_info, doors_info_double):
192
  #for calculation
193
  width = distance((xmin,ymin), (xmin,ymax))
194
  width_pixels.append(width)
195
- if door_inf[1] ==6:
196
- singles +=1
197
- door_type.append(0)
198
- if door_inf[1] == 4:
199
- doubles +=1
200
- door_type.append(1)
201
-
202
 
203
- #double door
204
- #if door_inf[1] == 1:
205
- # doubleD_bbox.append([int(xmin), int(ymin), int(xmax), int(ymax)])
206
- #bbox_width = xmax - xmin
207
- #bbox_height = ymax - ymin
208
- #if bbox_width > bbox_height:
209
- # door_width = bbox_width
210
- #doubleD_width.append(door_width)
211
- #else:
212
- # door_width = bbox_height
213
- #doubleD_width.append(door_width)
214
-
215
- return width_pixels, lines, sanda, line_midpoint, singles, doubles, door_type
216
-
217
- def get_door_info_double(doors_info_double, width_pixels, lines, sanda, line_midpoint, doubles, door_type):
218
  for door_inf in doors_info_double:
219
  xmin, ymin, xmax, ymax = door_inf[0]
220
 
@@ -287,7 +246,7 @@ def get_door_info_double(doors_info_double, width_pixels, lines, sanda, line_mid
287
  doubles +=1
288
  door_type.append(1)
289
 
290
- return width_pixels, lines, sanda, line_midpoint, singles, doubles, door_type
291
 
292
  def pxl2meter(width_pixels, ratio):
293
  real_width = []
@@ -464,8 +423,10 @@ def main_run(img_pillow,pdf_fullpath, weights_path, weights_path2, pdf_name,pdfp
464
  doors_info_double = ev_model(img_pillow, model2, device, 0.8)
465
 
466
 
467
- #width_pixels, lines, sanda, line_midpoint, doubleD_bbox, doubleD_width = get_door_info(doors_info)
468
- width_pixels, lines, sanda, line_midpoint, single_count, double_count, door_type = get_door_info(doors_info, doors_info_double)
 
 
469
  real_width = pxl2meter(width_pixels, ratio)
470
  #real_double = pxl2meter(doubleD_width, ratio)
471
  char_width = width_as_char(real_width)
 
100
  xm = int((x1 + x2) / 2)
101
  ym = int((y1 + y2) / 2)
102
  return (xm, ym)
103
+
104
+ def get_door_info(doors_info):
105
  width_pixels = []
106
  lines = []
107
  sanda = []
108
  line_midpoint = []
 
 
109
  singles = 0
 
110
  door_type = []
111
  for door_inf in doors_info:
112
  xmin, ymin, xmax, ymax = door_inf[0]
113
+ #horz_bottom
114
+ if door_inf[1] == 2:
 
115
  #for drawing
116
  point_st = (int(xmin), int(ymax) + 5)
117
  point_end = (int(xmax),int(ymax) + 5)
 
125
  #for calculation
126
  width = distance((xmin,ymax), (xmax,ymax))
127
  width_pixels.append(width)
 
 
 
 
 
 
 
128
 
129
+ #horz_upper
130
+ if door_inf[1] == 3:
131
  #for drawing
132
  point_st = (int(xmin),int(ymin) -5)
133
  point_end = (int(xmax),int(ymin) - 5)
 
140
  #for calculation
141
  width = distance((xmin,ymin), (xmax,ymin))
142
  width_pixels.append(width)
143
+
144
+ #vert_right
145
+ if door_inf[1] == 4:
 
 
 
 
 
 
146
  #for drawing
147
  point_st = (int(xmax) + 5,int(ymin))
148
  point_end = (int(xmax) + 5,int(ymax))
 
155
  #for calculation
156
  width = distance((xmax,ymin), (xmax,ymax))
157
  width_pixels.append(width)
158
+ #vert_left
159
+ if door_inf[1] == 5:
 
 
 
 
 
 
 
160
  #for drawing
161
  point_st = (int(xmin) -5,int(ymin))
162
  point_end = (int(xmin) -5,int(ymax))
 
169
  #for calculation
170
  width = distance((xmin,ymin), (xmin,ymax))
171
  width_pixels.append(width)
 
 
 
 
 
 
 
172
 
173
+ return width_pixels, lines, sanda, line_midpoint, singles, door_type
174
+
175
+ def get_door_info_double(doors_info_double, width_pixels, lines, sanda, line_midpoint, door_type):
176
+ doubles = 0
 
 
 
 
 
 
 
 
 
 
 
177
  for door_inf in doors_info_double:
178
  xmin, ymin, xmax, ymax = door_inf[0]
179
 
 
246
  doubles +=1
247
  door_type.append(1)
248
 
249
+ return width_pixels, lines, sanda, line_midpoint, doubles, door_type
250
 
251
  def pxl2meter(width_pixels, ratio):
252
  real_width = []
 
423
  doors_info_double = ev_model(img_pillow, model2, device, 0.8)
424
 
425
 
426
+ width_pixels, lines, sanda, line_midpoint, single_count, door_type = get_door_info(doors_info)
427
+
428
+ width_pixels, lines, sanda, line_midpoint, double_count, door_type = get_door_info(doors_info_double, width_pixels, lines, sanda, line_midpoint, door_type)
429
+
430
  real_width = pxl2meter(width_pixels, ratio)
431
  #real_double = pxl2meter(doubleD_width, ratio)
432
  char_width = width_as_char(real_width)