thinkphp5对接阿里云ocr试卷切题
thinkphp5对接阿里云ocr试卷切题
提示:切题使用的是api:RecognizeEduPaperCut
以下是基于 ThinkPHP5.14 框架调用阿里云 RecognizeEduPaperCut 接口的详细实现步骤和代码示例。
文章目录
- thinkphp5对接阿里云ocr试卷切题
- 前言
- 1、前置准备
- 2、 配置文件
- 3、控制器直接引用使用
- 4、返回参数处理
- 5、其他相关教育识别接口
- RecognizeEduPaperStruct
- 7、关于费用
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
1、前置准备
在开始开发之前,请确保完成以下准备工作:
1、开通服务:在阿里云控制台开通教育场景识别服务,并购买相关资源包。
2、获取凭证:获取阿里云 AccessKey ID 和 AccessKeySecret,用于接口调用的身份验证。
3、安装依赖:通过 Composer 安装阿里云 SDK。运行以下命令安装:
composer require alibabacloud/ocr-api-20210707 3.1.2
2、 配置文件
在 ThinkPHP5 的配置文件中(如 config/aliyun.php),添加阿里云的相关配置信息:
return ['access_key_id' => 'your-access-key-id','access_key_secret' => 'your-access-key-secret','region_id' => 'cn-hangzhou', // 区域ID,默认为 cn-hangzhou
];
3、控制器直接引用使用
<?php
namespace app\index\controller;use Darabonba\OpenApi\OpenApiClient;
use AlibabaCloud\OpenApiUtil\OpenApiUtilClient;use Darabonba\OpenApi\Models\Config;
use Darabonba\OpenApi\Models\Params;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
use Darabonba\OpenApi\Models\OpenApiRequest;class Index
{/*** 使用AK&SK初始化账号Client* @return OpenApiClient Client*/public static function createClient(){// 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。// 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/311677.html。$config = new Config([// 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。"accessKeyId" => config('aliyun.access_key_id'),// 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。"accessKeySecret" => config('aliyun.access_key_secret')]);// Endpoint 请参考 https://api.aliyun.com/product/ocr-api$config->endpoint = "ocr-api.cn-hangzhou.aliyuncs.com";return new OpenApiClient($config);}/*** API 相关* @return Params OpenApi.Params*/public static function createApiInfo(){$params = new Params([// 接口名称"action" => "RecognizeEduPaperCut",// 接口版本"version" => "2021-07-07",// 接口协议"protocol" => "HTTPS",// 接口 HTTP 方法"method" => "POST","authType" => "AK","style" => "V3",// 接口 PATH"pathname" => "/",// 接口请求体内容格式"reqBodyType" => "json",// 接口响应体内容格式"bodyType" => "json"]);return $params;}/*** @param string[] $args* @return void*/public static function main($imgurl,$cuttype="question",$imgtype="photo"){$client = self::createClient();$params = self::createApiInfo();// query params$queries = [];$queries["Url"] = $imgurl;$queries["CutType"] = $cuttype;$queries["ImageType"] = $imgtype;// runtime options$runtime = new RuntimeOptions([]);$request = new OpenApiRequest(["query" => OpenApiUtilClient::query($queries)]);// 复制代码运行请自行打印 API 的返回值// 返回值实际为 Map 类型,可从 Map 中获得三类数据:响应体 body、响应头 headers、HTTP 返回的状态码 statusCode。return $client->callApi($params, $request, $runtime);}//调用public function ocr(){$imgurl = input('imgurl');//图片url 路径$imgurl = ""; $cuttype = input('cuttype');//切题类型:question:题目, answer:答案。 $cuttype = $cuttype??"question";// var_dump($imgurl);// var_dump($cuttype);exit;$resurt = self::main($imgurl,$cuttype);if(isset($resurt['code'])){//请求失败才返回codereturn json(['code'=>$resurt['code'],'msg'=>$resurt['Message']]);}else{return json($resurt);}}}
提示:请求失败才返回 code 和Message 内容
4、返回参数处理
{"page_list": [{"angle": 0,"doc_index": 1,"height": 7000,"orgHeight": 7000,"orgWidth": 4716,"page_id": -1,"subject_list": [{"content_list_info": [{"doc_index": 1,"pos": [{"x": 337,"y": 1644},{"x": 2313,"y": 1641},{"x": 2313,"y": 2234},{"x": 337,"y": 2234}]}],"ids": ["1"],"is_multipage": false,"prism_wordsInfo": [{"pos": [{"x": 337,"y": 1644},{"x": 2313,"y": 1641},{"x": 2313,"y": 1715},{"x": 337,"y": 1719}],"word": "1.[2017·高密期末]三角形按角分类可以分为()"},{"pos": [{"x": 462,"y": 1777},{"x": 1925,"y": 1774},{"x": 1925,"y": 1846},{"x": 462,"y": 1849}],"word": "A.锐角三角形、直角三角形、钝角三角形"},{"pos": [{"x": 456,"y": 1904},{"x": 2004,"y": 1904},{"x": 2004,"y": 1976},{"x": 456,"y": 1976}],"word": "B.等腰三角形、等边三角形、不等边三角形"},{"pos": [{"x": 456,"y": 2034},{"x": 1633,"y": 2033},{"x": 1633,"y": 2104},{"x": 456,"y": 2105}],"word": "C.直角三角形、等腰直角三角形"},{"pos": [{"x": 453,"y": 2164},{"x": 1261,"y": 2164},{"x": 1261,"y": 2233},{"x": 453,"y": 2234}],"word": "D.以上答案都不正确"}],"text": "1.[2017·高密期末]三角形按角分类可以分为( ) A.锐角三角形、直角三角形、钝角三角形B. 等腰三角形、等边三角形、不等边三角形C.直角三角形、等腰直角三角形D.以上答案都不正确"}],"width": 4716}]
}
5、其他相关教育识别接口
1、 印刷体数学公式识别
RecognizeEduFormula
2、口算判题
RecognizeEduOralCalculation
3、整页试卷识别
RecognizeEduPaperOcr
4、试卷切题识别
RecognizeEduPaperCut
5、题目识别
RecognizeEduQuestionOcr
6、精细版结构化切题
RecognizeEduPaperStruct
7、关于费用
每月免费200次调用,每次0.225元,
套餐包:1000次 160左右,具体已阿里云官方为准
相关文章:
thinkphp5对接阿里云ocr试卷切题
thinkphp5对接阿里云ocr试卷切题 提示:切题使用的是api:RecognizeEduPaperCut 以下是基于 ThinkPHP5.14 框架调用阿里云 RecognizeEduPaperCut 接口的详细实现步骤和代码示例。 文章目录 thinkphp5对接阿里云ocr试卷切题前言1、前置准备2、 配置文件3、控制器直接引…...
AI数据分析:用DeepSeek做数据清洗
在当今数据驱动的时代,数据分析已成为企业和个人决策的重要工具。随着人工智能技术的快速发展,AI 驱动的数据分析工具正在改变我们处理和分析数据的方式。本文将着重介绍如何使用 DeepSeek 进行数据清洗。 数据清洗是数据分析的基础,其目的是…...
免费轻巧多功能 PDF 处理工具:转换、压缩、提取一应俱全
软件技术 今天要给大家分享一款超实用的 PDF 处理工具,它免费又轻巧,如同随时待命的得力小帮手,功能之强大超乎想象,真的值得大家收藏。 这款工具是绿色版软件,解压后开启,满满的 PDF 处理功能便映入眼帘…...
基于JavaWeb开发的Java+SpringBoot+vue+element实现物流管理系统
基于JavaWeb开发的JavaSpringBootvueelement实现物流管理系统 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定…...
计算机毕业设计SpringBoot+Vue.js华强北商城二手手机管理系统 (源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
实验:k8s+keepalived+nginx+iptables
1、创建两个nginx的pod,app都是nginx nginx1 nginx2 2、创建两个的pod的service 3、配置两台keepalived的调度器和nginx七层反向代理,VIP设置192.168.254.110 keepalived调度器master keepalived调度器backup 两台调度器都配置nginx七层反向代理&#…...
DeepSeek入门学习
参考文档:DeepSeek(人工智能企业)_百度百科 DeepSeek-R1 凭借创新的强化学习技术实现重大突破。在极少量标注数据的基础上,通过深度优化的后训练阶段,显著提升了模型的推理能力。在数学运算、代码生成、自然语言推理等…...
几道考研数学题求解
函数性质问题 【题目】 已知函数 f ( x , y ) x 3 y 3 − ( x y ) 2 3 f(x, y) x^3 y^3 - (xy)^2 3 f(x,y)x3y3−(xy)23。设 T T T 为曲面 z f ( x , y ) z f(x, y) zf(x,y) 在点 ( 1 , 1 , 1 ) (1,1,1) (1,1,1) 处的切平面, D D D 为 T T T 与坐标…...
Highcharts 配置语法详解
Highcharts 配置语法详解 引言 Highcharts 是一个功能强大的图表库,广泛应用于数据可视化领域。本文将详细介绍 Highcharts 的配置语法,帮助您快速上手并制作出精美、实用的图表。 高级配置结构 Highcharts 的配置对象通常包含以下几部分:…...
OpenEuler学习笔记(三十五):搭建代码托管服务器
以下是主流的代码托管软件分类及推荐,涵盖自托管和云端方案,您可根据团队规模、功能需求及资源情况选择: 一、自托管代码托管平台(可私有部署) 1. GitLab 简介: 功能全面的 DevOps 平台,支持代码托管、C…...
Python的pdf2image库将PDF文件转换为PNG图片
您可以使用Python的pdf2image库将PDF文件转换为PNG图片。以下是一个完整的示例,包含安装步骤、代码示例和注意事项。 安装依赖库 首先,您需要安装pdf2image库: pip install pdf2imagepdf2image依赖于poppler库来解析PDF文件。 Windows系统…...
算法-二叉树篇26-将有序数组转换为二叉搜索树
将有序数组转换为二叉搜索树 力扣题目链接 题目描述 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 平衡 二叉搜索树。 解题思路 很简单的遇到递归题目,对数组取半,然后构建中间节点作为该数组对应的…...
使用Python SciPy库来计算矩阵的RCS特征值并生成极坐标图
在Python中,计算矩阵的RCS(Rayleigh商迭代法)特征值通常涉及使用数值线性代数库,如NumPy或SciPy。RCS(Rayleigh商迭代法)是一种用于计算矩阵特征值和特征向量的迭代方法。 以下是一个简单的示例࿰…...
车载以太网-基于linux的ICMP协议
对于车载以太网-ICMP的技术要求: /** ICMP报文格式解析* -----------------* ICMP协议用于网络诊断和错误报告,常见应用包括Ping测试。* ICMP报文结构包括:IP头部、ICMP头部和ICMP数据部分。* 下面详细介绍每个部分的结构、字段的作用以及如何解析它们。* * ICMP头部结构:*…...
WP 高级摘要插件:助力 WordPress 文章摘要精准自定义显示
wordpress插件介绍 “WP高级摘要插件”功能丰富,它允许用户在WordPress后台自定义文章摘要。 可设置摘要长度,灵活调整展示字数;设定摘要最后的显示字符, 如常用的省略号等以提示内容未完整展示;指定允许在摘要中显示…...
【嵌入式】MCU开发基础知识速通
一、MCU开发常用编程语言及语法要求 MCU(微控制器单元)开发常用的编程语言包括C语言、C、汇编语言和Python,每种语言都有其适用场景和优势。 C语言:C语言因其接近硬件特性和高效执行效率而广泛应用于MCU开发。它具有丰富的内置函…...
Yocto + 树莓派摄像头驱动完整指南
—— 从驱动配置、Yocto 构建,到 OpenCV 实战 在树莓派上运行摄像头,在官方的 Raspberry Pi OS 可能很简单,但在 Yocto 项目中,需要手动配置驱动、设备树、软件依赖 才能确保摄像头正常工作。本篇文章从 BSP 驱动配置、Yocto 关键…...
swift 开发效率提升工具
安装github copliot for xcode github/CopilotForXcode brew install --cask github-copilot-for-xcode安装swiftformat for xcode brew install swiftformatXcode Swift File代码格式化-SwiftFormat...
基于 Flink CDC YAML 的 MySQL 到 Kafka 流式数据集成
本教程的演示都将在 Flink CDC CLI 中进行,无需一行 Java/Scala 代码,也无需安装 IDE。 这篇教程将展示如何基于 Flink CDC YAML 快速构建 MySQL 到 Kafka 的 Streaming ELT 作业,包含整库同步、表结构变更同步演示和关键参数介绍。 准备阶段…...
Hue UI展示中文
个人博客地址:Hue UI展示中文 | 一张假钞的真实世界 如果使用开发分支代码如master分支)编译安装,需要自己编译语言文件。例如Hue安装目录为“/opt/hue”,则安装后执行以下命令: $ cd /opt/hue $ make locales 如果…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
