本文作者:kaifamei

圖像識別方法、設備、存儲介質及程序產品與流程

更新時間:2025-12-26 08:51:10 0條評論

圖像識別方法、設備、存儲介質及程序產品與流程



1.本技術涉及圖像處理技術領域,尤其涉及一種圖像識別方法、設備、存儲介質及程序產品。


背景技術:



2.圖像識別,是指利用計算機對圖像進行處理、分析和理解,以識別各種不同模式的目標和對象的技術。
3.圖形碼,是通過某些圖形按照一定的規律分布來記錄數據符號信息的載體,比如二維碼、條形碼等。采用圖像識別技術,能幫助用戶在復雜的圖片中識別出不類型的圖形碼,進而為其他業務場景提供可靠的信息數據。比如電商場景中,可通過識別二維碼,以識別他人分享的店鋪信息、購物車信息、登錄信息、商品真偽信息等。在此過程中,識碼的速度和準確度,對于用戶體驗和業務增長來說都是至關重要的。
4.傳統識碼方法中,一般只能針對單個圖形碼進行識別,然而隨著人們對終端智能化的要求越來越高,往往會一張圖片中同時存在多個圖形碼,傳統的識碼方法無法自動應對這種一圖多碼場景。


技術實現要素:



5.本技術實施例的主要目的在于提供一種圖像識別方法、設備、存儲介質及程序產品,實現了在一圖多碼場景下一次性輸出多個碼的內容,提高終端的碼識別效率,擴大了圖形碼識別的適用范圍。
6.第一方面,本技術實施例提供一種圖像識別方法,包括:響應于用戶的操作指令,獲取待處理的原始圖像;對所述原始圖像進行目標檢測,得到所述原始圖像中圖形碼的檢測結果信息;當所述檢測結果信息中包括多個圖形碼時,基于所述檢測結果信息調用預設算法;采用所述預設算法分別對所述多個圖形碼并行執行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息;輸出所述原始圖像中多個圖形碼對應的內容信息到終端的用戶界面。
7.于一實施例中,所述響應于用戶的操作指令,獲取待處理的原始圖像,包括:響應于第一操作指令,開啟終端的圖像采集器,從所述圖像采集器的采集結果中,選取所述原始圖像。
8.于一實施例中,所述從所述圖像采集設備的采集結果中,選取所述原始圖像,包括:獲取所述采集結果中的當前幀圖像;判斷所述當前幀圖像中是否存在清晰度達到預設值的目標物;當所述當前幀圖像中存在清晰度達到所述預設值的所述目標物時,將所述當前幀圖像作為所述原始圖像,否則,丟棄所述當前幀圖像,并對所述采集結果中的下一幀圖像進行檢測,直至選出所述原始圖像。
9.于一實施例中,所述響應于用戶的操作指令,獲取待處理的原始圖像,包括:響應于第二操作指令,從數據庫中選取目標圖像作為所述原始圖像。
10.于一實施例中,所述對所述原始圖像進行目標檢測,得到所述原始圖像中圖形碼的檢測結果信息,包括:對所述原始圖像進行矯正處理;將矯正后的原始圖像輸入預設檢測模型,輸出所述原始圖像中圖形碼的檢測結果信息,其中,所述檢測結果信息中包括:所述原始圖像中每個所述圖形碼的類型、每個所述圖形碼的大小、每個所述圖形碼的位置和每個所述圖形碼的置信度中的一個或多個。
11.于一實施例中,在所述將矯正后的原始圖像輸入預設檢測模型,輸出所述原始圖像中圖形碼的檢測結果信息之前,還包括:獲取樣本圖象集,所述樣本圖像集中包括多個樣本圖像,每個所述樣本圖像中包括不同的樣本圖形碼;對所述樣本圖象集進行標注,標注內容包括:每個所述樣本圖形碼的類型、每個所述樣本圖形碼的大小和每個所述樣本圖形碼的位置;采用標注的樣本圖象集訓練預設的神經網絡模型,得到所述預設檢測模型。
12.于一實施例中,所述采用所述預設算法分別對所述多個圖形碼并行執行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息,包括:根據所述檢測結果信息,采用所述預設算法將所述原始圖像切割成多個子圖像,其中,一個所述子圖像中包括一個圖形碼的檢測結果信息;采用所述預設算法,對所述多個子圖像中的圖形碼并行執行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息。
13.于一實施例中,所述檢測結果信息中包括:所述原始圖像中每個所述圖形碼的大小、每個所述圖形碼的位置和每個所述圖形碼的置信度;所述根據所述檢測結果信息,采用所述預設算法將所述原始圖像切割成多個子圖像,包括:根據所述檢測結果信息,篩選出所述置信度大于預設閾值的目標圖形碼;根據每個所述目標圖形碼的大小、每個所述目標圖形碼的位置,將所述原始圖像切割成多個子圖像,一個所述子圖像中包括一個所述目標圖形碼的檢測結果信息。
14.于一實施例中,所述檢測結果信息中包括:所述原始圖像中每個所述圖形碼的類型;所述采用所述預設算法分別對所述多個圖形碼并行執行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息,包括:根據每個所述圖形碼的類型,獲取每個所述圖形碼對應的解碼算法;基于每個所述圖形碼對應的解碼算法,分別對相應的圖形碼并行執行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息。
15.于一實施例中,所述采用所述預設算法分別對所述多個圖形碼并行執行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息,包括并行執行如下步驟:分別對每個所述子圖像進行二值化處理;在二值化處理后的每個所述子圖像中,建立圖形碼區域;對每個所述子圖像的所述圖形碼區域進行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息。
16.于一實施例中,所述對每個所述子圖像的所述圖形碼區域進行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息,包括:對每個所述子圖像的所述圖形碼區域進行編碼識別,判斷是否有識別出對應的內容信息;若所述子圖像未識別出內容信息,則判斷所述子圖像的二值化次數是否小于預設次數;若所述子圖像的二值化次數小于所述預設次數,則對所述子圖像再次進行二值化處理以及后續碼識別流程,否則,丟棄所述子圖像;若所述子圖像識別出對應的內容信息,則將識別出的內容信息與所述原始圖像中其他子圖像的識別結果匯總,得到所述原始圖像中多個圖形碼對應的內容信息。
17.于一實施例中,當所述原始圖像為終端的圖像采集器采集的圖像時,所述預設次
數為第一次數,當所述原始圖像為數據庫中的圖像時,所述預設次數為第二次數,其中,所述第一次數小于第二次數。
18.第二方面,本技術實施例提供一種圖像識別裝置,包括:
19.獲取模塊,用于響應于用戶的操作指令,獲取待處理的原始圖像;
20.檢測模塊,用于對所述原始圖像進行目標檢測,得到所述原始圖像中圖形碼的檢測結果信息;
21.調用模塊,用于當所述檢測結果信息中包括多個圖形碼時,基于所述檢測結果信息調用預設算法;
22.識別模塊,用于采用所述預設算法分別對所述多個圖形碼并行執行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息。
23.輸出模塊,用于輸出所述原始圖像中多個圖形碼對應的內容信息到終端的用戶界面。
24.于一實施例中,所述獲取模塊,用于響應于第一操作指令,開啟終端的圖像采集器,從所述圖像采集器的采集結果中,選取所述原始圖像。
25.于一實施例中,所述獲取模塊,具體用于獲取所述采集結果中的當前幀圖像;判斷所述當前幀圖像中是否存在清晰度達到預設值的目標物;當所述當前幀圖像中存在清晰度達到所述預設值的所述目標物時,將所述當前幀圖像作為所述原始圖像,否則,丟棄所述當前幀圖像,并對所述采集結果中的下一幀圖像進行檢測,直至選出所述原始圖像。
26.于一實施例中,所述獲取模塊,還用于響應于第二操作指令,從數據庫中選取目標圖像作為所述原始圖像。
27.于一實施例中,所述檢測模塊,用于對所述原始圖像進行矯正處理;將矯正后的原始圖像輸入預設檢測模型,輸出所述原始圖像中圖形碼的檢測結果信息,其中,所述檢測結果信息中包括:所述原始圖像中每個所述圖形碼的類型、每個所述圖形碼的大小、每個所述圖形碼的位置和每個所述圖形碼的置信度中的一個或多個。
28.于一實施例中,還包括:訓練模塊,用于在所述將矯正后的原始圖像輸入預設檢測模型,輸出所述原始圖像中圖形碼的檢測結果信息之前,獲取樣本圖象集,所述樣本圖像集中包括多個樣本圖像,每個所述樣本圖像中包括不同的樣本圖形碼;對所述樣本圖象集進行標注,標注內容包括:每個所述樣本圖形碼的類型、每個所述樣本圖形碼的大小和每個所述樣本圖形碼的位置;采用標注的樣本圖象集訓練預設的神經網絡模型,得到所述預設檢測模型。
29.于一實施例中,所述識別模塊,用于根據所述檢測結果信息,采用所述預設算法將所述原始圖像切割成多個子圖像,其中,一個所述子圖像中包括一個圖形碼的檢測結果信息;采用所述預設算法,對所述多個子圖像中的圖形碼并行執行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息。
30.于一實施例中,所述檢測結果信息中包括:所述原始圖像中每個所述圖形碼的大小、每個所述圖形碼的位置和每個所述圖形碼的置信度;所述識別模塊,用于根據所述檢測結果信息,篩選出所述置信度大于預設閾值的目標圖形碼;根據每個所述目標圖形碼的大小、每個所述目標圖形碼的位置,將所述原始圖像切割成多個子圖像,一個所述子圖像中包括一個所述目標圖形碼的檢測結果信息。
31.于一實施例中,所述檢測結果信息中包括:所述原始圖像中每個所述圖形碼的類型;所述識別模塊,用于根據每個所述圖形碼的類型,獲取每個所述圖形碼對應的解碼算法;基于每個所述圖形碼對應的解碼算法,分別對相應的圖形碼進行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息。
32.于一實施例中,所述識別模塊,用于分別對每個所述子圖像進行二值化處理;在二值化處理后的每個所述子圖像中,建立圖形碼區域;對每個所述子圖像的所述圖形碼區域進行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息。
33.于一實施例中,所述識別模塊,還用于對每個所述子圖像的所述圖形碼區域進行編碼識別,判斷是否有識別出對應的內容信息;若所述子圖像未識別出內容信息,則判斷所述子圖像的二值化次數是否小于預設次數;若所述子圖像的二值化次數小于所述預設次數,則對所述子圖像再次進行二值化處理以及后續碼識別流程,否則,丟棄所述子圖像;若所述子圖像識別出對應的內容信息,則將識別出的內容信息與所述原始圖像中其他子圖像的識別結果匯總,得到所述原始圖像中多個圖形碼對應的內容信息。
34.于一實施例中,當所述原始圖像為終端的圖像采集器采集的圖像時,所述預設次數為第一次數,當所述原始圖像為數據庫中的圖像時,所述預設次數為第二次數,其中,所述第一次數小于第二次數。
35.第三方面,本技術實施例提供一種電子設備,包括:
36.至少一個處理器;以及
37.與所述至少一個處理器通信連接的存儲器;
38.其中,所述存儲器存儲有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述電子設備執行上述任一方面所述的方法。
39.第四方面,本技術實施例提供一種計算機可讀存儲介質,所述計算機可讀存儲介質中存儲有計算機執行指令,當處理器執行所述計算機執行指令時,實現上述任一方面所述的方法。
40.第五方面,本技術實施例提供一種計算機程序產品,包括計算機程序,該計算機程序被處理器執行時實現上述任一方面所述的方法。
41.本技術實施例提供的圖像識別方法、設備、存儲介質及程序產品,響應于用戶操作,通過將原始圖像進行初步的目標檢測,基于初步的圖形碼檢測結果調用預設算法,采用預設算法并行對多個圖形碼執行編碼識別,如此實現了在一圖多碼場景下一次性輸出多個碼的內容,提高終端的碼識別效率,擴大了圖形碼識別的適用范圍。
附圖說明
42.此處的附圖被并入說明書中并構成本說明書的一部分,示出了符合本技術的實施例,并與說明書一起用于解釋本技術的原理。顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
43.圖1為本技術實施例提供的一種電子設備的結構示意圖;
44.圖2a為本技術實施例提供的一種圖像識別系統的場景架構示意圖;
45.圖2b為本技術實施例提供的一種用戶界面的場景示意圖;
46.圖3為本技術實施例提供的一種圖像識別方法的流程示意圖;
47.圖4為本技術實施例提供的又一種圖像識別方法的流程示意圖;
48.圖5為本技術實施例提供的一種圖像識別裝置的結構示意圖。
49.通過上述附圖,已示出本技術明確的實施例,后文中將有更詳細的描述。這些附圖和文字描述并不是為了通過任何方式限制本技術構思的范圍,而是通過參考特定實施例為本領域技術人員說明本技術的概念。
具體實施方式
50.這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本技術相一致的所有實施方式。
51.本文中術語“和/或”,用于描述關聯對象的關聯關系,具體表示可以存在三種關系,例如,a和/或b,可以表示:單獨存在a,同時存在a和b,單獨存在b這三種情況。
52.為了清楚地描述本技術實施例的技術方案,首先對本技術所涉及的術語進行釋義:
53.條形碼:bar code,是將寬度不等的多個黑條和空白,按照一定的編碼規則排列,用以表達一組信息的圖形標識符。常見的條形碼是由反射率相差很大的黑條(簡稱條)和白條(簡稱空)排成的平行線圖案。
54.二維碼:是用某種特定的幾何圖形按一定規律在平面(二維方向上)分布的、黑白相間的、記錄數據符號信息的圖形。又稱二維條碼,常見的二維碼為qr code,qr全稱quick response,是一個近幾年來移動設備上流行的一種編碼方式,它比傳統的bar code條形碼能存更多的信息,也能表示更多的數據類型。
55.ai:artificial intelligence,人工智能,它是研究、開發用于模擬、延伸和擴展人的智能的理論、方法、技術及應用系統的一門新的技術科學。
56.cnn:convolutional neural networks,卷積神經網絡。
57.svm:support vector machine,支持向量機。
58.yolo:you only look once,是一個用于目標檢測的網絡,目標檢測任務包括確定圖像中存在某些對象的位置,以及對這些對象進行分類,其僅僅使用一個cnn網絡直接預測不同目標的類別與位置。
59.r-cnn:region-cnn,基于卷積神經網絡(cnn),線性回歸,和支持向量機(svm)等算法,實現目標檢測技術。
60.mnn:是一個高效、輕量的深度學習框架。
61.app:application,應用程序。
62.如圖1所示,本實施例提供一種電子設備1,包括:至少一個處理器11和存儲器12,圖1中以一個處理器為例。處理器11和存儲器12通過總線10連接。存儲器12存儲有可被處理器11執行的指令,指令被處理器11執行,以使電子設備1可執行下述的實施例中方法的全部或部分流程,以實現一圖多碼的一次性識別,提高終端的碼識別效率,擴大圖形碼識別的適用范圍。
63.于一實施例中,存儲器12既可以是獨立的,也可以跟處理器11集成在一起。
64.于一實施例中,電子設備1可以是手機、平板電腦、筆記本電腦、臺式計算機或者多個計算機組成的大型運算系統。
65.本技術實施例可以應用于任意需要進行圖像識別的領域。
66.對于電商場景而言,app的掃一掃是核心功能之一,它能幫助用戶在復雜的圖片中識別出多種類型的圖形碼、如二維碼、條形碼等。圖形碼識別是多個電商業務中不可缺少的一部分,可以廣泛用于店鋪分享、購物車分享、掃碼登錄、辨別商品真偽等場景。因此識碼的速度和準確度,對于用戶體驗和電商平臺的業務增長來說都是至關重要的。
67.隨著電子信息技術的發展,電商業務越來越豐富,圖形碼也越來越普遍,往往一張圖片中會包含多個圖形碼。而傳統識碼方法不支持多碼識別功能,通常只能識別單個圖形碼,針對一圖多碼的場景,傳統識碼方法會隨機選擇一個碼識別,或者讓用戶選擇一個圖形碼進行識別,或者直接報錯,這給用戶帶來了非常不好的體驗。
68.為了解決上述問題,本技術實施例提供一種圖像識別方案,可以實現一圖多碼的一次性識別,提高終端的碼識別效率,擴大圖形碼識別的適用范圍,進而提高終端的交互性能。
69.圖2a為本技術實施例提供的一種圖像識別系統200的場景示意圖。如圖2a所示,該系統包括:服務器210和終端220,其中,服務器210可以是電商的數據平臺,比如線上購物平臺等。實際場景中,一個線上購物平臺可能有多個服務器210,圖2a中以1個服務器210為例。終端220可以是登錄線上購物平臺時使用的電腦、手機、平板等設備,終端220也可以有多個,圖2a中以2個終端220為例進行示意。
70.終端220和服務器210之間可以通過互聯網進行信息傳輸,以使終端220可以訪問服務器210上的數據。上述終端220和/或者服務器210均可以由電子設備1來實現。
71.以電商購物場景為例,服務器210中存儲有在線購物的虛擬資源數據,比如圖片、音視頻等商品信息。服務器210還可以為用戶管理賬戶信息。用戶可以通過終端220登錄至服務器210,并可以通過在終端220上錄入操作指令,來訪問服務器210上的數據,服務器210可以將終端220需要訪問的數據展示在用戶界面中,傳輸給終端220,進而使得用戶可以通過終端220屏幕上展示的用戶界面,查看服務器210上的商品信息。
72.如圖2b所示,為本技術實施例終端220的用戶界面221的示意圖,用戶界面221中可以配置有圖形碼識別的控件1,比如“掃一掃”對應的控件1。當用戶想要識別圖像中的圖形碼時,此時用戶可以觸發掃一掃功能,來識別特定圖像中的多個圖形碼。比如一張實體圖上的二維碼和條形碼,該二維碼中攜帶有店鋪鏈接,條形碼中攜帶有物流信息。當用戶想要查看該實體圖中二維碼和/或條形碼的內容信息時,可以在用戶界面221上觸發控件1,開啟掃一掃功能,來掃描該實體圖,采用本技術實施例的方式進行一圖多碼的識別過程。服務器210中還可以部署有圖形碼識別的算法引擎,以對用戶觸發的圖像識別操作提供算法支持。
73.下面結合附圖,對本技術的一些實施方式作詳細說明。在各實施例之間不沖突的情況下,下述的實施例及實施例中的特征可以相互組合。另外,下述各方法實施例中的步驟時序僅為一種舉例,而非嚴格限定。
74.請參看圖3,其為本技術一實施例的圖像識別方法,該方法可由圖1所示的電子設備1來執行,并可以應用于圖2a至圖2b所示的圖像識別的應用場景中,以實現在一圖多碼場景下一次性輸出多個碼的內容,提高終端220的碼識別效率,擴大圖形碼識別的適用范圍,
進而提高終端220的交互體驗。該方法包括如下步驟:
75.步驟301:響應于用戶的操作指令,獲取待處理的原始圖像。
76.在本步驟中,當用戶想要識別圖像中的圖形碼時,可以觸發掃一掃功能,來識別特定圖像中的多個圖形碼。比如用戶可以在手機屏幕上顯示的用戶界面221觸發購物app的掃一掃功能。終端220響應于用戶的操作,獲取要識別的原始圖像,此處原始圖像是指用戶選定的圖像。該原始圖像可以來源于數據庫,比如手機本地數據庫或者遠端數據庫等。原始圖像也可以現場通過攝像頭采集得到。用戶可以基于實際需求選擇,提高終端220的交互性能。
77.于一實施例中,步驟301具體可以包括:響應于第一操作指令,開啟終端220的圖像采集器,從圖像采集器的采集結果中,選取原始圖像。
78.在本實施例中,圖像采集器可以是終端220的內置攝像頭或者外接攝像頭,第一操作指令可以是用于開啟攝像頭的指令,第一操作指令可以是觸摸指令、隔空手勢指令和語音指令中的一種或多種。當用戶觸發掃一掃功能后,終端220可以給出提示,詢問用戶是否開啟攝像頭,當用戶確定開啟攝像頭時,可以通過第一操作指令觸發開啟,實時獲取攝像頭采集的圖像,并從圖像采集結果中選取合適的圖片作為原始圖像。比如一張實體圖上的二維碼和條形碼,該二維碼中攜帶有店鋪鏈接,條形碼中攜帶有物流信息,當用戶想要查看該實體圖中二維碼和/或條形碼的內容信息時,可以在手機app上觸發掃一掃功能開啟,來掃描該實體圖,得到原始圖像。該方式適用于現場采像的場景,便于用戶靈活選擇。
79.于一實施例中,步驟301具體還可以包括:響應于第二操作指令,從數據庫中選取目標圖像作為原始圖像。
80.在本實施例中,數據庫可以是本地數據庫,比如手機的本地相冊,也可以是遠端數據庫,比如云端服務器210中的相冊。第二操作指令可以是用于開啟數據庫并進行圖片選中的指令,第二操作指令也可以是觸摸指令、隔空手勢指令和語音指令中的一種或多種。有些場景下,待處理的原始圖像可能是別的用戶發來的電子圖片,比如好友發來的店鋪分享的圖片,圖片中有包含店鋪鏈接的圖形碼,此時可以將該圖片緩存到本地相冊中,當用戶想要識別該圖中的圖形碼時,可以在相冊中選擇一張圖片作為待處理的原始圖像。該方式不需要開啟攝像頭,節約終端220資源,操作簡單,便于用戶靈活選擇。
81.步驟302:對原始圖像進行目標檢測,得到原始圖像中圖形碼的檢測結果信息。
82.在本步驟中,在客戶端側,可以采用基于卷積神經網絡的算法,對原始圖像進行初步的目標檢測,進而得到原始圖像中可能包含的圖形碼,以降低后續碼識別過程的計算量,提高識別效率。
83.于一實施例中,步驟302具體可以包括:對原始圖像進行矯正處理。將矯正后的原始圖像輸入預設檢測模型,輸出原始圖像中圖形碼的檢測結果信息。
84.在本實施例中,原始圖像可能存在傾斜、尺寸過小或者過大等現象,尤其是通過攝像頭現場采像的場景,采集的原始圖像會收到用戶的拍攝技術的影響,原始圖像的質量或好或壞,為了適用于不同的拍攝場景,可以通過yolo算法針對傾斜、大小不合適圖片進行矯正處理,矯正處理后的圖像可以更加準確的體現圖形碼的特征信息,因此可以提高目標檢測的準確度。然后將校正后的原始圖像輸入到預先訓練好的檢測模型,檢測模型就會輸出檢測結果信息,此處檢測結果信息包含但不限于:原始圖像中每個圖形碼的類型、每個圖形
碼的大小、每個圖形碼的位置和每個圖形碼的置信度中的一個或多個。如此,通過預設的檢測模型對原始圖像中的圖形碼的數量、位置、類型進行預判,可以為后續的識碼過程節省很多計算量,提高整體識碼過程的效率。
85.于一實施例中,在將矯正后的原始圖像輸入預設檢測模型,輸出原始圖像中圖形碼的檢測結果信息之前,還包括訓練預設檢測模型的步驟,如下:獲取樣本圖象集,樣本圖像集中包括多個樣本圖像,每個樣本圖像中包括不同的樣本圖形碼。對樣本圖象集進行標注,標注內容包括:每個樣本圖形碼的類型、每個樣本圖形碼的大小和每個樣本圖形碼的位置。采用標注的樣本圖象集訓練預設的神經網絡模型,得到預設檢測模型。
86.在本實施例中,樣本圖象集可以通過圖像采集獲得,或者通過第三方數據庫獲得。由于后續的識碼過程是基于預設檢測模型的輸出結果,因此預設檢測模型采用的智能算法的精確度和效率是至關重要的。在模型訓練過程中,對樣本圖像的標注準確度和量級均有一定的要求。比如樣本圖像集中包括盡可能多的樣本圖像,樣本圖像中的圖形碼分布盡量豐富,在標注的時候,分別標注每一個樣本圖像中每個樣本圖形碼的類型、每個樣本圖形碼的大小和每個樣本圖形碼的位置等信息,多樣豐富的樣本圖像集,可以使訓練得到的檢測模型更加準確。
87.神經網絡模型可以采用yolo算法模型,yolo智能算法相比傳統的r-cnn(區域卷積分算法)耗時更短。
88.步驟303:當檢測結果信息中包括多個圖形碼時,基于檢測結果信息調用預設算法。
89.在本步驟中,預設算法可以是基于mnn的智能算法也可以是其他具備并行能力的中臺算法。此處當檢測結果信息中包括多個圖形碼時,可以利用mnn的智能算法并行處理能力,提高yolo智能算法的運行速度,進一步提高檢測模型的效率。
90.于一實施例中,可以依賴mnn的模型動態更新能力,實現檢測模型的動態更新,不依賴客戶端發版,可以快速迭代,提高效率。
91.步驟304:采用預設算法分別對多個圖形碼并行執行編碼識別,得到原始圖像中多個圖形碼對應的內容信息。
92.在本步驟中,對于多個圖形碼的情況,可以采用預設算法并行執行編碼識別的過程,比如使用mnn作為中臺進行實施,利用mnn的智能算法并行處理能力,來提高編碼識別的運行速度,提高識別效率。
93.于一實施例中,步驟304具體可以包括:根據檢測結果信息,采用預設算法將原始圖像切割成多個子圖像,其中,一個子圖像中包括一個圖形碼的檢測結果信息。采用預設算法,對多個子圖像中的圖形碼并行執行編碼識別,得到原始圖像中多個圖形碼對應的內容信息。
94.在本實施例中,檢測結果信息中可以包括原始圖像中可能存在的圖形碼的類型和位置,可以基于此采用預設算法將原始圖像切割成多個子圖像,切割后的一個子圖像中包括檢測模型認為的一個圖形碼的檢測結果信息。就是說,步驟302中預設檢測模型輸出的是原始圖像中可能包含的圖形碼的檢測結果,為了能夠把原始圖像中多個圖形碼都識別出來,采用預設算法將原始圖像按照圖形碼進行切割,一個子圖像中包括一個可能的圖形碼。切割后的子圖像相較于原始圖像數據量更小,可以提高圖像識別速率。比如一張原始圖像
中包括3個圖形碼,在步驟302中檢測模型給出了這個3個圖形碼的類型分別為:二維碼、二維碼和條形碼,并給出了對應的位置,則可以將這個三個圖形碼分別切割到一個子圖像上,就是原始圖像被切割成3個子圖像。對于切割后的子圖像,可以分別并行執行編碼識別,假設將原始圖像切割成3個子圖像,則可以并行對這3個子圖像執行編碼識別過程,提高識別速度。圖形碼是一種編碼圖像,編碼識別的過程就是解碼的過程,由于子圖像中只包含一個圖形碼,因此識別速度相對較快。
95.于一實施例中,檢測結果信息中包括:原始圖像中每個圖形碼的大小、每個圖形碼的位置和每個圖形碼的置信度。此時根據檢測結果信息,采用預設算法將原始圖像切割成多個子圖像具體可以包括:根據檢測結果信息,篩選出置信度大于預設閾值的目標圖形碼。根據每個目標圖形碼的大小、每個目標圖形碼的位置,將原始圖像切割成多個子圖像,一個子圖像中包括一個目標圖形碼的檢測結果信息。
96.在本實施例中,預設檢測模型可以輸出原始圖像中每個圖形碼的大小、每個圖形碼的位置以及每個圖形碼的置信度,置信度可以表征一個目標是圖形碼的可能性大小,置信度越大,這個目標是圖形碼的概率就越大,在計算時,可以通過置信度篩選出可能性較大的目標圖形碼,然后基于目標圖形碼的大小和位置,來切割原始圖像,得到的多個子圖像中,一個子圖像中會包括一個目標圖形碼的檢測結果信息,如此可以進一步節省后續的數據計算量,提高計算效率。
97.預設閾值可以基于實際需求設定,如果解碼算法對精度要求比較高,則可以將預設閾值相應的配置較高一點,以適應后續解碼算法。
98.于一實施例中,步驟304具體可以包括:根據每個圖形碼的類型,獲取每個圖形碼對應的解碼算法。基于每個圖形碼對應的解碼算法,分別對相應的圖形碼進行編碼識別,得到原始圖像中圖形碼對應的內容信息。
99.在本實施例中,檢測結果信息中可以包括:原始圖像中每個圖形碼的類型。類型可以是圖形碼的編碼類型,比如二維碼、條形碼等類型。每種編碼類型都可以預先配置對應的解碼算法,在對多個圖形碼進行編碼識別時,可以通過類型來查詢到對應的解碼算法,進而基于每個圖形碼對應的解碼算法,分別對相應的圖形碼進行編碼識別,得到原始圖像中圖形碼對應的內容信息。比如二維碼,可以采用二維碼的解碼算法對其進行編碼識別,得到該二維碼包含的內容信息。一個條形碼,可以采用條形碼的解碼算法對其進行編碼識別,得到該條形碼包含的內容信息。如此,通過圖形碼類型,匹配到對應的解碼算法,來對圖形碼進行解碼,解碼過程調理清晰不混雜,提高計算效率。
100.步驟305:輸出原始圖像中多個圖形碼對應的內容信息到終端220的用戶界面221。
101.在本步驟中,可以將最終多個圖形碼的識別結果進行匯總輸出,展示在用戶界面221中,比如展示在用戶手機的界面中,用戶可以實時查看每個圖形碼的內容信息。此處可以基于圖形碼在原始圖像中的位置,將對應的內容信息展示在圖形碼的附近,或者以半透明提示框的方式展示在圖形碼的上方,以供用戶查看和點擊,提高終端220的交互性能。
102.上述圖像識別方法,通過響應于用戶操作,將原始圖像進行初步的目標檢測,基于初步的圖形碼檢測結果調用預設算法,采用預設算法并行對多個圖形碼執行編碼識別,如此實現了在一圖多碼場景下一次性輸出多個碼的內容,提高終端220的碼識別效率,擴大了圖形碼識別的適用范圍。
103.另一方面,利用人工智能算法(比如yolo算法)對于圖片中可能出現的碼位置進行預處理,輸出碼類型、位置、置信度等,大幅降低了后續的處理工作量,提高計算效率。利用mnn的智能算法并行處理能力,提高yolo智能算法的運行速度。使用yolo人工智能算法和傳統解碼策略結合的方式進行解碼,在保證識碼精確度的前提下,提高效率。
104.請參看圖4,其為本技術一實施例的圖像識別方法,該方法可由圖1所示的電子設備1來執行,并可以應用于圖2a至圖2b所示的圖像識別的應用場景中,以實現在一圖多碼場景下一次性輸出多個碼的內容,提高終端220的碼識別效率,擴大圖形碼識別的適用范圍,進而提高終端220的交互體驗。本實施例以相機鏈路獲取原始圖像為例進行詳細說明,該方法包括如下步驟:
105.步驟401:響應于第一操作指令,開啟終端220的圖像采集器。詳細參見上述實施例中對步驟301的描述。
106.步驟402:獲取采集結果中的當前幀圖像。
107.在本步驟中,圖像采集器以手機的攝像頭為例,當步驟401中開啟了攝像頭時,攝像頭會實時捕捉鏡頭內掃描到的畫面,采集結果就是實時的拍攝畫面,終端220實時從拍攝畫面中讀取當前幀圖像。
108.步驟403:判斷當前幀圖像中是否存在清晰度達到預設值的目標物。若是,進入步驟404,否則丟棄當前幀圖像,并可以返回步驟402獲取下一幀圖像。
109.在本步驟中,目標物是指圖形碼,對于從相機鏈路獲取待處理的原始圖像的場景,由于攝像頭采集的圖像會受到用戶拍攝習慣、相機硬件參數以及現場環境等因素的影響,在拍攝過程中可能會出現晃動、搖擺等情況,此時可能會導致攝像頭的拍攝畫面是模糊的,拍攝的圖像中的圖形碼也是模糊的,這種情況無法準確識別出圖形碼,因此這樣的當前幀圖像就是不符合標準的。而有些場景可能是用戶誤操作使得攝像頭對著一張純物體進行拍照,這時得到的當前幀圖像會是純的,不包含圖形碼,也就沒有必要進行后續的編碼識別過程。因此,為了避免模糊不清或者不存在圖形碼的圖像浪費計算資源,可以先對攝像頭采集到的圖像進行篩選,判斷當前幀圖像中是否存在清晰度達到預設值的目標物,如果是進入步驟404,否則,說明當前幀圖像可能是模糊的或者純的,不符合編碼識別標準,可以丟棄當前幀圖像,并返回步驟402,對采集結果中的下一幀圖像進行檢測,繼續篩選判斷,直至選出符合標準的圖像幀作為原始圖。篩選過程,可以減少不必要的資源浪費,進一步提高圖形碼識別效率。
110.其中,清晰度的預設值可以基于實際需求靈活設定,如果對識別精度要求較高,則需要原始圖像的清晰度較高,此時可以將清晰度的預設值配置的高一點,如果識別精度要求沒那么高,那么相應地清晰度的預設值也可以稍低一些。只要能夠保證最終識別出圖形碼中的內容信息就可以。
111.步驟404:將當前幀圖像作為原始圖像。
112.在本步驟中,當當前幀圖像中存在清晰度達到預設值的目標物時,也就是當前幀圖像清晰度是足夠的,并且包含圖形碼,此時將當前幀圖像作為待處理的原始圖像。
113.步驟405:對原始圖像進行目標檢測,得到原始圖像中圖形碼的檢測結果信息。詳細參見上述實施例中對步驟302的描述。
114.步驟406:當檢測結果信息中包括多個圖形碼時,基于檢測結果信息調用預設算
法。詳細參見上述實施例中對步驟303的描述。
115.步驟407:根據檢測結果信息,采用預設算法將原始圖像切割成多個子圖像,其中,一個子圖像中包括一個圖形碼的檢測結果信息。詳細參見上述實施例中對步驟304的描述。
116.步驟408:對子圖像進行二值化處理。
117.在本步驟中,圖像的二值化,就是將圖像上的像素點的灰度值設置為0或255,把大于某個臨界灰度值的像素灰度設為灰度極大值,把小于這個值的像素灰度設為灰度極小值,從而實現二值化,二值圖像是每個像素只有兩個可能值的數字圖像。預設算法中可以包括具備并行執行二值化處理的算法,因此可以采用并行執行的方式,分別將每個子圖像進行二值化處理,可以降低圖像的計算量,簡化計算過程。
118.在并行執行過程中,可以借助終端部署的預設算法,并行執行二值化過程,也可以是借助中臺服務器210中部署的算法引擎mnn的并行能力,來提高計算效率。
119.步驟409:在二值化處理后的每個子圖像中,建立圖形碼區域。
120.在本步驟中,二值化處理的后的子圖像為二值圖像,便于計算,由于圖形碼所在區域的像素值是區別于子圖像中的其他像素點的像素值的,因此可以基于像素點的分布,在二值化的子圖像中分別框出圖形碼的像素點所在的區域,建立圖形碼區域。
121.然后對每個子圖像的圖形碼區域進行編碼識別,得到原始圖像中圖形碼對應的內容信息。可以采用并行執行的方式對每個圖像執行編碼識別過程,具體如下:
122.步驟410:對每個子圖像的圖形碼區域進行編碼識別,判斷是否有識別出對應的內容信息。如果有進入步驟412,否則進入步驟411。
123.在本步驟中,此處可以采用子圖像中圖形碼對應類型的解碼算法來實現編碼識別。比如一個二維碼的圖形碼區域,可以采用二維碼的解碼算法對其進行編碼識別。一個條形碼的圖形碼區域,可以采用條形碼的解碼算法對其進行編碼識別。由于子圖像是在步驟404的初步目標檢測結果的基礎上切割得到的,如果步驟404中的目標檢測過程不夠準確,也會導致一個子圖像中的圖形碼是不存在的,這樣也就無法識別出對應的內容信息。為了減少這種情況帶來的損失,提高識別精準度,可以對每個子圖像的編碼識別結果進行篩選,判斷該子圖像經過編碼識別后是否有識別出的對應內容信息,如果有進入步驟412,否則進入步驟411。
124.步驟411:判斷子圖像的二值化次數是否小于預設次數。若是,返回步驟408。
125.在本步驟中,若子圖像的圖形碼區域未識別出對應的內容信息,則說明該子圖像中可能原本就不包含圖形碼,也可能是該子圖像中包含圖形碼,但是步驟410中的編碼識別過程未能準確識別出來,為了避免遺漏圖形碼,可以對該子圖像再次進行識別。另一方面,多一次識別也就多消耗時長,過長的識別時間對用戶來說是不希望看到的,因此通過配置多次識別的預設次數,來限制最終的識別時長。
126.若子圖像的圖形碼區域未識別出對應的內容信息,則首先判斷該子圖像的二值化次數是否小于預設次數,如果是,則說明該子圖像的預設次數還未用完,在時長允許范圍內,可以返回步驟408,繼續對子圖像再次進行二值化處理以及后續碼識別流程。否則,說明該子圖像的預設次數已經用完了,識別時長已經比較長了,此時還未能識別出內容信息,很大可能是該子圖像中原本就沒有圖形碼,則可以丟棄該子圖像。
127.于一實施例中,當原始圖像為終端220的圖像采集器采集的圖像時,預設次數為第
一次數,當原始圖像為數據庫中的圖像時,預設次數為第二次數,其中,第一次數小于第二次數。
128.在本實施例中,在掃一掃業務的實際場景中,一般由兩個情況:相機鏈路和相冊鏈路。相機鏈路偏重于快速返回識別結果,相冊鏈路則更加偏重精確度,因此本方案跟進業務場景設計了效率優先和精確度優先兩種策略。
129.相機鏈路情況下,用戶對于識別過程的耗時要求較高,即用戶希望能夠快速識別出鏡頭中的圖形碼,因此對子圖像進行二值化的第一次數可以配置稍低。由于相冊鏈路用戶心理上預期耗時較長,因此在處理流程上精確度優先,為了達到目的,在編碼識別流程中進行二值化處理的第二次數可以大于第一次數,以便得到精確的結果。
130.于一實施例中,若預設檢測模型的精確度不是很高的情況下,也可以適當增加二值化的預設次數,來均衡最終的識別精度。
131.步驟412:將識別出的內容信息與原始圖像中其他子圖像的識別結果匯總,得到原始圖像中多個圖形碼對應的內容信息。
132.在本步驟中,若子圖像識別出對應的內容信息,則將并行執行的各個編碼識別流程中識別出的內容信息進行匯總,匯總過程中,一個圖形碼對應一個識別出的內容信息,將匯總的結果作為該原始圖像中多個圖形碼對應的內容信息。
133.步驟413:輸出原始圖像中多個圖形碼對應的內容信息到終端220的用戶界面221。詳細參見上述實施例中對步驟305的描述。
134.上述圖像識別方法,對于可能出現的碼位置進行并行處理,并適當增加二值化的次數來進一步增加精確度。可以根據相冊鏈路和相機鏈路的場景不同,增加或減少二值化的次數,來達到精確度優先和效率優先的不同結果,便于在不同業務場景下進行切換,提高終端220的交互性能。
135.本方案可以廣泛應用于客戶端app的掃一掃和拍照識圖的模塊上,可以快速、準確地識別到用戶相冊和攝像機鏡頭里的二維碼、條形碼等,從而為貨品分享、店鋪分享、訂單分享、物流查詢、貨品正品鑒別等業務提供保障。
136.請參看圖5,其為本技術一實施例的圖像識別裝置500,該裝置可應用于圖1所示的電子設備1,并可以應用于圖2a至圖2b所示的圖像識別的應用場景中,以實現在一圖多碼場景下一次性輸出多個碼的內容,提高終端220的碼識別效率,擴大圖形碼識別的適用范圍,進而提高終端220的交互體驗。該裝置包括:獲取模塊501、檢測模塊502、調用模塊503和識別模塊504,各個模塊的功能如下:
137.獲取模塊501,用于響應于用戶的操作指令,獲取待處理的原始圖像。
138.檢測模塊502,用于對原始圖像進行目標檢測,得到原始圖像中圖形碼的檢測結果信息。
139.調用模塊503,用于當檢測結果信息中包括多個圖形碼時,基于檢測結果信息調用預設算法。
140.識別模塊504,用于采用預設算法分別對多個圖形碼并行執行編碼識別,得到原始圖像中多個圖形碼對應的內容信息。
141.輸出模塊506,用于輸出原始圖像中多個圖形碼對應的內容信息到終端220的用戶界面221。
142.于一實施例中,獲取模塊501,用于響應于第一操作指令,開啟終端220的圖像采集器,從圖像采集器的采集結果中,選取原始圖像。
143.于一實施例中,獲取模塊501,具體用于獲取采集結果中的當前幀圖像。判斷當前幀圖像中是否存在清晰度達到預設值的目標物。當當前幀圖像中存在清晰度達到預設值的目標物時,將當前幀圖像作為原始圖像,否則,丟棄當前幀圖像,并對采集結果中的下一幀圖像進行檢測,直至選出原始圖像。
144.于一實施例中,獲取模塊501,還用于響應于第二操作指令,從數據庫中選取目標圖像作為原始圖像。
145.于一實施例中,檢測模塊502,用于對原始圖像進行矯正處理。將矯正后的原始圖像輸入預設檢測模型,輸出原始圖像中圖形碼的檢測結果信息,其中,檢測結果信息中包括:原始圖像中每個圖形碼的類型、每個圖形碼的大小、每個圖形碼的位置和每個圖形碼的置信度中的一個或多個。
146.于一實施例中,還包括:訓練模塊505,用于在將矯正后的原始圖像輸入預設檢測模型,輸出原始圖像中圖形碼的檢測結果信息之前,獲取樣本圖象集,樣本圖像中包括不同的樣本圖形碼。對樣本圖象集進行標注,標注內容包括:每個樣本圖形碼的類型、每個樣本圖形碼的大小和每個樣本圖形碼的位置。采用標注的樣本圖象集訓練預設的神經網絡模型,得到預設檢測模型。
147.于一實施例中,識別模塊504,用于根據檢測結果信息,采用預設算法將原始圖像切割成多個子圖像,其中,一個子圖像中包括一個圖形碼的檢測結果信息;采用預設算法,對多個子圖像中的圖形碼并行執行編碼識別,得到原始圖像中多個圖形碼對應的內容信息。
148.于一實施例中,檢測結果信息中包括:原始圖像中每個圖形碼的大小、每個圖形碼的位置和每個圖形碼的置信度。識別模塊504,用于根據檢測結果信息,篩選出置信度大于預設閾值的目標圖形碼。根據每個目標圖形碼的大小、每個目標圖形碼的位置,將原始圖像切割成多個子圖像,一個子圖像中包括一個目標圖形碼的檢測結果信息。
149.于一實施例中,檢測結果信息中包括:原始圖像中每個圖形碼的類型。識別模塊504,用于根據每個圖形碼的類型,獲取每個圖形碼對應的解碼算法。基于每個圖形碼對應的解碼算法,分別對相應的圖形碼進行編碼識別,得到原始圖像中多個圖形碼對應的內容信息。
150.于一實施例中,識別模塊504,用于分別對每個子圖像進行二值化處理。在二值化處理后的每個子圖像中,建立圖形碼區域。對每個子圖像的圖形碼區域進行編碼識別,得到原始圖像中多個圖形碼對應的內容信息。
151.于一實施例中,識別模塊504,還用于對每個子圖像的圖形碼區域進行編碼識別,判斷是否有識別出對應的內容信息。若子圖像未識別出內容信息,則判斷子圖像的二值化次數是否小于預設次數。若子圖像的二值化次數小于預設次數,則對子圖像再次進行二值化處理以及后續碼識別流程,否則,丟棄子圖像。若子圖像識別出對應的內容信息,則將識別出的內容信息與原始圖像中其他子圖像的識別結果匯總,得到原始圖像中多個圖形碼對應的內容信息。
152.于一實施例中,當原始圖像為終端220的圖像采集器采集的圖像時,預設次數為第
一次數,當原始圖像為數據庫中的圖像時,預設次數為第二次數,其中,第一次數小于第二次數。
153.上述圖像識別裝置500的詳細描述,請參見上述實施例中相關方法步驟的描述,其實現原理和技術效果類似,本實施例此處不再贅述。
154.本技術實施例還提供一種計算機可讀存儲介質,計算機可讀存儲介質中存儲有計算機執行指令,當處理器執行計算機執行指令時,實現前述任一實施例的方法。
155.本技術實施例還提供一種計算機程序產品,包括計算機程序,該計算機程序被處理器執行時實現前述任一實施例的方法。
156.在本技術所提供的幾個實施例中,應該理解到,所揭露的設備和方法,可以通過其它的方式實現。例如,以上所描述的設備實施例僅僅是示意性的,例如,模塊的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個模塊可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。
157.上述以軟件功能模塊的形式實現的集成的模塊,可以存儲在一個計算機可讀取存儲介質中。上述軟件功能模塊存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)或處理器執行本技術各個實施例方法的部分步驟。
158.應理解,上述處理器可以是中央處理單元(central processing unit,簡稱cpu),還可以是其它通用處理器、數字信號處理器(digital signal processor,簡稱dsp)、專用集成電路(application specific integrated circuit,簡稱asic)等。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。結合申請所公開的方法的步驟可以直接體現為硬件處理器執行完成,或者用處理器中的硬件及軟件模塊組合執行完成。存儲器可能包含高速ram存儲器,也可能還包括非易失性存儲nvm,例如至少一個磁盤存儲器,還可以為u盤、移動硬盤、只讀存儲器、磁盤或光盤等。
159.上述存儲介質可以是由任何類型的易失性或非易失性存儲設備或者它們的組合實現,如靜態隨機存取存儲器(sram),電可擦除可編程只讀存儲器(eeprom),可擦除可編程只讀存儲器(eprom),可編程只讀存儲器(prom),只讀存儲器(rom),磁存儲器,快閃存儲器,磁盤或光盤。存儲介質可以是通用或專用計算機能夠存取的任何可用介質。
160.一種示例性的存儲介質耦合至處理器,從而使處理器能夠從該存儲介質讀取信息,且可向該存儲介質寫入信息。當然,存儲介質也可以是處理器的組成部分。處理器和存儲介質可以位于專用集成電路(application specific integrated circuits,簡稱asic)中。當然,處理器和存儲介質也可以作為分立組件存在于電子設備或主控設備中。
161.需要說明的是,在本文中,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個
……”
限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
162.上述本技術實施例序號僅僅為了描述,不代表實施例的優劣。
163.通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下
前者是更佳的實施方式。基于這樣的理解,本技術的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,空調器,或者網絡設備等)執行本技術各個實施例的方法。
164.本技術的技術方案中,所涉及的用戶數據等信息的收集、存儲、使用、加工、傳輸、提供和公開等處理,均符合相關法律法規的規定,且不違背公序良俗。
165.以上僅為本技術的優選實施例,并非因此限制本技術的專利范圍,凡是利用本技術說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本技術的專利保護范圍內。

