许可协议:apache-2.0
数据集:
- prithivMLmods/Math-Shapes
语言:
- 英语
基础模型:
- google/siglip2-base-patch16-224
任务标签:图像分类
库名称:transformers
标签:
- 形状
- 几何
- SigLIP2
- 艺术

几何形状分类模型
几何形状分类模型是基于google/siglip2-base-patch16-224微调的图像分类视觉-语言编码模型,专用于多类形状识别任务。该模型采用SiglipForImageClassification架构,可分类多种几何形状。
分类报告:
精确率 召回率 F1分数 支持数
圆形 ◯ 0.9921 0.9987 0.9953 1500
风筝 ⬰ 0.9927 0.9927 0.9927 1500
平行四边形 ▰ 0.9926 0.9840 0.9883 1500
长方形 ▭ 0.9993 0.9913 0.9953 1500
菱形 ◆ 0.9846 0.9820 0.9833 1500
正方形 ◼ 0.9914 0.9987 0.9950 1500
梯形 ⏢ 0.9966 0.9793 0.9879 1500
三角形 ▲ 0.9772 0.9993 0.9881 1500
准确率 0.9908 12000
宏平均 0.9908 0.9908 0.9907 12000
加权平均 0.9908 0.9908 0.9907 12000

该模型将图像分类为以下类别:
- 类别 0: 圆形 ◯
- 类别 1: 风筝 ⬰
- 类别 2: 平行四边形 ▰
- 类别 3: 长方形 ▭
- 类别 4: 菱形 ◆
- 类别 5: 正方形 ◼
- 类别 6: 梯形 ⏢
- 类别 7: 三角形 ▲
使用Transformers运行 🤗
!pip install -q transformers torch pillow gradio
import gradio as gr
from transformers import AutoImageProcessor
from transformers import SiglipForImageClassification
from PIL import Image
import torch
model_name = "prithivMLmods/Geometric-Shapes-Classification"
model = SiglipForImageClassification.from_pretrained(model_name)
processor = AutoImageProcessor.from_pretrained(model_name)
labels = {
"0": "圆形 ◯",
"1": "风筝 ⬰",
"2": "平行四边形 ▰",
"3": "长方形 ▭",
"4": "菱形 ◆",
"5": "正方形 ◼",
"6": "梯形 ⏢",
"7": "三角形 ▲"
}
def classify_shape(image):
"""对输入图像中的几何形状进行分类"""
image = Image.fromarray(image).convert("RGB")
inputs = processor(images=image, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
probs = torch.nn.functional.softmax(logits, dim=1).squeeze().tolist()
predictions = {labels[str(i)]: round(probs[i], 3) for i in range(len(probs))}
return predictions
iface = gr.Interface(
fn=classify_shape,
inputs=gr.Image(type="numpy"),
outputs=gr.Label(label="预测分数"),
title="几何形状分类",
description="上传图像以分类圆形、三角形、正方形等几何形状。"
)
if __name__ == "__main__":
iface.launch()
用途说明
几何形状分类模型专为识别图像中的基本几何形状而设计。典型应用场景包括:
- 教育工具: 用于可视化几何学习和教学。
- 计算机视觉项目: 作为机器人或自动化中的形状检测器。
- 图像分析: 识别图表或工程图纸中的符号。
- 辅助技术: 支持视障应用的形状识别功能。