<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          華錄杯數(shù)據(jù)湖大賽:車道線識(shí)別 Top5方案

          共 5980字,需瀏覽 12分鐘

           ·

          2021-01-06 11:00

          點(diǎn)擊上方AI算法與圖像處理”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時(shí)間送達(dá)

          比賽名稱:2020中國(guó)華錄杯·數(shù)據(jù)湖算法大賽—定向算法賽(車道線識(shí)別)

          比賽鏈接:https://dev.ehualu.com/dev/home/competition/competitionDetail?competitionId=1&source=DC

          文章內(nèi)容:決賽第五名方案,成績(jī)?yōu)?9.55

          代碼框架:使用PaddleSeg動(dòng)態(tài)圖和AI Stdudio,低代碼量快速迭代打比賽。

          分享鏈接:https://aistudio.baidu.com/aistudio/projectdetail/1248023

          賽題說明

          • 競(jìng)賽任務(wù)

          要求參賽者利用提供的訓(xùn)練數(shù)據(jù),設(shè)計(jì)一個(gè)車道線檢測(cè)和分類模型,來檢測(cè)測(cè)試數(shù)據(jù)中車道線的具體位置和類別。

          樣例示范
          • 數(shù)據(jù)集描述

          本次賽題數(shù)據(jù)集包括x張手機(jī)拍攝的道路圖片數(shù)據(jù),并對(duì)這些圖片數(shù)據(jù)標(biāo)注了車道線的區(qū)域和類別,其中標(biāo)注數(shù)據(jù)以灰度圖的方式存儲(chǔ)。

          標(biāo)注數(shù)據(jù)是與原圖尺寸相同的單通道灰度圖,其中背景像素的灰度值為0,不同類別的車道線像素分別為不同的灰度值,加上背景共有20類。

          原始數(shù)據(jù)
          標(biāo)注數(shù)據(jù)(灰度值放大20倍)
          • 評(píng)審規(guī)則

          與通常的圖像分割任務(wù)一樣,采用 mIoU 來評(píng)估結(jié)果。對(duì)于每一類,利用預(yù)測(cè)圖像和真值圖像,

          數(shù)據(jù)分析

          • 圖像觀察

          觀察圖像數(shù)據(jù),發(fā)現(xiàn)圖像的上方一半?yún)^(qū)域是拍攝的建筑、天空等非路面信息,這些區(qū)域的像點(diǎn)都屬于背景類別。這部分區(qū)域不必訓(xùn)練和預(yù)測(cè)。設(shè)定訓(xùn)練圖像尺寸為1280X360

          • 類別統(tǒng)計(jì)

          利用PaddleSeg提供的工具,檢查數(shù)據(jù)時(shí)發(fā)現(xiàn)各個(gè)類別數(shù)據(jù)不均衡,而且多個(gè)類別為零,選擇忽略。

          Doing?label?pixel?statistics:?
          (label?class,?total?pixel?number,?percentage)?=?
          [(0,?17982127059,?0.9762),?
          (1,?104617183,?0.0057),?
          (2,?9012630,?0.0005),?
          (3,?121541931,?0.0066),?
          (4,?8284314,?0.0004),?
          (5,?2283958,?0.0001),?
          (6,?5635328,?0.0003),?
          (7,?4816484,?0.0003),?
          (8,?27060729,?0.0015),?
          (9,?24371550,?0.0013),?
          (10,?8857308,?0.0005),?
          (11,?308858,?0.0),?
          (12,?1328788,?0.0001),?
          (13,?5940530,?0.0003),?
          (14,?1795084,?0.0001),?
          (15,?632607,?0.0),?
          (16,?621556,?0.0),?
          (17,?307548,?0.0),?
          (18,?178659,?0.0),?
          (19,?110066696,?0.006)]
          • 數(shù)據(jù)集 數(shù)據(jù)集是將初賽和復(fù)賽數(shù)據(jù)整合起來,9:1劃分訓(xùn)練集和驗(yàn)證集

          • 數(shù)據(jù)增強(qiáng)

          采用隨機(jī)尺度縮放、隨機(jī)變形等增強(qiáng)方式

          方案思路

          • 思路來源

          英偉達(dá)的分層多尺度注意機(jī)制論文(https://arxiv.org/pdf/2005.10821.pdf),小尺度的物體(細(xì)桿、人)的分割效果,在高分辨率的圖像(2.0x)上分割效果更好;而道路則在低分辨率(0.5x)的圖像上分割效果更好。

          2.端到端模型設(shè)計(jì)

          一個(gè)Backbone,多個(gè)分割頭早期融合,多尺度訓(xùn)練和融合預(yù)測(cè)

          實(shí)現(xiàn)方式

          • 提取特征的backbone

          采用HRNet 通過并行多個(gè)分辨率的分支,加上不斷進(jìn)行不同分支之間的信息交互,同時(shí)達(dá)到強(qiáng)語義信息和精準(zhǔn)位置信息的目的。

          使用了PaddleSeg HRNet_W48預(yù)訓(xùn)練模型(https://bj.bcebos.com/paddleseg/dygraph/hrnet_w48_ssld.tar.gz)

          • 語義頭
          采用FCNHead
          • 注意力頭
          采用OCRHead

          代碼說明

          模型

          模型是在FCN基礎(chǔ)上修改為FCN2,源文件為/home/aistudio/PaddleSeg/dygraph/paddleseg/models/fcn2.py

          1. 在FCN分割頭基礎(chǔ)增加OCR分割頭

          2. 融合FCN和OCR分割頭的結(jié)果:

          • 模型初始化時(shí):
          FCN分割頭:self.head = FCNHead(num_classes, backbone_indices, backbone_channels,channels)

          增加了OCR分割頭:self.Ohead = OCRHead(num_classes,backbone_channels)

          前向計(jì)算時(shí):

          HrNet特征提?。篺eat_list = self.backbone(x)
          FCN分割:logit_list = self.head(feat_list)
          Ocr分割:logit_list1 = self.Ohead(feat_list)
          兩個(gè)分割頭的結(jié)果平均融合:avg_logit=(logit_list[0]+logit_list1[0])/2

          訓(xùn)練過程

          配置文件為/home/aistudio/PaddleSeg/dygraph/benchmark/fcn2.yml

          單尺度訓(xùn)練過程分為三次:

          1. 第一次,參數(shù)為
          iters:?40000
          learning_rate:0.01 ??
          decay:
          ??type:?poly
          ??power:?0.9
          ??end_lr:?0.0
          optimizer:sgd,
          crop_size:?[1280,?360]

          預(yù)訓(xùn)練模型為https://bj.bcebos.com/paddleseg/dygraph/hrnet_w48_ssld.tar.gz,單卡需要二十個(gè)小時(shí)左右。

          1. 第二次,參數(shù)為
          iters:?40000
          learning_rate:0.01 ??
          decay:
          ??type:?poly
          ??power:?0.9
          ??end_lr:?0.0
          optimizer:sgd,
          crop_size:?[1280,?360]

          預(yù)訓(xùn)練模型為第一次訓(xùn)練輸出的best_model中的模型,單卡需要二十個(gè)小時(shí)左右;

          1. 最后一次,參數(shù)為
          iters:?10000
          learning_rate:0.001 ??
          decay:
          ??type:?poly
          ??power:?0.9
          ??end_lr:?0.0
          optimizer:sgd,
          crop_size:?[1280,?360]

          預(yù)訓(xùn)練模型為第二次訓(xùn)練輸出的best_model中的模型,單卡需要十個(gè)小時(shí)左右。

          由于時(shí)間關(guān)系,兩個(gè)尺度的訓(xùn)練未完成,分別是用crop_size: [1280, 540]和crop_size: [1280,720],訓(xùn)練也可按如上過程進(jìn)行。復(fù)賽B榜提交的結(jié)果是單模型的結(jié)果。

          運(yùn)行說明

          • AiStudio環(huán)境
          • python 3.7
          • PaddlePaddle 2.0.0rc
          • PaddleSeg 0.6

          代碼在/home/aistudio/PaddleSeg/dygrap目錄下,數(shù)據(jù)在/home/aistudio/data目錄下。

          本NoteBook可以直接運(yùn)行訓(xùn)練,也可以生成版本后,通過創(chuàng)建任務(wù)進(jìn)行訓(xùn)練。

          使用腳本任務(wù)進(jìn),訓(xùn)練、評(píng)估和預(yù)測(cè)三步不可同時(shí)進(jìn)行,導(dǎo)入任務(wù)執(zhí)行結(jié)果,預(yù)測(cè)結(jié)果輸出。

          #解壓數(shù)據(jù)集。數(shù)據(jù)集是將初賽和復(fù)賽數(shù)據(jù)整合起來
          !unzip?/home/aistudio/data/data61166/Dataset.zip?-d?/home/aistudio/data/
          #使用PaddleSeg動(dòng)態(tài)圖,安裝動(dòng)態(tài)圖環(huán)境
          %cd?/home/aistudio/PaddleSeg/dygraph
          !export?PYTHONPATH=`pwd`
          !pip?install?-r?requirements.txt
          #切分?jǐn)?shù)據(jù)集。生成訓(xùn)練集文件列表、驗(yàn)證集文件列表、測(cè)試集文件列表
          import?numpy?as?np
          import?os


          base?=?'/home/aistudio/data/Dataset/'

          with?open('/home/aistudio/data/Dataset/labels.txt',?'w')?as?f:
          ????for?i?in?range(20):
          ????????f.write(str(i)+'\n')

          imgs?=?os.listdir(base+'train/')
          np.random.seed(5)
          np.random.shuffle(imgs)
          val_num?=?int(0.1?*?len(imgs))

          with?open(os.path.join('/home/aistudio/data/Dataset/train.txt'),?'w')?as?f:
          ????for?pt?in?imgs[:-val_num]:
          ????????img?=?base+'train/'+pt
          ????????ann?=?base+'train_label/'+pt.replace('.jpg',?'.png')
          ????????info?=?img?+?'?'?+?ann?+'\n'
          ????????f.write(info)

          with?open(os.path.join('/home/aistudio/data/Dataset/val.txt'),?'w')?as?f:
          ????for?pt?in?imgs[-val_num:]:
          ????????img?=?base+'train/'+pt
          ????????ann?=?base+'train_label/'+pt.replace('.jpg',?'.png')
          ????????info?=?img?+?'?'?+?ann?+?'\n'
          ????????f.write(info)

          with?open(os.path.join('/home/aistudio/data/Dataset/test.txt'),?'w')?as?f:
          ????for?pt?in?os.listdir(base+'testB/'):
          ????????img?=?base+'testB/'+pt
          ????????info?=?img?+??'\n'
          ????????f.write(info)
          #訓(xùn)練
          !export?CUDA_VISIBLE_DEVICES=0
          !python?train.py?--config?/home/aistudio/PaddleSeg/dygraph/benchmark/fcn2.yml?--do_eval?--save_interval?5000?--save_dir?/home/aistudio/PaddleSeg/dygraph/output/fcn2?>fcn2-train-1122.log
          #評(píng)估
          !export?CUDA_VISIBLE_DEVICES=0
          !python?val.py?--config?/home/aistudio/PaddleSeg/dygraph/benchmark/fcn2.yml?--model_path?/home/aistudio/PaddleSeg/dygraph/output/model.pdparams?>val.log
          #預(yù)測(cè)?PaddleSeg/dygraph/paddleseg/core/predict.py?在原版本修改了,只輸出單通道灰度圖
          #訓(xùn)練結(jié)束后,根據(jù)模型所在路徑,修改后進(jìn)行預(yù)測(cè)。
          #復(fù)賽結(jié)果所用模型在/home/aistudio/PaddleSeg/dygraph/output/model.pdparams
          !export?CUDA_VISIBLE_DEVICES=0
          !python?predict.py?--config?/home/aistudio/PaddleSeg/dygraph/benchmark/fcn2.yml?--model_path?/home/aistudio/PaddleSeg/dygraph/output/model.pdparams?--image_path?/home/aistudio/data/Dataset/testB?--save_dir?/home/aistudio/PaddleSeg/dygraph/output/fcn2-1120/result
          #多尺度預(yù)測(cè)融合。因多尺度訓(xùn)練未完成,無需執(zhí)行此步
          #多尺度訓(xùn)練結(jié)束后,根據(jù)模型所在路徑,進(jìn)行多尺度預(yù)測(cè)融合
          !export?CUDA_VISIBLE_DEVICES=0
          !python?mul_pred.py?--config?/home/aistudio/PaddleSeg/dygraph/benchmark/fcn2.yml?--model_path?/home/aistudio/PaddleSeg/dygraph/output/model.pdparams?--image_path?/home/aistudio/data/Dataset/testB?--save_dir?/home/aistudio/PaddleSeg/dygraph/output/fcn2-1120/mp_result

          總結(jié)

          單模型多分割頭早期融合效果較好,還做過一個(gè)Gcnet和ANN融合的版本Gcnet2,相應(yīng)的模型和配置文件與上面fcn2的目錄相同,在本數(shù)據(jù)集也有一定的提升。

          多尺度預(yù)測(cè)方法有待進(jìn)一步驗(yàn)證。復(fù)賽提交的結(jié)果只是Fcn2的結(jié)果,因?yàn)闀r(shí)間所限,多尺度訓(xùn)練沒有完成。在其他數(shù)據(jù)集上測(cè)試過,有一定的提升效果。

          這是圖像分割7日打卡營(yíng)學(xué)習(xí)后,參加的第一個(gè)正式比賽,全程使用AI Studio和PaddleSeg。

          非常感謝百度的老師們和開發(fā)者。

          可視化分割圖片

          下載1:何愷明頂會(huì)分享


          AI算法與圖像處理」公眾號(hào)后臺(tái)回復(fù):何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經(jīng)典工作的總結(jié)分析


          下載2:終身受益的編程指南:Google編程風(fēng)格指南


          AI算法與圖像處理」公眾號(hào)后臺(tái)回復(fù):c++,即可下載。歷經(jīng)十年考驗(yàn),最權(quán)威的編程規(guī)范!



          下載3 CVPR2020

          AI算法與圖像處公眾號(hào)后臺(tái)回復(fù):CVPR2020,即可下載1467篇CVPR?2020論文
          個(gè)人微信(如果沒有備注不拉群!
          請(qǐng)注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱


          覺得不錯(cuò)就點(diǎn)亮在看吧


          瀏覽 62
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久你懂的 | 成人视频在线免费播放 | 国产又黄又爽又粗又大免费视频 | 777奇米狠狠色综合 | 精品人妻一区二区三区在 |