數據庫的簡單建模
907
2025-04-01
Sparse R-CNN: End-to-End Object Detection with Learnable Proposals
論文地址:https://arxiv.org/abs/2011.12450
摘要
我們提出了 Sparse R-CNN,這是一種用于圖像中對象檢測的純稀疏方法?,F有的對象檢測工作嚴重依賴于密集的候選對象,例如在大小為 H × W 的圖像特征圖的所有網格上預定義的 k 個錨框。然而,在我們的方法中,向對象識別頭提供一組固定的稀疏學習對象提議,總長度為 N,以執行分類和定位。通過將 HW k(多達數十萬)個手工設計的候選對象消除到 N 個(例如 100 個)可學習的建議,Sparse R-CNN 完全避免了與候選對象設計和多對一標簽分配相關的所有努力。更重要的是,最終預測是直接輸出的,沒有非最大抑制后處理。稀疏 R-CNN 在具有挑戰性的 COCO 數據集上展示了與完善的檢測器基線相當的準確性、運行時間和訓練收斂性能,例如,在標準 3× 訓練計劃中實現 45.0 AP 并使用 ResNet-50 FPN 模型以 22 fps 運行。我們希望我們的工作能夠激發重新思考對象檢測器中密集先驗的慣例。代碼位于:https://github.com/PeizeSun/SparseR-CNN。
1、簡介
對象檢測旨在定位一組對象并在圖像中識別它們的類別。 密集先驗一直是探測器成功的基石。 在經典的計算機視覺中,將分類器應用于密集圖像網格的滑動窗口范式幾十年來一直是領先的檢測方法 [8, 12, 48]。 現代主流的一級檢測器在密集的特征圖網格上預定義標記,例如圖 1a 中所示的錨框 [29, 36] 或參考點 [45, 61],并預測邊界的相對縮放和偏移 對象的盒子,以及相應的類別。 盡管兩階段管道在一組稀疏的提議框上工作,但它們的提議生成算法仍然建立在密集候選 [14, 37] 上,如圖 1b 所示。
這些完善的方法在概念上是直觀的,并提供強大的性能 [11, 30],以及快速的訓練和推理時間 [53]。 除了它們的巨大成功之外,重要的是要注意密集先驗檢測器受到一些限制:1)這樣的管道通常會產生冗余和接近重復的結果,從而使非最大抑制(NMS)[1, 51] 后處理一個 必要的組件。 2) 訓練中的多對一標簽分配問題 [2, 58, 60] 使網絡對啟發式分配規則敏感。 3)最終性能在很大程度上受錨框的大小、縱橫比和數量[29、36]、參考點的密度[24、45、61]和提議生成算法[14、37]的影響。
盡管密集的約定在目標檢測器中得到廣泛認可,但一個自然而然的問題是:是否有可能設計一個稀疏檢測器? 最近,DETR 提議將對象檢測重新表述為直接和稀疏集預測問題 [3],其輸入僅為 100 個學習對象查詢 [47]。 最終的預測集直接輸出,無需任何手工設計的后處理。 盡管其框架簡單而出色,但 DETR 要求每個對象查詢都與全局圖像上下文進行交互。 這種密集的屬性不僅減慢了它的訓練收斂速度 [63],而且阻止了它為對象檢測建立一個完全稀疏的管道 。
我們認為稀疏屬性應該在兩個方面:稀疏框和稀疏特征。 稀疏框意味著少量的起始框(例如 100 個)足以預測圖像中的所有對象。 雖然稀疏特征表明每個框的特征不需要與整個圖像上的所有其他特征進行交互。 從這個角度來看,DETR 不是純粹的稀疏方法,因為每個對象查詢都必須與完整圖像上的密集特征進行交互 。
在本文中,我們提出了 Sparse R-CNN,一種純粹的稀疏方法,沒有在所有(密集)圖像網格上枚舉對象位置候選,也沒有與全局(密集)圖像特征交互的對象查詢。 如圖 1c 所示,候選對象由一組固定的可學習邊界框(由 4-d 坐標表示)給出。 例如 COCO 數據集 [30],總共需要 100 個框和 400 個參數,而不是區域提議網絡 (RPN) [37] 中數十萬候選者的預測值。 這些稀疏候選被用作建議框,以通過 RoIPool [13] 或 RoIAlign [18] 提取感興趣區域(RoI)的特征。
可學習的提議框是圖像中潛在對象位置的統計信息。而 4 維坐標只是對象的粗略表示,缺乏很多信息細節,例如姿勢和形狀。在這里,我們引入了另一個稱為提議特征的關鍵概念,它是一個高維(例如,256)潛在向量。與粗邊界框相比,它有望編碼豐富的實例特征。特別地,proposal 特征為其專屬的物體識別頭生成一系列自定義參數。我們將此操作稱為動態實例交互頭,因為它與最近的動態方案 [23, 44] 有相似之處。與 [37] 中共享的 2-fc 層相比,我們的頭部更加靈活,并且在準確性方面具有顯著領先優勢。我們在實驗中表明,以獨特的提議特征而不是固定參數為條件的頭部公式實際上是 Sparse R-CNN 成功的關鍵。提議框和提議特征都與整個網絡中的其他參數一起隨機初始化和優化。
我們的 Sparse R-CNN 中最顯著的特性是它一直以來的稀疏輸入稀疏范式。 初始輸入是一組稀疏的提議框和提議特征,以及一對一的動態實例交互。 管道中既不存在密集候選 [29, 37] 也不與全局(密集)特征 [3] 交互。 這種純粹的稀疏性使 Sparse R-CNN 成為 R-CNN 家族中的全新成員。
稀疏 R-CNN 在具有挑戰性的 COCO 數據集 [30] 上證明了其準確性、運行時間和訓練收斂性能與完善的檢測器 [2, 37, 45] 相當,例如,在標準 3× 訓練計劃和運行中達到 45.0 AP 使用 ResNet-50 FPN 模型以 22 fps 的速度。 據我們所知,提議的 Sparse R-CNN 是第一個證明相當稀疏的設計是合格的。 我們希望我們的工作能夠激發重新思考目標檢測中密集先驗的必要性并探索下一代目標檢測器 。
2、相關工作
密集方法。 滑動窗口范式在對象檢測中已經流行多年。受經典特征提取技術[8, 48]的限制,幾十年來性能趨于平穩,應用場景有限。深度卷積神經網絡 (CNN) 的發展 [19, 22, 25] 培養了通用對象檢測,實現了性能的顯著提高 [11, 30]。主流的pipeline之一是one-stage檢測器,它以單次的方式直接預測密集覆蓋空間位置、尺度和縱橫比的anchor box的類別和位置,例如OverFeat [40]、YOLO [36]、SSD [31] 和 RetinaNet [29]。最近,提出了無錨算法 [21, 26, 45, 61, 24] 通過用參考點替換手工制作的錨框來使該管道更加簡單。以上所有方法都建立在密集候選者上,每個候選者都被直接分類和回歸。根據預定義的原則,在訓練時間內將這些候選對象分配給地面實況對象框,例如,錨點是否與其對應的地面實況具有更高的交叉聯合 (IoU) 閾值,或者參考點是否落在對象中的一個盒子。此外,需要 NMS 后處理 [1, 51] 以在推理期間去除冗余預測 。
密集到稀疏的方法。 兩級檢測器是另一個主流管道,多年來一直主導現代目標檢測 [2, 6, 13, 14, 37]。 這種范式可以看作是密集檢測器的擴展。 它首先從密集區域候選中獲得一組稀疏的前景提議框,然后細化每個提議的位置并預測其特定類別。 區域提議算法在這些兩階段方法的第一階段起著重要作用,例如 R-CNN 中的 Selective Search [46] 和 Faster R-CNN 中的 Region Proposal Networks (RPN) [37]。 與密集管道類似,它也需要 NMS 后處理和手工制作的標簽分配。 從數十萬候選中只有少數前景建議,因此這些檢測器可以總結為密集到稀疏方法。
最近,DETR [3] 被提議直接輸出預測,而無需任何手工制作的組件,實現了有希望的性能。 DETR 利用一組稀疏的對象查詢,與全局(密集)圖像特征進行交互,從這個角度來看,它可以被視為另一個密集到稀疏的公式。
稀疏方法。 稀疏對象檢測有可能消除設計密集候選對象的工作,但通常會落后于上述密集檢測器的準確性。 G-CNN [34] 可以被視為這組算法的先驅。 它從圖像上的多尺度規則網格開始,并迭代更新框以覆蓋和分類對象。 這種手工設計的常規先驗顯然是次優的,無法實現最佳性能。 相反,我們的 Sparse R-CNN 應用了可學習的建議并實現了更好的性能。 同時,Deformable-DETR [63] 被引入以限制每個對象查詢關注參考點周圍的一小組關鍵采樣點,而不是特征圖中的所有點。 我們希望稀疏方法可以作為可靠的基線,并有助于簡化目標檢測社區的未來研究。
3、Sparse R-CNN
Sparse R-CNN 框架的關鍵思想是用一小組提議框(例如 100)替換來自區域提議網絡(RPN)的數十萬候選。 管道如圖 3 所示。
Sparse R-CNN 是一個簡單的、統一的網絡,由一個主干網絡、一個動態實例交互頭部和兩個特定任務的預測層組成。 總共有三個輸入,一個圖像,一組提案框和提案特征。 后兩者是可學習的,可以與網絡中的其他參數一起優化。 我們將詳細描述本節中的每個組件。
Backbone 。 采用基于 ResNet 架構 [19, 28] 的特征金字塔網絡 (FPN) 作為骨干網絡,從輸入圖像生成多尺度特征圖。 按照 [28],我們構建了 P2 到 P5 級別的金字塔,其中 l 表示金字塔級別,Pl 的分辨率比輸入低 2l。 所有金字塔級別都有 C = 256 個通道。 更多細節請參考[28]。 實際上,Sparse R-CNN 有可能受益于更復雜的設計以進一步提高其性能,例如堆疊編碼器層 [3] 和可變形卷積網絡 [7],最近的工作 DeformableDETR [63] 就是在這些設計上構建的。 然而,我們將設置與 Faster R-CNN [37, 28] 對齊,以展示我們方法的簡單性和有效性。
可學習的提案箱。 一組固定的可學習提議框 (N × 4) 被用作區域提議,而不是來自區域提議網絡 (RPN) 的預測。 這些建議框由范圍從 0 到 1 的 4-d 參數表示,表示標準化的中心坐標、高度和寬度。 建議框的參數將在訓練過程中使用反向傳播算法進行更新。 由于具有可學習性,我們在實驗中發現初始化的影響很小,從而使框架更加靈活。
從概念上講,這些學習到的提議框是訓練集中潛在對象位置的統計數據,可以看作是最有可能包含圖像中對象的區域的初始猜測,而不管輸入如何。 而來自 RPN 的提議與當前圖像密切相關,并提供粗略的對象位置。 我們重新考慮了第一階段的定位是豪華的,在后期階段可以細化盒子的位置。 相反,合理的統計數據可能已經是合格的候選人。 從這個角度來看,稀疏 R-CNN 可以歸類為對象檢測器范式的擴展,從完全密集 [29, 31, 35, 45] 到密集到稀疏 [2, 6, 14, 37] 到徹底稀疏,如圖所示 在圖 1 中。
可學習的提案功能。 盡管 4-d 提議框是描述對象的簡短而明確的表達,但它提供了對象的粗略定位,并且丟失了許多信息細節,例如對象姿勢和形狀。 在這里,我們引入了另一個稱為提議特征(N×d)的概念,它是一個高維(例如,256)潛在向量,并有望對豐富的實例特征進行編碼。 提案特征的數量與框相同,接下來我們將討論如何使用它。
動態實例交互頭。 給定 N 個提議框,Sparse R-CNN 首先利用 RoIAlign 操作為每個框提取特征。 然后每個框特征將用于使用我們的預測頭生成最終預測。 受動態算法 [23, 44] 的啟發,我們提出了動態實例交互頭。 每個 RoI 特征都被送入其自己的用于對象定位和分類的專用頭部,其中每個頭部都以特定的提議特征為條件。
圖 4 說明了動態實例交互。 在我們的設計中,提案特征和提案框是一一對應的。 對于 N 個提議框,采用了 N 個提議特征。 每個 RoI 特征 fi(S × S; C) 將與相應的提議特征 pi? 交互以過濾掉無效的 bin 并輸出最終的對象特征 ?。 對于輕型設計,我們進行了兩次連續的 1 × 1 與 ReLU 激活函數卷積,以實現交互過程。 這兩個卷積的參數由相應的proposal特征生成。
交互式頭部的實現細節并不重要,只要支持并行操作以提高效率即可。 最終的回歸預測由3層感知計算,分類預測由線性投影層計算。
我們還采用迭代結構 [2] 和 self-attention 模塊 [47] 來進一步提高性能。 對于迭代結構,新生成的對象框和對象特征將作為迭代過程下一階段的提議框和提議特征。 由于稀疏屬性和輕動態頭部,它引入了 只有邊際的計算開銷。 在動態實例交互之前,將自注意力模塊應用于對象特征集以推理對象之間的關系。 我們注意到 [20] 還利用了自注意力模塊。 然而,它除了需要對象特征外,還需要幾何屬性和復雜的秩特征。 我們的模塊要簡單得多,只需要對象特征作為輸入。
設置預測損失。 Sparse R-CNN 在固定大小的分類和框坐標預測集上應用集預測損失 [3, 42, 56]。 基于集合的損失在預測和真實對象之間產生最佳二分匹配。 匹配成本定義如下:
L
=
λ
c
l
s
?
L
c
l
s
+
λ
L
1
?
L
L
1
+
λ
giou
?
L
giou
\mathcal{L}=\lambda_{c l s} \cdot \mathcal{L}_{c l s}+\lambda_{L 1} \cdot \mathcal{L}_{L 1}+\lambda_{\text {giou }} \cdot \mathcal{L}_{\text {giou }}
L=λcls ?Lcls +λL1 ?LL1 +λgiou? ?Lgiou
這里$ \mathcal{L}_{c l s}$ 是預測分類和地面真實類別標簽的焦點損失 [29],
L
L
1
\mathcal{L}_{L1}
LL1 和
L
g
i
o
u
\mathcal{L}_{giou}
Lgiou 分別是歸一化中心坐標與預測框和地面真實框的高度和寬度之間的 L1 損失和廣義 IoU 損失 [38]。
λ
c
l
s
\lambda_{cls}
λcls 、
λ
L
1
\lambda_{L1}
λL1 和
λ
g
i
o
u
\lambda_{giou}
λgiou 是每個分量的系數。 除了僅在匹配對上執行之外,訓練損失與匹配成本相同。 最終損失是由訓練批次內的對象數量歸一化的所有對的總和 。
由于仍然存在多對一匹配,R-CNN 系列 [2, 60] 一直對標簽分配問題感到困惑。 在這里,我們提供了新的可能性,直接繞過多對一匹配并引入基于集合的損失的一對一匹配。 這是探索端到端對象檢測的嘗試。
4、實驗
數據集。 我們的實驗是在具有挑戰性的 MS COCO 基準 [30] 上進行的,使用對象檢測的標準指標。 所有模型都在 COCO train2017 split(~118k 圖像)上進行訓練,并使用 val2017(5k 圖像)進行評估。
培訓詳情。 除非另有說明,否則 ResNet-50 [19] 用作主干網絡。 優化器是 AdamW [33],權重衰減為 0.0001。 小批量是 16 張圖像,所有模型都使用 8 個 GPU 進行訓練。 默認訓練計劃是 36 個 epoch,初始學習率設置為
2.5
×
1
0
?
5
2.5 × 10^{?5}
2.5×10?5,分別在 epoch 27 和 33 除以 10。 主干用 ImageNet [9] 上的預訓練權重初始化,其他新添加的層用 Xavier [15] 初始化。 數據增強包括調整輸入圖像大小的隨機水平、尺度抖動,使得最短邊至少為 480 像素,最多為 800 像素,而最長邊最多為 1333。遵循 [3, 63],
λ
c
l
s
λ_{cls}
λcls = 2,
λ
L
1
λ_{L1}
λL1 = 5,
λ
g
i
o
u
λ_{giou}
λgiou = 2. 提議框、提議特征和迭代的默認數量分別為 100、100 和 6。 為了穩定訓練,除了初始提議框之外,在迭代架構的每個階段的提議框處都阻塞了梯度。
推理細節。 Sparse R-CNN 中的推理過程非常簡單。 給定輸入圖像,Sparse R-CNN 直接預測 100 個與其分數相關的邊界框。 分數表示包含對象的框的概率。 對于評估,我們直接使用這 100 個盒子,沒有任何后處理。
4.1 主要結果
我們提供了兩個版本的 Sparse R-CNN 以與表 1 中的不同檢測器進行公平比較。第一個版本采用 100 個可學習的建議框,沒有隨機裁剪數據增強,用于與主流目標檢測器進行比較,例如 Faster R-CNN 和 RetinaNet [53]。 第二個利用 300 個具有隨機作物數據增強的可學習建議框,并用于與 DETR 系列模型進行比較 [3, 63]。
如表 1 所示,Sparse R-CNN 的性能大大優于成熟的主流檢測器,例如 RetinaNet 和 Faster R-CNN。 出人意料的是,基于 ResNet-50 的 Sparse RCNN 達到了 42.8 AP,在準確率上已經與 ResNet-101 上的 Faster R-CNN 競爭。
我們注意到 DETR 和 Deformable DETR 通常采用更強的特征提取方法,例如堆疊編碼器層和可變形卷積。 Sparse R-CNN 的更強實現用于與這些檢測器進行更公平的比較。 即使使用簡單的 FPN 作為特征提取方法,稀疏 R-CNN 也表現出更高的精度。 此外,與 DETR 相比,Sparse R-CNN 對小物體的檢測性能要好得多(26.7 AP vs. 22.5 AP)。
Sparse R-CNN 的訓練收斂速度比 DETR 快 10 倍,如圖 2 所示。 DETR 自提出以來一直受到收斂緩慢的困擾,這促使了 Deformable DETR 的提議。 與 Deformable DETR 相比,Sparse R-CNN 在準確性(45.0 AP vs. 43.8 AP)和更短的運行時間(22 FPS vs. 19 FPS)方面表現出更好的性能,訓練時間更短(36 epochs vs. 50 epochs)。
Sparse R-CNN 的推理時間與其他檢測器相當。 我們注意到具有 100 個建議的模型以 23 FPS 運行,而 300 個建議僅降低到 22 FPS,這要歸功于動態實例交互頭的輕量級設計。
表 2 將 Sparse R-CNN 與 COCO 測試開發集中的其他方法進行了比較。 使用 ResNeXt-101 [55] 作為主干,Sparse R-CNN 在沒有花里胡哨的情況下達到 46.9 AP,使用 DCN [7] 達到 48.9 AP。 通過額外的測試時間增強,Sparse R-CNN 達到 51.5 AP,與最先進的方法相當。
4.2 模塊分析
在本節中,我們分析 Sparse RCNN 中的每個組件。 除非另有說明,否則所有模型均基于 ResNet50-FPN 主干、100 個提案、3 倍訓練計劃。
可學習的提案箱。 從 Faster R-CNN 開始,我們天真地用一組稀疏的可學習提議框替換了 RPN。 性能從 40.2 AP(表 1 第 3 行)下降到 18.5(表 3)。 我們發現,即使堆疊了更多的全連接層,也沒有明顯的改進。
**迭代架構。**迭代更新框是提高其性能的直觀想法。然而,我們發現一個簡單的級聯架構并沒有太大的區別,如表 4 所示。我們分析原因是與 [2] 中主要定位在對象周圍的精煉提議框相比,我們案例中的候選框是更粗糙,使其難以優化。我們觀察到一個提案框的目標對象在整個迭代過程中通常是一致的。因此,可以重用前一階段的對象特征來為下一階段發揮強大的提示作用,例如,對象特征編碼了對象姿態和位置等豐富的信息。為此,我們將前一階段的對象特征連接到當前階段。特征重用的這種微小變化導致在原始級聯架構的基礎上增加了 11.7 個 AP。最后,迭代架構帶來了 13.7 個 AP 的提升,如表 3 第二行所示。
動態頭。 動態頭部以與上面討論的迭代架構不同的方式使用前一階段的對象特征。 上一階段的對象特征不是簡單的拼接,而是先由self-attention模塊處理,然后作為proposal特征來實現當前階段的實例交互。 selfattention 模塊應用于對象特征集,用于推理對象之間的關系。 表 5 顯示了自我注意和動態實例交互的好處。 最后,Sparse R-CNN 達到了 42.3 AP 的準確率 。
**提案框的初始化。**密集檢測器始終嚴重依賴于候選對象的設計,而稀疏 R-CNN 中的候選對象是可學習的,因此避免了與設計手工制作的錨點相關的所有工作。然而,人們可能會擔心提案框的初始化在 Sparse RCNN 中起著關鍵作用。這里我們研究了不同的初始化proposal box方法的效果: ? “中心”表示所有提案框都位于圖像開始時的中心,高度和寬度設置為圖像大小的0.1。 ? “圖像”表示所有提案框都初始化為整個圖像大小。 ? “網格”表示提議框在圖像中被初始化為常規網格,這正是 GCNN [34] 中的初始框。 ? “Random”表示提議框的中心、高度和寬度均使用高斯隨機初始化 從表 6 中我們可以看出 Sparse R-CNN 的最終性能對提議框的初始化相對穩健。
提案數量。 提議的數量在很大程度上影響密集和稀疏檢測器。 原始 Faster R-CNN 使用 300 個提議 [37]。 后來它增加到 2000 [53] 并獲得更好的性能。 我們還在表 7 中研究了提案數量對 Sparse R-CNN 的影響。將提案數量從 100 增加到 500 會導致持續改進,表明我們的框架 很容易在各種情況下使用。 而 500 個建議需要更多的訓練時間,所以我們選擇 100 和 300 作為主要配置。
迭代架構中的階段數。 迭代架構是一種廣泛使用的技術,用于提高對象檢測性能 [2, 3, 48],尤其是對于稀疏 RCNN。 表 8 顯示了迭代架構中階段數的影響。 沒有迭代架構,性能只有21.7 AP。 考慮到第一階段的輸入建議是對可能的對象位置的猜測,這個結果并不奇怪。 增加到 2 級會帶來 14.5 AP 的增益,最高可達有競爭力的 36.2 AP。 逐漸增加階段數,性能在6個階段飽和。 我們選擇 6 個階段作為默認配置。
動態頭與多頭注意力。 如第 3 節所述,動態頭部使用提議特征來過濾 RoI 特征并最終輸出對象特征。 我們發現多頭注意力模塊 [47] 為實例交互提供了另一種可能的實現。 我們進行了表9中的對比實驗,其性能落后于6.6 AP。 與線性多頭注意力相比,我們的動態頭更加靈活,其參數取決于其特定的提議特征,并且可以輕松引入更多非線性容量。
提案特征與對象查詢。 DETR [3] 中提出的對象查詢與提案特征共享類似的設計。 在這里,我們對 DETR 中提出的對象查詢 [3] 和我們的建議特征進行了比較。 如 [3] 中所討論的,對象查詢是學習位置編碼,引導解碼器與圖像特征圖和空間位置編碼的總和進行交互。 僅使用圖像特征圖會導致顯著下降。 然而,我們的提議特征可以看作是一個與位置無關的特征過濾器。 比較結果如表 10 所示,如果去除空間位置編碼,DETR 下降了 7.8 個 AP。 相反,位置編碼在 Sparse R-CNN 中沒有任何收益 。
4.3 提案框行為
圖 5 顯示了收斂模型的學習提案框。這些框隨機分布在圖像上以覆蓋整個圖像區域。這保證了在稀疏候選條件下的召回性能。此外,級聯頭的每個階段逐漸細化框位置并刪除重復的位置。這導致高精度性能。圖 5 還表明 Sparse RCNN 在稀有和人群中都表現出穩健的性能 場景。對于罕見情況下的對象,它的重復框在幾個階段內被刪除。人群場景需要更多階段來優化,但最終每個對象都被精確且唯一地檢測到。
5 結論
我們提出了 Sparse R-CNN,這是一種用于圖像中對象檢測的純稀疏方法。提供了一組固定的稀疏學習對象提議,以通過動態頭執行分類和定位。最終預測直接輸出,沒有非最大抑制后過程。稀疏 R-CNN 展示了其與完善的檢測器相當的準確性、運行時間和訓練收斂性能。我們希望我們的工作能激發人們重新思考密集先驗和探索下一個的慣例 對象檢測器的生成。
致謝
這項工作得到了 HK No.27208720 普通研究基金的支持。
非最大抑制后過程。稀疏 R-CNN 展示了其與完善的檢測器相當的準確性、運行時間和訓練收斂性能。我們希望我們的工作能激發人們重新思考密集先驗和探索下一個的慣例 對象檢測器的生成。
致謝
這項工作得到了 HK No.27208720 普通研究基金的支持。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。