技術特征:


1.一種圖像識別方法,其特征在于,包括:響應于用戶的操作指令,獲取待處理的原始圖像;對所述原始圖像進行目標檢測,得到所述原始圖像中圖形碼的檢測結果信息;當所述檢測結果信息中包括多個圖形碼時,基于所述檢測結果信息調用預設算法;采用所述預設算法分別對所述多個圖形碼并行執行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息;輸出所述原始圖像中多個圖形碼對應的內容信息到終端的用戶界面。2.根據權利要求1所述的方法,其特征在于,所述響應于用戶的操作指令,獲取待處理的原始圖像,包括:響應于第一操作指令,開啟終端的圖像采集器,從所述圖像采集器的采集結果中,選取所述原始圖像。3.根據權利要求2所述的方法,其特征在于,所述從所述圖像采集設備的采集結果中,選取所述原始圖像,包括:獲取所述采集結果中的當前幀圖像;判斷所述當前幀圖像中是否存在清晰度達到預設值的目標物;當所述當前幀圖像中存在清晰度達到所述預設值的所述目標物時,將所述當前幀圖像作為所述原始圖像,否則,丟棄所述當前幀圖像,并對所述采集結果中的下一幀圖像進行檢測,直至選出所述原始圖像。4.根據權利要求1所述的方法,其特征在于,所述響應于用戶的操作指令,獲取待處理的原始圖像,包括:響應于第二操作指令,從數據庫中選取目標圖像作為所述原始圖像。5.根據權利要求1-4中任一項所述的方法,其特征在于,所述對所述原始圖像進行目標檢測,得到所述原始圖像中圖形碼的檢測結果信息,包括:對所述原始圖像進行矯正處理;將矯正后的原始圖像輸入預設檢測模型,輸出所述原始圖像中圖形碼的檢測結果信息,其中,所述檢測結果信息中包括:所述原始圖像中每個所述圖形碼的類型、每個所述圖形碼的大小、每個所述圖形碼的位置和每個所述圖形碼的置信度中的一個或多個。6.根據權利要求5所述的方法,其特征在于,在所述將矯正后的原始圖像輸入預設檢測模型,輸出所述原始圖像中圖形碼的檢測結果信息之前,還包括:獲取樣本圖像集,所述樣本圖像集中包括多個樣本圖像,每個所述樣本圖像中包括不同的樣本圖形碼;對所述樣本圖像集進行標注,標注內容包括:每個所述樣本圖形碼的類型、每個所述樣本圖形碼的大小和每個所述樣本圖形碼的位置;采用標注的樣本圖像集訓練預設的神經網絡模型,得到所述預設檢測模型。7.根據權利要求1所述的方法,其特征在于,所述采用所述預設算法分別對所述多個圖形碼并行執行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息,包括:根據所述檢測結果信息,采用所述預設算法將所述原始圖像切割成多個子圖像,其中,一個所述子圖像中包括一個圖形碼的檢測結果信息;采用所述預設算法,對所述多個子圖像中的圖形碼并行執行編碼識別,得到所述原始
圖像中多個圖形碼對應的內容信息。8.根據權利要求7所述的方法,其特征在于,所述檢測結果信息中包括:所述原始圖像中每個所述圖形碼的大小、每個所述圖形碼的位置和每個所述圖形碼的置信度;所述根據所述檢測結果信息,采用所述預設算法將所述原始圖像切割成多個子圖像,包括:根據所述檢測結果信息,篩選出所述置信度大于預設閾值的目標圖形碼;根據每個所述目標圖形碼的大小、每個所述目標圖形碼的位置,將所述原始圖像切割成多個子圖像,一個所述子圖像中包括一個所述目標圖形碼的檢測結果信息。9.根據權利要求7所述的方法,其特征在于,所述采用所述預設算法,對所述多個子圖像中的圖形碼并行執行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息,包括并行執行如下步驟:分別對每個所述子圖像進行二值化處理;在二值化處理后的每個所述子圖像中,建立圖形碼區域;對每個所述子圖像的所述圖形碼區域進行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息。10.根據權利要求9所述的方法,其特征在于,所述對每個所述子圖像的所述圖形碼區域進行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息,包括:對每個所述子圖像的所述圖形碼區域進行編碼識別,判斷是否有識別出對應的內容信息;若所述子圖像未識別出內容信息,則判斷所述子圖像的二值化次數是否小于預設次數;若所述子圖像的二值化次數小于所述預設次數,則對所述子圖像再次進行二值化處理以及后續碼識別流程,否則,丟棄所述子圖像;若所述子圖像識別出對應的內容信息,則將識別出的內容信息與所述原始圖像中其他子圖像的識別結果匯總,得到所述原始圖像中多個圖形碼對應的內容信息。11.根據權利要求10所述的方法,其特征在于,當所述原始圖像為終端的圖像采集器采集的圖像時,所述預設次數為第一次數,當所述原始圖像為數據庫中的圖像時,所述預設次數為第二次數,其中,所述第一次數小于第二次數。12.根據權利要求1所述的方法,其特征在于,所述檢測結果信息中包括:所述原始圖像中每個所述圖形碼的類型;所述采用所述預設算法分別對所述多個圖形碼并行執行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息,包括:根據每個所述圖形碼的類型,獲取每個所述圖形碼對應的解碼算法;基于每個所述圖形碼對應的解碼算法,分別對相應的圖形碼并行執行編碼識別,得到所述原始圖像中圖形碼對應的內容信息。13.一種電子設備,其特征在于,包括:至少一個處理器;以及與所述至少一個處理器通信連接的存儲器;其中,所述存儲器存儲有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述電子設備執行權利要求1-12任一項所述的方法。14.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質中存儲有計算機
執行指令,當處理器執行所述計算機執行指令時,實現如權利要求1-12任一項所述的方法。15.一種計算機程序產品,包括計算機程序,其特征在于,該計算機程序被處理器執行時實現如權利要求1-12任一項所述的方法。

