Ruby Ruby 图片识别试卷

bighuzi · 发布于 2016年12月22日 · 最后由 shiny 回复于 2016年12月30日 · 1268 次阅读
96

现有一个需求,需要做一个试卷的识别, 学生在涂抹了学生考号之后我需要识别出考生涂抹的是哪几个数字。 试卷如图,不知道如何实现。。有找过几个gem,但是其中出来的东西跟想象中的还是有很大的差异。 有没有做个类似的。给个思路跟技术点呀。。。。

共收到 9 条回复
1342

电子扫描后根据像素点判断

96

从图片中定位每个答案对应点的位置,可以利用一些图像识别的库去做,然后用一个简单的色差判别库进行结果

96

#1楼 @ywjno #2楼 @jimrokliu 安装 tesseract-ocr , 启动的时候遇到这样一个异常现象。有什么解决办法呀。。

/Users/.rvm/gems/ruby-2.3.0/gems/ffi-1.9.14/lib/ffi/library.rb:147:in `block in ffi_lib': Could not open library '/var/folders/bd/lgr6tqfd16b_z7k25c866vnr0000gn/T/.ffi-inline-501/a2a96759ac9899a5d051acec5a8ae12abdd65b02.dylib': dlopen(/var/folders/bd/lgr6tqfd16b_z7k25c866vnr0000gn/T/.ffi-inline-501/a2a96759ac9899a5d051acec5a8ae12abdd65b02.dylib, 5): Library not loaded: /usr/local/opt/tesseract/lib/libtesseract.3.dylib (LoadError)
  Referenced from: /var/folders/bd/lgr6tqfd16b_z7k25c866vnr0000gn/T/.ffi-inline-501/a2a96759ac9899a5d051acec5a8ae12abdd65b02.dylib
  Reason: image not found

96

#3楼 @bighuzi 我不是这部分的专家,我只是根据我对图像识别算法的理解给你一些思路,代码上帮不上。

4209

你要做OCR啊,你要安装很多图像依赖库,ffi的这个库还要指定一下 --platform=ruby。最好是在Linux上跑,或者mac上起一个docker来搞。

27314

思路可以参考唐巧的博客,http://blog.devtang.com/2013/10/19/the-tech-detail-of-ape-client-2/,具体库或者代码就只有自己搞了

96

#5楼 @hanluner 在github上有版本说明是需要装低地的tesseract, 但是我在安装低版本的时候出现了一个问题,是

Error: Calling Resource#sha1 is disabled!
Use Resource#sha256 instead.
/Users/huzige/Library/Caches/Homebrew/Formula/tesseract.rb:123:in `block (2 levels) in <class:Tesseract>'

这个鬼。。有点不明觉厉的感觉。。第一次搞这图像识别。很受伤。。。

2556

你需要除了不能生孩子外全能的matlab,当然可用开源版的octave with cli即可。

3464

说下我的思路。第一,定位四个角,你看四个角上有定位的黑点。第二,每个槽位的相对位置提前量好。然后根据四个点的位置裁出试卷,根据相对位置计算每一题的位置,计算里面像素点,黑的程度就行了。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册