mirror of
				https://github.com/qurator-spk/eynollah.git
				synced 2025-10-27 15:54:13 +01:00 
			
		
		
		
	let to add dataset abbrevation to extracted textline images and text
This commit is contained in:
		
							parent
							
								
									8c8fa461bb
								
							
						
					
					
						commit
						5d447abcc4
					
				
					 2 changed files with 71 additions and 37 deletions
				
			
		|  | @ -342,7 +342,6 @@ def layout(image, out, overwrite, dir_in, model, save_images, save_layout, save_ | |||
|     "-m", | ||||
|     help="directory of models", | ||||
|     type=click.Path(exists=True, file_okay=False), | ||||
|     required=True, | ||||
| ) | ||||
| @click.option( | ||||
|     "--tr_ocr", | ||||
|  | @ -379,6 +378,11 @@ def layout(image, out, overwrite, dir_in, model, save_images, save_layout, save_ | |||
|     "-bs", | ||||
|     help="number of inference batch size. Default b_s for trocr and cnn_rnn models are 2 and 8 respectively", | ||||
| ) | ||||
| @click.option( | ||||
|     "--dataset_abbrevation", | ||||
|     "-ds_pref", | ||||
|     help="in the case of extracting textline and text from a xml GT file user can add an abbrevation of dataset name to generated dataset", | ||||
| ) | ||||
| @click.option( | ||||
|     "--log_level", | ||||
|     "-l", | ||||
|  | @ -386,10 +390,18 @@ def layout(image, out, overwrite, dir_in, model, save_images, save_layout, save_ | |||
|     help="Override log level globally to this", | ||||
| ) | ||||
| 
 | ||||
| def ocr(dir_in, dir_in_bin, out, dir_xmls, dir_out_image_text, model, tr_ocr, export_textline_images_and_text, do_not_mask_with_textline_contour, draw_texts_on_image, prediction_with_both_of_rgb_and_bin, batch_size, log_level): | ||||
| def ocr(dir_in, dir_in_bin, out, dir_xmls, dir_out_image_text, model, tr_ocr, export_textline_images_and_text, do_not_mask_with_textline_contour, draw_texts_on_image, prediction_with_both_of_rgb_and_bin, batch_size, dataset_abbrevation, log_level): | ||||
|     initLogging() | ||||
|     if log_level: | ||||
|         getLogger('eynollah').setLevel(getLevelName(log_level)) | ||||
|     assert not export_textline_images_and_text or not tr_ocr, "Exporting textline and text  -etit can not be set alongside transformer ocr -tr_ocr" | ||||
|     assert not export_textline_images_and_text or not model, "Exporting textline and text  -etit can not be set alongside model -m" | ||||
|     assert not export_textline_images_and_text or not batch_size, "Exporting textline and text  -etit can not be set alongside batch size -bs" | ||||
|     assert not export_textline_images_and_text or not dir_in_bin, "Exporting textline and text  -etit can not be set alongside directory of bin images -dib" | ||||
|     assert not export_textline_images_and_text or not dir_out_image_text, "Exporting textline and text  -etit can not be set alongside directory of images with predicted text -doit" | ||||
|     assert not export_textline_images_and_text or not draw_texts_on_image, "Exporting textline and text  -etit can not be set alongside draw text on image -dtoi" | ||||
|     assert not export_textline_images_and_text or not prediction_with_both_of_rgb_and_bin, "Exporting textline and text  -etit can not be set alongside prediction with both rgb and bin -brb" | ||||
|      | ||||
|     eynollah_ocr = Eynollah_ocr( | ||||
|         dir_xmls=dir_xmls, | ||||
|         dir_out_image_text=dir_out_image_text, | ||||
|  | @ -403,6 +415,7 @@ def ocr(dir_in, dir_in_bin, out, dir_xmls, dir_out_image_text, model, tr_ocr, ex | |||
|         draw_texts_on_image=draw_texts_on_image, | ||||
|         prediction_with_both_of_rgb_and_bin=prediction_with_both_of_rgb_and_bin, | ||||
|         batch_size=batch_size, | ||||
|         pref_of_dataset=dataset_abbrevation, | ||||
|     ) | ||||
|     eynollah_ocr.run() | ||||
| 
 | ||||
|  |  | |||
|  | @ -4877,6 +4877,7 @@ class Eynollah_ocr: | |||
|         do_not_mask_with_textline_contour=False, | ||||
|         draw_texts_on_image=False, | ||||
|         prediction_with_both_of_rgb_and_bin=False, | ||||
|         pref_of_dataset = None, | ||||
|         logger=None, | ||||
|     ): | ||||
|         self.dir_in = dir_in | ||||
|  | @ -4890,6 +4891,8 @@ class Eynollah_ocr: | |||
|         self.draw_texts_on_image = draw_texts_on_image | ||||
|         self.dir_out_image_text = dir_out_image_text | ||||
|         self.prediction_with_both_of_rgb_and_bin = prediction_with_both_of_rgb_and_bin | ||||
|         self.pref_of_dataset = pref_of_dataset | ||||
|         if not export_textline_images_and_text: | ||||
|             if tr_ocr: | ||||
|                 self.processor = TrOCRProcessor.from_pretrained("microsoft/trocr-base-printed") | ||||
|                 self.device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") | ||||
|  | @ -5365,10 +5368,28 @@ class Eynollah_ocr: | |||
|                                             if cheild_text.tag.endswith("Unicode"): | ||||
|                                                 textline_text = cheild_text.text | ||||
|                                                 if textline_text: | ||||
|                                                     if self.do_not_mask_with_textline_contour: | ||||
|                                                         if self.pref_of_dataset: | ||||
|                                                             with open(os.path.join(self.dir_out, file_name+'_line_'+str(indexer_textlines)+'_'+self.pref_of_dataset+'.txt'), 'w') as text_file: | ||||
|                                                                 text_file.write(textline_text) | ||||
| 
 | ||||
|                                                             cv2.imwrite(os.path.join(self.dir_out, file_name+'_line_'+str(indexer_textlines)+'_'+self.pref_of_dataset+'.png'), img_crop ) | ||||
|                                                         else: | ||||
|                                                             with open(os.path.join(self.dir_out, file_name+'_line_'+str(indexer_textlines)+'.txt'), 'w') as text_file: | ||||
|                                                                 text_file.write(textline_text) | ||||
| 
 | ||||
|                                                             cv2.imwrite(os.path.join(self.dir_out, file_name+'_line_'+str(indexer_textlines)+'.png'), img_crop ) | ||||
|                                                     else: | ||||
|                                                         if self.pref_of_dataset: | ||||
|                                                             with open(os.path.join(self.dir_out, file_name+'_line_'+str(indexer_textlines)+'_'+self.pref_of_dataset+'_masked.txt'), 'w') as text_file: | ||||
|                                                                 text_file.write(textline_text) | ||||
| 
 | ||||
|                                                             cv2.imwrite(os.path.join(self.dir_out, file_name+'_line_'+str(indexer_textlines)+'_'+self.pref_of_dataset+'_masked.png'), img_crop ) | ||||
|                                                         else: | ||||
|                                                             with open(os.path.join(self.dir_out, file_name+'_line_'+str(indexer_textlines)+'_masked.txt'), 'w') as text_file: | ||||
|                                                                 text_file.write(textline_text) | ||||
| 
 | ||||
|                                                             cv2.imwrite(os.path.join(self.dir_out, file_name+'_line_'+str(indexer_textlines)+'_masked.png'), img_crop ) | ||||
|                                                          | ||||
|                                                 indexer_textlines+=1 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue