国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

海思hi3516dv300芯片AI圖像模塊學習(十三) YOLOV3 的不支持層處理

2022-08-11 15:56 作者:餅干快快快跑  | 我要投稿


7.不支持層計算

7.1 輸入:

硬件參數(shù)(網(wǎng)絡(luò)層、結(jié)果內(nèi)存地址)

s_stYolov3NnieParam

軟件參數(shù)(檢測種類、roi配置等)

s_stYolov3SoftwareParam

7.2 函數(shù)本體

讀出每層的Stride和BlobAddr-VirAddr

SVP_NNIE_Yolov3_GetResult函數(shù)

輸入:

au64InputBlobAddr 、Stride,硬件系統(tǒng)儲存地址和字節(jié)數(shù)

YOLOv3軟件參數(shù)結(jié)構(gòu)體?

輸入圖分辨率

? ? HI_U32 u32OriImHeight;

? ? HI_U32 u32OriImWidth;

每個格子框數(shù)量 HI_U32 u32BboxNumEachGrid;

檢測種類數(shù)量? HI_U32 u32ClassNum;

網(wǎng)格大小

? ? HI_U32 au32GridNumHeight[3];

? ? HI_U32 au32GridNumWidth[3];

非極大值抑制閾值 值越小預(yù)測框與標注框重疊度越高

? ? HI_U32 u32NmsThresh;

conf_thresh 網(wǎng)格包含物體的概率或分數(shù)閾值,值越高濾除的不含物體的網(wǎng)格越多

? ? HI_U32 u32ConfThresh;

每張圖中框的最大數(shù)量

? ? HI_U32 u32MaxRoiNum;

聚類先驗anchor框的數(shù)值

? ? HI_FLOAT af32Bias[3][6];

結(jié)果等信息存儲位置

? ? SVP_MEM_INFO_S stGetResultTmpBuf;

? ? SVP_DST_BLOB_S stClassRoiNum;

? ? SVP_DST_BLOB_S stDstRoi;

? ? SVP_DST_BLOB_S stDstScore;

SAMPLE_SVP_NNIE_YOLOV3_REPORT_BLOB_NUM=3


1.輸出結(jié)果的最大維度大小統(tǒng)計

//輸出結(jié)果中有用3種大小的grid分別檢測的結(jié)果

//au32GridNumWidth:每個grid的大小,三種:[1]圖片大小/32 [2]圖片大小/16 [3]圖片大小/8 ,不同大小的grid適應(yīng)不同大小的物體檢測

//Bounding Box=BBOX,每個bbox里有的向量維度。這個數(shù)值為 num_classes(王工的檢測網(wǎng)里就一個類別所以這里是1)+5(x、y、w、h、c)。

//u32EachGridBbox每個grid里bbox數(shù)量

最后結(jié)果:

u32MaxBlobSize = u32BlobSize,獲得最大的結(jié)果向量維度(應(yīng)該8*8grid那組數(shù)據(jù))

2.bbox總數(shù)——有多少個u32MaxBlobSize維度的向量的內(nèi)存空間應(yīng)該劃出

3.硬件輸出InputBlob重新排列,放到permute里面

//逐個grid,逐個bbox,逐個bbox中元素,把輸出數(shù)據(jù)InputBlob全部放到Permute向量里了,Permute向量的長度=k*k(grid數(shù)目)*EachGridBbox*EACH_BBOX_RESULT_NUM

4.解碼bbox結(jié)果和計算分數(shù)

  1. 計算當前bbox在Permute向量的位置

    起始點 Offset = j * u32EachGridBbox*BBOX_INFER_RESULT_NUM之前的grid+k*BBOX_INFER_RESULT_NUM當前grid第k個之前的向量長度? ??

2. 計算bbox——中心點x、y的相對坐標、w、h的相對長寬

3.求bbox最可能的類別以及相應(yīng)的概率,簡化bbox內(nèi)部元素,置信度大于閾值的bbox放到新的結(jié)構(gòu)體pstBbox里面收集起來

4.bbox集合pstBbox中數(shù)據(jù)按置信度快速排序

1.ps32Array=pstBbox,2.范圍low=0,3.high=BboxNum(pstBbox中bbox數(shù)量)

4.size =SAMPLE_SVP_NNIE_YOLOV3_BBOX_S(內(nèi)部結(jié)構(gòu)與pstBbox相同)/u32

5.需要排序的對象pstBbox的第4項ClassScore, 6.內(nèi)存位置

搞不懂這種結(jié)構(gòu)體一會是層疊式一層層的,一會又是一整條向量。。

和之前一樣找到每個bbox概率的位置

u32ArraySize * s32Low + u32ScoreIdx


雙指針快速排序算法,將首段i位置的置信度與尾端j位置的置信度對比,如果首端i位置的較小,則把j位置的數(shù)據(jù)交換到j(luò)位置出,如此循環(huán)置信度小的bbox數(shù)據(jù)不斷后移,大的不斷前移,最終實現(xiàn)pstBbox中數(shù)據(jù)按置信度從大到小排序。

交換i位置bbox和j位置bbox的數(shù)據(jù)

5.計算IOU,進行非極大值抑制

輸入:排好序的bbox集合、bbox數(shù)量、iou閾值、bbox的總數(shù)

計算第i個與之后所有bbox的iou,大于iou閾值的bbox的mask賦值1

從頭逐個往后遍歷,重復的bbox跳過(mask=1)

由于pstbbox概率從大到排列,跳過重復的bbox,只需要計算需要顯示的bbox,后面的不用算NMS了

最后獲得做好mark標記的pstbbox

6.獲得最終輸出的bbox結(jié)果


//遍歷物體類別,分物體類別取值u32ClassNum

//遍歷bbox

//該類別且無重復mark=0

//地址和置信度存到硬件輸出roi信息的內(nèi)存地址里ps32DstRoi和ps32DstScore

//類別存到軟件配置的內(nèi)存地址里stClassRoiNum

//存左上右下坐標和置信度

8.輸出yolo檢測結(jié)果

輸入:NMS后BBOX的置信度、坐標、類別,結(jié)果閾值

字符打印

9.VO畫面輸出ROI結(jié)果,這部分需要參考rfcn修改,前面需要初始化vio等操作。

未完待續(xù)

海思hi3516dv300芯片AI圖像模塊學習(十三) YOLOV3 的不支持層處理的評論 (共 條)

分享到微博請遵守國家法律
台湾省| 将乐县| 安达市| 那坡县| 奎屯市| 新平| 容城县| 化州市| 仁怀市| 永春县| 新泰市| 尤溪县| 景东| 衡南县| 霍邱县| 克东县| 错那县| 仁怀市| 吉安县| 内丘县| 洛扎县| 修文县| 成武县| 正镶白旗| 沽源县| 子洲县| 武鸣县| 嵊泗县| 河北省| 磐安县| 若羌县| 西华县| 环江| 郸城县| 精河县| 邢台县| 孝感市| 克拉玛依市| 湘潭县| 华池县| 揭阳市|