Downloads · 30 days
10
7% of all-time downloads
Aronuihyig/IC-WaveDrom-DSL
IC-WaveDrom-DSL is a image-to-text model from Aronuihyig. Use it when you need a caption or text from an image. It is set up for PaddleOCR. The card lists the license as apache-2.0.
<div align="center" style="line-height: 1;" <a href="https://huggingface.co/Aronuihyig/IC-WaveDrom-DSL" target="blank" style="margin: 2px;" <img alt="Hugging Face" src="https://img.shields.io/badge/%F0%9F%A4%97%20Hugg…
Downloads · 30 days
10
7% of all-time downloads
All-time downloads
136
Public
Parameters
959M
3.8 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors1.9 GB · 99%
From the Hugging Face model README
PaddleOCR-VL-SFT-WaveDrom-LoRA 是一个专为时序信号波形识别优化的视觉语言大模型(VLM)。该模型基于 PaddleOCR-VL 进行 LoRA 指令微调,能够直接“阅读”复杂的电子工程信号波形图,并精准输出结构化的 WaveDrom JSON 代码。
本模型展示了通用 OCR 基础模型在经过高质量领域数据微调后,在“图像到结构化代码(Image-to-Code)”复杂任务上的巨大潜力。它可以极大提升电子工程师、芯片设计人员在阅读时序文档、数字逻辑验证报告时的自动化效率。
评估集选取真实电子工业场景中的时序波形图。在我们的评估集上,模型在综合评估标准下达到了 53.5% 的平均准确率。不同难度数据的表现如下:

由于波形图包含复杂的时序逻辑和密集的文本标签,且大模型在生成长代码时容易遇到长度截断(Truncation),传统的“精确匹配(Exact Match)”无法真实反映模型的视觉理解能力。为此,我们设计了一套多维特征加权评估系统来衡量模型表现:
max_tokens 截断导致的残缺 JSON 进行智能修复,确保合法的数据解析。x==== 识别为 x====== 依然保留高分)。| # | 输入波形图 (Image) | 模型预测输出 (Prediction JSON) |
|---|---|---|
| 1 | ![]() | "signal": [{"name": "CLK", "wave": "p.............", "node": ".A.B.C.D.E.F.G.H.I.J.K"}, {"name": "Sample", "wave": "01...........0", "phase": 0.5}, {"name": "Dout", "wave": "z.==========z", "data": ["D9", "D8", "D7", "D6", "D5", "D4", "D3", "D2", "D1", "D0"]}] |
| 2 | ![]() | "signal": [{"name": "INPUT", "wave": "lhlhlhlhlhlhlhlh"}, {"name": "FF1", "wave": "hl.....h.l.....h"}, {"name": "FF2", "wave": "lh.l.....h.l...."}, {"name": "FF3", "wave": "l..h.l.....h.l.."}, {"name": "FF4", "wave": "l....h.l.....h.l"}] |
(注:模型输出的 WaveDrom JSON 可直接渲染为标准时序图)
你可以使用 paddleformers 或兼容 PaddleOCR-VL 的库来加载并使用此模型。由于使用了 FlashAttention 机制,建议在支持的环境中运行。
import paddle
from PIL import Image
from paddleformers.transformers import AutoModelForConditionalGeneration, AutoProcessor
# 加载模型与处理器
model_path = "./IC-WaveDrom-DSL"
model = AutoModelForConditionalGeneration.from_pretrained(model_path).eval()
processor = AutoProcessor.from_pretrained(model_path)
model.config._attn_implementation = "flashmask"
model.visual.config._attn_implementation = "flashmask"
# 准备输入
image = Image.open("your_waveform_image.png").convert("RGB")
messages = [{
"role": "user",
"content": [
{"type": "image", "image": image},
{"type": "text", "text": "WaveDrom Recognition:"},
]
}]
inputs = processor.apply_chat_template(
messages, tokenize=True, add_generation_prompt=True, return_dict=True, return_tensors="pd"
)
# 生成预测
with paddle.no_grad():
outputs = model.generate(**inputs, max_new_tokens=1024, pad_token_id=0, eos_token_id=2)
print(processor.decode(outputs[0].tolist()[0], skip_special_tokens=True))
paddleformers本模型权重遵循 Apache 2.0 许可证开源。