『壹』 OCR文字識別軟體哪個易用可網上下載
OCR文字識別軟體 Mini Ocr
xdowns.com/view_soft/3/7/OCRwenzishibieruanjian Mini Ocr.html
件
本軟體是飛濤軟體工作室開發的一款免費Ocr軟體,主要用於識別圖像文件之中,出現
的漢字顯示字體。Ocr的中文含意是光學字元識別。
為什麼叫Mini呢?因為現有的識別漢字的商業Ocr軟體,動輒二三十兆,而本軟體解
壓後,也不過三兆多,身材比較纖小,再加上本軟體主要用於識別字體比較小的漢字,所
以叫Mini,中文的發音是「迷你」,中文含義是超小型。
既然有了商業Ocr軟體,為什麼還要開發這個軟體?
不同於商業Ocr軟體,本軟體是免費的,可以自由使用。第二個不同之處,本軟體的
識別對象是屏幕出現的「顯示漢字」,而不是針對掃描儀掃出來的「列印漢字」。二者有什
么不同呢?最重要的一點: 掃描出來的列印漢字的高度和寬度一般都在30多個像素點之
上,這是我用畫圖軟體,打開某個商業Ocr的samples\sample1.tif,然後一點一點數出
來的。從文件名和目錄名的中文含意可以看出,這個點數應該是一個典型值。那麼,如果
用商業Ocr識別屏幕上出現的小五號字,漢字的高度是12個像素點,會出現什麼情況呢?
測試方法:用記事本隨便寫幾行漢字,設置字體為小五號字。這大概是看著還算舒服
的最小號的漢字字體了(高度是12個像素點),如果再小,字體就很難看了。然後,按拷
屏鍵PrtSc,把屏幕的圖像拷貝、粘貼到畫圖軟體中,修剪尺寸後,保存為bmp的格式。
然後,我找了兩個國內最著名的Ocr軟體進行測試,結果讓人大吃一驚,識別率幾乎為零。
把圖像放大兩倍,再測試,結果仍然很不理想,大概也只有百分之二三十的樣子。
開發Mini Ocr軟體的由來
我在開發護花使者反黃圖像識別軟體的時候,遇到有些圖像里,嵌有某些文字,如果能
把文字識別出來,圖像的含義就很容易讓計算機理解了。預算有限,我連掃描儀都捨不得
買,就更別想買商業Ocr的開發包了,大概幾十萬,或者更多,或者別人壓根就不賣。況且
它們的識別率對小字體幾乎為零,不符合我的要求。看來,只好自力更生,重新寫一個了。
開發Mini Ocr的歷程
經過三個多月的努力,終於誕生了這款Mini Ocr 軟體。第1個月做出了漢字識別的
核心模塊,第2個月做出了文章段落切分的演算法,並加入了對英文,數字,標點的支持,
第三個月繼續調整英漢混排和漢字切分的演算法,並用MFC 做了一個界面。
Mini Ocr的軟體架構
為了讓更多的人能使用到這個軟體,我在windows系統下,採用VC進行編程,界面當
然只好用MFC寫了。軟體架構是一個SDI框架下的多窗口切分界面,左上角的窗口是一個
CFormView,用來顯示常用的按鈕;左下角是一個CEditView,用來顯示幫助信息;右上角
是一個CView,用來顯示要識別的圖像;右下角是一個CEditView,用來存放識別出來的文
字。識別部分採用了工作者線程,以避免顯示界面的主線程僵掉。識別部分是整個軟體的
核心,與操作系統無關,可以單獨摘出來放在dos窗口裡跑,也可以移植到Linux系統中跑。
漢字識別軟體的難點所在:
英文識別有一些開放源碼的軟體,我看過的軟體,主要採取兩種識別方法:基於規則
的方法,和採用神經網路方法。而這兩種方法,在識別漢字時,都不宜採用。因為漢字數
目眾多,最常用的國標2312的一級漢字就有3755個。如果借用基於規則的方法,需要對
三千多個漢字,逐一人工寫出分類規則,工作量太大,我一個人無法完成;如果採用神經
網路的方法,這么多漢字,我不敢想像,需要多少層網路和神經節點呀!如果採用網格法,
抗位移的效果太差;而採用不變矩法,識別人和入,土和士,相似度又難於控制。除此之
外,漢字切分也是一大難題。英文寬度大概只有漢字一半,標點符號大概只有漢字三分之
一寬,數字大概只有四分之一的寬度。而漢字本身又有二分字,和三分字。某些字,如「啊」,
字體小時可能是獨體字,字體大些,變為二分字,字體再大,又變為三分字。加上漢字與
漢字之間的粘連、漢字與英文的混排,英文與英文的粘連,造成漢字切分模塊的演算法,甚
至比漢字識別模塊的演算法還要復雜得多。為了克服這些難點,並加快識別速度,我在演算法
設計時,採用了一些優化和簡化的策略。經過實踐檢驗,證明行之有效。
Mini Ocr進行漢字識別的策略:
1) 採用復合特徵的分類方法。
2) 字元集選擇3755個一級漢字。
3) 字體選擇最常用的宋體。
4) 字型大小選擇從小五號到一號漢字,主要針對20個點之內的小字體。
5) 英漢混排時,漢語優先。
6) 漢字粘連時,進行動態優化切分。
展望與下一步的開發計劃:
1) 重新優化英文識別的演算法;
2) 對英文粘連的切分演算法進行調整;
3) 移植進入Linux;
選擇Ocr軟體的建議:
如果您選擇Ocr軟體,目的是用來識別掃描儀出來列印字體,推薦還是選用知名的商業Ocr。
如果您要識別屏幕上顯示的漢字,Mini Ocr是一個比較不錯的選擇。真誠地希望您在使用
中,能喜歡上它
『貳』 有沒有微信小程序調用百度ai車輛識別介面的程序源碼,很簡單的就可以
class BaiDuAiBaseController extends BaseController
{
private $appid;
private $appKey;
private $secretKey;
public function __construct(){
$this->appid= config('api..appid');
$this->appKey = config('api..apikey');
$this->secretKey = config('api..secretkey');
}
//網路ai介面--文字識別--車牌號識別
public function getCarNumber($_imgurl,$_img=''){
$_token = $this->getToken();
$_url = 'https://aip.bce.com/rest/2.0/ocr/v1/license_plate?access_token='.$_token;
if($_img){
$_data = [
'image'=>$_img//圖像數據,base64編碼後進行urlencode,要求base64編碼和urlencode後大小不超過4M,最短邊至少15px,最長邊最大4096px,支持jpg/jpeg/png/bmp格式
];
}else{
$_data = [
'url'=>request()->domain().'/'.$_imgurl
];
}
$_res = json_decode(httpGet($_url,$_data),true);
//TODO 此處只返回false沒有終止,是因為程序執行流程需要,後期可能要改
if(isset($_res['error_msg'])) return false;
return $_res['words_result']['number'];
}
//獲取token
private function getToken(){
if(cache('_token')){
$_access_token = cache('_token');
}else{
$_url = 'https://aip.bce.com/oauth/2.0/token?grant_type=client_credentials&client_id='.$this->appKey.'&client_secret='.$this->secretKey;
$res = json_decode(httpGet($_url),true);
if(isset($res['error']))TApiException($res['error_description']);//終止程序並拋出異常
$_access_token = $res['access_token'];
$_expires_in = $res['expires_in'];
cache('_token',$_access_token,($_expires_in-1000));//我喜歡少存1000秒,沒有為什麼,問就是癖好
}
return $_access_token;
}
}
這是ThinkPhp5.1後端封裝的網路AI介面類,getToken()獲取憑證,getCarNumber()請求$_url 返回識別結果,這個是車牌號碼識別,車型識別等其他介面大部分都一樣,就換個請求地址$_url就行
//介面:
public function getImgCarNum(){
$_number = (new BaiDuAiBaseController())->getCarNumber(false,request()->param('img'));
return self::myShow('申請成功',['carNum'=>$_number]);
}
小程序端正常request請求上面的介面就行,下面是微信小程序拍照識別功能
//拍照
goImgSearch(){
uni.chooseImage({
count:1,
sizeType: ['compressed'],//original 原圖,compressed 壓縮圖
sourceType: ['album','camera'],//camera 相機 album相冊
success:(r)=>{
console.log(r)
//執行識別車牌號碼
this.img = r.tempFilePaths[0]
this.urlTobase64(r.tempFilePaths[0])
}
})
},
//識別車牌號碼
urlTobase64(url){
uni.showLoading({
title:'拚命識別車牌中..'
})
//#ifdef MP-WEIXIN
uni.getFileSystemManager().readFile({
filePath: url, //選擇圖片時返回的路徑
encoding: "base64",//這個是很重要的
success: res => { //成功的回調
//返回base64格式
let base64= 'data:image/jpeg;base64,' + res.data
//發送請求,識別車牌號碼
this.$H.post('/getImgCarNum',{
img:base64 //圖片數據
},{
token:true //必須登錄
}).then((res)=>{
console.log(res.carNum)
if(!res.carNum){
uni.hideLoading()
return uni.showModal({
title:'識別失敗',
content:'沒能識別到車牌號碼,請拍張清晰的圖片再試哦,謝謝',
showCancel:false
})
}
uni.showToast({
title:'識別車牌成功',
icon:'none'
})
this.searchUser = res.carNum
this.userCarNum = res.carNum
uni.hideLoading()
}).catch((e)=>{
uni.hideLoading()
return uni.showModal({
title:'識別失敗',
content:'沒能識別到車牌號碼,請拍張清晰的圖片再試哦,謝謝',
showCancel:false
})
})
},
fail:(e)=>{
console.log(e)
}
})
//#endif
},
『叄』 uniapp實現掃碼OCR兩功能的小程序開發到上線
1.HBuilderX 新建項目 因為做的功能簡單 選了個純潔的模板
2.新建路由先整個頁面出來 代碼如下 看不懂的去uniapp官網瞅瞅
https://uniapp.dcloud.io/api/README
3.上面掃碼的功能完成了 就這么簡單 下面是OCR 圖片文字識別 用到網路的開發api 你需要注冊個網路雲賬號 領取免費資源 新建任務 獲取秘鑰 才能使用 文字識別我用的是 vin識別能正常調用 其他好幾個好像是並發限制 用不了
https://console.bce..com/ai/?_=1628820741533#/ai/ocr/app/create
4.HBuildX運行發布 新建小程序 微信開發者平台注冊 獲取appid
導入項目目錄下的 unpackagedistdev到微信開發者工具打開
如果沒有出現上傳按鈕 多半是appid和你微信開發者平台的不一樣 以平台為准
5.點擊上傳 期間可以能會有各種各樣的問題 網路都能找到 懶得寫了
6.上傳完事 去平台看看效果
7.這個修改的路徑 就是小程序默認打開的頁面
8.我是整的體驗版 不用等審核就可以用手機打開訪問了 當然了 這個時候你的小程序請求是發不出去的 要配置域名 如下改改就成
需要正式發布的 發布前導入build包 上傳並提交審核就成了
開發中還有很多小問題 沒列出來 有興趣的私聊交流
需要源碼。。。。
『肆』 4款各有特色的 文字識別 OCR App,助你辦公一臂之力!
特點:支持批量掃描,多平台手機App
平台:
「白描」這款 App,我們以前有介紹過,我們還采訪過它的開發者。
作為一款 iOS/安卓 上通吃的 App。「白描」是一款綜合實力強勁的應用
和一些更輕量級的App相比,例如:「小嘿掃描」
「白描」則提供了「多語言翻譯」以及「批量識別」之類額外的實用功能。
不過純輕度使用或備用的話,「小嘿掃描」也是不錯的選擇。
「白描」的識別率和專業的文字識別「TextGrabber」之類相比不相上下。個人感覺,「白描」在中文識別率上更勝一籌。
例如:我掃描上面這本中文書籍某頁時,「白描」可以正確顯示出中文的段落標題,「TextGrabber」偶爾會走偏。
有些專業文字識別App需要昂貴的按月訂閱,相較而言,「白描」基礎版+高級版的收費方式,對於非重度用戶而言,性價比就體現出來了。
其實,各款 OCR App 都各有千秋,完全可以按照各自偏好各取所需。「白描」恰好比較對我們胃口。
特點:網頁應用,桌面辦公理想選擇
平台:
網址: http://app.xunjiepdf.com/ocrpart
這是一個網頁應用,屬於「迅捷 PDF 轉換器」的一部分。
顧名思義,這個網頁應用 除了圖片轉文字,還有不少 PDF 相關的處理。
「網頁應用」的好處是在桌面級辦公時非常方便,如果你在PC 或 Mac上已經有一堆掃描下來的圖片文件,打開網頁就能直接拖上去轉換為文字,非常方便!
不過這種做法,缺點也很明顯,上傳到網站,可能會有一些「隱私顧慮」。
「迅捷」還提供了在線文檔分享功能,如果是你的敏感文字內容,並不推薦上傳分享。
特點:無需網路也可識別,私密性更強
平台:
既然說到「隱私顧慮」,那麼這款 App主打的就是「私密性」。
「小度識字」無需網路也可識別你的圖片文字,不用每次上傳到雲端,私密性更強,更適合在以下場景使用:
掃描有所顧慮的文字內容
手機信號不好甚至斷網的情況下
作為代價,「小度識字」的功能性不如「白描」,例如:目前不能批量掃描。
特點:微信小程序, 方便順手,功能強大
平台:
火箭君之前對「小程序」有一定誤會,認為只不過是「網頁」套一個殼子,功能性肯定會有折扣。
「拍圖識字」這款「小程序」,讓我有了新的認識。
考慮到越來越多的工作/生活場景,已經遷移到「微信」中,「小程序」則無需安裝,微信內置,有種天然的「打開便利性」。
例如:
如果,我收到老闆微信上發給我幾張 收據/發票,要求登記一下。
當然,這時看著微信聊天的圖片,用手打字登記也不是不可以。
但,這時直接在微信里打開一個「拍圖識字」小程序,批量掃圖,選中識別出的公司抬頭,金額,用途,直接復制粘貼到文件里豈不是更好!
另外「拍圖識字」還提供了一些「職場常用」的實用功能。
例如下面這些: