You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
7.0 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# !/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~255255为白色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~255255为白色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~255255为白色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~255255为白色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~255255为白色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目录")