91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何去制作目標檢測的訓練樣本圖像

新機器視覺 ? 來源:CSDN ? 作者:CSDN ? 2021-05-11 09:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文從五個問題出發(fā)依次遞進講解了該如何去制作目標檢測的訓練樣本圖像,并推薦了訓練樣本圖像制作工具以及使用步驟。

【 看到這個題目相信不少人第一感覺是小題大作、故弄玄虛。不過還請先稍微按捺一下胸中的不快,在腦中給出下面這幾個問題的答案。然后對照一下本文將要給出的答案,看看是否能夠心平氣和?!?/p>

像元值應該如何進行歸一化?

樣本圖像的尺寸僅與內存、顯存大小有關嗎?

網絡能檢測的目標框范圍只與圖像大小有關嗎?

卷積網絡真的具有平移和旋轉不變性?

制作目標檢測訓練樣本的最佳方案是什么?

以下為原文:

像元值應該如何進行歸一化?

不能想當然地認為像元值的取值范圍就是0到255,雖然普通數碼相機拍攝出來的圖像各個通道的取值范圍確實是0-255。要知道這個0-255的取值是從更大取值范圍處理得來的。在局部強烈光照下或者均勻光照下,還是弱光環(huán)境或者強光環(huán)境,人眼能夠感受到相同的顏色,但是數碼相機的傳感器會量化出不同的像元值。RGB的取值對應了固定的顏色,不同環(huán)境下傳感器會量化出的像元值要怎么才能映射為一致的顏色?這個技術就叫做寬動態(tài)。為了寬動態(tài)處理結果更細膩,傳感器的量化范圍通常更大。如下圖,左側是關閉了寬動態(tài)的效果,在這個圖上要想把手機檢測出來幾乎是不可能的。

由于數碼相機做過了寬動態(tài)處理,對普通數碼照片進行歸一化,可以簡單的將0-255線性映射到0-1。而醫(yī)學圖像、遙感圖像則不能簡單的利用最小最大像元值歸一化到0-1。由于白噪聲的存在,醫(yī)學圖像、遙感圖像的直方圖通常如下圖所示(橫軸代表像元值范圍,紅色縱軸表示歸一化后的取值,綠色縱軸表示不同像元值的像素頻數,綠色曲線就是直方圖)。

23aa1ba6-b1d6-11eb-bf61-12bb97331649.png

