Skip to content

An Open-Source Annotated Thermal Human Pose Dataset

License

Notifications You must be signed in to change notification settings

IS2AI/OpenThermalPose

Repository files navigation

OpenThermalPose

An Open-Source Annotated Thermal Human Pose Dataset and Initial YOLOv8-Pose Baselines

The OpenThermalPose dataset provides 6,090 images of 31 subjects and 14,315 annotated human instances. Annotations include bounding boxes and 17 anatomical keypoints, following the conventions used in the benchmark MS COCO Keypoint dataset. The dataset covers various fitness exercises, multiple-person activities, and outdoor walking in different locations under different weather conditions. As a baseline, we trained and evaluated the YOLOv8-pose models (nano, small, medium, large, and x-large) on this dataset.

OpenThermalPose2

Extending the Open-Source Annotated Thermal Human Pose Dataset With More Data, Subjects, and Poses

We extended our OpenThermalPose dataset with more data, subjects, and poses. The new OpenThermalPose2 dataset contains 11,391 images of 170 subjects and 21,125 annotated human instances. The dataset covers various fitness exercises, multiple-person activities, persons sitting in an indoor environment, and persons walking in outdoor locations under different weather conditions. We trained and evaluated the YOLOv8-pose and YOLO11-pose models (nano, small, medium, large, and x-large) on this dataset.

Sports exercises and two-person activities in an indoor environment

Walking in outdoor environments

Sitting in an indoor environment

We trained and evaluated the YOLOv8-pose and YOLO11-pose models (nano, small, medium, large, and x-large) on our datasets. For more information about training, validation, and running of these models, please visit Ultralytics Docs.

Install Ultralytics

pip install ultralytics

Train

from ultralytics import YOLO

# Load a model
# you can choose any version of yolov8-pose/yolo11-pose
model = YOLO('yolov8n-pose.yaml')  # build a new model from YAML
model = YOLO('yolov8n-pose.pt')  # load a pretrained model (recommended for training)
model = YOLO('yolov8n-pose.yaml').load('yolov8n-pose.pt')  # build from YAML and transfer weights

# Train the model
results = model.train(data='open_thermal_pose.yaml', epochs=100, imgsz=640)

Val

from ultralytics import YOLO

# Load a model
# you can choose any version of yolov8-pose/yolo11-pose
model = YOLO('yolov8n-pose.pt')  # load an official model
model = YOLO('path/to/best.pt')  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map    # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps   # a list contains map50-95 of each category

Predict

from ultralytics import YOLO
import cv2

# Load a model (.pt)
# you can choose any pre-trained yolov8-pose/yolo11-pose
model = YOLO('path/to/model')  

# Load an image
image = cv2.imread('path/to/image')

# Predict with the model
results = model.predict(image, save=True)  

Citation

Please cite this work if you use the dataset or pre-trained models in your research.

@INPROCEEDINGS{10581992,
  author={Kuzdeuov, Askat and Taratynova, Darya and Tleuliyev, Alim and Varol, Huseyin Atakan},
  booktitle={2024 IEEE 18th International Conference on Automatic Face and Gesture Recognition (FG)}, 
  title={OpenThermalPose: An Open-Source Annotated Thermal Human Pose Dataset and Initial YOLOv8-Pose Baselines}, 
  year={2024},
  volume={},
  number={},
  pages={1-8},
  keywords={Privacy;Annotations;Source coding;Pose estimation;Lighting;Medical services;Motion capture},
  doi={10.1109/FG59268.2024.10581992}}

References

  1. https://github.com/ultralytics/ultralytics
  2. https://docs.ultralytics.com/tasks/pose/

About

An Open-Source Annotated Thermal Human Pose Dataset

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published