国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于Faster R-CNN實現(xiàn)目標檢測

這篇具有很好參考價值的文章主要介紹了基于Faster R-CNN實現(xiàn)目標檢測。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 作者介紹

楊金鵬,男,西安工程大學電子信息學院,2022級研究生
研究方向:機器視覺與人工智能
電子郵件:1394026082@qq.com

路治東,男,西安工程大學電子信息學院,2022級研究生,張宏偉人工智能課題組
研究方向:機器視覺與人工智能
電子郵件:2063079527@qq.com

2. Faster RCNN基本框架

基于Faster R-CNN實現(xiàn)目標檢測
Faster RCNN檢測部分主要可以分為四個模塊:
(1)conv layers。即特征提取網(wǎng)絡,用于提取特征。通過一組conv+relu+pooling層來提取圖像的feature maps,用于后續(xù)的RPN層和取proposal。
(2)RPN(Region Proposal Network)。即區(qū)域候選網(wǎng)絡,該網(wǎng)絡替代了之前RCNN版本的Selective Search,用于生成候選框。這里任務有兩部分,一個是分類:判斷所有預設anchor是屬于positive還是negative(即anchor內(nèi)是否有目標,二分類);還有一個bounding box regression:修正anchors得到較為準確的proposals。因此,RPN網(wǎng)絡相當于提前做了一部分檢測,即判斷是否有目標(具體什么類別這里不判),以及修正anchor使框的更準一些。
(3)RoI Pooling。即興趣域池化(SPP net中的空間金字塔池化),用于收集RPN生成的proposals(每個框的坐標),并從(1)中的feature maps中提取出來(從對應位置扣出來),生成proposals feature maps送入后續(xù)全連接層繼續(xù)做分類(具體是哪一類別)和回歸。
(4)Classification and Regression。利用proposals feature maps計算出具體類別,同時再做一次bounding box regression獲得檢測框最終的精確位置。
基于Faster R-CNN實現(xiàn)目標檢測

3.模型訓練及測試

3.1 數(shù)據(jù)集

訓練前需要制作數(shù)據(jù)集,進行數(shù)據(jù)準備。采用收線送線裝置實時采集圖片,圖像大小為1536*1280,然后進行標注,最后送進網(wǎng)絡進行訓練。為模擬檢測的現(xiàn)場效果,劃分了紗線中常見的四種常見缺陷:毛圈、毛團、分叉以及毛瑕,并通過標注軟件對數(shù)據(jù)集進行了標注。標注文件放在VOC2007/ Annotations,圖像文件放在VOC2007/JPEGImages目錄下,生成ImageSet\Main里的四個txt文件,分別是:trainval.txt(訓練和驗證集總和)、train.txt(訓練集)、val.txt(驗證集)、test.txt(測試集),訓練集/驗證集/測試集比例為6:2:2。
基于Faster R-CNN實現(xiàn)目標檢測

3.2 環(huán)境配置

基于Faster R-CNN實現(xiàn)目標檢測
基于Faster R-CNN實現(xiàn)目標檢測

3.3 訓練參數(shù)

(1)修改lib/datasets/pascal_voc.py,將類別改成自己的類別。這里有一個注意點就是,這里的類別以及之前的類別名稱最好是全部小寫,假如是大寫的話,則會報keyError的錯誤
基于Faster R-CNN實現(xiàn)目標檢測
(2)根據(jù)實際需求及硬件情況設置代碼中的相關(guān)參數(shù),需要修改–num-classes、–data-path和–weights-path 等參數(shù),訓練過程如圖所示。
基于Faster R-CNN實現(xiàn)目標檢測
基于Faster R-CNN實現(xiàn)目標檢測
如圖所示為預測結(jié)果
基于Faster R-CNN實現(xiàn)目標檢測
基于Faster R-CNN實現(xiàn)目標檢測

3.4 訓練參數(shù)

