日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

复现AVOD

發布時間:2024/8/1 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 复现AVOD 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

復現過程主要參考https://zhuanlan.zhihu.com/p/87136172 這位博主

之前跟著官方github(https://github.com/kujason/avod)
環境一直配置不好,之后直接使用博主提供的yaml配置文件,之后進行略微調整即可

與博主不同的是,我使用的系統是CentOS。

我把博主的文章搬過來:

一、環境搭建
我使用的系統是ubuntu 16.04,用anaconda搭建的虛擬環境,至于anaconda在ubuntu上怎樣安裝,大家可以自己在網上查,教程很多。

安裝完anaconda以后,anaconda中搭建avod運行環境有兩種方法:

(注意,這兩種方法選擇一種就可以,別兩種全做了)

  • 使用我導出的環境配置復制環境
    anaconda 可以把當前環境所裝的軟件導出到一個配置文件中,有了這個配置文件,就可以在別的電腦上通過導入配置文件的的方式讓ananconda自動安裝該環境中所有的軟件。
  • 具體步驟為:

    1)下載我導出的配置文件。

    文件放在百度網盤里(鏈接:https://pan.baidu.com/s/1s5sUiz6XXlIa1WCJJ065uA, 提取碼:fciq),文件名稱是avod.yaml

    2)導入配置文件,復制環境

    在終端進入avod.yaml配置文件所在的文件夾,輸入下面的命令即可完成環境復制。復制過程中會下載和安裝軟件,耐心等它安裝完就行。

    conda env create -f avod.yaml
  • 單獨安裝各個軟件
    具體步驟為:
  • 1)創建anaconda環境

    在終端輸入如下指令

    conda create -n avod python=3.5

    2)按順序安裝軟件

    按順序逐行執行以下命令就行

    conda install tensorflow-gpu=1.3.0 conda install matplotlib conda install py-opencv conda install pandas conda install pillow conda install scipy conda install sklearn

    ---------------重要的分割線---------------

    最后別忘了進入創建好的環境,再執行后面的操作,進入環境的指令為

    conda activate avod

    二、下載代碼并配置工程

  • 下載代碼
    代碼可以使用原作者的代碼,也可以使用我注釋的代碼,注釋內容暫時還不多,會持續更新。
  • 1)使用原作者代碼

    下載鏈接:https://github.com/kujason/avod

    下載之后別忘了執行指令下載依賴庫,指令為:

    git submodule update --init --recursive

    2)使用注釋版代碼

    下載鏈接:https://github.com/Little-Potato-1990/avod_Re
    (這里我依然使用原作者的代碼,沒有使用注釋版代碼,主要原因是下載不下來)
    2. 編譯代碼
    代碼中需要編譯的有兩項:

    1)wavedata依賴庫

    它的目錄在 wavedata/wavedata/tools/core/lib 中,在lib文件夾下按順序執行下列指令

    cmake src make

    2)protobuf文件

    protobuf是google的一個開源的用來做數據通信的庫,關于它的介紹大家有興趣可以去網上查。在avod/protos文件中有很多.proto文件,這些文件定義了通信用的數據內容和格式,但是想在程序中使用他們,得使用protobuf對他們進行編譯,給每個.proto文件生成一個python文件。編譯也很簡單,執行下面一條指令就行

    protoc avod/protos/*.proto --python_out=.

    執行中之后會提示你有語法錯誤,不用管他,看avod/protos文件中是否生成了python文件,只要生成了,這一步就可以結束了。

  • 配置環境變量
    工程是基于python編寫的,定義了很多模塊,這些模塊之間需要互相調用,但各個模塊又是相對獨立的,所以需要把各個模塊的路徑添加到python的環境變量中,以方便他們之間互相調用。
  • 在終端輸入這條指令打開設置環境變量的文件

    sudo gedit ~/.bashrc

    在文件的最后輸入添加下面兩行(注意,這里面的路徑是絕對路徑,這是我電腦里的路徑,大家要根據自己電腦的存放路徑來改)

    export PYTHONPATH=$PYTHONPATH:'/home/rq/project/project_detect/avod_Re/wavedata' export PYTHONPATH=$PYTHONPATH:'/home/rq/project/project_detect/avod_Re'

    配置環境變量以后,為了讓它生效,需要重新打開終端,然后再使用如下指令重新進入anaconda環境

    conda activate avod
  • 準備數據集
    作者使用KITTI數據集來驗證算法,我們來看下具體的步驟
  • 1)下載數據集

    KITTI數據集的下載路徑為:http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d

    數據不用全部下載,只需要下載下圖中框出的這些就可以


    **

    **

    (這里的數據集,我也沒有在官網上下載,關鍵問題是,下載不下來 我直接用了另一個博主的網盤文件,我拷貝到自己網盤了,鏈接放下面鏈接:https://pan.baidu.com/s/1oI6pT6NVgKoMkpHh6XQxNQ 提取碼:1edi 自取)

    **

    **
    2)下載附加數據文件

    這個附加數據文件包括兩部分:

    trainval.txt、train.txt、val.txt:這三個文件幫助程序把訓練數據又重新分為訓練集和驗證集
    planes:這個是作者自己生成的路面平面擬合參數,它的用處等我們后面講詳細代碼時再講
    以上文件我放在了自己的百度網盤里,鏈接: https://pan.baidu.com/s/1s5sUiz6XXlIa1WCJJ065uA, 提取碼:fciq(細心的讀者可能已經發現了,和剛才anaconda環境配置文件的鏈接是一樣的,我把它們放在一起了)

    3)整理存放目錄

    程序讀取文件是按照一定的目錄結構讀取的,它們的目錄結構如下圖:

    要注意的是,testing和training中都有image_2、velodyne兩個文件夾,但它們的內容是不同的,分別是測試集和訓練集中的內容,而它們都有的calib、label_2兩個文件夾中的內容是相同的。

    object文件夾放在~/Kitti/文件夾中,這是程序默認的,如果不想放這個目錄里,得修改程序,所以我們先不找這個麻煩了,就先放這了。
    (博主的數據集結構這個圖搞得特別好,有一點不同的是,我testing文件夾下沒有放label_2)
    5. 生成Mini-batch
    Mini-batch 是 RPN 所需要的東西,在終端中輸入如下指令即可生成

    python scripts/preprocessing/gen_mini_batches.py

    執行過程需要幾分鐘,等一等吧。

    如果成功,會在avod/data目錄下生成label_clusters和mini_batches兩個文件夾。

  • 訓練
    一條指令啟動訓練
  • python avod/experiments/run_training.py --pipeline_config=avod/configs/pyramid_cars_with_aug_example.config --device='0' --data_split='train'

    在我的電腦配置下需要執行24小時左右,我的電腦GPU型號是:GTX 1070Ti
    (我的配置是RTX 2080,但是運行到一般服務器斷了,就不想再搞了,繼續下面的吧。)
    去忙點別的吧,等訓練完了再過來。

  • 驗證
    執行如下指令
  • python avod/experiments/run_evaluation.py --pipeline_config=avod/configs/pyramid_cars_with_aug_example.config --device='0' --data_split='val'

    這時候會提示如下信息

    INFO:tensorflow:No new checkpoints found in /home/avod/avod/data/outputs/pyramid_cars_with_aug_example/checkpoints. Will try again in 30 seconds

    這是作者的問題,我們在程序里搜索pyramid_cars_with_aug_example,然后把它改成你自己outputs下的真實文件夾名字就行

    在我的電腦配置下需要執行30小時左右

    接著等吧

    執行完以后使用下面的指令調用tensorboard畫出訓練過程中的各個指標的變化趨勢

    cd avod/data/outputs/pyramid_cars_with_aug_example tensorboard --logdir logs

    注意,這只是調用了tensorboard,輸入指令以后終端會給出如下提示

    這告訴我們,如果想看變化趨勢的曲線,需要在瀏覽器中打開終端提示的網址,我的曲線如下圖所示

    我們可以看到,里面有rpn_loss、avod_loss等指標的變化趨勢(感覺跳動有點大)

    (這里,我們還可以在本地的瀏覽器上進行瀏覽,服務器地址+6006即可。如192.168.a.b:6006,效果見下圖)

    (后面的沒有做測試了,后續有時間再說…………)
    8. Inference
    執行run inference,執行這一步是干啥的,暫時還不清楚

    python avod/experiments/run_inference.py --checkpoint_name='pyramid_cars_with_aug_example' --data_split='val' --ckpt_indices=120 --device='0'
  • 查看結果
    這一步是生成帶預測框的2d圖片,輸入指令
  • python demos/show_predictions_2d.py

    會生成圖片,自動存放在文件夾avod/data/outputs/pyramid_cars_with_aug_example/predictions/images_2d/predictions/val/120000/0.1中

    這里放幾張圖片看下效果吧

    到這里,就完成網絡所有的訓練和使用流程了。

    總結

    以上是生活随笔為你收集整理的复现AVOD的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。