轉載從: Tech News 科技新報
「只要讓我看一眼,我就知道這是什麼!」(You Only Look Once,YOLO)YOLO,是目前當紅的 AI 物件偵測演算法。中研院資訊科學研究所所長廖弘源及博士後研究員王建堯,與俄羅斯學者博科夫斯基(Alexey Bochkovskiy)共同研發最新的 YOLO 第四版(簡稱 YOLOv4),一舉成為目前全世界最快、最高精準度的物件偵測系統,引爆全球 AI 技術社群,已改寫物件偵測演算法的發展。究竟,他們對演算法動了哪些手腳?又是什麼樣的契機,開啟這項研究?
產業出難題,學界來解題
故事是從產學合作開始。前幾年,科技部提出「產學共創」機制:產業出題、學界解題,中研院合作對象義隆電子,出了一個考題給資訊所:如何增進十字路口的交通分析?也就是即時偵測車流量、車速等等。當時義隆電子已在十字路口架設監視器,包括全景攝影機及單一方向槍型攝影機,接下來最需要的,就是辨識車輛的物件偵測技術。
「但我們需要的不只是辨識車輛」,王建堯說。馬路運行中的車速度很快,物件辨識必須非常即時,短時間內就能辨識出車輛,並能持續追蹤,計算車速。換句話說,這個技術對物件的偵測必須「快、狠、準」。此外,因為影像資料不斷產生,如果把資料都上傳雲端運算,不但比較耗時,也會給雲端電腦帶來太大負擔,因此這個偵測技術還得做到一件事──計算量必須夠小,小到可裝在十字路口監視器上的小型計算器, 即可完成物件偵測的任務。
要做到交通路況的即時分析,必須有一種速度快、能精準辨識,但又可應用在生活小型計算器的物件偵測技術。
YOLOv4 演算法就做到不可能的任務!它是目前世界最快、最精準的物件偵測演算法,又能小到放在十字路口的監視器內,已實際應用於如「智慧城市交通車流解決方案計畫」,即時偵測車輛、停等車列、車速等等 。
物件辨識的阿基里斯腱:梯度消失問題
怎麼辦到的?首先,王建堯著手研究著名物件偵測系統 YOLOv3 ,「我們想找出建立物件偵測系統時,哪個步驟最關鍵?如果改善,效率和精確度會提升最多?」廖弘源強調:「雖然是工程問題,但我們要把科學思考帶進來。」
先來認識物件偵測技術。它是卷積神經網路(Convolutional Neural Network, 簡稱CNN),具許多網路層,每層負責抽取某些圖像特徵。一個輸入的影像通過層層層層層層……分析,最後找出最有可能的答案。理論上,層數越多,判斷結果應該越精確。
▲ 先教電腦定義每個影像的值,再透過神經網路的層層非線性函數運算,判斷影像最可能為哪個數字,信心水準比值最高者為答案。(Source:李宏毅)
訓練卷積神經網路的方法是:先倒入大量已標記正確答案的學習材料(如標記好各種車輛的圖片),讓機器學習如何判斷。每次機器判斷結果與正確答案不符,就將這個資訊回饋到前面網路層,調整每層參數,以期下次達到更準確的判斷。
那麼,哪步改善後可大幅提升表現?王建堯找到的關鍵是:學習的回饋過程。當卷積神經網路的網路層數愈多,在訓練階段因回饋計算方式,每回傳一層就會損失一些資訊,越前面的網路層學到的東西越少,稱為「梯度消失問題」(vanishing gradient problem)。
為了解決梯度消失問題,前人曾經提出 ResNet、DenseNet 等卷積神經網路,簡單來說,即是將後面資料備份後往前「跳級」傳遞。以 ResNet 為例,可想像成「含水傳話」,從最後一個人往前傳,愈前面的人資訊愈缺失。但如果最後一層開始,每層都備份錄音,再把錄音跳過一層直接往前傳,那麼前面所有層都可接收資訊,前面網路層就不會學不到東西。
▲ 上圖為原始的卷積神經網路(CNN),假設只有 3 層,資料回傳過程會逐層遞減,稱為梯度消失問題。下圖為改良版 ResNet,從最後一層開始,每層都備份,再把備份越過一層「跳級」傳遞,前面網路層就能接收到後面的資訊。(Source:王建堯)
然而 ResNet 有太多重複拷貝,不但浪費計算量,且不同層的參數學習重複多餘的資訊,換句話說,每層能學到的東西都差不多。「是否有更好的方式,不改參數量,讓機器運算變快,省下來的資源(參數)還能讓機器多學一點,提高精確度?」廖弘源說。
不只最快,還要最精準
2019 年年初,廖弘源與王建堯團隊首先研發出局部殘差網路 PRNet(partial residual networks,PRNet),將資訊「分流」,減少無謂計算量,使運算速度增加兩倍。「一開始做出 PRNet,我還是覺得效果不夠好。雖然減少計算量,大幅加快計算速度,但正確率和原本相比並沒有提升太多。」廖弘源自信的說:「我覺得這樣沒什麼意思,因為我們的目標,是做出全世界最好的物件偵測技術!」
2019 年 11 月,在 PRNet 的基礎上,緊接著研發出跨階段局部網路 CSPNet(cross stage partial network,CSPNet),利用分割─分流─合併路徑,成功做到大幅減少計算量,又增加學習多元性的目標。
從 PRNet 與 CSPNet,一步步把物件偵測計算量減低,但學習卻更多元,因此也得到更高精確度。
▲ 以上為 CSPNet 簡化結構的一部分,三色箭頭代表機器學習過程,後面資料如何回饋往前傳。設計重點在於資訊分流與多了過渡層(Transtion),讓回饋的學習資訊在分流後產生差異,提高每網路層參數的利用率,目標是讓機器學到更多樣東西,提高判斷精確度。另一方面因資料分流的關係,有部分直接往後傳,不經過分析計算,使整個計算量變少,運算速度也因此加快。(Source:王建堯)
「我們發表 CSPNet 之後,吸引了 YOLO 技術的維護者博科夫斯基(Alexey Bochkovskiy)的注意」,廖弘源說。他們很快與博科夫斯基(Alexey Bochkovskiy)展開合作,將 CSPNet 用於開發新一代 YOLO,並於今年 4 月發表 YOLOv4,成為目前全世界最快、最準的物件偵測技術,引爆全球 AI 社群。廖弘源笑說:「我們 4 月發表的論文,短短不到 3 個月,閱讀次數就超過 1,400 次,比我以往發表的任何論文都多。」關鍵技術正是 CSPNet。
此外,由於 YOLOv4 技術開源,各式各樣的應用也如雨後春筍般快速出現。舉例來說,YOLOv4 可即時偵測人們的社交距離,或是快速判斷路上行人有沒有戴口罩。
▲ 計算社交距離。
YOLO v4 甚至能辨識並捕捉滑雪中的人,廖弘源進一步解釋:「滑雪的人姿勢以及運動軌跡都不斷變換,甚至可能拋物線飛起,偵測難度相當高,但 YOLOv4 都能追蹤非常精準。」
▲ 捕捉滑雪運動的人。
帶學生的第一要求:把科學帶進來
中研院資訊所所長廖弘源長期研究多媒體視訊處理,從雞尾酒浮水印到臉部資料庫、數位化影片修補等,再到這次 YOLOv4 物件偵測技術,研究成果卓越。每項成果背後,都是廖弘源帶領資訊所前後屆學生一起努力的成果。
想在廖弘源的實驗室工作,可不是件輕鬆的事。他說:「做研究,不該只想著工程問題,應該本著科學家的精神,找出最具科學價值的關鍵下手。」許多學生一到廖弘源的實驗室,必須將過去狹隘、僵化的工程解題模式打掉重練,重新以科學看待問題。例如本次 YOLOv4 的成功關鍵,即在於一開始問了個好問題,找到最值得改善的環節。
不論面對何種問題,我的第一個要求,就是把科學帶進來。
儘管治學甚嚴,個性海派的廖弘源和學生也有亦師亦友的關係。他喜歡和學生一起找出好的研究議題後,一起埋首投入研究工作的熱血感,也喜歡在研究遭遇瓶頸時,與學生一起「大吃一頓解憂愁」。如今學生遍布國際級知名公司與研究單位,持續發揮「廖式思考」的深刻影響力,開發更多如 YOLOv4 頂尖的科研成果。
雖然團隊屢屢創造具商機的研究成果,但廖弘源對獎項或是申請專利等卻看得很淡。「我的目的本來就不是賺錢,」廖弘源說:「我只希望我們對世界的好奇與探索,能真正轉化為對人類的貢獻。」
▲ 左起為義隆電子葉儀皓董事長、中研院周美吟副院長、中研院資訊所廖弘源特聘研究員、中研院資訊所王建堯博士後研究員、科技部前瞻司楊琇雅司長、台大人工智慧研究中心陳信希主任、杜維洲執行長。(Source:中研院秘書處)
- Enrich Variety of Layer-wise Learning Information by Gradient Combination
- CSPNet: A New Backbone that can Enhance Learning Capability of CNN.
- YOLOv4: Optimal Speed and Accuracy of Object Detection
(作者:郭雅欣、黃曉君;本文由 研之有物 授權轉載;首圖來源:pixabay)