|
|
# !/usr/bin/env python3
|
|
|
# -*- encoding : utf-8 -*-
|
|
|
# @Filename : analysis_schema.py
|
|
|
# @Software : VSCode
|
|
|
# @Datetime : 2023/01/10 13:32:44
|
|
|
# @Author : leo liu
|
|
|
# @Version : 1.0
|
|
|
# @Description :
|
|
|
|
|
|
from typing import List, Optional
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class TimeArriveLine(BaseModel):
|
|
|
video_path: str = Field(title="视频文件完整路径", description="可使用完整物理路径或网络访问路径,路径包含视频文件名,使用网络访问路径将增加解析时间")
|
|
|
pic_path: Optional[str] = Field(default=None, title="结果图片完整存放路径", description="结果图片存放的物理路径,路径不包含图片文件名,不传值则存放在项目路径的static/pics目录")
|
|
|
video_type: str = Field(title="视频类型", description="L:正驾驶侧方位,R:副驾驶侧方位")
|
|
|
line_type: str = Field(title="某线的方向", description="X:纵向,Z:横向")
|
|
|
offset: int = Field(title="某线坐标", description="某线相对于原点的坐标偏移位置,单位mm")
|
|
|
ratio: Optional[float] = Field(default=1.28, title="换算比", description="每单位offset对应的像素,用于进行图像像素位置的换算, 可不传值", le=1.4, ge=1.2)
|
|
|
size: Optional[int] = Field(default=15, title="识别区域大小", description="从某线开始扩张size大小的像素, 可不传值", le=50, ge=0)
|
|
|
threshold: Optional[int] = Field(default=80, title="特征阈值", description="气囊颜色特征的阈值,60~255,255为白色,0为黑色, 可不传值", le=255, ge=60)
|
|
|
|
|
|
class TimeArrivePoint(BaseModel):
|
|
|
video_path: str = Field(title="视频文件完整路径", description="可使用完整物理路径或网络访问路径,路径包含视频文件名,使用网络访问路径将增加解析时间")
|
|
|
pic_path: Optional[str] = Field(default=None, title="结果图片完整存放路径", description="结果图片存放的物理路径,路径不包含图片文件名,不传值则存放在项目路径的static/pics目录")
|
|
|
video_type: str = Field(title="视频类型", description="L:正驾驶侧方位,R:副驾驶侧方位")
|
|
|
offset_z: int = Field(title="某点纵向坐标", description="某线相对于原点的坐标纵向偏移位置,单位mm")
|
|
|
offset_x: int = Field(title="某点横向坐标", description="某线相对于原点的坐标横向偏移位置,单位mm")
|
|
|
ratio: Optional[float] = Field(default=1.28, title="换算比", description="每单位offset对应的像素,用于进行图像像素位置的换算, 可不传值", le=1.4, ge=1.2)
|
|
|
size: Optional[int] = Field(default=30, title="识别区域大小", description="从某线开始扩张size大小的像素, 可不传值", le=50, ge=0)
|
|
|
threshold: Optional[int] = Field(default=80, title="特征阈值", description="气囊颜色特征的阈值,60~255,255为白色,0为黑色, 可不传值", le=255, ge=60)
|
|
|
|
|
|
class TimeBegin(BaseModel):
|
|
|
video_path: str = Field(title="视频文件完整路径", description="可使用完整物理路径或网络访问路径,路径包含视频文件名,使用网络访问路径将增加解析时间")
|
|
|
pic_path: Optional[str] = Field(default=None, title="结果图片完整存放路径", description="结果图片存放的物理路径,路径不包含图片文件名,不传值则存放在项目路径的static/pics目录")
|
|
|
threshold: Optional[int] = Field(default=100, title="特征阈值", description="气囊颜色特征的阈值,60~255,255为白色,0为黑色, 可不传值", le=255, ge=60)
|
|
|
increase_times: Optional[int] = Field(default=10, title="持续膨胀帧数", description="露白的判断依据,从开始帧持续此帧数都满足特征则判定开始帧为露白帧", le=15, ge=5)
|
|
|
|
|
|
class TimeFullFill(BaseModel):
|
|
|
video_path: str = Field(title="视频文件完整路径", description="可使用完整物理路径或网络访问路径,路径包含视频文件名,使用网络访问路径将增加解析时间")
|
|
|
pic_path: Optional[str] = Field(default=None, title="结果图片完整存放路径", description="结果图片存放的物理路径,路径不包含图片文件名,不传值则存放在项目路径的static/pics目录")
|
|
|
threshold: Optional[int] = Field(default=100, title="特征阈值", description="气囊颜色特征的阈值,60~255,255为白色,0为黑色, 可不传值", le=255, ge=60)
|
|
|
|
|
|
class Video(BaseModel):
|
|
|
type: str = Field(title="视频类型", description="视频的类型,L为正驾驶侧向视频,R为副驾驶侧向视频,F为正向视频")
|
|
|
path: str = Field(title="视频文件完整路径", description="可使用完整物理路径或网络访问路径,路径包含视频文件名,使用网络访问路径将增加解析时间")
|
|
|
first: Optional[str] = Field(default=None, title="首帧图片", description="返回视频第一帧帧截图存放路径,不用传值")
|
|
|
last: Optional[str] = Field(default=None, title="尾帧图片", description="返回视频最后一帧截图存放路径,不用传值")
|
|
|
|
|
|
class Target(BaseModel):
|
|
|
id: Optional[str] = Field(default=None, title="评价标准ID", description="评价标准ID,非必须,原样返回")
|
|
|
type: int = Field(default=0, title="评价类型", description="评价类型,1:某点,2:某线,3:露白,4:最大", le=4, ge=0)
|
|
|
axis_x: Optional[int] = Field(default=0, title="纵向坐标", description="纵向坐标,type=1时必填")
|
|
|
axis_z: Optional[int] = Field(default=0, title="横向坐标", description="横向坐标,type=1时必填")
|
|
|
ratio: Optional[float] = Field(title="换算比", description="每单位offset对应的像素,用于进行图像像素位置的换算, 可不传值,默认1mm = 1.28像素", le=1.4, ge=1.2)
|
|
|
size: Optional[int] = Field(title="识别区域大小", description="从某线开始扩张size大小的像素, 可不传值", le=50, ge=0)
|
|
|
threshold: Optional[int] = Field(title="特征阈值", description="气囊颜色特征的阈值,60~255,255为白色,0为黑色, 可不传值", le=255, ge=60)
|
|
|
time: Optional[str] = Field(default=None, title="评价时间", description="评价时间,用于存放评价结果,不用传值")
|
|
|
path: Optional[str] = Field(default=None, title="评价结果图片", description="评价结果图片,用于存放评价结果图片,不用传值")
|
|
|
|
|
|
class Analysis(BaseModel):
|
|
|
project: Optional[str] = Field(default=None, title="项目名称", description="项目名称,非必须,原样返回")
|
|
|
tr_id: Optional[str] = Field(default=None, title="项目名称", description="TR_ID,非必须,原样返回")
|
|
|
videos: List[Video] = Field(title="视频定义", description="视频定义,以数组形式传递视频类型及视频文件路径")
|
|
|
targets: List[Target] = Field(title="评价定义", description="评价定义,以数组形式传递需要分析的各类评价参数")
|
|
|
pic_path: Optional[str] = Field(default=None, title="结果图片完整存放路径", description="结果图片存放的物理路径,路径不包含图片文件名,不传值则存放在项目路径的static/pics目录")
|
|
|
|