SGOCR:一个空间定位的、以OCR为核心的流水线与V1数据集 [P]

Reddit r/MachineLearning 工具

摘要

大家好!我一直在独立研究和开发小巧但强大的视觉语言模型(VLM),并注意到视觉数据集中的一个空白——没有一个数据集在教我的模型简单地将文本定位到图像中,而是试图让模型推理文本或场景本身。这促使我投入两周的副项目,创建了SGOCR,一个开源数据集流水线,用于生成空间定位的、以OCR为核心的VQA元组,包含大量丰富的元数据以支持多样化的VLM训练策

大家好!我一直在独立研究和开发小巧但强大的视觉语言模型(VLM),并注意到视觉数据集中的一个空白——没有一个数据集在教我的模型简单地将文本定位到图像中,而是试图让模型推理文本或场景本身。这促使我投入两周的副项目,创建了SGOCR,一个开源数据集流水线,用于生成空间定位的、以OCR为核心的VQA元组,包含大量丰富的元数据以支持多样化的VLM训练策略。 [代码](https://github.com/cothogonal/sgocr-dataset-pipeline) [v1数据集](https://huggingface.co/datasets/dreeseaw/SGOCR) 我的开发始于本地简单提示Qwen2.5-VL,后来发展成一个多阶段的庞然大物。某一阶段,我的OCR阶段在3个文本识别模型(Parseq)之间寻找共识,锚点阶段则在GroundingDino、Florence 2和SAM 3.1之间进行同样操作,验证则需要Gemini 3.1 Pro和ChatGPT 5.3 Codex两者都通过。我发现这种情况下少即是多,最终决定使用Nvidia的nemotron-ocr-v2进行文本提取,结合Gemma4与Qwen3-VL备用进行锚点发现和标注,然后使用gemini-2.5-flash作为教师模型,并配以简单的定位检查进行验证。我之所以能使用较小的2.5 Flash教师模型,是因为上下文中提供了高度定位的注释,使Flash能够专注于语义。 在开发过程中,我首先创建了一个数据集审查前端,用于存储我个人的接受/拒绝/可能标记,这些标记之后可作为人类定位上下文参考。我将这个过程引导为一个质量分数,反映了我接受的问题方面,之后其余部分自动化的难度大大降低。我运行了一个自定义优化循环智能体,基于Karpathy的autoresearch(我发现它有点过度超参数搜索化),该智能体采用基于扫描的过程,能够更好地进行整体观察,有机会修改代码,并降低了好的想法因其评估结果略逊于其他变体而过早消亡的风险。 我正在寻找一般性反馈,并且想知道是否其他人也在寻找类似的东西,或者正在构建类似的VLM。感谢阅读!
查看原文

相似文章

使用合成数据构建快速多语言OCR模型

Hugging Face Blog

NVIDIA推出Nemotron OCR v2,一个使用合成数据生成技术构建的快速多语言OCR模型。该模型通过采用统一的基于FOTS的架构,在检测、识别和关系组件之间实现特征复用,在单个A100 GPU上达到34.7页/秒的性能。