/ Модель

Характеристики

Лицензия
Apache 2.0
Архитектура
resnet · dense
Библиотека
transformers
Опубликована
11 апр 2026

GyroScope

Классификация изображенийИзображение → label5 профессий

ResNet-18 определяет поворот изображения на 0°, 90°, 180° или 270° для автоматического исправления его ориентации.

56скачиваний за 30 дней9лайковвеса обновлены12 апр 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

GyroScope — модель компьютерного зрения от LH-Tech-AI для определения ориентации изображения с шагом 90° и автоматического выбора корректирующего поворота. Это ResNet-18, обученная с нуля без предварительно обученных весов; размер модели — 11,2 млн параметров. Модель принимает RGB-изображения размером 224 × 224 и классифицирует их как повёрнутые на 0°, 90°, 180° или 270°. Для обучения использовались изображения ImageNet-1k; в README указана точность на проверочной выборке около 79,8%. Модель предназначена для автоматического исправления ориентации фотографий и изображений в конвейерах обработки данных. Лицензия — Apache-2.0.

Модель может ошибаться на симметричных изображениях, где ориентацию трудно определить, и её качество может снижаться на документах, медицинских и спутниковых изображениях, а также абстрактных изображениях. Она определяет только повороты с шагом 90° и не поддерживает произвольные углы.

Сценарии применения

  • автоматическое исправление ориентации фотографий
  • поворот изображений в загруженных наборах данных
  • нормализация изображений перед обработкой ML-конвейером
  • пакетное исправление ориентации оцифрованных архивов

Ограничения

Модель поддерживает только повороты с шагом 90° и может ошибаться на симметричных изображениях. Качество может снижаться на документах, медицинских и спутниковых изображениях и абстрактном искусстве.

Для каких профессий подходит5

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

🔄 GyroScope — Image Rotation Prediction

GyroScope is a ResNet-18 trained from scratch to detect whether an image is rotated by 0°, 90°, 180°, or 270° — and correct it automatically.

Is that photo upside down? Let GyroScope figure it out.


🎯 Task

Given any image, GyroScope classifies its orientation into one of 4 classes:

LabelMeaningCorrection
00° — upright ✅None
190° CCWRotate 270° CCW
2180° — upside downRotate 180°
3270° CCW (= 90° CW)Rotate 90° CCW

Correction formula: correction = (360 − detected_angle) % 360


📊 Benchmarks

Trained on 50,000 images from ImageNet-1k × 4 rotations = 200k training samples.
Validated on 5,000 images × 4 rotations = 20k validation samples.

MetricValue
Overall Val Accuracy79.81%%
Per-class: 0° (upright)79.8%
Per-class: 90° CCW80.1%
Per-class: 180°79.4%
Per-class: 270° CCW79.8%
Training Epochs12
Training Time~4h (Kaggle T4 GPU)

Benchmark with benchmark.py

===============
   RESULTS
===============
Overall result: 411/500 correct
Hit rate:    82.20 %
------------------------------
Details per rotation class:
    0° : 96/124 correct ( 77.42%)
   90° : 103/119 correct ( 86.55%)
  180° : 112/129 correct ( 86.82%)
  270° : 100/128 correct ( 78.12%)
==============================

You can also do this benchmark, by using benchmark.py in this repo. :D

Training Curve

EpochTrain AccVal Acc
141.4%43.2%
252.0%46.9%
359.4%62.8%
464.1%66.0%
567.8%69.48%
670.6%72.22%
773.3%74.25%
875.6%76.49%
977.5%77.47%
1079.1%79.47%
1180.3%79.78%
1280.9%79.81%

🏗️ Architecture

DetailValue
BaseResNet-18 (from scratch, no pretrained weights)
Parameters11.2M
Input224 × 224 RGB
Output4 classes (0°, 90°, 180°, 270°)
Framework🤗 Hugging Face Transformers (ResNetForImageClassification)

Training Details

  • Optimizer: AdamW (lr=1e-3, weight_decay=0.05)
  • Scheduler: Cosine annealing with 1-epoch linear warmup
  • Loss: CrossEntropy with label smoothing (0.1)
  • Augmentations: RandomCrop, ColorJitter, RandomGrayscale, RandomErasing
  • ⚠️ No flips — horizontal/vertical flips would corrupt rotation labels
  • Mixed precision: FP16 via torch.cuda.amp

🚀 Quick Start

Installation

pip install transformers torch torchvision pillow requests

Inference — Single Image from URL

python3 use_with_UI.py

--> Download use_with_UI.py first 😄

💡 Example

Input (rotated 180°):

cat image, rotated to the left by 90°

GyroScope Output: 📐 Recognized: 90° | Correction: 270° 📊 Probs: {'0°': '0.0257', '90°': '0.8706', '180°': '0.0735', '270°': '0.0300'} Corrected:

cat image, now correctly rotated

Original Image Source: Link to Pexels

⚠️ Limitations

  • Rotationally symmetric images (balls, textures, patterns) are inherently ambiguous — no model can reliably classify these.
  • Trained on natural images (ImageNet). Performance may degrade on:
  • Documents / text-heavy images
  • Medical imaging
  • Satellite / aerial imagery
  • Abstract art

Only handles 90° increments — arbitrary angles (e.g. 45° or 135°) are not supported! Trained from scratch on 50k images — a pretrained backbone would likely yield higher accuracy (Finetuning).

📝 Use Cases

  • 📸 Photo management — auto-correct phone/camera orientation
  • 🗂️ Data preprocessing — fix rotated images in scraped datasets
  • 🤖 ML pipelines — orientation normalization before feeding to downstream models
  • 🖼️ Digital archives — batch-correct scanned/uploaded images

Yesterday, I was sorting photos and like every photo was rotated wrong! This inspired me to make this tool 😂

💻 Training code

The full training code can be found in train.py. Have fun 😊

📜 License

Apache 2.0

🙏 Acknowledgments

  • Dataset: ILSVRC/ImageNet-1k
  • Architecture: Microsoft ResNet via 🤗 Transformers
  • Trained on Kaggle (Tesla T4 GPU)

GyroScope — because every image deserves to stand upright.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers · image-classification

Можно запустить

Подбираем GPU…

Класс архитектуры
ResNetForImageClassification
Ревизия весов
01db690

0 моделей