TW202248848A - 智慧攝影機的軟體定義方法、電子設備和電腦可讀儲存介質 - Google Patents
智慧攝影機的軟體定義方法、電子設備和電腦可讀儲存介質 Download PDFInfo
- Publication number
- TW202248848A TW202248848A TW110146181A TW110146181A TW202248848A TW 202248848 A TW202248848 A TW 202248848A TW 110146181 A TW110146181 A TW 110146181A TW 110146181 A TW110146181 A TW 110146181A TW 202248848 A TW202248848 A TW 202248848A
- Authority
- TW
- Taiwan
- Prior art keywords
- target
- component
- smart camera
- software module
- components
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Studio Devices (AREA)
- Stored Programmes (AREA)
Abstract
本發明關於一種智慧攝影機的軟體定義方法、電子設備和電腦可讀儲存介質,所述方法包括:基於使用者選定的功能,根據所述功能的實現流程確定用於定義智慧攝影機功能的至少一個目標組件;根據使用者選定的硬體存取介面,確定目標硬體存取介面;基於所述至少一個目標組件和所述目標硬體存取介面,生成應用於所述智慧攝影機的目標軟體模組,其中,在所述智慧攝影機上運行所述目標軟體模組時,所述目標組件通過所述目標硬體存取介面調用智慧攝影機的硬體資源來實現所述智慧攝影機的功能。
Description
本發明關於視頻監控技術領域,關於但不限於一種智慧攝影機的軟體定義方法、電子設備和電腦可讀儲存介質。
隨著人工智慧技術的發展,攝影機由單純的記錄視頻向智慧化方向發展,當前攝影機呈越來越智慧化的趨勢,智慧攝影機應運而生,智慧攝影機不僅可以進行視頻採集,還能夠對採集的視頻進行智慧化處理,例如實現目標追蹤、行人檢測等功能。
在對智慧攝影機進行開發的過程中,需要為智慧攝影機的硬體開發相應的軟體以實現智慧攝影機的智慧功能。
本發明實施例提出了一種智慧攝影機的軟體定義技術方案。
本發明實施例提供了一種智慧攝影機的軟體定義方法,該方法包括:
基於使用者選定的功能,根據所述功能的實現流程確定用於定義智慧攝影機功能的至少一個目標組件;
根據使用者選定的硬體存取介面,確定目標硬體存取介面;
基於所述至少一個目標組件和所述目標硬體存取介面,生成應用於所述智慧攝影機的目標軟體模組,其中,在所述智慧攝影機上運行所述目標軟體模組時,所述目標組件通過所述目標硬體存取介面調用智慧攝影機的硬體資源來實現所述智慧攝影機的功能。
在一種可能的實現方式中,在確定用於定義智慧攝影機功能的至少一個目標組件後,所述方法還包括:
確定每個所述目標組件的執行順序;
獲取設定檔;
所述基於所述至少一個目標組件和所述目標硬體存取介面,生成應用於智慧攝影機的目標軟體模組,包括:
基於所述至少一個目標組件、所述設定檔和所述目標硬體存取介面、以及所述每個目標組件的執行順序,生成應用於智慧攝影機的目標軟體模組。
在一種可能的實現方式中,所述設定檔包括每個所述目標組件內的第一設定檔和所述至少一個目標組件之間的第二設定檔;
所述第一設定檔包含用於啟用所述目標組件的依賴參數和所述目標組件需要訂閱發佈的消息;
所述第二設定檔用於約束所述至少一個目標組件間的消息收發模式,其中,所述消息收發模式包括非同步消息訂閱發佈機制。
在一種可能的實現方式中,所述方法還包括:
回應於當前目標組件執行所述選定的功能的情況,採用所述當前目標組件基於所述第二設定檔訂閱需要所述當前目標組件處理的消息,同時發佈待處理消息至其他目標組件。
在一種可能的實現方式中,所述目標組件包括輸入組件和輸出組件;
回應於接收到多個使用者輸入的功能的情況,確定實現所述多個使用者輸入的功能的多個實現流程;
所述多個實現流程共用所述輸入組件和輸出組件。
在一種可能的實現方式中,所述方法還包括:
回應於當前目標組件接收到外界下發的指令的情況,優先執行所述外界下發的指令。
在一種可能的實現方式中,在所述生成應用於所述智慧攝影機的目標軟體模組之後,還包括:
生成所述目標軟體模組的授權碼;
所述生成所述目標軟體模組的授權碼的步驟,包括:
獲取隨機字元碼和所述智慧攝影機的標識碼;
將所述隨機字元碼和所述標識碼進行融合,作為對所述智慧攝影機的授權碼。
在一種可能的實現方式中,所述方法還包括:
獲取所述智慧攝影機的總計算能力;
根據所述智慧攝影機完成各業務所需的各目標組件,計算完成各個業務所需的子計算能力;
將所述總計算能力和所述子計算能力寫入所述目標軟體模組的設定檔中;
所述目標組件還包括:管理組件,用於回應於使用者請求啟動多個目標業務,根據所述設定檔中的所述總計算能力和所述子計算能力,在所述多個目標業務的子計算能力之和小於所述總計算能力的情況下,同時啟動所述多個目標業務。
在一種可能的實現方式中,在所述生成應用於智慧攝影機的目標軟體模組後,所述方法還包括:
根據使用者輸入的新增功能,確定所述新增功能對應的新增組件以及所述新增組件與所述目標組件的執行順序;
根據所述智慧攝影機的標識和對所述智慧攝影機的當前授權資訊,生成目標授權資訊;
將所述新增組件、所述新增組件與所述目標組件之間的消息收發關係、所述目標授權資訊進行封裝,得到增量升級檔;
利用所述增量升級檔對所述目標軟體模組進行升級。
本發明實施例還提供了一種智慧攝影機的軟體定義裝置,該裝置包括:
組件確定模組,配置為基於使用者選定的功能,根據所述功能的實現流程確定用於定義智慧攝影機功能的至少一個目標組件;
介面確定模組,配置為根據使用者選定的硬體存取介面,確定目標硬體存取介面;
軟體生成模組,配置為基於所述至少一個目標組件和所述目標硬體存取介面,生成應用於所述智慧攝影機的目標軟體模組,其中,在所述智慧攝影機上運行所述目標軟體模組時,所述目標組件通過所述目標硬體存取介面調用智慧攝影機的硬體資源來實現所述智慧攝影機的功能。
在一種可能的實現方式中,所述裝置還包括:
順序確定單元,配置為確定每個所述目標組件的執行順序;
配置獲取單元,配置為獲取設定檔;
所述軟體生成模組,配置為基於所述至少一個目標組件、所述設定檔和所述目標硬體存取介面、以及所述每個目標組件的執行順序,生成應用於智慧攝影機的目標軟體模組。
在一種可能的實現方式中,所述設定檔包括每個所述目標組件內的第一設定檔和所述至少一個目標組件之間的第二設定檔;
所述第一設定檔包含用於啟用所述目標組件的依賴參數和所述目標組件需要訂閱發佈的消息;
所述第二設定檔用於約束所述至少一個目標組件間的消息收發模式,其中,所述消息收發模式包括非同步消息訂閱發佈機制。
在一種可能的實現方式中,所述裝置還包括:
發佈訂閱模組,配置為回應於當前目標組件執行所述選定的功能的情況,所述當前目標組件基於所述第二設定檔訂閱需要所述當前目標組件處理的消息,同時發佈待處理消息至其他目標組件。
在一種可能的實現方式中,所述目標組件包括輸入組件和輸出組件;
所述裝置還包括,流程確定模組,配置為回應於接收到多個使用者輸入的功能的情況,確定實現所述多個使用者輸入的功能的多個實現流程;
所述多個實現流程共用所述輸入組件和輸出組件。
在一種可能的實現方式中,所述裝置還包括:
指令執行模組,配置為回應於當前目標組件接收到外界下發的指令的情況,優先執行所述外界下發的指令。
在一種可能的實現方式中,所述裝置還包括:
授權碼生成模組,配置為生成所述目標軟體模組的授權碼;
所述授權碼生成模組,配置為獲取隨機字元碼和所述智慧攝影機的標識碼;將所述隨機字元碼和所述標識碼進行融合,作為對所述智慧攝影機的授權碼。
在一種可能的實現方式中,所述裝置還包括:
總計算能力獲取模組,配置為獲取所述智慧攝影機的總計算能力;
子計算能力確定模組,配置為根據所述智慧攝影機完成各業務所需的各目標組件,計算完成各個業務所需的子計算能力;
寫入模組,配置為將所述總計算能力和所述子計算能力寫入所述目標軟體模組的設定檔中;
管理模組,配置為回應於使用者請求啟動多個目標業務,根據所述設定檔中的所述總計算能力和所述子計算能力,在所述多個目標業務的子計算能力之和小於所述總計算能力的情況下,同時啟動所述多個目標業務。
在一種可能的實現方式中,所述裝置還包括:
新增功能模組,配置為根據使用者輸入的新增功能,確定所述新增功能對應的新增組件以及所述新增組件與所述目標組件的執行順序;
目標授權碼生成模組,配置為根據所述智慧攝影機的標識碼和所述智慧攝影機的當前授權碼,生成目標授權碼;
升級檔生成模組,配置為基於所述新增組件、所述新增組件與所述目標組件的執行順序、所述目標授權碼進行封裝,得到增量升級檔;
升級模組,配置為利用所述增量升級檔對所述目標軟體模組進行升級。
本發明實施例還提供了一種電子設備,該電子設備包括:處理器;用於儲存處理器可執行指令的記憶體;其中,所述處理器被配置為調用所述記憶體儲存的指令,以執行上述任意一種軟體定義方法。
本發明實施例還提供了一種電腦可讀儲存介質,其上儲存有電腦程式指令,所述電腦程式指令被處理器執行時實現上述任意一種軟體定義方法。
本發明實施例還提供了一種電腦程式,該電腦程式包括電腦可讀代碼,當所述電腦可讀代碼在電子設備中運行時,所述電子設備中的處理器執行用於實現上述任意一種軟體定義方法。
在本發明實施例中,基於使用者選定的功能和硬體存取介面,確定用於定義智慧攝影機功能的目標組件,以及目標硬體存取介面,然後基於目標組件和目標硬體存取介面,生成應用於智慧攝影機的目標軟體模組。這樣,生成的目標軟體模組中的目標組件,可以通過目標硬體存取介面調用智慧攝影頭的硬體資源來實現智慧攝影頭的功能。由此,使用者通過選擇功能來定義智慧攝影機的功能,並通過選擇硬體存取介面來適配智慧攝影頭的硬體資源,無需考慮硬體資源差異做大量的二次開發,即可實現智慧攝影機的軟體模組,提高了智慧攝影機的開發效率。
應當理解的是,以上的一般描述和後文的細節描述僅是示例性和解釋性的,而非限制本發明。根據下面參考附圖對示例性實施例的詳細說明,本發明的其它特徵及方面將變得清楚。
以下將參考附圖詳細說明本發明的各種示例性實施例、特徵和方面。附圖中相同的附圖標記表示功能相同或相似的元件。儘管在附圖中示出了實施例的各種方面,但是除非特別指出,不必按比例繪製附圖。
在這裡專用的詞“示例性”意為“用作例子、實施例或說明性”。這裡作為“示例性”所說明的任何實施例不必解釋為優於或好於其它實施例。
為了更好地說明本發明,在下文的具體實施方式中給出了眾多的具體細節。本領域技術人員應當理解,沒有某些具體細節,本發明同樣可以實施。在一些實例中,對於本領域技術人員熟知的方法、手段、元件和電路未作詳細描述,以便於凸顯本發明的主旨。
在公共安全、交通、工業生產等各個領域,利用攝影機採集的視頻進行遠端系統管理極大地提高了管理效率,隨著智慧攝影機的興起,智慧攝影機能夠對採集的視頻進行處理,例如進行人臉檢測、目標追蹤等功能,並及時地將處理結果回饋給使用者,因而智慧攝影機在公共安全、交通、工業生產等各個領域都有著非常廣闊的應用前景。
在智慧攝影頭的開發過程中,會針對智慧攝影頭的硬體開發相應的軟體模組,來實現智慧攝影頭的功能,在相關技術中,往往需要做大量的軟體發展工作來適配智慧攝影機的硬體,開發效率較低。
在本發明實施例中,基於使用者選定的功能和硬體存取介面,確定用於定義智慧攝影機功能的目標組件,以及目標硬體存取介面,然後基於目標組件和目標硬體存取介面,生成應用於智慧攝影機的目標軟體模組。這樣,生成的目標軟體模組中的目標組件,可以通過目標硬體存取介面調用智慧攝影頭的硬體資源來實現智慧攝影頭的功能。由此,使用者通過選擇功能來定義智慧攝影機的功能,並通過選擇硬體存取介面來適配智慧攝影頭的硬體資源,無需考慮硬體資源差異做大量的二次開發,即可實現智慧攝影機的軟體模組,提高了智慧攝影機的開發效率。
在本發明實施例中,預先構建了一套用於軟體定義智慧攝影機的開發框架,請參閱圖1,為本發明實施例提供的一種用於軟體定義智慧攝影機的開發框架的結構示意圖,該開發框架包括組件層、介面層、作業系統層和硬體層。
其中,所述組件,用於定義智慧攝影機的功能。組件層中的組件具體包括:輸入組件、業務組件、輸出組件和服務組件。
針對不同編碼協定的資料流程,可以分別預設對應的輸入組件,例如,針對YUV(Y為亮度分量,UV 為色度分量,YUV為一種視頻資料格式)編碼協定的資料流程,則預設YUV輸入組件;針對基於文本的多媒體播放控制協定(Real Time Streaming Protocol,RTSP)的資料流程,則預設RTSP輸入組件。
針對業務組件,可以根據業務中的最小功能單元,設置對應的業務組件,如圖3所示,可以設置目標跟蹤組件、目標檢測組件、選幀組件、屬性提取組件、特徵提取組件、特徵比對組件等等。
服務組件可以包括:用於進行消息傳輸的消息組件、用於進行視頻編碼的編碼組件、用於進行視頻解碼的解碼組件、以及靜態程式庫組件。
針對業務處理結果的不同輸出形式,可以分別預設對應的輸出組件,例如,可以是將業務處理結果進行保存的儲存組件、可以是將業務處理結果進行推送的推送組件、可以是將業務處理結果傳輸至外部設備的外設組件、可以是將業務處理結果進行告警聯動。
本發明實施例中,組件是對資料和方法的封裝,資料和方法經封裝後,形成具備一定功能的可複用的組件。智慧攝影機的業務流水線中,可由多個組件組合而成,共同完成某項業務。組件的具體實現形式可以是動態連結程式庫的形式,那麼,可以動態地增刪流水線中的組件以更改流水線的功能,也可以動態地配置組件之間的消息收發關係,使得組件的配置和更新更加靈活。
組件用來定義智慧攝影機的功能,智慧攝影機的功能包括對採集到的視頻進行處理,例如,目標跟蹤、人臉識別等等。要實現這些功能,可能需要多個組件的配合來實現,例如,人臉識別中,會用到人臉跟蹤、視頻選幀、屬性提取、人臉特徵提取、特徵比對等具體的功能,那麼這些具體的功能均可以由多個組件來實現,通過這多個組件的相互配合,來實現人臉識別的功能。
組件的顆粒度可以是多個業務中可複用的最小功能單元,也就是說,組件的最小單元可以是多個業務中可複用的最小功能單元。例如,特徵提取組件在多個業務中都會用到,則可以定義為一個功能單元。
組件可以通過硬體存取介面調用智慧攝影機的硬體,智慧攝影機的硬體往往包括影像採集單元、儲存單元、編解碼單元、處理單元等,硬體存取介面中定義了組件存取硬體的規範。硬體存取介面的顆粒度可以是單個硬體資源,也就是說,一個硬體存取介面對應一個硬體資源。
介面層包括:硬體存取介面和演算法介面。
硬體(南向)存取介面用於供所述組件調用以存取所述攝影機的硬體資源,包括:採集單元、儲存單元、編解碼單元、處理單元、近場通信單元、無線網路單元等。硬體存取介面具體存取的硬體設備例如可以包括:YUV視頻採集單元、轉碼器、韋根感測器、直接記憶體存取(Direct Memory Access,DMA)、RS485型號的通信介面、繼電器、加解密單元、縮放單元、NFC、WiFi。
演算法介面包括:目標跟蹤介面、目標檢測介面、選幀介面、屬性提取介面、特徵提取介面、特徵比對介面,用於供業務組件調用對應的演算法模組,對影像資料進行處理。
作業系統層例如可以是:微軟伺服器作業系統(Windows ServerTM),蘋果公司推出的基於圖形化使用者介面作業系統(Mac OS XTM),多使用者多進程的電腦作業系統(UnixTM), 自由和開放原代碼的類Unix作業系統(LinuxTM),開放原代碼的類Unix作業系統(FreeBSDTM)得到。
在本發明實施例中,使用者通過選擇組件的標識來定義智慧攝影機的功能,並通過選擇硬體存取介面來適配智慧攝影頭的硬體資源,無需考慮硬體資源差異做大量的二次開發,通過從預設的組件和硬體存取介面中進行選擇,即可實現智慧攝影機的軟體模組,提高了智慧攝影機的開發效率。
本發明實施例提供的開發框架,開發人員在對智慧相機的軟體功能進行開發的過程中,可以在電腦上方便快速地實現各種智慧攝影機的目標軟體模組,然後將該目標軟體模組刷入智慧相機硬體中,這樣,智慧相機在運行時,便可以實現目標軟體模組上的功能。
基於上述開發框架,以下結合本發明的多個可能的實現方式,詳細描述本發明提供的智慧攝影機的軟體定義方法。
在一種可能的實現方式中,所述智慧攝影機的軟體定義方法可以由終端設備或伺服器等電子設備執行,終端設備可以為使用者設備(User Equipment,UE)、移動設備、使用者終端、終端、蜂窩電話、無線電話、個人數位助理(Personal Digital Assistant,PDA)、手持設備、計算設備、車載設備、可穿戴設備等,所述方法可以通過處理器調用記憶體中儲存的電腦可讀指令的方式來實現。或者,可通過伺服器執行所述方法。本發明實施例的智慧攝影機的軟體定義方法基於上述電子設備實現,這些電子設備中具備接收使用者交互介面,例如觸摸顯示幕、滑鼠、輸入手寫筆等,在本發明實施例中不做限定。
圖2為本發明實施例的智慧攝影機的軟體定義方法的流程圖,如圖2所示,所述智慧攝影機的軟體定義方法包括以下步驟。
在步驟S11中,基於使用者選定的功能,根據所述功能的實現流程確定用於定義智慧攝影機功能的至少一個目標組件。
不同的組件往往具備不同的功能,因此,組件可以具備一定的標識,供使用者區分不同的組件,基於組件的標識,使用者可以選取用來定義智慧攝影機功能的組件。這裡的組件的標識,可以是組件的名稱,具體可以由開發人員自行定義,以方便區分不同的組件。
智慧攝影機用來實現某一具體的業務,在實現該業務的流水線中,可由多個組件組合而成,例如,在人臉識別業務中,會用到人臉跟蹤、視頻選幀、屬性提取、人臉特徵提取、特徵比對等具體的功能,而這些功能往往是由一定的實現流程來實現的,例如,針對人臉識別業務,其主要實現流程包括:1.人臉跟蹤;2.人臉特徵提取;3.人臉特徵對比;4.人臉結果輸出。該流程中的各步驟均可由目標組件來實現,因此,根據該功能的實現流程,即可確定所需的目標組件包括:人臉跟蹤組件、特徵提取組件、特徵對比組件和結果輸出組件。
在實際應用中,使用者可以根據組件的標識,依次選取用於定義人臉跟蹤的組件、用於定義視頻選幀的組件、用於定義屬性提取的組件、用於定義人臉特徵提取的組件、用於定義特徵比對的組件。
當然,針對選取出的目標組件,還可以定義各目標組件之間的執行順序,此外,基於開發人員要進一步實現的功能,還可以進一步選取其它的組件(例如推送組件等),具體可參見後文本發明提供的可選的實現方式,此處不做贅述。
在步驟S12中,根據使用者選定的硬體存取介面,確定目標硬體存取介面。
不同的硬體存取介面用來調用不同的硬體,因此,硬體存取介面可以具備一定的標識,供使用者區分不同的硬體存取介面,基於硬體存取介面的標識,使用者可以選取目標硬體存取介面。這裡的硬體存取介面的標識,可以是硬體存取介面的名稱,具體可以由開發人員自行定義,以方便區分不同的硬體存取介面。
使用者可以根據智慧攝影機的硬體資源及智慧攝影機要實現的功能,來選取目標硬體存取介面。如前文所述,智慧攝影機的硬體往往會包括像採集單元、儲存單元、編解碼單元、處理單元等,因此,使用者可以根據智慧攝影機所包含的這些硬體,來選擇這些硬體對應的硬體存取介面。
此外,智慧攝影機可能還會包含通信單元,例如,近場通信(Near Field Communication,NFC)單元,無線網路(WiFi)單元等等,如果使用者期望實現通信功能,那麼也可以選擇相應的硬體存取介面。在實際應用中,本領域技術人員可依據實際需求選擇相應的目標硬體存取介面,此處不逐一贅述。
在步驟S13中,基於所述至少一個目標組件和所述目標硬體存取介面,生成應用於智慧攝影機的目標軟體模組,其中,在所述智慧攝影機上運行所述目標軟體模組時,所述目標組件通過所述目標硬體存取介面調用智慧攝影機的硬體資源來實現所述智慧攝影機功能。
在選定目標組件和目標硬體存取介面後,即可生成目標軟體模組,具體可以通過對目標組件和目標硬體存取介面進行封裝,來生成目標軟體模組,通過封裝,將目標組件和目標硬體存取介面的原始程式碼通過編譯器編譯成機器語言包,以便在智慧攝影機上運行。
此外,生成的目標軟體模型還可以進行數位簽章,數位簽章不僅用於驗證目標軟體模型的完整性,而且更以防止目標軟體模型在傳輸過程中被修改,具體簽名和驗證的過程可參照相關技術,此處不做贅述。
生成的目標軟體模組即可以內置到智慧攝影機中,在智慧攝影機中運行,運行過程中,目標組件會通過目標硬體存取介面調用智慧攝影機的硬體資源來實現智慧攝影機的功能。
在本發明實施例中,基於使用者選定的功能和硬體存取介面,確定用於定義智慧攝影機功能的目標組件,以及目標硬體存取介面,然後基於目標組件和目標硬體存取介面,生成應用於智慧攝影機的目標軟體模組。這樣,生成的目標軟體模組中的目標組件,可以通過目標硬體存取介面調用智慧攝影頭的硬體資源來實現智慧攝影頭的功能。由此,使用者通過選擇功能來定義智慧攝影機的功能,並通過選擇硬體存取介面來適配智慧攝影頭的硬體資源,無需考慮硬體資源差異做大量的二次開發,即可實現智慧攝影機的軟體模組,提高了智慧攝影機的開發效率。
在一種可能的實現方式中,在確定用於定義智慧攝影機功能的至少一個目標組件後,所述方法還包括:確定每個所述目標組件的執行順序;獲取設定檔;所述基於所述目標組件和所述目標硬體存取介面,生成應用於智慧攝影機的目標軟體模組,包括:基於所述至少一個目標組件、所述設定檔和所述目標硬體存取介面、以及所述每個目標組件的執行順序,生成應用於智慧攝影機的目標軟體模組。
目標組件的執行順序定義了使用者選擇的功能業務執行過程中目標組件之間進行業務處理的整體流程。例如,在人臉識別業務中,依次確定各目標組件的執行順序為:人臉跟蹤組件→視頻選幀組件→屬性提取組件→人臉特徵提取組件→特徵比對組件。其中→表示組件的執行順序。
目標組件可以具備設定檔,在一種可能的實現方式中,設定檔包括每個目標組件內的第一設定檔和至少一個目標組件之間的第二設定檔;第一設定檔包含用於啟用目標組件的依賴參數和目標組件需要訂閱發佈的消息;當滿足該條件時,即可啟動目標組件,具體可通過參數的設置來對目標組件啟動所依賴的條件進行設置。
第二設定檔用於約束至少一個目標組件間的消息收發模式,其中,消息收發模式包括非同步消息訂閱發佈機制。這樣採用非同步消息訂閱發佈機制,非常方便組件擴展消息欄位,並且輸入輸出都文本視覺化,非同步通信使得組件間完全解耦。這樣也使得目標組件之間的消息收發關係更加靈活,組件之間的耦合性較低。
在非同步消息訂閱發佈機制中,消息發送者(發佈者)發佈消息,一個或多個消息接收者(訂閱者)訂閱消息。消息發送者不會將消息直接發送給特定的接收者,而是將發佈的消息分為不同的主題(類別),無需瞭解哪些訂閱者。同樣的,消息訂閱者可以設置對一個或多個主題的消息進行接收,只接收設置的主題的消息,無需瞭解哪些發佈者。
發佈消息的目標組件即可以作為消息發送者,而接受消息的目標組件即為該消息的接收者。在確定目標組件之間消息的發佈訂閱關係的過程中,可以設置要發送消息的目標組件所發送的消息的主題,也可以設置目標組件所接收的消息的主題。
那麼,在生成目標軟體模組的過程中,可以基於設定檔、目標組件和目標硬體存取介面,生成應用於智慧攝影機的目標軟體模組。設定檔的具體格式可以是JS對象簡譜(JavaScript Object Notation,JSON)格式。組件間的通信具體也可以採用JSON格式的消息進行通信。
在確定了至少一個目標組件、設定檔和目標硬體存取介面、以及每個目標組件的執行順序後,即可基於所述至少一個目標組件、所述設定檔和所述目標硬體存取介面、以及所述每個目標組件的執行順序,生成應用於智慧攝影機的目標軟體模組。
在一種可能的實現方式中,所述方法還包括:回應於當前目標組件執行所述選定的功能的情況,所述當前目標組件基於所述第二設定檔訂閱需要所述當前目標組件處理的消息,同時發佈待處理消息至其他目標組件。
如前文所述,在第二設定檔中用於約束所述至少一個目標組件間的消息收發模式,其中,所述消息收發模式包括非同步消息訂閱發佈機制,在非同步消息訂閱發佈機制中,消息發送者(發佈者)發佈消息,一個或多個消息接收者(訂閱者)訂閱消息。那麼,當前目標組件執行所述選定的功能時,目標組件即可基於第二設定檔,來訂閱需要所述當前目標組件處理的消息,同時發佈待處理消息至其他目標組件,這樣當前組件任務完成後,便可由其他組件繼續完成其他既定任務。
在本發明實施例中,目標組件基於第二設定檔,訂閱需要所述當前目標組件處理的消息,同時發佈待處理消息至其他目標組件,組件間採用json格式通信,採用非同步消息訂閱發佈機制,這樣非常方便組件擴展消息欄位,並且輸入輸出都文本視覺化,非同步通信使得組件間完全解耦。在一種可能的實現方式中,所述目標組件包括輸入組件和輸出組件;回應於接收到多個使用者輸入的功能的情況,確定實現所述多個使用者輸入的功能的多個實現流程;所述多個實現流程共用所述輸入組件和輸出組件。
其中,輸入組件,用於通過目標硬體存取介面獲取智慧攝影機採集的資料;輸出組件,用於輸出對所述資料的處理結果。
智慧攝影機的業務的總體流程包括:資料登錄、資料處理、資料輸出。那麼,在智慧攝影機的一條業務線中,所需的組件包括:輸入資料的輸入組件、處理資料的業務組件以及輸出資料的輸出組件。例如,在人臉跟蹤的業務流程中,由人臉跟蹤組件執行人臉跟蹤業務,而輸入組件將視頻幀發送給人臉跟蹤組件,輸出組件接收特徵比對組件的處理結果,並將處理結果輸出。
此外,智慧攝影機中還可以包含對組件間消息進行收發的消息組件,在智慧攝影機的業務處理流程中,對於多條業務線來說,該多條業務線可以共用輸入組件、輸出組件和消息組件,多條業務線會由各自的業務組件來處理對應的業務。請參閱圖3,為本發明實施例提供的目標組件之間的關係示意圖,輸入組件將輸入的資料發送給多個業務組件集,業務組件集可以非同步回應訊息,對輸入的資料進行並行地處理,然後將處理結果發送給輸出組件,由輸出組件輸出處理結果。
消息的收發機制採用非同步消息模式,組件發出的消息可以發送給消息組件,消息組件根據設定檔,確定消息的接收者,並將消息發送給確定的消息接收者,由消息接收者對消息進行處理。例如,可以採用非同步消息訂閱發佈機制,發送消息的組件將消息發送給消息組件,消息中會攜帶消息的主題,消息組件根據該消息的主題,向訂閱了該主題的組件轉發該消息。
例如輸入組件和輸出組件保持不變,分別配合不同的算力組件集(比如人臉業務組件集合,結構化業務組件集合)就可以實現人臉和結構化同時運行。
在本發明實施例中,在智慧攝影機中存在多條業務線的情況下,輸入組件和輸出組件可以共用,由此可以節省硬體資源的佔用;此外,組件之間對消息的處理是非同步的,那麼,對於不同業務的業務流程,即可並行運行,提高了業務處理效率。
在一種可能的實現方式中,還包括:回應於當前目標組件接收到外界下發的指令的情況,優先執行所述外界下發的指令。
組件不僅需要處理資料流程中的資料,還需要處理外界下發的配置或者狀態查詢消息。採用優先順序的訊息佇列,外界下發的消息優先順序高於流水線資料消息。例如,在智慧攝影機在運行的過程中,能夠以視頻流為驅動自動地進行業務處理,例如在持續接收到視頻流的情況下,能夠持續地對視頻流進行人臉識別的業務處理,但是,在一些情況下,使用者可能希望利用智慧相機進行一些額外的操作,此時便會向智慧相機下發指令,當接收到外界下發的指令時,可以優先執行外界下發的指令。這裡的額外的操作例如可以是當前正在執行的業務處理以外的其它操作,例如是目標追蹤等業務處理。
在本發明實施例中,能夠回應於當前目標組件接收到外界下發的指令的情況,優先執行所述外界下發的指令。以便及時地回應外界下發的指令,保證回應外界下發的指令的時效性,使用者體驗較好。
在一種可能的實現方式中,在所述生成應用於所述智慧攝影機的目標軟體模組之後,還包括:生成所述目標軟體模組的授權碼;所述生成所述目標軟體模組的授權碼的步驟,包括:獲取隨機字元碼和所述智慧攝影機的標識碼;將所述隨機字元碼和所述標識碼進行融合,作為對所述智慧攝影機的授權碼。
在本發明實施例中,會依據智慧攝影機的標識碼來生成目標授權資訊,智慧攝影機的標識碼可以是智慧攝影機中一個或多個硬體模組的標識碼,例如,CPU的標識碼、加密晶片的標識碼、記憶體的標識碼、時鐘晶片的標識碼、網卡位址的標識碼。
為減少增量升級檔被盜版的可能,可以隨機地從智慧攝影機的多個硬體模組中任選一個硬體模組的標識碼來生成授權碼。具體過程如下:
為多個硬體模組各分配一個預設字元,例如,CPU的標識、加密晶片的標識、記憶體的標識、時鐘晶片的標識、網卡位址的標識分別對應字元1、2、3、4、5;
隨機地從多個預設字元中選取至少一個目標字元,例如,選取了字元1;
將目標字元對應的硬體模組的標識碼與目標字元進行融合,作為智慧攝影機的授權碼,例如,字元1對應CPU,CPU的標識假設為12345,那麼可以將12345與1進行融合,這裡的融合可以是相加,例如12345與1相加12346即為融合結果;或者也可以是拼接,例如12345與1拼接為123451即為融合結果。
將融合的結果作為智慧攝影機的授權碼,來授權該標識碼的智慧攝影機使用。
本發明實施例中,通過獲取隨機字元碼和智慧攝影機的標識碼;將隨機字元碼和標識碼進行融合,作為對所述智慧攝影機的授權碼。由此,得到的授權碼不易被破解,安全性較高。
在一種可能的實現方式中,所述方法還包括:獲取所述智慧攝影機的總計算能力;根據所述智慧攝影機完成各業務所需的各目標組件,計算完成各個業務所需的子計算能力;將所述總計算能力和所述子計算能力寫入所述目標軟體模組的設定檔中。
回應於使用者請求啟動多個目標業務,根據所述設定檔中的所述總計算能力和所述子計算能力,在所述多個目標業務的子計算能力之和小於所述總計算能力的情況下,同時啟動所述多個目標業務。
智慧攝影機的總計算能力取決於智慧攝影機的處理單元的計算能力,這裡的處理單元例如可以是中央處理器(CPU)、嵌入式神經網路處理器(NPU)等等。每一型號的處理單元的計算能力通常是確定的,因此,總計算能力的具體值可以依據處理單元的型號來確定。
而各目標組件在運行時所需的計算能力通常也是確定的,因此,對於完成某一目標業務所需的子計算能力,可以通過對完成該目標業務的各目標組件的計算能力進行求和得到。
在確定總計算能力和子計算能力之後,可以將總計算能力和子計算能力寫入目標軟體模組的設定檔中。那麼,在使用者使用智慧攝影機時,當使用者請求啟動多個目標業務時,可以根據設定檔中的總計算能力和子計算能力,計算智慧攝影機的總計算能力是否能夠支援同時運行這多個目標業務。
例如,可以計算多個目標業務的子計算能力之和,子計算能力之和小於總計算能力的情況下,表明智慧攝影機的總計算能力能夠支援同時運行這多個目標業務,那麼,可以同時啟動這多個目標業務。
例如,假設智慧攝影機的總計算能力為8,人臉識別業務消耗的子計算能力是1,車輛結構化業務消耗的子計算能力是2,人群密度業務消耗的子計算能力是4。則意味著該智慧攝影機可以同時運行8個人臉識別業務,或者4個車輛結構化業務,或者4個人臉業務和2個人群密度業務,等等。只要使用者請求啟動的多個目標業務的子計算能力之和不超過總計算能力,即可同時啟動這多個目標業務。
在本發明實施例中,通過獲取所述智慧攝影機的總計算能力和各業務所需的子計算能力,並將總計算能力和子計算能力寫入目標軟體模組的設定檔中,然後回應使用者啟動多個目標業務的請求,根據設定檔中的總計算能力和子計算能力,在多個目標業務的子計算能力之和小於總計算能力的情況下,同時啟動所述目標業務。由此,在使用者請求運行多個目標業務的情況下,減少了由於同時運行的業務過多導致智慧攝影機卡頓而無法及時回應的情況,提高了智慧攝影機的業務處理效率。
在本發明實施例中,在生成智慧攝影機的目標軟體模組後,還可以對該目標軟體模組進行升級,即給目標軟體模組添加新的目標組件,以便智慧攝影機能夠完成更多的業務。
在一種可能的實現方式中,在所述生成應用於智慧攝影機的目標軟體模組後,所述方法還包括:根據使用者輸入的新增功能,確定所述新增功能對應的新增組件以及所述新增組件與所述目標組件的執行順序;根據所述智慧攝影機的標識和所述智慧攝影機的當前授權碼,生成目標授權碼;基於所述新增組件、所述新增組件與所述目標組件的執行順序、所述目標授權碼進行封裝,得到增量升級檔;利用所述增量升級檔對所述目標軟體模組進行升級。
使用者輸入的新增功能由新增組件來實現,新增組件是用來定義智慧攝影機的新增的功能的組件,例如可以是業務組件,當然也可以是輸入組件、輸出組件、消息組件等其它組件。
對於新增組件,還可以配置新增組件與目標軟體模組中其它目標組件的執行順序,該執行順序具體可以寫入設定檔中。
授權碼是表徵授予智慧攝影機使用權的資訊,授權碼正確的情況下,則智慧攝影機可以正常使用目標軟體模組的功能。在對目標軟體模組進行更新的過程中,通過根據智慧攝影機的標識碼和智慧攝影機的當前授權碼,生成目標授權碼,作為增量升級檔的授權碼,以防止增量升級檔被盜版。
在生成目標授權碼後,基於新增組件、新增組件與目標組件之間的執行順序、目標授權碼進行封裝,得到增量升級檔,利用所述增量升級檔對所述目標軟體模組進行升級,升級後對智慧攝影機進行重啟。
需要說明的是,如果目標軟體模組中不存在新增組件調用硬體的硬體存取介面,那麼,增量升級檔中還可以包括新增的硬體存取介面,以供新增目標組件存取硬體。如果新增組件為執行業務的業務組件,且目標軟體模組中不存在該業務組件所要調用的目標演算法模組,那麼,增量升級檔中還可以包括新增的業務組件所要調用的目標演算法模組。
在本發明實施例中,智慧攝影機的目標軟體模組是組件化的,且組件之間的消息收發關係可自行定義,因此,組件之間的耦合性較低,可以便捷地對目標軟體模組進行升級,提高了升級效率。此外,在對目標軟體模組進行更新的過程中,通過根據智慧攝影機的標識碼和對智慧攝影機的當前授權碼,生成目標授權碼,作為增量升級檔的授權資訊,以減少增量升級檔被盜版的可能,安全性較高。
可以理解,本發明提及的上述各個方法實施例,在不違背原理邏輯的情況下,均可以彼此相互結合形成結合後的實施例,限於篇幅,本發明不再贅述。本領域技術人員可以理解,在具體實施方式的上述方法中,各步驟的具體執行順序應當以其功能和可能的內在邏輯確定。
此外,本發明還提供了智慧攝影機的軟體定義裝置、電子設備、電腦可讀儲存介質、程式,上述均可用來實現本發明提供的任一種智慧攝影機的軟體定義方法,相應技術方案和描述和參見方法部分的相應記載,不再贅述。
圖4為公開實施例的智慧攝影機的軟體定義裝置的方塊圖,如圖4所示,所述裝置40包括:
組件確定模組401,配置為基於使用者選定的功能,根據所述功能的實現流程確定用於定義智慧攝影機功能的至少一個目標組件;
介面確定模組402,配置為根據使用者選定的硬體存取介面,確定目標硬體存取介面;
軟體生成模組403,配置為基於所述至少一個目標組件和所述目標硬體存取介面,生成應用於所述智慧攝影機的目標軟體模組,其中,在所述智慧攝影機上運行所述目標軟體模組時,所述目標組件通過所述目標硬體存取介面調用智慧攝影機的硬體資源來實現所述智慧攝影機的功能。
在一種可能的實現方式中,所述裝置還包括:
順序確定單元,配置為確定每個所述目標組件的執行順序;
配置獲取單元,配置為獲取設定檔;
所述軟體生成模組,配置為基於所述至少一個目標組件、所述設定檔和所述目標硬體存取介面、以及所述每個目標組件的執行順序,生成應用於智慧攝影機的目標軟體模組。
在一種可能的實現方式中,所述設定檔包括每個所述目標組件內的第一設定檔和所述至少一個目標組件之間的第二設定檔;
所述第一設定檔包含用於啟用所述目標組件的依賴參數和所述目標組件需要訂閱發佈的消息;
所述第二設定檔用於約束所述至少一個目標組件間的消息收發模式,其中,所述消息收發模式包括非同步消息訂閱發佈機制。
在一種可能的實現方式中,所述裝置還包括:
發佈訂閱模組,配置為回應於當前目標組件執行所述選定的功能的情況,所述當前目標組件基於所述第二設定檔訂閱需要所述當前目標組件處理的消息,同時發佈待處理消息至其他目標組件。
在一種可能的實現方式中,所述目標組件包括輸入組件和輸出組件;
所述裝置還包括,流程確定模組,配置為回應於接收到多個使用者輸入的功能的情況,確定實現所述多個使用者輸入的功能的多個實現流程;
所述多個實現流程共用所述輸入組件和輸出組件。
在一種可能的實現方式中,所述裝置還包括:
指令執行模組,配置為回應於當前目標組件接收到外界下發的指令的情況,優先執行所述外界下發的指令。
在一種可能的實現方式中,所述裝置還包括:
授權碼生成模組,配置為生成所述目標軟體模組的授權碼;
所述授權碼生成模組,配置為獲取隨機字元碼和所述智慧攝影機的標識碼;將所述隨機字元碼和所述標識碼進行融合,作為對所述智慧攝影機的授權碼。
在一種可能的實現方式中,所述裝置還包括:
總計算能力獲取模組,配置為獲取所述智慧攝影機的總計算能力;
子計算能力確定模組,配置為根據所述智慧攝影機完成各業務所需的各目標組件,計算完成各個業務所需的子計算能力;
寫入模組,配置為將所述總計算能力和所述子計算能力寫入所述目標軟體模組的設定檔中;
管理模組,配置為回應於使用者請求啟動多個目標業務,根據所述設定檔中的所述總計算能力和所述子計算能力,在所述多個目標業務的子計算能力之和小於所述總計算能力的情況下,同時啟動所述多個目標業務。
在一種可能的實現方式中,所述裝置還包括:
新增功能模組,配置為根據使用者輸入的新增功能,確定所述新增功能對應的新增組件以及所述新增組件與所述目標組件的執行順序;
目標授權碼生成模組,配置為根據所述智慧攝影機的標識碼和所述智慧攝影機的當前授權碼,生成目標授權碼;
升級檔生成模組,配置為基於所述新增組件、所述新增組件與所述目標組件的執行順序、所述目標授權資訊進行封裝,得到增量升級檔;
升級模組,配置為利用所述增量升級檔對所述目標軟體模組進行升級。
在一些實施例中,本發明實施例提供的裝置具有的功能或包含的模組可以用於執行上文方法實施例描述的方法,其具體實現可以參照上文方法實施例的描述,為了簡潔,這裡不再贅述。
本發明實施例還提出一種電腦可讀儲存介質,其上儲存有電腦程式指令,所述電腦程式指令被處理器執行時實現上述任意一種軟體定義方法。電腦可讀儲存介質可以是非易失性電腦可讀儲存介質。
本發明實施例還提出一種電子設備,包括:處理器;用於儲存處理器可執行指令的記憶體;其中,所述處理器被配置為調用所述記憶體儲存的指令,以執行上述任意一種軟體定義方法。
本發明實施例還提供了一種電腦程式產品,包括電腦可讀代碼,當電腦可讀代碼在設備上運行時,設備中的處理器執行用於實現如上任一實施例提供的智慧攝影機的軟體定義方法的指令。
本發明實施例還提供了另一種電腦程式產品,用於儲存電腦可讀指令,指令被執行時使得電腦執行上述任一實施例提供的智慧攝影機的軟體定義方法的操作。
電子設備可以被提供為終端、伺服器或其它形態的設備。
圖5為本發明實施例提供的一種電子設備800的結構方塊圖。例如,電子設備800可以是行動電話、電腦、數位廣播終端、消息收發設備、遊戲控制台、平板設備、醫療設備、健身設備、個人數位助理等終端。
參照圖5,電子設備800可以包括以下一個或多個組件:第一處理組件802,第一記憶體804,第一電源組件806,多媒體組件808,音頻組件810,第一輸入/輸出(Input Output,I/ O)的介面812,感測器組件814,以及通信組件816。
第一處理組件802通常控制電子設備800的整體操作,諸如與顯示,電話呼叫,資料通信,相機操作和記錄操作相關聯的操作。第一處理組件802可以包括一個或多個處理器820來執行指令,以完成上述的方法的全部或部分步驟。此外,第一處理組件802可以包括一個或多個模組,便於第一處理組件802和其他組件之間的交互。例如,第一處理組件802可以包括多媒體模組,以方便多媒體組件808和第一處理組件802之間的交互。
第一記憶體804被配置為儲存各種類型的資料以支援在電子設備800的操作。這些資料的示例包括用於在電子設備800上操作的任何應用程式或方法的指令,連絡人資料,電話簿資料,消息,圖片,視頻等。第一記憶體804可以由任何類型的易失性或非易失性存放裝置或者它們的組合實現,如靜態隨機存取記憶體(Static Random-Access Memory,SRAM),電可擦除可程式設計唯讀記憶體(Electrically Erasable Programmable Read Only Memory,EEPROM),可擦除可程式設計唯讀記憶體(Electrical Programmable Read Only Memory ,EPROM),可程式設計唯讀記憶體(Programmable Read-Only Memory,PROM),唯讀記憶體(Read-Only Memory,ROM),磁記憶體,快閃記憶體,磁片或光碟。
第一電源組件806為電子設備800的各種組件提供電力。第一電源組件806可以包括電源管理系統,一個或多個電源,及其他與為電子設備800生成、管理和分配電力相關聯的組件。
多媒體組件808包括在所述電子設備800和使用者之間的提供一個輸出介面的螢幕。在一些實施例中,螢幕可以包括液晶顯示器(Liquid Crystal Display,LCD)和觸摸面板(Touch Pad,TP)。如果螢幕包括觸摸面板,螢幕可以被實現為觸控式螢幕,以接收來自使用者的輸入信號。觸摸面板包括一個或多個觸摸感測器以感測觸摸、滑動和觸摸面板上的手勢。所述觸摸感測器可以不僅感測觸摸或滑動動作的邊界,而且還檢測與所述觸摸或滑動操作相關的持續時間和壓力。在一些實施例中,多媒體組件808包括以下至少之一:一個前置攝影頭、一個後置攝影頭。當電子設備800處於操作模式,如拍攝模式或視訊模式時,前置攝影頭和後置攝影頭中的至少之一可以接收外部的多媒體資料。每個前置攝影頭和後置攝影頭可以是一個固定的光學透鏡系統或具有焦距和光學變焦能力。
音頻組件810被配置為執行以下至少一項操作:輸出音頻信號、輸入音頻信號。例如,音頻組件810包括一個麥克風(MIC),當電子設備800處於操作模式,如呼叫模式、記錄模式和語音辨識模式時,麥克風被配置為接收外部音頻信號。所接收的音頻信號可以被進一步儲存在第一記憶體804或經由通信組件816發送。在一些實施例中,音頻組件810還包括一個揚聲器,用於輸出音頻信號。
第一輸入/輸出介面812為第一處理組件802和週邊介面模組之間提供介面,上述週邊介面模組可以是鍵盤,點擊輪,按鈕等。這些按鈕可包括但不限於:主頁按鈕、音量按鈕、啟動按鈕和鎖定按鈕。
感測器組件814包括一個或多個感測器,用於為電子設備800提供各個方面的狀態評估。例如,感測器組件814可以檢測到電子設備800的打開/關閉狀態,組件的相對定位,例如所述組件為電子設備800的顯示器和小鍵盤,感測器組件814還可以檢測電子設備800或電子設備800一個組件的位置改變,使用者與電子設備800接觸的存在或不存在,電子設備800方位或加速/減速和電子設備800的溫度變化。感測器組件814可以包括接近感測器,被配置用來在沒有任何的物理接觸時檢測附近物體的存在。感測器組件814還可以包括光感測器,如互補金屬氧化物半導體(Complementary Metal Oxide Semiconductor,CMOS)或電荷耦合器件(Charge Coupled Device,CCD)圖像感測器,用於在成像應用中使用。在一些實施例中,該感測器組件814還可以包括加速度感測器,陀螺儀感測器,磁感測器,壓力感測器或溫度感測器。
通信組件816被配置為便於電子設備800和其他設備之間有線或無線方式的通信。電子設備800可以接入基於通信標準的無線網路,如無線網路(WiFi),第二代移動通信技術(2G)或第三代移動通信技術(3G),或它們的組合。在一個示例性實施例中,通信組件816經由廣播通道接收來自外部廣播管理系統的廣播信號或廣播相關資訊。在一個示例性實施例中,所述通信組件816還包括近場通信(Near Field Communication,NFC)模組,以促進短程通信。例如,在NFC模組可基於射頻識別(Radio Frequency Identification,RFID)技術,紅外資料協會(Infrared Data Association,IrDA)技術,超寬頻(Ultra Wide Band,UWB)技術,藍牙(Bluetooth,BT)技術和其他技術來實現。
在示例性實施例中,電子設備800可以被一個或多個應用專用積體電路(Application Specific Integrated Circuit,ASIC)、數位訊號處理器(Digital Signal Processor,DSP)、數位信號處理設備(Digital Signal Process,DSPD)、可程式設計邏輯器件(Programmable Logic Device,PLD)、現場可程式設計閘陣列(Field Programmable Gate Array,FPGA)、控制器、微控制器、微處理器或其他電子組件實現,用於執行上述任意一種方法。
在示例性實施例中,還提供了一種非易失性電腦可讀儲存介質,例如包括電腦程式指令的第一記憶體804,上述電腦程式指令可由電子設備800的處理器820執行以完成上述任意一種方法。
圖6為本申請實施例的另一個電子設備的結構示意圖,如圖6所示,電子設備1900可以被提供為一伺服器。參照圖6,電子設備1900包括第二處理組件1922,其進一步包括一個或多個處理器,以及由第二記憶體1932所代表的記憶體資源,用於儲存可由第二處理組件1922的執行的指令,例如應用程式。第二記憶體1932中儲存的應用程式可以包括一個或一個以上的每一個對應於一組指令的模組。此外,第二處理組件1922被配置為執行指令,以執行上述任意一種方法。
電子設備1900還可以包括一個第二電源組件1926被配置為執行電子設備1900的電源管理,一個有線或無線網路介面1950被配置為將電子設備1900連接到網路,和第二輸入輸出(I/O)介面1958。電子設備1900可以操作基於儲存在第二記憶體1932的作業系統,例如微軟伺服器作業系統(Windows ServerTM),蘋果公司推出的基於圖形化使用者介面作業系統(Mac OS XTM),多使用者多進程的電腦作業系統(UnixTM), 自由和開放原代碼的類Unix作業系統(LinuxTM),開放原代碼的類Unix作業系統(FreeBSDTM)或類似。
在示例性實施例中,還提供了一種非易失性電腦可讀儲存介質,例如包括電腦程式指令的第二記憶體1932,上述電腦程式指令可由電子設備1900的第二處理組件1922執行以完成上述任意一種方法。
本發明實施例可以是系統、方法和/或電腦程式產品。電腦程式產品可以包括電腦可讀儲存介質,其上載有用於使處理器實現本發明實施例的各個方面的電腦可讀程式指令。
電腦可讀儲存介質可以是可以保持和儲存由指令執行設備使用的指令的有形設備。電腦可讀儲存介質例如可以是(但不限於)電存放裝置、磁存放裝置、光存放裝置、電磁存放裝置、半導體存放裝置或者上述的任意合適的組合。電腦可讀儲存介質的更具體的例子(非窮舉的列表)包括:可擕式電腦盤、硬碟、隨機存取記憶體(RAM)、ROM、可擦式可程式設計唯讀記憶體(EPROM或快閃記憶體)、SRAM、可擕式壓縮磁碟唯讀記憶體(CD-ROM)、數位多功能盤(DVD)、記憶棒、軟碟、機械編碼設備、例如其上儲存有指令的打孔卡或凹槽內凸起結構、以及上述的任意合適的組合。這裡所使用的電腦可讀儲存介質不被解釋為暫態信號本身,諸如無線電波或者其他自由傳播的電磁波、通過波導或其他傳輸媒介傳播的電磁波(例如,通過光纖電纜的光脈衝)、或者通過電線傳輸的電信號。
這裡所描述的電腦可讀程式指令可以從電腦可讀儲存介質下載到各個計算/處理設備,或者通過網路、例如網際網路、局域網、廣域網路或無線網下載到外部電腦或外部存放裝置。網路可以包括銅傳輸電纜、光纖傳輸、無線傳輸、路由器、防火牆、交換機、閘道電腦或邊緣伺服器。每個計算/處理設備中的網路介面卡或者網路介面從網路接收電腦可讀程式指令,並轉發該電腦可讀程式指令,以供儲存在各個計算/處理設備中的電腦可讀儲存介質中。
用於執行本發明操作的電腦程式指令可以是彙編指令、指令集架構(Instruction Set Architecture,ISA)指令、機器指令、機器相關指令、微代碼、固件指令、狀態設置資料、或者以一種或多種程式設計語言的任意組合編寫的原始程式碼或目標代碼,所述程式設計語言包括對象導向的程式設計語言—諸如Smalltalk、C++等,以及常規的過程式程式設計語言—諸如“C”語言或類似的程式設計語言。電腦可讀程式指令可以完全地在使用者電腦上執行、部分地在使用者電腦上執行、作為一個獨立的套裝軟體執行、部分在使用者電腦上部分在遠端電腦上執行、或者完全在遠端電腦或伺服器上執行。在涉及遠端電腦的情形中,遠端電腦可以通過任意種類的網路—包括局域網(Local Area Network,LAN)或廣域網路(Wide Area Network,WAN) —連接到使用者電腦,或者,可以連接到外部電腦(例如利用網際網路服務提供者來通過網際網路連接)。在一些實施例中,通過利用電腦可讀程式指令的狀態資訊來個性化定制電子電路,例如可程式設計邏輯電路、FPGA或可程式設計邏輯陣列(Programmable Logic Arrays,PLA),該電子電路可以執行電腦可讀程式指令,從而實現本發明的各個方面。
這裡參照根據本發明實施例的方法、裝置(系統)和電腦程式產品的附圖描述了本發明的各個方面。應當理解,附圖的每個方塊以及附圖中各方塊的組合,都可以由電腦可讀程式指令實現。
這些電腦可讀程式指令可以提供給通用電腦、專用電腦或其它可程式設計資料處理裝置的處理器,從而生產出一種機器,使得這些指令在通過電腦或其它可程式設計資料處理裝置的處理器執行時,產生了實現附圖中的一個或多個方塊中規定的功能/動作的裝置。也可以把這些電腦可讀程式指令儲存在電腦可讀儲存介質中,這些指令使得電腦、可程式設計資料處理裝置和其他設備中的至少一項以特定方式工作,從而,儲存有指令的電腦可讀介質則包括一個製造品,其包括實現附圖中的一個或多個方塊中規定的功能/動作的各個方面的指令。
也可以把電腦可讀程式指令載入到電腦、其它可程式設計資料處理裝置、或其它設備上,使得在電腦、其它可程式設計資料處理裝置或其它設備上執行一系列操作步驟,以產生電腦實現的過程,從而使得在電腦、其它可程式設計資料處理裝置、或其它設備上執行的指令實現附圖中的一個或多個方塊中規定的功能/動作。
附圖中的流程圖和方塊圖顯示了根據本發明的多個實施例的系統、方法和電腦程式產品的可能實現的體系架構、功能和操作。在這點上,流程圖或方塊圖中的每個方塊可以代表一個模組、程式段或指令的一部分,所述模組、程式段或指令的一部分包含一個或多個用於實現規定的邏輯功能的可執行指令。在有些作為替換的實現中,方塊中所標注的功能也可以以不同於附圖中所標注的順序發生。例如,兩個連續的方塊實際上可以基本並行地執行,它們有時也可以按相反的循序執行,這依所涉及的功能而定。也要注意的是,附圖中的每個方塊、以及附圖中的方塊的組合,可以用執行規定的功能或動作的專用的基於硬體的系統來實現,或者可以用專用硬體與電腦指令的組合來實現。
該電腦程式產品可以具體通過硬體、軟體或其結合的方式實現。在一個可選實施例中,所述電腦程式產品具體體現為電腦儲存介質,在另一個可選實施例中,電腦程式產品具體體現為軟體產品,例如軟體發展包(Software Development Kit,SDK)等等。
以上已經描述了本發明的各實施例,上述說明是示例性的,並非窮盡性的,並且也不限於所披露的各實施例。在不偏離所說明的各實施例的範圍和精神的情況下,對於本技術領域的普通技術人員來說許多修改和變更都是顯而易見的。本文中所用術語的選擇,旨在最好地解釋各實施例的原理、實際應用或對市場中的技術的改進,或者使本技術領域的其它普通技術人員能理解本文披露的各實施例。
工業實用性
本發明實施例提供了一種智慧攝影機的軟體定義方法及裝置、電子設備、電腦儲存介質和電腦程式,該方法包括:基於使用者選定的功能,根據所述功能的實現流程確定用於定義智慧攝影機功能的至少一個目標組件;根據使用者選定的硬體存取介面,確定目標硬體存取介面;基於所述至少一個目標組件和所述目標硬體存取介面,生成應用於所述智慧攝影機的目標軟體模組,其中,在所述智慧攝影機上運行所述目標軟體模組時,所述目標組件通過所述目標硬體存取介面調用智慧攝影機的硬體資源來實現所述智慧攝影機的功能。本發明實施例可提高智慧攝影機的開發效率。
40:軟體定義裝置
401:組件確定模組
402:介面確定模組
403:軟體生成模組
800:電子設備
802:第一處理組件
804:第一記憶體
806:第一電源組件
808:多媒體組件
810:音頻組件
812:第一輸入/輸出介面
814:感測器組件
816:通信組件
820:處理器
1900:電子設備
1922:第二處理組件
1926:第二電源組件
1932:第二記憶體
1950:網路介面
1958:第二輸入/輸出介面
S11~S13:步驟
此處的附圖被併入說明書中並構成本說明書的一部分,這些附圖示出了符合本發明的實施例,並與說明書一起用於說明本發明的技術方案。
圖1為本發明實施例的用於軟體定義智慧攝影機的開發框架的結構示意圖;
圖2為本發明實施例的智慧攝影機的軟體定義方法的流程圖;
圖3為本發明實施例的智能攝影機中目標組件之間的關係示意圖;
圖4為本發明實施例的智慧攝影機的軟體定義裝置的方塊圖;
圖5為本發明實施例的一種電子設備的方塊圖;
圖6為本發明實施例的另一種電子設備的方塊圖。
S11~S13:步驟
Claims (11)
- 一種智慧攝影機的軟體定義方法,所述方法由電子設備執行,包括: 基於使用者選定的功能,根據所述功能的實現流程確定用於定義智慧攝影機功能的至少一個目標組件; 根據使用者選定的硬體存取介面,確定目標硬體存取介面; 基於所述至少一個目標組件和所述目標硬體存取介面,生成應用於所述智慧攝影機的目標軟體模組,其中,在所述智慧攝影機上運行所述目標軟體模組時,所述目標組件通過所述目標硬體存取介面調用智慧攝影機的硬體資源來實現所述智慧攝影機的功能。
- 根據請求項1所述的方法,其中,在確定用於定義智慧攝影機功能的至少一個目標組件後,所述方法還包括: 確定每個所述目標組件的執行順序; 獲取設定檔; 所述基於所述至少一個目標組件和所述目標硬體存取介面,生成應用於智慧攝影機的目標軟體模組,包括: 基於所述至少一個目標組件、所述設定檔和所述目標硬體存取介面、以及所述每個目標組件的執行順序,生成應用於智慧攝影機的目標軟體模組。
- 根據請求項2所述的方法,其中,所述設定檔包括每個所述目標組件內的第一設定檔和所述至少一個目標組件之間的第二設定檔; 所述第一設定檔包含用於啟用所述目標組件的依賴參數和所述目標組件需要訂閱發佈的消息; 所述第二設定檔用於約束所述至少一個目標組件間的消息收發模式,其中,所述消息收發模式包括非同步消息訂閱發佈機制。
- 根據請求項3所述的方法,其中,還包括: 回應於當前目標組件執行所述選定的功能的情況,採用所述當前目標組件基於所述第二設定檔訂閱需要所述當前目標組件處理的消息,同時發佈待處理消息至其他目標組件。
- 根據請求項1所述的方法,其中,所述目標組件包括輸入組件和輸出組件; 回應於接收到多個使用者輸入的功能的情況,確定實現所述多個使用者輸入的功能的多個實現流程; 所述多個實現流程共用所述輸入組件和輸出組件。
- 根據請求項1所述的方法,其中,還包括: 回應於當前目標組件接收到外界下發的指令的情況,優先執行所述外界下發的指令。
- 根據請求項1所述的方法,其中,在所述生成應用於所述智慧攝影機的目標軟體模組之後,還包括: 獲取隨機字元碼和所述智慧攝影機的標識碼; 將所述隨機字元碼和所述標識碼進行融合,作為對所述智慧攝影機的授權碼。
- 根據請求項1至7任一項所述的方法,其中,所述方法還包括: 獲取所述智慧攝影機的總計算能力; 根據所述智慧攝影機完成各業務所需的各目標組件,計算完成各個業務所需的子計算能力; 將所述總計算能力和所述子計算能力寫入所述目標軟體模組的設定檔中; 回應於使用者請求啟動多個目標業務,根據所述設定檔中的所述總計算能力和所述子計算能力,在所述多個目標業務的子計算能力之和小於所述總計算能力的情況下,同時啟動所述多個目標業務。
- 根據請求項1至7任一項所述的方法,其中,在所述生成應用於智慧攝影機的目標軟體模組後,所述方法還包括: 根據使用者輸入的新增功能,確定所述新增功能對應的新增組件以及所述新增組件與所述目標組件的執行順序; 根據所述智慧攝影機的標識碼和所述智慧攝影機的當前授權碼,生成目標授權碼; 基於所述新增組件、所述新增組件與所述目標組件的執行順序、所述目標授權碼進行封裝,得到增量升級檔; 利用所述增量升級檔對所述目標軟體模組進行升級。
- 一種電子設備,包括: 處理器; 用於儲存處理器可執行指令的記憶體; 其中,所述處理器被配置為調用所述記憶體儲存的指令,以執行請求項1至9中任意一項所述的軟體定義方法。
- 一種電腦可讀儲存介質,其上儲存有電腦程式指令,所述電腦程式指令被處理器執行時實現請求項1至9中任意一項所述的軟體定義方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110603523.5A CN113312103A (zh) | 2021-05-31 | 2021-05-31 | 智能摄像机的软件定义方法及装置、电子设备和存储介质 |
CN202110603523.5 | 2021-05-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202248848A true TW202248848A (zh) | 2022-12-16 |
Family
ID=77376594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110146181A TW202248848A (zh) | 2021-05-31 | 2021-12-09 | 智慧攝影機的軟體定義方法、電子設備和電腦可讀儲存介質 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN113312103A (zh) |
TW (1) | TW202248848A (zh) |
WO (1) | WO2022252474A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312103A (zh) * | 2021-05-31 | 2021-08-27 | 浙江商汤科技开发有限公司 | 智能摄像机的软件定义方法及装置、电子设备和存储介质 |
CN114879954A (zh) * | 2022-03-29 | 2022-08-09 | 上海商汤智能科技有限公司 | 应用程序定义方法及装置、电子设备和存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107483485A (zh) * | 2017-09-13 | 2017-12-15 | 深圳市屯奇尔科技有限公司 | 授权码的生成方法、授权方法、相关装置及终端设备 |
CN110557555B (zh) * | 2018-06-01 | 2021-03-02 | 杭州海康威视数字技术股份有限公司 | 智能摄像机的功能开启方法、装置、设备及系统 |
CN110798654B (zh) * | 2018-08-01 | 2021-12-10 | 华为技术有限公司 | 软件定义摄像机的方法、系统及摄像机 |
CN111083349B (zh) * | 2018-10-19 | 2021-10-26 | 韩国斯诺有限公司 | 包括相机应用程序的系统及相机功能控制方法 |
CN110113524A (zh) * | 2019-04-11 | 2019-08-09 | 深圳传音通讯有限公司 | 用户智能设备及其基于地理位置的相机参数智能配置方法 |
CN110780929B (zh) * | 2019-09-18 | 2024-05-03 | 华为技术有限公司 | 调用硬件接口的方法及电子设备 |
CN110706147B (zh) * | 2019-09-29 | 2023-08-11 | 阿波罗智联(北京)科技有限公司 | 图像处理的环境确定方法、装置、电子设备和存储介质 |
CN111708585B (zh) * | 2020-06-17 | 2023-06-09 | 无锡睿勤科技有限公司 | 摄像头应用层和驱动层的交互方法、装置及可读存储介质 |
CN112015404A (zh) * | 2020-08-27 | 2020-12-01 | 深圳开立生物医疗科技股份有限公司 | 超声影像诊断系统及其构建方法、超声设备和存储介质 |
CN113312103A (zh) * | 2021-05-31 | 2021-08-27 | 浙江商汤科技开发有限公司 | 智能摄像机的软件定义方法及装置、电子设备和存储介质 |
-
2021
- 2021-05-31 CN CN202110603523.5A patent/CN113312103A/zh active Pending
- 2021-10-21 WO PCT/CN2021/125341 patent/WO2022252474A1/zh active Application Filing
- 2021-12-09 TW TW110146181A patent/TW202248848A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2022252474A1 (zh) | 2022-12-08 |
CN113312103A (zh) | 2021-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108595970B (zh) | 处理组件的配置方法、装置、终端及存储介质 | |
CN109800737B (zh) | 面部识别方法及装置、电子设备和存储介质 | |
US10725972B2 (en) | Continuous and concurrent device experience in a multi-device ecosystem | |
JP6072362B2 (ja) | アプリケーションプログラムの処理方法、装置、プログラム及び記憶媒体 | |
RU2663481C2 (ru) | Способ и устройство для установки подключаемого модуля интеллектуального устройства | |
JP6189000B2 (ja) | アプリケーションのインストールパッケージの処理方法、装置、プログラム及び記録媒体 | |
TW201814510A (zh) | 介面移動方法、裝置、智慧型終端機、伺服器和操作系統 | |
WO2021208743A1 (zh) | 应用程序的账户绑定 | |
WO2022252474A1 (zh) | 智能摄像机的软件定义方法及装置、设备、介质和程序 | |
EP3726376A1 (en) | Program orchestration method and electronic device | |
US20200012701A1 (en) | Method and apparatus for recommending associated user based on interactions with multimedia processes | |
WO2015176352A1 (zh) | 一种基于安卓系统的应用间信息交互方法及装置 | |
CN111629151A (zh) | 视频合拍方法、装置、电子设备及计算机可读介质 | |
WO2023087751A1 (zh) | 应用程序开发平台及方法、电子设备、存储介质和计算机程序产品 | |
CN105094830A (zh) | 一种执行目标功能的方法和装置 | |
CN108280342B (zh) | 应用同步方法和装置、用于应用同步的装置 | |
CN109582297A (zh) | 一种代码模板的生成方法、装置、电子设备及存储介质 | |
CN111694571B (zh) | 编译方法及装置 | |
CN110163372B (zh) | 运算方法、装置及相关产品 | |
CN109885360B (zh) | 一种数据处理方法、装置及存储介质 | |
CN109491655A (zh) | 一种输入事件处理方法及装置 | |
RU2645590C2 (ru) | Способ и устройство обработки информации | |
CN112131999B (zh) | 身份确定方法及装置、电子设备和存储介质 | |
JP2023527174A (ja) | ビデオ特殊効果の配置方法、ビデオ特殊効果の配置装置、デバイス及び記憶媒体 | |
CN107391128B (zh) | 监控虚拟文件对象模型vdom的方法和装置 |