義隆電子與中研院團隊將物件偵測模型YOLOv4部署於道路號誌燈旁的槍型攝影機和魚眼攝影機,可精準辨識各種車輛、計算車流。有了這些資訊,就能進一步進行路網號誌燈的控制,根據路況來優化、調節號誌燈。(圖片來源/廖弘源)

YOLOv4的誕生由一場會議而起。

2018年的一個春天,中研院資訊所廖弘源特聘研究員團隊成員們坐在會議室裡,盯著投影簡報上的10道題目。當時沒人知道,這些題目最後會催生出驚艷全球AI社群的物件偵測模型。

那是義隆電子與中研院團隊第二次聚會討論,他們因科技部的「業界出題、學界解題」AI計畫相識,共同展開為期4年的改造計畫。那些題目,都是義隆電子研發產品時遇到的挑戰,幾乎都圍繞在電腦視覺上。中研院團隊的核心人物、中研院資訊所所長廖弘源也以「實用」和「能以科學方法解決」這兩個原則,共同篩選出5道題,並從中整理出3項關鍵技術,來集中火力研究。

瞄準3技術,解題模型要輕快準

這3項技術,分別是行人重識別、魚眼鏡頭車流分析,以及手機人臉防偽造。中研院資訊所博士後研究員王建堯解釋,第1項是要辨識同一人在不同場景出現的情況,比如在賣場中,辨識四處移動的消費者,來了解他們的移動軌跡和商品偏好等行為。

第2項技術,是要透過裝設在交通號誌下的魚眼鏡頭,來分析道路車流,進一步調控交通號誌燈。至於人臉防偽造,是要防止手機人臉辨識時,有心人以照片或面具來混淆辨識系統。

這3種技術雖有各自的應用場景,但其實,它們都面臨同一道挑戰——如何在運算資源不足的低階設備上,執行AI推論且達到高準確度。比如,2018年的手機運算資源有限,大多未內建AI加速晶片,團隊得開發出輕量、準確且快速的AI模型,才能在手機上執行臉部防偽辨識。又比如,要利用魚眼鏡頭畫面來分析車流,只能仰賴交通號誌燈下的簡易供電系統,得選用功耗較低的Nvidia Jetson TX2開發板,運算資源只有一般GPU的十分之一,因此AI模型也得又輕又快又準,才能達到要求。

三番兩次研發新方法,拉高15%準確率突破通用性瓶頸

廖弘源帶著研究員王建堯,負責實踐第1項技術。成功開發出符合要求的辨識系統,但後來考量,這種在公共場所辨識個人的技術,日後可能涉及隱私議題,第一年還沒結束就決定終止,不再繼續研究了。

而第2項技術,原由另一組中研院團隊負責。這道題同樣為期4年,每年訂出階段目標。2018年,計畫第一年要完成魚眼車流分析,第二年則是實現路口停等車隊與車流分析、混流車牌識別、行車魚眼多物件追蹤等任務,2020年要結合前兩年的技術,來建立路口交通號誌控制系統。2021年,則進一步完善智慧交通路網號誌控制系統,透過混流車牌識別技術,以科技執法來揪出違規車輛。

在2018年展開計畫後,原團隊採用當時熱門的開源物件偵測模型YOLOv3,來分析魚眼鏡頭拍攝的十字路口畫面,進一步辨識車輛、車種,並計算車流量、平均速度、路口平均佔有率等。

這套基於YOLOv3的模型,能良好辨識在訓練資料集有涵蓋的場景,但將模型部署到臺中主要幹道的真實場域後,辨識準確度反而下滑了,只有80%左右,無法達到專案要求的90%。

YOLOv3已是世界級的物件偵測模型,但研究團隊調校再調校,仍無法解決問題在真實場域中準確度不足的問題。這時,終止第1項技術研究的廖弘源和王建堯加入了第2項技術團隊,來解決這個瓶頸。

為了解題,也為了配合硬體資源限制,王建堯先是參考了輕量的物件偵測模型ResNet,改良其學習策略,開發出一套快速、低功耗的輕量級電腦視覺模型PRN。PRN雖比YOLOv3快上兩倍,但準確度比YOLOv3差。

第一次嘗試失利,但王建堯再接再厲,2019年研發出CSPNet,提高模型梯度組合,也最大化梯度多元性,一改卷積網路為人詬病的梯度消失問題,大大提高模型學習效率。CSPNet不只耗費的硬體資源更低,準確率也更高。

更重要的是,CSPNet部署到真實場域後,面對訓練時未見過的場景,「辨識準確率比基於YOLOv3的模型高出15%!」終於解決前一年難以突破的瓶頸,王建堯回想起來,還是難掩興奮:「CSPNet可以用差不多的速度,突破90%準確率,甚至接近95%!」他點出,這也是義隆電子印象深刻之處,更證明了CSPNet更通用的能力。

