本發(fā)明涉及人工智能的智能視覺(jué)分析領(lǐng)域,具體地說(shuō)是一種基于pipeline的圖片推理方法、系統(tǒng)、設(shè)備及介質(zhì)。
背景技術(shù):
1、隨著移動(dòng)互聯(lián)網(wǎng)、智能手機(jī)以及社交網(wǎng)絡(luò)的發(fā)展帶來(lái)的海量圖片信息,不受地域和語(yǔ)言限制的圖片逐漸取代繁瑣而微妙的文字,成為傳詞達(dá)意的主要媒介。同時(shí)隨著人工智能的快速發(fā)展以及對(duì)于圖片信息獲取與解析領(lǐng)域的重視,圖像識(shí)別技術(shù)以及圖像識(shí)別效率就顯得尤為重要。
2、圖片識(shí)別技術(shù)是通過(guò)智能手段將圖片進(jìn)行解碼、處理、分析,以識(shí)別出各種不同模式下的目標(biāo)和對(duì)象的技術(shù)。圖片的識(shí)別過(guò)程包括圖片的解碼、預(yù)處理、圖片分割、特征向量提取和判斷匹配等。通俗的講就是借助計(jì)算機(jī)實(shí)現(xiàn)像人一樣讀懂圖片的內(nèi)容,并可能會(huì)產(chǎn)生更加智能的信息。但是傳統(tǒng)的圖片解析方式為opencv解碼方式,存在解析慢、效率低、解析的圖片格式單一等問(wèn)題。
3、故如何實(shí)現(xiàn)不同圖片格式的快速動(dòng)態(tài)解析,提高單張圖片解析推理效率是目前亟待解決的技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的技術(shù)任務(wù)是提供一種基于pipeline的圖片推理方法、系統(tǒng)、設(shè)備及介質(zhì),來(lái)解決如何實(shí)現(xiàn)不同圖片格式的快速動(dòng)態(tài)解析,提高單張圖片解析推理效率的問(wèn)題。
2、本發(fā)明的技術(shù)任務(wù)是按以下方式實(shí)現(xiàn)的,一種基于pipeline的圖片推理方法,該方法具體如下:
3、獲取圖片源并轉(zhuǎn)成原始的圖片二進(jìn)制格式;
4、根據(jù)獲取到的原始數(shù)據(jù)源格式采用decodebin插件動(dòng)態(tài)加載可用的解碼器和解復(fù)用器,并優(yōu)先選擇硬件加速解碼插件,完成待處理圖像的解碼;
5、對(duì)解碼后的圖片進(jìn)行歸一化處理;
6、根據(jù)加載到的推理模型使用對(duì)應(yīng)的推理方法獲取推理結(jié)果;
7、將推理結(jié)果整合成自定義協(xié)議格式返回http服務(wù)端進(jìn)行可視化展示。
8、作為優(yōu)選,獲取圖片源并轉(zhuǎn)成原始的圖片二進(jìn)制格式具體如下:
9、根據(jù)給定的圖片uri,利用rest服務(wù)獲取圖片的原始信息,即二進(jìn)制格式的圖片信息;
10、將二進(jìn)制格式的圖片信息傳入到pipeline管道的起始圖片源插件中。
11、更優(yōu)地,根據(jù)獲取到的原始數(shù)據(jù)源格式采用decodebin插件動(dòng)態(tài)加載可用的解碼器和解復(fù)用器,并優(yōu)先選擇硬件加速解碼插件,獲取待處理圖片,完成待處理圖像的解碼具體如下:
12、通過(guò)decodebin插件根據(jù)圖片原始信息自動(dòng)連接不同的解碼器到pipeline中完成圖片解碼;
13、將解碼數(shù)據(jù)通過(guò)硬件緩沖區(qū)id從pipeline上游插件傳入到下游插件中;
14、同時(shí)利用videoconvert做相應(yīng)圖片顏色空間的轉(zhuǎn)化和適配,由于其上游和下游插件已經(jīng)相互理解,當(dāng)無(wú)需圖片顏色空間轉(zhuǎn)化時(shí),以直通模式運(yùn)行,減少對(duì)性能的影響。
15、更優(yōu)地,推理模型集成yolov系列目標(biāo)檢測(cè)方法、目標(biāo)分類(lèi)算法和特征提取方法。
16、更優(yōu)地,根據(jù)加載到的推理模型使用對(duì)應(yīng)的推理方法獲取推理結(jié)果包括一次推理和二次推理兩個(gè)階段;
17、其中,一次推理用于檢測(cè)或分類(lèi)圖像中的目標(biāo),具體為:依據(jù)訓(xùn)練好的模型,從解碼歸一化后的圖片信息中檢測(cè)或識(shí)別出圖片中目標(biāo)信息,根據(jù)不同模型按需使用已集成的通用yolov4模型推理方法以及yolov5模型推理方法實(shí)現(xiàn)目標(biāo)的推理檢測(cè),比如在圖片中檢測(cè)到人臉,行人,車(chē)輛等目標(biāo);其中,圖片中的目標(biāo)信息包括目標(biāo)名稱、目標(biāo)置信度以及目標(biāo)坐標(biāo)位置;
18、二次推理用于將一次推理獲取的結(jié)果進(jìn)行目標(biāo)屬性識(shí)別以及目標(biāo)特征提取,比如人臉可以識(shí)別年齡階段、性別、是否戴口罩、是否帶眼鏡、是否帶帽子等屬性,以及獲取人臉特征向量便于人臉對(duì)比、以圖搜圖等功能;行人除人臉的屬性外還有衣服、發(fā)型等屬性的識(shí)別;車(chē)輛屬性包括車(chē)輛顏色、型號(hào)、款式、車(chē)牌信息等,二次推理不是必選項(xiàng),當(dāng)模型只需檢測(cè)沒(méi)有特征或者屬性分析時(shí),二次推理則可省略。
19、更優(yōu)地,將推理結(jié)果整合成自定義協(xié)議格式返回http服務(wù)端進(jìn)行可視化展示具體如下:
20、將推理模型檢測(cè)結(jié)果進(jìn)行相應(yīng)的尺寸轉(zhuǎn)化,使得檢測(cè)目標(biāo)坐標(biāo)對(duì)應(yīng)原始圖片像素大小;
21、將檢測(cè)到的目標(biāo)信息結(jié)果整合到自定義的協(xié)議中組合成消息隊(duì)列返回到http服務(wù)端進(jìn)行可視化展示。
22、一種基于pipeline的圖片推理系統(tǒng),該系統(tǒng)包括:
23、圖片源獲取模塊,用于根據(jù)給定的圖片uri,利用rest服務(wù)獲取圖片的原始信息,即二進(jìn)制格式的圖片信息,并將二進(jìn)制格式的圖片信息傳入到pipeline管道的起始圖片源插件中;
24、解碼模塊,用于通過(guò)decodebin插件根據(jù)圖片原始信息自動(dòng)連接不同的解碼器到pipeline中完成圖片解碼,將解碼數(shù)據(jù)通過(guò)硬件緩沖區(qū)id從pipeline上游插件傳入到下游插件中;同時(shí)利用videoconvert做相應(yīng)圖片顏色空間的轉(zhuǎn)化和適配;
25、預(yù)處理模塊,用于對(duì)解碼后的圖片進(jìn)行歸一化處理以適應(yīng)推理模型識(shí)別;
26、推理模塊,用于根據(jù)加載到的推理模型使用對(duì)應(yīng)的推理方法獲取推理結(jié)果;
27、后處理及返回結(jié)果模塊,用于將推理結(jié)果整合成自定義協(xié)議格式返回http服務(wù)端進(jìn)行可視化展示。
28、作為優(yōu)選,推理模塊包括一次推理子模塊和二次推理子模塊;
29、其中,一次推理子模塊用于檢測(cè)或分類(lèi)圖像中的目標(biāo),具體為:依據(jù)訓(xùn)練好的模型,從解碼歸一化后的圖片信息中檢測(cè)或識(shí)別出圖片中目標(biāo)信息,根據(jù)不同模型按需使用已集成的通用yolov4模型推理方法以及yolov5模型推理方法實(shí)現(xiàn)目標(biāo)的推理檢測(cè),比如在圖片中檢測(cè)到人臉,行人,車(chē)輛等目標(biāo);其中,圖片中的目標(biāo)信息包括目標(biāo)名稱、目標(biāo)置信度以及目標(biāo)坐標(biāo)位置;
30、二次推理子模塊用于將一次推理獲取的結(jié)果進(jìn)行目標(biāo)屬性識(shí)別以及目標(biāo)特征提取,比如人臉可以識(shí)別年齡階段、性別、是否戴口罩、是否帶眼鏡、是否帶帽子等屬性,以及獲取人臉特征向量便于人臉對(duì)比、以圖搜圖等功能;行人除人臉的屬性外還有衣服、發(fā)型等屬性的識(shí)別;車(chē)輛屬性包括車(chē)輛顏色、型號(hào)、款式、車(chē)牌信息等,二次推理不是必選項(xiàng),當(dāng)模型只需檢測(cè)沒(méi)有特征或者屬性分析時(shí),二次推理則可省略。
31、一種電子設(shè)備,包括:存儲(chǔ)器和至少一個(gè)處理器;
32、其中,所述存儲(chǔ)器存儲(chǔ)計(jì)算機(jī)執(zhí)行指令;
33、所述至少一個(gè)處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)執(zhí)行指令,使得所述至少一個(gè)處理器執(zhí)行如上述的基于pipeline的圖片推理方法。
34、一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)執(zhí)行指令,當(dāng)處理器執(zhí)行所述計(jì)算機(jī)執(zhí)行時(shí),實(shí)現(xiàn)如上述的基于pipeline的圖片推理方法。
35、本發(fā)明的基于pipeline的圖片推理方法、系統(tǒng)、設(shè)備及介質(zhì)具有以下優(yōu)點(diǎn):
36、(一)本發(fā)明通過(guò)圖片uri獲取圖片原始二進(jìn)制數(shù)據(jù)、將原始二進(jìn)制數(shù)據(jù)傳入pipeline中,在pipeline中通過(guò)decodebin+videocovert插件完成圖片解碼、圖片顏色空間轉(zhuǎn)換便于上下游插件相互理解來(lái)提升性能,然后采用yolov系列推理方法進(jìn)行目標(biāo)檢測(cè)、目標(biāo)屬性識(shí)別以及目標(biāo)特征向量提取,同時(shí)將推理結(jié)果整合成自定義協(xié)議格式返回服務(wù)端進(jìn)行可視化展示,各插件在pipeline中相互獨(dú)立相互隔離,每個(gè)插件負(fù)責(zé)各自的功能并通過(guò)緩存區(qū)實(shí)現(xiàn)數(shù)據(jù)流的傳遞;本發(fā)明摒棄了傳統(tǒng)的opencv解碼方式,充分利用gpu硬解碼,在適用的情況下,使用底層硬件加速插件,以提供最佳性能;相對(duì)于現(xiàn)有技術(shù)中opencv等解碼更具高效處理能力,一張圖片優(yōu)化時(shí)間比傳統(tǒng)技術(shù)減少了50%;
37、(二)本發(fā)明將不同處理功能模塊插件化組合成pipeline,實(shí)現(xiàn)圖片解碼、目標(biāo)檢測(cè)、目標(biāo)屬性識(shí)別以及特征提取,同時(shí)充分利用gpu硬解碼功能,在適用情況下使用底層硬件加速插件,提高了單張圖片推理效率,具有良好的推廣應(yīng)用價(jià)值;
38、(三)本發(fā)明借助具有高速計(jì)算能力的gpu,并在適用情況下使用硬件加速插件,利用decodebin插件根據(jù)圖片格式自主加載不同的解碼器完成圖片解碼,摒棄了傳統(tǒng)的opencv解碼方式,直接將圖片原始數(shù)據(jù)推進(jìn)pipeline中進(jìn)行解碼、預(yù)處理、圖片推理、圖片二次推理、后處理,最后通過(guò)http方式返回結(jié)果,極大的提高了性能;
39、(四)本發(fā)明基于pipeline的圖片推理方法解決傳統(tǒng)圖片解析慢的問(wèn)題,采用decodebin插件自主加載解碼器、目標(biāo)檢測(cè)與識(shí)別、屬性及特征提取、后處理實(shí)現(xiàn)圖片推理的流程編排,采用硬解碼提高解碼效率,加快整個(gè)pipeline推理流程;
40、(五)本發(fā)明通過(guò)將插件組合成pipeline進(jìn)行圖片的硬件解碼、推理、將結(jié)果整合成自定義協(xié)議格式返回到服務(wù)端進(jìn)行可視化展示,實(shí)現(xiàn)圖片推理的流程編排;本發(fā)明在適用情況下,采用底層硬件加速插件提高推理效率,整個(gè)推理流程根據(jù)功能不同采用不同的模塊化插件,使得算法服務(wù)易用性更強(qiáng);
41、(六)本發(fā)明采用decodebin解碼、預(yù)處理、一次推理、二次推理、后處理等流程完成圖片目標(biāo)的檢測(cè)與識(shí)別,極大的提高了推理效率;
42、(七)本發(fā)明獲取圖片的原始二進(jìn)制數(shù)據(jù),利用decodebin插件自主加載解碼器,videoconvert插件作圖片顏色空間轉(zhuǎn)換便于上下游插件相互理解,一次推理實(shí)現(xiàn)圖片目標(biāo)檢測(cè),主要包括目標(biāo)名稱、目標(biāo)坐標(biāo)位置,二次推理完成檢測(cè)目標(biāo)屬性識(shí)別與特征提取,后處理模塊將推理結(jié)果整合到自定義協(xié)議中完成整個(gè)推理目標(biāo)結(jié)果的可視化展示。