run_ocr_verification.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #!/usr/bin/env python3
  2. """
  3. OCR验证示例脚本
  4. 使用VLM(视觉语言模型)对比OCR识别结果和原图,找出差异部分
  5. """
  6. import os
  7. import sys
  8. from pathlib import Path
  9. # 添加当前目录到Python路径
  10. current_dir = Path(__file__).parent
  11. sys.path.append(str(current_dir))
  12. from ocr_verification import verify_ocr_with_vlm, analyze_differences
  13. def main():
  14. """主函数"""
  15. # 检查是否存在环境变量
  16. if not os.getenv("YUSYS_MULTIMODAL_API_KEY"):
  17. print("错误: 未找到YUSYS_MULTIMODAL_API_KEY环境变量")
  18. print("请设置你的API密钥:")
  19. print("export YUSYS_MULTIMODAL_API_KEY='your_api_key_here'")
  20. return 1
  21. if not os.getenv("YUSYS_MULTIMODAL_API_BASE"):
  22. print("错误: 未找到YUSYS_MULTIMODAL_API_BASE环境变量")
  23. print("请设置API基础URL:")
  24. print("export YUSYS_MULTIMODAL_API_BASE='your_api_base_here'")
  25. return 1
  26. # 文件路径
  27. # 注意:这里假设你有利润表的原图,如果没有,请替换为实际的图片路径
  28. image_path = "至远彩色印刷工业有限公司-2022年母公司_2.png" # 请替换为你的利润表图片路径
  29. ocr_json_path = "demo_54fa7ad0_page_1.json"
  30. output_path = "ocr_differences.json"
  31. # 检查文件是否存在
  32. if not Path(image_path).exists():
  33. print(f"错误: 找不到图片文件: {image_path}")
  34. print("请确保图片文件存在,或修改脚本中的image_path变量")
  35. return 1
  36. if not Path(ocr_json_path).exists():
  37. print(f"错误: 找不到OCR结果文件: {ocr_json_path}")
  38. return 1
  39. try:
  40. print("开始OCR验证...")
  41. print(f"原图: {image_path}")
  42. print(f"OCR结果: {ocr_json_path}")
  43. print(f"输出文件: {output_path}")
  44. print("-" * 50)
  45. # 进行OCR验证
  46. result = verify_ocr_with_vlm(image_path, ocr_json_path, output_path)
  47. print("\n" + "="*50)
  48. print("OCR验证完成!")
  49. print("="*50)
  50. # 分析差异
  51. analyze_differences(output_path)
  52. return 0
  53. except Exception as e:
  54. print(f"OCR验证失败: {e}")
  55. return 1
  56. if __name__ == "__main__":
  57. exit_code = main()
  58. sys.exit(exit_code)