OCR批量识别图片方案:从手动处理到自动化API系统(Python/Java/PHP实战)
OCR批量识别图片方案从手动处理到自动化API系统Python/Java/PHP实战在电商、财务、跨境业务中大量图片数据需要进行文字提取例如商品图片批量识别发票/票据批量录入身份证/证件信息结构化医疗单据自动整理批量截图文字提取如果仍然使用人工识别方式不仅效率低而且成本极高。本文将介绍一种基于OCR API的批量识别图片完整解决方案帮助开发者快速构建自动化系统。一、OCR批量识别的核心思路OCR批量处理本质是图片队列 OCR API 结果结构化 数据落库/导出流程如下图片文件夹 ↓ 批量上传/遍历 ↓ OCR识别API调用 ↓ 返回结构化JSON ↓ Excel / 数据库 / 系统二、适用场景1. 电商自动化商品标题提取SKU识别参数结构化2. 财务自动化发票批量识别报销单自动录入3. 企业系统身份证OCR批量实名营业执照批量入库4. 跨境业务多语言图片识别自动翻译前置处理三、推荐OCR API高精度方案推荐使用 石榴智能OCR API支持多场景识别支持免费在线体验注册API账号送免费测试积分API文档清晰提供多种接入语言示例如python、js、C#、java、php等以及自动化脚本语言如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等支持能力身份证OCR发票OCR医疗票据OCR通用文字OCR营业执照OCR多语言识别特点返回结构化JSON支持批量调用支持多语言SDK支持在线测试工具四、Python批量识别示例免费在线体验https://market.shiliuai.com/tools/ocr/general-textAPI文档完整开发文档和代码示例https://market.shiliuai.com/doc/advanced-general-ocr# # 免费在线体验https://market.shiliuai.com/tools/ocr/general-text # API文档完整开发文档和代码示例https://market.shiliuai.com/doc/advanced-general-ocr # 支持免费在线体验 # API文档清晰提供多种接入语言示例如python、js、C#、java、php等以及自动化脚本语言如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等 # # -*- coding: utf-8 -*- import requests import base64 import json # 请求接口 URL https://ocr-api.shiliuai.com/api/advanced_general_ocr/v1 # 图片/pdf文件转base64 def get_base64(file_path): with open(file_path, rb) as f: data f.read() return base64.b64encode(data).decode(utf8) def demo(appcode, file_path): # 请求头 headers { Authorization: APPCODE %s % appcode, Content-Type: application/json } # 请求体 b64 get_base64(file_path) data {file_base64: b64} # 请求 response requests.post(urlURL, headersheaders, jsondata) content json.loads(response.content) print(content) if __name__ __main__: appcode 你的APPCODE file_path 本地文件路径 demo(appcode, file_path)五、Java调用示例// // 免费在线体验https://market.shiliuai.com/tools/ocr/general-text // API文档完整开发文档和代码示例https://market.shiliuai.com/doc/advanced-general-ocr // 支持免费在线体验 // API文档清晰提供多种接入语言示例如python、js、C#、java、php等以及自动化脚本语言如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等 // //main.java import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Base64; public class Main { public static String get_base64(String path) { String b64 ; try { // 使用Commons IO简化文件读取 byte[] content FileUtils.readFileToByteArray(new File(path)); // 使用JDK自带的Base64 b64 Base64.getEncoder().encodeToString(content); } catch (IOException e) { e.printStackTrace(); } return b64; } public static void main(String[] args) { String url https://ocr-api.shiliuai.com/api/advanced_general_ocr/v1;// 请求接口 String appcode 你的APPCODE; String imgFile 本地文件路径; Map headers new HashMap(); headers.put(Authorization, APPCODE appcode); headers.put(Content-Type, application/json); // 请求体 JSONObject requestObj new JSONObject(); requestObj.put(file_base64, get_base64(imgFile)); String bodys requestObj.toString(); try (CloseableHttpClient httpClient HttpClients.createDefault()) { // 创建POST请求 HttpPost httpPost new HttpPost(url); // 设置请求头 for (Map.Entry entry : headers.entrySet()) { httpPost.addHeader(entry.getKey(), entry.getValue()); } // 设置请求体 StringEntity entity new StringEntity(bodys, UTF-8); httpPost.setEntity(entity); // 执行请求 HttpResponse response httpClient.execute(httpPost); int stat response.getStatusLine().getStatusCode(); if (stat ! 200) { System.out.println(Http code: stat); return; } String res EntityUtils.toString(response.getEntity()); JSONObject res_obj JSON.parseObject(res); System.out.println(res_obj.toJSONString()); } catch (Exception e) { e.printStackTrace(); } } }六、PHP调用示例// // 免费在线体验https://market.shiliuai.com/tools/ocr/general-text // API文档完整开发文档和代码示例https://market.shiliuai.com/doc/advanced-general-ocr // 支持免费在线体验 // API文档清晰提供多种接入语言示例如python、js、C#、java、php等以及自动化脚本语言如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等 // // 图片/pdf转base64 function get_base64($path){ if($fp fopen($path, rb, 0)) { $binary fread($fp, filesize($path));// 文件读取 fclose($fp); $b64 base64_encode($binary);// 转base64 }else{ $b64; printf(%s 文件不存在, $path); } return $b64; } $url https://ocr-api.shiliuai.com/api/advanced_general_ocr/v1; $appcode 你的appcode; $img_path 图片路径; $method POST; //请求头 $headers array(); array_push($headers, Authorization:APPCODE . $appcode); array_push($headers, Content-Type:application/json); //请求体 $b64 get_base64($img_path); $data array( file_base64 $b64 ); $post_data json_encode($data); // 请求 $curl curl_init(); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_FAILONERROR, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); $result curl_exec($curl); var_dump($result);七、批量识别优化方案关键1. 并发请求提升10倍效率Python multiprocessingJava线程池Node.js async2. 图片压缩降低带宽成本提升API速度3. 队列处理RabbitMQ / Redis Queue防止API限流4. 失败重试机制OCR识别失败自动重试3次八、常见问题Q1OCR识别慢怎么办使用批量并发图片压缩使用更高性能API节点Q2识别不准提高图片清晰度使用去水印/增强API预处理选择结构化OCR接口九、相关文章身份证OCR相关《身份证OCR识别总是失败一文教你快速排查》《身份证OCR识别接口接入实战》电商OCR相关《电商自动化如何用OCR API批量识别商品图片文字》《OCR自动提取商品标题电商SEO优化实战》图片处理《图片去水印 API 接口实战》《模糊图片怎么变清晰AI方案实测对比》十、总结OCR批量识别的核心不是“识别本身”而是把图片变成结构化数据流的自动化系统能力通过API 批处理 队列架构可以实现10倍效率提升成本降低80%可扩展自动化系统