中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. "); //-->

        博客專欄

        EEPW首頁 > 博客 > 實戰(zhàn) | 實時的目標檢測與識別簡單應用

        實戰(zhàn) | 實時的目標檢測與識別簡單應用

        發(fā)布人:CV研究院 時間:2021-06-14 來源:工程師 發(fā)布文章

        一、問題來源

        最近總是有很多入門的朋友問我,我進入計算機視覺這個領(lǐng)域難不難?是不是要學習很多知識?到底哪個方向比較好?

        1.jpg

        這些問題其實我也不好回答他們,只能衷心告訴他們,如果你對這領(lǐng)域特別感興趣,那你可以進來試試玩玩,如果試過了玩過了,覺得這不是你喜歡的領(lǐng)域,那你可以立馬退出,選擇你喜歡的領(lǐng)域方向。我個人一直認為,科研這個東西,真的是要有興趣愛好,這是你動力和創(chuàng)新的源泉。只有對自己選擇的領(lǐng)域有興趣,有動力深入挖掘,我覺得一定會做得很好,可能還會創(chuàng)造出許多意想不到的結(jié)果。

        如果現(xiàn)在你們?nèi)腴T的朋友,選擇了目標檢測類,你們可以沒事玩玩今天說的框架和網(wǎng)絡,這個過程真的可以學習很多東西,只要你愿意花費時間和精力去深入,現(xiàn)在我們閑話少說,直接進入正題。

        二、我們來分析

        正如我之前說的:深度學習近期總結(jié)分析。在目標檢測中,有很多經(jīng)典的網(wǎng)絡框架,比如RCNN,SSP,F(xiàn)ast RCNN。其中Fast RCNN就使用Selective Search來進行候選區(qū)域,但是速度依然不夠快。今天的主角(Faster R-CNN)則直接利用RPN(Region Proposal Networks)網(wǎng)絡來計算候選框。RPN以一張任意大小的圖片為輸入,輸出一批矩形候選區(qū)域,每個區(qū)域?qū)粋€目標分數(shù)和位置信息。Faster R-CNN中的RPN結(jié)構(gòu)如圖所示。

        2.jpg

        Faster RCNN的主要步驟如下:

        特征提取:同F(xiàn)ast RCNN,以整張圖片為輸入,利用CNN得到圖片的特征層;

        候選區(qū)域:在最終的卷積特征層上利用k個不同的矩形框(Anchor Box)進行提名,k一般取9;

        分類與回歸:對每個Anchor Box對應的區(qū)域進行object/non-object二分類,并用k個回歸模型(各自對應不同的Anchor Box)微調(diào)候選框位置與大小,最后進行目標分類。

        總之,F(xiàn)aster RCNN拋棄了Selective Search,引入了RPN網(wǎng)絡,使得候選區(qū)域、分類、回歸一起共用卷積特征,從而得到了進一步的加速。但是,F(xiàn)aster RCNN需要對兩萬個Anchor Box先判斷是否是目標(目標判定),然后再進行目標識別,分成了兩步。

        今天就來講講怎么簡單操作該網(wǎng)絡,以便后期有興趣的朋友再次基礎(chǔ)上做出改進。

        三、簡單入門實踐

        git官網(wǎng)的py-faster-rcnn源碼

        終端輸入:cd /home/**(您服務器的名字)

                            git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git

        生成Cython模塊

        終端輸入:cd /home/**(您服務器的名字)/py-faster-rcnn/lib

                           make

        生成Caffe和pycaffe

        終端輸入:cd /home/**(您服務器的名字)/py-faster-rcnn/caffe-fast-rcnn

                            cp Makefile.config.example Makefile.config

        打開Makefile.config,修改之處可以根據(jù)您自己需求修改(比如你要使用Python,GPU等功能)

        保存退出。

        終端輸入:cd /home/**(您服務器的名字)/py-faster-rcnn/caffe-fast-rcnn

                            mkdir build

                            cd build

                            cmake ..(注意這是兩個句點,不要忘記)

                            make all -j16("‐j16"是使用 CPU 的多核進行編譯,可以提速,根據(jù)您自己

                            硬件調(diào)整)

                            make install

                            make runtest -j16

                            make pycaffe(編譯pycaffe)

        下載fetch_fast_rcnn_models

        終端輸入:cd /home/**(您服務器的名字)/py-faster-rcnn

                            ./data/scripts/fetch_faster_rcnn_models.sh

        運行demo.py

        終端輸入:cd /home/home/**(您服務器的名字)/py-faster-rcnn/tools

                            ./demo.py

        3.png

        到這幾,基本的都完成了,接下來就是實現(xiàn)自己的數(shù)據(jù)train和demo。

        1

        首先制作自己的數(shù)據(jù)集

        (如果您用公共數(shù)據(jù)集,那就可以忽略這步驟)

        保留data/VOCdevkit2007/VOC2007/Annotations和ImageSets和JPEGImages文件夾名稱,刪除其中所有的文件(保留文件夾)。其中Annotations保存標簽txt轉(zhuǎn)換的xml文件,ImageSets保存train.txt、trainval.txt、test.txt、val.txt四個文件分別儲存在layout、main和Segmentation文件夾中,最后JPEGImages保存所訓練的數(shù)據(jù)。

        然后,Annotations中xml文件的制作。該部分的代碼我會放在公眾平臺的共享文件菜單中。最后做出來的效果就是如下所示:

        4.png

        最終生成的格式如下:

        5.jpg

        最后在ImageSets中的trainval文件中,根據(jù)你自己來劃分!

        2

        修改參數(shù)和文件

         prototxt配置文件

        models/pascal_voc/ZF/faster_rcnn_alt_opt文件夾下的5個文件,分別為:stage1_rpn_train.pt、stage1_fast_rcnn_train.pt、stage2_rpn_train.pt、stage2_fast_rcnn_train.pt和fast_rcnn_test.pt,修改格式如下:

        (1)stage1_fast_rcnn_train.pt和stage2_fast_rcnn_train.pt修改參數(shù):

        num_class:2(識別1類+背景1類),cls_score中num_output:2,bbox_pred中num_output:8

        (2)stage1_rpn_train.pt和stage2_rpn_train.pt修改參數(shù):

        num_class:2(識別1類+背景1類)

        (3)fast_rcnn_test.pt修改參數(shù):

        cls_score中num_output:2,bbox_pred中num_output:8(只有這2個)

        修改lib/datasets/pascal_voc.py

        self._classes = ('__background__', # always index 0  'zongzi')(只有這一類)

        修改lib/datasets/imdb.py

        數(shù)據(jù)整理,在一行代碼為:

        boxes[:, 2] = widths[i] - oldx1 - 1  下加入代碼:

         for b in range(len(boxes)):

              if boxes[b][2]< boxes[b][0]:

                 boxes[b][0] = 0

        修改完pascal_voc.py和imdb.py后進入lib/datasets目錄下刪除原來的pascal_voc.pyc和imdb.pyc文件,重新生成這兩個文件,因為這兩個文件是python編譯后的文件,系統(tǒng)會直接調(diào)用。

        終端進入lib/datasets文件目錄輸入:

        python(此處應出現(xiàn)python的版本)

        >>>importpy_compile

        >>>py_compile.compile(r'imdb.py')

        >>>py_compile.compile(r'pascal_voc.py')

        3

        現(xiàn)在我們開始訓練自己數(shù)據(jù)

        終端進入py-faster-rcnn下輸入:

        ./experiments/scripts/faster_rcnn_alt_opt.sh0 ZF pascal_voc

        4

        運行demo

        運行demo,即在py-faster-rcnn文件夾下終端輸入:

        ./tools/demo.py --net zf

        其中修改/tools/demo.py為:

        (1) CLASSES =('__background__',  'zongzi')

        (2) NETS ={'vgg16': ('VGG16', 'VGG16_faster_rcnn_final.caffemodel'),

                             'zf': ('ZF', 'ZF_faster_rcnn_final.caffemodel')}

        四、實驗效果

        注:有部分目標沒有檢測出來,可能是由于目標遮擋,重疊造成,所以往后需要我們大家做的就是,怎么去解決實際生活中遇到的種種問題,利用所學的知識和自己的創(chuàng)新去改進,優(yōu)化!

        由于今天是端午假,大家都會吃粽子,所以今天的目標檢測就是“粽子”,通過各種渠道得到粽子的訓練和測試數(shù)據(jù)集,最后得到如下部分的結(jié)果可視化圖。

        6.jpg

        *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。

        光耦相關(guān)文章:光耦原理


        萬用表相關(guān)文章:萬用表怎么用


        斷路器相關(guān)文章:斷路器原理


        高壓真空斷路器相關(guān)文章:高壓真空斷路器原理
        漏電斷路器相關(guān)文章:漏電斷路器原理


        關(guān)鍵詞: AI

        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