開源習慣養出YOLOv4

2019年11月,王建堯按照慣例,也將自行研發的CSPNet專案程式碼開源。有別於學界常用Python來開發AI模型,熟諳晶片軟硬體技術開發的王建堯,自己從2018年開始,就用業界常用的C和C++程式語言,搭配YOLO專用的深度學習框架Darknet來開發模型。因此,不論是PRN還是CSPNet,他一律開源,貢獻給YOLO社群,也因此與社群培養出緊密的關係。

「我們開源模型,來尋求原版框架的支援,因此而獲得在GitHub與YOLO社群上的密切討論。」王建堯回憶,他開源的模型,通常會在短時間內獲得Darknet支援,也數次被納入電腦視覺界重要的函式庫OpenCV中。他也會將開發出的新功能程式碼,直接交由YOLOv3 Darknet的維護者Alexey Bochkovskiy處理,新增至新版模型中。這次合作也讓王建堯與Alexey Bochkovskiy開始熟悉,後來Alexey更成了將YOLOv4帶進國際社群的關鍵人物,也名列YOLOv4共同作者。

因為,2019年那次開源後,Alexey Bochkovskiy立刻就被CSPNet吸引。他主動聯絡廖弘源和王建堯,要用3種GPU來測試CSPNet性能,還要進一步以CSPNet,開發下一代YOLO模型。

不出所料,CSPNet在3種GPU測試中都拿下第一,三方也緊接著在2020年初著手打造新模型。他們以CSPDarkNet53為新模型的Backbone,來加強卷積網路學習能力,Neck部分則加入空間金字塔池化層和PANet,前者用來強化接受區域(Receptive field)作用,能將最重要的特徵區分出來,後者則取代YOLOv3的FPN,在不同等級的偵測器中聚合參數。Head的部分,則採用YOLOv3。

過程中,這三人不僅分工開發,Alexey Bochkovskiy也拿著論文草稿,來與YOLO前三代的原作者一一討論。在一連串的努力下,去年4月,YOLOv4正式發表。

別讓我知道資料長怎樣!高標準測試讓YOLOv4一問世就成第一

他們對YOLOv4的講究,還不只如此。在測試模型通用性的關鍵階段,王建堯特別要求義隆電子團隊,「千萬別讓我們知道一部分的標註資料長怎樣!」這是因為,這麼做,模型開發者就不會根據那些資料來設計模型,而是採取更通用的設計方法。

而且,「訓練資料與測試資料完全無關,就像是盲測,測出的結果也更公平公正。」王建堯補充,正因為用更嚴格的標準來要求,模型實作出來後,成果往往比預期更好。

經嚴格標準打造的YOLOv4,在去年秋季舉辦的微軟COCO即時物件偵測挑戰賽中,一舉奪下全球第一,擊敗Google、臉書、IBM等擁有大量資源的科技巨頭。

這個第一名,YOLOv4穩坐了好幾個月。

這讓王建堯很訝異。他坦言,一路來,他和團隊只想著如何解決義隆電子難題,要打造一套模型,能在運算資源有限的低階設備上,又輕又快又準地辨識物件。當時,他們就發豪語要超越世界第一,來實現目標,「只是當我們做到後,我沒想過,其他人還沒跟上來。」王建堯解釋,那段時間裡,也有許多團隊在研發更好的物件偵測模型,但研發成果還不及YOLOv4,有段時間差。

他也認為,YOLOv4之所以能成為影響世界的AI模型,正因為有業界出題、學界解題這種產學共創模式。「這對AI技術發展很重要!」他點出,學界和業界容易存在技術落地的鴻溝,而產學共創模式,能讓學界了解業界面臨的實際問題,進而研發出能落地的技術。王建堯強調,業界少有「共享知識」的習慣,而學界研發新技術,幾乎得公開發表論文、開源模型,在知識的共享上更為開放。整合業界與學界的知識,就能產出令人驚豔的成果。

YOLOv4讓一般企業、個人都能負擔得起AI研究

不過,對他來說,YOLOv4最大的意義不在於輕、快、準,而是物件偵測技術的普及。「很多模型開源後,一般人不見得能用。」他解釋,因為這些模型大多得仰賴昂貴的硬體設備,如好幾百個TPU,甚至上千張GPU才能訓練模型。相反地,YOLOv4只需個人電腦上的1個GPU,就能訓練好模型、進行推論,甚至,它比科技巨頭用上千顆GPU訓練出的模型還還有更好的表現。

「YOLOv4最大的效果是,人人可做AI研究,而不只侷限於大科技公司!」王建堯說。

開發出YOLOv4後,王建堯也馬不停蹄展開新研究。因為,義隆電子在去年底,給團隊開出了一個新目標,不只要模型輕快準,還要能執行多任務,而且每個任務都要能做好。

熱門新聞

Advertisement