Skip to content

Latest commit

 

History

History
753 lines (645 loc) · 29.7 KB

File metadata and controls

753 lines (645 loc) · 29.7 KB

参数设置文档

语言: English | 简体中文

MetDetPyClipToolkit 从配置文件中加载运行参数。大多数情况下,预设的配置文件能够较好的工作,但有时也可以调整参数可以取得更好的效果。该文档解释了上述两个工具使用的各项参数的含义,用户可以根据需要修改自己的视频读取配置,流星检测的参数,过滤流星的边界条件,图像降噪等能力的参数。

⚠️ 当修改配置文件时,需要确保格式符合规范,否则会在参数加载阶段提示错误。

Menu

检测参数设置

简介

检测配置文件是JSON格式的文本,主要包含4个部分:描述文本(description)视频加载器(loader)检测器(detector)收集器(Collector)。作为参考,预设的配置文件储存在config文件夹下。可以结合默认使用的配置文件阅读本文档以更清晰了解配置文件的格式。

参数结构

检测配置文件各部分的参数配置以及互相关系如下:

classDiagram

class LoaderCfg {
    name: str
    wrapper: str
    resize: Union[list[int], int, str]
    exp_time: Union[float, str]
    merge_func: str
    grayscale: bool
    upper_bound: Optional[float]
    continue_on_err: bool
}

class ModelCfg {
    name: str
    weight_path: str
    dtype: str
    input_color_order: str
    nms: bool
    warmup: bool
    pos_thre: float
    nms_thre: float
    multiscale_pred: int
    multiscale_partition: int
    providers_key: Optional[str]
}

class BinaryCoreCfg {
    adaptive_bi_thre: bool
    init_value: int
    sensitivity: str
    area: float
    interval: int
}

class HoughLineCfg {
    threshold: int
    min_len: int
    max_gap: int
}

class DynamicCfg {
    dy_mask: bool
    window_sec: float
}

class BinaryCfg {
    binary: BinaryCoreCfg
    hough_line: HoughLineCfg
    dynamic: DynamicCfg
}

class DLCfg {
    model: ModelCfg
}

class DetectorCfg {
    name: str
    window_sec: float
    cfg: Union[BinaryCfg, DLCfg]
}

class MeteorCfg {
    min_len: float
    max_interval: float
    time_range: list[float]
    speed_range: list[float]
    drct_range: list[float]
    det_thre: float
    merge_dist_sqr: Optional[int]
    clip_merge_interval: Optional[float]
    recheck_threshold: Optional[float]
}

class RecheckCfg {
    switch: bool
    model: ModelCfg
}

class CollectorCfg {
    meteor_cfg: MeteorCfg
    recheck_cfg: RecheckCfg
    positive_cfg: dict[str, Any]
}

class MainDetectCfg {
    description: dict[str,str]
    loader: LoaderCfg
    detector: DetectorCfg
    collector: CollectorCfg
}

MainDetectCfg --> LoaderCfg : loader
MainDetectCfg --> DetectorCfg : detector
MainDetectCfg --> CollectorCfg : collector

DetectorCfg --> BinaryCfg : cfg
DetectorCfg --> DLCfg : cfg

BinaryCfg --> BinaryCoreCfg : binary
BinaryCfg --> HoughLineCfg : hough_line
BinaryCfg --> DynamicCfg : dynamic

DLCfg --> ModelCfg : model
RecheckCfg --> ModelCfg : model
CollectorCfg --> MeteorCfg : meteor_cfg
CollectorCfg --> RecheckCfg : recheck_cfg
Loading

描述文本Description

可用于描述配置文件的主要使用场景和说明。前端应用(如Meteor Master>=3.6.0)将可以展示这些信息。检测中不会实际使用该项。

描述文本段的示例如下:

"description": {
    "preset_name": "配置名称",
    "intro": "一段配置简介",
}

如果希望在中文/英文页面有不同的显示,也可以使用如下方式配置:

"description": {
    "preset_name_cn": "M3Det-通用",
    "preset_name_en": "M3Det-general",
    "intro_cn": "自适应检测器,适用于多数检测场景。",
    "intro_en": "Adaptive meteor detector. Suitable for most detection scenarios."
}

视频加载器/Loader

loader主要管理与视频读入和预处理相关的参数。示例配置如下:

"loader": {
    "name": "ThreadVideoLoader",
    "wrapper": "OpenCVVideoWrapper",
    "resize": 960,
    "exp_time": "auto",
    "upper_bound": 0.34,
    "merge_func": "max",
    "grayscale": true
}

