一場辦了15年的比賽,爲什麼讓一批又一批年輕開發者如此着迷?

 

一樣的青春,每一個人有着不一樣的經歷。python

 

但在被譽爲技術界「奧斯卡」之稱的百度之星大賽上,有一羣年輕人卻有着一樣的故事,不論是身在象牙塔,仍是已位於科研前線,在開發賽道上表現出的技術實力,讓他們閃耀四方。git

 

今年百度之星的賽題是打造一款輕量級的目標檢測模型。這也是計算機視覺技術中最基本的任務之一,好比在關鍵點檢測、實例分割等方面都會在此基礎上進行,應用前景十分普遍。github

 

「這次比賽不只須要考慮mAP,同時考慮了Madds,兼顧精度與速度的要求。」剛剛結束的2019百度之星開發者大賽中得到第一名的Litchll隊長張鵬鬆這樣看待本次的賽題。因爲兼顧速度與精度,因此模型會很是適合嵌入式設備和手機,在此類設備中達到實時處理。在生活中也有很大的應用前景,好比能夠在手機中部署實現圖片識別、檢測、甚至美顏等;航拍無人機的圖像進行自動跟隨、障礙物識別等。json

 

 

張鵬鬆已經參加過兩次飛槳的比賽,飛槳也是越用越順手。網絡

 

他的團隊分工明確:文獻查閱與賽題分析、基礎模型復現和模型總體架構構建及訓練三個部分。在文獻查閱與賽題分析方面,主要的目的是分析賽題,根據評測指標去查閱最新的模型,而且統計下來各論文模型的數據,按照賽題的評分標準去計算論文級別的理論成績,最後從中選取比較好的模型。模型選取以後就要將基礎模型復現,這部分須要從選中的模型裏,按照論文數據或者開放出來的其它框架的代碼,利用飛槳去復現backbone或者總體模型,對於爲backbone的在imagenet上進行預訓練或者從其它框架裏轉換預訓練模型;模型總體架構的構建和訓練是最爲費時的一個,由於其須要負責整個代碼的框架制定訓練策略、數據增廣策略以及各類訓練調參。架構

 

「本次比賽主很是考驗目標檢測相關知識,好比常見的單階段目標檢測方法:SSD、Yolov三、Centernet等,雙階段目標檢測方法:Faster RCNN、ThunderNet等。」張鵬鬆提及比賽仍很激動,他爲了提升模型的泛化能力還作一些數據增廣,例如旋轉、鏡像、對比度、亮度等。爲了與更多飛槳開發者分享本次百度之星比賽的收穫,他將比賽代碼進行了開源並上傳至AI Studio中。框架

 

項目地址:優化

https://aistudio.baidu.com/aistudio/projectDetail/189267spa

 

01.net

簡介

 

Single Shot MultiBox Detector (SSD) 是一種單階段的目標檢測器。與兩階段的檢測方法不一樣,單階段目標檢測並不進行區域推薦,而是直接從特徵圖迴歸出目標的邊界框和分類機率。SSD 運用了這種單階段檢測的思想,而且對其進行改進:在不一樣尺度的特徵圖上檢測對應尺度的目標。以下圖所示,SSD 在六個尺度的特徵圖上進行了不一樣層級的預測。每一個層級由兩個3x3卷積分別對目標類別和邊界框偏移進行迴歸。所以對於每一個類別,SSD 的六個層級一共會產生 38x38x4 + 19x19x6 + 10x10x6 + 5x5x6 + 3x3x4 + 1x1x4 = 8732 個檢測結果。

 

SSD 能夠方便地插入到任何一種標準卷積網絡中,好比 VGG、ResNet 或者 MobileNet,這些網絡被稱做檢測器的基網絡。在這個示例中咱們使用 shufflenet。

 

在訓練時還會對圖片進行數據加強,包括隨機擾動、擴張、翻轉和裁剪:

 

  • 擾動: 擾動圖片亮度、對比度、飽和度和色相。

  • 擴張: 將原始圖片放進一張使用像素均值填充(隨後會在減均值操做中減掉)的擴張圖中,再對此圖進行裁剪、縮放和翻轉。

  • 翻轉: 水平翻轉。

  • 裁剪: 根據縮放比例、長寬比例兩個參數生成若干候選框,再依據這些候選框和標註框的面積交併比(IoU)挑選出符合要求的裁剪結果。

 

 也能夠採用一些其餘數據增廣方法:

 

