最近开发碰到一个需求,需要在用户上传的照片中识别出号码牌(一般是运动赛事中运动员的号码牌,数字与字符组合或者纯数字)。。
在网上找了很多相关的demo参考尝试,效果都不是很理想。要么就是只能数字占满整张图片的照片,要么就是类似pdf转成word那样整张照片转换成文本,结果可想而知,全都是乱码。
现在主要的问题是这些例子都不能定位出照片中的字符,然后针对这部分字符再单独做识别处理。
各位大侠之前有接触过这类项目或者有过方面研究都可以指导下小弟,谢谢啦~ >_<
1、之前参考过一个k近邻算法比对的demo,只能对数字占满整张照片的图片进行有效识别,无法定位到字符具体位置。链接描述
2、还有就是各种OCR(Optical Character Recognition,光学字符识别)开源框架提供的sdk了。主要接触了两个,一个是Asprise Java OCR链接描述,缺点是将图片整张进行字符转换,类似pdf转word那样,造成很多乱码,没法用;另一个是Tess4J链接描述,主要是用于验证码的识别,对于规规矩矩的验证码识别不错,但是比较杂乱或者照片中的字符就完全无法识别了。
各位大侠们是否可以试试这个网站链接描述,可以上传张照片看看,需要达到的效果就像这样。
右边的107标签就是上传的时候自动识别的,,,额,,,这张识别错了,但是其他照片识别成功率还是蛮高的,现在只要能识别个大概就行了,不需要太高的精确率。
ocr
https://github.com/tesseract4java/jtesseract
同求,顶起
OCR!百分之百准确是不可能的
先二值化,然后...
看看这个吧
https://github.com/liuruoze/EasyPR