Views
No views yet
| 项目 | 值 |
|---|---|
| 基础模型 | facebook/convnextv2-atto-1k-224 |
| 参数量 | 3.7M |
| 输入分辨率 | 384 × 384 |
| 输入格式 | float32 [1, 3, 384, 384],ImageNet 归一化 |
| 输出 | float32 [1, 4] → 0° / 90° / 180° / 270° |
| 验证准确率 | 99.6% |
| 模型大小 | ~13 MB(INT8 量化) |
| 类别索引 | 目录名 | 含义 | 后端旋转角度 |
|---|---|---|---|
| 0 | 0 | 正向,无需旋转 | 0° |
| 1 | 180 | 上下颠倒 | 180° |
| 2 | 270 | 逆时针旋转 | -90° |
| 3 | 90 | 顺时针旋转 | -270° |
1import numpy as np
2import onnxruntime as ort
3from PIL import Image
4
5session = ort.InferenceSession("fachuan-orientation-classifier.onnx")
6
7img = Image.open("receipt.jpg").convert("RGB").resize((384, 384))
8arr = np.array(img, dtype=np.float32).transpose(2, 0, 1) / 255.0
9mean = np.array([0.485, 0.456, 0.406]).reshape(3, 1, 1)
10std = np.array([0.229, 0.224, 0.225]).reshape(3, 1, 1)
11arr = ((arr - mean) / std).unsqueeze(0)
12
13logits = session.run(None, {"pixel_values": arr})[0]
14predicted_class = int(np.argmax(logits, axis=1)[0])
15ROTATION_MAP = {0: 0, 1: 180, 2: -90, 3: -270}
16print(f"预测方向: {predicted_class}°, 需旋转: {ROTATION_MAP[predicted_class]}°")