实战机器学习:图片验证码识别(Java实现)

图片验证码识别,简单写下,做个备忘。

 

一、注册百度账号及新增一个应用,获取百度API所需的AppID,API Key,Secret Key三个参数。


访问http://ai.baidu.com,使用百度账号登录后,出现如下界面

成功创建应用后,出现类似如下界面:

实战机器学习:图片验证码识别(Java实现)_第1张图片

 

二、编写Java代码

身份证正反面图片中的文字识别实现步骤如下:

1.下载百度SDK

https://ai.baidu.com/sdk#ocr中,下载java SDK

实战机器学习:图片验证码识别(Java实现)_第2张图片

2.在MyEclipse等开发工具中,创建Java工程

下面以MyEclipse举例,创建的Java工程目录如下:

实战机器学习:图片验证码识别(Java实现)_第3张图片

 

3.集成百度SDK

图片验证码识别代码如下,简单几行代码就搞定,具体如下:

 com.zrscsoft.api.baidu;

import java.util.HashMap;

import org.json.JSONObject;

import com.baidu.aip.ocr.AipOcr;
/**
 * 图片验证码识别
 * 
 * @author admin
 *
 */
public class VerificationCodeRecognitionDemo {
    //设置APPID/AK/SK
    public static final String APP_ID = "你的 App ID";
    public static final String API_KEY = "你的 Api Key";
    public static final String SECRET_KEY = "你的 Secret Key";
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
         // 初始化一个AipOcr
        AipOcr client = new AipOcr(APP_ID, API_KEY, SECRET_KEY);

        // 可选:设置网络连接参数
        client.setConnectionTimeoutInMillis(2000);
        client.setSocketTimeoutInMillis(60000);

        String path = System.getProperty("user.dir");
        String imgPath=path+"/images/VerificationCodeRecognition1.png";//D:\\1.png
        // 识别图片验证码中的数字
        HashMap options2 = new HashMap();
        options2.put("detect_direction", "true");
        options2.put("detect_language", "true");
        JSONObject res = client.webImage(imgPath, options2);
        System.out.println("识别返回的字符串为:"+res.toString(2));
        System.out.println("识别出来的验证码为:"+res.getJSONArray("words_result").getJSONObject(0).get("words"));
    }

}

4.运行VerificationCodeRecognitionDemo中main()方法,运行后的结果,大致如下:

识别返回的字符串为:{
  "words_result": [{"words": "CMK8"}],
  "direction": 0,
  "words_result_num": 1,
  "log_id": 549443541293277400
}
识别出来的验证码为:CMK8

 

下载源码。

 

 

你可能感兴趣的:(JAVA)