I’m unable to generate valid training data from labeled video data because of incomplete/missing keyframe information in the export v2 JSON.
Our ontology has an optional radio category. We use an optional radio category to describe an activity that occurs in a classroom context. i.e. when a student walks off the frame, we choose NOT to apply a label from the respective radio category.
The keyframes data in the export JSON does not explicitly describe when a radio option is toggled on/off. Essentially, it only describes that a radio button option was clicked. I have no choice but to assume that every time a keyframe with the same category value is repeated in the export JSON, that that must be the user toggling on/off the value. That assumption is valid in most cases, but not all cases.
I captured this Loom video to demonstrate how the issue arises: Loom | Free Screen & Video Recording Software | Loom
And here’s a snippet of the problematic JSON. There should be two time periods/segments in which radio classification “A” applies: frames 1-9 and frames 15-240. Without providing the state of the radio classification button, the export v2 JSON formation lacks the necessary information for me to reconstruct these time periods/segments:
"annotations": {
"frames": {
"1": {
"objects": {},
"classifications": [
{
"feature_id": "cloywq54x00053b6n7lpmmdpx",
"feature_schema_id": "cloyvg6200e3u072qfo24esaj",
"name": "Keyframe Bug Demo Radio",
"radio_answer": {
"feature_id": "cloywq54x00063b6nrw2b1mi0",
"feature_schema_id": "cloyvg6200e3v072qhxyk2wpc",
"name": "A",
"classifications": []
}
}
]
},
"9": {
"objects": {},
"classifications": [
{
"feature_id": "cloywq54x00053b6n7lpmmdpx",
"feature_schema_id": "cloyvg6200e3u072qfo24esaj",
"name": "Keyframe Bug Demo Radio",
"radio_answer": {
"feature_id": "cloywq54x00063b6nrw2b1mi0",
"feature_schema_id": "cloyvg6200e3v072qhxyk2wpc",
"name": "A",
"classifications": []
}
}
]
},
"15": {
"objects": {},
"classifications": [
{
"feature_id": "cloywq54x00053b6n7lpmmdpx",
"feature_schema_id": "cloyvg6200e3u072qfo24esaj",
"name": "Keyframe Bug Demo Radio",
"radio_answer": {
"feature_id": "cloywq54x00063b6nrw2b1mi0",
"feature_schema_id": "cloyvg6200e3v072qhxyk2wpc",
"name": "A",
"classifications": []
}
}
]
},
"20": {
"objects": {},
"classifications": [
{
"feature_id": "cloywq54x00053b6n7lpmmdpx",
"feature_schema_id": "cloyvg6200e3u072qfo24esaj",
"name": "Keyframe Bug Demo Radio",
"radio_answer": {
"feature_id": "cloywq54x00063b6nrw2b1mi0",
"feature_schema_id": "cloyvg6200e3v072qhxyk2wpc",
"name": "A",
"classifications": []
}
}
]
},
"240": {
"objects": {},
"classifications": [
{
"feature_id": "cloywq54x00053b6n7lpmmdpx",
"feature_schema_id": "cloyvg6200e3u072qfo24esaj",
"name": "Keyframe Bug Demo Radio",
"radio_answer": {
"feature_id": "cloywq54x00063b6nrw2b1mi0",
"feature_schema_id": "cloyvg6200e3v072qhxyk2wpc",
"name": "A",
"classifications": []
}
}
]
}
},
"segments": {
"cloywq54x00053b6n7lpmmdpx": [
[
1,
1
],
[
9,
9
],
[
15,
15
],
[
20,
20
],
[
240,
240
]
]
},
"key_frame_feature_map": {
"cloywq54x00053b6n7lpmmdpx": [
1,
9,
15,
20,
240
]
},
"classifications": []
}
The solution to this bug would be to include one of following options in the export v2 JSON:
-
Include an attribute that describes the state of the radio category/button. i.e. if a keyframe represents a category option being selected/deselected or toggled on/off
-
Provide a keyframe grouping for keyframes that have a repeated category option and occur in sequence
In the meantime, I feel I have no option but to execute a custom GraphQL query that I’m able to scrape from your frontend UI.
(NOTE, I struggled with the same problem here Checkbox JSON output format)