视频加载器的各项参数说明如下:

参数名 可选类型 说明 推荐设置
name str 所使用的loader的名称。目前可选"VanillaVideoLoader""ThreadVideoLoader"。一般情况下,推荐使用稳定且运行速度较快的"ThreadVideoLoader" "ThreadVideoLoader"
wrapper str 底层加载视频使用的wrapper。目前支持基于OpenCV的"OpenCVVideoWrapper" 及基于PyAV的 "PyAVVideoWrapper" "OpenCVVideoWrapper"
resize int, array, str 指定检测使用的分辨率。较低的分辨率下程序运行更快,较高的分辨率则有助于检测到更暗弱和短的流星。可以设置一个整数以仅指定长边长度(如960),程序会自适应不同长宽比的视频(推荐);该设置也支持同时指定宽高(使用以:或者x分隔两个数字的字符串,如"960:540""960x540";或直接使用列表,如[960,540] 960
exp_time float, str("auto", "slow", "real-time") 指定单帧的曝光时间。使用传统检测器时,推荐使用"auto",程序会根据片段估算实际曝光时间(会在启动前花费一小段时间)。如果确定视频帧率与曝光时间匹配,则可以使用"real-time"。如果希望指定具体数值,可以填入单位为s的浮点数(小数)。 "auto"(直线检测器)/0.5(深度学习检测器)
upper_bound float (可选) 指定使用自动估算曝光时间时的最长曝光时间。这是一个可选参数,当没有必要时可以不指定。 0.34
merge_func str 描述多帧图像如何合并为一帧。仅当实际曝光时间长于视频的单帧时长时生效。可选"max","m3func","mix_max_median_stacker"。因为流星检测的视觉特性,推荐使用"max" "max"
grayscale bool 描述是否将视频转换为灰度图像进行加载。对于基于直线检测的检测器,该项必须为true;对于基于深度学习的检测器,目前必须选择false true(直线检测器)/false(深度学习检测器)

⚠️

  1. Q: 为什么要填写曝光时间? A: 存在实际曝光时间与帧率不匹配的情况(例如,部分相机可以输出曝光时间为1/20s的4k60p的视频,视频每3帧变化一次,而非每帧间均有差异)。在这种情况下,使用实际的曝光时间可以改善运行速度和识别的准确率。

检测器/Detector

detector中主要设置使用的检测器,检测窗时长及检测时使用的参数(如二值化阈值,直线检测的相关设置)。

基于直线检测器的示例配置:

"detector": {
    "name": "M3Detector",
    "window_sec": 1,
    "cfg": {
        "binary": {
            "adaptive_bi_thre": true,
            "init_value": 7,
            "sensitivity": "normal",
            "area": 0.1,
            "interval": 2
        },
        "hough_line": {
            "threshold": 10,
            "min_len": 10,
            "max_gap": 10
        },
        "dynamic": {
            "dy_mask": true,
            "window_sec": 5
        }
    }
}

基于深度学习检测器的示例配置:

 "detector": {
    "name": "MLDetector",
    "window_sec": 1,
    "cfg": {
        "model": {
            "name":"YOLOModel",
            "weight_path": "./weights/yolov5s.onnx",
            "dtype": "float32",
            "input_color_order": "rgb",
            "nms": true,
            "warmup": true,
            "pos_thre": 0.10,
            "nms_thre": 0.45
        }
    }
}

检测器的各项参数说明如下:

参数名 可选类型 说明 推荐设置
name str 描述使用的检测器。目前可选"ClassicDetector", "M3Detector""MLDetector"。其中, "ClassicDetector""M3Detector"是基于直线检测的传统检测器,"MLDetector"则是基于深度学习的检测器。基本上,传统检测器更加灵敏,运行更快,但也更容易产生误报(可通过配置重校验改善);深度学习检测器则更加稳健,但计算开销更大。二者在参数配置上有差异。 "M3Detector"(传统检测器)/"MLDetector"(深度学习检测器)
windows_sec int,float 描述滑动时间窗长度。运行时算法将逐帧在该窗口长度内检测可能的流星。通常来说,设置在1s附近可以取得比较好的结果。 1
cfg - 描述具体的参数设置。 (见下)

当使用基于直线检测的检测器时,需要在detector下的"cfg"中配置"binary"(二值化阈值相关参数), "hough_line"(直线检测相关参数), "dynamic"(动态机制相关参数);当使用基于深度学习的检测器时,需要在detector下的"cfg"中配置"model"项(深度学习模型相关参数)。这些参数的具体形式如下:

所属项 参数名 可选类型 说明 推荐设置

binary

(二值化阈值相关参数)
adaptive_bi_thre bool 是否启用自适应二值化阈值算法。该算法可以根据采样区域的视频信噪比估算最佳二值化阈值,进而将变亮区域分割出来。 true
init_value int 初始的二值化阈值。当不启用自适应二值化阈值算法时,直接使用该值作为二值化阈值。 5
sensitivity str 描述自适应二值化阈值算法的灵敏度。灵敏度对应的函数会将信噪比值映射到对应的二值化阈值。当不启用自适应二值化阈值算法时,该项不生效。 normal
area float 描述自适应二值化阈值算法的采样区域大小。取值范围[0,1],代表采样区域与全图面积的比值。设置合适的大小能够在获取近似准确的估计值的同时加速估算。推荐区域设置在0.05-0.2。设置为非法值(小于0或者大于1)时将使用全图采样估算。 0.1
interval int 设置阈值估算间隔。过于频繁的阈值估算会增大计算量,降低程序运行性能;过低的计算频率则可能无法及时根据信噪比变化变。 2

hough_line

(Hough直线检测相关参数。参数具体含义参考OpenCV官方文档)
threshold int hough直线检测的阈值。 10
min_len int 描述构成直线的最小长度。 10
max_gap int 描述直线间允许的最大间隔。 10

dynamic

(动态机制相关参数)
dy_mask bool 是否启用动态掩模机制。动态掩模对持续产生响应的区域施加掩模,能够降低在亮星点和持续干扰附近区域的响应。 true
window_sec float 动态掩模的时间窗口长度(单位:秒)。用于控制动态掩模的持续时间。 5

model

(模型相关参数)
- - 参考模型部分。 0.6

收集器/Collector

收集器中设置流星的过滤和收集条件,以及重校验相关的配置。

"collector": {
    "meteor_cfg": {
        "min_len": 20,
        "max_interval": 5,
        "time_range": [
            0,
            8
        ],
        "speed_range": [
            3,
            12
        ],
        "drct_range": [
            0,
            0.6
        ],
        "det_thre": 0.5,
        "merge_dist_sqr": 2048,
        "recheck_threshold": 0.25
    },
    "recheck_cfg": {
        "switch": true,
        "model": {
            "name":"YOLOModel",
            "weight_path": "./weights/yolov5s_v2.onnx",
            "dtype": "float32",
            "input_color_order": "rgb",
            "nms": true,
            "warmup": true,
            "pos_thre": 0.10,
            "nms_thre": 0.45,
            "multiscale_pred":2,
            "multiscale_partition":2
        }
    },
    "positive_cfg": {
        "positive_cates": [
            "METEOR",
            "RED_SPRITE"
        ]
    }
}

其中主要包含三部分设置:流星的筛选配置"meteor_cfg"、重校验配置"recheck_cfg"和正样本配置"positive_cfg"

流星筛选配置/Meteor_cfg

流星筛选配置中,可以设置流星的速度,持续时间,允许间隔,直线程度,得分阈值等过滤条件。其各项参数说明如下:

参数名 可选类型 说明 推荐设置
min_len int 开始记录流星所需要的最小长度(px)。 20
max_interval int 流星间的最长间隔时间(经过该时间长度没有额外响应,这一个/组流星将被认为已经结束)。单位:s。 5
time_range array 描述流星的持续时间范围。超过或者没有到达阈值的响应将会被排除。单位:s。 [0,8]
speed_range array 描述流星的允许速度范围。超过或者没有到达阈值的响应将会被排除。该数值的计算方式为:(流星的移动距离(px)/流星的运动时间(s))/(视频长边长度(px)) * 100。可以将该数值理解为流星每秒在画面中移动的距离比例(%),如[3,12]代表预期捕获每秒在画面中移动距离为3%-12%的目标。单位:$s^{-1}$。 [3, 12]
drct_range array 描述流星的直线程度范围。越接近0,该流星越接近理想直线。该值通过计算所有响应的方向向量集合的方差得到。 [0,0.6]
det_thre float 描述正样本流星的阈值,超过该得分的流星被认为是正样本流星。取值为[0,1]。 0.5
merge_dist_sqr int 描述若干响应之间允许的最长距离平方。如果轨迹存在多个离散响应,可以尝试增大该值。该值以运行时分辨率为基准,分辨率差异过大时可能影响效果。 2048
recheck_threshold float,可选 序列送入模型重校验所需的最低前置得分。省略时使用 det_thre 的一半。 0.25
clip_merge_interval float,可选 将已确认目标合并到同一导出片段所允许的最大时间间隔,单位为秒。省略时使用 max_interval max_interval 相同

旧字段 thre2 仍可作为兼容兜底读取,但已经弃用;新配置应使用 merge_dist_sqr

⚠️ 目前流星筛选配置的过滤采取宽容性设计:当超出上述设置范围时,得分不会直接突变置零,而是逐渐衰减到0。

重校验配置/Recheck_cfg

重校验是v2.0.0中新增的机制,允许在主程序给出时间范围和流星位置后再次校验图像中是否存在需要捕获的目标(如流星,红色精灵等)。其各项参数说明如下:

参数名 可选类型 说明 推荐设置
switch str 是否默认启用重校验。 true
model - 参考模型部分。 -
save_path str 保存重校验图像的路径。置空时,不保存重校验的图像。 ""

正样本配置/positive_cfg

正样本是v2.2.0中新增的机制,支持配置预期输出的正负样本类型。其各项参数说明如下:

参数名 可选类型 说明 推荐设置
positive_cates list 接受为正样本的类别集合。 ["METEOR","RED_SPRITE"]

模型/Model

可以在检测器中和收集器的重校验部分配置深度学习模型。 当尝试使用模型时,按照以下格式配置:

"model": {
    "name":"YOLOModel",
    "weight_path": "./weights/yolov5s.onnx",
    "dtype": "float32",
    "input_color_order": "rgb",
    "nms": true,
    "warmup": true,
    "pos_thre": 0.10,
    "nms_thre": 0.45,
    "multiscale_pred":2,
    "multiscale_partition":2
}
参数名 可选类型 说明 推荐设置
name str 使用的深度学习模型类型,这将决定程序如何处理输入输出。目前仅实现了YOLO格式的模型"YOLOModel" "YOLOModel"
weight_path str 网络权重的路径。可以是相对MetDetPy的路径,也可以是绝对路径。默认提供了已训练完成的YOLOv5s。网络输出的标签应当参考class_name文件配置。目前支持.onnx的网络权重格式。 "./weights/yolov5s.onnx"
dtype str 描述网络的输入数据格式。当使用量化模型时,需在此处配置格式,否则程序可能无法正常运行。目前支持全精度("float32"),半精度("float16")。 "float32"
input_color_order str 模型权重所期望的通道顺序。传给 forward 的图像固定为 BGR;配置为 "rgb" 时模型会自动转换。 "rgb"
nms bool 是否需要执行非最大值抑制NMS。如果构建的网络已附带NMS,则选择false以提升运行速度。 true
warmup bool 是否需要在使用前预热。设置为true可以提升网络的运行速度。 true
pos_thre float 正样本阈值,超过该得分的会被认为是正样本。取值为[0,1]。 0.1
nms_thre float 去重时使用的阈值。 0.45
multiscale_pred int 多尺度检测时使用的尺度。取0时,不进行任何处理;取N>0的整数代表会进行必要的旋转处理,并在N个尺度上进行检测。需要注意:过深的尺度会显著增加计算量和误报样本,因此通常取1或2即可。 1(低分辨率)/2(高分辨率)
multiscale_partition" int 多尺度检测时,子图像在长/宽方向的分片数。需要取大于1的整数,建议值为2。过大的分片数会显著增加计算量和误报样本, 2

剪切参数设置

简介

ClipToolkit(切片工具)支持定义截取和保存视频时的视频读写参数,其默认配置文件为./global/clip_cfg.json中。该配置文件的结构定义如下(或参考 metstruct.py):

参数名 可选类型 说明 推荐设置
loader str 视频加载器 "ThreadVideoLoader"
wrapper str 加载视频使用的后端wrapper
writer str 视频写入器,可选 OpenCVVideoWriter、PyAVVideoWriter 和 FFMpegVideoWriter。 "FFMpegVideoWriter"
image_denoise DenoiseOption 图像降噪配置 图像降噪配置
export ExportOption 导出配置 导出配置
raw_img_load_config Optional[RawImgLoadCfg] 原始图像加载配置(可选) 原始图像加载配置

剪切配置文件各部分的参数配置以及互相关系如下:

classDiagram

class ExportOption {
    positive_category_list: list[str]
    bbox_color_mapping: Optional[dict[str, list[int]]]
    filter_rules: FilterRules
    jpg_quality: int
    png_compressing: int
    with_bbox: bool
    with_annotation: bool
    bbox_color: list[int]
    bbox_thickness: int
    clip_padding: ClipPaddingOption
    ffmpeg_config: FFMpegConfig
}

class ClipPaddingOption {
    before: float
    after: float
}

class ConnectParam {
    switch: bool
    ksize_multiplier: float
    gamma: float
    threshold: int
}

class SimpleDenoiseParam {
    ds_radius: int
    ds_threshold: int
    bi_d: int
    bi_sigma_color: int
    bi_sigma_space: int
}

class MFNRDenoiseParam {
    bg_algorithm: str
    sigma_high: float
    sigma_low: float
    bg_fix_factor: float
}

class DenoiseOption {
    switch: bool
    highlight_preserve: float
    algorithm: str
    blur_ksize: int
    connect_lines: ConnectParam
    simple_param: SimpleDenoiseParam
    mfnr_param: MFNRDenoiseParam
}

class ClipCfg {
    loader: str
    wrapper: str
    writer: str
    image_denoise: DenoiseOption
    export: ExportOption
    raw_img_load_config: Optional[RawImgLoadCfg]
}

ClipCfg --> DenoiseOption : image_denoise
ClipCfg --> ExportOption : export
DenoiseOption --> ConnectParam : connect_lines
DenoiseOption --> SimpleDenoiseParam : simple_param
DenoiseOption --> MFNRDenoiseParam : mfnr_param
ExportOption --> ClipPaddingOption : clip_padding
Loading

视频写入器配置

ClipToolkit 通过配置文件中的 writer 字段指定视频写入器(VideoWriter)。不同的视频写入器支持不同的视频格式和功能:

VideoWriter 支持导出格式 音频复制 参数配置
OpenCVVideoWriter 仅支持 .avi 格式 不支持 不支持
PyAVVideoWriter(发行版本) 只能导出 .avi 格式 不支持 不支持
PyAVVideoWriter(自行构建) 支持 PyAV 支持的所有格式 部分支持 有限支持
FFMpegVideoWriter(推荐) 支持 FFMpeg 支持的所有格式(mp4, mkv, avi 等) 完整支持音频复制和转码 完整支持所有导出配置

配置 FFMpegVideoWriter

当使用 FFMpegVideoWriter 时,需要在配置文件的 export.ffmpeg_config 部分配置 FFMpeg 相关参数。

详见 ffmpeg配置

图像降噪配置

支持在导出图像时对导出图像进行后处理,降低图像噪点,连接可能存在的断线等。具体配置如下:

所属项 参数名 可选类型 说明 推荐设置
switch - bool 是否默认启用图像降噪。注意,即使配置为false, 仍可以通过在命令行的--denoise参数在单次任务中启用降噪。 true
highlight_preserve - float 高光保护阈值,控制高光部分不受到降噪影响,保护流星周围图像的细节。设置过高可能导致高光同样被降噪算法影响,过低则可能导致降噪效果不明显。 0.9
algorithm - str 默认使用的降噪算法。可选 "simple"(简单降噪算法) 以及 "mfnr-mix"(多帧混合降噪)。 "simple"
blur_ksize - int 使用的高斯模糊核尺寸。该参数用于估算流星蒙版。 31
connect_lines switch bool 是否在降噪过程中尝试连接断线。 true
ksize_multiplier float 连接断线使用的高斯核尺寸系数。该系数与 "blur_ksize" 乘算以确定最终在降噪中使用的核尺寸。 1.5
gamma float 断线蒙版gamma亮度变换时使用的gamma系数。 1.0
threshold int 断线蒙版阈值。高于阈值的蒙版部分被视为需要连接的断线。 30

simple_param

(简单降噪相关参数)
ds_radius int 蒙尘与划痕算法使用的中值滤波半径。 10
ds_threshold int 蒙尘与划痕算法使用的亮度差阈值。 20
bi_d int 双边滤波算法使用的像素邻域的直径。 10
bi_sigma_color float 颜色空间滤波器的sigma值。值越大,则半相等颜色区域更大。 15
bi_sigma_space float 坐标空间中滤波器的sigma值。值越大,更大的区域内相似的颜色会参与降噪计算。 6

mfnr_param

(多帧降噪相关参数)
bg_algorithm str 多帧降噪时估算背景的算法。可选 "median" (中值), "med-of-med" (中值中值,快速的中值估算方法), "sigma-clipping"(sigma裁剪均值), "mean"(简单均值)。 "mean"
sigma_high float 使用sigma裁剪均值时,sigma的拒绝上界比值。 3.0
sigma_low float 使用sigma裁剪均值时,sigma的拒绝上界比值。 3.0
bg_fix_factor float 背景估算时使用的修正系数。 1.5

导出配置

参数名 可选类型 说明 推荐设置
positive_category_list list 需要导出的正样本类别 ["METEOR","RED_SPRITE"]
bbox_color_mapping Optional[dict[str, list[int]]] 按类别映射的标注框颜色(BGR顺序)。如果指定,将覆盖 bbox_color 设置。 None
filter_rules FilterRules 过滤规则配置 过滤规则配置
jpg_quality int 导出JPEG图像时的质量(1-100) 95
png_compressing int 导出PNG图像时的压缩级别(0-9) 3
with_bbox bool 导出时是否默认需要带上标注框 false
with_annotation bool 导出时是否默认需要带上标注文件 false
bbox_color list 默认标注框颜色(BGR顺序) [255,0,0]
bbox_thickness int 标注框粗细 2
clip_padding ClipPaddingOption 视频片段前后额外补偿的时间配置 时间补偿配置
ffmpeg_config FFMpegConfig FFMpeg视频编码配置(仅在启用 FFMpegVideoWriter 时生效) FFMpeg配置

过滤规则配置/FilterRules

过滤规则用于在导出时过滤检测结果,会同时作用于图像导出和视频导出流程。其各项参数说明如下:

参数名 可选类型 说明 推荐设置
switch bool 是否启用过滤规则 true
threshold float 置信度阈值,低于该值的检测结果将被过滤 0.0
min_length_ratio float 最小长度比例阈值,低于该值的检测结果将被过滤(相对于图像长边) 0.0
exclude_category_list list[str] 需要排除的类别列表 []

说明:

  • 若通过 ClipToolkit 命令行显式使用 --enable-filter-rules--disable-filter-rules,将覆盖此处 switch 的配置值。
  • 若过滤后无有效目标,当前导出任务会被跳过。

时间补偿配置/ClipPaddingOption

时间补偿配置用于在每个视频片段的起始和结束时间前后额外补偿指定的时间长度。其各项参数说明如下:

参数名 可选类型 说明 推荐设置
before float 开始时间前补偿的时间长度(秒)。正数表示向前扩展,负数表示向后收缩。 0.0
after float 结束时间后补偿的时间长度(秒)。正数表示向后扩展,负数表示向前收缩。 0.0

注意事项

  • 当补偿后的时间戳超出视频边界时,程序会自动裁剪到视频的有效范围,并输出警告日志
  • 文件名使用裁剪后的时间戳生成,确保时间戳的合法性
  • 该配置对所有导出模式(图像/视频)均生效

FFMpeg配置/FFMpegConfig

FFMpeg视频编码配置用于控制使用 FFMpegVideoWriter 时的视频编码参数。其各项参数说明如下:

参数名 可选类型 说明 推荐设置
path Optional[str] FFMpeg可执行文件路径。如果为None,将使用系统PATH中的FFMpeg None
preset str FFMpeg编码预设,可选值如 "slow", "medium", "fast" 等 "slow"
crf int 恒定速率因子(Constant Rate Factor),控制视频质量(0-51,值越小质量越高) 18
video_encoder str 视频编码器,如 "libx264", "libx265" 等 "libx264"
pix_fmt str 像素格式,如 "yuv420p", "yuv422p" 等 "yuv420p"

启用FFMpegVideoWriter时,会按照如下路径顺序查找FFMpeg工具:

  1. 如果 path 字段指定了路径,将在该路径下查找 ffmpegffprobe
  2. 在 MetDetPy 项目根目录下查找
  3. 在系统 PATH 环境变量中查找

如果未找到 FFMpeg,程序将报错。

原始图像加载配置/RawImgLoadCfg

原始图像加载配置用于控制加载RAW格式图像时的处理参数。其各项参数说明如下:

参数名 可选类型 说明 推荐设置
power float 伽马校正的幂值 2.222
target_nl_mean float 目标归一化亮度均值 0.3
contrast_alpha float 对比度增强系数 1.2
output_bps int 输出图像的位深度(位数) 8