当前位置: 首页 > news >正文

身份证OCR识别,支持矫正及头像提取

接到客户需求,传入身份证的照片,要得到矫正后的证件照片以及证件上的头像。石榴智能的身份证ocr接口不仅提供文字识别功能,还能返回上面的信息。下面介绍如何调用该API。

1,获得appcode

在石榴智能API网站上注册可以得到appcode,在身份证ocr产品可以获得免费积分。

2,调用API

以下是python调用api并展示矫正的证件照片和头像的代码:

# API文档:https://market.shiliuai.com/doc/id-card-ocr # -*- coding: utf8 -*- import requests import base64 import json import numpy as np import cv2 URL = "https://ocr-api.shiliuai.com/api/id_card_ocr/v2" APPCODE = "你的appcode" HEADERS = { 'Authorization': 'APPCODE %s' % APPCODE, 'Content-Type': 'application/json' } def get_base64(file_path): with open(file_path, 'rb') as fp: b64 = base64.b64encode(fp.read()).decode('utf8') return b64 def post_api(data, name): print('test ' + name) response = requests.post(url=URL, headers=HEADERS, json=data) response = json.loads(response.content) for k in response.keys(): if k != 'data': print(k, response[k]) else: print(k) d = response['data'] for kk in d.keys(): if 'base64' in kk: print(' ', kk, d[kk][:100], '......') rectified_base64 = d.get(kk) file_bytes = base64.b64decode(rectified_base64) rectified = np.asarray(bytearray(file_bytes), dtype=np.uint8) rectified = cv2.imdecode(rectified, cv2.IMREAD_UNCHANGED) cv2.imshow(kk, rectified) else: print(' ', kk, d[kk]) cv2.waitKey(0) print('\n ') # 默认参数 def post_default(): f = "../data/1.jpg" b64 = get_base64(f) data = { "image_base64": b64 } post_api(data, 'default') # 返回矫正证件 def post_return_card(): f = "../data/1.jpg" b64 = get_base64(f) data = { "image_base64": b64, "return_rectified_card": True } post_api(data, 'rectify') # 设置矫正证件的边距 def post_return_card_margin(): f = "../data/1.jpg" b64 = get_base64(f) data = { "image_base64": b64, "return_rectified_card": True, "card_margin_ratio": 0.1 } post_api(data, 'rectify_margin') # 设置矫正证件的尺寸 def post_return_card_resize(): f = "../data/1.jpg" b64 = get_base64(f) data = { "image_base64": b64, "return_rectified_card": True, "card_width": 420, "card_height": 270 } post_api(data, 'rectify_resize') # 设置返回头像 def post_return_head(): f = "../data/1.jpg" b64 = get_base64(f) data = { "image_base64": b64, "return_rectified_head": True, "head_width": 358 } post_api(data, 'head') if __name__ == "__main__": post_default() post_return_card() post_return_card_margin() post_return_card_resize() post_return_head()

http://www.cnnetsun.cn/news/1704307.html

相关文章:

  • GetQzonehistory:一键完整备份QQ空间说说的终极解决方案
  • 3分钟上手Fooocus:免费AI图像生成工具从入门到精通
  • 3大核心功能深度解析:开源网络工具实现中兴光猫高级配置管理
  • AI赋能开发:让快马智能解析需求,自动生成模型服务镜像与代码
  • RVC惊艳案例:从普通声音到专业歌手的华丽转变
  • 从空心杯到腱绳:拆解特斯拉Optimus灵巧手三代传动方案的技术迭代与选型逻辑
  • Llama-3.2-3B与LangChain集成:构建知识问答系统
  • AGENTS.md 工作协议——怎么给你的AI划红线、定边界、建规矩
  • 在电脑上畅玩Switch游戏:Ryujinx模拟器完全指南
  • PlatformIO找不到我的STM32G070板子?手把手教你自定义Board配置文件(附完整代码)
  • Ryujinx模拟器核心架构与性能优化实战指南
  • PROJECT MOGFACE教育应用:自动化作业批改与个性化反馈生成
  • 25年10x工程师经验一夜归零!Django创始人警告:3-8年的程序员受AI冲击最大
  • 别再全量微调了!用LoRA在单张消费级显卡上微调你的大模型(附Hugging Face PEFT库实战)
  • UABEA:解析Unity资源结构的跨平台开源工具
  • 4步解决老游戏兼容性难题:D3D8到D3D9的API转换技术全解析
  • 从离散傅里叶变换到DCT/DST:视频编解码中的频域转换原理
  • BilibiliCacheVideoMerge:三步搞定B站缓存视频合并的完整教程
  • 打卡信奥刷题(3064)用C++实现信奥题 P6871 [COCI 2013/2014 #6] HASH
  • Poppins字体革新:跨语言排版的高效解决方案
  • 高德自定义地图图层实战:从零搭建个性化地图服务
  • 效率提升实践:用快马生成可集成流水线的openclaw标准化卸载模块
  • Python flask django的医院运营管理系统 医院设备报修系统2gh6145e
  • 如何用Alternative Mod Launcher快速解决XCOM 2模组管理混乱问题
  • MusePublic批处理教程:100张不同风格人像自动化生成脚本
  • 从零到一:用Clawdbot搭建基于Qwen3-32B的智能对话系统
  • CUDA并行优化实战:从TopK问题剖析共享内存与规约算法设计
  • 3步快速找回加密压缩包密码:终极免费工具使用指南
  • vLLM-v0.17.1实战教程:WebShell中用vLLM CLI进行模型冷热启动测试
  • 微信聊天记录数据管理:WeChatMsg开源工具的完整应用指南