| 
									
										
										
										
											2021-03-10 14:14:21 +08:00
										 |  |  | # Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved. | 
					
						
							| 
									
										
										
										
											2021-03-08 14:15:47 +08:00
										 |  |  | # | 
					
						
							|  |  |  | # Licensed under the Apache License, Version 2.0 (the "License"); | 
					
						
							|  |  |  | # you may not use this file except in compliance with the License. | 
					
						
							|  |  |  | # You may obtain a copy of the License at | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #     http://www.apache.org/licenses/LICENSE-2.0 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Unless required by applicable law or agreed to in writing, software | 
					
						
							|  |  |  | # distributed under the License is distributed on an "AS IS" BASIS, | 
					
						
							|  |  |  | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
					
						
							|  |  |  | # See the License for the specific language governing permissions and | 
					
						
							|  |  |  | # limitations under the License. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from __future__ import absolute_import | 
					
						
							|  |  |  | from __future__ import division | 
					
						
							|  |  |  | from __future__ import print_function | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import os | 
					
						
							|  |  |  | import sys | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __dir__ = os.path.dirname(__file__) | 
					
						
							|  |  |  | sys.path.append(__dir__) | 
					
						
							|  |  |  | sys.path.append(os.path.join(__dir__, '..')) | 
					
						
							| 
									
										
										
										
											2021-04-11 16:40:46 +08:00
										 |  |  | from ppocr.utils.e2e_utils.pgnet_pp_utils import PGNet_PostProcess | 
					
						
							| 
									
										
										
										
											2021-03-08 14:15:47 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class PGPostProcess(object): | 
					
						
							|  |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2021-03-15 13:58:53 +08:00
										 |  |  |     The post process for PGNet. | 
					
						
							| 
									
										
										
										
											2021-03-08 14:15:47 +08:00
										 |  |  |     """
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-05 09:06:17 +00:00
										 |  |  |     def __init__(self, | 
					
						
							|  |  |  |                  character_dict_path, | 
					
						
							|  |  |  |                  valid_set, | 
					
						
							|  |  |  |                  score_thresh, | 
					
						
							|  |  |  |                  mode, | 
					
						
							|  |  |  |                  point_gather_mode=None, | 
					
						
							|  |  |  |                  **kwargs): | 
					
						
							| 
									
										
										
										
											2021-04-11 16:40:46 +08:00
										 |  |  |         self.character_dict_path = character_dict_path | 
					
						
							| 
									
										
										
										
											2021-03-15 13:58:53 +08:00
										 |  |  |         self.valid_set = valid_set | 
					
						
							| 
									
										
										
										
											2021-03-08 14:15:47 +08:00
										 |  |  |         self.score_thresh = score_thresh | 
					
						
							| 
									
										
										
										
											2021-04-11 16:40:46 +08:00
										 |  |  |         self.mode = mode | 
					
						
							| 
									
										
										
										
											2022-09-05 07:03:16 +00:00
										 |  |  |         self.point_gather_mode = point_gather_mode | 
					
						
							| 
									
										
										
										
											2021-03-08 14:15:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-09 16:04:02 +08:00
										 |  |  |         # c++ la-nms is faster, but only support python 3.5 | 
					
						
							|  |  |  |         self.is_python35 = False | 
					
						
							|  |  |  |         if sys.version_info.major == 3 and sys.version_info.minor == 5: | 
					
						
							|  |  |  |             self.is_python35 = True | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-08 14:15:47 +08:00
										 |  |  |     def __call__(self, outs_dict, shape_list): | 
					
						
							| 
									
										
										
										
											2022-08-30 05:58:39 +00:00
										 |  |  |         post = PGNet_PostProcess( | 
					
						
							|  |  |  |             self.character_dict_path, | 
					
						
							|  |  |  |             self.valid_set, | 
					
						
							|  |  |  |             self.score_thresh, | 
					
						
							|  |  |  |             outs_dict, | 
					
						
							|  |  |  |             shape_list, | 
					
						
							| 
									
										
										
										
											2022-09-05 07:03:16 +00:00
										 |  |  |             point_gather_mode=self.point_gather_mode) | 
					
						
							| 
									
										
										
										
											2021-04-11 16:40:46 +08:00
										 |  |  |         if self.mode == 'fast': | 
					
						
							|  |  |  |             data = post.pg_postprocess_fast() | 
					
						
							| 
									
										
										
										
											2021-03-08 14:15:47 +08:00
										 |  |  |         else: | 
					
						
							| 
									
										
										
										
											2021-04-11 16:40:46 +08:00
										 |  |  |             data = post.pg_postprocess_slow() | 
					
						
							| 
									
										
										
										
											2021-03-08 14:15:47 +08:00
										 |  |  |         return data |