NET实现谷歌OCR的使用记录(CLOUD VISION API)

1)购买VPS 

2)配置一VPN 建议使用 cisco anycounect  |   Shadowsocks会连接失败(切记,祭奠浪费的一天)大神可以帮我看下是什么问题

3)进入https://cloud.google.com/?hl=zh-cn 注册一个账号,新用户有免费的$300美元可以使用

4)新建项目-结算-获取KEY- 启用api-查阅文档 https://cloud.google.com/vision/docs/?hl=zh-cn

5)有两种方式 1)自己按文档写(挺简单的) 2)引用客户端库来简化 以下为2实现 

6)引用 

Install-Package Google.Cloud.Vision.V1 -Pre

7)创建服务账户(谷歌控制台新建)

  1. 转到GCP控制台中创建服务帐户密钥页面。

    转到创建服务帐户密钥页面
  2. 服务帐户下拉列表中选择 新建服务帐户
  3. 服务帐户名称字段中输入一个名称
  4. 角色下拉列表中选择一个值object-所有者
  5. 点击创建出现一条提示,警告该服务帐户没有任何作用。
  6. 点击不带角色的创建包含您的密钥下载到您的计算机的JSON文件。

8)设置电脑环境变量(使用Powershell)

$env:GOOGLE_APPLICATION_CREDENTIALS="你下载的json放的位置"

9)查看变量是否已存入

ls env:

10)变量需重启电脑才生效

11)测试代码

 public static string Get(string path)
        {
            var client = ImageAnnotatorClient.Create();
            var image = Image.FromFile(path);
            var response = client.DetectText(image);
            var str = "";
            foreach (var annotation in response)
            {
                if (annotation.Description != null)
                    str+=annotation.Description;
            }
            return str;

        }

12)调用

var path = Server.MapPath(userrecords.url);
var str = Get(path);
return str;

13)官方详细demo

https://googlecloudplatform.github.io/google-cloud-dotnet/docs/Google.Cloud.Vision.V1/index.html

14)遇到的坑

1)vpn的坑,要慎重

2)基础连接已关闭的原因 需要设置  

  request.ProtocolVersion = HttpVersion.Version11; 
  request.KeepAlive = false;
 ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
      private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
        {
            return true; //总是接受 哈哈   
        }

3)谷歌注册需要国际通用信用卡,一定情况下还需要上传身份证 信用卡照片什么的,还好 不算太坑

 

posted @ 2018-03-22 10:30  宋米粒  阅读(538)  评论(0编辑  收藏  举报