如果按照紅色實線代表的歸一化映射進行處理,最終絕大多少像素取值集中在0附近,整幅圖像一片黑(翻轉后的綠色虛曲線就是歸一化后的直方圖。最佳的處理方式是按照紅色長線段虛線代表的映射進行歸一化,但是這個映射難以求解,一般按照紅色點虛線代表的映射進行處理就行。

紅色點虛線代表的映射其實挺簡單的,選取合適的最小最大值,小于最小值的置為0,大于最大值的置為1,中間的線性映射。最大最小值的選取方法有均值+-x*標準差和排除兩端一定占比的像素。排除兩端一定占比的像素的示意圖如下,從兩端按照百分比排除像素時就能夠選取新的最小最大值,此時的歸一化映射圖像為紅色點虛線。

23ba8c98-b1d6-11eb-bf61-12bb97331649.png

樣本圖像的尺寸僅與內存、顯存大小有關嗎?

如果柵格的邊長減去1后不能被stride整除,卷積的降采樣過程會丟棄邊緣的像素,結果是特征圖像素與輸入圖像位置映射會產生偏移。最終的特征圖是不能完整映射到輸入圖像范圍的,拿一個錯位的特征圖像素去預測原圖上的目標,想想都不靠譜。目前所有的深度學習框架都沒有考慮這里的映射錯位關系,就算用Mask-RCNN提供的ROIAlign也是錯位的。

23c9dcb6-b1d6-11eb-bf61-12bb97331649.jpg

所以訓練時輸入樣本圖像的大小和檢測時切塊的大小只能用最終特征圖的尺寸反推回去,保證在卷積過程中不丟棄邊緣。

網絡能檢測的目標框范圍只與圖像大小有關嗎?

感受野是直接或者間接參與計算特征圖像素值的輸入圖像像素的范圍,直接感受野就是卷積核大小,隨著卷積層數的加深之前層次的感受野會疊加進去。感受野小了缺乏環(huán)境信息,感受野大了引入太多環(huán)境干擾,所以一個網絡能夠檢測的目標框范圍與特征圖像素或者特征向量的感受野有關,通常能夠檢測的目標框邊長范圍是感受野邊長的0.1-0.5倍。

詳細結論參考論文:Understanding the effective receptive field in semantic image segmentation

https://www.onacademic.com/detail/journal_1000040207575210_3759.html

23d64c4e-b1d6-11eb-bf61-12bb97331649.jpg

拿到了一個網絡要做感受野分析,然后確定它能夠檢測多少像素的目標。實際目標檢測任務需要綜合網絡結構設計和圖像分辨率選擇。如果目標框的像素范圍超過了網絡的感受野,就需要將原始圖像縮小后再檢測。

卷積網絡真的具有平移和旋轉不變性?

直覺上同一個卷積核,只要不是中心對稱的像素團,旋轉之后的卷積值肯定是不一樣的,也就是說卷積網絡顯然不具有旋轉不變性。那么卷積是否具有平移不變性呢?好像具有平移不變性啊,同一個像素團不管放在哪里,只要卷積核對齊了,卷積值都是一樣的。但是不要忘記了padding,每一層卷積都加padding的話,圖像邊緣的像素混入的padding影響肯定更大。對于卷積網絡來說,同一個像素團離圖像中心的距離不同卷積值肯定是不同的,所以加了padding的卷積網絡平移不變性也是不存在的。不帶padding的網絡每一層都必須進行嚴密的設計,就像不帶padding的UNet一樣的,顯然是很麻煩的。通常為了網絡設計的簡單,對訓練樣本做平移增廣是很有必要的。

可能有些人還記著以前關于CNN具有各種不變性的尬解釋,轉不過來彎的讀讀下面的論文,CNN啥不變性都沒得,就靠蠻力擬合大量得數據。

Making Convolutional Networks Shift-Invariant Again

SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep

Mind the Pad -- CNNs Can Develop Blind Spots

On Translation Invariance in CNNs: Convolutional Layers can Exploit Absolute Spatial Location

How much Position Information Do Convolutional Neural Networks Encode

Why do deep convolutional networks generalize so poorly to small image transformations

制作目標檢測訓練樣本的最佳方案是什么?

1.做感受野分析,確定能夠檢測目標邊長范圍

這一步得自己算?,F成的網絡都能搜到別人算好的結果,拿來直接用。

2.用最終特征圖的尺寸反推訓練樣本圖像的尺寸

這一步也得自己算。有了目標邊長范圍,選擇大于目標框最大邊長2倍左右的訓練樣本圖像的尺寸。

3.對原始樣本圖像進行旋轉和成像效果變換增廣

這一步得寫代碼。目前廣泛使用的正框樣本庫,旋轉之后范圍框更加不準,沒得意義。如果自己要做樣本記得一定要用傾斜范圍框去標注,這樣才能做旋轉樣本增廣,從傾斜范圍框生成的正框準一些。旋轉增廣有現成的工具可以用,但是都是基于正框實現的,這里有一個基于python和opencv實現的(https://github.com/XuelianZ/augment)。

成像效果變換樣本指,通過直方圖匹配等算法仿真夜晚、霧、雨、雪等天氣情況的成像效果。

為什么這兩種增廣放到切圖之前?對于成像效果變換來說需要的統計信息越準確越好,切成小圖之后難以得到較好的算法效果。對于旋轉來說,切完圖進行旋轉,必然要填充值。填充值屬于人為制造的偽顯著區(qū)域,不符合檢測時的實際情況。

4.對原始樣本圖像進行切圖,切圖的同時可以做平移樣本增廣

這一步還得寫代碼。已經有的工具很多都是簡單的切圖,只能支持0-255的普通數碼照片,也沒有考慮到能夠檢測的目標邊長范圍。如果有超過能夠檢測的目標邊長范圍的范圍框,需要對圖像進行縮小,且要將這個縮小比率記錄下來。檢測目錄時也要按這個縮放比率進行檢測。對于醫(yī)學圖像、遙感圖像在切圖過程中需要進行歸一化處理。歸一化參數需要從原始大樣本圖像上計算出來,切完的小圖的統計信息不夠全面,歸一化參數可能不夠好。

5.其它樣本增廣操作

比如翻轉、加噪、拼接、摳洞、縮放等等,這些操作可以在訓練過程中隨機執(zhí)行。個人認為拼接、摳洞、縮放對工程應用來說沒有意義。拼接增廣指隨機找?guī)讖垐D各取一部分或者縮小之后拼起來作為一幅圖用,拼接出來的圖有強烈的拼接痕。摳洞指隨機的將目標的一部分區(qū)域扣掉填充0值。拼接、摳洞屬于人為制造的偽顯著區(qū)域,不符合實際情況,白白增加訓練量。

拼接的一個作用是增加了小目標樣本的數量,其實平移增廣也可以增加小目標樣本的數量。因為小目標可以在圖像范圍內平移的次數更多。

訓練過程隨機縮放也是沒必要的,縮放之后的圖像可能會導致特征圖和輸入圖像映射錯位(參考“樣本圖像的尺寸僅與內存、顯存大小有關嗎?”);另外工程應用過程中控制好成像距離就能控制目標尺寸范圍。僅采集符合所設計目標尺寸范圍的樣本圖像即可。

強烈推薦的訓練樣本圖像制作工具(切圖工具)

這套工具在切圖過程中實現了兩種歸一化方案和平移增廣,輸出圖像可以選擇輸出為0-1或者0-255,輸出到0-255的圖像可以用普通看圖工具查看。輸出到0-1的圖像數值精度高一些,可能訓練效果會好一些。對于普通數碼照片,因為原來取值范圍就是0-255,僅以0和255作為最小最大值做個線性映射,不會選取新的最小最大值。這套工具還包含一個統計范圍框寬高范圍并確定切圖縮放比率的工具。

這套工具僅支持yolo格式的范圍框標注,范圍框坐標可以是歸一化的也可以是不歸一化的。建議做樣本時不要歸一化坐標,整數的坐標值還是更準一些,可以利于其它處理。

(一)范圍框寬高統計工具

是命令行工具,有6個參數,參數之間用空格分開。

輸入目錄 范圍框標注格式 c,cx,cy,w,h

輸出目錄

輸入文件擴展名,多個擴展名用半角逗號分隔

輸入影像的比例尺,0表示從影像中讀取,沒有空間參考的影像的比例尺默認為1,普通照片就是沒有空間參考的,遙感影像才有空間參考

輸出樣本圖片邊長

裁剪出的樣本圖片上的目標框邊長范圍,有四個值半角逗號分隔,頭兩個是“按照所需縮放比例縮放之后最佳目標框邊長的范圍”,后兩個是“按照所需縮放比例縮放之后有效目標框邊長的范圍”

“最佳目標框邊長的范圍”指需要對圖像進行縮放,讓所有的范圍框的邊長都能落入這個范圍?!坝行繕丝蜻呴L的范圍”指按照某個比例縮放后,還是有目標框不能落在最佳范圍,但是只要在有效范圍內就保留。

下面是一個運行示例,路徑參數中有空格需要用半角引號包起來。

sidelen_cwh.exe"D:DOTAv1.5trainimagesimages"D:Testpng,jpg057621,405,10,567

23e2dd7e-b1d6-11eb-bf61-12bb97331649.png

這個工具會輸出一個文本文件STATS.txt。其中內容為

1.000000,2.0000001.000000,1.0000007.162937,487.783206

這里為了兼容遙感影像,引入了比例尺的概率。第一行縮放比例是一個像素對應的地理長度,普通數碼照片的比例尺默認為1,還有一個為2的縮放比例,意思是將圖像寬高都縮小為原來的二分之一。第二行是所有圖像的原始比例尺范圍,因為沒有空間參考,所以比例尺都是1。第三行是范圍框邊長的范圍,以地理長度為單位的,如果沒有空間參考也就是像素單位。

從中可以看出DOTA數據集范圍框邊長的最大值有488,對于yolov3的感受野來說不能全都檢測出來,除了在原始比例尺檢測外,還得在縮小后的圖像上檢測。當然訓練也是一樣的需要在多個比例尺上進行。

(二)訓練樣本裁剪工具

也是命令行工具,有12個參數,參數之間用空格分開。

輸入目錄 范圍框標注格式 c,cx,cy,w,h

輸出目錄

輸入文件擴展名,多個擴展名用半角逗號分隔

輸入影像的比例尺,0表示從影像中讀取,沒有空間參考的影像的比例尺默認為1,普通照片就是沒有空間參考的,遙感影像才有空間參考

輸出樣本的比例尺,也就是縮放比例,多個值用半角逗號分隔。采用范圍框寬高統計工具輸出文件的第一行。

輸出樣本圖像的通道組合,將原始樣本圖像的多個通道按順序輸出,通道編號從1開始

歸一化映射參數,有mg、mo、sg、so四種方式,其后跟的數值是相應方式的歸一化參數。m表示最大最小值拉伸,其后的數值表示像元數目截斷的百分比;s表示均值加減標準差拉伸,其后的數值表示標準差的倍數;g表示拉伸到0-255,如果本來就是8位的則不拉伸;o表示拉伸到0-1,如果本來就是8位的則直接將0-255映射到0-1。

輸出樣本圖片邊長

裁剪出的樣本圖片上的目標框邊長范圍,與范圍框寬高統計工具一致。

進行樣本增廣時目標框平移的最小像素數量和平移量占范圍框寬高的比值,當比值乘以實際范圍框寬高小于最小平移量時仍然按最小平移量移動。

目標范圍框在裁剪圖像范圍內的部分占比的閾值,超過這個值才保留。切圖之后范圍框跑到圖像外了,需要排除。

目標框寬高聚類數目。

下面是一個運行示例,路徑參數中有空格需要用半角引號包起來。

splitimg_cwh.exe"D:DOTAv1.5trainimagesimages"D:Testpng,jpg011,2,3sg2.557621,405,10,567237,0.650.679

24121440-b1d6-11eb-bf61-12bb97331649.jpg

242989d6-b1d6-11eb-bf61-12bb97331649.jpg

這個工具除了輸出裁剪出來的樣本外,還會輸出一個文本文件ANCHORS.txt和一個圖像HIST.tif。

ANCHORS.txt其中內容為

20,20,57,45,104,78,150,139,169,179,25,89,30,169,42,329,122,407這是范圍框寬高的聚類中心,可以直接用做yolo的錨點框。

HIST.tif是范圍框的二維統計直方圖,像素值累計了各個寬高的范圍框數量。利用范圍框的二維累計直方圖可以加快聚類。

裁剪出來的樣本圖像如下。

挑選了幾個方塊圖,把范圍框疊加顯示看看平移增廣的效果。

責任編輯:lq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2576

    文章

    55041

    瀏覽量

    791383
  • 圖像
    +關注

    關注

    2

    文章

    1096

    瀏覽量

    42332
  • 像素
    +關注

    關注

    1

    文章

    206

    瀏覽量

    19250

原文標題:實操教程|怎樣制作目標檢測的訓練樣本圖像?

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    電壓放大器在全導波場圖像目標識別的損傷檢測實驗的應用

    圖像目標識別的智能損傷檢測方法,通過結合超聲導波檢測技術與深度學習算法,系統探究了損傷引起的波場畸變特性及其識別機制。 測試設備:掃描激光多普勒測振儀、函數發(fā)生器、功率放大器ATA-2
    的頭像 發(fā)表于 12-02 11:37 ?283次閱讀
    電壓放大器在全導波場<b class='flag-5'>圖像</b><b class='flag-5'>目標</b>識別的損傷<b class='flag-5'>檢測</b>實驗的應用

    經世智能復合機器人,助力實驗室檢測樣本上下料,提升實驗效率

    在生命科學、醫(yī)藥研發(fā)、環(huán)境監(jiān)測等前沿領域的實驗室中,樣本檢測的準確性與時效性直接關系到實驗成果的產出效率。然而,傳統人工進行檢測樣本上下料時,常面臨“
    的頭像 發(fā)表于 11-18 13:43 ?1806次閱讀
    經世智能復合機器人,助力實驗室<b class='flag-5'>檢測</b><b class='flag-5'>樣本</b>上下料,提升實驗效率

    基于級聯分類器的人臉檢測基本原理

    在于它通過對于原圖的降采樣,構造了一系列圖像的高斯金字塔,對于金字塔中的每一個尺度進行檢測。關于旋轉不變性的支持,我們可以對輸入的圖片做一次幾何變換,使其旋轉特定角度,然后對該角度下的圖片,進行
    發(fā)表于 10-30 06:14

    在Ubuntu20.04系統中訓練神經網絡模型的一些經驗

    本帖欲分享在Ubuntu20.04系統中訓練神經網絡模型的一些經驗。我們采用jupyter notebook作為開發(fā)IDE,以TensorFlow2為訓練框架,目標訓練一個手寫數字識
    發(fā)表于 10-22 07:03

    模板驅動 無需訓練數據 SmartDP解決小樣本AI算法模型開發(fā)難題

    算法作為軟實力,其水平直接影響著目標檢測識別的能力。兩年前,慧視光電推出了零基礎的基于yolo系列算法架構的AI算法開發(fā)平臺SpeedDP,此平臺能夠通過數據驅動模型訓練,實現算法從0到1的開發(fā)
    的頭像 發(fā)表于 09-09 17:57 ?1406次閱讀
    模板驅動  無需<b class='flag-5'>訓練</b>數據  SmartDP解決小<b class='flag-5'>樣本</b>AI算法模型開發(fā)難題

    RK3576 yolo11-seg訓練部署教程

    和分割頭設計,實現了像素級的精確目標檢測與分割,適用于自動駕駛、醫(yī)學影像、工業(yè)檢測等對精度和速度要求苛刻的場景。本教程針對目標分割算法yolov11seg的
    的頭像 發(fā)表于 07-25 15:21 ?1815次閱讀
    RK3576 yolo11-seg<b class='flag-5'>訓練</b>部署教程

    YOLOv8水果檢測示例代碼換成640輸入圖像出現目標框繪制錯誤的原因 ?

    \",中的best.kmodel替換為640輸入圖像,model_input_size=[640,640],就會出現目標檢測目標框位置混亂,目標
    發(fā)表于 06-18 06:37

    嵌入式AI技術漫談:怎么為訓練AI模型采集樣本數據

    多少數據,才能形成合適的樣本集,進而開始訓練模型呢? 此時,回答“按需提供”或者“先試試看”似乎會變成一句車轱轆話,看似回答了問題,但客戶還是無從下手。 AI數據樣本的三個原則 這里,我以教孩子認識蘋果和鴨梨為例進行說明。假設
    的頭像 發(fā)表于 06-11 16:30 ?1388次閱讀

    基于LockAI視覺識別模塊:C++目標檢測

    檢測是計算機視覺領域中的一個關鍵任務,它不僅需要識別圖像中存在哪些對象,還需要定位這些對象的位置。具體來說,目標檢測算法會輸出每個檢測到的對
    發(fā)表于 06-06 14:43

    基于LockAI視覺識別模塊:C++目標檢測

    本文檔基于瑞芯微RV1106的LockAI凌智視覺識別模塊,通過C++語言做的目標檢測實驗。本文檔展示了如何使用lockzhiner_vision_module::PaddleDet類進行目標
    的頭像 發(fā)表于 06-06 13:56 ?845次閱讀
    基于LockAI視覺識別模塊:C++<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>

    海思SD3403邊緣計算AI數據訓練概述

    AI數據訓練:基于用戶特定應用場景,用戶采集照片或視頻,通過AI數據訓練工程師**(用戶公司****員工)** ,進行特征標定后,將標定好的訓練樣本,通過AI訓練服務器,進行AI學習
    發(fā)表于 04-28 11:11

    Deepseek海思SD3403邊緣計算AI產品系統

    訓練樣本訓練 模型,具體商業(yè)價值和保密性,采用海思SD3403邊緣計算AI服務器+多路安防監(jiān)控IPC,讓差異化AI視頻系統, 成本控制極具市場競爭力。 海思SD3403邊緣計算AI部署分為三部分部:AI數據訓練、Deepse
    發(fā)表于 04-28 11:05

    基于RV1126開發(fā)板實現自學習圖像分類方案

    在RV1126開發(fā)板上實現自學習:在識別前對物體圖片進行模型學習,訓練完成后通過算法分類得出圖像的模型ID。 方案設計邏輯流程圖,方案代碼分為分為兩個業(yè)務流程,主體代碼負責抓取、合成圖像,算法代碼負責
    的頭像 發(fā)表于 04-21 13:37 ?11次閱讀
    基于RV1126開發(fā)板實現自學習<b class='flag-5'>圖像</b>分類方案

    RV1126 yolov8訓練部署教程

    本教程針對目標檢測算法yolov8的訓練和部署到EASY-EAI-Nano(RV1126)進行說明,而數據標注方法可以參考我們往期的文章。
    的頭像 發(fā)表于 04-18 15:18 ?2068次閱讀
    RV1126 yolov8<b class='flag-5'>訓練</b>部署教程

    快速部署!米爾全志T527開發(fā)板的OpenCV行人檢測方案指南

    、行人檢測概論使用HOG和SVM基于全志T527開發(fā)板構建行人檢測器的關鍵步驟包括: 準備訓練數據集:訓練數據集應包含大量正樣本(行人
    發(fā)表于 04-11 18:14