|
|
@@ -3,18 +3,19 @@ import numpy as np
|
|
|
from ..core.model_loader import get_predictor
|
|
|
from app.utils.defect_inference.CardDefectAggregator import CardDefectAggregator
|
|
|
from app.utils.defect_inference.arean_anylize_draw import DefectProcessor, DrawingParams
|
|
|
-from app.utils.defect_inference.AnalyzeCenter import analyze_centering_rotated
|
|
|
+from app.utils.defect_inference.AnalyzeCenter import analyze_centering_rotated, formate_center_data
|
|
|
from app.utils.defect_inference.DrawCenterInfo import draw_boxes_and_center_info
|
|
|
from app.utils.defect_inference.ClassifyEdgeCorner import ClassifyEdgeCorner
|
|
|
-from app.utils.json_data_formate import formate_center_data, formate_face_data
|
|
|
+from app.utils.json_data_formate import formate_face_data, formate_add_edit_type
|
|
|
from app.core.config import settings
|
|
|
from app.core.logger import get_logger
|
|
|
import json
|
|
|
|
|
|
logger = get_logger(__name__)
|
|
|
|
|
|
+
|
|
|
class DefectInferenceService:
|
|
|
- def defect_inference(self, inference_type: str , img_bgr: np.ndarray,
|
|
|
+ def defect_inference(self, inference_type: str, img_bgr: np.ndarray,
|
|
|
is_draw_image=True) -> dict:
|
|
|
"""
|
|
|
执行卡片识别推理。
|
|
|
@@ -65,6 +66,7 @@ class DefectInferenceService:
|
|
|
area_json = processor.analyze_from_json(json_data)
|
|
|
|
|
|
face_json_result = formate_face_data(area_json)
|
|
|
+ face_json_result = formate_add_edit_type(face_json_result)
|
|
|
|
|
|
with open(area_json_path, 'w', encoding='utf-8') as f:
|
|
|
json.dump(face_json_result, f, ensure_ascii=False, indent=2)
|
|
|
@@ -113,6 +115,7 @@ class DefectInferenceService:
|
|
|
classifier = ClassifyEdgeCorner(settings.PIXEL_RESOLUTION, settings.CORNER_SIZE_MM)
|
|
|
edge_corner_data = classifier.classify_defects_location(area_json, outer_result)
|
|
|
|
|
|
+ edge_corner_data = formate_add_edit_type(edge_corner_data)
|
|
|
with open(area_json_path, 'w', encoding='utf-8') as f:
|
|
|
json.dump(edge_corner_data, f, ensure_ascii=False, indent=2)
|
|
|
logger.info("边角面积计算结束")
|
|
|
@@ -137,9 +140,14 @@ class DefectInferenceService:
|
|
|
|
|
|
inner_points = inner_result['shapes'][0]['points']
|
|
|
outer_points = outer_result['shapes'][0]['points']
|
|
|
- center_result = analyze_centering_rotated(inner_points, outer_points)
|
|
|
+ center_result, inner_rect_box, outer_rect_box = analyze_centering_rotated(inner_points, outer_points)
|
|
|
+
|
|
|
+ logger.info(f"inner_rect_box: {type(inner_rect_box)}, {inner_rect_box}")
|
|
|
+ logger.info(f"outer_rect_box: , {outer_rect_box}")
|
|
|
logger.info("格式化居中数据")
|
|
|
- center_result = formate_center_data(center_result, inner_result, outer_result)
|
|
|
+ center_result = formate_center_data(center_result,
|
|
|
+ inner_result, outer_result,
|
|
|
+ inner_rect_box, outer_rect_box)
|
|
|
|
|
|
draw_img = draw_boxes_and_center_info(img_bgr, center_result)
|
|
|
temp_center_img_path = settings.TEMP_WORK_DIR / f'{inference_type}-center_result.jpg'
|