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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

关于mmdetection上手的几点说明

發(fā)布時(shí)間:2025/3/8 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于mmdetection上手的几点说明 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

關(guān)于mmdetection上手的幾點(diǎn)說(shuō)明

官方的文檔很有參考價(jià)值,并且也有中文版,應(yīng)當(dāng)是大家上手 mmdetection 的第一參考,本文是記錄一些筆者在小白階段上手 mmdetection 時(shí)的一些心得,這些東西沒(méi)有人提,可能是大佬們覺(jué)得這些再自然不過(guò)了,也可能是自己在一開(kāi)始對(duì) mmdet 項(xiàng)目的理解不夠,在這里記錄一下,如果能幫到其他剛?cè)腴T的朋友就更好了。

注意:對(duì)于官方文檔中已有的內(nèi)容,本文不會(huì)重復(fù)介紹,二者配合閱讀并動(dòng)手實(shí)踐是最佳的上手mmdetection的方式。如有問(wèn)題或發(fā)現(xiàn)錯(cuò)誤,歡迎留言交流。

1 關(guān)于不同的安裝方式

官方文檔提供了四種安裝方式:

  • mim
  • pip
  • 源碼安裝
  • docker

docker 這里我們先不提,mim 和 pip 暫且看做一類。

pip/mim

通過(guò) pip/mim 安裝的 mmdet 會(huì)直接裝在當(dāng)前 python 的虛擬環(huán)境中,比如是在 conda 環(huán)境下的話,就會(huì)是在類似下面這樣的路徑中:

/home/song/anaconda3/envs/[YOUR_CONDA_ENV_NAME]]/lib/python[x.x]/site-packages/

這樣,我們?cè)诩せ钸@個(gè)環(huán)境之后,就可以正常的 import mmdet 中的各種組件了。就跟其他 python 包比如 pytorch 類似。注意:我們安裝的這個(gè)包是叫做 mmdet ,而不是 mmdetection。

源碼安裝

我們?nèi)绻窃创a安裝 mmdetection ,即類似(具體命令參考官方文檔)

git clone ... ... python setup.py ...

這樣其實(shí) mmdet 包也就裝到我們當(dāng)前的的 python 的虛擬環(huán)境中了。跟上面類似,同樣要注意我們安裝的這個(gè)包是叫做 mmdet ,而不是 mmdetection。

另外有一點(diǎn),就是我們 clone 下來(lái)的這個(gè)項(xiàng)目目錄在安裝完畢之后還有什么用呢?這里就是本文要說(shuō)明的一個(gè)點(diǎn)了。

2 關(guān)于mmdetection的目錄結(jié)構(gòu)

mmdet 子目錄

注意我們這個(gè) clone 下來(lái)的目錄是叫做 mmdetection ,而不是 mmdet,mmdet 是其中的一個(gè)子目錄。通常,整個(gè) mmdetection 目錄會(huì)包含以下內(nèi)容:

. |-- checkpoints |-- CITATION.cff |-- configs |-- debug_icf_config.py |-- demo |-- docker |-- docs |-- LICENSE |-- MANIFEST.in |-- mmdet |-- mmdet.egg-info ... |-- setup.cfg |-- setup.py |-- tests |-- tools ...

可以看到 mmdet 確實(shí)是其中一個(gè)子目錄,而 mmdet 子目錄的內(nèi)容,我們上面提到過(guò),在執(zhí)行完 python setup.py ... 之后就已經(jīng)安裝到我們當(dāng)前 python 的虛擬環(huán)境中了,比如 /home/song/anaconda3/envs/[YOUR_CONDA_ENV_NAME]]/lib/python[x.x]/site-packages/ 路徑下。**其實(shí)可以說(shuō),我們 clone 下來(lái)的這個(gè)包含 mmdet 的 mmdetection 的項(xiàng)目目錄,在安裝完之后,就可以刪了。不會(huì)影響到我們正常地 import mmdet 中的內(nèi)容,我們?cè)谄渌ぷ髂夸浿?import mmdet 時(shí)也 不會(huì)再?gòu)?clone 下來(lái)的這個(gè)項(xiàng)目目錄中 import 內(nèi)容了,而是去上面提到的 python 虛擬環(huán)境路徑中 import **,記住這一點(diǎn),一會(huì)兒會(huì)提它的作用。

其他子目錄

但是,那其他的子目錄是做什么用的呢。mmdetection 這么優(yōu)秀的開(kāi)源項(xiàng)目,總不會(huì)放一些無(wú)關(guān)的東西在里面吧。而且官方教程中的很多例子都會(huì)用到 tools,configs 這些子目錄中的內(nèi)容,看起來(lái)很有用的樣子。

**是的,這些東西確實(shí)很有用,它相當(dāng)于官方為我們提供的一些使用 mmdet 庫(kù)的例子。**通常,我們利用 mmdet 庫(kù)跑檢測(cè)模型也直接根據(jù)這些東西改就好了,完全不用自己從頭實(shí)現(xiàn)。

比如,我們要跑一個(gè) Faster RCNN 的模型,通常只需要在 mmdetection 目錄下按照類似如下的方式啟動(dòng)訓(xùn)練:

python tools/train.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py

關(guān)于怎么利用官方提供的其他這些子目錄作為示例,構(gòu)建自己的基于mmdet的項(xiàng)目并進(jìn)行模型訓(xùn)練,請(qǐng)看下一小節(jié)。

3 關(guān)于構(gòu)建自己的工作目錄并啟動(dòng)訓(xùn)練

