remove unnecessary del/gc.collect, eliminate unnecessary constructs

pull/19/head
Konstantin Baierer 4 years ago
parent cb6bc17ce1
commit 60208a46f0

@ -336,11 +336,8 @@ class eynollah:
self.logger.info("Found %s columns (%s)", num_col, label_p_pred) self.logger.info("Found %s columns (%s)", num_col, label_p_pred)
session_col_classifier.close() session_col_classifier.close()
del model_num_classifier
del session_col_classifier
K.clear_session() K.clear_session()
gc.collect()
img_new, _ = self.calculate_width_height_by_columns(img, num_col, width_early, label_p_pred) img_new, _ = self.calculate_width_height_by_columns(img, num_col, width_early, label_p_pred)
@ -385,13 +382,7 @@ class eynollah:
self.logger.info("Found %s columns (%s)", num_col, label_p_pred) self.logger.info("Found %s columns (%s)", num_col, label_p_pred)
session_col_classifier.close() session_col_classifier.close()
del model_num_classifier
del session_col_classifier
del img_in
del img_1ch
del page_coord
K.clear_session() K.clear_session()
gc.collect()
if dpi < 298: if dpi < 298:
img_new, num_column_is_classified = self.calculate_width_height_by_columns(img, num_col, width_early, label_p_pred) img_new, num_column_is_classified = self.calculate_width_height_by_columns(img, num_col, width_early, label_p_pred)
@ -439,8 +430,6 @@ class eynollah:
self.scale_x = img_res.shape[1] / float(self.image_org.shape[1]) self.scale_x = img_res.shape[1] / float(self.image_org.shape[1])
del img_org
del img_res
def start_new_session_and_model(self, model_dir): def start_new_session_and_model(self, model_dir):
self.logger.debug("enter start_new_session_and_model (model_dir=%s)", model_dir) self.logger.debug("enter start_new_session_and_model (model_dir=%s)", model_dir)
@ -471,10 +460,6 @@ class eynollah:
prediction_true = resize_image(seg_color, img_h_page, img_w_page) prediction_true = resize_image(seg_color, img_h_page, img_w_page)
prediction_true = prediction_true.astype(np.uint8) prediction_true = prediction_true.astype(np.uint8)
del img
del seg_color
del label_p_pred
del seg
else: else:
if img.shape[0] < img_height_model: if img.shape[0] < img_height_model:
@ -571,12 +556,6 @@ class eynollah:
prediction_true[index_y_d + margin : index_y_u - margin, index_x_d + margin : index_x_u - margin, :] = seg_color prediction_true[index_y_d + margin : index_y_u - margin, index_x_d + margin : index_x_u - margin, :] = seg_color
prediction_true = prediction_true.astype(np.uint8) prediction_true = prediction_true.astype(np.uint8)
del img
del mask_true
del seg_color
del seg
del img_patch
gc.collect()
return prediction_true return prediction_true
def early_page_for_num_of_column_classification(self): def early_page_for_num_of_column_classification(self):
@ -598,22 +577,7 @@ class eynollah:
box = [x, y, w, h] box = [x, y, w, h]
croped_page, page_coord = crop_image_inside_box(box, img) croped_page, page_coord = crop_image_inside_box(box, img)
session_page.close() session_page.close()
del model_page
del session_page
del contours
del thresh
del img
del cnt_size
del cnt
del box
del x
del y
del w
del h
del imgray
del img_page_prediction
gc.collect()
self.logger.debug("exit early_page_for_num_of_column_classification") self.logger.debug("exit early_page_for_num_of_column_classification")
return croped_page, page_coord return croped_page, page_coord
@ -652,15 +616,8 @@ class eynollah:
self.cont_page.append(np.array([[page_coord[2], page_coord[0]], [page_coord[3], page_coord[0]], [page_coord[3], page_coord[1]], [page_coord[2], page_coord[1]]])) self.cont_page.append(np.array([[page_coord[2], page_coord[0]], [page_coord[3], page_coord[0]], [page_coord[3], page_coord[1]], [page_coord[2], page_coord[1]]]))
session_page.close() session_page.close()
del model_page
del session_page
del contours
del thresh
del img
del imgray
K.clear_session() K.clear_session()
gc.collect()
self.logger.debug("exit extract_page") self.logger.debug("exit extract_page")
return croped_page, page_coord return croped_page, page_coord
@ -757,10 +714,6 @@ class eynollah:
prediction_regions = resize_image(prediction_regions, img_height_h, img_width_h) prediction_regions = resize_image(prediction_regions, img_height_h, img_width_h)
session_region.close() session_region.close()
del model_region
del session_region
del img
gc.collect()
self.logger.debug("exit extract_text_regions") self.logger.debug("exit extract_text_regions")
return prediction_regions, prediction_regions2 return prediction_regions, prediction_regions2
@ -1069,12 +1022,7 @@ class eynollah:
##plt.show() ##plt.show()
session_textline.close() session_textline.close()
del model_textline
del session_textline
del img
del img_org
gc.collect()
return prediction_textline[:, :, 0], prediction_textline_longshot_true_size[:, :, 0] return prediction_textline[:, :, 0], prediction_textline_longshot_true_size[:, :, 0]
def do_work_of_slopes(self, q, poly, box_sub, boxes_per_process, textline_mask_tot, contours_per_process): def do_work_of_slopes(self, q, poly, box_sub, boxes_per_process, textline_mask_tot, contours_per_process):
@ -1389,47 +1337,20 @@ class eynollah:
model_region, session_region = self.start_new_session_and_model(self.model_region_dir_p_ens) model_region, session_region = self.start_new_session_and_model(self.model_region_dir_p_ens)
gaussian_filter=False
binary=False
ratio_y=1.3 ratio_y=1.3
ratio_x=1 ratio_x=1
median_blur=False
img = resize_image(img_org, int(img_org.shape[0]*ratio_y), int(img_org.shape[1]*ratio_x)) img = resize_image(img_org, int(img_org.shape[0]*ratio_y), int(img_org.shape[1]*ratio_x))
if binary:
img = otsu_copy_binary(img)
img = img.astype(np.uint16)
if median_blur:
img = cv2.medianBlur(img,5)
if gaussian_filter:
img= cv2.GaussianBlur(img,(5,5),0)
img = img.astype(np.uint16)
prediction_regions_org_y = self.do_prediction(True, img, model_region) prediction_regions_org_y = self.do_prediction(True, img, model_region)
prediction_regions_org_y = resize_image(prediction_regions_org_y, img_height_h, img_width_h ) prediction_regions_org_y = resize_image(prediction_regions_org_y, img_height_h, img_width_h )
#plt.imshow(prediction_regions_org_y[:,:,0]) #plt.imshow(prediction_regions_org_y[:,:,0])
#plt.show() #plt.show()
prediction_regions_org_y=prediction_regions_org_y[:,:,0] prediction_regions_org_y = prediction_regions_org_y[:,:,0]
mask_zeros_y=(prediction_regions_org_y[:,:]==0)*1 mask_zeros_y = (prediction_regions_org_y[:,:]==0)*1
if is_image_enhanced:
ratio_x = 1.2
else:
ratio_x = 1
ratio_y = 1
median_blur=False
img = resize_image(img_org, int(img_org.shape[0]*ratio_y), int(img_org.shape[1]*ratio_x))
if binary: img = resize_image(img_org, int(img_org.shape[0]), int(img_org.shape[1]*(1.2 if is_image_enhanced else 1)))
img = otsu_copy_binary(img)#self.otsu_copy(img)
img = img.astype(np.uint16)
if median_blur:
img = cv2.medianBlur(img, 5)
if gaussian_filter:
img = cv2.GaussianBlur(img, (5,5 ), 0)
img = img.astype(np.uint16)
prediction_regions_org = self.do_prediction(True, img, model_region) prediction_regions_org = self.do_prediction(True, img, model_region)
prediction_regions_org = resize_image(prediction_regions_org, img_height_h, img_width_h ) prediction_regions_org = resize_image(prediction_regions_org, img_height_h, img_width_h )
@ -1437,36 +1358,12 @@ class eynollah:
##plt.imshow(prediction_regions_org[:,:,0]) ##plt.imshow(prediction_regions_org[:,:,0])
##plt.show() ##plt.show()
prediction_regions_org=prediction_regions_org[:,:,0] prediction_regions_org=prediction_regions_org[:,:,0]
prediction_regions_org[(prediction_regions_org[:,:]==1) & (mask_zeros_y[:,:]==1)]=0 prediction_regions_org[(prediction_regions_org[:,:]==1) & (mask_zeros_y[:,:]==1)]=0
session_region.close() session_region.close()
del model_region
del session_region
gc.collect()
model_region, session_region = self.start_new_session_and_model(self.model_region_dir_p2) model_region, session_region = self.start_new_session_and_model(self.model_region_dir_p2)
img = resize_image(img_org, int(img_org.shape[0]), int(img_org.shape[1]))
gaussian_filter=False prediction_regions_org2 = self.do_prediction(True, img, model_region, 0.2)
binary=False
ratio_x=1
ratio_y=1
median_blur=False
img= resize_image(img_org, int(img_org.shape[0]*ratio_y), int(img_org.shape[1]*ratio_x))
if binary:
img = otsu_copy_binary(img)#self.otsu_copy(img)
img = img.astype(np.uint16)
if median_blur:
img=cv2.medianBlur(img,5)
if gaussian_filter:
img= cv2.GaussianBlur(img,(5,5),0)
img = img.astype(np.uint16)
marginal_patch=0.2
prediction_regions_org2=self.do_prediction(True, img, model_region, marginal_patch)
prediction_regions_org2=resize_image(prediction_regions_org2, img_height_h, img_width_h ) prediction_regions_org2=resize_image(prediction_regions_org2, img_height_h, img_width_h )
#plt.imshow(prediction_regions_org2[:,:,0]) #plt.imshow(prediction_regions_org2[:,:,0])
@ -1474,22 +1371,13 @@ class eynollah:
##prediction_regions_org=prediction_regions_org[:,:,0] ##prediction_regions_org=prediction_regions_org[:,:,0]
session_region.close() session_region.close()
del model_region
del session_region
gc.collect()
mask_zeros2=(prediction_regions_org2[:,:,0]==0)*1
mask_lines2=(prediction_regions_org2[:,:,0]==3)*1
text_sume_early=( (prediction_regions_org[:,:]==1)*1 ).sum()
prediction_regions_org_copy=np.copy(prediction_regions_org)
prediction_regions_org_copy[(prediction_regions_org_copy[:,:]==1) & (mask_zeros2[:,:]==1)]=0
text_sume_second=( (prediction_regions_org_copy[:,:]==1)*1 ).sum() mask_zeros2 = (prediction_regions_org2[:,:,0] == 0)
mask_lines2 = (prediction_regions_org2[:,:,0] == 3)
text_sume_early = (prediction_regions_org[:,:] == 1).sum()
prediction_regions_org_copy = np.copy(prediction_regions_org)
prediction_regions_org_copy[(prediction_regions_org_copy[:,:]==1) & (mask_zeros2[:,:]==1)] = 0
text_sume_second = ((prediction_regions_org_copy[:,:]==1)*1).sum()
rate_two_models=text_sume_second/float(text_sume_early)*100 rate_two_models=text_sume_second/float(text_sume_early)*100
@ -1501,9 +1389,6 @@ class eynollah:
prediction_regions_org[(mask_lines2[:,:]==1) & (prediction_regions_org[:,:]==0)]=3 prediction_regions_org[(mask_lines2[:,:]==1) & (prediction_regions_org[:,:]==0)]=3
del mask_lines2
del mask_zeros2
del prediction_regions_org2
mask_lines_only=(prediction_regions_org[:,:]==3)*1 mask_lines_only=(prediction_regions_org[:,:]==3)*1
@ -1528,17 +1413,7 @@ class eynollah:
text_regions_p_true=cv2.fillPoly(text_regions_p_true,pts=polygons_of_only_texts, color=(1,1,1)) text_regions_p_true=cv2.fillPoly(text_regions_p_true,pts=polygons_of_only_texts, color=(1,1,1))
del polygons_of_only_texts
del polygons_of_only_images
del polygons_of_only_lines
del mask_images_only
del prediction_regions_org
del img
del mask_zeros_y
del prediction_regions_org_y
del img_org
gc.collect()
K.clear_session() K.clear_session()
return text_regions_p_true return text_regions_p_true
@ -1890,7 +1765,6 @@ class eynollah:
textline_mask_tot_ea, _ = self.textline_contours(image_page, True, scaler_h_textline, scaler_w_textline) textline_mask_tot_ea, _ = self.textline_contours(image_page, True, scaler_h_textline, scaler_w_textline)
K.clear_session() K.clear_session()
gc.collect()
#print(np.unique(textline_mask_tot_ea[:, :]), "textline") #print(np.unique(textline_mask_tot_ea[:, :]), "textline")
# plt.imshow(textline_mask_tot_ea) # plt.imshow(textline_mask_tot_ea)
# plt.show() # plt.show()
@ -1954,7 +1828,6 @@ class eynollah:
if np.abs(slope_deskew) >= SLOPE_THRESHOLD: if np.abs(slope_deskew) >= SLOPE_THRESHOLD:
num_col_d, peaks_neg_fin_d, matrix_of_lines_ch_d, spliter_y_new_d, seperators_closeup_n_d = find_number_of_columns_in_document(np.repeat(text_regions_p_1_n[:, :, np.newaxis], 3, axis=2), num_col_classifier, pixel_lines) num_col_d, peaks_neg_fin_d, matrix_of_lines_ch_d, spliter_y_new_d, seperators_closeup_n_d = find_number_of_columns_in_document(np.repeat(text_regions_p_1_n[:, :, np.newaxis], 3, axis=2), num_col_classifier, pixel_lines)
K.clear_session() K.clear_session()
gc.collect()
self.logger.info("num_col_classifier: %s", num_col_classifier) self.logger.info("num_col_classifier: %s", num_col_classifier)
@ -2002,7 +1875,6 @@ class eynollah:
text_regions_p[:, :][text_regions_p[:, :] == 4] = 8 text_regions_p[:, :][text_regions_p[:, :] == 4] = 8
K.clear_session() K.clear_session()
# gc.collect()
image_page = image_page.astype(np.uint8) image_page = image_page.astype(np.uint8)
# print(type(image_page)) # print(type(image_page))
@ -2012,7 +1884,6 @@ class eynollah:
regions_fully_only_drop = put_drop_out_from_only_drop_model(regions_fully_only_drop, text_regions_p) regions_fully_only_drop = put_drop_out_from_only_drop_model(regions_fully_only_drop, text_regions_p)
regions_fully[:, :, 0][regions_fully_only_drop[:, :, 0] == 4] = 4 regions_fully[:, :, 0][regions_fully_only_drop[:, :, 0] == 4] = 4
K.clear_session() K.clear_session()
gc.collect()
# plt.imshow(regions_fully[:,:,0]) # plt.imshow(regions_fully[:,:,0])
# plt.show() # plt.show()
@ -2023,7 +1894,6 @@ class eynollah:
# plt.show() # plt.show()
K.clear_session() K.clear_session()
gc.collect()
regions_fully_np, _ = self.extract_text_regions(image_page, False, cols=num_col_classifier) regions_fully_np, _ = self.extract_text_regions(image_page, False, cols=num_col_classifier)
# plt.imshow(regions_fully_np[:,:,0]) # plt.imshow(regions_fully_np[:,:,0])
@ -2038,7 +1908,6 @@ class eynollah:
# plt.show() # plt.show()
K.clear_session() K.clear_session()
gc.collect()
# plt.imshow(regions_fully[:,:,0]) # plt.imshow(regions_fully[:,:,0])
# plt.show() # plt.show()
@ -2069,7 +1938,6 @@ class eynollah:
regions_without_seperators = (text_regions_p[:, :] == 1) * 1 # ( (text_regions_p[:,:]==1) | (text_regions_p[:,:]==2) )*1 #self.return_regions_without_seperators_new(text_regions_p[:,:,0],img_only_regions) regions_without_seperators = (text_regions_p[:, :] == 1) * 1 # ( (text_regions_p[:,:]==1) | (text_regions_p[:,:]==2) )*1 #self.return_regions_without_seperators_new(text_regions_p[:,:,0],img_only_regions)
K.clear_session() K.clear_session()
gc.collect()
img_revised_tab = np.copy(text_regions_p[:, :]) img_revised_tab = np.copy(text_regions_p[:, :])
polygons_of_images = return_contours_of_interested_region(img_revised_tab, 5) polygons_of_images = return_contours_of_interested_region(img_revised_tab, 5)
self.logger.debug('exit run_boxes_full_layout') self.logger.debug('exit run_boxes_full_layout')
@ -2253,7 +2121,6 @@ class eynollah:
index_of_vertical_text_contours = np.array(range(len(slopes)))[(abs(np.array(slopes)) > 60)] index_of_vertical_text_contours = np.array(range(len(slopes)))[(abs(np.array(slopes)) > 60)]
K.clear_session() K.clear_session()
gc.collect()
# print(index_by_text_par_con,'index_by_text_par_con') # print(index_by_text_par_con,'index_by_text_par_con')
if self.full_layout: if self.full_layout:
@ -2269,7 +2136,6 @@ class eynollah:
self.plotter.save_plot_of_layout_all(text_regions_p, image_page) self.plotter.save_plot_of_layout_all(text_regions_p, image_page)
K.clear_session() K.clear_session()
gc.collect()
polygons_of_tabels = [] polygons_of_tabels = []
pixel_img = 4 pixel_img = 4

Loading…
Cancel
Save