基于Ubuntu環境使用docker搭建對于中文識別的chineseocr_lite項目

光學字符識別(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 

?

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/447243.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447243.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447243.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ubuntu環境使用conda安裝輕量級中文ocr開源項目chineseocr_lite,最簡單的方式

問題 接使用docker的方式來創建項目所報的錯誤選中文件之后,界面不停的繞圈,顯示不了對于圖片的識別結果,并且監控界面上出現錯誤提示如下ImportError: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory&a…

基于Ubuntu使用docker的方式來搭建基于Yolo3+crnn的Chineseocr識別

Docker Docker簡單易用,具體的安裝和配置可以看我的或者其他人的博客 安裝完之后,輸入以下命令安裝chineseocr并且開啟服務 docker pull zergmk2/chineseocr docker run -d -p 8080:8080 zergmk2/chineseocr 在瀏覽器輸入http://127.0.0.1:8080/ocr網…

c/c++ 內存使用指南 和實踐指導

如果你完全理解如下內容, 請聯系我:szu030606163.com, 討論更深層次合作 。 1. 大內高手—內存模型 單線程模型 多線程模型 2. 大內高手—棧/堆 backtrace的實現 alloca的實現 可變參數的實現。 malloc/free系列函數簡介 new…

mininet 應用實踐

教學目的與學時建議 能夠運用 mininet 可視化工具創建計算機網絡拓撲結構能夠運用 mininet 交互界面創建拓撲結構能夠運用 python 腳本構建計算機網絡拓撲結構建議:2 學時 實驗環境 下載并安裝虛擬機 VMware workstation;下載虛擬機鏡像( S…

使用百度大腦,導入aip以及相應的庫文件報錯問題

參考文章 github鏈接地址 具體操作 pip install githttps://github.com/Baidu-AIP/python-sdk.gitmasterfrom aip import 對應服務即可

一個通用的makefile寫法,自動推導文件的依賴關系

溫習之用。 假設有兩個頭文件目錄 header1,header2;兩個cpp文件目錄,src1,src2,一個lib目錄 寫一個完整的makefile步驟如下: 1 定義可執行文件的名稱 TARGET MyPro 2 指定此編譯工程所要使用的頭文件所在的目錄 INC -I. -Iheader1 -Iheader2 3 指…

實現基于darknet框架實現CTPN版本自然場景文字檢測 與CNN+CTCOCR文字識別的ChineseOCR搭建

Github地址 Github源碼地址 支持系統:mac/ubuntu python3.6 實現功能 文字檢測; 文字識別; 支持GPU/CPU,CPU優化(opencv dnn) docker鏡像服務(CPU優化版本) 下載鏡像 鏈接:https://pan.baidu…

50個c/c++源代碼網站

C/C是最主要的編程語言。這里列出了50名優秀網站和網頁清單,這些網站提供c/c源代碼。這份清單提供了源代碼的鏈接以及它們的小說明。我已盡力包括最佳的C/C源代碼的網站。這不是一個完整的清單,您有建議可以聯系我,我將歡迎您的建議&#xff…

在服務器上搭建基于yolo3 與crnn 實現中文自然場景文字檢測及識別,GPU版本

Github地址 參考地址作者大人,十分熱心,對于我的問題,提供了大量的幫助,使我少走了很多的彎路,在此表示由衷的感謝 注意事項 使用nvidia-smi命令查看cuda的版本,必須是10.1或者10.0,10.2是萬萬…

python TypeError can only concatenate tuple not str to tuple

原因分析 這個錯誤出現是因為執行元組之間的合并例子 tuple1 ("str",1,["a","b","c"],4) tuple2 ("hello",) print(tuple1[0]) print (tuple1[1:3]) print (tuple1[1:]) print (tuple2 * 2) print (tuple1tuple2) 注意事…

23種設計模式 -比喻

1、FACTORY—追MM少不了請吃飯了,麥當勞的雞翅和肯德基的雞翅都是MM愛吃的東西,雖然口味有所不同,但不管你帶MM去麥當勞或肯德基,只管向服務員說“來四個雞翅”就行了。麥當勞和肯德基就是生產雞翅的Factory (下載源碼就到源碼網:…

python 版本2和3 在/取模方面的的差異

注意事項 python2 使用 /python3 使用 // 例子 二分法取數值 def binary_search(search_list,target):left 0right len(search_list) - 1while left < right:mid (left right) // 2if search_list[mid] < target:left mid 1continueif search_list[mid] target:r…

vc中調用其他應用程序的方法(函數) winexec,shellexecute ,createprocess

三個SDK函數: WinExec&#xff0c;ShellExecute &#xff0c;CreateProcess可以實現調用其他程序的要求&#xff0c;其中以WinExec最為簡單&#xff0c;ShellExecute比WinExec靈活一些&#xff0c;CreateProcess最為復雜。WinExec 兩個參數&#xff0c;前一個指定路徑&#xf…

算法入門篇 一 時間復雜度

時間復雜度 要求&#xff1a;只要高階項&#xff0c;不要低階項常數操作&#xff1a;操作花費的時間和數據量無關&#xff0c;比如數組尋址&#xff0c;直接利用偏移量找到對應元素的位置&#xff1b;非常數操作&#xff1a;比如list(鏈表)&#xff1b;查找元素需要遍歷鏈表&a…

遍歷文件夾下所有文件和文件夾

1 void find(char * lpPath){char szFind[MAX_PATH];WIN32_FIND_DATA FindFileData;strcpy(szFind,lpPath);strcat(szFind,"*.*");HANDLEhFind::FindFirstFile(szFind,&FindFileData);if(INVALID_HANDLE_VALUE hFind)  return;while(TRUE){if(FindFileData.dw…

算法入門篇二 認識O(NlogN)的排序

遞歸 例子引出 使用遞歸的方法求出數組中的最大值&#xff08;利用的是棧&#xff09;求中點的方法改進 mid (left right) / 2 //但是如果left和right的數很大&#xff0c;相加會造成內容溢出 改進為 mid left (right - left) / 2 //(right - left)得到整個的長度&…

算法入門篇三 詳解桶排序和整理排序知識 堆的相關操作 補充 不完整

歸并排序不使用遞歸 使用一個變量&#xff0c;使其按照1、2、4、8遞增&#xff0c;控制左右兩邊1個元素、2個元素、4個元素等元素的合并 完全二叉樹 完全二叉樹 要不全是滿的&#xff0c;要不葉子節點出現在最后一層&#xff0c;只要出現了葉子節點&#xff0c;后面的都是葉子…

C++著名程序庫

1、C各大有名庫的介紹——C標準庫標準庫中提供了C程序的基本設施。雖然C標準庫隨著C標準折騰了許多年&#xff0c;直到標準的出臺才正式定型&#xff0c;但是在標準庫的實現上卻很令人欣慰得看到多種實現&#xff0c;并且已被實踐證明為有工業級別強度的佳作。 1.1、Dinkumware…

2023年12月24日學習總結

今日to do list&#xff1a; 做kaggle上面的流量預測項目?? 學習時不刷手機&#x1f921; okkkkkkkkkkkkkk 開始&#x1f44d;&#x1f34e; 0、我在干什么&#xff1f; 我在預測一個名字叫做elborn基站的下行鏈路流量&#xff0c;用過去29天的數據預測未來10天的數據 1、…

Mac/Linux系統連接遠端服務器以及相同IP地址的服務器賬號密碼重置,ssh失敗問題

連接遠端服務器 ssh 賬號IP地址 輸入完成之后會提示輸入密碼&#xff0c;密碼輸入正確后&#xff0c;就可以連接成功了 重置ssh密鑰 如果連接的服務器除了IP地址沒有改變&#xff0c;其余的賬號、密碼、系統等都變了的話&#xff0c;因為曾經連接過的歷史數據會保存到本地&a…