PicoDet測試
如圖所示為訓練過程及預測結(jié)果
基于Faster R-CNN實現(xiàn)目標檢測
基于Faster R-CNN實現(xiàn)目標檢測
YOLOv3測試
如圖所示為訓練過程及預測結(jié)果
基于Faster R-CNN實現(xiàn)目標檢測
基于Faster R-CNN實現(xiàn)目標檢測

3.5 代碼展示

import os
import time
import torch
import torchvision.transforms as transforms
import torchvision
from PIL import Image
from matplotlib import pyplot as plt

# 獲取當前路徑
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")


# classes_coco類別信息
COCO_INSTANCE_CATEGORY_NAMES = [
    '__background__', 'person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus',
    'train', 'truck', 'boat', 'traffic light', 'fire hydrant', 'N/A', 'stop sign',
    'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow',
    'elephant', 'bear', 'zebra', 'giraffe', 'N/A', 'backpack', 'umbrella', 'N/A', 'N/A',
    'handbag', 'tie', 'suitcase', 'frisbee', 'skis', 'snowboard', 'sports ball',
    'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard', 'tennis racket',
    'bottle', 'N/A', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl',
    'banana', 'apple', 'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza',
    'donut', 'cake', 'chair', 'couch', 'potted plant', 'bed', 'N/A', 'dining table',
    'N/A', 'N/A', 'toilet', 'N/A', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone',
    'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'N/A', 'book',
    'clock', 'vase', 'scissors', 'teddy bear', 'hair drier', 'toothbrush'
]


if __name__ == "__main__":

    # 檢測圖片路徑
    path_img = os.path.join(BASE_DIR, "xxxx.jpg")

    # 預處理
    preprocess = transforms.Compose([
        transforms.ToTensor(),
    ])

    input_image = Image.open(path_img).convert("RGB")
    img_chw = preprocess(input_image)

    # 加載預訓練模型
    model = torchvision.models.detection.fasterrcnn_resnet50_fpn(pretrained=True)
    model.eval()

    # if torch.cuda.is_available():
    #     img_chw = img_chw.to('cuda')
    #     model.to('cuda')

    # 前向傳播
    input_list = [img_chw]
    with torch.no_grad():
        tic = time.time()
        print("input img tensor shape:{}".format(input_list[0].shape))
        output_list = model(input_list)
        output_dict = output_list[0]
        print("pass: {:.3f}s".format(time.time() - tic))
        # 打印輸出信息
        for k, v in output_dict.items():
            print("key:{}, value:{}".format(k, v))

    # 取得相應結(jié)果
    out_boxes = output_dict["boxes"].cpu()
    out_scores = output_dict["scores"].cpu()
    out_labels = output_dict["labels"].cpu()

    # 可視化
    fig, ax = plt.subplots(figsize=(12, 12))
    ax.imshow(input_image, aspect='equal')

    num_boxes = out_boxes.shape[0]
    max_vis = 400
    thres = 0.6

    # 循環(huán)描框
    for idx in range(0, min(num_boxes, max_vis)):
        score = out_scores[idx].numpy()
        bbox = out_boxes[idx].numpy()
        class_name = COCO_INSTANCE_CATEGORY_NAMES[out_labels[idx]]

        if score < thres:
            continue

        ax.add_patch(plt.Rectangle((bbox[0], bbox[1]), bbox[2] - bbox[0], bbox[3] - bbox[1], fill=False,
                                   edgecolor='red', linewidth=3.5))
        ax.text(bbox[0], bbox[1] - 2, '{:s} {:.3f}'.format(class_name, score), bbox=dict(facecolor='blue', alpha=0.5),
                fontsize=14, color='white')
        ax.set_title("test_result", fontsize=28, color='blue')
    plt.show()
    plt.savefig("test_result.png")
    plt.close()

3.6 問題及分析

