这几天某缙玩儿起了百度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只需提供一张带文字的图片即可,还是腾讯牛逼呀!







评论 (4)
{
"ret": 16405,
"msg": "system busy, please try again later",
"data": {
"item_list":[
]
}
}