精华内容
下载资源
问答
  • 每个接口 1,000次/月免费,有6个文字识别的接口,一共是6,000次/月 百度接口调用之前写过文章 python实现百度OCR图片识别过程解析 使用步骤 1、注册账号: https://cloud.tencent.com/ 2、开通服务:...
  • 华为文字识别接口

    2019-08-28 16:46:32
    在华文云提供的文档基础上进行了简单的整理,需要引入华为相关的jar包 import com.oss.oss_demo.util.OcrClientToken; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; ...

    在华文云提供的文档基础上进行了简单的整理,需要引入华为相关的jar包

    import com.oss.oss_demo.util.OcrClientToken;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiImplicitParam;
    import io.swagger.annotations.ApiOperation;
    import org.apache.commons.io.IOUtils;
    import org.apache.http.HttpResponse;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.io.IOException;
    import java.net.URISyntaxException;
    
    @RestController
    @RequestMapping("/huaweicloud/ocr")
    @Api(tags = "华为云 文字识别")
    public class HWOcrController {
        private String Username="";
        private String Password="";
        private String Domainname=""; //if it's not IAM user the Domain_name is the same with username
        private String Regionname="cn-north-1";
        private String HttpEndpoint="ocr.cn-north-1.myhuaweicloud.com";
    
    
        @PostMapping(value ="getIdCard")
        @ApiOperation("身份证识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getIdCard(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/id-card", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getDriverLicense")
        @ApiOperation("驾驶证识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getDriverLicense(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/driver-license", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getVehicleLicense")
        @ApiOperation("行驶证识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getVehicleLicense(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/vehicle-license", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getVatInvoice")
        @ApiOperation("增值税发票识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getVatInvoice(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/vat-invoice", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getCustomsInvoice")
        @ApiOperation("英文海关单据识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getCustomsInvoice(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/action/ocr_form", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getGeneralTable")
        @ApiOperation("通用表格识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getGeneralTable(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/general-table", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getGeneralText")
        @ApiOperation("通用文字识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getGeneralText(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/general-text", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getHandWriting")
        @ApiOperation("手写字母数字识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getHandWriting(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/handwriting", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getMvsInvoice")
        @ApiOperation("机动车销售发票识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getMvsInvoice(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/mvs-invoice", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getPlateNumber")
        @ApiOperation("车牌识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getPlateNumber(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/plate-number", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getTollInvoice")
        @ApiOperation("车辆通行费发票识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getTollInvoice(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/toll-invoice", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getfFlightItinerary")
        @ApiOperation("飞机行程单识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getfFlightItinerary(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/flight-itinerary", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getQuotaInvoice")
        @ApiOperation("定额发票识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getQuotaInvoice(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/quota-invoice", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getTrainTicket")
        @ApiOperation("火车票识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getTrainTicket(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/train-ticket", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getBankcard")
        @ApiOperation("银行卡识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getBankcard(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/bankcard", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getBusinessLicense")
        @ApiOperation("营业执照识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getBusinessLicense(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/business-license", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getPassPort")
        @ApiOperation("护照识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getPassPort(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/passport", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getTransportationLicense")
        @ApiOperation("道路运输证识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getTransportationLicense(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/transportation-license", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getWebImage")
        @ApiOperation("网络图片识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getWebImage(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/web-image", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
        @PostMapping(value ="getTaxiInvoice")
        @ApiOperation("出租车发票识别")
        @ApiImplicitParam(name ="imagePath",value ="图片路径",required = true)
        public String getTaxiInvoice(String imagePath) throws InterruptedException, IOException, URISyntaxException {
            OcrClientToken ocrClient= new OcrClientToken(Domainname,Username,Password,Regionname,HttpEndpoint);
            HttpResponse response=ocrClient.requestOcrServiceBase64("/v1.0/ocr/taxi-invoice", imagePath);
            System.out.println(response);
            String content = IOUtils.toString(response.getEntity().getContent(), "utf-8");
            System.out.println(content);
            return content;
        }
    
    }
    

     

    展开全文
  • 下面首先简单的介绍一下华为文字识别产品,随后重点讲我们的关键技术、关键能力,产品的优化之路,做产品需要注意到问题以及踩过的坑。其中很多点是整个人工智能或者以数据为驱动的产品都需要注意的。 我们是做...

    下面首先简单的介绍一下华为云文字识别产品,随后重点讲我们的关键技术、关键能力,产品的优化之路,做产品需要注意到问题以及踩过的坑。其中很多点是整个人工智能或者以数据为驱动的产品都需要注意的。

    我们是做产品的,但是我们也会参与一些比赛,或者是写一些论文,来提升我们的技术影响力,比如说2019年ICDAR票据识别比赛,我们协同华中大联合一起参与了这次比赛。在端到端文字识别赛道上,我们以96.43的超高精度取得了世界第一。这个呢,远远超过了2至5名,大概是两个点左右,同时我们也会申请一些专利。因为我们的创新性,我们获得了2019数博会领先科技成果奖的新产品奖。

    这是我们华为云文字识别服务的全景图,主要包含五大类,包括通用类,票据类,证件类,行业类,和定制类,通用类包括通用文字,通用表格,网络截图等。票据类呢,是指各种票,只是比如说是增值税发票,火车票,出租车票等。证件类呢,则是各种证件,比如身份证,驾驶证,行驶证,护照等。行业类是面向特定行业的,比如说物流行业的电子面单,纸质面单,比如说生活方面的燃气表,比如说医疗行业的医学检验单等。定制类呢,则是对客户进行特殊定制的,比如说是海外的身份证。

    助力企业生产效率提升,降低运营成本

    下面是我们的关键技术,我们融合了多种图像处理技术,具有高精度,鲁棒性和自适应性等特点。文字识别精度特别高,支持错行,盖章,文字叠加等复杂场景,支持多种类型单据,自适应不同质量图片。整个流程呢,主要是如下,包括图像预处理,表格提取,有没有表格进一步处理,文字定位,其中可能会有文字矫正,文字识别,文字后处理等,最后返回给客户的是结构化的json数据。

    那么我们这些特点是如何做到的呢。首先呢,是从硬件开始,我们会协同华为云的昇腾芯片做了底层的优化。比如说LSTM多算子融合,比如说算子重写。其实呢,做深度学习,最好能够从底层硬件优化开始,当然很多小公司做不到这一点,那就需要在上层优化算法了。还有一点是我们会对图像进行多种预处理,以提高训练速度,比如说是我们会把不同的文字成长度,基于多线程放在多个队列里,然后提高取出数据的速度。也会对累计梯度聚合优化等,一亿的切片数据,10小时完成训练

    模型算法需要持续更新,比如说我们2018年发在IEEE上的一篇文章,ITE。我们采用了类似Textbox的思想,把RetinaNet的Anchor重新设计了。然后同时对Kernel等各方面进行了全面优化,最终呢,比直接应用RetinaNet的性能提高了十个点左右。

    同我们做产品的时候会遇到各种各样的场景,比如说右边的盖章检测。这是我们广东的一个客户的实际场景,需要识别盖章里的内容。盖章除了我图上的椭圆章,其实还有圆形章,方形章、三角形的章等。我们用了各种弧形文字检测算法,检测性能都达不到客户的需求,后来我们做了基于字符的一些优化之后,大概准确率达到了96%左右,基本上可以满足了客户的需求度,所以说呢。无论是做写论文儿还是做产品,一定要持续的优化算法。很多原始的算法即使性能很好,但在实际场景往往达不到论文里描述的效果。文字识别不优化算法,不如回家卖地瓜。

    16

    在深度学习时代,数据成为关键,对数据的需求量非常大。但是数据总是有限的,标注数据的成本也巨大,同时需要时间,合成数据基本上成了必选之路。最左边的是syntext,相信很多团队都在用,首先使用分割提取到了几何信息和分割结果,随后计算景深。然后找到平滑区域生成文字。

    我们也会使用传统方法,比如说opencv、pillow等用来合成整张图片。我们针对文字自研了一套丰富的增强的算子库,增加了很多开源工程没有的算子。同时呢,我们会也会通过GAN转换一些切片。当然啦,GAN有的时候转换过的内容会比较莫名其妙。这也是深度学习的问题,很多时候因为不可解释,你不知道你得到的会是什么。

    作者:blackmoon

    展开全文
  • 记录一下使用华为云OCR识别身份证和银行卡 public class OCRUtil { private static String tokenurl="https://iam.cn-east-3.myhuaweicloud.com/v3/auth/tokens"; private static String username=; private ...

    记录一下使用华为云OCR识别身份证和银行卡

    public class OCRUtil {
    
        private static String tokenurl="https://iam.cn-east-3.myhuaweicloud.com/v3/auth/tokens";
        private static String username=;
        private static String domain=;
        private static String password=;
        private static String projectid=;
    
        /**
         * 识别身份证信息
         * @param imageurl 图片地址
         * @param side  true 正面(头像面)    false 反面(国徽面)
         * 注意事项:此处申请华为云必须在华为云上海一区开通身份证识别功能,然后拷贝项目ID到此处进行识别
         */
        public static String getIdCardInfo(String imageurl,String side){
            String JSONSTR = "{ \n \"auth\": { \n \"identity\": { \n \"methods\": [ \n \"password\" \n  ], \n  \"password\": { \n \"user\": { \n\"name\": \""+username+"\", \n \"password\": \""+password+"\", \n \"domain\": { \n \"name\": \""+domain+"\" \n } \n } \n} \n}, \n\"scope\": { \n \"project\": { \n\"name\": \"cn-east-3\" \n} \n} \n} \n}";
            String token =   HttpRequest.post(tokenurl).body(JSONUtil.parse(JSONSTR) ).execute().header("X-Subject-Token");
            String url = "https://ocr.cn-east-3.myhuaweicloud.com/v2/"+projectid+"/ocr/id-card";
            Map<String,Object> param = new HashMap<>();
            param.put("url",imageurl);
            param.put("side",side);
            String result=HttpRequest.post(url).header("X-Auth-Token",token).body(JSONUtil.parse(param) ).execute().body();
            System.out.println(result);
            return result;
        }
        /**
         * 识别银行卡信息
         * @param imageurl 图片地址
         * 注意事项:此处申请华为云必须在华为云上海一区开通身份证识别功能,然后拷贝项目ID到此处进行识别
         */
        public static String getBankInfo(String imageurl){
            String JSONSTR = "{ \n \"auth\": { \n \"identity\": { \n \"methods\": [ \n \"password\" \n  ], \n  \"password\": { \n \"user\": { \n\"name\": \""+username+"\", \n \"password\": \""+password+"\", \n \"domain\": { \n \"name\": \""+domain+"\" \n } \n } \n} \n}, \n\"scope\": { \n \"project\": { \n\"name\": \"cn-east-3\" \n} \n} \n} \n}";
            String token =   HttpRequest.post(tokenurl).body(JSONUtil.parse(JSONSTR) ).execute().header("X-Subject-Token");
            String url = "https://ocr.cn-east-3.myhuaweicloud.com/v2/"+projectid+"/ocr/bankcard";
            Map<String,Object> param = new HashMap<>();
            param.put("url",imageurl);
            String result=HttpRequest.post(url).header("X-Auth-Token",token).body(JSONUtil.parse(param) ).execute().body();
            System.out.println(result);
            return result;
        }
    }

    着重说明username和password是你的华为云主账号创建的IAM账号。domain是主账号用户名。tokenurl是华为云 华东-上海一 的服务器域名,可根据不同地域更换。

    可参考官方文档:https://support.huaweicloud.com/api-iam/iam_17_0002.html

    IAM用户组和账号配置:https://support.huaweicloud.com/qs-iam/iam_01_0030.html

    错误码:https://support.huaweicloud.com/api-ocr/ocr_03_0028.html

    展开全文
  • [入门介绍]OCR服务快速入门汇总1.[快速入门 01] 申请华为文字识别服务现阶段,华为文字识别服务处于公测阶段,需要先申请公测,再申请开通服务,具体操作步骤如下:步骤1 申请华为云账号,并完成实名认证。...

    [入门介绍]OCR服务快速入门汇总

    1.[快速入门 01] 申请华为文字识别服务

    现阶段,华为文字识别服务处于公测阶段,需要先申请公测,再申请开通服务,具体操作步骤如下:

    步骤1       申请华为云账号,并完成实名认证。

    步骤2        登录华为云管理控制台,单击“服务列表”,选择“数据分析->人工智能服务”。

    图1-1 服务列表(点击放大)

    60d331962a567c6a15b216746bdfec3c.png

    步骤3在“人工智能服务”控制台的“总览”界面,用户可以看到已开通的服务使用情况,如图1-2所示(当前未开通任何服务)。

    图1-2 总览界面(点击放大)96e75714b3316664ce4aff68430c0378.png步骤4        选择待开通的服务(以“单据识别服务”为例),选择左侧导航栏的“文字识别”,单击单据识别右侧的“申请公测”。

    图2-3 申请公测(点击放大)da75dfd69ddb5fcdd9b0708efdf9ad62.png 

    步骤5       在“申请公测”页面填写相关的申请信息,勾选“同意《公测免费试用服务协议》”,单击“申请公测”,完成操作。

    图2-4 填写申请信息(点击放大)3f5e8cae88d4ce6d60e8dd7624d966ff.png 

    步骤6        返回“人工智能服务”控制台界面,选择左侧导航栏的“文字识别”,单击单据识别右侧的“申请服务”。

    图2-5 申请服务(点击放大)d7d43ec952c75ec5a014482d81bbe524.png 

    步骤7       申请成功后,总览界面显示已开通的服务。此时,用户可通过调用API的方式使用单据识别服务。

    图2-6 显示已开通的服务(点击放大)8d6d546dff8afc41510a1b60ee9fa57f.png

    2.[快速入门 02] 获取Token和AK/SK

    完成人工智能文字识别服务的申请后,可以进行服务API的调用。调用接口有如下两种认证方式,您可以任选其中一种进行认证鉴权。Token认证:通过Token认证调用请求。

    AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。AK/SK认证安全性更高。

    下面分别介绍如何获取Token值和AK/SK:

    2.1 获取Token值{

    "auth": {

    "identity": {

    "methods": [

    "password"

    ],

    "password": {

    "user": {

    "name": "username",

    "password": "password",

    "domain": {

    "name": "domainname"

    }

    }

    }

    },

    "scope": {

    "project": {

    "name": "cn-north-1" //假设区域名称是“cn-north-1”

    }

    }

    }

    }

    复制代码

    请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。

    2.2 获取AK/SK

    步骤1     登录华为云管理控制台。

    步骤2    单击用户名,在下拉列表中单击“我的凭证”。

    图1-1 “我的凭证”页面

    21ed22ca8ed8f8811b73a1639785555d.png

    步骤3     在“我的凭证页面”,单击“管理访问密钥”页签。

    步骤4     在“管理访问密钥”页面,单击“新增访问密钥”,弹出“新增访问密钥”对话框。

    图1-2 “新增访问密钥”对话框

    59b93badfe75d665d2475d744e6e43df.png

    步骤5     输入登录密码和短信验证码,单击“确定”。此时,访问密钥以excel文件的形式自动下载到本地电脑中。

    步骤6     打开excel表格,即可获取用户所需的AK/SK(请妥善保管密钥文件)。

    3.[快速入门 03] 使用文字识别服务Demo

    用户完成文字识别服务的申请,并获取了AK/SK(或Token)之后,可下载人工智能SDK包进行操作。假设用户已申请开通了单据识别服务,以AK/SK的方式调用API,主要操作步骤如下:

    3.1 下载SDK包

    3.2 准备开发环境

    步骤二下载eclipse文件(下载地址:http://www.eclipse.org/downloads/packages/),配置好JRE的路径。

    步骤三将下载的SDK包导入到工程中,工程目录如图2-1所示。

    图2-1 工程目录(点击放大)

    9a51a9d0d7d1c4fdf16b6039a93a79eb.png

    步骤四打开目录下ClientContextUtils.java文件,将代码中的“your AK”和“your SK”替换成用户所获取的AK/SK,如图2-2所示。

    图2-2 修改AK/SK(点击放大)

    d059de4501b6847f7d920ffe45dd7191.png

    3.3 海关单据识别Demo演练

    步骤一打开目录下OcrFormDemo.java文件,修改图片路径(如:“data/ocr-demo-1-50%.png”)为用户本地的待处理的海关单据图片,如图3-1所示。

    图3-1 修改图片路径(点击放大)

    5c954e2c8630e63b115ee11f72af6746.png

    步骤二运行OcrFormDemo.java文件,在下方控制台输出200表示demo执行成功,并输出海关单据图片的识别结果,如图3-2所示。

    图3-2 识别结果(点击放大)

    e681ba04578ace9d5961e8ce7a38a937.png

    展开全文
  • 本文为OCR文字识别系列的第三篇,主要讲的华为云OCR文字识别服务的产品优势和应用场景,典型的行业落地方案,以及我们下一步要的事情,有些事情也是人工智能行业本身需要解决的。现在人工智能虽然很火,但是能落地的...
  • 1、需求 更具UI的设计实现扫描二维码和识别本地图片二维码功能。 zxing扫描二维码还可以,但是识别本地图片... 最后采用华为扫描的SDK,扫描二维码非常好,而且识别本地图片二维码功能效果也非常敏感 但是华为SD
  • Python识别图片中的文字

    万次阅读 多人点赞 2020-05-17 12:49:59
    三、文字识别 (1)单张图片识别 接下来的操作就要简单的多,下面是我们要识别的图片: 接下来就是我们文字识别的代码: import pytesseract from PIL import Image # 读取图片 im = Image.open('sentence.jpg') # ...
  • 华为云-文字识别OCR-身份证识别

    千次阅读 2019-07-16 16:41:01
    申请文字识别服务之前,必须先申请华为云账号。 用户首次使用文字识别服务时,需要先申请开通该服务。服务只需要开通一次即可,后面使用时无需再次申请。
  • 首先简单的介绍一下华为文字识别服务,随后重点介绍产品的关键技术、关键能力,产品的优化之路,做产品需要注意到问题以及踩过的坑。其中很多点是整个人工智能或者以数据为驱动的产品都需要注意的。 下面首先简单...
  • 首先要满足的条件,已注册华为云账户,并订阅华为云上的文字识别接口 package OCRDemo; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io....
  • 目前,华为公司在海外设有4大供应中心,海关报关单全球一年有35w份左右(其中中国进口5w份,出口15w份,及香港进出口10w份,其它子公司5w份左右)。现在的单据处理方式还停留在通过人工方式将单据内容手动录入到系统...
  • 3月24日,华为云2020文字识别狂欢季正式开启, 19款OCR类产品全线降价50%,助力证类识别、财务报销审核、合同录入与审核等场景AI落地,提升工作效率。 哪些场景可以应用OCR服务? 卡证:比如原来在办理银行业务时...
  • 在计算机视觉技术专题,华为云OCR人工智能高级算法工程师王晶分享了“文字识别服务的技术实践、底层框架及应用场景”的主题演讲。 演讲的第一部分,他分享了文字检测和识别的基础知识以及难点...
  • ios 图片文字识别ocr

    2013-07-02 10:23:58
    可直接运行代码,可检测文字区域,可以识别中英文,注意(测试图片最好不要有明显的图片边缘界限,否则检测文字区域无效)
  • 华为怎么图片文字

    万次阅读 2019-01-08 15:52:27
    好的内容,需要记下来,以备不时之需,但是用手抄很慢,而且效率低,如今科技这么发达,其实,只需要利用手上的手机拍张照,就能将图片文字秒秒钟提取出来,下面给大家分享一下华为手机自带图片文字方法,很实用...
  • 华为云智能图片识别

    2020-01-15 22:21:58
    第二步:在左边服务列表搜索文字识别 第三步:点击左侧智能识别,再点击下方服务管理 第四步:点击文字识别套餐包 第五步:注意这里选华北-北京四 第六步:忽略图中第二步,直接点开第三步获取SDK和...
  • 阿里旷视 百度 OCR图片文字识别功能对比 因为项目中需要用到图片转文字的功能看到网上有挺多这方面的API 所以测试下哪个产品的功能更好目前选中了阿里 旷视 和百度这三家的API 图片:   旷视识别出来的结果 句对起...
  • 那我们如何用手机来进行文字识别呢,最简单的方法就是用微信小程序,无需下载任何APP,点击进去就能使用,今天就来教大家如何用微信小程序来进行文字识别。 1、首先,我们打开手机微信,点击微信上的搜索框搜索...
  • ios 照片文字识别ocr

    2016-05-24 13:45:47
    可直接运行代码,可检测文字区域,可以识别中英文,注意(测试图片最好不要有明显的图片边缘界限,否则检测文字区域无效)
  • 计算机文字识别,俗称光学字符识别,英文全称是Optical Charater Recognition(简称OCR),它是利用光学技术和计算机技术把印刷在或者写在图纸上的文字以文本形式提取出来,并转换成一种计算机能够接受、人又可以理解...
  • "强生爽身粉致癌案" }, { "words": "脑机接口系统" }, { "words": "个人破产制度试点走98800步遭质疑新" }, { "words": "007主角变成黑人" }, { "words": "华为申请专利" }] } 实验总结:百度的图片文字APi还是挺...
  • 也是当前最火的人工智能应用,文本识别服务可以识别收据、名片、文档照片等含文字图片,将其中的文本信息提取出来。打开相机就可以轻松将图片或者实景中的文字转换为文字信息。 使用场景 在寄快递场景下,通过...
  • PandaOCR 是一款短小精悍绿色小巧又免费实用的ocr文字识别软件,界面清爽纯净,排版简洁大方,无任何商业推广行为,拥有图片识别、截图识别、剪切识别以及翻译和汉化等实用功能,PandaOCR虽然是免费的文字识别软件...
  • Android 身份证拍照 识别 文字识别 (百度) 百度智能云文档 身份证识别DEMO 1. 为您自己的工程添加必要的权限 如果您在自己的工程中集成SDK,请确保已经在工程AndroidManifest.xml文件中添加如下权限: <uses-...
  • 摘要:本文主要介绍文字检测和文字识别作为计算机视觉一部分的重要性,基本知识,面临的挑战,以及部分最新的成果。人类在认识了解世界的信息中91%来自视觉,同样计算机视觉是机器认知世界的基础,也是人工智能研究...
  • 大家好,我是一行本篇分享的是用百度的接口实现图片文字识别1.环境和配置要求整体是用Python实现,所需要使用的第三方库包括aip、PIL、keyboard、pyinstalle...
  • Android Studio实现文字识别(基于百度云OCR)

    千次阅读 多人点赞 2021-01-13 20:41:18
    今天验收好,跟大家分享一下其中我负责的相机相册调用以及实现文字识别的部分。 项目环境: 1、Android Studio 4.1.1 2、华为Nova 3e (安卓9)以及 华为 P20(安卓10) 3、百度智能云-文字识别OCR-通用文字识别...
  • 本项目集成了华为云OCR文字识别业务,支持ThinkPHP5.0、ThinkPHP5.1和ThinkPHP6.0,由宁波晟嘉网络科技有限公司维护。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,945
精华内容 1,178
关键字:

华为图片文字识别