Coder Social home page Coder Social logo

evilgix / evil Goto Github PK

View Code? Open in Web Editor NEW
689.0 21.0 98.0 3.21 MB

Optical Character Recognition in Swift for iOS&macOS. 银行卡、身份证、门牌号光学识别

License: MIT License

Swift 79.80% Python 13.17% Ruby 6.65% Objective-C 0.38%
ocr vision machine-learning swift4 keras cnn-model

evil's Introduction

Evil

Optical Character Recognition in Swift for iOS&macOS.


debug image

图片来自于网络,侵删

Requirements

  • iOS 11.0+ / macOS 10.13+
  • Xcode9.2+
  • Swift 4.0+

Basic Usage

Evil 使用 Vision 框架进行文字识别,因此你需要导入特定的MLModel到你的Xcode工程。例如识别身份证导入识别身份证的model,识别银行卡导入识别银行卡的model。

以下是目前已经训练好的模型

如何导入

首先从上面的地址下载或者自己训练得到模型文件(*.mlmodel),然后作为resource资源加入项目。但是模型文件size一般都比较大因此Evil还支持另外一种方式即:运行时从指定的服务器下载对应的模型。

  1. 获取对应的模型文件并重名命名为[name].mlmodel [name]可通过以下方法获取print(Recognizer.chineseIDCard.name)
  2. 将模型文件上传至自己的服务器或者CDN并获取下载链接
  3. info.plist 中配置下载链接如下

info.plist

初始化

lazy var evil = try? Evil(recognizer: .chineseIDCard)

或者 手动指定下载路径

let downloadURL = URL(string: "https://****/ChineseIDCard.mlmodel")!
let chineseIDCard = Recognizer.custom(name: "ChineseIDCard", model: downloadURL, needComplie: true, processor: Recognizer.cropChineseIDCardNumberArea)
let evil = try? Evil(recognizer: chineseIDCard)

或者直接将模型文件拖入 xcode 项目

let url = Bundle.main.url(forResource: "ChineseIDCard", withExtension: "mlmodelc")!
let evil = try? Evil(contentsOf: url, name: "ChineseIDCard")

注意Extension 为mlmodelc而不是mlmodel因为xcode会自动编译mlmodel文件,并且生成对应的class. 所以请务必注意Model文件不要和现有的class重名。

开始识别

let image: Recognizable = .....
let result = evil?.recognize(image)
print(result)

训练模型

参考Tools 目录下PrepareBot项目
参考博文掘金

交流讨论

1.github issue (推荐)
2.qq 群:641256202

LICENSE

 MIT

Copyright 2018 - 2019 Kevin.Gong aoxianglele#icloud.com

evil's People

Contributors

kevingong2013 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

evil's Issues

识别率太低

你好,我试用您的iOS Example,从网上下载了mlmodel,拖入工程,然后下载网上的身份证,不过运行要么就是识别失败,或者是识别的结果非常差,和不加载mlmodel时的结果没区别,不知我哪里做错了?望指教,谢谢

linux版本

你好,想问下,有linux版本的可以提供测试吗?

冒昧问一个问题,打扰抱歉

我看到您展示了一个训练好的 二代身份证的 mlmodel
特别想问问,哪里能找到这种训练比较好的开放的mlmodel,我特别想找通用文字OCR的mlmodel,想拿来快速处理视频流,tesseract太慢了

示例图片暴露他人信息

示例图片应该对某些关键字进行适当的模糊处理,展示使用效果就行了,以免被别有用心的人盗用。虽然我们并不认识这个人,但也应该尊重他人的隐私。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.