概要
最近突然被朋友说要做一个豆瓣自动回帖的功能。而频繁顶帖超过三次的话会出现验证码,这就涉及到了文本OCR,正好百度有个免费的OCR识别接口。说做就做,获取token,调用接口,发现识别正确率并不高。资料一查,原来百度OCR只识别文字,并没有对图片进行二值化和降噪。
二值化
验证码的识别有很多python版本,但是Java版本很少,处理的比较好的那就更少了。所以我们就仿造python的逻辑写了个Java版本的二值化
1 | public byte[] imageProcessing(String url) throws IOException { |
降噪
降噪的作用其实不是很大,但为了提高识别率,所以我们还是加了一下。
1 | /** |
百度OCR
百度普通文本OCR识别,个人用户每天有50,000次免费调用,所以对于并发量不是很大的需求,这么多的免费次数还是够用的。
1 | private static final String TOKEN_KEY = "TOKEN_KEY"; |
总结
整体来说,虽然识别率达不到百分百,但是多尝试几次不同的验证码识别,基本可以识别出来,一般的需求还是够用。