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

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

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