让代码更简单

腾讯AI与百度AI文字识别OCR对比

重要:本文最后更新于2019-11-28 10:09:05,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

这几天某缙玩儿起了百度OCR文字识别,突然想起好像以前写过一篇腾讯AI文字识别的OCR教程,于是打算把这两家的OCR识别做成程序,对比下哪家更牛逼一些。PC程序,C#语言编写,下面是对比结果。

首先我们先找到这两家的AI开放平台,找到对应接口。

腾讯AI:https://ai.qq.com/

百度AI:https://ai.baidu.com/

接口调用限制:

AI平台 费用 数量
腾讯AI 免费 限制并发,个人并发2,企业并发10
百度AI 免费/收费 免费50000,超出收费

在OCR通用文字识别功能处找到对应的接口文档,这里得吐槽下腾讯的文档了,真尼玛麻烦,鉴权真坑,由于之前写过腾讯OCRPHP版的代码,以及微信支付的接口鉴权,这里对我来说还好,但看了百度的接口后,我就想吐槽下。

这里分享C#的核心代码:

复制
/// <summary>
/// 图片转换成base64编码文本
/// </summary>
public string ImgToBase64String(string path)
{
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, (int)fs.Length);
string base64String = Convert.ToBase64String(buffer);
return base64String;
}

两家的图片传输都是用的base64,注意,这里指的C#图像base64编码字符串,别搞错了。

C#的字典升序排列:

复制
 var items = para.OrderBy(o => o.Key, StringComparer.Ordinal);

para指字典对象,c#没有PHP那样的ksort函数,网上各种说OrderBy不完全正确,经我测试,没发现问题。

关于时间戳不正确解决办法:

复制
DateTime.Now.ToUniversalTime()

不要用

复制
DateTime.Now

发送Post数据方法:

复制
/// <summary>
/// 指定Post地址使用Get 方式获取全部字符串
/// </summary>
/// <param name="url">请求后台地址</param>
/// <returns></returns>
public string Post(string url, Dictionary<string, string> dic)
{
string result = "";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
#region 添加Post 参数
StringBuilder builder = new StringBuilder();
int i = 0;
foreach (var item in dic)
{
if (i > 0)
builder.Append("&");
String str = UrlEncode(item.Value);
builder.AppendFormat("{0}={1}", item.Key, str);
i++;
}
byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
req.ContentLength = data.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
reqStream.Close();
}
#endregion
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
//获取响应内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
result = reader.ReadToEnd();
}
return result;
}

最后的结果比较:

腾讯AI文字识别OCR

腾讯AI文字识别OCR

百度AI文字识别OCR

百度AI文字识别OCR

看图就明白谁牛逼了吧,虽然腾讯的鉴权麻烦点,但识别功能比百度强的不止一点,百度还需要自己提供图片文字语言种类等等各种参数,腾讯AI只需提供一张带文字的图片即可,还是腾讯牛逼呀!

感觉很棒!可以赞赏支持我哟~

6 打赏

评论 (4)

登录后评论
腾讯接口识别不了:
{
"ret": 16405,
"msg": "system busy, please try again later",
"data": {
"item_list":[

]
}
}
个人用户限制并发,等会儿再识别就好了。
已经放弃腾讯,加群和客服都没应答,服务意识零分。可惜了辛辛苦苦手写调试各种转码,瞎对签名,一万次接口返回500,才返回一次system busy。百度有各种语言skd,马上就能对接好接口。
腾讯牛逼,狗哥牛逼!
QQ咨询 邮件咨询 狗哥推荐