InstaBoost:

 

 論文:https://arxiv.org/abs/1908.07801

 

 代碼:https://github.com/GothicAi/InstaBoost

  

RandAugment:

 

https://arxiv.org/pdf/1909.13719.pdf

 

https://github.com/tensorflow/tpu/blob/master/models/official/efficientnet/autoaugment.py

 

目錄:

 

| work |-- astar2019 |-- score.py |-- ... |-- ssd |-- train.py |-- mobilenet_ssd.py |-- ... |-- coco |-- train2017 |-- val2017 |-- test2017      |-- ...

 

02

解壓數據集

 

get_ipython().system('unzip -qo -d work/coco/ data/data7122/train2017.zip')get_ipython().system('unzip -qo -d work/coco/ data/data7122/val2017.zip')get_ipython().system('unzip -qo -d work/coco/ data/data7122/test2017.zip')get_ipython().system('unzip -qo -d work/coco/ data/data7122/annotations_trainval2017.zip')get_ipython().system('unzip -qo -d work/coco/ data/data7122/image_info_test2017.zip')

 

03

安裝相關依賴庫

 

get_ipython().system('pip install pycocotools')get_ipython().system('pip install ujson')

 

飛槳已發佈了圖像分類模型庫:

https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/image_classification

用戶能夠參照work/ssd/中的mobilenet_ssd、shufflenetv2_ssd.py、mobilenetv2_ssd.py等添加本身的backbone。

 

04

開始訓練

 

訓練策略採用了warmup,優化器採用的Momentum,用戶也能夠本身更改優化器,保存的預測模型會以圖片的height_width_xxx來命名:

 

get_ipython().system('python3 work/ssd/train.py --learning_rate 0.00001 --data_dir work/coco --epoc_num 220 --batch_size 32')

 

執行score

score模型的名字須要是height_width_xxx,默認300x300,--model_dir 爲預測模型地址:

 

get_ipython().system('python3 work/astar2019/score.py --model_dir model_snet/300_300_inference')

 

05

量化訓練

 

此部分用的是main_quant.py裏的量化方法,也能夠用PaddleSlim裏的方法,詳見work/paddleslim,同時PaddleSlim也能夠進行剪枝等操做:

 

get_ipython().system('python work/ssd/main_quant.py --init_model model_snet/best_model --model_save_dir model_snet/snet_int8 --mode train')

 

 執行量化後的評測:

 

get_ipython().system('python3 work/astar2019/score.py --model_dir model_snet/snet_int8/300_300_int8_inference')

 

賽以至用,將比賽代碼開源,將比賽成果逐步落地,是飛槳參賽者的心願。

 

殺入決賽的Seigato隊長顧竟瀟認爲,這次的比賽做品能夠快速落地並移植到特定嵌入式終端。並且因爲計算量小,採用了8比特量化,也能夠應用到車輛行車記錄儀、安防監控等低功耗產品中。wildkid1024隊長劉澍波則更看重數據,這次賽題中須要對小目標進行數據加強,經過調整圖片的色調、隨機裁剪放縮都是很好的方式。在比賽開始前,他對飛槳框架的上手難度有過懷疑,可是經過比賽他發現,徹底是多慮了。飛槳的設計理念有點相似於C++,須要先定義好參數和運算,而後經過編譯的方式生成計算圖,最後實際運行的時候再把數據提供出來,這種設計會很是方便於部署。

 

 

自2005年到如今,百度之星已經走過了15年。一批批的參賽選手,他們或身居校園,憧憬着自身的發展;或已經投身一線,在業務領域有了一番做爲。但不管是哪種,他們是年輕的,就像年輕的飛槳同樣,開放、兼容、自主、創新。一場比賽或許不能讓世界有所改變,但孜孜不倦、矢志不渝的堅持,必定可以讓更多的人可以享受到AI發展的紅利,也能讓中國的AI技術人才找到本身的舞臺。

 

這樣的將來,必然會更加精彩。

>> 訪問 PaddlePaddle 官網,瞭解更多相關內容

相關文章
相關標籤/搜索