|
@@ -67,13 +67,14 @@ class ScoreService:
|
|
|
else:
|
|
else:
|
|
|
card_defect_type = "face"
|
|
card_defect_type = "face"
|
|
|
|
|
|
|
|
- center_score_data = self.card_scorer.calculate_centering_score(card_aspect, center_data, True)
|
|
|
|
|
-
|
|
|
|
|
if card_defect_type == 'corner_edge':
|
|
if card_defect_type == 'corner_edge':
|
|
|
|
|
+ center_score_data = self.card_scorer.calculate_centering_score(card_aspect, center_data, True)
|
|
|
|
|
+
|
|
|
# 先计算角的分数, 会把分数写入json, 然后传入刚写好的, 继续写边的分数
|
|
# 先计算角的分数, 会把分数写入json, 然后传入刚写好的, 继续写边的分数
|
|
|
corner_score_data = self.card_scorer.calculate_defect_score('corner', card_aspect, defect_data, True)
|
|
corner_score_data = self.card_scorer.calculate_defect_score('corner', card_aspect, defect_data, True)
|
|
|
defect_score_data = self.card_scorer.calculate_defect_score('edge', card_aspect, corner_score_data, True)
|
|
defect_score_data = self.card_scorer.calculate_defect_score('edge', card_aspect, corner_score_data, True)
|
|
|
elif card_defect_type == 'face':
|
|
elif card_defect_type == 'face':
|
|
|
|
|
+ center_score_data = {}
|
|
|
defect_score_data = self.card_scorer.calculate_defect_score('face', card_aspect, defect_data, True)
|
|
defect_score_data = self.card_scorer.calculate_defect_score('face', card_aspect, defect_data, True)
|
|
|
else:
|
|
else:
|
|
|
return {}
|
|
return {}
|
|
@@ -93,44 +94,44 @@ class ScoreService:
|
|
|
center_json_data = json_data["result"]['center_result']
|
|
center_json_data = json_data["result"]['center_result']
|
|
|
defect_json_data = json_data["result"]['defect_result']
|
|
defect_json_data = json_data["result"]['defect_result']
|
|
|
|
|
|
|
|
- logger.info("开始进行居中信息重计算")
|
|
|
|
|
- center_data = self.defect_service.re_inference_from_json(inference_type="center",
|
|
|
|
|
- center_json=center_json_data,
|
|
|
|
|
- defect_json=defect_json_data)
|
|
|
|
|
-
|
|
|
|
|
- logger.info("开始进行缺陷信息重计算")
|
|
|
|
|
|
|
+ # 边角和面 类型分类
|
|
|
if score_type == 'front_corner_edge' or score_type == 'back_corner_edge':
|
|
if score_type == 'front_corner_edge' or score_type == 'back_corner_edge':
|
|
|
inference_type = "corner_edge"
|
|
inference_type = "corner_edge"
|
|
|
else:
|
|
else:
|
|
|
inference_type = "face"
|
|
inference_type = "face"
|
|
|
|
|
|
|
|
|
|
+ # 正反面类型分类
|
|
|
|
|
+ if score_type == 'front_corner_edge' or score_type == 'front_face':
|
|
|
|
|
+ card_aspect = "front"
|
|
|
|
|
+ else:
|
|
|
|
|
+ card_aspect = "back"
|
|
|
|
|
+
|
|
|
|
|
+ logger.info("开始进行缺陷信息重计算")
|
|
|
defect_data = self.defect_service.re_inference_from_json(inference_type=inference_type,
|
|
defect_data = self.defect_service.re_inference_from_json(inference_type=inference_type,
|
|
|
center_json=center_json_data,
|
|
center_json=center_json_data,
|
|
|
defect_json=defect_json_data)
|
|
defect_json=defect_json_data)
|
|
|
|
|
|
|
|
logger.info("开始重新计算分数")
|
|
logger.info("开始重新计算分数")
|
|
|
- if score_type == 'front_corner_edge' or score_type == 'front_face':
|
|
|
|
|
- card_aspect = "front"
|
|
|
|
|
- else:
|
|
|
|
|
- card_aspect = "back"
|
|
|
|
|
- if score_type == 'front_corner_edge' or score_type == 'back_corner_edge':
|
|
|
|
|
- card_defect_type = "corner_edge"
|
|
|
|
|
- else:
|
|
|
|
|
- card_defect_type = "face"
|
|
|
|
|
|
|
+ if inference_type == 'corner_edge':
|
|
|
|
|
+ logger.info("开始进行居中信息重计算")
|
|
|
|
|
+ center_data = self.defect_service.re_inference_from_json(inference_type="center",
|
|
|
|
|
+ center_json=center_json_data,
|
|
|
|
|
+ defect_json=defect_json_data)
|
|
|
|
|
|
|
|
- center_score_data = self.card_scorer.calculate_centering_score(card_aspect, center_data, True)
|
|
|
|
|
|
|
+ center_score_data = self.card_scorer.calculate_centering_score(card_aspect, center_data, True)
|
|
|
|
|
|
|
|
- if card_defect_type == 'corner_edge':
|
|
|
|
|
# 先计算角的分数, 会把分数写入json, 然后传入刚写好的, 继续写边的分数
|
|
# 先计算角的分数, 会把分数写入json, 然后传入刚写好的, 继续写边的分数
|
|
|
corner_score_data = self.card_scorer.calculate_defect_score('corner', card_aspect, defect_data, True)
|
|
corner_score_data = self.card_scorer.calculate_defect_score('corner', card_aspect, defect_data, True)
|
|
|
defect_score_data = self.card_scorer.calculate_defect_score('edge', card_aspect, corner_score_data, True)
|
|
defect_score_data = self.card_scorer.calculate_defect_score('edge', card_aspect, corner_score_data, True)
|
|
|
- elif card_defect_type == 'face':
|
|
|
|
|
|
|
+ elif inference_type == 'face':
|
|
|
|
|
+ # 面类型不计算居中
|
|
|
|
|
+ center_score_data = {}
|
|
|
defect_score_data = self.card_scorer.calculate_defect_score('face', card_aspect, defect_data, True)
|
|
defect_score_data = self.card_scorer.calculate_defect_score('face', card_aspect, defect_data, True)
|
|
|
else:
|
|
else:
|
|
|
return {}
|
|
return {}
|
|
|
|
|
|
|
|
result_json = self.card_scorer.formate_one_card_result(center_score_data, defect_score_data,
|
|
result_json = self.card_scorer.formate_one_card_result(center_score_data, defect_score_data,
|
|
|
- card_defect_type=card_defect_type,
|
|
|
|
|
|
|
+ card_defect_type=inference_type,
|
|
|
card_aspect=card_aspect)
|
|
card_aspect=card_aspect)
|
|
|
|
|
|
|
|
temp_score_json_path = settings.TEMP_WORK_DIR / f're_{score_type}_score.json'
|
|
temp_score_json_path = settings.TEMP_WORK_DIR / f're_{score_type}_score.json'
|