本發(fā)明創(chuàng)造涉及數(shù)據(jù)處理,特別是涉及模型部署方法、模型運(yùn)行方法。
背景技術(shù):
1、相關(guān)技術(shù)中的模型部署方式,先編譯生成圖像處理、模型推理等sdk庫(kù),在部署模型時(shí),調(diào)用這些庫(kù)當(dāng)中的接口,來(lái)實(shí)現(xiàn)智能業(yè)務(wù)的落地。然而,由于sdk庫(kù)提供的接口之間往往耦合度較高,各模塊之間互相調(diào)用并不相互獨(dú)立,導(dǎo)致使用sdk庫(kù)部署的模型能夠?qū)崿F(xiàn)的業(yè)務(wù)場(chǎng)景非常單一,難以應(yīng)用于復(fù)雜的業(yè)務(wù)場(chǎng)景。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明創(chuàng)造實(shí)施例提供的模型部署方法、模型運(yùn)行方法和非瞬時(shí)機(jī)器可讀介質(zhì),至少解決相關(guān)技術(shù)中模型部署方法難以應(yīng)用于復(fù)雜業(yè)務(wù)場(chǎng)景的問(wèn)題。
2、一種模型部署方法,應(yīng)用于開發(fā)服務(wù)器,包括:
3、獲取pipeline應(yīng)用程序,所述pipeline應(yīng)用程序包括插件庫(kù)和與待部署模型對(duì)應(yīng)的pipeline,所述插件庫(kù)包括用于多媒體數(shù)據(jù)預(yù)處理、推理和后處理的插件,所述pipeline包括所述插件庫(kù)中的多個(gè)插件的組合;
4、獲取基礎(chǔ)docker鏡像,并將所述pipeline應(yīng)用程序基于所述基礎(chǔ)docker鏡像打包為待部署docker鏡像,所述基礎(chǔ)docker鏡像包括運(yùn)行所述pipeline應(yīng)用程序所需的運(yùn)行環(huán)境;
5、將所述待部署docker鏡像導(dǎo)入到邊緣智能設(shè)備,以供所述邊緣智能設(shè)備從所述待部署docker鏡像創(chuàng)建用于運(yùn)行所述pipeline應(yīng)用程序的容器,所述pipeline應(yīng)用程序被運(yùn)行時(shí)基于所述pipeline確定所述多個(gè)插件的執(zhí)行順序和數(shù)據(jù)的流動(dòng)方向。
6、在其中的一些實(shí)施例中,在獲取pipeline應(yīng)用程序之前,所述方法還包括:
7、根據(jù)所述待部署模型,確定所述待部署模型所使用的插件之間的鏈接關(guān)系和插件的參數(shù)配置;
8、基于所述待部署模型所使用的插件之間的鏈接關(guān)系和所述插件的參數(shù)配置,組合得到所述pipeline。
9、在其中的一些實(shí)施例中,所述插件庫(kù)包括如下插件:數(shù)據(jù)源插件、解碼插件、推理插件、id生成插件、事件規(guī)則插件、osd插件、編碼插件、事件聯(lián)動(dòng)插件、碼流轉(zhuǎn)發(fā)插件和文件存儲(chǔ)插件;其中,
10、所述數(shù)據(jù)源插件用于獲取碼流數(shù)據(jù);
11、所述解碼插件用于解碼碼流數(shù)據(jù),得到解碼數(shù)據(jù);所述解碼插件的配置參數(shù)包括解碼參數(shù);
12、所述推理插件用于使用推理模型對(duì)解碼數(shù)據(jù)進(jìn)行模型推理,得到推理結(jié)果;所述推理插件的配置參數(shù)包括推理模型的類型和路徑;
13、所述id生成插件用于為檢測(cè)到的對(duì)象生成唯一標(biāo)識(shí);
14、事件規(guī)則插件用于對(duì)操作所述推理結(jié)果的外部參數(shù)進(jìn)行過(guò)濾,所述外部參數(shù)包括外部規(guī)則和編碼參數(shù);
15、所述osd插件用于在顯示畫面上疊加信息,所述osd插件的?配置參數(shù)包括疊加信息的類型;
16、所述編碼插件用于對(duì)yuv數(shù)據(jù)進(jìn)行編碼,所述編碼插件的配置參數(shù)包括編碼參數(shù);
17、所述事件聯(lián)動(dòng)插件用于將多媒體數(shù)據(jù)的處理結(jié)果上報(bào)至服務(wù)器;
18、所述碼流轉(zhuǎn)發(fā)插件用于將碼流數(shù)據(jù)轉(zhuǎn)為實(shí)時(shí)流媒體協(xié)議或超文本傳輸協(xié)議的媒體流;
19、所述文件存儲(chǔ)插件用于將多媒體數(shù)據(jù)的處理結(jié)果保存到本地。
20、在其中的一些實(shí)施例中,所述基礎(chǔ)docker鏡像還包括遠(yuǎn)程訪問(wèn)服務(wù),所述遠(yuǎn)程訪問(wèn)服務(wù)包括jupyterlab服務(wù)和/或sshd服務(wù);所述插件庫(kù)包括用戶自定義插件。
21、一種模型運(yùn)行方法,應(yīng)用于邊緣智能設(shè)備,包括:
22、獲取待部署docker鏡像,所述待部署docker鏡像由基礎(chǔ)docker鏡像打包pipeline應(yīng)用程序而來(lái),所述基礎(chǔ)docker鏡像包括運(yùn)行所述pipeline應(yīng)用程序所需的運(yùn)行環(huán)境,所述pipeline應(yīng)用程序包括插件庫(kù)和與待部署模型對(duì)應(yīng)的pipeline,所述插件庫(kù)包括用于多媒體數(shù)據(jù)預(yù)處理、推理和后處理的插件,所述pipeline包括所述插件庫(kù)中的多個(gè)插件的組合;
23、從所述待部署docker鏡像創(chuàng)建用于運(yùn)行所述pipeline應(yīng)用程序的容器,加載所述容器運(yùn)行所述pipeline應(yīng)用程序,得到所述待部署模型的運(yùn)行結(jié)果,所述pipeline應(yīng)用程序被運(yùn)行時(shí)基于所述pipeline確定所述多個(gè)插件的執(zhí)行順序和數(shù)據(jù)的流動(dòng)方向。
24、在其中的一些實(shí)施例中,加載所述容器運(yùn)行所述pipeline應(yīng)用程序,包括:
25、邊緣智能設(shè)備的主控加載所述容器,將所述容器綁定到所述邊緣智能設(shè)備的從片,同時(shí)初始化所述從片,以使所述從片加載硬件資源和軟件資源,所述軟件資源包括所述pipeline和模型資源。
26、在其中的一些實(shí)施例中,所述方法還包括:
27、所述從片解析所述pipeline得到插件的參數(shù)配置和所述插件在所述待部署模型所使用的插件之間的鏈接關(guān)系,將所述參數(shù)配置載入所述插件對(duì)應(yīng)的模型資源,執(zhí)行任務(wù),以及根據(jù)所述插件在所述待部署模型所使用的插件之間的鏈接關(guān)系進(jìn)行數(shù)據(jù)的接收和發(fā)送。
28、在其中的一些實(shí)施例中,所述基礎(chǔ)docker鏡像還包括遠(yuǎn)程訪問(wèn)服務(wù),在所述容器和所述邊緣智能設(shè)備之間配置映射端口,使得所述容器的所述遠(yuǎn)程訪問(wèn)服務(wù)在所述邊緣智能設(shè)備上處于可訪問(wèn)狀態(tài);所述方法還包括:
29、接收用戶的遠(yuǎn)程訪問(wèn)請(qǐng)求;
30、基于所述容器和所述邊緣智能設(shè)備之間配置的映射端口,訪問(wèn)所述容器的所述遠(yuǎn)程訪問(wèn)服務(wù),以使得所述容器基于所述遠(yuǎn)程訪問(wèn)請(qǐng)求修改和重構(gòu)所述pipeline。
31、在其中的一些實(shí)施例中,所述插件庫(kù)包括如下插件:數(shù)據(jù)源插件、解碼插件、推理插件、id生成插件、事件規(guī)則插件、osd插件、編碼插件、事件聯(lián)動(dòng)插件、碼流轉(zhuǎn)發(fā)插件和文件存儲(chǔ)插件;其中,
32、所述數(shù)據(jù)源插件用于獲取碼流數(shù)據(jù);
33、所述解碼插件用于解碼碼流數(shù)據(jù),得到解碼數(shù)據(jù);所述解碼插件的配置參數(shù)包括解碼參數(shù);
34、所述推理插件用于使用推理模型對(duì)解碼數(shù)據(jù)進(jìn)行模型推理,得到推理結(jié)果;所述推理插件的配置參數(shù)包括推理模型的類型和路徑;
35、所述id生成插件用于為檢測(cè)到的對(duì)象生成唯一標(biāo)識(shí);
36、事件規(guī)則插件用于對(duì)操作所述推理結(jié)果的外部參數(shù)進(jìn)行過(guò)濾,所述外部參數(shù)包括外部規(guī)則和編碼參數(shù);
37、所述osd插件用于在顯示畫面上疊加信息,所述osd插件的配置參數(shù)包括疊加信息的類型;
38、所述編碼插件用于對(duì)yuv數(shù)據(jù)進(jìn)行編碼,所述編碼插件的配置參數(shù)包括編碼參數(shù);
39、所述事件聯(lián)動(dòng)插件用于將多媒體數(shù)據(jù)的處理結(jié)果上報(bào)至服務(wù)器;
40、所述碼流轉(zhuǎn)發(fā)插件用于將碼流數(shù)據(jù)轉(zhuǎn)為實(shí)時(shí)流媒體協(xié)議或超文本傳輸協(xié)議的媒體流;
41、所述文件存儲(chǔ)插件用于將多媒體數(shù)據(jù)的處理結(jié)果保存到本地。
42、一種存儲(chǔ)有計(jì)算機(jī)指令的非瞬時(shí)機(jī)器可讀介質(zhì),所述計(jì)算機(jī)指令用于使所述計(jì)算機(jī)執(zhí)行上述的方法。
43、本發(fā)明創(chuàng)造實(shí)施例提供的模型部署方法、模型運(yùn)行方法和非瞬時(shí)機(jī)器可讀介質(zhì),通過(guò)獲取pipeline應(yīng)用程序,pipeline應(yīng)用程序包括插件庫(kù)和與待部署模型對(duì)應(yīng)的pipeline,插件庫(kù)包括用于多媒體數(shù)據(jù)預(yù)處理、推理和后處理的插件,pipeline包括插件庫(kù)中的多個(gè)插件的組合;獲取基礎(chǔ)docker鏡像,并將pipeline應(yīng)用程序基于基礎(chǔ)docker鏡像打包為待部署docker鏡像,基礎(chǔ)docker鏡像包括運(yùn)行pipeline應(yīng)用程序所需的運(yùn)行環(huán)境;將待部署docker鏡像導(dǎo)入到邊緣智能設(shè)備,以供邊緣智能設(shè)備從待部署docker鏡像創(chuàng)建用于運(yùn)行pipeline應(yīng)用程序的容器,pipeline應(yīng)用程序被運(yùn)行時(shí)基于pipeline確定多個(gè)插件的執(zhí)行順序和數(shù)據(jù)的流動(dòng)方向,解決了相關(guān)技術(shù)中模型部署方法難以應(yīng)用于復(fù)雜業(yè)務(wù)場(chǎng)景的問(wèn)題,實(shí)現(xiàn)了多模型的靈活部署。