技術總結


本申請提供一種圖像識別方法、設備、存儲介質及程序產品,其中方法包括響應于用戶的操作指令,獲取待處理的原始圖像;對所述原始圖像進行目標檢測,得到所述原始圖像中圖形碼的檢測結果信息;當所述檢測結果信息中包括多個圖形碼時,基于所述檢測結果信息調用預設算法;采用所述預設算法分別對所述多個圖形碼并行執行編碼識別,得到所述原始圖像中多個圖形碼對應的內容信息;輸出所述原始圖像中多個圖形碼對應的內容信息到終端的用戶界面。本申請實現了在一圖多碼場景下一次性輸出多個碼的內容,提高終端的碼識別效率,擴大了圖形碼識別的適用范圍。別的適用范圍。別的適用范圍。


技術研發人員:

王楠 劉邦哲 曾超然 羅陽

受保護的技術使用者:

阿里巴巴(中國)有限公司

技術研發日:

2022.09.16

技術公布日:

2022/12/19


文章投稿或轉載聲明

本文鏈接:http://m.newhan.cn/zhuanli/patent-1-58433-0.html

來源:專利查詢檢索下載-實用文體寫作網版權所有,轉載請保留出處。本站文章發布于 2022-12-23 06:51:04

發表評論

驗證碼:
用戶名: 密碼: 匿名發表
評論列表 (有 條評論
2人圍觀
參與討論