影片標註
標註影片的時間片段、分類幀、標記關鍵幀和跟蹤物件。
Potato 提供全面的影片標註功能,包括時間分割、幀分類、關鍵幀標記和物件跟蹤。
標註模式
| 模式 | 描述 | 使用場景 |
|---|---|---|
segment | 標記時間範圍 | 場景檢測、說話人輪次 |
frame | 分類單個幀 | 幀級標註 |
keyframe | 標記重要時刻 | 高亮檢測 |
tracking | 跨幀跟蹤物件 | 物件跟蹤 |
combined | 在一個介面中使用所有模式 | 複雜標註任務 |
基本配置
yaml
annotation_schemes:
- name: "video_segments"配置選項
| 欄位 | 類型 | 預設值 | 描述 |
|---|---|---|---|
name | string | 必填 | 標註的唯一識別符號 |
description | string | 必填 | 顯示給標註者的說明 |
annotation_type | string | 必填 | 必須為 "video_annotation" |
labels | list | 必填 | 可用的標註標籤 |
mode | string | "segment" | 標註模式 |
min_segments | integer | 0 | 最少所需標註數 |
max_segments | integer | null | 最大允許標註數 |
timeline_height | integer | 70 | 時間軸高度(畫素) |
overview_height | integer | 40 | 概覽欄高度(畫素) |
zoom_enabled | boolean | true | 啟用時間軸縮放 |
playback_rate_control | boolean | true | 顯示播放速度選擇器 |
frame_stepping | boolean | true | 啟用逐幀導航 |
show_timecode | boolean | true | 顯示幀號和時間 |
video_fps | integer | 30 | 用於計算的影片幀率 |
標籤配置
標籤可以是簡單字串或帶顏色和鍵盤快捷鍵的詳細物件:
yaml
labels:
- name: "intro"
color: "#4ECDC4"
key_value: "1"
- name: "content"
color: "#3B82F6"
key_value: "2"
- name: "outro"
color: "#8B5CF6"
key_value: "3"按模式的示例
片段模式(預設)
標記帶有開始和結束時間的時間範圍:
yaml
annotation_schemes:
- name: "scene_detection"幀模式
分類單個幀:
yaml
annotation_schemes:
- name: "frame_quality"關鍵幀模式
標記重要時刻:
yaml
annotation_schemes:
- name: "highlights"跟蹤模式
使用邊界框跨幀跟蹤物件:
yaml
annotation_schemes:
- name: "object_tracking"組合模式
在一個介面中使用多種標註類型:
yaml
annotation_schemes:
- name: "comprehensive"影片顯示
用於簡單影片播放而不進行標註(例如與其他標註類型配合),使用 video 類型:
yaml
annotation_schemes:
- name: "video_player"鍵盤快捷鍵
| 按鍵 | 操作 |
|---|---|
Space | 播放/暫停 |
, / . | 上一幀/下一幀 |
[ | 標記片段起始 |
] | 標記片段結束 |
Enter | 建立片段 |
K | 標記關鍵幀 |
C | 分類當前幀 |
Delete | 刪除選中的標註 |
1-9 | 選擇標籤 |
+ / - | 放大/縮小 |
資料格式
輸入資料
資料檔案應包含影片路徑或 URL:
json
[
{
"id": "video_1",
"video_url": "https://example.com/videos/sample1.mp4",
"description": "Meeting recording - identify speakers"
},
{
"id": "video_2",
"video_url": "/data/videos/sample2.mp4",
"description": "Activity video - label actions"
}
]輸出格式
輸出因模式而異:
片段模式:
json
{
"id": "video_1",
"annotations": {
"scene_detection": [
{
"start": 0.0,
"end": 5.2,
"start_frame": 0,
"end_frame": 156,
"label": "indoor"
}
]
}
}幀模式:
json
{
"id": "video_1",
"annotations": {
"frame_quality": [
{
"frame": 120,
"time": 4.0,
"label": "good"
}
]
}
}關鍵幀模式:
json
{
"id": "video_1",
"annotations": {
"highlights": [
{
"frame": 450,
"time": 15.0,
"label": "goal",
"note": "First goal of the match"
}
]
}
}跟蹤模式:
json
{
"id": "video_1",
"annotations": {
"object_tracking": [
{
"id": "track_1",
"label": "ball",
"frames": [
{"frame": 0, "bbox": {"x": 100, "y": 200, "w": 30, "h": 30}},
{"frame": 1, "bbox": {"x": 105, "y": 198, "w": 30, "h": 30}}
]
}
]
}
}支援的影片格式
- MP4(推薦)
- WebM
- MOV
- OGG
影片物件跟蹤與關鍵幀插值
v2.2.0 新增
跟蹤模式現在支援關鍵幀插值,允許標註者在關鍵幀標記物件位置,中間幀會自動插值。這顯著加快了物件跟蹤任務。
yaml
annotation_schemes:
- name: "tracking"工作流程
- 導航到關鍵幀並在物件周圍繪製邊界框
- 跳過幾幀並重新定位邊界框
- 系統自動插值中間幀的位置
- 根據需要檢視和調整插值位置
完整的有效標註模式集為:segment、frame、keyframe、tracking 和 combined。
技術說明
- 使用 Peaks.js 進行時間軸視覺化
- 標準 HTML5 影片元素(無需額外伺服器依賴)
- 時間軸支援拖動選擇建立片段
最佳實踐
- 使用壓縮影片 - 大檔案會減慢載入速度
- 設定合適的幀率 - 使
video_fps與實際影片幀率匹配 - 啟用逐幀步進 - 精確幀級標註所必需
- 使用播放速率控制 - 慢動作有助於精細工作
- 提供清晰的片段定義 - 明確什麼構成片段邊界
- 使用獨特的顏色 - 使標籤在視覺上容易區分
- 考慮時間軸高度 - 對於複雜的分割任務可以增加高度