光學字符識別(OCR)
- 光學字符識別(OCR)目前已經有了很廣泛的應用,很多開源項目都會嵌入OCR 來擴展原有的能力,例如身份證識別、出入停車場的車牌識別、拍照翻譯等等
- 本文介紹的開源的中文 OCR 項目,是基于 chineseocr 做出改進,是一個超輕量級的中文字符識別項目(其實一點也不輕量)
- 官方地址
簡介
- chineseocr_lite 項目表示,相比 chineseocr,它采用了輕量級的主干網絡 PSENet,輕量級的 CRNN 模型和行文本方向分類網絡 AngleNet
- chineseocr_lite 在橫排文字和豎排文字的識別上都有不錯的效果,而且它提供的交互式網頁端能直接在頁面插入圖像與調用識別模型
項目實測
- 由于Docker能夠提供一個不依賴主機操作系統的隔離空間,并且兼具良好的安全性與可移植性,本項目將在Docker環境下對該輕量級模型進行測試
- 先看看使用作者項目里自帶圖片的測試效果。識別結果與項目里提供的類似,這里耗時較長主要是由于我們測試時沒有使用 GPU 的緣故
Docker環境搭建
運行環境
-
Ubuntu 18.04
-
Python 3.6.9
-
Pytorch 1.5.0.dev20200227+cpu(作者推薦 1.2.0)
命令操作
- 使用命令查看當前的python的版本,python -V;如果不是3.6版本需要將3.6版本設置為默認版本。參考鏈接
- 首先下載 Docker 鏡像。這里推薦使用咱們中國人自己做的鏡像 deepo,一行代碼傻瓜式安裝 tensorflow、pytorch、darknet 等目前最新的深度學習框架
- deepo的官方地址
- 命令安裝deepo,我已經配置了docker的國內源鏡像,參考我的其他文章。如果不配置,速度很慢,甚至下載不成功。這一步很費時間,相關下載的內容達到6G左右,下載完成之后自動解壓安裝,最后達到13G😭😭
docker pull ufoym/deepo
- 使用命令查看下載的ufoym/deepo的鏡像ID,需要拷貝一下,稍后會用到
docker images
- 拉取完鏡像后我們新建一個容器開始配置環境,使用如下命令新建容器并進入交互模式,我這里是將容器的data文件夾映射到Ubuntu系統的home/chy/Desktop/data文件,這個data不需要提前創建
docker?run?-it?-p?6666:8080?-v?home/chy/Desktop/data/:/data?--name?ocr?18824ddf5d2d
- 這里 docker run 表示創建容器,-it 表示創建容器后立刻進入交互模式,-p 表示進行端口映射,這里將主機 6666 的端口映射到容器的 8080 端口。
- -v 表示共享數據,我們將主機桌面上名為 data 的文件夾與容器共享,并將其在容器上掛載為/data,--name 表示將新建的容器命名為 ocr,18824ddf5d2d 為剛才下載的uform/deepo鏡像的 ID
- 命令執行完畢,就進入到容器里了,可以看到提示輸入變成以用戶名和容器拼接的字符串
- 輸入 ls 就可看到我們與容器共享的文件夾/data 了
- cd 到/data 文件夾下拉取 chineseocr_lite 項目,前提需要git
git clone https://github.com/ouyanghuiyu/chineseocr_lite
- 作者將項目所需要的運行程序的依賴環境寫入到了requirements.txt文檔中,我們需要cd 到 chineseocr_lite 下進行安裝
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
- 這里使用清華的源進行加速。依賴環境裝好了,使用python3 app.py 8080 命令啟動服務
- 出現以下輸出表示網頁服務已成功啟動
- 需要注意的是,我們在創建容器時將主機的 6666 端口映射到了容器的 8080 端口,所以在Ubuntu系統的默認火狐瀏覽器里應該輸入 http://127.0.0.1:6666/ocr 出現如下界面
踩坑指南
1,火狐瀏覽器報This address is restricted
- 在地址欄里面輸入: about:config 然后回車
- 出現配置頁面,在搜索框中輸入network.security.ports.banned.override
- 點擊新建,選擇string,輸入1-65535即可
2,缺少共享文件庫,會報以下錯誤
apt-get update
apt-get install apt-file
apt-file update
apt-file search libSM.so.6
apt-get install libsm6
apt-get install libxrender1
apt install python-qt4
?
?
?
?