Downloads · 30 days
24
4% of all-time downloads
phronetic-ai/owlet-har-1
owlet-har-1 is a video classification model from phronetic-ai. Use it for the video classification task on the model card, and read the license before you ship it in a product. It is set up for transformers. The card lists the license as apache-2.0.
Owlet-HAR-1 is a fine-tuned vision-language model specialized for human activity recognition in videos. Built on Qwen2.5-3B-VL, this model achieves 68.19% accuracy on the HMDB51 dataset, representing a significant imp…
Downloads · 30 days
24
4% of all-time downloads
All-time downloads
539
Public
Parameters
3.8B
7.5 GB on disk
Likes
2
Trending 1
Click a slice to open those files.
.safetensors7.5 GB · 100%
From the Hugging Face model README
Owlet-HAR-1 is a fine-tuned vision-language model specialized for human activity recognition in videos. Built on Qwen2.5-3B-VL, this model achieves 68.19% accuracy on the HMDB51 dataset, representing a significant improvement over the base model's 38.33% accuracy.
Owlet-HAR-1 is a specialized vision-language model fine-tuned for human activity recognition tasks. The model processes video input and classifies human activities across 51 different action categories, ranging from facial expressions to complex body movements and object interactions.
The model is designed for direct video activity recognition tasks. It takes video input and outputs a single word describing the primary human activity being performed. The model could be used for:
The model can be integrated into larger systems for:
from transformers import Qwen2VLForConditionalGeneration, AutoTokenizer, AutoProcessor
from qwen_vl_utils import process_vision_info
import torch
# Load the model and processor
model = Qwen2VLForConditionalGeneration.from_pretrained(
"phronetic-ai/owlet-har-1",
torch_dtype=torch.bfloat16,
device_map="auto",
trust_remote_code=True
)
processor = AutoProcessor.from_pretrained("phronetic-ai/owlet-har-1", trust_remote_code=True)
# Video inference - Multiple input methods supported:
# Method 1: Using video frames as image list
messages = [
{
"role": "user",
"content": [
{
"type": "video",
"video": [
"file:///path/to/frame1.jpg",
"file:///path/to/frame2.jpg",
"file:///path/to/frame3.jpg",
"file:///path/to/frame4.jpg",
],
},
{"type": "text", "text": "What's the activity the person is doing in this video? Answer in one word only."},
],
}
]
# Method 2: Using local video file
messages = [
{
"role": "user",
"content": [
{
"type": "video",
"video": "file:///path/to/your_video.mp4",
"max_pixels": 360 * 420,
"fps": 1.0,
},
{"type": "text", "text": "What's the activity the person is doing in this video? Answer in one word only."},
],
}
]
# Method 3: Using video URL
messages = [
{
"role": "user",
"content": [
{
"type": "video",
"video": "https://your-video-url.com/video.mp4",
},
{"type": "text", "text": "What's the activity the person is doing in this video? Answer in one word only."},
],
}
]
# Preparation for inference
text = processor.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
image_inputs, video_inputs, video_kwargs = process_vision_info(messages, return_video_kwargs=True)
inputs = processor(
text=[text],
images=image_inputs,
videos=video_inputs,
padding=True,
return_tensors="pt",
**video_kwargs,
)
inputs = inputs.to("cuda")
# Inference
generated_ids = model.generate(**inputs, max_new_tokens=128)
generated_ids_trimmed = [
out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(f"Detected activity: {output_text[0]}")
The model was fine-tuned on the HMDB51 dataset, which contains:
Evaluated on HMDB51 test split using the same 51 activity.
The model demonstrates strong performance on structured activities (gymnastics, specific movements) but struggles with activities involving rapid motion or complex object interactions. The 68.19% accuracy represents a 29.86 percentage point improvement over the base Qwen2.5-3B-VL model.
The model is trained to classify human activities in videos using a text generation objective, where the model generates a single word representing the detected activity.
If you use this model in your research, please cite:
BibTeX:
@misc{owlet-har-1,
title={Owlet-HAR-1: Human Activity Recognition Vision Language Model},
author={Phronetic AI},
year={2025},
url={https://huggingface.co/phronetic-ai/owlet-har-1}
}
APA: Phronetic AI. (2024). Owlet-HAR-1: Human Activity Recognition Vision Language Model. Hugging Face. https://huggingface.co/phronetic-ai/owlet-har-1
Phronetic AI Research Team
For questions about this model, please contact: [email protected]