訓練參數(shù)調(diào)試及環(huán)境配置
在訓練前要注意將所需的環(huán)境配置好,同時所調(diào)用的庫版本是否符合要求,各個庫之間有時也需要版本一一對應。在訓練時參數(shù)的調(diào)試非常重要,對模型的檢測效果有著非常重要的影響,要多去嘗試多做實驗探究不同參數(shù)對模型的影響。
準備數(shù)據(jù)集
在數(shù)據(jù)集采集過程中要注意盡可能避免外界干擾,同時注意打光方式以及亮度等等,確保能夠把待檢測的物體和缺陷采集清晰。雖然數(shù)據(jù)集在整個項目中看起來不太重要,但是數(shù)據(jù)集采集的是否清晰,標注的是否正確等都會對檢測結(jié)果造成很大的影響。

參考(可供參考的鏈接和引用文獻)

1.鏈接: [http://t.csdn.cn/JrWZ1]
2.鏈接: [http://t.csdn.cn/TjQov]文章來源地址http://www.zghlxwxcb.cn/news/detail-466733.html

到了這里,關(guān)于基于Faster R-CNN實現(xiàn)目標檢測的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 目標檢測經(jīng)典工作發(fā)展(超詳細對比):R-CNN vs SPPNet vs Fast R-CNN vs Faster R-CNN

    目標檢測經(jīng)典工作發(fā)展(超詳細對比):R-CNN vs SPPNet vs Fast R-CNN vs Faster R-CNN

    網(wǎng)上關(guān)于兩階段目標檢測(two-stage object detection)的幾個經(jīng)典工作R-CNN,SPPNet,F(xiàn)ast R-CNN,F(xiàn)aster R-CNN的發(fā)展,各自的優(yōu)缺點缺乏一個比較清楚的描述,大部分文章講的比較細節(jié),雖然有助于更為詳細地了解文章,但是讓讀者在短時間內(nèi)對各個文章有一個詳細的理解。本文主要對

    2024年02月09日
    瀏覽(27)
  • 從R-CNN到Faster-RCNN再到Y(jié)OLOV5,目標檢測網(wǎng)絡發(fā)展概述

    從R-CNN到Faster-RCNN再到Y(jié)OLOV5,目標檢測網(wǎng)絡發(fā)展概述

    ?R-CNN由Ross Girshick于2014年提出,R-CNN首先通過 選擇性搜索算法Selective Search 從一組對象候選框中選擇可能出現(xiàn)的對象框,然后將這些選擇出來的對象框中的圖像resize到某一固定尺寸的圖像,并喂入到 CNN模型 (經(jīng)過在ImageNet數(shù)據(jù)集上訓練過的CNN模型,如AlexNet)提取特征,最后將

    2024年02月05日
    瀏覽(23)
  • 計算機視覺的應用4-目標檢測任務:利用Faster R-cnn+Resnet50+FPN模型對目標進行預測

    計算機視覺的應用4-目標檢測任務:利用Faster R-cnn+Resnet50+FPN模型對目標進行預測

    大家好,我是微學AI,今天給大家介紹一下計算機視覺的應用4-目標檢測任務,利用Faster Rcnn+Resnet50+FPN模型對目標進行預測,目標檢測是計算機視覺三大任務中應用較為廣泛的,F(xiàn)aster R-CNN 是一個著名的目標檢測網(wǎng)絡,其主要分為兩個模塊:Region Proposal Network (RPN) 和 Fast R-CNN。我

    2024年02月05日
    瀏覽(20)
  • 目標檢測算法(R-CNN,fast R-CNN,faster R-CNN,yolo,SSD,yoloV2,yoloV3,yoloV4,yoloV5,yoloV6,yoloV7)

    目標檢測算法(R-CNN,fast R-CNN,faster R-CNN,yolo,SSD,yoloV2,yoloV3,yoloV4,yoloV5,yoloV6,yoloV7)

    深度學習目前已經(jīng)應用到了各個領(lǐng)域,應用場景大體分為三類:物體識別,目標檢測,自然語言處理。 目標檢測可以理解為是物體識別和物體定位的綜合 ,不僅僅要識別出物體屬于哪個分類,更重要的是得到物體在圖片中的具體位置。 為了完成這兩個任務,目標檢測模型分

    2024年02月02日
    瀏覽(26)
  • Voxel R-CNN:基于體素的高性能 3D 目標檢測

    Voxel R-CNN:基于體素的高性能 3D 目標檢測

    論文地址:https://arxiv.org/abs/2012.15712 論文代碼:https://github.com/djiajunustc/Voxel-R-CNN 基于點的方法具有較高的檢測精度,但基于點的方法通常效率較低,因為對于點集抽象來說,使用點表示來搜索最近鄰的代價更高。 相比于基于點,更高效,基于體素的結(jié)構(gòu)更適合于特征提取,

    2024年02月09日
    瀏覽(15)
  • [論文閱讀]Voxel R-CNN——邁向高性能基于體素的3D目標檢測

    [論文閱讀]Voxel R-CNN——邁向高性能基于體素的3D目標檢測

    Voxel R-CNN: Towards High Performance Voxel-based 3D Object Detection 邁向高性能基于體素的3D目標檢測 論文網(wǎng)址:Voxel R-CNN 論文代碼:Voxel R-CNN 該論文提出了 Voxel R-CNN,這是一種基于體素的高性能 3D 對象檢測框架。作者認為,原始點的精確定位對于準確的目標檢測并不重要,粗體素粒度可

    2024年02月07日
    瀏覽(83)
  • 保姆級 Keras 實現(xiàn) Faster R-CNN 十一

    保姆級 Keras 實現(xiàn) Faster R-CNN 十一

    上一篇 文章中我們實現(xiàn)了 ProposalLayer 層, 它將的功能是輸出建議區(qū)域矩形. 本文要實現(xiàn)另一個自定義層 RoiPoolingLayer. 在 Faster R-CNN 中, RoiPooling 層的目的是將不同大小的感興趣區(qū)域(Region of Interest, ROI) 轉(zhuǎn)換為固定大小的特征圖作為后續(xù)步驟的輸入 還是先把論文中的圖貼出來 上圖

    2024年02月10日
    瀏覽(17)
  • 經(jīng)典目標檢測R-CNN系列(2)Fast R-CNN

    經(jīng)典目標檢測R-CNN系列(2)Fast R-CNN

    Fast R-CNN是作者Ross Girshick繼R-CNN后的又一力作。 同樣使用VGG16作為網(wǎng)絡的backbone,與R-CNN相比訓練時間快9倍,測試推理時間快213倍,準確率從62%提升至66%(Pascal VOC數(shù)據(jù)集上)。 Fast R-CNN算法流程可分為3個步驟 一張圖像生成1K~2K個 候選區(qū)域 (使用Selective Search方法) 將圖像輸入網(wǎng)絡得

    2024年02月16日
    瀏覽(51)
  • 目標檢測——R-CNN網(wǎng)絡基礎

    目標檢測——R-CNN網(wǎng)絡基礎

    候選區(qū)域生成 CNN網(wǎng)絡提取特征 目標分類(SVM) 目標定位 紅色是SS生成的結(jié)果,綠色是標注框 預測過程 ROI Pooling 目標分類和回歸

    2024年02月17日
    瀏覽(32)
  • 目標檢測經(jīng)典論文精讀-R-CNN

    目標檢測經(jīng)典論文精讀-R-CNN

    論文鏈接: https://www.cv-foundation.org/openaccess/content_cvpr_2014/papers/Girshick_Rich_Feature_Hierarchies_2014_CVPR_paper.pdf 論文技術(shù)報告鏈接: https://arxiv.org/pdf/1311.2524.pdf 出處: CVPR 2014 參考視頻: https://www.bilibili.com/video/BV1d64y1W74E/?spm_id_from=333.999.0.0vd_source=e321967bf2cdc2338238788250d12de8 總結(jié)起來就

    2024年02月04日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包