您的位置  > 德语常识

如何使用百度AI开放平台中的文字识别服务来识别

本文将介绍如何使用百度AI开放平台中的文字识别服务来识别图片中的文字。 百度AI开放平台的访问网址为:百度AI开放平台。 为了使用平台提供的AI服务,您需要提前注册一个百度帐号。

首先,注册一个百度帐号并申请通用文字识别API。 上面的基础知识我就不多说了。 如果不明白的话可以参考文章。

创建百度AI文字识别应用

在百度AI开放平台中,​​登录百度帐号,点击“文字识别”服务中的“通用场景文字识别”,选择“创建应用”,填写应用名称,选择应用类型,填写应用描述等“通用场景文字识别”服务已经创建完成,如下图:

在应用程序列表中,您可以看到刚刚创建的文本识别服务。 请记住,这个应用程序中的AppID、API Key、Key非常重要,是你的应用程序的唯一标识。

接口说明

单击下面的链接了解更多信息

通用文字识别接口说明

格式如下:

	uni.request({
			url: 'https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token=【你的access_token值】',
			data:{
				 image:【图片的base64编码】,
			     language_type:'ENG', //识别语言类型,默认中英文结合
				 detect_direction:true ,//检测图像朝向
				 },
				 method:'POST',
				 header: {
						'Content-Type': 'application/x-www-form-urlencoded'
				 },
				success :(res)=> {
				console.log(res.data)
			 }
		})
	}
});

您的值需要使用您的 API Key 和 Key 来获取。 要获取该方法,请单击获取该方法的链接。

但我读到API调用方法需要编码。 详情请参见图片。

下面介绍两种图像转换的方法: 第一种方法(失败版本)

这个方法很好。 代码页方法是最容易理解的。

首先选择本地镜像的临时路径:

如何使用百度AI开放平台中的文字识别服务来识别

x.chooseImage({
      success:res=>{
        this.urlTobase64(res.tempFilePaths[0]) 
      }
})

接下来,使用临时路径作为请求的URL,将数据返回格式设置为上面的代码。

urlTobase64(url){
    wx.request({
      url:url,      // 必须是https链接
      responseType: 'arraybuffer', //最关键的参数,设置返回的数据格式为arraybuffer
      success:res=>{
	      //把arraybuffer转成base64
            let base64 = wx.arrayBufferToBase64(res.data); 
            
            //不加上这串字符,在页面无法显示的哦
            base64 = 'data:image/jpeg;base64,' + base64 
        
            //打印出base64字符串,可复制到网页校验一下是否是你选择的原图片呢
            console.log(base64) 
          }
    })
 }

这个方法看起来天衣无缝。 其实测试一下就知道在微信开发平台上可以用,但是在手机上数据就无效了!

这是因为微信小程序开发工具需要https链接。 电脑上选择的图片符合要求,但手机上传的图片临时地址不符合要求,因此转码失败,导致识别错误。

第二种方法(成功版)

以前微信开发者工具没有选择文件的功能。 更新后增加了()函数,可以通过对文件的编码操作进行本地转码。

x.chooseImage({
      success: res => {
      wx.getFileSystemManager().readFile({
          filePath: res.tempFilePaths[0], //选择图片返回的相对路径
          encoding: 'base64', //编码格式
          success: res => { //成功的回调
            console.log(res.data)
          }
        })
      }
    })

注意:无需添加“data:image/jpeg;” 在前

res.data为转码成功的编码

下面贴出完整的uni-app代码:

只需修改百度API即可


<script>
	export default {
		data(){
			return{
				src:'',
				content:[]
			}
		},
		methods:{
			uploadImage(){  //   选取照片,进行OCR识别
				uni.chooseImage({ 
					count:1,//默认9
					sizeType:['original', 'compressed'],//可以指定是原图还是压缩图,默认二者都有
					success: (res)=> {
							uni.showLoading({  
							    title: '正在识别中...'  
							});
							this.src = res.tempFilePaths[0];  //后面还能用到 src 暂且留着
							// 下面进行转码
							wx.getFileSystemManager().readFile({
								filePath:res.tempFilePaths[0], //选择图片返回的相对路径
								encoding:'base64',//编码格式
								success:(res)=>{  //成功回调页面
									uni.request({
									  url: 'https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token=【你的access_token】',
									  data:{
									    image:res.data,
										language_type:'ENG', //识别语言类型,默认中英文结合
										detect_direction:true ,//检测图像朝向
									  },
									  method:'POST',
									  header: {
									    'Content-Type': 'application/x-www-form-urlencoded'
									  },
									  success :(res)=> {
											this.content = res.data.words_result
											uni.hideLoading();  //把正在加载中隐藏
											console.log(res.data)
									  }
									})
								}
							});
					    }
				})
			}
		}
	}
</script>
<style>
	.vvv{
		width: 99%;
		border: 2px dashed #eeeeee; 
		height: 700upx;
		margin: 30upx 0 0 0;
	}
</style>

效果图如下:

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023