最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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 的不支持層處理的評論 (共 條)

分享到微博請遵守國家法律
绵阳市| 杂多县| 门源| 石阡县| 汨罗市| 高雄市| 资中县| 望城县| 黄龙县| 镇平县| 大竹县| 鄯善县| 上思县| 山丹县| 新余市| 滦南县| 德江县| 汝南县| 泰和县| 龙游县| 美姑县| 青海省| 祥云县| 图们市| 麦盖提县| 兰考县| 灵寿县| 镇平县| 上犹县| 岳西县| 新兴县| 建平县| 阳山县| 新疆| 牙克石市| 惠东县| 浦北县| 白城市| 大连市| 海原县| 丹东市|