test_ppstructure_v3.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from paddlex import create_pipeline
  2. import paddle
  3. import time
  4. from pathlib import Path
  5. import os
  6. from typing import List
  7. from cuda_utils import detect_available_gpus, monitor_gpu_memory
  8. from dotenv import load_dotenv
  9. load_dotenv(override=True)
  10. if __name__ == "__main__":
  11. print(f"🚀 启动演示程序...")
  12. print(f"CUDA 版本: {paddle.device.cuda.get_device_name()}")
  13. print(f"CUDA_VISIBLE_DEVICES: {os.environ.get('CUDA_VISIBLE_DEVICES')}")
  14. available_gpus = detect_available_gpus()
  15. monitor_gpu_memory(available_gpus)
  16. input_path = "./sample_data/300674-母公司现金流量表-扫描.png"
  17. # pipeline_path = "./PP-StructureV3-zhch.yaml"
  18. pipeline_path = "PP-StructureV3"
  19. pipeline_name = Path(pipeline_path).stem
  20. output_path = Path(f"./sample_data/single_pipeline_output/{pipeline_name}/")
  21. pipeline = create_pipeline(pipeline=pipeline_path, device="gpu:0")
  22. # For Image
  23. output = pipeline.predict(
  24. input=input_path,
  25. # device="gpu", # 或者 "gpu" 如果你有 GPU 支持
  26. use_doc_orientation_classify=True, # 开启文档方向分类
  27. use_doc_unwarping=False, # 开启文档去畸变, 效果不佳
  28. layout_detection_model_name=None, # 如果要禁用版面分析,可以这样设置,或者依赖其默认行为
  29. use_seal_recognition=True, # 跳过印章识别
  30. use_chart_recognition=True, # 跳过图表识别
  31. use_table_recognition=True, # 开启表格识别
  32. )
  33. # 可视化结果并保存 json 结果
  34. for res in output:
  35. res.print()
  36. # res.save_to_json(save_path="sample_data/output")
  37. # res.save_to_markdown(save_path="sample_data/output")
  38. res.save_all(save_path=output_path.as_posix()) # 保存所有结果到指定路径