臺灣誕生的世界級物件偵測模型YOLOv4,去年下半年更推出第七代的YOLOv7,不只速度和準確度再次超越同期所有SOTA等級物件偵測模型,證明第七代模型3大新技術的領先之外,還有一個深層影響,也就是串起PyTorch和Darknet兩大框架的生態圈,來兼顧模型研發人員和業界部署兩大族群的需求。
甚至,打造出這款模型的中研院資訊所所長廖弘源與中研院資訊所助研究員王建堯,不只發表模型論文(CVPR 2023)、公開YOLOv7程式碼,還特別發表YOLOv7使用的高效率網路架構ELAN理論,闡述模型背後的設計思維和新策略。這些公開論文和程式碼,就像是個指南,提供AI研發者設計電腦視覺模型的新視角。中研院團隊希望成為點燈的人,將證實可行的新理論和程式碼公開出來,盼承先啟後擦出新火花。
兼顧研發與部署需求,串起2大生態圈
在深度學習圈,TensorFlow和PyTorch是目前使用率最高的兩大主流開發框架,許多先進技術和套件都用這兩種框架開發,像是Transformer模型和近期爆紅的生成式AI模型。也因為這兩種框架擁有大量使用者,不少開發工具和程式語言套件也都支援TensorFlow和PyTorch,因此形成龐大的研發生態圈。
在YOLO物件偵測模型歷代模型中,多數版本採用Darknet框架開發。有別於以Python為主要語言開發的TensorFlow和PyTorch,Darknet的主要開發語言是C++和CUDA。這是因為許多裝置的慣用語言是C,物件偵測模型同樣採用C語言開發,就更容易部署到這些裝置上,來執行偵測任務。也因如此,Darknet的使用者多為業界人士。
儘管中研院團隊最初以Darknet開發第4代YOLO模型,這次,他們一改作風,採用PyTorch框架來開發YOLOv7,同時也提供一套轉換器,能將PyTorch的YOLOv7模型版本,轉換為與Darknet相容的版本,兼顧研發和部署兩大需求。
廖弘源指出,物件偵測技術發展快速,大多數先進技術開發者,都使用主流深度學習框架。因此,要做出影響世界的模型,除了要具備關鍵的科學技術外,「還得讓這些好用的東西能互補,加入到這個系統,」他說。這是這次團隊轉換策略的原因。
公開設計新思維,盼見更多新火花
不只通吃技術研發和技術部署生態圈,團隊還進一步公開模型設計新思維,來激發更多電腦視覺技術研發方法。
「YOLOv7是整個大架構的調整,不是小小的twist。」廖弘源一句話點出第七代模型的特別之處,因為,YOLOv7一口氣採用包含新訓練策略在內的3大新技術,這些新技術,都是團隊突破傳統思維的設計,包括更輕巧更有效率的網路架構ELAN、可用來執行多任務的模型YOLOR,以及打破模型優化窠臼的Trainable bag-of-freebies訓練方法。「當時我就告訴建堯,我們不只要發表新模型,還要將設計概念說明清楚,讓大家知道模型設計的新策略和思維,」廖弘源說。
也因此,團隊不只發表YOLOv7模型論文,還針對ELAN的設計方法,另外寫了篇設計理論(Designing Network Design Strategies Through Gradient Path Analysis)並公開。這篇論文聚焦ELAN的梯度路徑分析(Gradient path analysis)方法,這個方法是ELAN高效率的一大關鍵,也是突破傳統設計思維的一例。
因為,許多改良模型的方法會從特徵萃取和特徵整合下手,設計一套方法,來讓模型提取任務所需的特徵,再整合這些特徵來得到預測結果。但王建堯認為,這是傳統機器學習特徵工程的思維,因為就深度學習和類神經網路來說,特徵是由整個網路學習出來的,因此難以用取特定特徵再整合的方式來優化。於是,王建堯思考,既然特徵是靠學習而來的,不如直接從驅使網路學習的動力:梯度來下手,直接分析梯度路徑,來告訴類神經網路需要學習哪些資訊。而YOLOv7的成功,證實梯度路徑分析的可行性,也意味著新設計思維的可行。
中研院團隊發表模型同時,也公開了設計理論和程式碼,不只影響技術使用者群,讓人更清楚如何善用模型之外,還能啟發技術研發者群,參考經驗證的新思維,來激發更多新想法。這是從根本來壯大AI生態圈的做法,也是繼續讓世界看見臺灣的另一種實踐。
版本小插曲更證明YOLOv7實力
主流物件偵測模型YOLO第七代在去年7月7日問世,「我們特別選在這個時間點發布,」YOLOv7共同開發者中研院資訊所所長廖弘源說。這個日期不只呼應第七代的七,還因應一件插曲。
因為,就在去年6月底,中研院團隊準備發表模型的最後階段,一封Email寄給了廖弘源和主要開發者中研院資訊所助研究員王建堯,以及YOLO系列維護者Alexey Bochkovskiy,影響了團隊原定的模型發布計畫。
這封Email來自中國電商集團美團,他們也打造一款物件偵測模型,宣稱比YOLO第五代和幾個主流物件偵測模型還要快且準,並以YOLOv6之名發表,因此來信告知中研院團隊與Alexey Bochkovskiy。
但當時,中研院團隊也以YOLOv6命名自己研發的模型,且已完成大部分開發工作,論文撰寫也進入尾聲。面對這封Email,團隊與Alexey Bochkovskiy商討,決定改名,以YOLOv7為名延後發表,避免大眾混淆。Alexey Bochkovskiy同時告知美團,雖然他們可以YOLOv6之名發布模型,但不會列入官方維護版本。
因為,他們認為,一個官方正式版本的發布,必須具備嚴謹的理論和實驗結果,也就是得在公認環境下,將自己的模型與SOTA模型比較,來驗證模型效能、說服大眾。Alexey Bochkovskiy在回覆美團的信件中表示,要納入官方版本模型,就得要有「Fair comparison」才行。
與此同時,出於好奇,王建堯也做了一次實驗,來比對YOLOv6與YOLOv7的效能。當時,他向國網中心申請,設置一個等同於美團宣稱的測試環境,來比較YOLOv6和YOLOv7不同版本的表現。
這個實驗為期數天,王建堯發現,在美團宣稱的環境下,也就是使用MSCOCO資料集、V100 GPU和batch=32的條件下,YOLOv6-n模型的推論時間為0.5毫秒,也就是每秒能處理2,000幀影像,平均精度(AP)為35.0%,而YOLOv7-tiny的推論時間是0.4毫秒,等於每秒能辨識2,500幀影像,平均精度為35.2%。
也因此,就模型推論速度來說,YOLOv7比YOLOv6快了25%,而就平均精度來說,YOLOv7則比YOLOv6高出0.2%。後來,王建堯也將實驗結果寫進YOLOv7論文中,並附上不同模型版本的實測圖表,來說明評比結果。
美團YOLOv6的出現,雖然影響中研院團隊的原定計畫,但也證明了YOLOv7的實力和模型設計方向。也因為YOLOv6突然出現,中研院團隊有機會進行比對實驗,並將最新數據納入論文中,讓人一目瞭然。中研院團隊最後也擇期在7月7日正式發表YOLO第七代模型。
熱門新聞
2024-08-14
2024-12-20
2024-12-22
2024-12-23
2024-12-24