提交修改
This commit is contained in:
parent
cc66a54bdc
commit
f23833fa2c
@ -12,7 +12,6 @@ import java.util.List;
|
||||
* https://console.bce.baidu.com/support/?_=1740575657628×tamp=1740583045120#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E6%95%99%E8%82%B2%E5%9C%BA%E6%99%AFOCR&api=rest%2F2.0%2Focr%2Fv1%2Fdoc_analysis&method=post
|
||||
*
|
||||
*试卷分析与识别
|
||||
*
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
|
||||
@ -0,0 +1,90 @@
|
||||
package com.heyu.api.controller.educational;
|
||||
|
||||
|
||||
import com.heyu.api.baidu.handle.educational.BDocAnalysisHandle;
|
||||
import com.heyu.api.baidu.request.educational.BDocAnalysisRequest;
|
||||
import com.heyu.api.baidu.response.educational.BDocAnalysisResp;
|
||||
import com.heyu.api.data.annotation.CacheResult;
|
||||
import com.heyu.api.data.annotation.NotIntercept;
|
||||
import com.heyu.api.data.utils.ApiR;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import com.heyu.api.resp.doc.DocAnalysisResp;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/***
|
||||
* https://console.bce.baidu.com/support/?_=1740575657628×tamp=1742719522919#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E6%95%99%E8%82%B2%E5%9C%BA%E6%99%AFOCR&api=rest%2F2.0%2Focr%2Fv1%2Fdoc_analysis&method=post
|
||||
*
|
||||
* 试卷分析与识别
|
||||
*
|
||||
*
|
||||
* 接口描述
|
||||
* 可对文档版面进行分析,输出图、表、标题、文本的位置,并输出分版块内容的OCR识别结果,支持中、英两种语言,手写、印刷体混排多种场景,支持公式识别、手写竖式识别。
|
||||
*
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/doc")
|
||||
@NotIntercept
|
||||
public class DocAnalysisController {
|
||||
|
||||
@Autowired
|
||||
private BDocAnalysisHandle bDocAnalysisHandle;
|
||||
|
||||
|
||||
@RequestMapping("/analysis")
|
||||
@CacheResult
|
||||
public R analysis(BDocAnalysisRequest request) {
|
||||
|
||||
DocAnalysisResp resp = new DocAnalysisResp();
|
||||
|
||||
ApiR<BDocAnalysisResp> bR = bDocAnalysisHandle.handle(request);
|
||||
if (bR.isSuccess()) {
|
||||
BDocAnalysisResp bDocAnalysisResp = bR.getData();
|
||||
|
||||
resp.setResultsNum(bDocAnalysisResp.getResultsNum());
|
||||
resp.setLayoutsNum(bDocAnalysisResp.getLayoutsNum());
|
||||
resp.setImgDirection(bDocAnalysisResp.getImgDirection());
|
||||
|
||||
List<DocAnalysisResp.ResultsDTO> resultsDTOList = new ArrayList<>();
|
||||
|
||||
if (CollectionUtils.isNotEmpty(bDocAnalysisResp.getResults())) {
|
||||
|
||||
for (BDocAnalysisResp.ResultsDTO result : bDocAnalysisResp.getResults()) {
|
||||
DocAnalysisResp.ResultsDTO resultsDTO = new DocAnalysisResp.ResultsDTO();
|
||||
resultsDTO.setWordsType(result.getWordsType());
|
||||
resultsDTO.setWords(result.getWordsType());
|
||||
resultsDTOList.add(resultsDTO);
|
||||
}
|
||||
}
|
||||
|
||||
resp.setResults(resultsDTOList);
|
||||
|
||||
|
||||
if (CollectionUtils.isNotEmpty(resp.getFormWords())) {
|
||||
List<String> formWords = new ArrayList<>();
|
||||
for (String formWord : resp.getFormWords()) {
|
||||
formWords.add(formWord);
|
||||
}
|
||||
resp.setFormWords(formWords);
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(resp.getWords())) {
|
||||
List<String> words = new ArrayList<>();
|
||||
for (String word : resp.getWords()) {
|
||||
words.add(word);
|
||||
}
|
||||
resp.setWords(words);
|
||||
}
|
||||
}
|
||||
return R.error();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,77 @@
|
||||
package com.heyu.api.controller.educational;
|
||||
|
||||
|
||||
import com.heyu.api.baidu.handle.educational.BPenHandle;
|
||||
import com.heyu.api.baidu.request.educational.BPenRequest;
|
||||
import com.heyu.api.baidu.response.educational.BPenResp;
|
||||
import com.heyu.api.controller.BaseController;
|
||||
import com.heyu.api.data.annotation.CacheResult;
|
||||
import com.heyu.api.data.annotation.NotIntercept;
|
||||
import com.heyu.api.data.utils.ApiR;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import com.heyu.api.resp.doc.PenResp;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/***
|
||||
*
|
||||
*
|
||||
* https://console.bce.baidu.com/support/?_=1740575657628×tamp=1742720986912#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E6%95%99%E8%82%B2%E5%9C%BA%E6%99%AFOCR&api=rest%2F2.0%2Focr%2Fv1%2Fpen&method=post
|
||||
*
|
||||
*
|
||||
* 词典笔文字识别
|
||||
*
|
||||
*
|
||||
*
|
||||
接口描述
|
||||
面向词典笔应用场景,是词典笔的基本功能之一,主要用于扫描文字并识别,为字词查询和翻译提供文本信息支撑。支持中英文识别、印刷手写混排识别,满足多种复杂背景下的文字扫描识别。
|
||||
|
||||
|
||||
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/doc")
|
||||
@NotIntercept
|
||||
public class PenController extends BaseController {
|
||||
|
||||
|
||||
@Autowired
|
||||
private BPenHandle bPenHandle;
|
||||
|
||||
|
||||
@RequestMapping("/pen")
|
||||
@CacheResult
|
||||
public R pen(BPenRequest request) {
|
||||
List<PenResp> respList = new ArrayList<>();
|
||||
|
||||
ApiR<BPenResp> bR = bPenHandle.handle(request);
|
||||
if (bR.isSuccess()) {
|
||||
BPenResp bPenResp = bR.getData();
|
||||
for (BPenResp.WordsResultDTO wordsResultDTO : bPenResp.getWordsResult()) {
|
||||
PenResp penResp = new PenResp();
|
||||
penResp.setWords(wordsResultDTO.getWords());
|
||||
|
||||
PenResp.ProbabilityDTO probabilityDTO = new PenResp.ProbabilityDTO();
|
||||
BPenResp.WordsResultDTO.ProbabilityDTO probability = wordsResultDTO.getProbability();
|
||||
|
||||
|
||||
probabilityDTO.setAverage(probability.getAverage());
|
||||
probabilityDTO.setVariance(probability.getVariance());
|
||||
probabilityDTO.setMin(probability.getMin());
|
||||
|
||||
penResp.setProbability(probabilityDTO);
|
||||
|
||||
}
|
||||
|
||||
return R.ok().setData(respList);
|
||||
}
|
||||
|
||||
return R.error(bR.getErrorMsg());
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
package com.heyu.api.resp.doc;
|
||||
|
||||
|
||||
import com.heyu.api.data.dto.BaseResp;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class DocAnalysisResp extends BaseResp {
|
||||
|
||||
|
||||
private Integer resultsNum; // 识别结果数,表示results的元素个数
|
||||
private Integer imgDirection; // detect_direction=true 时返回。检测到的图像朝向,0 :正向; 1:逆时针旋转90度;2:逆时针旋转180度;3:逆时针旋转270度
|
||||
private Integer layoutsNum; // 版面分析结果数,表示layout的元素个数
|
||||
private List<ResultsDTO> results; // 识别结果数组
|
||||
private List<String> formWords; // 识别结果中的公式数组,包括公式位置和公式内容,recg_formula=true时返回
|
||||
|
||||
private List<String> words; // 将普通文字和公式融合后的识别结果数组,recg_formula=true时返回
|
||||
|
||||
@Data
|
||||
public static class ResultsDTO {
|
||||
/**
|
||||
* 文字类型。
|
||||
* 默认:印刷文字识别
|
||||
* = handwring_only:手写文字识别
|
||||
* = handprint_mix: 手写印刷混排识别
|
||||
*/
|
||||
private String wordsType;
|
||||
/***
|
||||
* 文字
|
||||
*/
|
||||
private String words;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package com.heyu.api.resp.doc;
|
||||
|
||||
import com.heyu.api.data.dto.BaseResp;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
public class PenResp extends BaseResp {
|
||||
|
||||
private ProbabilityDTO probability;
|
||||
// 识别结果字符串
|
||||
private String words;
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class ProbabilityDTO {
|
||||
// 识别结果中每一行的置信度值,包含average:行置信度平均值,variance:行置信度方差,min:行置信度最小值,当 probability=true 时返回该字段
|
||||
|
||||
private Double average;
|
||||
private Double min;
|
||||
private Double variance;
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user