这几天某缙玩儿起了百度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只需提供一张带文字的图片即可,还是腾讯牛逼呀!
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/241337.html