add sam2 yolo auto annotation

This commit is contained in:
2026-02-04 15:29:36 +07:00
parent 7e56948ece
commit 5a951d8812
2061 changed files with 316473 additions and 0 deletions
@@ -0,0 +1,180 @@
{
"documentTitle": "分类模型 - Frigate",
"button": {
"deleteClassificationAttempts": "删除分类图片",
"renameCategory": "重命名类别",
"deleteCategory": "删除类别",
"deleteImages": "删除图片",
"trainModel": "训练模型",
"addClassification": "添加分类",
"deleteModels": "删除模型",
"editModel": "编辑模型"
},
"toast": {
"success": {
"deletedCategory": "删除类别",
"deletedImage": "删除图片",
"categorizedImage": "成功分类图片",
"trainedModel": "训练模型成功。",
"trainingModel": "已开始训练模型。",
"deletedModel_other": "已删除 {{count}} 个模型",
"updatedModel": "已更新模型配置",
"renamedCategory": "成功修改类别名称为 {{name}}"
},
"error": {
"deleteImageFailed": "删除失败:{{errorMessage}}",
"deleteCategoryFailed": "删除类别失败:{{errorMessage}}",
"categorizeFailed": "图片分类失败:{{errorMessage}}",
"trainingFailed": "训练模型失败,请查看 Frigate 日志获取详情。",
"deleteModelFailed": "删除模型失败:{{errorMessage}}",
"updateModelFailed": "更新模型失败:{{errorMessage}}",
"trainingFailedToStart": "开始训练模型失败:{{errorMessage}}",
"renameCategoryFailed": "修改类别名称失败:{{errorMessage}}"
}
},
"deleteCategory": {
"title": "删除类别",
"desc": "确定要删除类别 {{name}} 吗?此操作将永久删除所有关联的图片,并需要重新训练模型。",
"minClassesTitle": "无法删除此类别",
"minClassesDesc": "分类模型必须至少有2个类别。你需要先添加一个新的类别,然后再删除当前这个类别。"
},
"deleteDatasetImages": {
"title": "删除图片数据集",
"desc": "确定要从 {{dataset}} 中删除 {{count}} 张图片吗?此操作无法撤销,并将需要重新训练模型。"
},
"deleteTrainImages": {
"title": "删除训练的图片",
"desc": "确定要删除 {{count}} 张图片吗?此操作无法撤销。"
},
"renameCategory": {
"title": "重命名类别",
"desc": "请输入 {{name}} 的新名称。名称变更后需要重新训练模型。"
},
"description": {
"invalidName": "名称无效。名称只能包含字母、数字、空格、撇号、下划线和连字符。"
},
"train": {
"title": "最近分类记录",
"aria": "选择最近分类记录",
"titleShort": "近期"
},
"categories": "类别",
"createCategory": {
"new": "创建新类别"
},
"categorizeImageAs": "图片分类为:",
"categorizeImage": "图片分类",
"noModels": {
"object": {
"title": "未创建目标/物体分类模型",
"description": "创建自定义模型以分类检测到的目标。",
"buttonText": "创建目标/物体模型"
},
"state": {
"title": "尚未创建状态分类模型",
"description": "创建自定义模型以监控并分类摄像头特定区域的状态变化。",
"buttonText": "创建状态模型"
}
},
"wizard": {
"title": "创建新分类",
"steps": {
"nameAndDefine": "名称与定义",
"stateArea": "状态区域",
"chooseExamples": "选择范例"
},
"step1": {
"description": "状态模型用于监控摄像头固定区域的状态变化(例如门是否开启或关闭)。目标/物体模型用于为检测到的目标添加分类标签(例如区分宠物、快递员等)。",
"name": "名称",
"namePlaceholder": "请输入模型名称……",
"type": "类型",
"typeState": "状态",
"typeObject": "目标/物体",
"objectLabel": "目标/物体标签",
"objectLabelPlaceholder": "请选择目标类型……",
"classificationType": "分类方式",
"classificationTypeTip": "了解分类方式",
"classificationTypeDesc": "子标签会为目标标签添加附加文本(例如:“人员:美团”)。属性是可搜索的元数据,独立存储在目标的元信息中。",
"classificationSubLabel": "子标签",
"classificationAttribute": "属性",
"classes": "类别",
"classesTip": "了解类别",
"classesStateDesc": "定义摄像头区域内可能出现的不同状态。例如:车库门的“开启”和“关闭”。",
"classesObjectDesc": "定义用于分类检测目标的不同类别。例如:人员分类中的“快递员”、“居民”、“陌生人”。",
"classPlaceholder": "请输入分类名称……",
"errors": {
"nameRequired": "模型名称为必填项",
"nameLength": "模型名称长度不能超过 64 个字符",
"nameOnlyNumbers": "模型名称不能仅包含数字",
"classRequired": "至少需要一个类别",
"classesUnique": "类别名称必须唯一",
"stateRequiresTwoClasses": "状态模型至少需要两个类别",
"objectLabelRequired": "请选择一个目标标签",
"objectTypeRequired": "请选择一个目标标签"
},
"states": "状态"
},
"step2": {
"description": "选择摄像头,并为摄像头定义要监控的区域。模型将对这些区域的状态进行分类。",
"cameras": "摄像头",
"selectCamera": "选择摄像头",
"noCameras": "点击 + 符号添加摄像头",
"selectCameraPrompt": "从列表中选择一个摄像头以定义其检测区域"
},
"step3": {
"selectImagesPrompt": "选择所有属于 {{className}} 的图片",
"selectImagesDescription": "点击图像进行选择,完成该类别后点击“继续”。",
"generating": {
"title": "正在生成样本图片",
"description": "Frigate 正在从录像中提取代表性图片。这可能需要一些时间……"
},
"training": {
"title": "正在训练模型",
"description": "系统正在后台训练模型。你可以关闭此对话框,训练完成后模型将自动开始运行。"
},
"retryGenerate": "重新生成",
"noImages": "未生成样本图像",
"classifying": "正在分类与训练……",
"trainingStarted": "已开始模型训练",
"errors": {
"noCameras": "未配置摄像头",
"noObjectLabel": "未选择目标标签",
"generateFailed": "示例生成失败:{{error}}",
"generationFailed": "生成失败,请重试。",
"classifyFailed": "图片分类失败:{{error}}"
},
"generateSuccess": "样本图片生成成功",
"allImagesRequired_other": "请对所有图片进行分类。还有 {{count}} 张图片需要分类。",
"modelCreated": "模型创建成功。请在“最近分类”页面为缺失的状态添加图片,然后训练模型。",
"missingStatesWarning": {
"title": "缺失状态示例",
"description": "建议为所有状态都选择示例图片以获得最佳效果。你也可以跳过当前为分类状态选择图片,但需要所有状态都有对应的图片,模型才能够进行训练。跳过后你可通过“最近分类”页面为缺失的状态分类添加图片,然后再训练模型。"
}
}
},
"deleteModel": {
"title": "删除分类模型",
"single": "你确定要删除 {{name}} 吗?此操作将永久删除所有相关数据,包括图片和训练数据,且无法撤销。",
"desc": "你确定要删除 {{count}} 个模型吗?此操作将永久删除所有相关数据,包括图片和训练数据,且无法撤销。"
},
"menu": {
"objects": "目标",
"states": "状态"
},
"details": {
"scoreInfo": "得分表示该目标所有检测结果的平均分类置信度。"
},
"edit": {
"title": "编辑分类模型",
"descriptionState": "编辑此状态分类模型的类别;更改后需要重新训练模型。",
"descriptionObject": "编辑此目标分类模型的目标类型和分类类型。",
"stateClassesInfo": "注意:更改状态类别后需使用更新后的类别重新训练模型。"
},
"tooltip": {
"trainingInProgress": "模型正在训练中",
"noNewImages": "没有新的图片可用于训练。请先对数据集中的更多图片进行分类。",
"noChanges": "自上次训练以来,数据集未作任何更改。",
"modelNotReady": "模型尚未准备好进行训练"
},
"none": "无标签"
}
@@ -0,0 +1,18 @@
{
"documentTitle": "配置编辑器 - Frigate",
"configEditor": "配置编辑器",
"copyConfig": "复制配置",
"saveAndRestart": "保存并重启",
"saveOnly": "只保存",
"toast": {
"success": {
"copyToClipboard": "配置已复制到剪贴板。"
},
"error": {
"savingError": "保存配置时出错"
}
},
"confirm": "是否退出并不保存?",
"safeConfigEditor": "配置编辑器(安全模式)",
"safeModeDescription": "由于验证配置出现错误,Frigate目前为安全模式。"
}
@@ -0,0 +1,64 @@
{
"alerts": "警报",
"detections": "检测",
"motion": {
"label": "画面变动",
"only": "仅变动画面"
},
"allCameras": "所有摄像头",
"empty": {
"alert": "还没有“警报”类核查项",
"detection": "还没有“检测”类核查项",
"motion": "还没有画面变动类数据"
},
"timeline": "时间线",
"timeline.aria": "选择时间线",
"events": {
"label": "事件",
"aria": "选择事件",
"noFoundForTimePeriod": "未找到该时间段的事件。"
},
"documentTitle": "核查 - Frigate",
"recordings": {
"documentTitle": "回放 - Frigate"
},
"calendarFilter": {
"last24Hours": "过去24小时"
},
"markAsReviewed": "标记为已核查",
"markTheseItemsAsReviewed": "将这些项目标记为已核查",
"newReviewItems": {
"label": "查看新的核查项目",
"button": "核查新项目"
},
"camera": "摄像头",
"selected": "已选择 {{count}} 个",
"selected_one": "已选择 {{count}} 个",
"selected_other": "已选择 {{count}} 个",
"detected": "已检测",
"suspiciousActivity": "可疑活动",
"threateningActivity": "风险类活动",
"detail": {
"noDataFound": "没有可供核查的详细数据",
"aria": "切换详细视图",
"trackedObject_one": "{{count}}个目标或物体",
"trackedObject_other": "{{count}}个目标或物体",
"noObjectDetailData": "没有目标详细信息。",
"label": "详细信息",
"settings": "详细视图设置",
"alwaysExpandActive": {
"title": "始终展开当前项",
"desc": "在可用情况下,将始终展开当前核查项的目标详细信息。"
}
},
"objectTrack": {
"trackedPoint": "追踪点",
"clickToSeek": "点击从该时间进行寻找"
},
"zoomIn": "放大",
"zoomOut": "缩小",
"normalActivity": "正常",
"needsReview": "需要核查",
"securityConcern": "安全隐患",
"select_all": "所有"
}
@@ -0,0 +1,291 @@
{
"documentTitle": "浏览 - Frigate",
"generativeAI": "生成式 AI",
"exploreIsUnavailable": {
"title": "浏览功能不可用",
"embeddingsReindexing": {
"context": "完成追踪目标嵌入重新索引后,才可以使用 浏览 功能。",
"startingUp": "启动中…",
"estimatedTime": "预计剩余时间:",
"finishingShortly": "即将完成",
"step": {
"thumbnailsEmbedded": "缩略图嵌入:",
"descriptionsEmbedded": "描述嵌入:",
"trackedObjectsProcessed": "追踪目标已处理: "
}
},
"downloadingModels": {
"context": "Frigate正在下载支持语义搜索功能所需的嵌入模型。根据网络连接速度,这可能需要几分钟。",
"setup": {
"visionModel": "视觉模型",
"visionModelFeatureExtractor": "视觉模型特征提取器",
"textModel": "文本模型",
"textTokenizer": "文本分词器"
},
"tips": {
"context": "模型下载完成后,您可能需要重新索引追踪目标的嵌入。",
"documentation": "阅读文档"
},
"error": "发生错误。请检查Frigate日志。"
}
},
"trackedObjectDetails": "目标追踪详情",
"type": {
"details": "详情",
"snapshot": "快照",
"video": "视频",
"object_lifecycle": "目标全周期",
"thumbnail": "缩略图",
"tracking_details": "追踪详情"
},
"objectLifecycle": {
"title": "目标全周期",
"noImageFound": "未找到此时间戳的图像。",
"createObjectMask": "创建目标/物体遮罩",
"adjustAnnotationSettings": "调整标注设置",
"scrollViewTips": "滚动查看此目标全周期的关键节点。",
"autoTrackingTips": "自动跟踪摄像头的边界框位置可能不准确。",
"lifecycleItemDesc": {
"visible": "检测到 {{label}}",
"entered_zone": "{{label}} 进入 {{zones}}",
"active": "{{label}} 变为活动状态",
"stationary": "{{label}} 变为静止状态",
"attribute": {
"faceOrLicense_plate": "检测到 {{label}} 的 {{attribute}}",
"other": "{{label}} 识别为 {{attribute}}"
},
"gone": "{{label}} 离开",
"heard": "听到 {{label}}",
"external": "检测到 {{label}}",
"header": {
"ratio": "得分",
"zones": "区域",
"area": "坐标区域"
}
},
"annotationSettings": {
"title": "标注设置",
"showAllZones": {
"title": "显示所有区域",
"desc": "始终在目标进入区域的帧上显示区域标记。"
},
"offset": {
"label": "标注偏移",
"desc": "这些数据来自摄像头的检测源,但是叠加在录制源的图像上。这两个流不太可能完全同步。因此,边界框和录像不会完全对齐。但是,可以使用 <code>annotation_offset</code> 字段来调整这个问题。",
"documentation": "阅读文档 ",
"millisecondsToOffset": "检测标注的偏移毫秒数。<em>默认值:0</em>",
"tips": "提示:假设有一个人从左向右走的事件片段。如果事件时间线上的边界框始终在人的左侧,则应该减小该值。同样,如果一个人从左向右走,而边界框始终在人的前面,则应该增加该值。",
"toast": {
"success": "{{camera}} 的标注偏移量已成功保存至配置文件。请重启Frigate生效。"
}
}
},
"carousel": {
"previous": "上一张",
"next": "下一张"
},
"count": "第 {{first}} 个,共 {{second}} 个",
"trackedPoint": "追踪点"
},
"details": {
"item": {
"title": "回放项目详情",
"desc": "核查项详情",
"button": {
"share": "分享该核查项",
"viewInExplore": "在 浏览 中查看"
},
"tips": {
"mismatch_other": "检测到 {{count}} 个不可用的目标,并已包含在此核查项中。这些目标可能未达到警报或检测标准,或者已被清理/删除。",
"hasMissingObjects": "如果希望 Frigate 保存 <em>{{objects}}</em> 标签的追踪目标,请调整您的配置"
},
"toast": {
"success": {
"regenerate": "已向 {{provider}} 请求新的描述。根据提供商的速度,生成新描述可能需要一些时间。",
"updatedSublabel": "成功更新子标签。",
"updatedLPR": "成功更新车牌。",
"audioTranscription": "成功请求音频转录。根据你运行 Frigate 的服务器速度,转录可能需要一些时间才能完成。"
},
"error": {
"regenerate": "调用 {{provider}} 生成新描述失败:{{errorMessage}}",
"updatedSublabelFailed": "更新子标签失败:{{errorMessage}}",
"updatedLPRFailed": "更新车牌失败:{{errorMessage}}",
"audioTranscription": "请求音频转录失败:{{errorMessage}}"
}
}
},
"label": "标签",
"editSubLabel": {
"title": "编辑子标签",
"desc": "为 {{label}} 输入新的子标签",
"descNoLabel": "为该追踪目标输入新的子标签"
},
"topScore": {
"label": "最高得分",
"info": "最高分是追踪目标的中位分数最高值,因此可能与搜索结果缩略图中显示的分数有所不同。"
},
"estimatedSpeed": "预计速度",
"objects": "目标/物体",
"camera": "摄像头",
"zones": "区域",
"timestamp": "时间戳",
"button": {
"findSimilar": "查找相似项",
"regenerate": {
"title": "重新生成",
"label": "重新生成追踪目标的描述"
}
},
"description": {
"label": "描述",
"placeholder": "追踪目标的描述",
"aiTips": "在追踪目标的目标全周期结束之前,Frigate 不会向您的生成式 AI 提供商请求描述。"
},
"expandRegenerationMenu": "展开重新生成菜单",
"regenerateFromSnapshot": "从快照重新生成",
"regenerateFromThumbnails": "从缩略图重新生成",
"tips": {
"descriptionSaved": "已保存描述",
"saveDescriptionFailed": "更新描述失败:{{errorMessage}}"
},
"editLPR": {
"desc": "为 {{label}} 输入新的车牌值",
"descNoLabel": "为检测到的目标输入新的车牌值",
"title": "编辑车牌"
},
"recognizedLicensePlate": "识别的车牌",
"snapshotScore": {
"label": "快照得分"
},
"score": {
"label": "分值"
}
},
"itemMenu": {
"downloadVideo": {
"label": "下载视频",
"aria": "下载视频"
},
"downloadSnapshot": {
"label": "下载快照",
"aria": "下载快照"
},
"viewObjectLifecycle": {
"label": "查看目标全周期",
"aria": "显示目标的全周期"
},
"findSimilar": {
"label": "查找相似项",
"aria": "查看相似的目标/物体"
},
"submitToPlus": {
"label": "提交至 Frigate+",
"aria": "提交至 Frigate Plus"
},
"viewInHistory": {
"label": "在历史记录中查看",
"aria": "在历史记录中查看"
},
"deleteTrackedObject": {
"label": "删除此追踪目标"
},
"addTrigger": {
"label": "添加触发器",
"aria": "为该追踪目标添加触发器"
},
"audioTranscription": {
"label": "转录",
"aria": "请求音频转录"
},
"showObjectDetails": {
"label": "显示目标轨迹"
},
"hideObjectDetails": {
"label": "隐藏目标轨迹"
},
"viewTrackingDetails": {
"label": "查看追踪详情",
"aria": "显示追踪详情"
},
"downloadCleanSnapshot": {
"label": "下载干净快照",
"aria": "下载干净快照"
}
},
"dialog": {
"confirmDelete": {
"title": "确认删除",
"desc": "删除此追踪目标后,将移除快照、所有已保存的嵌入向量数据以及任何相关的目标追踪详情条目,但在 历史 页面中追踪目标的录制视频片段<em>不会</em>被删除。<br /><br />你确定要继续删除该追踪目标吗?"
}
},
"noTrackedObjects": "未找到追踪目标",
"fetchingTrackedObjectsFailed": "获取追踪目标失败:{{errorMessage}}",
"trackedObjectsCount_other": "{{count}} 个追踪目标 ",
"searchResult": {
"deleteTrackedObject": {
"toast": {
"success": "删除追踪目标成功。",
"error": "删除追踪目标失败:{{errorMessage}}"
}
},
"tooltip": "与 {{type}} 匹配度为 {{confidence}}%",
"previousTrackedObject": "上一个追踪目标",
"nextTrackedObject": "下一个追踪目标"
},
"exploreMore": "浏览更多的 {{label}}",
"aiAnalysis": {
"title": "AI分析"
},
"concerns": {
"label": "风险等级"
},
"trackingDetails": {
"title": "追踪细节",
"noImageFound": "在该时间内没找到图片。",
"createObjectMask": "创建目标遮罩",
"adjustAnnotationSettings": "调整注释设置",
"scrollViewTips": "点击以查看该目标全周期中的关键时刻。",
"autoTrackingTips": "自动追踪摄像头的边框定位可能不准确。",
"count": "{{first}} / {{second}}",
"trackedPoint": "追踪点",
"lifecycleItemDesc": {
"visible": "已检测到 {{label}}",
"entered_zone": "{{label}} 进入 {{zones}}",
"active": "{{label}} 正在活动",
"stationary": "{{label}} 变为静止",
"attribute": {
"faceOrLicense_plate": "检测到 {{label}} 的 {{attribute}} 属性",
"other": "{{label}} 被识别为 {{attribute}}"
},
"gone": "{{label}} 离开",
"heard": "{{label}} 被听到",
"external": "已检测到 {{label}}",
"header": {
"zones": "区",
"ratio": "占比",
"area": "坐标区域",
"score": "分数"
}
},
"annotationSettings": {
"title": "标记设置",
"showAllZones": {
"title": "显示所有区",
"desc": "在目标进入区域的帧中始终显示区域框。"
},
"offset": {
"label": "标记偏移量",
"desc": "此数据来自摄像头的检测视频流,但叠加在录制视频流的画面上。两个视频流可能不会完全同步,因此边框与画面可能无法完全对齐。可以使用此设置将标记在时间轴上向前或向后偏移,以更好地与录制画面对齐。",
"millisecondsToOffset": "用于偏移检测标记的毫秒数。<em> 默认值:0</em>",
"tips": "提示:假设有一段人从左向右走的事件录制,如果事件时间轴中的边框始终在人的左侧(即后方),则应该减小偏移值;反之,如果边框始终领先于人物,则应增大偏移值。",
"toast": {
"success": "{{camera}} 的标记偏移量已保存。"
}
}
},
"carousel": {
"previous": "上一张图",
"next": "下一张图"
}
}
}
@@ -0,0 +1,23 @@
{
"documentTitle": "导出 - Frigate",
"search": "搜索",
"noExports": "没有找到导出的项目",
"deleteExport": "删除导出的项目",
"deleteExport.desc": "你确定要删除 {{exportName}} 吗?",
"editExport": {
"title": "重命名导出",
"desc": "为此导出项目输入新名称。",
"saveExport": "保存导出"
},
"toast": {
"error": {
"renameExportFailed": "重命名导出失败:{{errorMessage}}"
}
},
"tooltip": {
"shareExport": "分享导出",
"downloadVideo": "下载视频",
"editName": "编辑名称",
"deleteExport": "删除导出"
}
}
@@ -0,0 +1,98 @@
{
"description": {
"addFace": "我们将引导你如何向人脸库中添加新的特征库。",
"placeholder": "请输入此特征库的名称",
"invalidName": "名称无效。名称只能包含字母、数字、空格、撇号、下划线和连字符。"
},
"details": {
"person": "人",
"confidence": "置信度",
"face": "人脸详情",
"faceDesc": "生成此人脸特征的追踪目标详细信息",
"timestamp": "时间戳",
"subLabelScore": "子标签得分",
"scoreInfo": "子标签分数是基于所有识别到的人脸置信度的加权评分,因此可能与快照中显示的分数有所不同。",
"unknown": "未知"
},
"documentTitle": "人脸库 - Frigate",
"uploadFaceImage": {
"title": "上传人脸图片",
"desc": "上传图片以扫描人脸并包含在{{pageToggle}}中"
},
"createFaceLibrary": {
"title": "创建特征库",
"desc": "创建一个新的特征库",
"new": "新建人脸",
"nextSteps": "建议按以下步骤建立可靠的特征库:<li>使用<em>近期识别记录</em>选项卡为每个检测到的人员选择并训练图像</li><li>优先使用正脸图像以获得最佳效果,尽可能避免使用侧脸图像进行训练</li></ul>"
},
"train": {
"title": "近期识别记录",
"aria": "选择近期识别记录",
"empty": "近期未检测到人脸识别操作",
"titleShort": "近期"
},
"selectItem": "选择 {{item}}",
"selectFace": "选择人脸",
"deleteFaceLibrary": {
"title": "删除名称",
"desc": "确定要删除特征库 {{name}} 吗?此操作将永久删除所有关联的人脸特征数据。"
},
"button": {
"deleteFaceAttempts": "删除人脸",
"addFace": "添加人脸",
"uploadImage": "上传图片",
"reprocessFace": "重新处理人脸",
"renameFace": "重命名人脸",
"deleteFace": "删除人脸"
},
"imageEntry": {
"validation": {
"selectImage": "请选择图片文件。"
},
"dropActive": "拖动图片文件到这里…",
"dropInstructions": "拖动或粘贴图片文件到此处,也可以点击选择文件",
"maxSize": "最大文件大小:{{size}}MB"
},
"readTheDocs": "阅读文档",
"trainFaceAs": "将人脸特征训练为:",
"trainFace": "训练人脸特征",
"toast": {
"success": {
"uploadedImage": "图片上传成功。",
"addFaceLibrary": "{{name}} 已成功添加至人脸库!",
"deletedFace_other": "成功删除 {{count}} 个 人脸特征。",
"deletedName_other": "成功删除 {{count}} 个 人脸特征。",
"trainedFace": "人脸特征训练成功。",
"updatedFaceScore": "更新 {{name}} 人脸特征评分({{score}})成功。",
"renamedFace": "成功重命名人脸为{{name}}"
},
"error": {
"uploadingImageFailed": "图片上传失败:{{errorMessage}}",
"addFaceLibraryFailed": "人脸命名失败:{{errorMessage}}",
"deleteFaceFailed": "删除失败:{{errorMessage}}",
"deleteNameFailed": "特征集删除失败:{{errorMessage}}",
"trainFailed": "训练失败:{{errorMessage}}",
"updateFaceScoreFailed": "更新人脸评分失败:{{errorMessage}}",
"renameFaceFailed": "重命名人脸失败:{{errorMessage}}"
}
},
"steps": {
"faceName": "输入人脸姓名",
"uploadFace": "上传人脸照片",
"nextSteps": "下一步",
"description": {
"uploadFace": "上传一张{{name}}的正面人脸照片。图片无需裁剪为仅显示面部。"
}
},
"renameFace": {
"desc": "为 {{name}} 输入新的名称",
"title": "重命名人脸"
},
"collections": "特征库",
"deleteFaceAttempts": {
"desc_other": "你确定要删除 {{count}} 张人脸数据吗?此操作不可撤销。",
"title": "删除人脸"
},
"pixels": "{{area}} 像素",
"nofaces": "没有可用的人脸"
}
@@ -0,0 +1,189 @@
{
"documentTitle": "实时监控 - Frigate",
"documentTitle.withCamera": "{{camera}} - 实时监控 - Frigate",
"lowBandwidthMode": "低带宽模式",
"twoWayTalk": {
"enable": "开启实时对话",
"disable": "关闭实时通话"
},
"cameraAudio": {
"enable": "开启音频输出",
"disable": "关闭音频输出"
},
"ptz": {
"move": {
"clickMove": {
"label": "点击画面以使摄像头居中",
"enable": "启用点击移动",
"disable": "禁用点击移动"
},
"left": {
"label": "PTZ摄像头向左移动"
},
"up": {
"label": "PTZ摄像头向上移动"
},
"down": {
"label": "PTZ摄像头向下移动"
},
"right": {
"label": "PTZ摄像头向右移动"
}
},
"zoom": {
"in": {
"label": "PTZ摄像头放大"
},
"out": {
"label": "PTZ摄像头缩小"
}
},
"frame": {
"center": {
"label": "点击将PTZ摄像头画面居中"
}
},
"presets": "PTZ摄像头预设",
"focus": {
"in": {
"label": "PTZ摄像头聚焦"
},
"out": {
"label": "PTZ摄像头拉远"
}
}
},
"camera": {
"enable": "开启摄像头",
"disable": "关闭摄像头"
},
"muteCameras": {
"enable": "屏蔽所有摄像头",
"disable": "取消屏蔽所有摄像头"
},
"detect": {
"enable": "启用检测",
"disable": "关闭检测"
},
"recording": {
"enable": "启用录制",
"disable": "关闭录制"
},
"snapshots": {
"enable": "启用快照",
"disable": "关闭快照"
},
"audioDetect": {
"enable": "启用音频检测",
"disable": "关闭音频检测"
},
"autotracking": {
"enable": "启用自动追踪",
"disable": "关闭自动追踪"
},
"streamStats": {
"enable": "显示视频流统计信息",
"disable": "隐藏视频流统计信息"
},
"manualRecording": {
"title": "按需录制",
"tips": "根据此摄像头的录像存储设置,可以下载即时快照或手动触发事件记录。",
"playInBackground": {
"label": "后台播放",
"desc": "启用此选项可在播放器隐藏时继续视频流播放。"
},
"showStats": {
"label": "显示统计信息",
"desc": "启用此选项可在摄像头画面上叠加显示视频流统计信息。"
},
"debugView": "调试视图",
"start": "开始手动按需录制",
"started": "已启用手动按需录制。",
"failedToStart": "启动手动录制失败。",
"recordDisabledTips": "由于此摄像头的配置中禁用了录制或对其进行了限制,将只会保存快照。",
"end": "停止手动按需录制",
"ended": "已完成手动按需录制。",
"failedToEnd": "停止手动录制失败。"
},
"streamingSettings": "视频流设置",
"notifications": "通知",
"audio": "音频",
"suspend": {
"forTime": "暂停时长: "
},
"stream": {
"title": "视频流",
"audio": {
"tips": {
"title": "音频必须从摄像头输出并在 go2rtc 中配置为此视频流使用。",
"documentation": "阅读文档 "
},
"available": "此视频流支持音频",
"unavailable": "此视频流不支持音频"
},
"twoWayTalk": {
"tips": "您的设备必须支持此功能,并且必须配置 WebRTC 以支持双向对讲。",
"tips.documentation": "阅读文档 ",
"available": "此视频流支持双向对讲",
"unavailable": "此视频流不支持双向对讲"
},
"lowBandwidth": {
"tips": "由于缓冲或视频流错误,实时视图处于低带宽模式。",
"resetStream": "重置视频流"
},
"playInBackground": {
"label": "后台播放",
"tips": "启用此选项可在播放器隐藏时继续视频流播放。"
},
"debug": {
"picker": "调试模式下无法切换视频流。调试将始终使用检测(detect)功能的视频流。"
}
},
"cameraSettings": {
"title": "{{camera}} 设置",
"cameraEnabled": "摄像头已启用",
"objectDetection": "目标检测",
"recording": "录制",
"snapshots": "快照",
"audioDetection": "音频检测",
"autotracking": "自动追踪",
"transcription": "音频转录"
},
"history": {
"label": "显示历史录像"
},
"effectiveRetainMode": {
"modes": {
"all": "全部",
"motion": "画面变动",
"active_objects": "活动目标"
},
"notAllTips": "您的 {{source}} 录制保留配置设置为 <code>mode: {{effectiveRetainMode}}</code>,因此此按需录制将仅保留包含 {{effectiveRetainModeName}} 的片段。"
},
"editLayout": {
"label": "编辑布局",
"group": {
"label": "编辑摄像头分组"
},
"exitEdit": "退出编辑"
},
"transcription": {
"enable": "启用实时音频转录",
"disable": "关闭实时音频转录"
},
"noCameras": {
"title": "未设置摄像头",
"description": "准备开始连接摄像头至 Frigate 。",
"buttonText": "添加摄像头",
"restricted": {
"title": "无可用摄像头",
"description": "你没有权限查看此分组中的任何摄像头。"
}
},
"snapshot": {
"takeSnapshot": "下载即时快照",
"noVideoSource": "当前无可用于快照的视频源。",
"captureFailed": "捕获快照失败。",
"downloadStarted": "快照下载已开始。"
}
}
@@ -0,0 +1,12 @@
{
"export": "导出",
"calendar": "日历",
"filter": "过滤器",
"filters": "筛选条件",
"toast": {
"error": {
"noValidTimeSelected": "未选择有效的时间范围",
"endTimeMustAfterStartTime": "结束时间必须晚于开始时间"
}
}
}
@@ -0,0 +1,74 @@
{
"search": "搜索",
"savedSearches": "已保存的搜索",
"searchFor": "搜索 {{inputValue}}",
"button": {
"clear": "清除搜索",
"save": "保存搜索",
"delete": "删除已保存的搜索",
"filterInformation": "筛选信息",
"filterActive": "筛选器已激活"
},
"trackedObjectId": "追踪目标 ID",
"filter": {
"label": {
"cameras": "摄像头",
"labels": "标签",
"zones": "区域",
"sub_labels": "子标签",
"search_type": "搜索类型",
"time_range": "时间范围",
"before": "之前",
"after": "之后",
"min_score": "最低分数",
"max_score": "最高分数",
"min_speed": "最低速度",
"max_speed": "最高速度",
"recognized_license_plate": "识别的车牌",
"has_clip": "包含片段",
"has_snapshot": "包含快照"
},
"searchType": {
"thumbnail": "缩略图",
"description": "描述"
},
"toast": {
"error": {
"beforeDateBeLaterAfter": "结束日期必须晚于开始日期。",
"afterDatebeEarlierBefore": "开始日期必须早于结束日期。",
"minScoreMustBeLessOrEqualMaxScore": "最低分数必须小于或等于最高分数。",
"maxScoreMustBeGreaterOrEqualMinScore": "最高分数必须大于或等于最低分数。",
"minSpeedMustBeLessOrEqualMaxSpeed": "最低速度必须小于或等于最高速度。",
"maxSpeedMustBeGreaterOrEqualMinSpeed": "最高速度必须大于或等于最低速度。"
}
},
"tips": {
"title": "如何使用文本筛选器",
"desc": {
"text": "筛选器可帮助您缩小搜索范围。注意,目前还暂不支持中文搜索。以下是在输入字段中使用筛选器的方法:",
"step": "<ul className=\"list-disc pl-5 text-sm text-primary-variant\"><li>输入筛选器名称后跟一个冒号(例如:“cameras:”)。</li><li>从建议中选择一个值或输入您自己的值。</li><li>使用多个筛选器时,可以在它们之间用空格分隔。</li><li>日期筛选器(before: 和 after:)使用 <em>{{DateFormat}}</em> 格式。</li><li>时间范围筛选器使用 <em>{{exampleTime}}</em> 格式。</li><li>点击筛选器旁边的“x”即可移除筛选条件。</li></ul>",
"example": "示例:<code className=\"text-primary\">cameras:front_door label:person before:01012024 time_range:3:00PM-4:00PM</code>",
"step2": "选择给出的建议值或自行输入;",
"step3": "多个过滤器之间用空格分隔;",
"step5": "时间范围过滤器使用 {{exampleTime}} 格式;",
"step6": "点击过滤器旁的'x'可移除该过滤选项。",
"exampleLabel": "范例:",
"step1": "输入过滤键名后接英文冒号(例如 \"cameras:\" );",
"step4": "日期过滤器(before: 和 after:)使用 {{DateFormat}} 格式;"
}
},
"header": {
"currentFilterType": "筛选值",
"noFilters": "筛选条件",
"activeFilters": "激活的筛选项"
}
},
"similaritySearch": {
"title": "相似搜索",
"active": "相似搜索已激活",
"clear": "清除相似搜索"
},
"placeholder": {
"search": "搜索…"
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,198 @@
{
"documentTitle": {
"cameras": "摄像头统计 - Frigate",
"storage": "存储统计 - Frigate",
"general": "常规统计 - Frigate",
"enrichments": "增强功能统计 - Frigate",
"logs": {
"frigate": "Frigate 日志 - Frigate",
"go2rtc": "Go2RTC 日志 - Frigate",
"nginx": "Nginx 日志 - Frigate"
}
},
"title": "系统",
"metrics": "系统指标",
"logs": {
"download": {
"label": "下载日志"
},
"copy": {
"label": "复制到剪贴板",
"success": "已复制日志到剪贴板",
"error": "无法复制日志到剪贴板"
},
"type": {
"label": "类型",
"timestamp": "时间戳",
"tag": "标签",
"message": "消息"
},
"tips": "日志正在从服务器流式传输",
"toast": {
"error": {
"fetchingLogsFailed": "获取日志出错:{{errorMessage}}",
"whileStreamingLogs": "流式传输日志时出错:{{errorMessage}}"
}
}
},
"general": {
"title": "常规",
"detector": {
"title": "检测器",
"inferenceSpeed": "检测器推理速度",
"cpuUsage": "检测器CPU使用率",
"memoryUsage": "检测器内存使用率",
"temperature": "检测器温度",
"cpuUsageInformation": "用于准备输入和输出数据的 CPU 资源,这些数据是供检测模型使用或由检测模型产生的。该数值并不衡量推理过程中的 CPU 使用情况,即使使用了 GPU 或加速器也是如此。"
},
"hardwareInfo": {
"title": "硬件信息",
"gpuUsage": "GPU使用率",
"gpuMemory": "GPU显存",
"gpuEncoder": "GPU编码",
"gpuDecoder": "GPU解码",
"gpuInfo": {
"vainfoOutput": {
"title": "Vainfo 输出",
"returnCode": "返回代码:{{code}}",
"processOutput": "进程输出:",
"processError": "进程错误:"
},
"nvidiaSMIOutput": {
"title": "Nvidia SMI 输出",
"name": "名称:{{name}}",
"driver": "驱动:{{driver}}",
"cudaComputerCapability": "CUDA计算能力:{{cuda_compute}}",
"vbios": "VBios信息:{{vbios}}"
},
"closeInfo": {
"label": "关闭GPU信息"
},
"copyInfo": {
"label": "复制GPU信息"
},
"toast": {
"success": "已复制GPU信息到剪贴板"
}
},
"npuMemory": "NPU内存",
"npuUsage": "NPU使用率",
"intelGpuWarning": {
"title": "Intel GPU 处于警告状态",
"message": "GPU 状态不可用",
"description": "这是 Intel 的 GPU 状态报告工具(intel_gpu_top)的已知问题:该工具会失效并反复返回 GPU 使用率为 0%,即使在硬件加速和目标检测已在 (i)GPU 上正常运行的情况下也是如此,这并不是 Frigate 的 bug。你可以通过重启主机来临时修复该问题,并确认 GPU 正常工作。该问题并不会影响性能。"
}
},
"otherProcesses": {
"title": "其他进程",
"processCpuUsage": "主进程CPU使用率",
"processMemoryUsage": "主进程内存使用率"
}
},
"storage": {
"title": "存储",
"overview": "概览",
"recordings": {
"title": "录制内容",
"tips": "该值表示 Frigate 数据库中录制内容所使用的总存储空间。Frigate 不会追踪磁盘上所有文件的存储使用情况。",
"earliestRecording": "最早的可用录制:"
},
"cameraStorage": {
"title": "摄像头存储",
"camera": "摄像头",
"unusedStorageInformation": "未使用存储信息",
"storageUsed": "存储使用",
"percentageOfTotalUsed": "总使用率",
"bandwidth": "带宽",
"unused": {
"title": "未使用",
"tips": "如果您的驱动器上存储了除 Frigate 录制内容之外的其他文件,该值可能无法准确反映 Frigate 可用的剩余空间。Frigate 不会追踪录制内容以外的存储使用情况。"
}
},
"shm": {
"title": "共享内存(SHM)分配",
"warning": "当前共享内存(SHM)容量过小( {{total}}MB),请将其至少增加到 {{min_shm}}MB。"
}
},
"cameras": {
"title": "摄像头",
"overview": "概览",
"info": {
"cameraProbeInfo": "{{camera}} 的摄像头信息",
"streamDataFromFFPROBE": "流数据信息通过<code>ffprobe</code>获取。",
"fetching": "正在获取摄像头数据",
"stream": "视频流{{idx}}",
"video": "视频:",
"codec": "编解码器:",
"resolution": "分辨率:",
"fps": "帧率:",
"unknown": "未知",
"audio": "音频:",
"error": "错误:{{error}}",
"tips": {
"title": "摄像头信息"
},
"aspectRatio": "宽高比"
},
"framesAndDetections": "帧数/检测次数",
"label": {
"camera": "摄像头",
"detect": "检测",
"skipped": "跳过",
"ffmpeg": "FFmpeg编码器",
"capture": "捕获",
"overallFramesPerSecond": "每秒总帧数",
"overallDetectionsPerSecond": "每秒总检测数",
"overallSkippedDetectionsPerSecond": "每秒跳过检测数",
"cameraCapture": "{{camName}} 捕获",
"cameraDetect": "{{camName}} 检测",
"cameraDetectionsPerSecond": "{{camName}} 每秒检测数",
"cameraSkippedDetectionsPerSecond": "{{camName}} 每秒跳过检测数",
"cameraFfmpeg": "{{camName}} FFmpeg",
"cameraFramesPerSecond": "{{camName}} 每秒帧数"
},
"toast": {
"success": {
"copyToClipboard": "已复制检测数据到剪贴板。"
},
"error": {
"unableToProbeCamera": "无法检测到摄像头:{{errorMessage}}"
}
}
},
"lastRefreshed": "最后刷新时间: ",
"stats": {
"ffmpegHighCpuUsage": "{{camera}} 的 FFmpeg CPU 使用率较高({{ffmpegAvg}}%",
"detectHighCpuUsage": "{{camera}} 的 检测器 CPU 使用率较高({{detectAvg}}%",
"healthy": "系统运行正常",
"reindexingEmbeddings": "正在重新索引嵌入(已完成 {{processed}}%",
"detectIsSlow": "{{detect}} 运行缓慢({{speed}}毫秒)",
"detectIsVerySlow": "{{detect}} 运行非常缓慢({{speed}}毫秒)",
"cameraIsOffline": "{{camera}} 已离线",
"shmTooLow": "/dev/shm 的分配空间过低(当前 {{total}} MB),应至少增加到 {{min}} MB。"
},
"enrichments": {
"title": "增强功能",
"infPerSecond": "每秒推理次数",
"embeddings": {
"image_embedding_speed": "图像特征提取速度",
"face_embedding_speed": "人脸特征提取速度",
"plate_recognition_speed": "车牌识别速度",
"text_embedding_speed": "文本编码速度",
"face_recognition_speed": "人脸识别速度",
"image_embedding": "图像特征提取",
"text_embedding": "文字编码",
"face_recognition": "人脸特征提取",
"plate_recognition": "车牌识别",
"yolov9_plate_detection_speed": "YOLOv9 车牌检测速度",
"yolov9_plate_detection": "YOLOv9 车牌检测",
"review_description": "核查描述",
"review_description_speed": "核查描述速度",
"review_description_events_per_second": "核查描述",
"object_description": "目标描述",
"object_description_speed": "目标描述速度",
"object_description_events_per_second": "目标描述"
},
"averageInf": "平均推理时间"
}
}