Downloads · 30 days
0
poutche/beit-image-orientation-onnx
beit-image-orientation-onnx is a image classification model from poutche. Use it when you need a label for an image. It is set up for onnxruntime. The card lists the license as apache-2.0.
Export ONNX de amaye15/Beit-Base-Image-Orientation-Fixer (BEiT-base fine-tuné, classification d'orientation d'image en 4 classes). Le modèle d'origine n'est publié qu'en safetensors ; cet export permet de l'exécuter a…
Downloads · 30 days
0
Access
Public
Updated Jun 3, 2026
Repo size
691 MB
Likes
0
Public
Click a slice to open those files.
.onnx346 MB · 100%
From the Hugging Face model README
Export ONNX de amaye15/Beit-Base-Image-Orientation-Fixer
(BEiT-base fine-tuné, classification d'orientation d'image en 4 classes).
Le modèle d'origine n'est publié qu'en safetensors ; cet export permet de
l'exécuter avec onnxruntime / transformers.js (Node, CPU, sans PyTorch).
Tout le crédit du modèle revient à @amaye15. Licence Apache-2.0, identique au modèle d'origine.
Prédit la rotation horaire à appliquer pour redresser une image :
| Classe | Signification |
|---|---|
0 | image déjà droite |
90 | tourner de 90° (horaire) |
180 | tourner de 180° |
270 | tourner de 270° (= 90° anti-horaire) |
pixel_values : float32 [1, 3, 384, 384], RGB, redimensionné en
384×384, normalisé (x/255 - 0.5) / 0.5.logits : float32 [1, 4] → softmax puis argmax = classe.import ort from 'onnxruntime-node';
import sharp from 'sharp';
const session = await ort.InferenceSession.create('model.onnx');
const S = 384, MEAN = 0.5, STD = 0.5;
const { data } = await sharp(path).rotate() // applique l'EXIF d'abord
.removeAlpha().resize(S, S, { fit: 'fill' }).raw().toBuffer({ resolveWithObject: true });
const N = S * S, f = new Float32Array(3 * N);
for (let i = 0; i < N; i++) for (let c = 0; c < 3; c++) f[c * N + i] = (data[i * 3 + c] / 255 - MEAN) / STD;
const out = await session.run({ pixel_values: new ort.Tensor('float32', f, [1, 3, S, S]) });
const logits = Array.from(out.logits.data);
// softmax + argmax → [0, 90, 180, 270][cls] degrés horaires
Le modèle est bien calibré : confiance ~0.999 sur un cas franchement tourné, plus basse sur les images à orientation indéfinie (textures, murs, gros plans matière). Pour de l'auto-correction sûre, n'appliquer la rotation que si la confiance ≥ 0.99 (haute précision, ~zéro faux positif).
Voir scripts/convert-orientation-onnx.py (torch + dynamo=False, opset 14).