ट्यूटोरियल5 मिनट में पढ़ें
फ़्रेम-दर-फ़्रेम नियंत्रण के साथ वीडियो एनोटेशन
Potato में वीडियो एनोटेशन सेट कीजिए: फ़्रेम-दर-फ़्रेम नेविगेशन, समय के निशान, घटनाओं की समय-आधारित लेबलिंग, और radio या span स्कीमा से हर खंड का वर्गीकरण।
Potato Team
क्रिया पहचान, वस्तु ट्रैकिंग और समय पर आधारित घटना पहचान जैसे कामों का प्रशिक्षण डेटा वीडियो एनोटेशन से ही बनता है। यह ट्यूटोरियल फ़्रेम नेविगेशन, किसी क्लिप को समय में बाँटने, और लेबलिंग की रफ़्तार बनाए रखने की बात करता है। वीडियो स्कीमा की पूरी सूची के लिए स्रोत दस्तावेज़ देखें।
वीडियो एनोटेशन से क्या-क्या हो सकता है
Potato वीडियो पर लेबलिंग और वर्गीकरण, दोनों तरह के कार्य सँभालता है:
- वीडियो वर्गीकरण: पूरी क्लिप पर लेबल लगाना
- कई लेबल वाली टैगिंग: एक वीडियो पर कई टैग लगाना
- समय पर आधारित एनोटेशन: वीडियो में घटनाएँ चिह्नित करना
बुनियादी वीडियो सेटअप
yaml
annotation_task_name: "Video Action Recognition"
task_dir: "."
data_files:
- "data/videos.json"
item_properties:
id_key: id
text_key: video_url
output_annotation_dir: "annotation_output/"
export_annotation_format: "jsonl"
annotation_schemes:
- annotation_type: video_annotation
name: action
description: "Mark each stretch of video where one action is happening"
mode: segment
labels:
- name: walking
color: "#4ECDC4"
key_value: "1"
- name: running
color: "#FF6B6B"
key_value: "2"
- name: jumping
color: "#45B7D1"
key_value: "3"
- name: sitting
color: "#FFEAA7"
key_value: "4"
user_config:
allow_all_users: trueफ़्रेम-दर-फ़्रेम नेविगेशन
yaml
min_segments: 1
label_requirement:
required: trueसमय-खंडों का एनोटेशन
घटनाओं को शुरू और ख़त्म होने के समय के साथ चिह्नित कीजिए:
yaml
annotation_schemes:
- annotation_type: video_annotation
name: frame_label
description: "Classify the current frame"
mode: frame
frame_stepping: true
show_timecode: true
video_fps: 30
labels:
- name: action
color: "#FF6B6B"
key_value: "1"
- name: no_action
color: "#9CA3AF"
key_value: "2"खंड बनाना
- घटना के शुरू होने की जगह पर जाइए
[दबाइए या Mark Start क्लिक कीजिए- घटना के ख़त्म होने की जगह पर जाइए
]दबाइए या Mark End क्लिक कीजिए- घटना का लेबल चुनिए
- बाक़ी सभी घटनाओं के लिए यही दोहराइए
अहम पलों को चिह्नित करना
किसी क्लिप के भीतर ख़ास पलों पर टैग लगाइए:
yaml
annotation_schemes:
- annotation_type: video_annotation
name: key_moments
description: "Mark the moment each action begins, peaks, and ends"
mode: keyframe
labels:
- name: action_start
color: "#22C55E"
key_value: "1"
- name: action_peak
color: "#EF4444"
key_value: "2"
- name: action_end
color: "#3B82F6"
key_value: "3"हर वीडियो का वर्गीकरण
आम एनोटेशन प्रकारों से पूरे वीडियो को वर्गीकृत कीजिए:
yaml
annotation_schemes:
- annotation_type: video_annotation
name: plays
description: "Mark each play and describe it"
mode: segment
labels:
- name: attack
color: "#EF4444"
- name: defense
color: "#3B82F6"
segment_schemes:
- annotation_type: radio
name: outcome
description: "How did this play end?"
labels: ["scored", "turnover", "out of play"]श्रेणी के लेबल वाला वीडियो
वीडियो पर श्रेणी के लेबल लगाइए:
yaml
annotation_schemes:
- annotation_type: multiselect
name: clip_tags
description: "Tags that apply to this clip as a whole"
labels:
- Highlight worthy
- Good camera angle
- Multiple players
- Close-up
- Wide shot
- Slow motion availableएक पूरा कॉन्फ़िगरेशन
yaml
annotation_task_name: "Sports Video Analysis"
task_dir: "."
data_files:
- "data/sports_clips.json"
item_properties:
id_key: id
text_key: video_url
output_annotation_dir: "annotations/"
export_annotation_format: "jsonl"
annotation_instructions: |
## Event marking
- Mark an event from the frame it **starts**, not from the frame it becomes obvious.
- Include the full play sequence in the segment.
- For a goal, run the segment from the shot to the ball crossing the line.
## Navigation
- `Space` plays and pauses, `,` and `.` step one frame.
- `[` and `]` set the segment boundaries, `Enter` creates the segment.
annotation_schemes:
- annotation_type: video_annotation
name: game_events
description: "Mark every game event and its duration"
mode: segment
frame_stepping: true
show_timecode: true
playback_rate_control: true
video_fps: 30
min_segments: 1
label_requirement:
required: true
labels:
- name: goal
color: "#22C55E"
key_value: "1"
- name: foul
color: "#EF4444"
key_value: "2"
- name: corner_kick
color: "#3B82F6"
key_value: "3"
- name: free_kick
color: "#F59E0B"
key_value: "4"
- name: penalty
color: "#EC4899"
key_value: "5"
- name: offside
color: "#8B5CF6"
key_value: "6"
- annotation_type: multiselect
name: clip_tags
description: "Tags that apply to this clip as a whole"
labels:
- Highlight worthy
- Good camera angle
- Multiple players
- Close-up
- Wide shot
- Slow motion available
user_config:
allow_all_users: trueआउटपुट प्रारूप
json
{
"video_metadata": {
"duration": 120.5,
"fps": 30,
"width": 1920,
"height": 1080
},
"segments": [
{
"id": "segment_1",
"start_time": 0.0,
"end_time": 10.5,
"start_frame": 0,
"end_frame": 315,
"label": "goal"
}
],
"frame_annotations": {
"450": {
"frame": 450,
"time": 15.0,
"label": "scene_change"
}
},
"keyframes": [
{
"id": "kf_1",
"frame": 900,
"time": 30.0,
"label": "important_moment",
"note": "Key dialogue"
}
],
"tracking": {}
}वीडियो एनोटेशन के लिए सुझाव
- पहले एक चक्कर पूरा देखिए: शुरुआत में सामान्य गति पर देख लीजिए
- सटीकता के लिए धीमी गति: ठीक-ठीक समय पकड़ने के लिए 0.25x इस्तेमाल कीजिए
- कीबोर्ड शॉर्टकट: माउस से कहीं तेज़ पड़ते हैं
- बीच में विराम लीजिए: वीडियो एनोटेशन आँखों पर भारी पड़ता है
- एक जैसी कसौटी: असामान्य मामलों को साफ़-साफ़ लिखकर रखिए
अगले क़दम
- वीडियो की गुणवत्ता आँकने के लिए छवियों की तुलना पढ़िए
- बड़े पैमाने के वीडियो एनोटेशन के लिए क्राउडसोर्सिंग सेट कीजिए
पूरे दस्तावेज़ छवि एनोटेशन पर हैं (वीडियो वाला खंड)।