本技術涉及電池領域,特別是涉及一種產線視覺處理方法、裝置、設備、存儲介質及程序產品。
背景技術:
1、在電池生成制造過程中,工站中的多臺圖像采集設備通常需要并行對工站中的產品進行圖像采集,并將各自采集的圖像數據傳輸給工控機,以通過工控機對多組圖像數據進行前后工序缺陷檢測、圖像分析等視覺處理。工控機在對多組圖像數據進行視覺處理時,為了提高處理效率和提高檢測結果的準確性,通常會創建每組圖像數據各自對應的視覺處理任務,對多個視覺處理任務并行運行。
2、工控機在對多個視覺處理任務進行并行處理時,因為每個視覺處理任務均需要占用一定的資源,因此多個任務會競爭工控機有限的硬件資源,如內存、處理器時間和?i/o端口等,容易導致系統資源緊缺或耗盡,并且視覺處理效率低下。
3、因此,如何減少視覺處理多任務并行場景下的資源開銷,提高視覺處理效率,成為業內的一個難題。
技術實現思路
1、本技術提供一種產線視覺處理方法、裝置、設備、存儲介質及程序產品,其能減少視覺處理多任務并行場景下的資源開銷,提高視覺處理效率。
2、第一方面,本技術提供一種產線視覺處理方法,包括:響應于接收到圖像數據,創建與圖像數據對應的圖像處理任務,圖像處理任務用于指示基于目標算法配置文件對圖像數據進行視覺處理,其中,目標算法配置文件為視覺處理應用中加載的與圖像數據對應的算法配置文件,算法配置文件用于描述視覺處理的步驟以及各步驟使用的算子工具;通過預設的線程池分配一個目標線程執行圖像處理任務;在目標線程執行圖像處理任務的過程中,在需要使用目標算子對象時,從預設的對象池中獲取空閑的目標算子對象,其中,目標算子對象為與目標算法配置文件中描述的算子工具對應的任意算子對象;在獲取到目標算子對象的情況下,通過目標算子對象對圖像數據進行處理。
3、本技術實施例提供的技術方案,視覺處理應用通過預先創建線程池和對象池,在接收到圖像數據時,可以直接從線程池中分配一個目標線程來執行圖像數據對應的圖像處理任務,并在執行圖像處理任務的過程中,直接從對象池中獲取需要使用的目標算子對象,以對圖像數據進行處理。如此,在對圖像數據進行視覺處理時,無需頻繁的創建和銷毀線程和算子對象,從而減少視覺處理所需的時間和降低資源開銷,從而提高視覺處理效率,減少資源耗盡問題的發生。
4、在本技術的一些或多個實施例中,通過預設的線程池分配一個目標線程執行圖像處理任務,包括:確定線程池中正在運行的線程的第一數量是否小于線程池閾值,線程池閾值為線程池中能夠并行運行的線程的最大數量;在第一數量小于線程池閾值的情況下,從線程池中空閑的線程中分配一個目標線程執行圖像處理任務;線程池在第一數量大于或等于線程池閾值的情況下,返回執行確定線程池中正在運行的線程的第一數量是否小于線程池閾值的步驟。
5、通過上述技術方案,可以對線程池中并行運行的線程的數量進行控制和管理,避免了因過多線程競爭資源導致的系統崩潰或不穩定情,有助于增強視覺處理應用的穩定性和可靠性。
6、在本技術的一些或多個實施例中,方法還包括:在通過從對象池中獲取的目標算子對象完成對圖像數據的處理后,通過池管理工具將目標算子對象放回對象池。
7、通過上述方案,可以避免頻繁創建和銷毀算子對象,減少資源消耗。
8、在本技術的一些或多個實施例中,方法還包括:在未獲取到目標算子對象的情況下,創建目標算子對象;在目標算子對象創建完成后,通過目標算子對象對圖像數據進行處理。
9、通過上述技術方案,避免由于無法從對象池中獲取目標算子對象導致的圖像處理任務中斷,從而提高任務處理效率。
10、在本技術的一些或多個實施例中,方法還包括:基于視覺處理應用中加載的算法配置文件和線程池閾值,初始化對象池。
11、在本技術的一些或多個實施例中,基于視覺處理應用中加載的算法配置文件和線程池閾值,初始化對象池,包括:確定視覺處理應用中加載的算法配置文件中包含的算子對象和每類算子對象的數量;根據算法配置文件中包含的每類算子對象的數量和線程池閾值,確定每類算子對象的初始數量;基于每類算子對象的初始數量分別對每類算子對象進行預構建;將預構建的算子對象放入對象池,實現對對象池的初始化。
12、通過上述技術方案,對對象池進行初始化,可以提高從對象池中獲取到空閑的目標算子對象的成功率,以及更充分的利用硬件資源。
13、在本技術的一些或多個實施例中,方法還包括:獲取視覺處理應用的系統負載;在系統負載大于第一負載閾值的情況下,創建與視覺處理應用中加載的算法配置文件中描述的算子工具對應的算子對象,并將創建的算子對象放入對象池;在系統負載小于第二負載閾值的情況下,銷毀對象池中的符合銷毀條件的算子對象,其中,第二負載閾值小于或等于第一負載閾值。
14、通過上述技術方案,根據系統的負載情況,動態對對象池中算子對象的數量進行自動調整,可以確保在高并發場景下有足夠的對象可用,而在低負載時不會浪費過多的資源來維護多余的對象。
15、在本技術的一些或多個實施例中,銷毀條件包括以下至少一項:算子對象未被使用的時長,大于時長閾值;同類型的算子對象的數量大于數量閾值。
16、通過上述技術方案,通過銷毀長時間未使用的算子對象和/或數量過多的算子對象,可以降低資源的占用,提高資源利用率。
17、在本技術的一些或多個實施例中,通過目標算子對象對圖像數據進行處理?,包括:在目標算子對象屬于互斥鎖對應的算子對象組合的情況下,將目標算子對象對應的輸入數據輸入互斥鎖;判斷算子對象組合中正在運行的算子對象的第二數量是否小于對象閾值,其中,對象閾值用于指示算子對象組合中能夠并行運行的算子對象的最大數量;在第二數量大于或等于對象閾值的情況下,返回執行確定算子對象組合中正在運行的算子對象的第二數量的步驟;在第二數量小于對象閾值的情況下,將輸入數據輸入目標算子對象,以通過目標算子對象對圖像數據進行處理。
18、通過上述技術方案,通過設置互斥鎖,限制并削弱并行運行的壓力,在執行任務的內部繼續進行互斥鎖的限制,優化的顆粒度更細微以達到在并行場景下最大資源利用限度下的平穩運行的目的。
19、在本技術的一些或多個實施例中,判斷算子對象組合中正在運行的算子對象的第二數量是否小于對象閾值,包括:確定互斥鎖對應的信號量是否為0,信號量的初始值為對象閾值,算子對象組合中每運行一個算子對象,信號量減一;在互斥鎖對應的信號量大于0的情況下,確定算子對象組合中正在運行的算子對象的第二數量小于對象閾值。
20、通過上述技術方案,基于信號量可以快速準確地確定算子對象組合并行運行的算子對象的第二數量是否超過對象閾值。
21、在本技術的一些或多個實施例中,方法還包括:確定目標算子對象的標識中是否包含互斥鎖的鎖名稱;在目標算子對象的標識中包含互斥鎖的鎖名稱的情況下,確定目標算子對象屬于互斥鎖對應的算子對象組合,互斥鎖對應的算子對象組合為標識中包含鎖名稱的算子對象組成的集合;算子對象組合中包括以下至少一種:同一算法配置文件對應的不同算子對象;不同算法配置文件對應的不同算子對象。
22、通過上述技術方案,通過將互斥鎖的鎖名稱與算子對象進行關聯,實現對算子對象的加鎖操作,具有通用性,可以適用于各種并行場景。
23、第二方面,本技術提供一種視覺處理裝置,包括:任務創建模塊,用于響應于接收到圖像數據,創建與圖像數據對應的圖像處理任務,圖像處理任務包括圖像數據和目標算法配置文件,其中,目標算法配置文件為視覺處理應用中,與圖像數據對應的算法配置文件,算法配置文件用于描述視覺處理的步驟以及各步驟使用的算子工具;線程分配模塊,用于通過預設的線程池分配一個目標線程執行圖像處理任務;對象池管理模塊,用于目標線程在執行圖像處理任務的過程中,在需要使用目標算子對象時,從預設的對象池中獲取空閑的目標算子對象,目標算子對象為與目標算法配置文件中描述的算子工具對應的任意算子對象;任務執行模塊,用于在獲取到目標算子對象的情況下,通過目標算子對象對圖像數據進行處理。
24、第三方面,本技術提供一種電子設備,所述電子設備包括:處理器以及存儲有計算機程序指令的存儲器;所述處理器執行所述計算機程序指令時實現如第一方面所述的視覺處理方法。
25、第四方面,本技術提供一種計算機可讀存儲介質,所述計算機可讀存儲介質上存儲有計算機程序指令,所述計算機程序指令被處理器執行時實現如第一方面所述的視覺處理方法。
26、第五方面,本技術提供一種計算機程序產品,所述計算機程序產品中的指令由電子設備的處理器執行時,使得所述電子設備能夠執行如第一方面所述的視覺處理方法。