版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
人工智能之身份證識(shí)別技術(shù)在Android客戶端軟件中的實(shí)踐與應(yīng)用摘要:本人從事的Android開(kāi)發(fā)角度來(lái)講,本文會(huì)著重研究人工智能特定領(lǐng)域-文字識(shí)別的-身份證識(shí)別。從理論知識(shí)、實(shí)際應(yīng)用到未來(lái)應(yīng)用場(chǎng)景進(jìn)行開(kāi)發(fā)。本文利用了Android開(kāi)發(fā)及C++技術(shù)解決實(shí)現(xiàn)了身份證識(shí)別技術(shù)(從身份證圖像中準(zhǔn)確獲得身份證號(hào)碼或者其他文字信息等等),意義是擴(kuò)展此技術(shù)至其他實(shí)際場(chǎng)景,發(fā)揚(yáng)偉大的開(kāi)源精神,打破技術(shù)壟斷、技術(shù)高收費(fèi),開(kāi)源技術(shù)為中國(guó)計(jì)算機(jī)領(lǐng)域發(fā)展增添一小部分貢獻(xiàn)。關(guān)鍵字:Android身份證識(shí)別目錄1前言 31.1論文研究背景 31.2論文的理論依據(jù) 41.3研究的目的和意義 42OCR技術(shù)的歷史 42.1OCR技術(shù)國(guó)內(nèi)外的發(fā)展歷史 42.2淺談人工只能技術(shù)在安卓軟件中的歷史 53身份證識(shí)別技術(shù)的理論知識(shí) 53.1NDK開(kāi)發(fā)3.2什么是JNI3.3OpenCV架構(gòu)體系3.4OCR技術(shù)架構(gòu)4身份證識(shí)別技術(shù)的開(kāi)發(fā) 64.1整體的開(kāi)發(fā)流程4.2身份證圖片核心區(qū)的讀取4.3圖文識(shí)別5身份證識(shí)別技術(shù)的應(yīng)用延伸6探究更廣義的人工智能技術(shù)在Android軟件開(kāi)發(fā)中的未來(lái)趨勢(shì)及預(yù)測(cè)場(chǎng)景 86.1幫助研發(fā)人員 86.2更加強(qiáng)健的運(yùn)用程序 86.3人工智能可以自創(chuàng)軟件 96.4未來(lái)的發(fā)展 96結(jié)論和建議 9參考文獻(xiàn): 91前言1.1論文研究背景在客戶端軟件開(kāi)發(fā)方面,尤其是移動(dòng)端軟件開(kāi)發(fā)方面,人工智能智能技術(shù)得到了越來(lái)越多的普及,比如最近流行的小視頻APP、拍照美顏相機(jī)等,或多或少的嵌入了人臉檢測(cè)、人體骨骼檢測(cè)等功能,還有些綁定人們身份證信息的應(yīng)用(比如支付寶、iOS系統(tǒng)級(jí)的軟件)嵌入了人臉解鎖的功能,還有一些錄入用戶信息的模塊增加了身份證、護(hù)照、駕駛證的文本識(shí)別功能。1.2論文的理論依據(jù)根據(jù)當(dāng)前計(jì)算機(jī)及其網(wǎng)絡(luò)發(fā)展現(xiàn)狀,如物聯(lián)網(wǎng)、人工智能在日常中越來(lái)越普及,會(huì)著手對(duì)人工智能AI方面(身份證識(shí)別)的深入研究,預(yù)估身份證識(shí)別技術(shù)此應(yīng)用技術(shù)帶來(lái)哪些推動(dòng)作用,本人從所從事的Android客戶端軟件開(kāi)發(fā)角度,結(jié)合題目《人工智能技術(shù)在Android軟件中的實(shí)踐與應(yīng)用》,深入研究人工智能技術(shù)在Android客戶端軟件中身份證識(shí)別的實(shí)際應(yīng)用及其推動(dòng)作用。1.3研究的目的和意義如百度、騰訊這些中國(guó)計(jì)算機(jī)公司只為金錢利益而閉門造車,實(shí)行技術(shù)壟斷,向廣大的開(kāi)發(fā)者收取高額的使用費(fèi)用,拿著國(guó)外開(kāi)源的框架(如Google公司)和相關(guān)技術(shù)二次開(kāi)發(fā)出其他盈利產(chǎn)品。而我本文研究的身份證識(shí)別技術(shù)在百度等公司并沒(méi)有開(kāi)源,而是每天按照請(qǐng)求次數(shù)進(jìn)行高額收費(fèi)。我會(huì)公布我研究的結(jié)果,他人也可以在我的研究基礎(chǔ)之上進(jìn)行進(jìn)一步加工改造,開(kāi)源代碼方便他人。另外一方面,是為了提升個(gè)人技術(shù)水平,解決身份證識(shí)別技術(shù)的難題,開(kāi)源自己的解決成果發(fā)表到博客、GitHub上,使此解決方案能夠成功提高移動(dòng)應(yīng)用的趣味性、可推廣性,減少企業(yè)項(xiàng)目的開(kāi)發(fā)成本,降低工時(shí),提高應(yīng)用的使用價(jià)值。2OCR技術(shù)的歷史2.1OCR技術(shù)在國(guó)內(nèi)外發(fā)展的歷史計(jì)算機(jī)視覺(jué)研究的其中最重要的領(lǐng)域就包括文字識(shí)別技術(shù)。早在20世紀(jì)二十年代末,歐洲科學(xué)家Tausheck第一次發(fā)表了OCR的理念,并向政府申請(qǐng)了特殊專利。時(shí)隔不久,遠(yuǎn)在大洋對(duì)岸的美國(guó)科學(xué)家漢德也提出了機(jī)器或者其他技術(shù)對(duì)文字進(jìn)行識(shí)別的想法。計(jì)算機(jī)技術(shù)的創(chuàng)造研制而出才使得這個(gè)想法得以成真。這個(gè)想法慢慢就演變成利用物理光學(xué)技術(shù)對(duì)語(yǔ)言文字符號(hào)進(jìn)行輸入進(jìn)而轉(zhuǎn)變成計(jì)算機(jī)能夠存儲(chǔ)的內(nèi)碼。而在我們國(guó)內(nèi)這項(xiàng)技術(shù)就沒(méi)有實(shí)現(xiàn)那么快,在1965年左右才漸漸開(kāi)始對(duì)廣泛使用的阿拉伯?dāng)?shù)字和字母字符進(jìn)行識(shí)別技術(shù)的研究,不久之后又開(kāi)始了對(duì)我國(guó)廣泛使用的漢語(yǔ)識(shí)別技術(shù)進(jìn)行探究,直到八十年代末我國(guó)的漢字識(shí)別技術(shù)得到了實(shí)際的技術(shù)突破,碩果頗豐,許多科研單位陸續(xù)研制出漢字的OCR設(shè)備。在我們中國(guó)內(nèi)部OCR的技術(shù)都是從OMR技術(shù)慢慢發(fā)展而來(lái)。在中國(guó)在1983年左右就有很多科研機(jī)構(gòu)對(duì)OCR識(shí)別技術(shù)開(kāi)始深入研究。經(jīng)過(guò)二三十年的科研調(diào)查和科技開(kāi)發(fā)增加了這方面人才數(shù)量,而且此領(lǐng)域的專家級(jí)別的科研工作者就有一百多人。在北京的計(jì)算機(jī)大牛聚集地中關(guān)村地區(qū),國(guó)內(nèi)的專家就更多了,他們不懈努力和奮斗歷程感染著計(jì)算機(jī)信息領(lǐng)域的人們。我們所知的漢語(yǔ)OCR技術(shù)通過(guò)掃描儀器、攝像頭、高清數(shù)碼相機(jī)等計(jì)算機(jī)輸入設(shè)備,把漢字的圖像信息輸入進(jìn)計(jì)算機(jī)設(shè)備之中,從而實(shí)現(xiàn)漢字的采集。漢字的書(shū)本因書(shū)體文字容易得到識(shí)別,當(dāng)時(shí)的國(guó)內(nèi)文字識(shí)別技術(shù)主要還是集中用于幫助人們錄入文字和電子表格,把整章的A4紙張的文本錄入到計(jì)算機(jī)中后,通過(guò)程序運(yùn)行,程序在計(jì)算機(jī)內(nèi)部進(jìn)行邏輯處理并生成中文文件,幫助人們能夠快速錄入文字和電子表格。漢語(yǔ)的文字識(shí)別技術(shù)還可以分為普及版本、專業(yè)版。現(xiàn)在國(guó)內(nèi)市場(chǎng)里面的掃描設(shè)備大多數(shù)綁定的都是文字識(shí)別的普及版軟件?,F(xiàn)在書(shū)本印刷體的文字識(shí)別技術(shù)識(shí)別率相當(dāng)高了,再不清晰的漢字書(shū)本文稿最糟糕的的時(shí)候也在百分之九十五以上。2.2淺談人工智能技術(shù)在安卓軟件中的歷史人工智能相關(guān)技術(shù)的快速發(fā)展,使之應(yīng)用到很多計(jì)算機(jī)領(lǐng)域。比如近幾年流行的無(wú)人駕駛領(lǐng)域,無(wú)人汽車上裝載比較多的距離傳感器紅外傳感器等等用于收集汽車周圍環(huán)境數(shù)據(jù),把此些外部數(shù)據(jù)、之前已經(jīng)訓(xùn)練成千上萬(wàn)次的模型一起導(dǎo)入大型的程序中,經(jīng)過(guò)復(fù)雜運(yùn)算,得出計(jì)算出的結(jié)果,把這些輸出數(shù)據(jù)再傳遞給汽車的變向、加速發(fā)動(dòng)機(jī)等,使汽車能夠在復(fù)雜路段確保自身、周圍人身安全的情況下正常行駛。有效地替代了人類駕駛,為防止人類長(zhǎng)時(shí)間駕駛而導(dǎo)致的疲勞駕駛起到了積極的作用,解放了人類的雙手雙腳。goolgle等國(guó)際大公司投資大量人力物力用于研究人工智能技術(shù),并取得了顯著的成果,比如TensoFlow框架,而其衍生出來(lái)的各語(yǔ)言版本都已經(jīng)運(yùn)行在大多數(shù)機(jī)器上,如TensoFlow.js運(yùn)行在JS項(xiàng)目中,可以使此應(yīng)用產(chǎn)生骨骼節(jié)點(diǎn)識(shí)別。TensoFlow.java運(yùn)行在安裝有JVM的機(jī)器上,實(shí)現(xiàn)模擬人類機(jī)器學(xué)習(xí)運(yùn)算的能力,而此框架也開(kāi)發(fā)除了用于Android端的版本。再比如近些時(shí)間2018年谷歌I/O大會(huì),新研發(fā)出來(lái)的新一代Android系統(tǒng)“AndroidP”也已經(jīng)面向世界進(jìn)行了開(kāi)源。Android9.0系統(tǒng)的出現(xiàn)已經(jīng)是Android系統(tǒng)自2008年以來(lái)開(kāi)發(fā)的第十個(gè)年,Android9.0即P這次最大的更新就是加入了我們最近最火的人工智能技術(shù)。這一次谷歌大會(huì)發(fā)布會(huì)方表示此版本的Android系統(tǒng)的電池管理方面引進(jìn)了人工智能技術(shù),。新一代的AndroidP加入了“自適應(yīng)電池管理”功能,此功能程序能夠智能監(jiān)控用戶的手機(jī)使用狀況及耗電情況,為達(dá)到省電目的、節(jié)約電池?fù)p耗程序會(huì)自動(dòng)關(guān)閉后臺(tái)無(wú)用的應(yīng)用,并根據(jù)用戶操作每個(gè)app時(shí)間長(zhǎng)短適應(yīng)地調(diào)整屏幕亮度。根據(jù)官方詳細(xì)闡述,這項(xiàng)功能可以使Android手機(jī)的處理器的負(fù)擔(dān)降低30%。去年蘋(píng)果公司推出了刷臉識(shí)別解鎖密碼的功能,使得打開(kāi)一些應(yīng)用、輸入支付密碼變得更加簡(jiǎn)單靈活。而后各大手機(jī)廠商、應(yīng)用開(kāi)發(fā)上也嘗試類似的行動(dòng)。支付寶中集成了大量的人工智能技術(shù)。芝麻信用掃描駕駛證識(shí)別駕駛證上的文字用于存儲(chǔ)到網(wǎng)絡(luò)數(shù)據(jù)庫(kù)中。掃描人臉眨眼、抬頭等動(dòng)作識(shí)別,使得用戶面部的3D描述更清楚,身份驗(yàn)證更加準(zhǔn)確。華為小米等手機(jī)廠商自帶的系統(tǒng)相機(jī)加入了面部識(shí)別,通過(guò)面部識(shí)別確定人臉在照片中的定位,從而可以進(jìn)一步過(guò)濾皮膚,美顏彩妝等等。3身份證識(shí)別技術(shù)的理論知識(shí)3.1NDK開(kāi)發(fā)概念:NDK即為(NativeDevelopmentKit),原生開(kāi)發(fā)工具包是一組可以讓您在Android應(yīng)用中利用C和c++代碼的工具,可用以從您自己的源代碼構(gòu)建,或者利用現(xiàn)有的預(yù)構(gòu)建庫(kù).Android在最早的時(shí)候開(kāi)發(fā)語(yǔ)言是Java(這兩年變成了Kotlin),我們大家都知道,Android系統(tǒng)其實(shí)還是運(yùn)行在JVM上的,而JVM是運(yùn)行在Linux中的,Linux系統(tǒng)核心庫(kù)很多都是C/C++編寫(xiě)的,比如FramWork層的Webkit代碼庫(kù)等。所以然后NDK的作用,就是Android官方為了提供一個(gè)在Java中調(diào)用C/C++代碼的橋梁來(lái)給開(kāi)發(fā)者。NDK開(kāi)發(fā)包本身就是一個(gè)交叉形式的工作鏈,包含了能在Android調(diào)用的一些.so庫(kù)文件,然后,NDK官方為了方便開(kāi)發(fā)者快速使用,提供了一些腳本,使得更容易的編譯C/C++代碼??傊?,在Android的SDK之外,有一個(gè)工具就是NDK,用于進(jìn)行C/C++的開(kāi)發(fā)。一般情況,是用NDK工具把C/C++編譯為.co文件,然后在Java中調(diào)用。我們上層通過(guò)JNI來(lái)調(diào)用NDK層的,使用這個(gè)工具可以很方便的編寫(xiě)和調(diào)試JNI的代碼。因?yàn)镃語(yǔ)言的不跨平臺(tái),在Mac系統(tǒng)的下使用NDK編譯在Linux下能執(zhí)行的函數(shù)庫(kù)——so文件。其本質(zhì)就是一堆C、C++的頭文件和實(shí)現(xiàn)文件打包成一個(gè)庫(kù)。3.2什么是JNI即為Javanativeinterface是Java與C/C++相互調(diào)用的一套接口橋梁。Java調(diào)用C/C++在Java的開(kāi)發(fā)包里面剛開(kāi)始就有的,并不是Android初始自創(chuàng)的,即JNI。JNI就是Java語(yǔ)言調(diào)用底層C++程序庫(kù)的規(guī)范。當(dāng)然,大多數(shù)情況下的Java程序語(yǔ)言使用的JNI標(biāo)準(zhǔn)大概和安卓不同,為了方便開(kāi)發(fā)者使用,安卓官方進(jìn)一步封裝了標(biāo)準(zhǔn),使得安卓的JNI規(guī)范更簡(jiǎn)單。JNI是Java調(diào)用Native語(yǔ)言的一種特性。通過(guò)JNI可以使得Java與C/C++機(jī)型交互。即可以在Java代碼中調(diào)用C/C++等語(yǔ)言的代碼或者在C/C++代碼中調(diào)用Java代碼。由于JNI是JVM規(guī)范的一部分,所以可以將我們寫(xiě)的JNI的程序在任何實(shí)現(xiàn)了JNI規(guī)范的JVM中運(yùn)行。同時(shí),這個(gè)特性使我們可以重復(fù)使用之前用C/C++寫(xiě)的工具類程序。JNI是一種在Java虛擬機(jī)機(jī)制下的執(zhí)行代碼的標(biāo)準(zhǔn)機(jī)制。我們寫(xiě)的邏輯程序?qū)?huì)被編寫(xiě)成匯編程序或者C/C++程序,之后并組合封裝為動(dòng)態(tài)庫(kù)。這也就允許了非靜態(tài)綁定用法。這個(gè)提供了一個(gè)在能夠運(yùn)行Java的虛擬機(jī)上調(diào)用C/C++的一種途徑。與其它微軟類似接口Microsoft本地原始接口等相比,JNI的最大競(jìng)爭(zhēng)優(yōu)勢(shì)是在于:它在剛開(kāi)始設(shè)計(jì)的時(shí)候就確定了二進(jìn)制的兼容性,JNI編寫(xiě)的安卓APP兼容性以及其再某些設(shè)備平臺(tái)上的Java虛擬機(jī)兼容性(當(dāng)我們談及JNI時(shí),這里并不特殊與Davik虛擬機(jī)進(jìn)行對(duì)比,JNI適用于所有Java虛擬機(jī))。這就是為什么C/C++編譯后的代碼無(wú)論在任何含有虛擬機(jī)的平臺(tái)上都能執(zhí)行的原因。不過(guò),一些更早時(shí)期的版本并不支持二進(jìn)制兼容。這里我們二進(jìn)制兼容性指的是一種程序兼容性類型,允許一個(gè)程序,在不改變其可執(zhí)行文件的條件下在不同的編譯環(huán)境中工作。3.3OpenCV架構(gòu)體系OpenCV全稱是opensourcecomputervisionlibrary是一個(gè)跨平臺(tái)的計(jì)算機(jī)視覺(jué)庫(kù)。它包括數(shù)百種計(jì)算機(jī)視覺(jué)算法。IBM1999年開(kāi)始研發(fā),用C++提供接口,MAT數(shù)據(jù)結(jié)構(gòu)。它的主要應(yīng)用領(lǐng)域:圖像處理、手勢(shì)識(shí)別、人臉識(shí)別、人機(jī)交互、運(yùn)動(dòng)跟蹤、動(dòng)作識(shí)別、圖像分割、物體識(shí)別、機(jī)器人。OpenCV具有模塊化結(jié)構(gòu),這就意味著開(kāi)發(fā)工具包里面含有多個(gè)靜態(tài)庫(kù)或者共享庫(kù)。下面列舉了可以使用的模塊:它的核心功能模塊,定義了一些基本的數(shù)據(jù)結(jié)構(gòu),其中包括密集的多維的Mat數(shù)組和被其他模塊使用的基本功能。GPU來(lái)自不同OpenCV模塊的GPU加速算法。影像處理模塊包括動(dòng)作判斷,背景弱化和目標(biāo)跟蹤算法。3D校準(zhǔn)模塊。是基于多視圖的一種幾何算法,立體和平面的攝像機(jī)校準(zhǔn),判斷對(duì)象姿勢(shì),立體匹配算法,和重建3D元素。平面特性。突出的特征判斷,特征描述、對(duì)特征描述的比較。視頻輸入輸出。視頻采集和視頻解碼器。在Android開(kāi)發(fā)領(lǐng)域OpenCV程序有兩種方式,第一種用java語(yǔ)言的形式調(diào)用OpenCV庫(kù),
第二種用C++形式的OpenCV庫(kù)。
這兩種庫(kù)都在OpenCV官方提供的SDK中。第一種形式,需要在開(kāi)發(fā)環(huán)境中導(dǎo)入OpenCV的jre包。還需要安裝AndroidOpenCVManager,
有的書(shū)上例子也是用這種方式寫(xiě)的。
AndroidOpenCVManager是用來(lái)管理OpenCV庫(kù)的,減少APP內(nèi)存占用,支持特定硬件優(yōu)化,定期更新庫(kù)等。3.4OCR技術(shù)架構(gòu)OCR的全稱是OpticalCharacterRecognition是一個(gè)對(duì)文本資料圖像文件進(jìn)行分析、識(shí)別處理、獲取文字及版面信息的過(guò)程。從大體上來(lái)說(shuō),文字識(shí)別技術(shù)基本會(huì)分為兩個(gè)大步驟:圖像處理、文字識(shí)別。文字識(shí)別是計(jì)算機(jī)視覺(jué)研究領(lǐng)域的重要分支之一,而且文字識(shí)別課題已經(jīng)是比較成熟了,并且在商業(yè)市場(chǎng)中已經(jīng)有很多實(shí)際項(xiàng)目了。比如百度OCR、漢王OCR、阿里OCR等,很多企業(yè)都有能力都是拿OCR技術(shù)開(kāi)始掙錢了。其實(shí)我們自己也能感受到,OCR技術(shù)確實(shí)也在改變著我們的生活:比如一個(gè)手機(jī)APP就能幫忙掃描名片、身份證,并識(shí)別出里面的信息;當(dāng)汽車進(jìn)入停車場(chǎng)、收費(fèi)站的時(shí)候都不需要人工登記了,都是用車牌識(shí)別技術(shù)上傳到計(jì)算機(jī)系統(tǒng)。我們看書(shū)時(shí)看到不懂的數(shù)學(xué)題等,拿個(gè)手機(jī)掃一掃書(shū)本,應(yīng)用就能在網(wǎng)上幫你找到這道題正確精準(zhǔn)答案。太多太多的應(yīng)用了,文字識(shí)別技術(shù)OCR的應(yīng)用在當(dāng)今時(shí)代確實(shí)是百花齊放。我認(rèn)為手寫(xiě)體識(shí)別和印刷體識(shí)別這兩個(gè)是OCR領(lǐng)域兩個(gè)主要大主題,當(dāng)然印刷體識(shí)別較手寫(xiě)體識(shí)別要簡(jiǎn)單得多,因?yàn)樗麄兌际且?guī)則的,我們也能從直觀上能夠理解,印刷體大多都是規(guī)則的字體,因?yàn)檫@些字體都是計(jì)算機(jī)系統(tǒng)生成再輸出通過(guò)打印技術(shù)印刷到紙質(zhì)上。在印刷體的識(shí)別上有其獨(dú)特的干擾:在印刷過(guò)程中字體很可能變得斷裂或者墨水粘連,使得OCR識(shí)別異常困難。當(dāng)然這些都可以通過(guò)一些計(jì)算機(jī)圖像處理技術(shù)幫它盡可能的還原,進(jìn)而提高識(shí)別率。總的來(lái)說(shuō),單純的印刷體識(shí)別在業(yè)界已經(jīng)能做到很不錯(cuò)了,但說(shuō)100%識(shí)別是肯定不可能的,但是說(shuō)識(shí)別得不錯(cuò)那是沒(méi)毛病。關(guān)于OCR技術(shù),我們不可缺少的就是Tess-two,Tess-two技術(shù)是tesseraToolsForAndroid的一個(gè)git分支,使用的是C++編寫(xiě)的,可以運(yùn)行運(yùn)行在基于Linux的機(jī)器上,正好它可以編譯成Android、iOS等設(shè)備的運(yùn)行文件,我們使用它可以實(shí)現(xiàn)對(duì)圖像進(jìn)行相關(guān)人工智能的操作。4身份證識(shí)別技術(shù)的開(kāi)發(fā)(聲明:為保證隱私,身份證照片進(jìn)行了處理)4.1整體的開(kāi)發(fā)流程根據(jù)現(xiàn)有調(diào)查出的技術(shù)手段,我們主要分為兩大部分:1,獲取身份證圖片核心區(qū)的文字讀取,其中主要包括的技術(shù)點(diǎn)有獲取圖片、圖像灰度化、灰度圖二值化、輪廓檢測(cè)、圖像膨脹、圖像分割、身份證核心區(qū)獲取。2,圖文識(shí)別,即把核心區(qū)域的圖片轉(zhuǎn)換為文字。其中包括的技術(shù)點(diǎn)有OCR文本訓(xùn)練、記憶樣本移植、圖像文字識(shí)別。4.2身份證圖片核心區(qū)的讀取1,獲取圖片。作為Android設(shè)備大多數(shù)都提供OTG功能,可攜帶一個(gè)或者多個(gè)攝像頭,使用Android自帶功能拍照得到png圖片或者其他格式的圖片,這些都不會(huì)影響,因?yàn)樵赼ndroid計(jì)算機(jī)系統(tǒng)中只能把這些圖片格式轉(zhuǎn)換為Bitmap類型的數(shù)據(jù),但是我們使用Android系統(tǒng)APIopenCV是不支持Bitmap數(shù)據(jù)格式的,所以我們需要把Bitmap轉(zhuǎn)換為其能夠讀取的Mat類型數(shù)據(jù)。這里我們用Android手機(jī)自帶攝像頭拍攝了一張彩色的身份證照片。2,圖像灰度化。在RGB模型中,如果R值、G值、B值三者相等的時(shí)候,那么彩色表示一種灰度顏色,其中R=G=B這三者相等的值叫灰度值,因此,灰度圖像每一個(gè)像素只需要一個(gè)byte存放灰度值(又稱亮度值、強(qiáng)度值),灰度范圍為0~255。講的通俗一點(diǎn),就是將一張彩色圖片變成黑白圖片?;叶然话阌蟹至糠ā⑵骄捣?、最大值法、加權(quán)平均法四種方法,對(duì)彩色圖像進(jìn)行灰度化。進(jìn)行灰度化之后我們得到了如下圖像:3,灰度圖二值化。把灰度圖變成非黑即白的圖片(gray<=100,0)
(gray>100,255)一張圖像包括目標(biāo)物體、背景、噪聲,我們要想從多值的數(shù)字圖像中直接提取出目標(biāo)物體,最常用的辦法就是設(shè)定一個(gè)預(yù)期閾值T,用T將圖像的數(shù)據(jù)分成兩部分:大于T的像素集合和小于T的像素集合。這是研究灰度變換的最特殊的方法,稱之為圖像的二值化。二值化后的黑白圖片不包含灰色,只有純白和純黑兩種顏色,經(jīng)過(guò)二值化的操作之后得到一下圖像:4,輪廓檢測(cè)。所有連續(xù)的閉包用矩形框起來(lái)。這樣待下一步進(jìn)行膨脹的時(shí)候能夠加少步驟。得到下圖:5,圖像膨脹:把單個(gè)的身份證號(hào)碼數(shù)字粘貼起來(lái)。黏起來(lái)后,一個(gè)連續(xù)的區(qū)域,而且最長(zhǎng)。從身份證的大體上我們能看得出,所需要的核心區(qū)域即身份證號(hào)碼區(qū)是寬度最寬的區(qū)域。但是其中包含了很多小格子,膨脹的目的就是把這些小格子放大,然后粘黏在一起變成一個(gè)更大的區(qū)域。而后我們就會(huì)在openCV的讀取圖像的回調(diào)函數(shù)中得到一個(gè)圖像區(qū)域數(shù)組即Mat[],我們?cè)谶@個(gè)數(shù)組中選擇一個(gè)寬高比最大的就是身份證號(hào)的那個(gè)區(qū)域。6,圖片分割:從最大的圖片中截取身份證號(hào)碼區(qū)域,變成一張小圖片。得到下圖:4.3圖文識(shí)別OCR文本訓(xùn)練。對(duì)于一個(gè)文字圖像,從中提取出特征,交給分類器。分類器就對(duì)其進(jìn)行分類,告訴你這個(gè)特征應(yīng)該識(shí)別成哪個(gè)文字。設(shè)計(jì)分類器就是我們的任務(wù)。分類器的設(shè)計(jì)方法一般有:判別函數(shù)法、模板匹配法、基于規(guī)則推理法、神經(jīng)網(wǎng)絡(luò)分類法等,這里不展開(kāi)敘述。在進(jìn)行實(shí)際識(shí)別前,往往還要對(duì)分類器進(jìn)行訓(xùn)練,這是一個(gè)監(jiān)督學(xué)習(xí)的過(guò)程。如今成熟的分類器也有很多,有SVM,CNN等。訓(xùn)練加入的樣本文件越多,得出的模型準(zhǔn)確率越高,所以我們最好越多訓(xùn)練越好。經(jīng)過(guò)一番訓(xùn)練之后,我們會(huì)得到相應(yīng)的記憶樣本模型。我們拿到這個(gè)模型之后把之前步驟得到的核心區(qū)域圖像與模型進(jìn)行交互就會(huì)得到一個(gè)String類型的字符串。我們就可以拿這些文字上傳到服務(wù)器、或者進(jìn)行邏輯處理與硬件設(shè)備邏輯處理等等。5身份證識(shí)別技術(shù)的應(yīng)用延伸在一些簡(jiǎn)單環(huán)境下OCR的準(zhǔn)確度已經(jīng)比較高了(比如電子文檔),但是在一些復(fù)雜環(huán)境下的字符識(shí)別,在當(dāng)今還沒(méi)有人敢說(shuō)自己能做的很好。現(xiàn)在大家都很少會(huì)把目光還放在如何對(duì)電子文檔的文字識(shí)別該怎么進(jìn)一步提高準(zhǔn)確率了,因?yàn)樗麄儼涯抗夥旁诟刑魬?zhàn)性的領(lǐng)域。OCR傳統(tǒng)方法在應(yīng)對(duì)復(fù)雜圖文場(chǎng)景的文字識(shí)別顯得力不從心,越來(lái)越多人把精力都放在研究如何把文字在復(fù)雜場(chǎng)景讀出來(lái),并且讀得準(zhǔn)確作為研究課題,用學(xué)界術(shù)語(yǔ)來(lái)說(shuō),就是場(chǎng)景文本識(shí)別(文字檢測(cè)+文字識(shí)別)。1)辦公自動(dòng)化方面。工廠企業(yè)、公司及事業(yè)單位的日常辦公用文件及資料等等都需要輸入計(jì)算機(jī)存儲(chǔ)檢索。使用OCR技術(shù),比存儲(chǔ)圖像文件大大地節(jié)省存儲(chǔ)量,又不需要專職錄入人員人工錄入,是減輕勞動(dòng)量、解放雙手、節(jié)約資金、提高辦公效率的最好措施。2)建立中文資料庫(kù)。要大量輸入各種文書(shū)、刊、報(bào)及文件的時(shí)候,使用OCR技術(shù)可以縮短建庫(kù)時(shí)間,減輕勞動(dòng)強(qiáng)度,降低成本。3)打字公司、書(shū)刊出版社、報(bào)社等。使用OCR技術(shù)可以自動(dòng)錄入已經(jīng)出版的文章、打印文件,稍加修改編輯成新文章或者再版己有書(shū)刊。OCR技術(shù)輸出的標(biāo)準(zhǔn)漢字代碼文件可提供給大多數(shù)中文處理系統(tǒng)、輕印刷系統(tǒng)、照排系統(tǒng),可以重新打印、輸出印刷。4)圖書(shū)館、文獻(xiàn)中心。用本系統(tǒng)自動(dòng)錄入圖書(shū)有關(guān)信息,可以建立書(shū)目數(shù)據(jù)庫(kù)自動(dòng)錄入經(jīng)典圖書(shū)全文,將紙上文字內(nèi)容轉(zhuǎn)移到計(jì)算機(jī)內(nèi),便于檢索、查找、保存,更大的好處可以提供給專家用計(jì)算機(jī)對(duì)書(shū)籍內(nèi)容進(jìn)行研究。5)機(jī)器翻譯。機(jī)器翻譯的第一步驟是將全文輸入計(jì)算機(jī)。利用OCR可以將機(jī)器自動(dòng)翻譯相匹配,實(shí)現(xiàn)高速地自動(dòng)翻譯。6)個(gè)人使用。當(dāng)您閱讀資料時(shí),可用OCR將您感興趣的段落自動(dòng)錄入。特別是寫(xiě)作的作家,利用本軟件可以將一些書(shū)載歷史資料或文獻(xiàn)快速錄入到電腦中。6探究更廣義的人工智能技術(shù)在Android軟件開(kāi)發(fā)中的未來(lái)趨勢(shì)及預(yù)測(cè)場(chǎng)景 移動(dòng)應(yīng)用已經(jīng)改變了我們處理技術(shù)的方式。物聯(lián)網(wǎng)也已經(jīng)進(jìn)入到了我們的家庭,像關(guān)燈這樣的任務(wù)可以通過(guò)應(yīng)用程序遠(yuǎn)程來(lái)處理。然而,人工智能(AI)將跨越下一步,這些技術(shù)正在變得更快,更容易為世界各地的用戶所接受。 移動(dòng)應(yīng)用已經(jīng)改變了我們處理技術(shù)的方式。物聯(lián)網(wǎng)也已經(jīng)進(jìn)入到了我們的家庭,像關(guān)燈這樣的任務(wù)可以通過(guò)應(yīng)用程序遠(yuǎn)程來(lái)處理。然而,人工智能(AI)將跨越下一步,這些技術(shù)正在變得更快,更容易為世界各地的用戶所接受。 5.1幫助研發(fā)人員 人工智能的顛覆性技術(shù)有可能使開(kāi)發(fā)人員變得更聰明。機(jī)器學(xué)習(xí)將改善我們處理日常任務(wù)的方式。反而不斷的從日常工作中獲得數(shù)據(jù),可以增強(qiáng)人工智能。即使有了敏捷和DevOps計(jì)劃,將一個(gè)想法轉(zhuǎn)化成為代碼對(duì)許多開(kāi)發(fā)者來(lái)說(shuō)也是一個(gè)巨大的障礙。AI可以通專家系統(tǒng)建議改進(jìn)代碼質(zhì)量以及怎么將它們應(yīng)用到軟件開(kāi)發(fā)生命周期來(lái)解決這個(gè)問(wèn)題。AI還可以在任何軟件模型中實(shí)現(xiàn)更強(qiáng)的文本識(shí)別。開(kāi)發(fā)人員將能夠從這種敏銳的認(rèn)知中獲得更強(qiáng)大的代碼。自動(dòng)化已經(jīng)把測(cè)試變成了一個(gè)更容易的過(guò)程;現(xiàn)在AI將使測(cè)試變得更容易。DevOps團(tuán)隊(duì)必須花費(fèi)大量的時(shí)間來(lái)找出為什么某些事情不起作用的原因,以及如何使事情正常工作。AI將幫助開(kāi)發(fā)人員查找數(shù)據(jù),即處理該數(shù)據(jù)的人員,并將提供過(guò)去的開(kāi)發(fā)生命周期供參考。這種智能過(guò)程可以產(chǎn)生缺陷和以前的錯(cuò)誤階段,因此可以對(duì)當(dāng)前的項(xiàng)目進(jìn)行改進(jìn)。 5.2更加強(qiáng)健的運(yùn)用程序 我們的移動(dòng)電話、平板電腦和臺(tái)式機(jī)正在使用新一代技術(shù),應(yīng)用程序可以代表您說(shuō)話、聽(tīng)到、感知和思考。使用這些應(yīng)用程序的廠商正在增長(zhǎng),因?yàn)槠髽I(yè)希望將這種技術(shù)結(jié)合起來(lái),以獲得更多的收入。人工智能解決方案和平臺(tái)將在未來(lái)幾年內(nèi)大受歡迎。我們已經(jīng)在一定程度上通過(guò)Siri和Cortana體驗(yàn)了這項(xiàng)技術(shù),下一步將使這些技術(shù)對(duì)客戶更加智能化。 JavaScript、Ruby、Python等等傳統(tǒng)編程語(yǔ)言提供了模板業(yè)務(wù)策略和最佳實(shí)踐的選項(xiàng)。而基于規(guī)則的學(xué)習(xí)可以使這些策略更智能化地實(shí)現(xiàn),而這些策略并不僅僅局限于單個(gè)問(wèn)題。專家顧問(wèn)可以從這方面受益,因?yàn)橥ㄟ^(guò)傳統(tǒng)語(yǔ)言編寫(xiě)編碼策略是一項(xiàng)高成本的任務(wù)。 較初級(jí)的AI已經(jīng)在軟件開(kāi)發(fā)業(yè)界存在了相當(dāng)長(zhǎng)的時(shí)間,但它需要開(kāi)發(fā)者的干預(yù)才能成為現(xiàn)實(shí)。AI將使應(yīng)用程序能夠自主學(xué)習(xí)并對(duì)場(chǎng)景做出反應(yīng)。人工智能的更強(qiáng)大版本考慮到了學(xué)習(xí),并實(shí)現(xiàn)了更智能的適應(yīng)。通過(guò)這種顛覆性的技術(shù)進(jìn)行深入的學(xué)習(xí)和修正是開(kāi)發(fā)人員最興奮的事情。然而,沒(méi)有人能準(zhǔn)確預(yù)測(cè)在一個(gè)無(wú)人監(jiān)督的學(xué)習(xí)環(huán)境中,深度學(xué)習(xí)應(yīng)用的未來(lái)。 機(jī)器學(xué)習(xí)和智能適配技術(shù)將使開(kāi)發(fā)人員對(duì)他們最熱衷的領(lǐng)域有一個(gè)新的思維方式。培養(yǎng)這種心態(tài)是一種挑戰(zhàn),也是一種天賦。受制于我們所知道的算法傳統(tǒng)的開(kāi)發(fā)模型要求我們以線性的方式進(jìn)展。機(jī)器學(xué)習(xí)算法不允許你用傳統(tǒng)的方式思考。在許多方面,例如StackOverflow、GitHub,通過(guò)開(kāi)發(fā)社區(qū)的集體智慧,軟件工程師獲得了巨大的影響力。開(kāi)發(fā)人員可以專注于業(yè)務(wù)目標(biāo),理解業(yè)務(wù)策略,并從積極的心態(tài)來(lái)看待SDLC。因此創(chuàng)建的Aplication對(duì)不同的情況和范圍具有高度的響應(yīng)性。5.3人工智能可以自創(chuàng)軟件 根據(jù)你的需求讓人工智能設(shè)備自動(dòng)創(chuàng)建程序這還是很遙遠(yuǎn)的事情。計(jì)算機(jī)還不成熟,無(wú)法自行生成完整成熟的代碼和構(gòu)建現(xiàn)成的軟件。這是一件應(yīng)該讓開(kāi)發(fā)人員對(duì)他們的工作有信心的事情。計(jì)算機(jī)行業(yè)永遠(yuǎn)不會(huì)替代有創(chuàng)造力的開(kāi)發(fā)者。人工智能技術(shù)是為了幫助我們創(chuàng)造出比傳統(tǒng)環(huán)境下更健壯安全的軟件。然而,我們將發(fā)現(xiàn)QA和開(kāi)發(fā)工作的性質(zhì)發(fā)生了重大變化。 許多開(kāi)發(fā)者認(rèn)為,測(cè)試階段是整個(gè)軟件交付生命周期中最重要的階段。而實(shí)際上,你不應(yīng)該讓任何人告訴你,手動(dòng)測(cè)試用例是自動(dòng)化的起點(diǎn)。在數(shù)字加速的時(shí)代,生產(chǎn)最好的質(zhì)量是至關(guān)重要的。公司將實(shí)施人工智能的實(shí)踐,以提高測(cè)試自動(dòng)化和實(shí)現(xiàn)高質(zhì)量。5.4未來(lái)的發(fā)展 “人一機(jī)器的社會(huì)結(jié)構(gòu),終將為人一機(jī)器一智能機(jī)器的社會(huì)結(jié)構(gòu)所取代”。但是人工智能機(jī)器并非能取代我們?nèi)祟愃械墓ぷ?,人工智能技術(shù)在智能溝通、判斷是非善惡、傳授他人知識(shí)等人類輕而易舉完成但卻需要復(fù)雜的腦力活動(dòng)方面,存在一定的困難。也就是在不同環(huán)境下,通過(guò)對(duì)肌肉進(jìn)行靈活控制來(lái)處理、移動(dòng)和控制對(duì)象的能力;構(gòu)思新穎想法的創(chuàng)新能力;對(duì)能夠推動(dòng)文化發(fā)展的藝術(shù)與設(shè)計(jì)的創(chuàng)造能力,三個(gè)方面存在一些障礙。面對(duì)智能機(jī)器占主導(dǎo)的未來(lái)社會(huì)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年旅游規(guī)劃委托合同
- 綠色建筑評(píng)價(jià)體系開(kāi)發(fā)合同
- 石油化工行業(yè)綠色生產(chǎn)技術(shù)研發(fā)投資合同
- 電子支付平臺(tái)服務(wù)合同
- 藝術(shù)品收藏交易合同與真?zhèn)蚊庳?zé)條款
- 品牌推廣與營(yíng)銷合作合同
- 蠶繭買賣合同
- 工程建設(shè)施工合同
- 擔(dān)保的合合同
- 太陽(yáng)能光伏系統(tǒng)建設(shè)合同
- 飛鼠養(yǎng)殖技術(shù)指導(dǎo)
- 2024輸血相關(guān)知識(shí)培訓(xùn)
- 2023年四川省綿陽(yáng)市中考初中學(xué)業(yè)水平考試語(yǔ)文試題【含答案】
- 正大天虹方矩管鍍鋅方矩管材質(zhì)書(shū)
- 山東省泰安市2022年初中學(xué)業(yè)水平考試生物試題
- 受賄案例心得體會(huì)
- 人教A版高中數(shù)學(xué)選擇性必修第一冊(cè)第二章直線和圓的方程-經(jīng)典例題及配套練習(xí)題含答案解析
- 圖書(shū)館學(xué)基礎(chǔ)簡(jiǎn)明教程
- 畢業(yè)設(shè)計(jì)(論文)-液體藥品灌裝機(jī)的設(shè)計(jì)與制造
- 二年級(jí)下冊(cè)數(shù)學(xué)教案 -《數(shù)一數(shù)(二)》 北師大版
- 銀行內(nèi)部舉報(bào)管理規(guī)定
評(píng)論
0/150
提交評(píng)論