# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.## 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_importimport jsonfrom .. import c_lib_wrap as Cdef mask_to_json(result):r_json = {"data": result.data,"shape": result.shape,}return json.dumps(r_json)def detection_to_json(result):masks = []for mask in result.masks:masks.append(mask_to_json(mask))r_json = {"boxes": result.boxes,"scores": result.scores,"label_ids": result.label_ids,"masks": masks,"contain_masks": result.contain_masks}return json.dumps(r_json)def perception_to_json(result):r_json = {"scores": result.scores,"label_ids": result.label_ids,"boxes": result.boxes,"center": result.center,"observation_angle": result.observation_angle,"yaw_angle": result.yaw_angle,"velocity": result.velocity}return json.dumps(r_json)def classify_to_json(result):r_json = {"label_ids": result.label_ids,"scores": result.scores,}return json.dumps(r_json)def keypoint_to_json(result):r_json = {"keypoints": result.keypoints,"scores": result.scores,"num_joints": result.num_joints,}return json.dumps(r_json)def ocr_to_json(result):r_json = {"boxes": result.boxes,"text": result.text,"rec_scores": result.rec_scores,"cls_scores": result.cls_scores,"cls_labels": result.cls_labels,}return json.dumps(r_json)def mot_to_json(result):r_json = {"boxes": result.boxes,"ids": result.ids,"scores": result.scores,"class_ids": result.class_ids,}return json.dumps(r_json)def face_detection_to_json(result):r_json = {"boxes": result.boxes,"landmarks": result.landmarks,"scores": result.scores,"landmarks_per_face": result.landmarks_per_face,}return json.dumps(r_json)def face_alignment_to_json(result):r_json = {"landmarks": result.landmarks, }return json.dumps(r_json)def face_recognition_to_json(result):r_json = {"embedding": result.embedding, }return json.dumps(r_json)def segmentation_to_json(result):r_json = {"label_map": result.label_map,"score_map": result.score_map,"shape": result.shape,"contain_score_map": result.contain_score_map,}return json.dumps(r_json)def matting_to_json(result):r_json = {"alpha": result.alpha,"foreground": result.foreground,"shape": result.shape,"contain_foreground": result.contain_foreground,}return json.dumps(r_json)def head_pose_to_json(result):r_json = {"euler_angles": result.euler_angles, }return json.dumps(r_json)def fd_result_to_json(result):if isinstance(result, list):r_list = []for r in result:r_list.append(fd_result_to_json(r))return r_listelif isinstance(result, C.vision.DetectionResult):return detection_to_json(result)elif isinstance(result, C.vision.Mask):return mask_to_json(result)elif isinstance(result, C.vision.ClassifyResult):return classify_to_json(result)elif isinstance(result, C.vision.KeyPointDetectionResult):return keypoint_to_json(result)elif isinstance(result, C.vision.OCRResult):return ocr_to_json(result)elif isinstance(result, C.vision.MOTResult):return mot_to_json(result)elif isinstance(result, C.vision.FaceDetectionResult):return face_detection_to_json(result)elif isinstance(result, C.vision.FaceAlignmentResult):return face_alignment_to_json(result)elif isinstance(result, C.vision.FaceRecognitionResult):return face_recognition_to_json(result)elif isinstance(result, C.vision.SegmentationResult):return segmentation_to_json(result)elif isinstance(result, C.vision.MattingResult):return matting_to_json(result)elif isinstance(result, C.vision.HeadPoseResult):return head_pose_to_json(result)elif isinstance(result, C.vision.PerceptionResult):return perception_to_json(result)else:assert False, "{} Conversion to JSON format is not supported".format(type(result))return {}def json_to_mask(result):mask = C.vision.Mask()mask.data = result['data']mask.shape = result['shape']return maskdef json_to_detection(result):masks = []for mask in result['masks']:masks.append(json_to_mask(json.loads(mask)))det_result = C.vision.DetectionResult()det_result.boxes = result['boxes']det_result.scores = result['scores']det_result.label_ids = result['label_ids']det_result.masks = masksdet_result.contain_masks = result['contain_masks']return det_resultdef json_to_perception(result):perception_result = C.vision.PerceptionResult()perception_result.scores = result['scores']perception_result.label_ids = result['label_ids']perception_result.boxes = result['boxes']perception_result.center = result['center']perception_result.observation_angle = result['observation_angle']perception_result.yaw_angle = result['yaw_angle']perception_result.velocity = result['velocity']return perception_resultdef json_to_classify(result):cls_result = C.vision.ClassifyResult()cls_result.label_ids = result['label_ids']cls_result.scores = result['scores']return cls_resultdef json_to_keypoint(result):kp_result = C.vision.KeyPointDetectionResult()kp_result.keypoints = result['keypoints']kp_result.scores = result['scores']kp_result.num_joints = result['num_joints']return kp_resultdef json_to_ocr(result):ocr_result = C.vision.OCRResult()ocr_result.boxes = result['boxes']ocr_result.text = result['text']ocr_result.rec_scores = result['rec_scores']ocr_result.cls_scores = result['cls_scores']ocr_result.cls_labels = result['cls_labels']return ocr_resultdef json_to_mot(result):mot_result = C.vision.MOTResult()mot_result.boxes = result['boxes']mot_result.ids = result['ids']mot_result.scores = result['scores']mot_result.class_ids = result['class_ids']return mot_resultdef json_to_face_detection(result):face_result = C.vision.FaceDetectionResult()face_result.boxes = result['boxes']face_result.landmarks = result['landmarks']face_result.scores = result['scores']face_result.landmarks_per_face = result['landmarks_per_face']return face_resultdef json_to_face_alignment(result):face_result = C.vision.FaceAlignmentResult()face_result.landmarks = result['landmarks']return face_resultdef json_to_face_recognition(result):face_result = C.vision.FaceRecognitionResult()face_result.embedding = result['embedding']return face_resultdef json_to_segmentation(result):seg_result = C.vision.SegmentationResult()seg_result.label_map = result['label_map']seg_result.score_map = result['score_map']seg_result.shape = result['shape']seg_result.contain_score_map = result['contain_score_map']return seg_resultdef json_to_matting(result):matting_result = C.vision.MattingResult()matting_result.alpha = result['alpha']matting_result.foreground = result['foreground']matting_result.shape = result['shape']matting_result.contain_foreground = result['contain_foreground']return matting_resultdef json_to_head_pose(result):hp_result = C.vision.HeadPoseResult()hp_result.euler_angles = result['euler_angles']return hp_result
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。