推開(kāi)算法的另一扇門:從傳統(tǒng)算法到AI算法工程師的華麗轉(zhuǎn)身
從博士階段到2015年加入公司,我一直從事算法研究。但2018年,根據(jù)部門新業(yè)務(wù)拓展規(guī)劃,我從傳統(tǒng)算法崗位轉(zhuǎn)到機(jī)器視覺(jué)領(lǐng)域視頻AI算法工程師的崗位,還是讓一貫淡定的我心里多了幾個(gè)問(wèn)號(hào):
“我是否能適應(yīng)這個(gè)全新的領(lǐng)域?”“我能否勝任這個(gè)崗位?”
揣著些許忐忑,還有幾分期待,轉(zhuǎn)身就從這一刻起航了。
讓算法“跑”起來(lái),實(shí)現(xiàn)從0到1的突破
在我的求學(xué)時(shí)代,人工智能還不是熱門方向,主要學(xué)習(xí)的還是傳統(tǒng)的數(shù)理統(tǒng)計(jì)分析和機(jī)器學(xué)習(xí)算法,而AI算法和我之前所學(xué)和所用不同,它主要依賴于數(shù)據(jù)、算力和算法,能夠通過(guò)AI芯片,用機(jī)器替代人完成一些看似復(fù)雜的任務(wù)。
當(dāng)時(shí)在機(jī)器視覺(jué)領(lǐng)域,在我們部門,做AI算法的人只有我們小組的幾個(gè)人。AI算法在業(yè)務(wù)上具體能發(fā)揮什么作用,一開(kāi)始誰(shuí)也沒(méi)有太多頭緒,好在領(lǐng)導(dǎo)們非常重視對(duì)AI算法的投入,積極組織外部交流,開(kāi)展專家/博士大講堂、高校喝咖啡等技術(shù)交流活動(dòng),讓我有多種渠道可以多學(xué)多吸收;我自己對(duì)AI算法也非常感興趣,時(shí)不時(shí)去找些國(guó)內(nèi)外相關(guān)論文提升自己的視野。不管是開(kāi)放協(xié)作的團(tuán)隊(duì)氛圍,還是自我的“企圖心”,都在幫助我順利轉(zhuǎn)身。
“有個(gè)海外項(xiàng)目要做算法,你主導(dǎo)試一試?”2018年上半年,主管交給我一個(gè)新的任務(wù):交通領(lǐng)域的海外車牌識(shí)別算法交付。
隨著科技日益發(fā)達(dá),很多國(guó)家和地區(qū)在交通領(lǐng)域越來(lái)越迫切需要智能攝像機(jī),而其中最為關(guān)鍵的是車牌識(shí)別算法,可以完成對(duì)車牌字符串的自動(dòng)識(shí)別,這對(duì)智能攝像機(jī)和后端平臺(tái)都有較大價(jià)值,比如車輛行駛過(guò)程中被攝像機(jī)拍到了違章行為,車牌算法可以快速識(shí)別出車輛的車牌信息,從而快速對(duì)應(yīng)駕駛?cè)藛T信息,免去了人工操作的繁瑣,使城市的交通安防更“智能”。
之前產(chǎn)品線只在國(guó)內(nèi)做過(guò)這塊業(yè)務(wù),這是第一次計(jì)劃將自研車牌算法帶到海外項(xiàng)目中。這也是一個(gè)和2012實(shí)驗(yàn)室共同協(xié)作開(kāi)發(fā)的任務(wù),主管對(duì)我說(shuō),我們會(huì)和2012實(shí)驗(yàn)室機(jī)器視覺(jué)領(lǐng)域的專家、同事密切合作,“站在巨人的肩膀上共同完成這個(gè)任務(wù)”。雖然有些沒(méi)底,但我還是毫不遲疑應(yīng)承下來(lái)。我始終堅(jiān)信,集合了公司頂尖的資源和強(qiáng)大的平臺(tái),我們一定會(huì)有所突破。
但對(duì)我來(lái)說(shuō),這是一個(gè)從零開(kāi)始的過(guò)程,可謂困難重重。做AI算法的第一個(gè)要素就是數(shù)據(jù),車牌圖片數(shù)據(jù)就像是車牌識(shí)別算法的“燃料”,要讓算法“跑起來(lái)”,快速識(shí)別車牌信息,就需要源源不斷的“優(yōu)質(zhì)燃料”,但當(dāng)?shù)乜蛻艉鸵痪€能夠提供的車牌圖片數(shù)據(jù)很少,加上部分地區(qū)的基礎(chǔ)建設(shè)比較薄弱,每條道路上能夠調(diào)用的攝像頭數(shù)量非常少,歷史上累積的車牌圖片數(shù)據(jù)幾乎沒(méi)有。此外,車牌的規(guī)則是海外車牌識(shí)別算法開(kāi)發(fā)中最重要的基礎(chǔ),我們需要通過(guò)它構(gòu)建車牌的樣例,也需要它來(lái)保障車牌識(shí)別效果。但當(dāng)?shù)剀嚺埔?guī)則也不太明確,有很多奇形怪狀的車牌,甚至還有手寫的。
數(shù)據(jù)和規(guī)則,成為我們必須要克服的兩大關(guān)鍵挑戰(zhàn)。
好在2012實(shí)驗(yàn)室專家提供了算法上的幫助,包括方案的分析、設(shè)計(jì),我也反復(fù)研讀了與車輛算法相關(guān)的論文,參考業(yè)界的最新進(jìn)展,苦苦思考怎么獲得車牌圖片數(shù)據(jù)。
重新拍攝?加裝攝像頭?都不現(xiàn)實(shí)。有時(shí)候,靈感的迸發(fā)也許就在一剎那:既然數(shù)據(jù)確實(shí)沒(méi)辦法直接獲取,那反其道而行之呢?換句話說(shuō),如果無(wú)法得到“優(yōu)質(zhì)燃料”,那么何不降低對(duì)燃料的依賴?雖然沒(méi)有車牌圖片數(shù)據(jù),但交通部門有所有車牌號(hào)碼信息,而且車牌本身的形狀是相對(duì)規(guī)范的,基本都是在一塊鐵板上的印刷體文字,那么我們就可以通過(guò)代碼和軟件來(lái)生成需要的數(shù)據(jù),并生產(chǎn)訓(xùn)練它們,從而構(gòu)建數(shù)據(jù)生成的工具,通過(guò)代碼完成車牌圖片數(shù)據(jù)的自動(dòng)生成,降低對(duì)原始的車牌圖片數(shù)據(jù)的依賴度。
找到了破題思路后,基于生成數(shù)據(jù),我們自研深度算法模型,提高算法在光照、天氣、車速等場(chǎng)景的適應(yīng)性,比如光照太強(qiáng)或太弱、雨水干擾、車速過(guò)快導(dǎo)致有模糊等,減少算法對(duì)場(chǎng)景的依賴,保障業(yè)務(wù)指標(biāo)。另外,考慮到海外車牌規(guī)則的不確定性,必須提高數(shù)據(jù)生成和模擬中的數(shù)據(jù)仿真的真實(shí)性,讓生成的數(shù)據(jù)更加逼真,我們又嘗試增加一些噪音模擬的方法,比如運(yùn)動(dòng)模糊、反光、過(guò)曝、陰影等。
基于這些想法,我們快速付諸行動(dòng),經(jīng)過(guò)幾個(gè)月的研究和開(kāi)發(fā),終于做出了符合當(dāng)?shù)貙?shí)情的車牌算法,在POC(概念證明)比拼測(cè)試中,準(zhǔn)確率上比友商高出2%,達(dá)到商用標(biāo)準(zhǔn),實(shí)現(xiàn)了從0到1的突破。
做大池子,實(shí)現(xiàn)從1到N的跨越
然而,第二階段的挑戰(zhàn)也隨之而來(lái)——如何實(shí)現(xiàn)在更多的國(guó)家和地區(qū)批量上線?
起初,我們依賴這一套算法成功在一兩個(gè)國(guó)家項(xiàng)目中復(fù)制,但隨著上線國(guó)家越來(lái)越多,現(xiàn)有算法不足以支撐快速增長(zhǎng)的需求,僅僅適用于小規(guī)模場(chǎng)景。想一招打天下是不可能的,如果要實(shí)現(xiàn)更多場(chǎng)景更快批量上線,必須優(yōu)化算法,構(gòu)建一套更加完整和高效的算法開(kāi)發(fā)平臺(tái),來(lái)提高開(kāi)發(fā)效率。
當(dāng)時(shí)我們發(fā)現(xiàn),有些國(guó)家、地區(qū)的車牌種類復(fù)雜,至少有100余種,多的甚至有200種。這種情況下,最關(guān)鍵的是將算法的模型“池子”做大,將這些復(fù)雜種類的模型盡可能擴(kuò)充進(jìn)來(lái),形成一個(gè)模型池。不同國(guó)家和地區(qū)的車牌信息可以在模型池中自動(dòng)選擇,提高命中率。
但是,想法是美好的,挑戰(zhàn)卻是非常大的。我們需要摸清很多國(guó)家、地區(qū)的車牌類型。記得有一次,我們?cè)谀硞€(gè)局點(diǎn)做車牌識(shí)別,當(dāng)時(shí)產(chǎn)品線的測(cè)試工具還不是很成熟,我們也不能在馬路上拍攝,于是考慮拿著攝像機(jī)去拍電腦顯示器的錄像,但發(fā)現(xiàn)顯示器太小了,無(wú)法還原真實(shí)場(chǎng)景。
既然顯示器太小,那把顯示器“放大”呢?我腦洞大開(kāi):有什么東西具備“放大鏡”的功能?思來(lái)想去,給顯示器投屏不就解決了嗎?!想到就干,大半夜的,我和團(tuán)隊(duì)小伙伴迫不及待扛著攝像機(jī)、三腳架,找了一間屏幕約莫2米寬的會(huì)議室,局點(diǎn)真實(shí)的車況錄像投到大屏上后,可以將車流情況看得非常清楚。
于是,我們通過(guò)添加了車牌算法的攝像機(jī)拍攝大屏上的車流錄像帶,最大程度還原了現(xiàn)場(chǎng)車流的模樣。一番測(cè)試下來(lái),和真實(shí)場(chǎng)景非常相似,最終測(cè)試精度達(dá)到98%以上。這種喜悅難以用語(yǔ)言形容,我們的自研算法不僅幫助客戶提高了車牌識(shí)別的準(zhǔn)確率,降低誤報(bào),減少人工復(fù)核的開(kāi)銷,更重要的是,我們證明了自己。
通過(guò)車牌工具鏈優(yōu)化、數(shù)據(jù)仿真優(yōu)化和自研模型池三個(gè)創(chuàng)新技術(shù)點(diǎn),我們實(shí)現(xiàn)了車牌算法從1到N的批量上線,并根據(jù)業(yè)務(wù)需求源源不斷地生產(chǎn)著一個(gè)個(gè)海外車牌識(shí)別的算法。
走過(guò)這兩年,這個(gè)項(xiàng)目給我最大的感受是,方法永遠(yuǎn)比問(wèn)題多,一切事在人為。學(xué)術(shù)論文中的前沿技術(shù)成果成為我不斷提出創(chuàng)新idea的源泉,助力構(gòu)建了車牌算法的基礎(chǔ)能力;而通過(guò)和2012實(shí)驗(yàn)室算法團(tuán)隊(duì)的積極碰撞和密切合作,又夯實(shí)了整體算法。從最終結(jié)果來(lái)看,算法指標(biāo)上的提升也讓公司突破了多個(gè)國(guó)家和地區(qū)的車牌項(xiàng)目。
從“人無(wú)”到“我有”
在逐漸深入算法開(kāi)發(fā)的過(guò)程中,在實(shí)際業(yè)務(wù)中算法團(tuán)隊(duì)又遇到了一些新的難題。舉個(gè)例子,攝像機(jī)在實(shí)際局點(diǎn)的運(yùn)行中,遇到雨雪天氣,或背光,或目標(biāo)太小太遠(yuǎn)等,就會(huì)造成一些算法錯(cuò)誤率升高,比如人體屬性(如性別、衣服顏色、發(fā)型等)識(shí)別算法,識(shí)別準(zhǔn)確度指標(biāo)下降。
團(tuán)隊(duì)分析,原因主要來(lái)自兩方面:一是訓(xùn)練數(shù)據(jù)跟局點(diǎn)數(shù)據(jù)有差異,二是安裝架設(shè)攝像機(jī)不規(guī)范。我們沒(méi)有辦法要求所有的安裝人員都非常標(biāo)準(zhǔn)地安裝攝像機(jī),但根本的原因是,我們?cè)趯?shí)際場(chǎng)景碰到的問(wèn)題是做算法訓(xùn)練時(shí)沒(méi)有見(jiàn)過(guò)的。
有什么方法可以讓算法根據(jù)實(shí)際場(chǎng)景實(shí)時(shí)更新和優(yōu)化,在攝像機(jī)上越用越好呢?基于產(chǎn)品線在業(yè)務(wù)上的需求,結(jié)合平時(shí)論文的閱讀和分析,我們想到了當(dāng)前學(xué)術(shù)界前沿的在線優(yōu)化算法:如果攝像機(jī)上的算法可以根據(jù)現(xiàn)場(chǎng)數(shù)據(jù)實(shí)時(shí)在線優(yōu)化,就能提升算法的指標(biāo)。
但想法能不能變成現(xiàn)實(shí),內(nèi)心還是很沒(méi)底的,一是業(yè)界還沒(méi)有人在攝像機(jī)上做在線優(yōu)化算法,因?yàn)橛脭z像機(jī)做訓(xùn)練,存儲(chǔ)空間和訓(xùn)練資源均不夠,而且,還要實(shí)現(xiàn)自動(dòng)優(yōu)化,減少人工查驗(yàn)。二是這個(gè)算法能否成功應(yīng)用到產(chǎn)品中,還是未知數(shù)。
可不試你就永遠(yuǎn)不知道答案。我們又開(kāi)始了新一輪的摸索。參考學(xué)術(shù)界深度學(xué)習(xí)模型的遷移學(xué)習(xí)、模型finetune的方法,我們展開(kāi)大量的文獻(xiàn)分析和閱讀,設(shè)計(jì)出減少訓(xùn)練資源的算法,并且復(fù)用了算法中的大部分環(huán)節(jié),解決了存儲(chǔ)空間不足和訓(xùn)練資源不夠的問(wèn)題,也設(shè)計(jì)了多模型復(fù)用和閾值控制來(lái)提高算法的魯棒性,用于提高算法的準(zhǔn)確性。最終,POC測(cè)試時(shí),人體屬性準(zhǔn)確率指標(biāo)平均提升量有4.4%,能夠更快地通過(guò)衣服顏色、發(fā)型等人體屬性找到目標(biāo)人物,減少人工查驗(yàn)的時(shí)間,提高效率。
由此,我們構(gòu)建起了攝像機(jī)在線優(yōu)化算法的能力,并實(shí)現(xiàn)了人無(wú)我有的創(chuàng)新領(lǐng)先,成功助力市場(chǎng)突破。這進(jìn)一步堅(jiān)定了我對(duì)AI算法的信心。只要抱著開(kāi)放合作的態(tài)度,借助行業(yè)、學(xué)術(shù)界的成果深入研究和分析,目標(biāo)堅(jiān)定并毫不猶豫地一步一步往前走,我們也一定能夠在AI算法上做出卓越的成果,為產(chǎn)品競(jìng)爭(zhēng)力的構(gòu)建添磚加瓦。
不設(shè)限的思維,才有可能開(kāi)掛
打完一個(gè)“怪獸”后,下一個(gè)“怪獸”很快又出現(xiàn)了。而我們也在和一個(gè)又一個(gè)的“怪獸”搏斗中樂(lè)此不疲。
公司在機(jī)器視覺(jué)領(lǐng)域投入生產(chǎn)的一款主力攝像機(jī)是多鏡頭的復(fù)眼攝像機(jī),它的主要特點(diǎn)是通過(guò)多個(gè)鏡頭的組合,能夠看到更廣更遠(yuǎn)的視野范圍。但與此同時(shí)也帶來(lái)了“硬幣”的另一面,比如廣角鏡頭會(huì)使車輛在畫面中多以側(cè)面出現(xiàn),打個(gè)比方,你站在路邊,一輛車從你的左手邊開(kāi)到右手邊,你可以看見(jiàn)車子車牌的時(shí)間很短,并且一部分時(shí)間你只能看到車牌的側(cè)面,而且相對(duì)靠近畫面的邊緣,這時(shí)車牌就發(fā)生較大的畸變。這樣一來(lái),識(shí)別車牌精準(zhǔn)度就降低了。
我們就想,如果在算法內(nèi)多加一步,把鏡頭中的車牌做一次旋轉(zhuǎn),轉(zhuǎn)到算法可識(shí)別的正常角度,是不是就可以?
我們當(dāng)即做了一個(gè)實(shí)驗(yàn),將圖像中角度歪斜的車牌,通過(guò)程序轉(zhuǎn)為正常角度,多數(shù)車牌在旋轉(zhuǎn)之后都能準(zhǔn)確識(shí)別。這就證明,我們的方法是可行的,只需在算法中增加一個(gè)車牌角度分析和旋轉(zhuǎn)的模塊。從算法的角度來(lái)說(shuō),其實(shí)改動(dòng)不大,但是收益很大,大于45度的車牌識(shí)別率一下子從0%提升到93%以上,相當(dāng)于給架設(shè)在路邊的攝像機(jī)賦予了很高的車牌識(shí)別能力,競(jìng)爭(zhēng)力大幅提升。
在保證產(chǎn)品競(jìng)爭(zhēng)力提升的同時(shí),如何實(shí)現(xiàn)產(chǎn)品的高性價(jià)比也是我們關(guān)注的方向。微云是我們的邊緣計(jì)算設(shè)備,是產(chǎn)品在靠近最終業(yè)務(wù)場(chǎng)景的地方部署的服務(wù)器,產(chǎn)品線希望通過(guò)周界行為算法優(yōu)化讓一個(gè)微云服務(wù)器可以承接和分析更多的攝像機(jī),從而實(shí)現(xiàn)成本下降50%-60%,這就好比原本一臺(tái)服務(wù)器上只接10個(gè)用戶,現(xiàn)在要讓這臺(tái)服務(wù)器接20個(gè)用戶,這個(gè)目標(biāo)挑戰(zhàn)非常大,相當(dāng)于要提升100%以上的路數(shù),而一般算法能提升20%-30%已經(jīng)非常之難了。
團(tuán)隊(duì)不斷吸收學(xué)術(shù)界的前沿研究成果,和周邊團(tuán)隊(duì)進(jìn)行多輪技術(shù)研討,終于找到問(wèn)題的“金鑰匙”:可以去掉算法模型里面的多余節(jié)點(diǎn),就像我們?nèi)祟愐粯?,正常人的腦細(xì)胞約140億~150億個(gè),但只有不足10%被開(kāi)發(fā)利用,其余大部分在休眠狀態(tài)。算法模型中的神經(jīng)網(wǎng)絡(luò)也一樣,有些神經(jīng)網(wǎng)絡(luò)一開(kāi)始可能有20%-30%沒(méi)有用到,但是你也不能夠隨隨便便去掉它們,否則會(huì)導(dǎo)致精度急遽下降。
我們要做的是,先把那些不重要的“神經(jīng)”單元挑出來(lái)(稀疏化),再嘗試屏蔽掉這些沒(méi)有作用的節(jié)點(diǎn),這樣模型就變小了,計(jì)算過(guò)程也就變短了,從而有效保證了成本降低。簡(jiǎn)單來(lái)說(shuō),就是縮小模型的邊界,這也就是周界行為算法的題中之義。
答案是找到了,但通往答案的路并沒(méi)有捷徑,唯有不斷地挑選,不斷地測(cè)試。在一遍又一遍的測(cè)試中,我們發(fā)現(xiàn),如果“神經(jīng)”單元挑選得好,測(cè)試精度也沒(méi)怎么降低,甚至還會(huì)微微上升。通過(guò)這一算法優(yōu)化,最終單芯片完成了100%-150%的并發(fā)路數(shù)提升。
作為工程師,只要敢于不給自己設(shè)限,始終對(duì)自己高要求,相信一定可以做出讓自己自豪的技術(shù)!
創(chuàng)新,我們?cè)诼飞?/span>
求學(xué)至今,很多人跟我感嘆算法太復(fù)雜,但在我看來(lái),算法是把復(fù)雜的問(wèn)題清晰表達(dá)出來(lái)后再解決它,化繁為簡(jiǎn),有時(shí)候越簡(jiǎn)單的東西越有價(jià)值。早先在機(jī)器視覺(jué)領(lǐng)域,我們自己的算法是比較少的,包括人的算法、車的算法和行為的算法,都非常之少。但在這兩年里,我們以更加開(kāi)放的心態(tài)去吸收外部養(yǎng)分,推開(kāi)了AI算法這道門,快速構(gòu)建了算法的相關(guān)能力。事實(shí)也證明,通過(guò)算法的創(chuàng)新,我們?cè)跇I(yè)界多次比拼測(cè)試中,相關(guān)指標(biāo)是領(lǐng)先的。
機(jī)器視覺(jué)是一個(gè)入口,數(shù)據(jù)的入口,終端的入口,在整個(gè)可以想象的業(yè)務(wù)空間中,涉及攝像機(jī)、存儲(chǔ)、網(wǎng)絡(luò)、計(jì)算等各個(gè)環(huán)節(jié),機(jī)器視覺(jué)要做的是將各個(gè)環(huán)節(jié)有機(jī)的組合并聯(lián)動(dòng)起來(lái),也將更利于構(gòu)建網(wǎng)絡(luò)傳輸、計(jì)算資源、計(jì)算能力、硬件、存儲(chǔ)的良好生態(tài),完成從底層芯片到上層業(yè)務(wù)端到端的貫通。
如今,我們依然面臨極大的困難,但團(tuán)隊(duì)一直在奮力向前,持續(xù)聚焦創(chuàng)新,未來(lái)希望持續(xù)以技術(shù)競(jìng)爭(zhēng)力為抓手,助力公司在商業(yè)上尋求更大的突破,保障商業(yè)成功。
來(lái)源:《華為人》 作者:徐青
近期熱度新聞
【1】收購(gòu)TikTok,微軟剛發(fā)聲明了,特朗普會(huì)讓比爾蓋茨如愿么?
【2】意料之外,華為為何要給高通補(bǔ)交18億賠償金?
【3】換帥!紫光國(guó)微董事長(zhǎng)辭職!
干貨技能好文
【1】電源效率難提升?搞懂這些損耗來(lái)源是關(guān)鍵
【2】為什么采用4-20mA的電流來(lái)傳輸模擬量?
【3】如何將原理圖符號(hào)畫得通俗易懂?
優(yōu)質(zhì)資源推薦
【1】終于整理齊了,電子工程師“設(shè)計(jì)錦囊”,點(diǎn)擊獲取
【2】半導(dǎo)體行業(yè)的人都在關(guān)注這幾個(gè)公眾號(hào),打開(kāi)看看

你和大牛工程師之間到底差了啥? 加入技術(shù)交流群,與高手面對(duì)面 添加管理員微信

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!