Spaces:
Runtime error
Runtime error
| from pypiqe import piqe | |
| from PIL import Image | |
| import numpy as np | |
| from typing import List | |
| ROUND_DIGIT=3 | |
| NUM_ASPECT=5 | |
| PIQE_POINT_LOW=15 | |
| PIQE_POINT_MID=30 | |
| PIQE_POINT_HIGH=50 | |
| class MetricPIQE(): | |
| def __init__(self) -> None: | |
| """ | |
| Initialize a class MetricPIQE for testing visual quality of a given video. | |
| """ | |
| None | |
| def evaluate(self,frame_list:List[Image.Image]): | |
| """ | |
| Calculate PIQE for visual quality for each frame of the given video and take the average value, | |
| then quantize the orginal output based on some predefined thresholds. | |
| Args: | |
| frame_list:List[Image.Image], frames of the video used in calculation. | |
| Returns: | |
| piqe_avg: float, the computed average PIQE among the frames. | |
| quantized_ans: int, the quantized value of the above avg score based on pre-defined thresholds. | |
| """ | |
| piqe_list=[] | |
| for frame in frame_list: | |
| frame=np.array(frame) | |
| piqe_score, _,_,_ = piqe(frame) | |
| piqe_list.append(piqe_score) | |
| piqe_avg=np.mean(piqe_list) | |
| quantized_ans=0 | |
| if piqe_avg < PIQE_POINT_LOW: | |
| quantized_ans=4 | |
| elif piqe_avg < PIQE_POINT_MID: | |
| quantized_ans=3 | |
| elif piqe_avg < PIQE_POINT_HIGH: | |
| quantized_ans=2 | |
| else: | |
| quantized_ans=1 | |
| return piqe_avg, quantized_ans | |