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 如果…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
