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