本文主要是介绍2021一位Android中级程序员的跳槽面经,感悟分享,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
### 本文知识点
##### 身份证识别整体架构
- 效果演示
- 身份证识别的应用场景
- 项目核心架构
##### 身份证识别关键技术
- NDK开发的原理
- 什么是JNI
- OpenCV架构体系
- OCR技术架构
##### 身份证识别项目实战
- 关键架构
- 核心步骤与手写实现
- 同步运行下IOS windows
- Android架构
### 一.什么是身份证识别
![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210706/1625568837118571.jpg)
关键问题分析:找到号码所在区域→获取号码图片→识别身份证号码
### 二.核心
**OpenCV:**
OpenCV的全称是Open Source Computer Vision Library是一个跨平台的计算机视觉库。IBM 1999 年开始研发,用C++ 提供接口Mat 数据结构
**应用领域:**
图像处理. 人脸识别.手势识别.人机交互动作识别.运动跟踪.物体识别 图像分割
**Tess-two:**
OCR的全称是Optical Character Recognition是一个对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。
tess-two是TesseraToolsForAndroid的一个git分支
**使用特征:**
> 1:简单易用
> 2:开源且支持离线使用
> 3:为 Android平台定制的java api
**NDK开发::**
![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210706/1625568837117049.jpg)
### 三.详细架构
![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210706/1625568837284469.jpg)
**问题:**
>1: 什么是灰度图
>2: 什么是二值化为什么?
>3: 轮廓检测是什么
>4: 图像膨胀是什么
>5: 图片分割会导致OOM吗?
>6: OCR文本训练如何进行
>7: 图文识别的API是怎样的?
![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210706/1625568837424351.jpg)
##### 3.1图像识别核心步骤-灰度化
![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210706/1625568837412775.jpg)
##### 3.2图像识别核心步骤-二值化
![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210706/1625568838591462.jpg)
##### 3.3图像识别核心步骤-轮廓检测
所有连续的闭包用矩形框起来
![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210706/1625568838731565.jpg)
##### 3.4图像识别核心步骤-膨胀
![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210706/1625568838576116.jpg)
##### 3.5图像识别核心步骤-轮廓筛选
![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210706/1625568838944194.jpg)
##### 3.6文字识别
OCR文字样本→记忆文本→直文字识别
### 总结
##### 图片上传怎么做?
不能说,接口怎么实现,我就怎么调用,虽然我也是这么做的
**要明白:**
>1:明白什么是Http,从而知道http如何上传图片
>2:使用okhttp,retrofit怎么是实现这个过程
![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210706/1625568838428406.jpg)
### 最后
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。
![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210706/1625568838317010.jpg)
> 最后针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!
##### 需要资料的朋友可以[点击我的腾讯文档免费领取](https://docs.qq.com/doc/DSkNLaERkbnFoS0ZF)
这篇关于2021一位Android中级程序员的跳槽面经,感悟分享的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!