前面我們提到:

  • 不管通過(guò)哪一種方式完成了 mmdet (不叫mmdetecion)的安裝之后,mmdet 這個(gè)包就已經(jīng)在我們的 python 虛擬環(huán)境中了,我們可以在任何位置 import mmdet 中的內(nèi)容。
  • 如果是通過(guò)源碼安裝,在安裝完成后。clone 下來(lái)的 mmdetecion 項(xiàng)目目錄(注意,mim/pip 方式安裝從頭到尾就不會(huì)見(jiàn)到這個(gè)目錄)理論上就沒(méi)有絕對(duì)存在的必要了。但是,其中的除了 mmdet 包本身之外的 tools、configs 等內(nèi)容,相當(dāng)于是官方為我們提供的一些實(shí)踐,我們通常基于這些內(nèi)容來(lái)稍微修改 configs(數(shù)據(jù)集、模型、數(shù)據(jù)預(yù)處理方式、損失函數(shù)等)進(jìn)行訓(xùn)練。

了解了這些之后,要基于 mmdet 訓(xùn)練自己的檢測(cè)模型其實(shí)就有兩種方式:

直接基于mmdetecion項(xiàng)目目錄

在通過(guò)源碼安裝完成之后,我們可以直接把 clone 下來(lái)的 mmdetection 項(xiàng)目目錄當(dāng)做自己的工作目錄,學(xué)習(xí)官方文檔的快速啟動(dòng)、教程,都可以在本目錄下進(jìn)行實(shí)操。在過(guò)完官方教程之后,相必對(duì)于各個(gè)子目錄的功能以及如何構(gòu)建自己的工作目錄就了如指掌了。

自己新建工作目錄

前面提到過(guò),對(duì)于 pip/mim 方式安裝,從頭到尾就不會(huì)見(jiàn)到 mmdetection 這個(gè)項(xiàng)目目錄,不過(guò)之前也說(shuō)了,完成安裝之后,這個(gè)項(xiàng)目目錄就沒(méi)有一定要存在的必然性了。此時(shí)自然也不能共上面一種方式來(lái)構(gòu)建了,但我們完全可以自己新建一個(gè)自己的工作目錄,通過(guò)已經(jīng)安裝好的 mmdet 庫(kù),實(shí)現(xiàn)必要的功能、訓(xùn)練腳本和config文件等來(lái)進(jìn)行模型訓(xùn)練。這也并不是特別復(fù)雜,一般來(lái)說(shuō),最簡(jiǎn)單的訓(xùn)練功能只需要 train.py 和 config 文件就可以開(kāi)始了,這兩樣是必要的的。

筆者目前的做法還是借用官方倉(cāng)庫(kù)中 tools/train.py 和官方的一些基礎(chǔ)的 base config 文件稍作修改,訓(xùn)練自己的模型。也建議新手入門先直接通過(guò) clone 下來(lái)官方倉(cāng)庫(kù),走一下官方教程,慢慢熟悉,后面再實(shí)現(xiàn)自己想要的比較定制化的功能。

實(shí)際上,對(duì)于檢測(cè)模型的調(diào)整無(wú)非就是在數(shù)據(jù)集、模型、數(shù)據(jù)預(yù)處理方式、損失函數(shù)等方面,這也都可以通過(guò)自己實(shí)現(xiàn)自己定制化的模塊并注冊(cè)進(jìn) mmdet 包,并在 config 文件中調(diào)用。這就是下面要介紹的自定義注冊(cè)的內(nèi)容。

4 關(guān)于自己自定義注冊(cè)的內(nèi)容

關(guān)于自己自定義注冊(cè)的內(nèi)容,首先要去參考官方文檔教程3-6,其實(shí)文檔中的教程寫(xiě)的很清楚,文章開(kāi)頭也說(shuō)過(guò)本文不會(huì)重復(fù)教程中已有的內(nèi)容。因此這一小節(jié)主要介紹一個(gè)關(guān)于自己自定義注冊(cè)的內(nèi)容需要注意的點(diǎn)。

注意

不管是是哪種安裝方式,我們?cè)谄渌ぷ髂夸浿?import mmdet 時(shí)不會(huì)再?gòu)?mmdetection 項(xiàng)目目錄中 import 內(nèi)容,而是去上面提到的 python 虛擬環(huán)境路徑中 import ,筆者之前特意強(qiáng)調(diào)了這一點(diǎn),需要注意的地方就在這里。

由于我們不會(huì)在 mmdetecion 項(xiàng)目目錄中 import 內(nèi)容,而是到虛擬環(huán)境路徑下對(duì)應(yīng)的文件中 import,那這里就要注意,自己實(shí)現(xiàn)的自定義內(nèi)容要注冊(cè)在虛擬環(huán)境路徑下對(duì)應(yīng)的文件中,而不要寫(xiě)到 clone 下來(lái)的目錄中,那樣我們 import 的時(shí)候會(huì) import 不到自己實(shí)現(xiàn)并注冊(cè)的內(nèi)容。

尾記

就先介紹這么多,筆者本身也是剛剛正式接觸 mmdetection,確實(shí)是一個(gè)很好用的檢測(cè)工具箱,自己在之前理解不當(dāng)?shù)臅r(shí)候一直覺(jué)得很麻煩,甚至覺(jué)得學(xué)這學(xué)那的 config、注冊(cè)自定義內(nèi)容,還不如直接自己寫(xiě)訓(xùn)練流程。澄清了上面幾個(gè)點(diǎn)之后算是了解了整個(gè)項(xiàng)目的基本運(yùn)作方式,真香。

有問(wèn)題或者有理解不當(dāng)?shù)牡胤綒g迎留言交流。

總結(jié)

以上是生活随笔為你收集整理的关于mmdetection上手的几点说明的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。