TWI773797B - 用以追蹤真實空間之區域中的多關節主體之系統,方法及電腦程式產品 - Google Patents

用以追蹤真實空間之區域中的多關節主體之系統,方法及電腦程式產品 Download PDF

Info

Publication number
TWI773797B
TWI773797B TW107126341A TW107126341A TWI773797B TW I773797 B TWI773797 B TW I773797B TW 107126341 A TW107126341 A TW 107126341A TW 107126341 A TW107126341 A TW 107126341A TW I773797 B TWI773797 B TW I773797B
Authority
TW
Taiwan
Prior art keywords
joint
images
image
real space
joints
Prior art date
Application number
TW107126341A
Other languages
English (en)
Other versions
TW201911119A (zh
Inventor
喬丹 費雪
丹尼爾 菲奇帝
布蘭登 歐格
約翰 諾瓦克
凱爾 多曼
肯尼士 木原
喬安 拉席拉
大衛 瓦德曼
Original Assignee
美商標準認知公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/847,796 external-priority patent/US10055853B1/en
Priority claimed from US15/907,112 external-priority patent/US10133933B1/en
Priority claimed from US15/945,473 external-priority patent/US10474988B2/en
Priority claimed from US15/945,466 external-priority patent/US10127438B1/en
Application filed by 美商標準認知公司 filed Critical 美商標準認知公司
Publication of TW201911119A publication Critical patent/TW201911119A/zh
Application granted granted Critical
Publication of TWI773797B publication Critical patent/TWI773797B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/20Point-of-sale [POS] network systems
    • G06Q20/203Inventory monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • G06F18/24143Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/20Point-of-sale [POS] network systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/20Point-of-sale [POS] network systems
    • G06Q20/208Input by product or record sensing, e.g. weighing or scanner processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/52Surveillance or monitoring of activities, e.g. for recognising suspicious objects
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07GREGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
    • G07G1/00Cash registers
    • G07G1/0036Checkout procedures
    • G07G1/0045Checkout procedures with a code reader for reading of an identifying code of the article to be registered, e.g. barcode reader or radio-frequency identity [RFID] reader
    • G07G1/0054Checkout procedures with a code reader for reading of an identifying code of the article to be registered, e.g. barcode reader or radio-frequency identity [RFID] reader with control of supplementary check-parameters, e.g. weight or number of articles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • H04N17/002Diagnosis, testing or measuring for television systems or their details for television cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/90Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Evolutionary Computation (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Economics (AREA)
  • Molecular Biology (AREA)
  • Development Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Marketing (AREA)
  • General Engineering & Computer Science (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Game Theory and Decision Science (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)

Abstract

提供系統及技術以追蹤真實空間之區域中藉由主體之存貨項目的放下及取走。具有具有重疊觀看域之複數相機係產生該真實空間中之相應觀看域的影像之各別序列。於一實施例中,該系統包括第一影像處理器,包括主體影像辨識引擎,接收來自該些複數相機之影像的相應序列。該些第一影像處理器係處理影像以識別影像之該些相應序列中的該些影像中所表示之主體。該系統包括第二影像處理器,包括背景影像辨識引擎,接收來自該些複數相機之影像的相應序列。第二影像處理器係遮蔽該些已識別主體以產生已遮蔽影像。接續於此,該些第二影像處理器係處理該些已遮蔽影像以識別並分類影像之該些相應序列中的該些影像中所表示之背景改變。

Description

用以追蹤真實空間之區域中的多關節主體之系統,方法及電腦程式產品
本發明係有關可用於無出納員結帳之系統及其組件。
影像處理之困難問題係發生在當來自其配置在大空間上之多數相機的影像被用以識別並追蹤主體的動作時。
追蹤真實空間的區域內之主體的動作(諸如購物商店中的人)引起了許多技術上的挑戰。例如,考量購物商店中所部署的此一影像處理系統,其中有多數消費者在購物商店內之貨架間的走道以及開放空間中移動。消費者從貨架取走項目並將那些項目放入其各別的購物車或籃中。消費者亦可將項目放在貨架上,假如他們不想要該項目的話。
當消費者正履行這些動作時,消費者之不同部分以及貨架之不同部分或者固持該商店之存貨的其他展示結構將被阻擋於來自不同相機的影像中,由於其他消費者、貨架、及產品陳列等等之存在。同時,任何既定時刻在該商店中可能有許多消費者,使其難以隨時識別及追蹤個人及其動作。
希望提供一種系統,其可更有效率地且自動地識別及追蹤大空間中之主體的放下及取走動作;並履行支援主體與其環境之複雜互動的其他程序,包括諸如無出納員結帳等功能。
一種系統、及用以操作系統之方法被提供來追蹤藉由真實空間之區域中的主體(諸如人)之改變、及與其環境之主體的其他複雜互動,使用影像處理。藉由影像處理以追蹤改變之此功能造成了電腦工程之複雜問題,有關待處理之影像資料的類型、影像資料之何種處理應履行、及如何從具有高可靠度之影像資料判定動作。文中所述之系統可僅使用來自其配置於真實空間中之上方的相機之影像,以致其無須針對具有感應器等之商店架及地板空間的翻新以供部署於既定設定中。
提供一種用以追蹤藉由包括存貨展示結構之真實空間的區域中之主體的存貨項目之放下及取走的系統及方法,其包含使用配置於該些存貨展示結構之上的複數相機以產生該些存貨展示結構之影像的各別序列在該真實 空間中的相應觀看域中,各相機之該觀看域係與該些複數相機中之至少一其他相機的該觀看域重疊。使用影像之這些序列,一種系統及方法被描述為:藉由語意上識別其相關於存貨展示結構上之存貨項目的影像之該些序列中的顯著改變以檢測存貨項目之放下及取走;及使該些語意上的顯著改變與影像之該些序列中所表示的主體關聯。
提供一種用以追蹤藉由真實空間的區域中之主體的存貨項目之放下及取走的系統及方法,其包含使用配置於該些存貨展示結構之上的複數相機以產生該些存貨展示結構之影像的各別序列在該真實空間中的相應觀看域中,各相機之該觀看域係與該些複數相機中之至少一其他相機的該觀看域重疊。使用影像之這些序列,一種系統及方法被描述為藉由處理影像之該些序列中的前台資料以識別主體之姿勢及與該些姿勢相關的存貨項目來檢測存貨項目之放下及取走。
同時,描述一種系統及方法,其係結合影像之相同序列中的前台處理與背景處理。於此結合的方式中,所提供之該系統及方法包括使用影像之這些序列以藉由處理影像之該些序列中的前台資料以識別主體之姿勢及與該些姿勢相關的存貨項目來檢測存貨項目之放下及取走;及使用影像之這些序列以藉由語意上識別其相關於存貨展示結構上之存貨項目的影像之該些序列中的顯著改變以檢測存貨項目之放下及取走,及使該些語意上的顯著改變與影像之該些序列中所表示的主體關聯。
於文中所述之實施例中,該系統係使用複數相機以產生該真實空間中之相應觀看域的影像之各別序列。各相機之該觀看域係與該些複數相機中之至少一其他相機的該觀看域重疊。該系統包括第一影像處理器,包括主體影像辨識引擎,接收來自該些複數相機之影像的相應序列。該些第一影像處理器係處理影像以識別影像之該些相應序列中的該些影像中所表示之主體。該系統進一步包括第二影像處理器,包括背景影像辨識引擎,接收來自該些複數相機之影像的相應序列。該些第二影像處理器係遮蔽該些已識別主體以產生已遮蔽影像,及處理該些已遮蔽影像以識別並分類影像之該些相應序列中的該些影像中所表示之背景改變。
於一實施例中,該些背景影像辨識引擎包含卷積神經網路。該系統包括用以使已識別背景改變與已識別主體關聯的邏輯。
於一實施例中,該些第二影像處理器包括背景影像儲存,用以儲存影像之相應序列的背景影像。該些第二影像處理器進一步包括遮蔽邏輯,用以處理影像之該些序列中的影像來取代其表示該些已識別主體之前台影像資料以背景影像資料。該背景影像資料被收集自影像之該些相應序列的該些背景影像以提供該些已遮蔽影像。
於一實施例中,該遮蔽邏輯係結合影像之該些序列中的多組N個已遮蔽影像以產生針對各相機之因數化影像的序列。該些第二影像處理器藉由處理因數化影像 的該序列以識別並分類背景改變。
於一實施例中,該些第二影像處理器包括用以產生針對影像之該些相應序列的改變資料結構之邏輯。該些改變資料結構包括已識別背景改變之已遮蔽影像中的座標、該些已識別背景改變之存貨項目主體的識別符及該些已識別背景改變之類別。該些第二影像處理器進一步包括協調邏輯,用以處理來自具有重疊觀看域之多組相機的改變資料結構來找出真實空間中之該些已識別背景改變。
於一實施例中,該些改變資料結構中之已識別背景改變的該些類別係指示該已識別存貨項目是否相對於該背景影像而被加入或移除。
於另一實施例中,該些改變資料結構中之已識別背景改變的該些類別係指示該已識別存貨項目是否相對於該背景影像而被加入或移除。該系統進一步包括用以使背景改變與已識別主體關聯的邏輯。最後,該系統包括執行由該些已識別主體取走存貨項目的檢測及由該些已識別主體放下存貨項目於存貨展示結構上的檢測之邏輯。
於另一實施例中,該系統包括用以使背景改變與已識別主體關聯的邏輯。該系統進一步包括執行由該些已識別主體取走存貨項目的檢測及由該些已識別主體放下存貨項目於存貨展示結構上的檢測之邏輯。
該系統可包括如文中所述之第三影像處理器,包括前台影像辨識引擎,接收來自該些複數相機之影像的相應序列。該些第三影像處理器係處理影像以識別並 分類影像之該些相應序列中的該些影像中所表示之前台改變。
提供一種系統及用於操作系統之方法,用以追蹤真實空間中之多關節主體(諸如人)。該系統係使用複數相機以產生該真實空間中之相應觀看域的影像之各別序列。各相機之該觀看域係與該些複數相機中之至少一其他相機的該觀看域重疊。該序列處理影像之該些序列中的影像以產生相應於各影像之關節資料結構的陣列。相應於特定影像之關節資料結構的陣列係藉由關節類型、特定影像之時間、及特定影像中之元件的座標來分類特定影像之元件。該系統接著將相應於不同序列中的影像之關節資料結構的陣列中之元件的座標變換為具有真實空間中之座標的候選關節。最後,該系統係識別符候選關節之群集,其中該些群集包括具有真實空間中之座標的候選關節之各別集合,成為真實空間中之多關節主體。
於一實施例中,該些影像辨識引擎包含卷積神經網路。藉由影像辨識引擎之影像的處理包括產生該影像之元件的信心陣列。影像之特定元件的信心陣列包括該特定元件之複數關節類型的信心值。該些信心陣列被用以根據信心陣列來選擇該特定元件之關節資料結構的關節類型。
於用以追蹤多關節主體之系統的一實施例中,識別候選關節之集合包含根據介於真實空間中之主體的關節之間的物理關係以應用啟發函數來識別候選關節之 集合為多關節主體。該處理包括儲存其被識別為多關節主體的關節之該些集合。識別候選關節之集合包括判定在特定時間所取得之影像中所識別的候選關節是否符合其被識別為先前影像中之多關節主體的候選關節之該些集合之一的成員。
於一實施例中,影像之該些序列被同步化以致其由該些複數相機所擷取的影像之該些序列的各者中之影像係代表在主體之移動通過該空間的時間刻度上之單一時點上的真實空間。
被識別為多關節主體的候選關節之集合的成員之真實空間中的座標係識別該多關節主體之區域中的位置。於某些實施例中,該處理包括真實空間之該區域中的複數多關節主體之位置的同時追蹤。於某些實施例中,該處理包括判定該些複數多關節主體中之一多關節主體何時離開真實空間之該區域。於某些實施例中,該處理包括判定其中該多關節主體在既定時點所面對之方向。於文中所述之實施例中,該系統係使用複數相機以產生該真實空間中之相應觀看域的影像之各別序列。各相機之該觀看域係與該些複數相機中之至少一其他相機的該觀看域重疊。該系統係處理其從該些複數相機所接收的影像之該些序列中的影像以識別該些影像中所表示之主體並產生該些已識別主體之類別。最後,該系統係處理影像之該些序列中的影像之集合的已識別主體之該些類別以檢測由已識別主體取走存貨項目以及由已識別主體放下存貨項目於貨架上。
於一實施例中,該類別係識別該已識別主體是否持有存貨項目。該類別亦識別該已識別主體的手是否接近貨架或者該已識別主體的手是否接近該已識別主體。該手是否接近該已識別主體之該類別可包括該已識別主體的手是否接近一與已識別主體相關的籃子、及是否接近該已識別主體之本體。
藉由所描述之技術,代表該觀看域中之主體的手之影像可被處理以產生時間序列中之複數影像中的該主體的手之類別。來自影像之序列的手之類別可被處理,使用卷積神經網路(於某些實施例中),以識別藉由該主體之動作。該些動作可為存貨項目之放下及取走(如文中所述之實施例中所述者)、或者為可藉由處理手的影像而解密之其他類型的動作。
藉由所描述之技術,影像被處理以識別該觀看域中之主體、並定位該些主體的關節。該些主體的關節之定位可被處理如文中所述以識別其包括該些主體的手之相應影像中的定界框(bounding boxes)。該些定界框內之資料可為相應影像中之該主體的手之已處理類別。來自一已識別主體(其係以此方式而被產生自影像之序列)的手之類別可被處理以識別藉由該主體之動作。
於包括複數影像辨識引擎(諸如前台及背景影像辨識引擎兩者)之系統中,該系統可執行:由該些已識別主體取走存貨項目的檢測及由該些已識別主體放下存貨項目於存貨展示結構上的檢測之第一集合、以及由該些 已識別主體取走存貨項目的檢測及由該些已識別主體放下存貨項目於存貨展示結構上的檢測之第二集合。用以處理檢測之該些第一及第二集合的選擇邏輯可被使用以產生日誌資料結構。日誌資料結構包括針對已識別主體之存貨項目的列表。
於文中所述之實施例中,來自複數相機中之相機的影像之該些序列被同步化。相同的相機及影像之相同的序列係由一較佳實施方式中之前台及背景影像處理器兩者所使用。結果,存貨項目之放下及取走的冗餘檢測係使用相同的輸入資料而被執行,以容許高信心(及高準確度)於所得資料中。
於文中所述之一種技術中,該系統包含藉由識別主體之姿勢及與影像之該些序列中所表示的該些姿勢相關的存貨項目以檢測存貨項目之放下及取走的邏輯。此可使用前台影像辨識引擎配合如文中所述之主體影像辨識引擎來完成。
於文中所述之另一技術中,該系統包含用以藉由以下方式來檢測存貨項目之放下及取走的邏輯:隨著時間經過語意地識別存貨展示結構(諸如貨架)上之存貨項目的顯著改變以及使該些語意地顯著改變與影像之該些序列中所表示的主體相關聯。此可使用背景影像辨識引擎配合如文中所述之主體影像辨識引擎來完成。
於應用文中所述之系統時,姿勢分析及語意差異分析兩者可被結合,且被執行於來自相機之陣列的同 步化影像之相同序列上。
其可由電腦系統所執行之方法及電腦程式產品亦被描述於文中。
本發明之其他形態及優點可見於圖式、詳細描述及申請專利範圍(其接續於下)之檢閱上。
100:系統
101a、101b、101c:網路節點
102:網路節點
110:追蹤引擎
112a-112n:影像辨識引擎
114:相機
116a:走道
116b:走道
116n:走道
120:調校器
140:主體資料庫
150:訓練資料庫
160:啟發法資料庫
170:調校資料庫
181:網路
202:貨架A
204:貨架B
206:相機A
208:相機B
216:觀看域
218:觀看域
220:地板
230:屋頂
412-418:相機
422-428:乙太網路為基的連接器
430:儲存子系統
432:主機記憶體子系統
434:隨機存取記憶體(RAM)
436:唯讀記憶體(ROM)
440:檔案儲存子系統
442:RAID 0
444:固態硬碟(SSD)
446:硬碟驅動(HDD)
450:處理器子系統
454:匯流排子系統
462:GPU 1
464:GPU 2
466:GPU 3
481:網路
510:輸入影像
520:過濾器
530:卷積層
540:輸出矩陣
702:總體量度計算器
800:主體資料結構
1411:視頻程序
1415:場景程序
1452:輸出
1453:輸入
1457:輸出
1502:循環緩衝器
1504:定界框產生器
1506:WhatCNN
1508:WhenCNN
1510:購物車資料結構
1520:影像頻道
1522:協調邏輯模組
2002:啟發法
2111:輸入
2113:第一卷積層
2115:第二卷積層
2117:方盒
2119、2121:層
2123:八個卷積層
2125、2127:卷積層
2129:八個卷積層
2135:完全連接層
2210:「單手」模型
2212:卷積層
2214:集用層
2216:區塊0
2218:區塊1
2220:區塊2
2222:區塊3
2310:方盒
2312:卷積層
2314:批次正規化層
2316:ReLU非線性
2318:conv1
2320:conv2
2322:conv3
2324:加法運算
2326:跳躍連接
2410:完全連接層(FC)
2412:再成形運算子
2420:下一層
2422:MatMul
2424:運算子
2426:輸出
2502:第一部分
2504:第二部分
2506:第三部分
2508:第四部分
2510:第五部分
2512:第六部分
2602:第一影像處理器子系統
2604:第二影像處理器子系統
2606:第三影像處理器子系統
2608:選擇邏輯組件
2702:遮罩邏輯組件
2704:背景影像儲存
2706:因數化影像
2710:位元遮罩計算器
2714a-2714n:改變CNN
2718:協調邏輯組件
2720:日誌產生器
2724:遮罩產生器
圖1闡明一種系統之架構階概圖,其中追蹤引擎係使用由影像辨識引擎所產生的關節資料以追蹤主體。
圖2為闡明相機配置之購物商店中的走道之側視圖。
圖3為闡明相機配置之購物商店中之圖2的走道之頂部視圖。
圖4為一種相機及電腦硬體配置,其被組態以主控圖1之影像辨識引擎。
圖5闡明卷積神經網路,其係闡明圖1之影像辨識引擎中的關節之識別。
圖6顯示用以儲存關節資訊之範例資料結構。
圖7闡明具有總體量度計算器之圖1的追蹤引擎。
圖8顯示用以儲存包括相關關節之資訊的主體之範例資料結構。
圖9為流程圖,其闡明藉由圖1之系統以追蹤主體的程序步驟。
圖10為流程圖,其顯示圖9之相機校準步驟的更詳細程序步驟。
圖11為流程圖,其顯示圖9之視頻程序步驟的更詳細程序步驟。
圖12A為流程圖,其顯示圖9之場景程序的更詳細程序步驟之第一部分。
圖12B為流程圖,其顯示圖9之場景程序的更詳細程序步驟之第二部分。
圖13為其中使用圖1之系統的實施例之環境的圖示。
圖14為圖1之系統的實施例中之視頻及場景程序的圖示。
圖15A為概圖,其顯示具有包括關節CNN、WhatCNN及WhenCNN之多數卷積神經網路(CNN)的管線,用以產生真實空間中之每主體的購物車資料結構。
圖15B顯示來自多數相機之多數影像頻道以及用於該些主體和其各別購物車資料結構之協調邏輯。
圖16為流程圖,其闡明用以識別並更新真實空間中之主體的程序步驟。
圖17為流程圖,其顯示用以處理主體之手關節來識別存貨項目的程序步驟。
圖18為流程圖,其顯示用於每手關節之存貨 項目的時間序列分析以產生每主體之購物車資料結構的程序步驟。
圖19為圖15A之系統的實施例中之WhatCNN模型的圖示。
圖20為圖15A之系統的實施例中之WhenCNN模型的圖示。
圖21提出一識別卷積層之維度的WhatCNN模型之範例架構。
圖22提出用於手影像之類別的WhatCNN之實施例的高階方塊圖。
圖23提出圖22中所提出之WhatCNN模型的高階方塊圖之第一方塊的細節。
圖24提出圖22中所提出之範例WhatCNN模型中的完全連接層中之運算子。
圖25為一儲存為針對WhatCNN模型之訓練資料集的部分之影像檔的範例名稱。
圖26為一種用以追蹤藉由真實空間之區域中的主體之改變的系統之高階架構,其中選擇邏輯係於使用背景語意差異(diffing)的第一檢測與使用前台區提議的冗餘檢測之間選擇。
圖27提出其實施圖26之系統的子系統之組件。
圖28A為流程圖,其顯示用於判定存貨事件及購物車資料結構之產生的詳細程序步驟之第一部分。
圖28B為流程圖,其顯示用於判定存貨事件及購物車資料結構之產生的詳細程序步驟之第二部分。
以下描述被提出以致能任何熟悉本技術人士執行及使用本發明,且被提供於特定應用及其需求的背景。對於所揭露實施例之各種修改將是那些熟悉此技藝人士能輕易瞭解的,且文中所定義之一般性原理可被應用於其他實施例及應用而不背離本發明之精神及範圍。因此,本發明不欲被限制於所示之實施例而是被賦予符合文中所揭露之原理及特徵的最寬範圍。
系統概述
主技術之一種系統及各個實施方式係參考圖1-28A/28B而被描述。系統及程序係參考圖1而被描述,依據實施方式之系統的架構階概圖。因為圖1為架構圖,所以某些細節被省略以增進描述之清晰。
圖1之討論係如下。首先,描述系統之元件,接續以其互連。接著,更詳細地描述該系統中之元件的使用。
圖1提供一種系統100之方塊圖階圖示。系統100包括相機114、主控影像辨識引擎112a、112b、和112n之網路節點、部署於該網路上之網路節點(或節點)中的追蹤引擎110、校準器120、主體資料庫140、訓練資料庫 150、啟發法資料庫160(用於關節啟發法、用於放下及取走啟發法、及其他用以協調和組合如以下所述之多數影像辨識引擎的輸出之其他啟發法)、校準資料庫170、及通訊網路或網路181。網路節點可主控僅一影像辨識引擎、或數個影像辨識引擎,如文中所述者。系統亦可包括存貨資料庫及其他支援資料。
如文中所使用,網路節點為一種裝附至網路之可定址硬體裝置或虛擬裝置,且能夠透過通訊頻道以傳送、接收、或傳遞資訊至或自其他網路節點。其可被部署為硬體網路節點之電子裝置的範例包括電腦、工作站、膝上型電腦、手持式電腦、及智慧型手機之所有種類。網路節點可被實施於雲端為基的伺服器系統中。組態成網路節點之多於一個虛擬裝置可使用單一實體裝置來實施。
為了簡化之緣故,僅顯示三個主控影像辨識引擎之網路節點於系統100中。然而,任何數目的主控影像辨識引擎之網路節點均可透過網路181而被連接至追蹤引擎110。同時,影像辨識引擎、追蹤引擎及文中所述之其他處理引擎可使用分散式架構中之多於一個網路節點來執行。
現在將描述系統100之元件的互連。網路181耦合網路節點101a、101b、和101c,各別地,其係主控影像辨識引擎112a、112b、和112n、主控追蹤引擎110之網路節點102、調校器120、主體資料庫140、訓練資料庫150、關節啟發法資料庫160、及調校資料庫170。相機114 透過主控影像辨識引擎112a、112b、和112n之網路節點而被連接至追蹤引擎110。於一實施例中,相機114被安裝於購物商店(諸如超級市場)中以致其具有重疊觀看域之相機114(二或更多)的集合被置於各走道上方以擷取該商店中之真實空間的影像。於圖1中,兩個相機被配置於走道116a上方,兩個相機被配置於走道116b上方,而三個相機被配置於走道116n上方。相機114被安裝於具有重疊觀看域之走道上方。於此一實施例中,相機被組態以如下目標:移動在購物商店之走道中的消費者係於任何時點出現在二或更多相機的觀看域中。
相機114可於時間上被彼此同步化,以致其影像被同時地(或時間上接近地)並以相同的影像擷取率來擷取。相機114可以預定速率傳送影像之各別連續串流至主控影像辨識引擎112a-112n之網路節點。於其同時地(或時間上接近地)覆蓋真實空間之區域的所有相機中所擷取的影像被同步化,由於其同步化影像可被識別於處理引擎中如代表具有真實空間中之固定位置的主體之不同視角。例如,於一實施例中,相機係以每秒30框(fps)之速率將影像框傳送至各別主控影像辨識引擎112a-112n之網路節點。各框具有時戳、相機之識別(縮寫為「相機_id」)、及框識別(縮寫為「框_id」),連同影像資料。
安裝於走道上方之相機被連接至各別影像辨識引擎。例如,於圖1中,安裝於走道116a上方的兩個相機被連接至主控影像辨識引擎112a之網路節點101a。同樣 地,安裝於走道116b上方的兩個相機被連接至主控影像辨識引擎112b之網路節點101b。於網路節點或節點101a-101n中所主控的各影像辨識引擎112a-112n係分別地處理從各於所示範例中之一相機所接收的影像框。
於一實施例中,各影像辨識引擎112a、112b、及112n被實施為深學習演算法,諸如卷積神經網路(縮寫為CNN)。於此一實施例中,CNN係使用訓練資料庫150來訓練。於文中所述之實施例中,真實空間中之主體的影像辨識係根據識別並群集該些影像中可辨識的關節,其中關節之群組可被歸屬於一各別主體。針對此關節為基的分析,訓練資料庫150具有針對主體之每一不同類型的關節之影像的大型集合。於購物商店之範例實施例中,主體為移動於貨架之間的走道中之消費者。於一範例實施例中,於CNN之訓練期間,系統100被稱為「訓練系統」。在使用訓練資料庫150以訓練CNN之後,CNN被切換至產生模式以即時地處理購物商店中之消費者的影像。於一範例實施例中,於產生期間,系統100被稱為運行時間系統(亦稱為推理系統)。各影像辨識引擎中之CNN係產生影像之關節資料結構的陣列於影像之其各別串流中。於如文中所述之一實施例中,關節資料結構之陣列係針對各已處理影像而被產生,以致其各影像辨識引擎112a-112n係產生關節資料結構之陣列的輸出串流。來自具有重疊觀看域之相機的關節資料結構之這些陣列被進一步處理以形成關節之群組,並識別關節之此等群組為主體。
相機114被調校在將CNN切換至產生模式之前。調校器120係調校該些相機並將調校資料儲存於調校資料庫170中。
追蹤引擎110(於網路節點102上主控)接收來自影像辨識引擎112a-112n之主體的關節資料結構之陣列的連續串流。追蹤引擎110係處理關節資料結構的陣列並將相應於不同序列中的影像之關節資料結構的陣列中之元件的座標變換為具有真實空間中之座標的候選關節。針對同步化影像之各集合,遍及該真實空間所識別之候選關節的組合可被考量(為了類比之目的)為如同候選關節之星系。針對各後續時點,候選關節之移動被記錄以致其該星系隨著時間而改變。追蹤引擎110之輸出被儲存於主體資料庫140中。
追蹤引擎110使用邏輯以將具有真實空間中之座標的候選關節之群組或集合識別為該真實空間中之主體。為了類比之目的,候選點之各集合係如同在各時點上之候選關節的群集。候選關節的群集可隨著時間而移動。
用以識別候選關節之集合的該邏輯包含根據真實空間中之主體之間的物理關係之啟發函數。這些啟發函數被用以將候選關節之集合識別為主體。啟發函數被儲存於啟發法資料庫160中。追蹤引擎110之輸出被儲存於主體資料庫140中。因此,候選關節之該些集合包含其具有與其他各別候選關節之依據啟發參數的關係之各別候選關節、以及其已被識別(或可被識別)為各別主體之既定集合 中的候選關節之子集。
通過網路181之實際通訊路徑可為透過公共及/或私人網路之點對點。通訊可透過多種網路182而發生,例如,私人網路、VPN、MPLS電路、或網際網路;並可使用適當的應用程式編程介面(API)及資料交換格式,例如,表示狀態轉移(REST)、JavaScriptTM物件記法(JSON)、可延伸式標示語言(XML)、簡單物件存取協定(SOAP)、JavaTM訊息服務(JMS)、及/或Java平台模組系統。所有該些通訊均可被加密。通訊通常係透過網路,諸如LAN(區域網路)、WAN(廣域網路)、電話網路(公用切換式電話網路PSTN))、對話啟動協定(SIP)、無線網路、點對點網路、星形網路、符記環網路、集線器網路、網際網路,包括經由諸如EDGE、3G、4G LTE、Wi-Fi、及WiMAX等協定之行動網際網路。此外,諸如使用者名稱/通行碼、開放式授權(OAuth)、Kerberos、SecureID、數位憑證及更多等多種授權和鑑別技術可被使用以確保通訊。
文中所揭露之技術可被實施於任何電腦實施系統之背景下,包括資料庫系統、多租戶環境、或關連式資料庫實施方式,如OracleTM相容的關連式實施方式、IBM DB2 Enterprise ServerTM相容的關連式實施方式、MySQLTM或PostgreSQLTM相容的關連式實施方式或者Microsoft SQL ServerTM相容的關連式實施方式;或者NoSQLTM非關連式資料庫實施方式,諸如VampireTM相容的非關連式實施方式、Apache CassandraTM相容的非關連 式實施方式、BigTableTM相容的非關連式實施方式或者HBaseTM或DynamoDBTM相容的非關連式實施方式。此外,所揭露之技術可使用以下來實施:不同的編程模型,如MapReduceTM、大塊同步編程、MPI基元等等;或不同的可擴縮批次和串流管理系統,如Apache StormTM、Apache SparkTM、Apache KafkaTM、Apache FlinkTM、TruvisoTM、Amazon Elasticsearch ServiceTM、Amazon Web ServicesTM(AWS)、IBM Info-SphereTM、BorealisTM、及Yahoo!S4TM
相機配置
相機114被配置以追蹤三維(縮寫為3D)真實空間中之多關節單體(或主體)。於購物商店之範例實施例中,真實空間可包括其中銷售項目被堆疊於貨架中的購物商店之區域。真實空間中的點可由(x,y,z)座標系統來表示。該系統所被部署之真實空間的區域中之各點係由二或更多相機114之觀看域所涵蓋。
於購物商店中,貨架及其他存貨展示結構可被配置以多種方式,諸如沿著購物商店之牆壁、或者於形成走道之列中或者兩種配置之組合。圖2顯示貨架(其形成走道116a)之配置,從走道116a之一端所見。兩個相機(相機A 206及相機B 208)被置於走道116a上方,以一段離開存貨展示結構(諸如貨架)之上的購物商店之屋頂230及地板220的預定距離。相機114包含配置於上方並具有涵蓋真實空間中之存貨展示結構及地板區域的各別部分之觀看域的 相機。被識別為主體的候選關節之集合的成員之真實空間中的座標係識別該主體之地板區域中的位置。於購物商店之範例實施例中,真實空間可包括購物商店中之所有地板220,以供存貨可從該處被存取。相機114被放置且定向以致其地板220及貨架的區域可由至少兩個相機所看見。相機114亦覆蓋貨架202和204之至少部分以及貨架202和204前方之地板空間。相機角度被選擇以具有陡峭觀點(筆直向下)、及有角度的觀點(其提供消費者之更完整的身體影像)兩者。於一範例實施例中,相機114被組態以八(8)英尺高或更高,遍及該購物商店。圖13提出此一實施例之圖示。
於圖2中,相機206及208具有重疊觀看域,其覆蓋介於貨架A 202與貨架B 204之間的空間,各別地以重疊觀看域216及218。真實空間中之位置被表示為真實空間座標系統中之(x,y,z)點。「x」及「y」代表二維(2D)平面(其可為購物商店之地板220)上之位置。值「z」為一種組態中在地板220上之2D平面上方的點之高度。
圖3闡明從圖2之頂部所觀看的走道116a,其進一步顯示走道116a上方之相機206及208的位置之範例配置。相機206及208被放置更接近於走道116a之相反端。相機A 206被置於離開貨架A 202一段預定距離,而相機B 208被置於離開貨架B 204一段預定距離。於另一實施例中,其中多於兩個相機被置於走道上方,該些相機被置於與彼此相等的距離上。於此一實施例中,兩個相機被放置接近 於相反端而第三個相機被置於該走道的中間。應理解:數個不同的相機配置是可能的。
相機調校
相機調校器120履行兩種類型的調校:內部及外部。於內部調校中,相機114之內部參數被調校。內部相機參數之範例包括聚焦長度、主要點、偏斜、魚眼係數,等等。用於內部相機調校之多種技術可被使用。一此種技術係由張(Zhang)所提出於「用於相機調校之彈性新技術(A flexible new technique for camera calibration)」,其係發佈於IEEE Transactions on Pattern Analysis and Machine Intelligence,Volume 22,No.11,2000年11月。
於外部調校中,外部相機參數被調校以產生用以將2D影像資料變換為真實空間中之3D座標的映射參數。於一實施例中,一主體(諸如人)被引入真實空間。該主體移動穿越該真實空間,於一通過每個相機114之觀看域的路徑上。在該真實空間中之任何既定點上,該主體係出現於其形成3D場景之至少兩個相機的觀看域中。然而,該兩個相機具有相同3D場景之不同的觀點於其各別的二維(2D)影像平面中。3D場景中之特徵(諸如該主體之左手腕)係由其各別2D影像平面中之不同位置上的兩個相機所觀看。
點對應被建立於每一對相機與既定場景的重疊觀看域之間。因為各相機具有相同3D場景之不同觀點, 所以點對應為二像素位置(一位置係來自具有重疊觀看域之各相機的位置),其代表3D場景中之相同點的投影。許多點對應係使用影像辨識引擎112a-112n的結果而針對各3D場景被識別,以供外部調校之目的。影像辨識引擎將關節之位置識別為各別相機114之2D影像平面中的像素之(x,y)座標,諸如列與行數。於一實施例中,關節為該主體之19個不同類型的關節之一。隨著該主體移動通過不同相機之觀看域,追蹤引擎110接收其用於來自每影像之相機114的調校之該主體的19個不同類型的關節之各者的(x,y)座標。
例如,考量來自相機A之影像及來自相機B之影像,兩者均在相同時點被取得且具有重疊觀看域。有來自相機A之影像中的像素,其係相應於來自相機B之同步化影像中的像素。考量其有某物件或表面之特定點於相機A和相機B之觀點中以及該點被擷取於兩影像框之像素中。於外部相機調校中,多數此種點被識別且被稱為相應點。因為有一主體於調校期間之相機A和相機B的觀看域中,所以此主體之關鍵關節被識別,例如,左手腕的中心。假如這些關鍵關節可見於來自相機A和相機B兩者之影像框中,則假設這些代表相應點。此程序被重複於許多影像框以建立針對具有重疊觀看域之所有相機對的對應點之大型集合。於一實施例中,影像係以30 FPS(每秒框數)或更多之速率及全RGB(紅、綠、及藍)顏色之720像素的解析度來被串流出所有相機。這些影像具有一維陣列(亦稱 為平坦陣列)之形式。
以上針對主體而收集的大量影像可被用以判定介於具有重疊觀看域的相機之間的對應點。考量具有重疊觀看域之兩個相機A和B。通過相機A和B之中心以及3D場景中之關節位置(亦稱為特徵點)的平面被稱為「核面(epipolar plane)」。該核面與相機A和B之2D影像平面的交點係定義「核線」。給定這些對應點,判定一變換,其可準確地將來自相機A之對應點準確地映射至其被確保交叉相機B之影像框中的該對應點之相機B的觀看域中之核線。使用針對主體而收集如上之影像框,該變換被產生。於本技術中已知其此變換為非線性的。一般形式係進一步已知為需要針對各相機之鏡頭的徑向形變之補償,以及移動至和自投射空間之非線性座標變換。於外部相機調校中,對於理想的非線性變換之近似係藉由解決非線性最佳化問題來判定。此非線性最佳化函數係由追蹤引擎110所使用以識別不同影像辨識引擎112a-112n之輸出(關節資料結構之陣列)中的相同關節,處理具有重疊觀看域之相機114的影像。內部及外部相機調校之結果被儲存於調校資料庫170中。
可使用多種技術以判定真實空間中之相機114的影像中之點的相對位置。例如,Longuet-Higgins出版了「用以從兩個投影重建場景之電腦演算法」於Nature,Volume 293,1981年九月10日。此論文係提出了從相關對的透視投影計算場景之三維結構,當介於兩投影之間的空 間關係是未知的時。Longuet-Higgins的論文提出了一種技術以判定真實空間中之各相機相對於其他相機的位置。此外,他們的技術容許真實空間中之主體的三角測量,其係使用來自具有重疊觀看域之相機114的影像以識別z座標(距離地板的高度)之值。真實空間中之任意點(例如,真實空間之一角落中的貨架之末端)被指定為真實空間之(x,y,z)座標系統上的(0,0,0)點。
於本技術之一實施例中,外部調校之參數被儲存於兩個資料結構中。第一資料結構係儲存本質參數。本質參數係表示從3D座標變為2D影像座標之投影變換。第一資料結構含有每相機之本質參數,如以下所示。資料值均為數值的浮點數字。此資料結構係儲存3x3本質矩陣,表示為「K」及形變係數。形變係數包括六個徑向形變係數及兩個切向形變係數。徑向形變係發生在當光射線更接近於鏡頭之邊緣而彎曲(相較於在其光學中心之彎曲)時。切向形變係發生在當鏡頭與影像平面並非平行時。以下資料結構僅顯示第一相機之值。類似的資料係針對所有相機114而被儲存。
Figure 107126341-A0305-02-0027-1
第二資料結構係儲存每對相機:3x3基礎矩 陣(F)、3x3基本矩陣(E)、3x4投影矩陣(P)、3x3旋轉矩陣(R)及3x1變換向量(t)。此資料被用以將一相機的參考框中之點轉換至另一相機的參考框。針對各對相機,八個單應性係數亦被儲存以映射地板220之平面從一相機至另一相機。基礎矩陣為介於相同場景的兩個影像之間的關係,其係限制來自該場景之點的投影可發生於兩個影像中的何處。基本矩陣亦為介於相同場景的兩個影像之間的關係,在其相機被調校之條件下。投影矩陣係從3D真實空間提供向量空間投影至主體。旋轉矩陣被用以履行歐幾里德空間中之旋轉。變換向量「t」代表幾何變換,其係以相同距離移動一圖形或一空間之每一點於既定方向。單應性_地板_係數被用以結合其由具有重疊觀看域之相機所觀看到的地板220上之主體的特徵之影像。第二資料結構被顯示於下。類似的資料係針對所有對相機而被儲存。如先前所指示,x代表數值的浮點數字。
Figure 107126341-A0305-02-0028-2
網路組態
圖4提出一種主控影像辨識引擎之網路的架構400。該系統包括複數網路節點101a-101n於所示的實施例中。於此一實施例中,網路節點亦被稱為處理平台。處理平台101a-101n及相機412、414、416、...418被連接至網路481。
圖4顯示其連接至網路之複數相機412、414、416、...418。大量相機可被部署於特定系統中。於一實施例中,相機412至418係各別地使用乙太網路為基的連接器422、424、426、及428而被連接至網路481。於此一實施例中,乙太網路為基的連接器具有每秒十億位元之資料轉移速度,亦稱為十億位元乙太網路。應理解:於其他實施例中,相機114被連接至該網路,使用其可具有比十億位元乙太網路更快或更慢的資料轉移速率之其他類型的網路連接。同時,於替代實施例中,一組相機可被直接地連接至各處理平台,且該些處理平台可被耦合至網路。
儲存子系統430係儲存基本編程及資料架構,其提供本發明之某些實施例的功能。例如,實施複數影像辨識引擎之功能的各個模組可被儲存於儲存子系統430中。儲存子系統430為電腦可讀取記憶體之範例,其包含非暫態資料儲存媒體,具有儲存於記憶體中之電腦指令,其可由電腦所執行以履行文中所述之資料處理及影像處理的所有或任何組合,包括邏輯以:識別真實空間中之 改變、追蹤主體及檢測真實空間之區域中的存貨項目之放下及取走,藉由如文中所述之程序。於其他範例中,電腦指令可被儲存於其他類型的記憶體中,包括可攜式記憶體,其包含可由電腦所讀取之非暫態資料儲存媒體或媒體。
這些軟體模組通常係由處理器子系統450所執行。主機記憶體子系統432通常包括數個記憶體,包括主隨機存取記憶體(RAM)434(用於程式執行期間儲存指令及資料)及唯讀記憶體(ROM)436(其中係儲存固定指令)。於一實施例中,RAM 434被使用為緩衝器,用以儲存來自其被連接至平台101a之相機114的視頻串流。
檔案儲存子系統440提供用於程式及資料檔案之持久儲存。於一範例實施例中,儲存子系統440包括四個120十億位元組(GB)固態硬碟(SSD)於RAID 0(獨立硬碟之冗餘陣列)配置(以數字442所識別)中。於範例實施例(其中CNN被用以識別主體之關節)中,RAID 0 442被用以儲存訓練資料。於訓練期間,其非於RAM 434中之訓練資料被讀取自RAID 0 442。類似地,當影像被記錄以供訓練之目的時,其非於RAM 434中之資料被儲存於RAID 0 442中。於範例實施例中,硬碟驅動(HDD)446為10兆位元組儲存。其具有比RAID 0 442儲存更慢的存取速度。固態硬碟(SSD)444含有作業系統及用於影像辨識引擎112a之相關檔案。
於一範例組態中,三個相機412、414、及 416被連接至處理平台101a。各相機具有專屬圖形處理單元GPU 1 462、GPU 2 464、及GPU 3 466,用以處理由相機所傳送的影像。應理解:少於或多於三個相機可被連接至每處理平台。因此,更少或更多的GPU被組態於網路節點中,以致其各相機具有專屬的GPU以處理接收自該相機之影像框。處理器子系統450、儲存子系統430及GPU 462、464、和466係使用匯流排子系統454來通訊。
數個周邊裝置(諸如網路介面子系統、使用者介面輸出裝置、及使用者介面輸入裝置)亦被連接至流排子系統454,其形成處理平台101a之部分。這些子系統及裝置被有意地未顯示於圖4中以增進說明之清晰。雖然流排子系統454被概略地顯示為單一匯流排,但匯流排子系統之替代實施例可使用多數匯流排。
於一實施例中,相機412可使用Chameleon3 1.3 MP Color USB3 Vision(Sony ICX445)來實施,其具有1288x964之解析度、30 FPS之框率、及以每影像1.3百萬像素(MegaPixels),利用具有300-∞之工作距離(mm)的變焦鏡頭、具有98.2°-23.8°之1/3”感應器的觀看域。
卷積神經網路
處理平台中之影像辨識引擎係以預定速率接收影像之連續串流。於一實施例中,該些影像辨識引擎包含卷積神經網路(縮寫為CNN)。
圖5闡明藉由以數字500表示之CNN的影像框 之處理。輸入影像510為由以列及行所配置之影像像素所組成的矩陣。於一實施例中,輸入影像510具有1280像素之寬度、720像素之高度及紅、藍、和綠(亦稱為RGB)之3頻道。該些頻道被想像為堆疊在彼此上之三個1280x720的二維影像。因此,輸入影像具有如圖5中所示之1280x720x3的維度。
2x2過濾器520係與輸入影像510卷積。於此實施例中,當過濾器與輸入卷積時無填補被應用。接續於此,非線性函數被應用至已卷積影像。於本實施例中,已校正的線性單元(ReLU)啟動被使用。非線性函數之其他範例包括S形(sigmoid)、雙曲線正切(tanh)及ReLU之變化,諸如漏ReLU。搜尋被履行以找出超參數值。超參數為C1,C2,.....,CN,其中CN表示卷積層「N」之頻道數。N及C之典型值被顯示於圖5。於CNN中有二十五(25)層,如由N等於25所表示。C之值為層1至25之各卷積層中的頻道數。於其他實施例中,額外特徵被加至CNN 500,諸如殘餘連接、擠壓激發模組、及多重解析度。
在用於影像分類之典型CNN中,影像之大小(寬度及高度維度)係隨著該影像通過卷積層被處理而被減小。其對於特徵識別是有幫助的,因為目標是預測輸入影像之類別。然而,於所示的實施例中,輸入影像之大小(亦即,影像寬度及高度維度)未被減小,因為其目標不僅是識別該影像框中之關節(亦稱為特徵),而是同時亦識別該影像中之其位置,因此其可被映射至真實空間中之座 標。因此,如圖5中所示,隨著該處理進行通過CNN之卷積層,該影像之寬度及高度維度維持不變,於此範例中。
於一實施例中,CNN 500識別符該影像之各元件上的該些主體之19個可能的關節。該些可能的關節可被群集為兩種類:足部關節及非足部關節。第19類型的關節類別是針對該主體之所有非關節特徵(亦即,未被歸類為關節之影像的元件)。
足部關節:
腳踝關節(左及右)
非足部關節:
脖子
鼻子
眼睛(左及右)
耳朵(左及右)
肩膀(左及右)
手肘(左及右)
手腕(左及右)
臀部(左及右)
膝蓋(左及右)
不是關節
如可看出,為了本說明書之目的,「關節」是真實空間中之主體的可追蹤特徵。關節可相應於該些主體上之生理關節、或其他特徵(諸如眼睛、或鼻子)。
對於輸入影像之串流的第一組分析係識別真 實空間中之主體的可追蹤特徵。於一實施例中,此被稱為「關節分析」。於此一實施例中,用於關節分析之CNN被稱為「關節CNN」。於一實施例中,關節分析被履行每秒三十次,在接收自相應相機之每秒三十框上。該分析被時間上同步化(亦即,一秒的1/30th),來自所有相機114之影像被分析於相應的關節CNN中以識別真實空間中之所有主體的關節。來自複數相機之來自單一時刻的影像之此分析的結果被儲存為「快照」。
快照可為來自某一時刻之所有相機114的影像之含有關節資料結構的陣列之字典的形式,其代表由該系統所覆蓋之真實空間的區域內之候選關節的群集。於一實施例中,快照被儲存於主體資料庫140中。
於此範例CNN中,softmax函數被應用至卷積層530之最終層中的影像之每一元件。softmax函數係將任意實值之K維向量變換至範圍[0,1](其向上加至1)中的實值之K維向量。於一實施例中,影像之元件為單一像素。softmax函數係將各像素的任意實值之19維陣列(亦稱為19維向量)轉換至範圍[0,1](其向上加至1)中的實值之19維信心陣列。影像框中之像素的19維係相應於CNN之最終層中的19頻道,其進一步相應於該些主體之19個類型的關節。
大量圖片元件可被分類為一影像中之19個類型的關節的各者之一,根據針對該影像之來源相機的觀看域中之主體的數目。
影像辨識引擎112a-112n係處理影像以產生 針對該影像之元件的信心陣列。影像之特定元件的信心陣列包括該特定元件之複數關節類型的信心值。影像辨識引擎112a-112n之每一者(各別地)產生每影像之信心陣列的輸出矩陣540。最後,各影像辨識引擎產生相應於每影像之信心陣列的各輸出矩陣540之關節資料結構的陣列。相應於特定影像之關節資料結構的陣列係藉由關節類型、特定影像之時間、及特定影像中之元件的座標來分類特定影像之元件。各影像中之特定元件的關節資料結構之關節類型係根據信心陣列之值來選擇。
該些主體之各關節可被視為分佈於輸出矩陣540中而成為熱映圖。熱映圖可被解析以顯示具有針對各關節類型之最高值(峰值)的影像元件。理想地,針對具有特定關節類型之高值的既定圖片元件,在與該既定圖片元件之某一距離外的周遭圖片元件將具有針對該關節類型之較低的值,以致其具有該關節類型之特定關節的位置可被識別於影像空間座標中。相應地,該影像元件之信心陣列將具有針對該關節之最高信心值以及針對剩餘18個類型的關節之較低的信心值。
於一實施例中,來自各相機114之影像的批次係由各別影像辨識引擎所處理。例如,六個連續時戳影像被依序地處理於一批次中以善用快取同調性。針對CNN 500之一層的參數被載入記憶體中並應用於六個影像框之該批次。接著針對下一層的參數被載入記憶體中並應用於六個影像之該批次。此被重複於CNN 500中之所有卷積層 530。快取同調性減少了處理時間並增進影像辨識引擎之性能。
於一此類實施例中,針對三維(3D)卷積,CNN 500之性能的進一步增進係藉由共用橫跨該批次中之影像框的資訊來達成。如此係協助關節之更精確的識別並減少錯誤肯定。例如,影像框中之特徵(其中橫跨既定批次中之多數影像框的像素值不會改變)很可能是靜態物件(諸如貨架)。針對橫跨既定批次中之影像框的相同像素之值的改變係指示其此像素很可能是關節。因此,CNN 500可更專注於處理該像素以正確地識別其由該像素所識別的關節。
關節資料結構
CNN 500之輸出為針對每相機之各影像的信心陣列之矩陣。信心陣列之矩陣被變換為關節資料結構之陣列。如圖6中所示之關節資料結構被用以儲存各關節之資訊。關節資料結構600係識別相機(影像係從該相機所接收)之2D影像空間中的特定影像中的元件之x及y位置。關節數係識別其已識別的關節之類型。例如,於一實施例中,該些值的範圍係從1至19。1之值指示其該關節為左腳踝,2之值指示其該關節為右腳踝,依此類推。關節之類型係使用針對輸出矩陣540中之該元件的信心陣列來選擇。例如,於一實施例中,假如相應於左腳踝關節之值為針對該影像元件之信心陣列中的最高者,則該關節數之值 為「1」。
信心數係指示於預測該關節時之CNN 500中的信心之程度。假如信心數之值很高,則表示CNN對於其預測是有信心的。整數Id被指派給關節資料結構以獨特地識別它。接續於以上映射後,每影像之信心陣列的輸出矩陣540被轉換為各影像之關節資料結構的陣列。
影像辨識引擎112a-112n接收來自相機114之影像的序列並處理影像以產生如上所述之關節資料結構的相應陣列。針對特定影像之關節資料結構的陣列係藉由關節類型、特定影像之時間、及特定影像中之元件的座標來分類特定影像之元件。於一實施例中,影像辨識引擎112a-112n為卷積神經網路CNN 500,該關節類型為該些主體之19個類型的關節之一,特定影像之時間為由來源相機114針對該特定影像所產生的影像之時戳,而座標(x,y)係識別2D影像平面上之該元件的位置。
於一實施例中,關節分析包括履行k最近鄰居、高斯之混合、各種影像形態變換、及各輸入影像上之關節CNN的組合。該結果包含關節資料結構之陣列,其可被儲存以環緩衝器中之位元遮罩的形式,其係將影像數映射至各時刻的位元遮罩。
追蹤引擎
追蹤引擎110係組態成接收由影像辨識引擎112a-112n所產生之關節資料結構的陣列,相應於來自具 有重疊觀看域之相機的影像序列中之影像。每影像之關節資料結構的陣列係由影像辨識引擎112a-112n傳送至追蹤引擎110,經由如圖7中所示之網路181。追蹤引擎110將相應於不同序列中的影像之關節資料結構的陣列中之元件的座標變換為具有真實空間中之座標的候選關節。追蹤引擎110包含邏輯以將具有真實空間中之座標的候選關節之集合(關節之群集)識別為該真實空間中之主體。於一實施例中,追蹤引擎110係累積來自既定時刻之所有相機的影像辨識引擎之關節資料結構的陣列,並將此資訊儲存為主體資料庫140中之字典,以供用於識別候選關節之群集。該字典可被配置以密鑰-值對的形式,其中密鑰為相機id且值為來自該相機之關節資料結構的陣列。於此一實施例中,此字典被用於啟發法為基的分析以判定候選關節及關節之指派給主體。於此一實施例中,追蹤引擎110之高階輸入、處理及輸出被闡明於表1中。
Figure 107126341-A0305-02-0038-3
將關節群集為候選關節
追蹤引擎110沿著兩維度以接收關節資料結構的陣列:時間及空間。沿著時間維度,追蹤引擎係依序地接收由每相機之影像辨識引擎112a-112n所處理的關節資料結構的有時戳陣列。關節資料結構包括在一段時間週期期間相同主體之相同關節的多數實例,於來自具有重疊觀看域之相機的影像中。特定影像中之元件的(x,y)座標在關節資料結構的依序有時戳陣列中通常將是不同的,由於特定關節所屬之主體的移動。例如,被歸類為左手腕關節之二十個圖片元件可出現在來自特定相機的許多依序有時戳影像中,各左手腕關節具有其可隨著影像而改變或不變的真實空間中之位置。結果,於許多關節資料結構的依序有時戳陣列中之二十個左手腕關節資料結構600可代表在某期間於真實空間中之相同的二十個關節。
因為具有重疊觀看域之多數相機係覆蓋真實空間中之各位置,所以在任何既定時刻,相同關節可出現在相機114之一個以上的影像中。相機114被時間上同步化,因此,追蹤引擎110係接收來自具有重疊觀看域之多數相機的特定關節之關節資料結構,於任何既定時刻。此為空間維度(兩個維度:時間及空間的第二個),追蹤引擎110係沿著該空間維度以接收關節資料結構的陣列中之資料。
追蹤引擎110使用啟發法資料庫160中所儲存 之啟發法的初始集合以識別來自關節資料結構的陣列之候選關節資料結構。其目標是在一段時間週期內將總體量度減至最小。總體量度計算器702係計算總體量度。總體量度為以下所述之多數值的總和。直覺地,總體量度之值在當如下情形下時是最小的:由追蹤引擎110沿著時間及空間維度所接收之關節資料結構的陣列中之關節被正確地指派給各別主體。例如,考量具有在走道中移動之消費者的購物商店之實施例。假如消費者A之左手腕被不正確地指派給消費者B,則總體量度之值將增加。因此,將各消費者之各關節的總體量度減至最小是一個最佳化問題。用以解決此問題之一選項是嘗試關節的所有可能連接。然而,此可能變為難處理的,隨著消費者之數目增加。
用以解決此問題之第二種方式是使用啟發法以減少其被識別為單一主體的候選關節之集合的成員之關節的可能組合。例如,左手腕關節不得屬於在空間中遠離一主體之其他關節的該主體,由於關節之相對位置的已知生理學特性。類似地,具有在位置上隨著影像的小改變之左手腕關節不太可能屬於具有來自在時間上遠離的影像之相同位置上的相同節點之主體,因為主體不被預期能以極高的速度移動。這些初始啟發法被用以建立時間及空間上的邊界,針對其可被歸類為特定主體之候選關節的群集。於特定時間及空間邊界內之關節資料結構中的關節被視為「候選關節」,以供指派給如真實空間中所出現之主體的候選關節之集合。這些候選關節包括於來自相同相機之來 自多數影像的關節資料結構的陣列中所識別的關節,於一段時間週期(時間維度)並橫跨具有重疊觀看域之不同相機(空間維度)。
足部關節
關節可被劃分以供一種將關節分組成為群集(成為如以上關節之列表中所示的足部和非足部關節)之程序的目的。於目前範例中之左及右腳踝關節類型被視為足部關節,以供此程序之目的。追蹤引擎110可開始使用足部關節以識別特定主體之候選關節的集合。於購物商店之實施例中,消費者之足部是在如圖2中所示之地板220上。相機114至地板220之距離是已知的。因此,當結合其來自相應於具有重疊觀看域之相機的影像之資料關節資料結構的陣列之足部關節的關節資料結構時,追蹤引擎110可假設一已知深度(沿著z軸之距離)。足部關節之值深度為零,亦即,真實空間之(x,y,z)座標系統中的(x,y,0)。使用此資訊,影像追蹤引擎110係應用單應性映射以結合來自具有重疊觀看域之相機的足部關節之關節資料結構,以識別候選足部關節。使用此映射,於影像空間中之(x,y)座標中的關節之位置被轉換至真實空間中之(x,y,z)座標中的位置,導致候選足部關節。此程序被分離地履行以使用各別關節資料結構來識別候選左及右足部關節。
接續於此,追蹤引擎110可結合候選左足部關節與候選右足部關節(將其指派給候選關節之集合)以產 生主體。來自候選關節之星系的其他關節可被鏈結至該主體以建立該產生的主體之部分或所有關節類型的群集。
假如僅有一左候選足部關節及一右候選足部關節,則表示在該特定時間僅有一主體於該特定空間中。追蹤引擎110產生具有屬於其關節集合之左及右候選足部關節的新主體。該主體被存在主體資料庫140中。假如有多數候選左及右足部關節,則總體量度計算器702嘗試將各候選左足部關節結合至各候選右足部關節以產生主體以致其總體量度之值被減至最小。
非足部關節
為了識別來自特定時間及空間邊界內之關節資料結構的陣列之候選非足部關節,追蹤引擎110係使用從任何既定相機A至其相鄰相機B(具有重疊觀看域)之非線性變換(亦稱為基礎矩陣)。非線性變換係使用單一多關節主體來計算且被儲存於如上所述之調校資料庫170中。例如,針對具有重疊觀看域之兩個相機A及B,候選非足部關節被識別如下。在相應於來自相機A之影像框中的元件之關節資料結構的陣列中的非足部關節被映射至來自相機B之同步化影像框中的核線。由相機A的特定影像之關節資料結構的陣列中之關節資料結構所識別的關節(亦稱為機器視覺文獻中之特徵)將出現在相應的核線上,假如其出現在相機B之影像中的話。例如,假如來自相機A之關節資料結構中的關節為左手腕關節,則相機B之影像中的 核線上之左手腕關節係代表來自相機B之觀點的相同左手腕關節。相機A及B之影像中的這兩個點為真實空間中之3D場景中的相同點之投影且被稱為「共軛對」。
機器視覺技術(諸如由Longuet-Higgins發佈於論文中之技術,名稱為「用以重建來自兩個投影之場景的電腦演算法」,於Nature,Volume 293,1981年九月10日)被應用至相應點之共軛對以判定於真實空間中距離地板220之關節的高度。上述方法之應用需要介於具有重疊觀看域之相機之間的預定映射。該資料被儲存在調校資料庫170中而成為於上述相機114之調校期間所判定的非線性函數。
追蹤引擎110接收相應於來自具有重疊觀看域之相機的影像之序列中的影像之關節資料結構的陣列,並將相應於不同序列中的影像之關節資料結構的陣列中之元件的座標變換為具有真實空間中之座標的候選非足部關節。已識別的候選非足部關節係使用總體量度計算器702而被群集為具有真實空間中之座標的主體之集合。總體量度計算器702計算總體量度值並嘗試藉由檢查非足部關節之不同組合以將該值減至最小。於一實施例中,該總體量度為組織於四個種類中之啟發法的總和。用以識別候選關節之集合的該邏輯包含根據真實空間中之主體的關節之間的物理關係之啟發函數,用以將候選關節之集合識別為主體。介於關節之間的物理關係之範例被考量於如下所述之啟發法中。
第一種類的啟發法
第一種類的啟發法包括量度,用以確定在相同或不同時刻於相同相機視角中介於兩個提議的主體-關節位置之間的相似度。於一實施例中,這些量度為浮點值,其中較高的值表示關節之兩列表極可能屬於相同主體。考量購物商店之範例實施例,該些量度係判定沿著時間維度從一影像至下一影像之於一相機中介於消費者的相同關節之間的距離。給定相機412之觀看域中的相機A,第一組量度係判定從來自相機412之一影像至來自相機412之下一影像的介於人A之關節的各者之間的距離。該些量度被應用至來自相機114的每影像之關節資料結構的陣列中之關節資料結構600。
於一實施例中,第一種類的啟發法中之兩個範例量度被列出於下:
1.介於地板上之兩個主體的左腳踝關節與地板上之兩個主體的右腳踝關節之間的歐幾里德2D座標距離之倒數(使用針對來自特定相機之特定影像的x,y座標值)係加總在一起。
2.介於影像框中之主體的每一對非足部關節之間的歐幾里德2D座標距離之總和。
第二種類的啟發法
第二種類的啟發法包括量度,用以確定在相 同時刻介於來自多數相機之觀看域的兩個提議的主體-關節位置之間的相似度。於一實施例中,這些量度為浮點值,其中較高的值表示關節之兩列表極可能屬於相同主體。考量購物商店之範例實施例,第二組量度係判定在相同時刻之來自二或更多相機(具有重疊觀看域)的影像框中介於消費者的相同關節之間的距離。
於一實施例中,第二種類的啟發法中之兩個範例量度被列出於下:
1.介於地板上之兩個主體的左腳踝關節與地板上之兩個主體的右腳踝關節之間的歐幾里德2D座標距離之倒數(使用針對來自特定相機之特定影像的x,y座標值)係加總在一起。第一主體之腳踝關節位置被投影至相機,其中第二主體通過單應性映射為可見的。
2.介於一線與一點之間的歐幾里德2D座標之倒數的所有對關節之總和,其中該線為從具有第一主體於其觀看域中之第一相機至具有第二主體於其觀看域中之第二相機的影像之關節的核線,而該點為來自第二相機之影像中的第二主體之關節。
第三種類的啟發法
第三種類的啟發法包括量度,用以確定在相同時刻於相同相機視角中介於提議的主體-關節位置的所有關節之間的相似度。考量購物商店之範例實施例,此種 類的量度係判定在來自一相機之一框中介於消費者的關節之間的距離。
第四種類的啟發法
第四種類的啟發法包括量度,用以確定介於提議的主體-關節位置之間的相異度。於一實施例中,這些量度為浮點值。較高的值表示關節之兩列表更可能不是相同的主體。於一實施例中,此種類中之兩範例量度包括:
1.介於兩個提議的主體的脖子關節之間的距離。
2.介於兩主體之間的介於多對關節之間的距離之總和。
於一實施例中,其可憑經驗地被判定之各個臨限值被應用至以上列出的量度如下所述:
1.臨限值,用以決定量度值何時夠小以考量其一關節屬於一已知主體。
2.臨限值,用以判定何時有太多潛在的候選主體,其一關節可屬於具有太好的量度相似度分數。
3.臨限值,用以判定關節之集合何時具有夠高的量度相似度以被視為新主體,先前未出現在真實空間中。
4.臨限值,用以判定主體何時不再位於真實空間中。
5.臨限值,用以判定追蹤引擎110何時已產生錯誤並已混淆兩主體。
追蹤引擎110包括用以儲存其被識別為主體之關節的集合之邏輯。用以識別候選關節之集合的邏輯包括邏輯,用以判定在特定時間所取得之影像中所識別的候選關節是否符合其被識別為先前影像中之主體的候選關節之該些集合之一的成員。於一實施例中,追蹤引擎110係於規律的間隔比較主體之目前的關節位置與該相同主體之先前記錄的關節位置。此比較容許追蹤引擎110更新該真實空間中之主體的關節位置。此外,使用此方式,追蹤引擎110識別錯誤肯定(亦即,錯誤識別的主體)並移除其不再出現於該真實空間中之主體。
考量購物商店實施例之範例,其中追蹤引擎110係於較早時刻產生消費者(主體),然而,在某時間後,追蹤引擎110不具有該特定消費者之目前關節位置。其表示消費者被不正確地產生。追蹤引擎110從主體資料庫140刪除不正確地產生的主體。於一實施例中,追蹤引擎110亦使用上述程序以從真實空間移除肯定地識別的主體。考量購物商店之範例,當消費者離開購物商店時,追蹤引擎110便從主體資料庫140刪除相應的消費者記錄。於一此類實施例中,追蹤引擎110更新主體資料庫140中之此消費者的記錄以指示其「消費者已離開該商店」。
於一實施例中,追蹤引擎110嘗試藉由同時地應用足部及非足部啟發法以識別主體。如此導致該些主體之連接關節的「島」。隨著追蹤引擎110沿著時間及空間維度處理關節資料結構的進一步陣列,島的大小增加。 最終地,關節之島合併至關節之其他島以形成主體,其被接著儲存於主體資料庫140中。於一實施例中,追蹤引擎110係維持未指派關節之記錄於一段預定的時間週期。於此時間期間,追蹤引擎嘗試將未指派關節指派給現存主體或者從這些未指派關節產生新的多關節單體。追蹤引擎110在一段預定的時間週期後丟棄該些未指派關節。應理解:於其他實施例中,除了以上所列出之外的不同啟發法被用以識別並追蹤主體。
於一實施例中,連接至主控追蹤引擎110之節點102的使用者介面輸出裝置係顯示該真實空間中之各主體的位置。於一此類實施例中,輸出裝置之顯示係於規律的間隔被再新以該些主體的新位置。
主體資料結構
主體之關節係使用上述的量度而被彼此連接。於如此做時,追蹤引擎110產生新主體並藉由更新其各別的關節位置以更新現存主體之位置。圖8顯示用以儲存主體之主體資料結構800。資料結構800將主體相關的資料儲存為密鑰-值字典。該密鑰為框_數而值為另一密鑰-值字典,其中密鑰為相機_id而值為(主體的)18個關節的列表,具有真實空間中之其位置。該主體資料被儲存在主體資料庫140中。每一新主體亦被指派獨特的識別符,其被用以存取主體資料庫140中之該主體的資料。
於一實施例中,系統係識別主體之關節並產 生該主體之骨骼。該骨骼被投影入真實空間以指示真實空間中之該主體的位置及定向。此亦被稱為機器視覺之領域中的「姿勢估計」。於一實施例中,系統將真實空間中之主體的定向及位置顯示於圖形使用者介面(GUI)上。於一實施例中,影像分析是匿名的,亦即,透過關節分析所產生之指派給主體的獨特識別符並不會識別真實空間中之任何特定主體的個人身份細節(諸如名字、電子郵件地址、住址、***號碼、銀行帳戶號碼、駕照號碼,等等)。
主體追蹤之程序流
闡明邏輯之數個流程圖被描述於文中。邏輯可被實施為:使用如上所述而組態之處理器,其係使用儲存在由該些處理器可存取且可執行之記憶體中的電腦程式來編程;以及於其組態中,係藉由專屬邏輯硬體(包括場可編程積體電路)、及藉由專屬邏輯硬體與電腦程式之組合。利用文中之所有流程圖,應理解:許多步驟可被結合、被平行地履行、或被履行於不同的序列中,而不影響所達成的功能。於某些情況下,如讀者所將理解:步驟之重新配置將達成相同的結果,僅當某些其他改變亦被同時執行時。於其他情況下,如讀者所將理解:步驟之重新配置將達成相同的結果,僅當某些條件被滿足時。再者,應理解:文中之流程圖僅顯示其有關於實施例之理解的步驟,且應瞭解:用以完成其他功能之各種其他步驟可被履行在那些所顯示者之前、之後及之間。
圖9為流程圖,其闡明用以追蹤主體的程序步驟。該程序開始於步驟902。具有真實空間中之區域的觀看域之相機114被調校於程序步驟904。視頻程序係由影像辨識引擎112a-112n所履行於步驟906。於一實施例中,視頻程序被履行於每相機以處理從各別相機所接收之影像框的批次。來自各別影像辨識引擎112a-112n之所有視頻程序的輸出被提供為由追蹤引擎110所履行之場景程序的輸入於步驟908。場景程序識別新主體並更新現存主體之關節位置。於步驟910,檢查是否有更多影像框待處理。假如有更多影像框,則該程序於步驟906繼續,否則該程序於步驟914結束。
程序步驟904「調校真實空間中之相機」之更詳細的程序步驟被提出於圖10之流程圖中。調校程序開始於步驟1002,藉由識別真實空間之(x,y,z)座標的(0,0,0)點。於步驟1004,具有位置(0,0,0)於其觀看域中之第一相機被調校。相機調校之更多細節係較早被提出於本申請案中。於步驟1006,具有與第一相機之重疊觀看域的下一相機被調校。於步驟1008,檢查是否有更多相機待調校。該程序被重複於步驟1006直到所有相機114均被調校。
於下一程序步驟1010中,主體被引入真實空間中以識別介於具有重疊觀看域之相機之間的對應點之共軛對。此程序之某些細節被描述於上。該程序係針對每一對重疊相機而被重複於步驟1012。假如沒有更多相機則該程序結束(步驟1014)。
圖11中之流程圖顯示「視頻程序」步驟906之更詳細的步驟。於步驟1102,每相機之k連續有時戳影像被選擇為一批次以供進一步處理。於一實施例中,k=6之值係根據網路節點101a-101n中之視頻程序的可用記憶體來計算,該些網路節點101a-101n係各別地主控影像辨識引擎112a-112n。於下一步驟1104中,影像之大小被設為適當尺寸。於一實施例中,影像具有1280像素之寬度、702像素之高度及三個頻道RGB(代表紅、綠及藍色)。於步驟1106,複數經訓練的卷積神經網路(CNN)係處理該些影像並產生每影像之關節資料結構的陣列。CNN之輸出為每影像之關節資料結構的陣列(步驟1108)。此輸出被傳送至場景程序,於步驟1110。
圖12A為流程圖,其顯示圖9中之「場景程序」步驟908的更詳細步驟之第一部分。場景程序係結合來自多數視頻程序之輸出,於步驟1202。於步驟1204,檢查關節資料結構係識別足部關節或者非足部關節。假如該關節資料結構屬於足部關節,則單應性映射被應用以結合相應於來自具有重疊觀看域之相機的影像之關節資料結構,於步驟1206。此程序識別候選足部關節(左及右足部關節)。於步驟1208,啟發法被應用於步驟1206中所識別的候選足部關節上以將候選足部關節之集合識別為主體。於步驟1210檢查候選足部關節之該集合是否屬於現存主體。假如為否,則新主體被產生於步驟1212。否則,該現存主體被更新於步驟1214。
流程圖12B係顯示「場景程序」步驟908的更詳細步驟之第二部分。於步驟1240,非足部關節之資料結構被結合自相應於來自具有重疊觀看域之相機的影像之序列中的影像之關節資料結構的多數陣列。此係藉由以下方式來履行:將來自第一相機之來自第一影像的對應點映射至來自具有重疊觀看域之第二相機的第二影像。此程序之某些細節被描述於上。於步驟1242,啟發法被應用至候選非足部關節。於步驟1246,判定候選非足部關節是否屬於現存主體。假如是的話,該現存主體被更新於步驟1248。否則,該候選非足部關節被再次處理於步驟1250(在一段預定時間後)以使其與現存主體匹配。於步驟1252,檢查該非足部關節是否屬於現存主體。假如是的話,該主體被更新於步驟1256。否則,該關節被丟棄於步驟1254。
於一範例實施例中,用以識別新主體、追蹤主體及去除主體(其已離開真實空間或者被不正確地產生)之程序被實施為由運行時間系統(亦稱為推理系統)所履行的「單體內聚演算法」之部分。單體是以上被稱為主體之關節的群集。單體內聚演算法係識別真實空間中之單體並更新真實空間中之關節的位置以追蹤單體之移動。
圖14提出視頻程序1411及場景程序1415之圖示。於所示的實施例中,顯示四個視頻程序,各處理來自一或更多相機114之影像。視頻程序係處理如上所述之影像並識別每框之關節。於一實施例中,各視頻程序識別2D座標、信心數、關節數及獨特ID,針對每框每關節。所有 視頻程序之輸出1452被提供為輸入1453至場景程序1415。於一實施例中,場景程序產生每時刻之關節密鑰-值字典,其中該密鑰為相機識別符而該值為關節之陣列。該些關節被再投影入具有重疊觀看域之相機的觀點。再投影的關節被儲存為密鑰-值字典,並可被用以產生針對各相機中之各影像的前台主體遮罩,如以下所討論。此字典中之密鑰為關節id與相機id之組合。該字典中之值為其被再投影入目標相機之觀點的關節之2D座標。
場景程序1415產生輸出1457,其包含在某一時刻之真實空間中的所有主體之列表。該列表包括每主體之密鑰-值字典。該密鑰為主體之獨特識別符而該值為另一密鑰-值字典,以該密鑰為框數而該值為相機-主體關節密鑰-值字典。相機-主體關節密鑰-值字典為每主體字典,其中該密鑰為相機識別符而該值為關節之列表。
用以識別並追蹤每主體之存貨項目的影像分析
用以追蹤真實空間之區域中藉由主體之存貨項目的放下及取走之系統及各種實施方式係參考圖15A至25而被描述。系統及程序係參考圖15A而被描述,依據實施方式之系統的架構階概圖。因為圖15A為架構圖,所以某些細節被省略以增進描述之清晰。
多CNN管線之架構
圖15A為卷積神經網路之管線(亦稱為多CNN 管線)的高階架構,其處理從相機114所接收之影像框以產生真實空間中之各主體的購物車資料結構。文中所述之系統包括如上所述之每相機影像辨識引擎,用以識別並追蹤多關節主體。替代的影像辨識引擎可被使用,包括其中僅有一「關節」被辨識並追蹤於每個體之範例,或者涵蓋空間及時間之其他特徵或其他類型的影像資料被利用以辨識並追蹤其被處理的真實空間中之主體。
多CNN管線係平行地運行於每相機,從各別相機移動影像至影像辨識引擎112a-112n,經由每相機之循環緩衝器1502。於一實施例中,該系統係由三個子系統所組成:第一影像處理器子系統2602、第二影像處理器子系統2604及第三影像處理器子系統2606。於一實施例中,第一影像處理器子系統2602包括影像辨識引擎112a-112n,其被實施為卷積神經網路(CNN)且被稱為關節CNN 112a-112n。如相關於圖1所述,相機114可於時間上被彼此同步化,以致其影像被同時地(或時間上接近地)並以相同的影像擷取率來擷取。於其同時地(或時間上接近地)覆蓋真實空間之區域的所有相機中所擷取的影像被同步化,由於其同步化影像可被識別於處理引擎中如代表在具有真實空間中之固定位置的主體之某一時刻的不同視角。
於一實施例中,相機114被安裝於購物商店(諸如超級市場)中以致其具有重疊觀看域之相機(二或更多)的集合被置於各走道上方以擷取該商店中之真實空間的影像。有N個相機於真實空間中,然而,為了簡化,僅 有一相機被顯示於圖17A中為相機(i),其中i之值的範圍係從1至N。各相機產生相應於其各別觀看域之真實空間的影像之序列。
於一實施例中,相應於來自各相機之影像的序列之影像框係以每秒30框(fps)之速率被傳送至各別影像辨識引擎112a-112n。各影像框具有時戳、相機之識別(縮寫為「相機_id」)、及框識別(縮寫為「框_id」),連同影像資料。影像框被儲存於每相機114之循環緩衝器1502(亦稱為環緩衝器)中。循環緩衝器1502儲存來自各別相機114之連續有時戳影像框之集合。
關節CNN處理每相機之影像框的序列並識別出現在其各別觀看域中之各主體的18個不同類型的關節。相應於具有重疊觀看域之相機的關節CNN 112a-112n之輸出被結合以將來自各相機之2D影像座標的關節之位置映射至真實空間之3D座標。每主體(j)之關節資料結構800(其中j等於1至x)識別真實空間中之主體(j)的關節之位置。主體資料結構800之細節被提出於圖8中。於一範例實施例中,關節資料結構800為各主體之關節的二階密鑰-值字典。第一密鑰為框_數而該值為第二密鑰-值字典,以該密鑰為相機_id而該值為指派給主體之關節的列表。
包含由關節資料結構800所識別之主體以及來自每相機之影像框的序列之相應影像框的資料集被提供為輸入至第三影像處理器子系統2606中之定界框產生器1504。第三影像處理器子系統進一步包含前台影像辨識引 擎。於一實施例中,前台影像辨識引擎係語意地辨識前台中之重要物件(亦即,購物者、其手以及存貨項目),因為其係相關於(例如)來自各相機之影像中隨著時間經過的存貨項目之放下及取走。於圖15A中所示之範例實施方式中,前台影像辨識引擎被實施為WhatCNN 1506及WhenCNN 1508。定界框產生器1504實施用以處理資料集之邏輯,來指明其包括影像之序列中的影像中之已識別主體的手之影像的定界框。定界框產生器1504係識別每相機之各來源影像框中的手關節之位置,使用相應於各別來源影像框之多關節資料結構800中的手關節之位置。於一實施例中,其中主體資料結構中之關節的座標係指示3D真實空間座標中的關節之位置,定界框產生器係將來自3D真實空間座標之關節位置映射至各別來源影像之影像框中的2D座標。
定界框產生器1504產生針對影像框中之手關節的定界框於每相機114之循環緩衝器中。於一實施例中,定界框為影像框之128像素(寬度)x128像素(高度)部分,以該手關節位於該定界框之中心。於其他實施例中,定界框之大小為64像素x64像素或32像素x32像素。針對來自相機之影像框中的m個主體,可以有最多2m個手關節,因而有2m個定界框。然而,實際上於影像框中有少於2m個手可見,因為由於其他主體或其他物件的阻擋。於一範例實施例中,主體的手位置被推斷自手肘及手腕關節的位置。例如,主體的右手位置被外推,其係使用右手肘(識 別為p1)及右手腕(識別為p2)的位置為外推_量*(p2-p1)+p2,其中外推_量等於0.4。於另一實施例中,關節CNN 112a-112n係使用左及右手影像來訓練。因此,於此一實施例中,關節CNN 112a-112n直接地識別每相機之影像框中的手關節之位置。每影像框之手位置係由定界框產生器1504所使用以產生每已識別手關節之定界框。
WhatCNN 1506為一種卷積神經網路,其被訓練以處理影像中之已指明定界框來產生已識別主體之手的類別。一經訓練的WhatCNN 1506係處理來自一相機之影像框。於購物商店之範例實施例中,針對各影像框中之各手關節,WhatCNN 1506係識別該手關節是否為空的。WhatCNN 1506亦識別手關節中之存貨項目的SKU(庫存保持單元)數、指示手關節中之項目為非SKU項目(亦即,其不屬於購物商店存貨)的信心值、以及影像框中之手關節位置的背景。
所有相機114之WhatCNN模型1506的輸出係由單一WhenCNN模型1508針對預定的時間窗來處理。於購物商店之範例中,WhenCNN 1508針對主體之兩手履行時間序列分析以識別主體是否從貨架取走商店存貨項目或者將商店存貨項目放在貨架上。購物車資料結構1510(亦稱為包括存貨項目之列表的日誌資料結構)針對每主體而被產生以保存與該主體關聯的購物車(或籃)中之商店存貨項目的記錄。
第二影像處理器子系統2604接收相同資料集 為送至第三影像處理器之給定輸入,該些相同資料集包含由關節資料結構800所識別的主體以及來自每相機之影像框的序列之相應影像框。子系統2604包括前台影像辨識引擎,其係語意地辨識前台(亦即,如貨架等存貨展示結構)中之重要差異,因為其係相關於(例如)來自各相機之影像中隨著時間經過的存貨項目之放下及取走。選擇邏輯組件(未顯示於圖15A中)係使用信心分數以選擇來自第二影像處理器或第三影像處理器之任一者的輸出以產生購物車資料結構1510。
圖15B顯示協調邏輯模組1522,其係結合多數WhatCNN模型之結果並將提供為送至單一WhenCNN模型之輸入。如上所述,具有重疊觀看域之二或更多相機係擷取真實空間中之主體的影像。單一主體之關節可出現在各別影像頻道1520中之多數相機的影像框中。分離的WhatCNN模型係識別主體之手(由手關節所表示)中的存貨項目之SKU。協調邏輯模組1522將WhatCNN模型之輸出結合入WhenCNN模型之單一合併輸入。WhenCNN模型1508係操作於該合併輸入上以產生該主體之購物車。
包含圖15A之多CNN管線的系統之詳細實施方式被提出於圖16、17、及18中。於購物商店之範例中,系統係追蹤真實空間之區域中藉由主體之存貨項目的放下及取走。真實空間之區域為購物商店,其具有存貨項目放置於如圖2及3中所示之走道中所組織的貨架中。應理解:含有存貨項目之貨架可被組織以多種不同的配置。例如, 貨架可被配置成直線,以其背側靠著購物商店之牆壁而前側面朝向真實空間中之開放區域。於真實空間中具有重疊觀看域之複數相機114係產生其相應觀看域之影像的序列。一相機的觀看域係與如圖2及3中所示之至少一其他相機的該觀看域重疊。
關節CNN-主體之識別及更新
圖16為由關節CNN 112a-112n所履行以識別真實空間中之主體的處理步驟之流程圖。於購物商店之範例中,主體為移動於貨架與其他開放空間之間的走道中之商店中的消費者。該程序開始於步驟1602。注意:如上所述,相機被調校在來自相機之影像的序列被處理以識別主體之前。相機調校之細節被提出如上。具有重疊觀看域之相機114係擷取其中有主體出現之真實空間的影像(步驟1604)。於一實施例中,相機被組態成產生影像之同步化序列。各相機之影像的序列被儲存於每相機之各別循環緩衝器1502中。循環緩衝器(亦稱為環緩衝器)係儲存時間之滑動窗中的影像之序列。於一實施例中,循環緩衝器係儲存110來自相應相機之影像框。於另一實施例中,各循環緩衝器1502係儲存針對3.5秒之時間週期的影像框。應理解:於其他實施例中,影像框(或時間週期)之數目可大於或小於以上列出的範例值。
關節CNN 112a-112n係接收來自相應相機114之影像框的序列(步驟1606)。各關節CNN係透過多數卷積 網路層以處理來自相應相機之影像的批次以識別來自相應相機之影像框中的主體之關節。藉由範例卷積神經網路之影像的架構及處理被提出於圖5中。因為相機114具有重疊觀看域,所以主體之關節係由多於一個關節CNN來識別。由關節CNN所產生之關節資料結構600的二維(2D)座標被映射至真實空間之三維(3D)座標以識別真實空間中之關節位置。此映射之細節被提出於圖7之討論,其中追蹤引擎110將相應於不同影像序列中的影像之關節資料結構的陣列中之元件的座標變換為具有真實空間中之座標的候選關節。
主體之關節被組織成兩種類(足部關節及非足部關節)以將該些關節分組成為群集,如以上所討論。於目前範例中之左及右腳踝關節類型被視為足部關節,以供此程序之目的。於步驟1608,啟發法被應用以指派候選左足部關節及候選右足部關節給候選關節之集合以產生主體。接續於此,於步驟1610,判定新識別的主體是否已存在於真實空間中。假如為否,則新主體被產生於步驟1614,否則,現存主體被更新於步驟1612。
來自候選關節之星系的其他關節可被鏈結至該主體以建立該產生的主體之部分或所有關節類型的群集。於步驟1616,啟發法被應用至非足部關節以指派那些給已識別主體。總體量度計算器702計算總體量度值並嘗試藉由檢查非足部關節之不同組合以將該值減至最小。於一實施例中,該總體量度為組織於四個種類中之啟發法的 總和,如上所述。
用以識別候選關節之集合的該邏輯包含根據真實空間中之主體的關節之間的物理關係之啟發函數,用以將候選關節之集合識別為主體。於步驟1618,現存主體係使用相應非足部關節而被更新。假如有更多影像以供處理(步驟1620),則步驟1606至1618被重複,否則該程序結束於步驟1622。第一資料集被產生於上述程序之結束時。第一資料集係識別主體以及真實空間中之已識別主體的位置。於一實施例中,第一資料集係相關於圖15A而被提出於上為每主體之關節資料結構800。
WhatCNN-手關節之分類
圖17為流程圖,其闡明用以識別真實空間中所識別之主體的手中之存貨項目的處理步驟。於購物商店之範例中,主體為購物商店中之消費者。當消費者移動於走道及開放空間中時,其拾起貨架中所堆放的存貨項目並將該些項目放入其購物車或籃中。影像辨識引擎識別其接收自複數相機之影像的序列中之影像的集合中之主體。該系統包括邏輯,用以處理其包括已識別主體的影像之該些序列中的影像之集合以檢測由已識別主體取走存貨項目及由已識別主體放下存貨項目於貨架上。
於一實施例中,用以處理影像之集合的該邏輯包括(針對已識別主體)邏輯,用以處理影像來產生已識別主體之影像的類別。該些類別包括該已識別主體是否持 有存貨項目。該些類別包括第一接近度類別,其係指示該已識別主體的手相對於貨架之位置。該些類別包括第二接近度類別,其係指示該已識別主體的手相對於該已識別主體的身體之位置。該些類別進一步包括第三接近度類別,其係指示該已識別主體的手相對於與已識別主體關聯的籃子之位置。最後,該些類別包括可能存貨項目之識別符。
於另一實施例中,用以處理影像之集合的該邏輯包括(針對已識別主體)邏輯,用以識別其代表該些已識別主體之影像的集合中之影像中的手之資料的定界框。定界框中之資料被處理以產生針對該些已識別主體之定界框內的資料之類別。於此一實施例中,該類別係識別該已識別主體是否持有存貨項目。該些類別包括第一接近度類別,其係指示該已識別主體的手相對於貨架之位置。該些類別包括第二接近度類別,其係指示該已識別主體的手相對於該已識別主體的身體之位置。該些類別包括第三接近度類別,其係指示該已識別主體的手相對於與已識別主體關聯的籃子之位置。最後,該些類別包括可能存貨項目之識別符。
該程序開始於步驟1702。於步驟1704,影像框中之主體的手(由手關節所表示)之位置被識別。定界框產生器1504係識別來自各相機之每框的主體之手位置,使用由如圖18中所述之關節CNN 112a-112n所產生的第一資料集中所識別的關節位置。接續於此,於步驟1706,定界框產生器1504係處理資料集以指明其包括影像之序列中的 影像中之已識別多關節主體的手之影像的定界框。定界框產生器之細節被提出於以上之圖15A的討論中。
第二影像辨識引擎係接收來自該些複數相機之影像的序列並處理該些影像中之指明的定界框以產生該已識別主體之手的類別(步驟1708)。於一實施例中,用以根據手之影像來分類該些主體的該些影像辨識引擎之各者包含經訓練的卷積神經網路,其被稱為WhatCNN 1506。WhatCNN被配置於多CNN管線中,如以上相關於圖15A所述。於一實施例中,送至WhatCNNj輸入為多維陣列BxWxHxC(亦稱為BxWxHxC張量)。「B」為批次大小,其係指示由WhatCNN所處理之影像的批次中之影像框的數目。「W」及「H」係指示像素中之定界框的寬度及高度,「C」為頻道之數目。於一實施例中,有30個影像於一批次中(B=30),因此定界框之大小為32像素(寬度)x 32像素(高度)。可有六個頻道,其各別地代表紅、綠、藍、前台遮罩、前臂遮罩及上臂遮罩。前台遮罩、前臂遮罩及上臂遮罩是於此範例中針對WhatCNN之額外的及選擇性的輸入資料來源,其為CNN可包括於處理中以分類RGB影像資料中之資訊。前台遮罩可使用(例如)高斯演算法之混合而被產生。前臂遮罩可為介於手腕與手肘之間的線,其係提供使用關節資料結構中之資訊所產生的背景。同樣地,上臂遮罩可為介於手肘與肩膀之間的線,其係使用關節資料結構中之資訊所產生。B、W、H及C參數之不同值可被使用於其他實施例中。例如,於另一實施例中,定界框之 大小是較大的,例如,64像素(寬度)x 64像素(高度)或128像素(寬度)x 128像素(高度)。
各WhatCNN 1506係處理影像的批次以產生該些已識別主體之手的類別。該些類別包括該已識別主體是否持有存貨項目。該些類別包括一或更多類別,其係指示該些手相對於該貨架及相對於該主體之位置,無法檢測放下及取走。於此範例中,第一接近度類別係指示該已識別主體的手相對於貨架之位置。該些類別於此範例中包括第二接近度類別,其係指示該已識別主體的手相對於該已識別主體的身體之位置,其中主體可能於購物期間持有存貨項目。該些類別於此範例中進一步包括第三接近度類別,其係指示該已識別主體的手相對於與已識別主體關聯的籃子之位置,其中「籃子」於此背景下為由該主體用以於購物期間持有存貨項目的袋子、籃子、車或其他物件。最後,該些類別包括可能存貨項目之識別符。WhatCNN 1506之最後層係產生羅吉特(logits),其為預測之原始值。羅吉特被表示為浮點值並進一步處理(如以下所述),以供產生分類結果。於一實施例中,WhatCNN模型之輸出包括多維陣列BxL(亦稱為BxL張量)。「B」為批次大小,而「L=N+5」為每影像框之羅吉特輸出的數目。「N」為SKU之數目,其代表購物商店中供銷售之「N」個獨特存貨項目。
每影像框之輸出「L」為來自WhatCNN 1506之原始啟動。羅吉特「L」被處理於步驟1710以識別存貨 項目及背景。首「N」個羅吉特係代表其該主體正持有「N」個存貨項目之一的信心。羅吉特「L」包括額外五(5)個羅吉特,其被解釋於下。第一羅吉特代表其在該主體之手中的項目之影像不是商店SKU項目之一(亦稱為非SKU項目)的信心。第二羅吉特係指示該主體是否持有項目的信心。大的正值係指示WhatCNN模型具有其該主體正持有項目之高的信心位準。大的負值係指示該模型有信心其該主體並未持有任何項目。第二羅吉特之接近零的值係指示WhatCNN模型沒有信心來預測該主體是否持有項目。
接下來三個羅吉特係代表第一、第二及第三接近度類別,包括:第一接近度類別,其係指示該已識別主體的手相對於貨架之位置、第二接近度類別,其係指示該已識別主體的手相對於該已識別主體的身體之位置、及第三接近度類別,其係指示該已識別主體的手相對於與已識別主體關聯的籃子之位置。因此,這三個羅吉特係代表具有一羅吉特之手位置的背景,各指示其手之背景接近於貨架、接近於籃子(或購物車)、或接近於該主體的身體之信心。於一實施例中,WhatCNN係使用一含有三個背景下之手影像的訓練資料集來訓練:接近於貨架、接近於籃子(或購物車)、及接近於主體的身體。於另一實施例中,「接近度」參數係由該系統所使用以分類手的背景。於此一實施例中,該系統係判定該已識別主體的手與貨架、籃子(或購物車)、及該主體的身體之距離,以分類該背景。
WhatCNN之輸出為「L」羅吉特,其包括: N個SKU羅吉特、1個非SKU羅吉特、1個持有羅吉特、及3個背景羅吉特,如上所述。SKU羅吉特(首N個羅吉特)及非SKU羅吉特(接續於該些N個羅吉特後之第一羅吉特)係由softmax函數所處理。如以上參考圖5所述,softmax函數係將任意實值之K維向量變換至範圍[0,1](其向上加至1)中的實值之K維向量。softmax函數計算其涵蓋N+1項目之項目的機率分佈。輸出值係介於0與1之間,所有機率之總和等於一。softmax函數(用於多類別分類)係返回各類別之機率。具有最高機率之類別是預測類別(亦稱為目標類別)。
持有羅吉特係由S形函數所處理。S形函數具有實數值為輸入並產生0至1之範圍中的輸出值。S形函數之輸出係識別該手是空的或是持有項目。三個背景羅吉特係由softmax函數所處理以識別手關節位置之背景。於步驟1712,檢查是否有更多影像待處理。假如是的話,則步驟1704-1710被重複,否則該程序於步驟1714結束。
用以識別項目之放下及取走的WhenCNN-時間序列分析
於一實施例中,該系統係實施邏輯以履行涵蓋主體之類別的時間序列分析,以根據該些主體之前台影像處理來檢測藉由該些已識別主體之取走及放下。時間序列分析係識別該些主體之姿勢以及與影像之序列中所表示的該些姿勢關聯之存貨項目。
於多CNN管線中之WhatCNN 1506的輸出被提供為輸入至WhenCNN 1508,其係處理這些輸入以檢測 藉由該些已識別主體之取走及放下。最後,該系統包括邏輯(其係回應於檢測到的取走及放下)以產生日誌資料結構,其包括針對各已識別主體之存貨項目的列表。於購物商店之範例中,日誌資料結構亦被稱為每主體之購物車資料結構1510。
圖18提出一種程序,其係實施邏輯以產生每主體之購物車資料結構。該程序開始於步驟1802。WhenCNN 1508之輸入被準備於步驟1804。該WhenCNN之輸入是多維陣列BxCxTxCams,其中B是批次大小,C視頻道之數目,T是針對一時間窗所考量的框之數目,及Cams是相機114之數目。於一實施例中,批次大小「B」為64而「T」之該值為110個影像框或者在3.5秒的時間內之影像框的數目。
針對每影像框、每相機所識別之各主體,每手關節之10羅吉特(針對兩手之20羅吉特)的列表被產生。持有及背景羅吉特為由WhatCNN 1506所產生之「L」羅吉特的部分,如上所述。
Figure 107126341-A0305-02-0067-4
上述資料結構被產生給影像框中之各手且亦包括有關該相同主體之另一手。例如,假如資料係針對主體之左手關節,則針對右手之相應值被包括為「其他」羅吉特。第五羅吉特(被稱為log_sku之上述列表中的項目編號3)為上述「L」羅吉特中之SKU羅吉特的對數。第六羅吉特為另一手之SKU羅吉特的對數。「roll」函數係產生相同資訊在目前框之前及之後。例如,第七羅吉特(稱為roll(log_sku,-30))為SKU羅吉特之對數,比目前框更早30框。第八羅吉特為針對該手之SKU羅吉特的對數,比目前框更晚30框。該列表中之第九及第十資料為另一手之類似資料,比目前框更早30框及更晚30框。針對另一手之類似資料結構亦被產生,導致每相機之每影像框之每主體的總共20羅吉特。因此,於針對WhenCNN之輸入中的頻道數為20(亦即,C=20於多維陣列BxCxTxCams中)。
針對來自各相機之影像框的批次中之所有影像框(例如,B=64),每主體之20個手羅吉特的類似資料結構(於該影像框中識別)被產生。時間窗(T=3.5秒或110影像框)被用以向前及向後搜尋針對主體之手關節的影像框之序列中的影像框。於步驟1806,每框之每主體的20個手羅吉特被合併自多CNN管線。於一實施例中,影像框(64)之批次可被想像為影像框之較小窗,其被置於影像框110之較大窗的中間,具有額外的影像框以供兩側上之向前及向後搜尋。針對WhenCNN 1508之輸入BxCxTxCams係由以下所組成:來自所有相機114(稱為「Cams」)之影像框的批 次「B」中所識別的主體之兩手的20羅吉特。合併的輸入被提供至單一經訓練的卷積神經網路(稱之為WhenCNN模型1508)。
WhenCNN模型之輸出包含3羅吉特,其代表已識別主體之三個可能動作中的信心:從貨架取走存貨項目、將存貨項目放回該貨架上、及無動作。三個輸出羅吉特係由softmax函數所處理以預測所履行的動作。三個類別羅吉特係針對各主體而被產生以規律的間隔,且結果係針對每人而被儲存(連同時戳)。於一實施例中,三個羅吉特被產生於每主體每二十框。於此一實施例中,於每主體每二十影像框之間隔,110個影像框之窗被形成於目前影像框周圍。
在一段時間週期期間之每主體的這三個羅吉特之時間序列分析被履行(步驟1808)以識別相應於真實事件之姿勢以及其發生之時間。非最大抑制(NMS)演算法被使用於此目的。當由WhenCNN 1508多次地(來自相同相機且來自多數相機)檢測到一事件(亦即,藉由主體之項目的放下及取走)時,NMS便移除針對一主體之多餘事件。NMS為一種包含兩個主要工作之再評分技術:處罰多餘檢測之「匹配損失」以及鄰居之「關節處理」,用以得知附近是否有較佳檢測。
針對各主體之取走及放下的真實事件係藉由以下方式而被進一步處理:計算在具有真實事件之該影像框前的30個影像框之SKU羅吉特的平均。最後,最大值之 引數(縮寫為arg max或argmax)被用以判定最大值。由argmax值所分類的存貨項目被用以識別來自貨架之存貨項目放下或取走。存貨項目被加至各別主體之SKU(亦稱為購物車或籃)的對數,於步驟1810。程序步驟1804至1810被重複,假如有更多類別資料的話(於步驟1812檢查)。在一段時間週期期間,此處理導致對於各主體之購物車或籃的更新。該程序結束於步驟1814。
具有場景及視頻程序之WhatCNN
圖19提出系統之實施例,其中來自場景程序1415及視頻程序1411之資料被提供為對於WhatCNN模型1506之輸入以產生手影像類別。注意:各視頻程序之輸出被提供至分離的WhatCNN模型。來自場景程序1415之輸出為關節字典。於此字典中,密鑰為獨特關節識別符而值為該關節所關聯的獨特主體識別符。假如無任何主體與關節相關聯,則其不被包括於該字典中。各視頻程序1411從場景程序接收關節字典,並將其儲存入環緩衝器,其係將框數目映射至返回的字典。使用返回的密鑰-值字典,該視頻程序在各時刻選擇其接近與已識別主體關聯的手之影像的子集。於手關節周圍之影像框的這些部分可被稱為區提議。
於購物商店之範例中,區提議為來自一或更多相機(具有該主體於其相應觀看域中)之手位置的影像框。區提議係由系統中之每一相機所產生。其包括空手以 及攜帶購物商店存貨項目和不屬於購物商店存貨之項目的手。視頻程序係選擇含有每時刻之手關節的影像框之部分。前台遮罩之類似片段被產生。以上(手關節之影像部分及前台遮罩)被序連與關節字典(指示各別手關節所屬之主體)以產生多維陣列。來自視頻程序之此輸出被提供為針對WhatCNN模型之輸入。
WhatCNN模型之分類結果被儲存於區提議資料結構(由視頻程序所產生)。針對一時刻之所有區被接著提供為對於場景程序之輸入。該場景程序將結果儲存於密鑰-值字典中,其中該密鑰為主體識別符而該值為密鑰-值字典,其中該密鑰為相機識別符而該值為區之羅吉特。此聚合資料結構被接著儲存於環緩衝器,其係將框數目映射至聚合結構於各時刻。
具有場景及視頻程序之WhenCNN
圖20提出系統之實施例,其中WhenCNN 1508接收來自場景程序之輸出,接續於由每視頻程序之WhatCNN模型所履行的手影像分類後,如圖19中所解釋。針對一段時間週期(例如,針對一秒)之區提議資料結構被提供為對於場景程序之輸入。於一實施例中,其中相機係以每秒30框之速率拍攝影像,該輸入包括30個時間週期及相應的區提議。場景程序對單一整數(其代表存貨項目SKU)減去30個區提議(每手)。場景程序之輸出為密鑰-值字典,其中該密鑰為主體識別符而該值為SKU整數。
WhenCNN模型1508履行時間序列分析以判定所時間經過之此字典的演化。如此導致從貨架所取走之項目以及放在購物商店中的貨架上之項目的識別。WhenCNN模型之輸出為密鑰-值字典,其中該密鑰為主體識別符而該值為由WhenCNN所產生之羅吉特。於一實施例中,一組啟發法2002被用以判定每主體之購物車資料結構1510。啟發法被應用至WhenCNN之輸出、由其各別關節資料結構所指示之主體的關節位置、及貨架圖。貨架圖為貨架上之存貨項目的預先計算的映圖。啟發法2002係判定(針對各取走或放下)該存貨項目是被放在貨架或是從貨架取走、該存貨項目是被放在購物車(或籃子)中或是從購物車(或籃子)取走、或者該存貨項目是否接近該已識別主體的身體。
What-CNN模型之範例架構
圖21提出WhatCNN模型1506之範例架構。於此範例架構中,有總共26個卷積層。亦提出有關各別寬度(像素)、高度(像素)及頻道數之不同層的維度。第一卷積層2113接收輸入2111且具有64像素之寬度、64像素之高度及具有64個頻道(寫入為64x64x64)。對於WhatCNN之輸入的細節被提出如上。箭號之方向係指示從一層至後續層之資料的流程。第二卷積層2115具有32x32x64之維度。由第二層所接續,有八個卷積層(顯示於方盒2117中),各具有32x32x64之維度。只有兩層2119及2121被顯示於方盒2117 中以利闡明之目的。此係接續以16x16x128之維度的另八個卷積層2123。兩個此卷積層2125及2127被顯示於圖21中。最後,最後八個卷積層2129,具有各8x8x256之維度。兩個卷積層2131及2133被顯示於方盒2129中以利闡明。
有一完全連接層2135,具有來自最後卷積層2133之256個輸入,其產生N+5個輸出。如上所述,「N」為SKU之數目,其代表購物商店中供銷售之「N」個獨特存貨項目。五個額外羅吉特包括:第一羅吉特,其表示該影像中之項目為非SKU項目的信心、及第二羅吉特,其表示該主體是否持有項目的信心。接下來三個羅吉特係代表第一、第二及第三接近度類別,如上所述。WhatCNN之最後輸出被顯示於2137。範例架構係使用批次正規化(BN)。卷積神經網路(CNN)中之各層的分佈係於訓練期間改變且其隨著各層而變化。如此減少最佳化演算法之收斂速度。批次正規化(Ioffe及Szegedy 2015)係一種用以克服此問題之技術。ReLU(已校正的線性單元)啟動被用於各層的非線性,除了其中softmax被使用的最後輸出以外。
圖22、23、及24為WhatCNN 1506之實施方式的不同部分之圖形視覺化。該些圖形被調適自其由TensorBoardTM所產生之WhatCNN模型的圖形視覺化。TensorBoardTM為用以檢視及理解深學習模型(例如,卷積神經網路)之視覺化工具的套件。
圖22顯示其檢測單手(「單手」模型2210)之 卷積神經網路模型的高階架構。WhatCNN模型1506包含兩個此卷積神經網路,用以各別地檢測左及右手。於所示的實施例中,該架構包括四個區塊,稱為區塊0 2216、區塊1 2218、區塊2 2220、及區塊3 2222。區塊為較高階抽象化且包含其代表卷積層之多數節點。該些區塊被配置於從較低至較高的序列以致其來自一區塊之輸出被輸入至後續區塊。該架構亦包括集用層2214及卷積層2212。於該些區塊之間,不同的非線性可被使用。於所示的實施例中,ReLU非線性被使用如上所述。
於所示的實施例中,對於單手模型2210之輸入為BxWxHxC張量,其被定義如上於WhatCNN 1506之描述中。「B」為批次大小,「W」及「H」係指示輸入影像的寬度及高度,而「C」為頻道之數目。單手模型2210之輸出係與第二單手模型結合且被傳遞至完全連接網路。
於訓練期間,單手模型2210之輸出係與地面真相(ground truth)做比較。於該輸出與該地面真相之間所計算出的預測誤差被用以更新卷積層之加權。於所示的實施例中,隨機梯度下降(SGD)被用於訓練WhatCNN 1506。
圖23提出圖22之單手卷積神經網路模型的區塊0 2216之進一步細節。其包含四個卷積層,標示為方盒2310中之conv0、conv1 2318、conv2 2320、及conv3 2322。卷積層conv0之進一步細節被提出於方盒2310中。該輸入係由卷積層2312所處理。卷積層之輸出係由批次正規化層2314所處理。ReLU非線性2316被應用至批次正規 化層2314之輸出。卷積層conv0之輸出被傳遞至下一層conv1 2318。最後卷積層conv3之輸出係透過加法運算2324而被處理。此運算係將來自層conv3 2322之輸出加總至其經歷跳躍連接2326之未修改輸入。其已由He等人發表於論文,名稱為「深殘餘網路中之識別映射」(發佈於https://arxiv.org/pdf/1603.05027.pdf,2016年七月25日)其向前及向後信號可被直接地從一區塊傳播至任何其他區塊。該信號未改變地傳播通過卷積神經網路。此技術增進了深卷積神經網路之訓練及測試性能。
如圖21中所述,WhatCNN之卷積層的輸出係由完全連接層所處理。兩單手模型2210之輸出被結合並傳遞為輸入而至完全連接層。圖24為完全連接層(FC)2410之範例實施方式。對於FC層之輸入係由再成形運算子2412所處理。再成形運算子係改變張量之形狀,在將其傳遞至下一層2420之前。再成形包括將來自卷積層之輸出平坦化,亦即,將來自多維矩陣之輸出再成形至一維矩陣或向量。再成形運算子2412之輸出被傳遞至矩陣乘法運算子,其被標示為MatMul 2422。來自MatMul 2422之輸出被傳遞至矩陣正加法運算子,其被標示為xw_plus_b 2424。針對各輸入「x」,運算子2424將輸入乘以矩陣「w」及向量「b」以產生該輸出。「w」為與輸入「x」關聯的可訓練參數,而「b」為其被稱為偏移或攔截之另一可訓練參數。來自完全連接層2410之輸出2426為BxL張量,如以上於WhatCNN 1506之描述中所解釋。「B」為批次大小,而 「L=N+5」為每影像框之羅吉特輸出的數目。「N」為SKU之數目,其代表購物商店中供銷售之「N」個獨特存貨項目。
WhatCNN模型之訓練
於不同背景下持有不同存貨項目之手、以及於不同背景下之空手的影像之訓練資料集被產生。為了達成此目的,人類演員係持有各獨特的SKU存貨項目以多數不同方式,於測試環境之不同位置上。其手之背景的範圍包含:接近於演員的身體、接近於商店的貨架、及接近於演員的購物車或籃。該演員亦以空手履行上述動作。此程序被完成於左及右手兩者。多數演員係同時地履行這些動作於相同的測試環境中以模擬其發生在真實購物商店中之自然阻擋。
相機114拍攝其履行上述動作之演員的影像。於一實施例中,二十個相機被使用於此程序。關節CNN 112a-112n及追蹤引擎110係處理該些影像以識別關節。定界框產生器1504產生類似於生產或推理之手區的定界框。取代經由WhatCNN 1506以分類這些手區,該些影像被存至儲存碟。已儲存影像被檢視並標示。影像被指派三個標籤:存貨項目SKU、背景、及該手是否持有某東西。此程序係針對大量影像(高達數百萬影像)而被履行。
影像檔係依據資料收集場景而被組織。針對影像檔之命名約定係識別該些影像之內容及背景。圖25顯 示一範例實施例中之影像檔名。檔名之第一部分(以數字2502指稱)係識別資料集合場景且亦包括該影像之時戳。檔名之第二部分2504係識別來源相機。於圖25所示之範例中,影像係由「相機4」所擷取。檔名之第三部分2506係識別來自來源相機之框數。於所示之範例中,檔名係指示其為來自相機4之第94,600影像框。檔名之第四部分2508係識別來源影像框(此手區影像係從該來源影像框所取得)中之x及y座標區的範圍。於所示之範例中,該區被界定於從像素117至370的x座標值與從像素370至498的y座標值之間。檔名之第五部分2510係識別該場景中之演員的個人id。於所示之範例中,該場景中之個人具有id「3」。最後,檔名之第六部分2512係識別存貨項目之SKU數(項目=68),識別於該影像中。
於WhatCNN 1506之訓練模式中,前向傳遞及後向傳播被履行相反於產生模式,其中僅有前向傳遞被履行。於訓練期間,WhatCNN產生該些已識別主體之手的類別於前向傳遞中。WhatCNN之輸出係與地面真相進行比較。於後向傳播中,一或更多成本函數之梯度被計算。梯度被接著傳播至卷積神經網路(CNN)及完全連接(FC)神經網路以致其預測誤差被減少,造成輸出更接近於地面真相。於一實施例中,隨機梯度下降(SGD)被用於訓練WhatCNN 1506。
於一實施例中,64個影像被隨機地選自訓練資料並被擴增。影像擴增之目的係用以使訓練資料多樣 化,其導致模型之較佳性能。影像擴增包括影像之隨機翻轉、隨機旋轉、隨機色相移位、隨機高斯雜訊、隨機對比改變、及隨機修剪。擴增之量為超參數且透過超參數搜尋而被調諧。已擴增影像係由WhatCNN 1506所分類,於訓練期間。該分類係與地面真相進行比較,且WhatCNN 1506之係數或加權係藉由計算梯度損失函數並將梯度乘以學習速率而被更新。上述程序被重複多次(例如,約1000次)以形成時期。介於50至200時期之間被履行。於各時期期間,學習速率被稍微地減少,依循餘弦退火排程。
WhenCNN模型之訓練
WhenCNN 1508之訓練係類似於上述的WhatCNN 1506,使用後向傳播以減少預測誤差。演員履行多種動作於訓練環境中。於範例實施例中,訓練被履行於購物商店中,以其貨架堆疊有存貨項目。由演員所履行之動作的範例包括:從貨架取走存貨項目、將存貨項目放回貨架上、將存貨項目放入購物車(或籃)中、從購物車取回存貨項目、於左與右手之間調換項目、將存貨項目放入演員的隱蔽處中。隱蔽處是指稱其可在左與右手旁邊持有存貨項目之演員的身體上之位置。隱蔽處之某些範例包括:一存貨項目,其係擠壓於前臂與上臂之間、擠壓於前臂與胸口之間、擠壓於脖子與肩膀之間。
相機114係記錄於訓練期間如上所述之所有動作的視頻。該些視頻被檢視且所有影像框被標示以指示 時戳及所履行的動作。這些標籤被稱為針對各別影像框之動作標籤。該些影像框係透過多CNN管線而被處理直達WhatCNN 1506如上所述,以供產生或推理。WhatCNN(連同相關的動作標籤)之輸出被接著用以訓練WhenCNN 1508,以該些動作標籤作用為地面真相。具有餘弦退火排程之隨機梯度下降(SGD)被用於如上所述之訓練以供WhatCNN 1506之訓練。
除了影像擴增(用於WhatCNN之訓練)以外,時間擴增亦被應用至影像框,於WhenCNN之訓練期間。一些範例包括鏡射、加入高斯雜訊、調換與左及右手相關的羅吉特、縮短時間、藉由丟棄影像框以縮短時間序列、藉由複製框以延長時間序列、及丟棄時間序列中之資料點以模擬基礎模型(其產生用於WhenCNN之輸入)中之缺陷。鏡射包括反轉時間序列及各別標籤,例如,當被反轉時放下動作變為取走動作。
使用背景影像處理以預測存貨事件
用以追蹤真實空間之區域中藉由主體之改變的系統及各種實施方式係參考圖26至28B而被描述。
系統架構
圖26提出依據一實施方式之一種系統的高階概圖。因為圖26為架構圖,所以某些細節被省略以增進描述之清晰。
圖26中所提出之系統係接收來自複數相機114之影像框。如上所述,於一實施例中,相機114可於時間上被彼此同步化,以致其影像被同時地(或時間上接近地)並以相同的影像擷取率來擷取。於其同時地(或時間上接近地)覆蓋真實空間之區域的所有相機中所擷取的影像被同步化,由於其同步化影像可被識別於處理引擎中如代表在具有真實空間中之固定位置的主體之某一時刻的不同視角。
於一實施例中,相機114被安裝於購物商店(諸如超級市場)中以致其具有重疊觀看域之相機(二或更多)的集合被置於各走道上方以擷取該商店中之真實空間的影像。有「n」個相機於真實空間中。各相機係產生相應於其各別觀看域之真實空間的影像之序列。
主體識別子系統2602(亦稱為第一影像處理器)係處理接收自相機114之影像框以識別並追蹤真實空間中之主體。第一影像處理器包括主體影像辨識引擎。主體影像辨識引擎接收來自複數相機之影像的相應序列,並處理影像以識別影像的該相應序列中之影像所表示的主體。於一實施例中,該系統包括如上所述之每相機影像辨識引擎,用以識別並追蹤多關節主體。替代的影像辨識引擎可被使用,包括其中僅有一「關節」被辨識並追蹤於每個體之範例,或者涵蓋空間及時間之其他特徵或其他類型的影像資料被利用以辨識並追蹤其被處理的真實空間中之主體。
「語意差異」子系統2604(亦稱為第二影像處理器)包括背景影像辨識引擎,其係接收來自該些複數相機之影像的相應序列並語意地辨識背景(亦即,如貨架等存貨展示結構)中之重要差異,因為其係相關於(例如)來自各相機之影像中隨著時間經過的存貨項目之放下及取走。第二影像處理器係接收主體識別子系統2602之輸出及來自相機114之影像框以當作輸入。第二影像處理器係遮蔽該前台中之該些已識別主體以產生已遮蔽影像。該些已遮蔽影像係藉由以背景影像資料取代其與前台主體相應的定界框來產生。接續於此,該些背景影像辨識引擎係處理該些已遮蔽影像以識別並分類影像之該些相應序列中的該些影像中所表示之背景改變。於一實施例中,該些背景影像辨識引擎包含卷積神經網路。
最後,第二影像處理器係處理已識別背景改變以進行由已識別主體取走存貨項目的檢測及由已識別主體放下存貨項目於存貨展示結構上的檢測之第一集合。檢測之第一集合亦被稱為存貨項目之放下及取走的背景檢測。於購物商店之範例中,第一檢測係識別由消費者或商店之員工從貨架取走或放在貨架上的存貨項目。該語意差異子系統包括用以使已識別背景改變與已識別主體關聯的邏輯。
區提議子系統2606(亦稱為第三影像處理器)包括前台影像辨識引擎,其係接收來自該些複數相機114之影像的相應序列,並語意地辨識前台(亦即,購物者、 其手以及存貨項目)中之重要物件,因為其係相關於(例如)來自各相機之影像中隨著時間經過的存貨項目之放下及取走。子系統2606亦接收主體識別子系統2602之輸出。該些第三影像處理器係處理來自相機114之影像的序列以識別並分類影像之該些相應序列中的該些影像中所表示之前台改變。第三影像處理器係處理已識別前台改變以進行由已識別主體取走存貨項目的檢測及由已識別主體放下存貨項目於存貨展示結構上的檢測之第二集合。檢測之第二集合亦被稱為存貨項目之放下及取走的前台檢測。於購物商店之範例中,檢測之第二集合係識別由消費者及商店之員工取走存貨項以及將存貨項目放在存貨展示結構上。
圖26中所述之系統包括選擇邏輯組件2608,用以處理檢測之第一及第二集合來產生包括已識別主體之存貨項目的列表之日誌資料結構。針對真實空間中之取走或放下,選擇邏輯2608係選擇來自語意差異子系統2604或區提議子系統2606之任一者的輸出。於一實施例中,選擇邏輯2608係使用由語意差異子系統針對檢測之第一集合所產生的信心分數以及由區提議子系統針對檢測之第二集合所產生的信心分數來進行選擇。針對特定檢測具有較高信心分數之子系統的輸出被選擇並使用以產生日誌資料結構1510(亦稱為購物車資料結構),其包括與已識別前台主體關聯的存貨項目之列表。
子系統組件
圖27提出子系統組件,其係實施該系統以追蹤藉由真實空間之區域中的主體之改變。該系統包含複數相機114,其係產生該真實空間中之相應觀看域的影像之各別序列。各相機之該觀看域係與如上所述的該些複數相機中之至少一其他相機的該觀看域重疊。於一實施例中,相應於由該些複數相機114所產生之影像的影像框的序列被儲存在每相機114之循環緩衝器1502(亦稱為環緩衝器)中。各影像框具有時戳、相機之識別(縮寫為「相機_id」)、及框識別(縮寫為「框_id」),連同影像資料。循環緩衝器1502儲存來自各別相機114之連續有時戳影像框之集合。於一實施例中,相機114被組態成產生影像之同步化序列。
相同的相機及影像之相同的序列係由一較佳實施方式中之前台及背景影像處理器兩者所使用。結果,存貨項目之放下及取走的冗餘檢測係使用相同的輸入資料而被執行,以容許高信心(及高準確度)於所得資料中。
主體識別子系統2602(亦稱為第一影像處理器)包括主體影像辨識引擎,接收來自該些複數相機114之影像的相應序列。該主體影像辨識引擎係處理影像以識別影像之該些相應序列中的該些影像中所表示之主體。於一實施例中,該主體影像辨識引擎被實施為卷積神經網路(CNN),其被稱為關節CNN 112a-112n。相應於具有重疊觀看域之相機的關節CNN 112a-112n之輸出被結合以將來自各相機之2D影像座標的關節之位置映射至真實空間之 3D座標。每主體(j)之關節資料結構800(其中j等於1至x)識別真實空間中以及各影像的2D空間中之主體(j)的關節之位置。主體資料結構800之某些細節被提出於圖8中。
語意差異子系統2604中之背景影像儲存2704係儲存針對來自相機114之影像的相應序列之已遮蔽影像(亦稱為背景影像,其中前台主體已藉由遮蔽而被移除)。背景影像儲存2704亦稱為背景緩衝器。於一實施例中,已遮蔽影像之大小係相同於循環緩衝器1502中的影像框之大小。於一實施例中,已遮蔽影像被儲存在背景影像儲存2704中,其係相應於每相機之影像框的序列中之各影像框。
語意差異子系統2604(或第二影像處理器)包括遮罩產生器2724,其係產生來自相機之影像的相應序列中之影像所表示的前台主體之遮罩。於一實施例中,一遮罩產生器係處理每相機之影像的序列。於購物商店之範例中,前台主體是在含有供銷售之項目的背景貨架前方之消費者或商店的員工。
於一實施例中,關節資料結構800及來自循環緩衝器1502之影像框被提供為針對遮罩產生器2724之輸入。關節資料結構係識別各影像框中之前台主體的位置。遮罩產生器2724產生影像框中所識別之每前台主體的定界框。於此一實施例中,遮罩產生器2724係使用2D影像框中之關節位置的x及y座標以判定定界框之四個邊界。x(來自針對一主體之關節的所有x值)之最小值係界定該主體之定 界框的左垂直邊界。y(來自針對一主體之關節的所有y值)之最小值係界定定界框的底部垂直邊界。同樣地,x及y座標之最大值係識別定界框之右垂直及頂部水平邊界。於第二實施例中,遮罩產生器2724係使用卷積神經網路為基的人檢測及局部化演算法以產生前台主體之定界框。於此一實施例中,遮罩產生器2724不使用關節資料結構800以產生前台主體之定界框。
語意差異子系統2604(或第二影像處理器)包括遮罩邏輯,用以處理影像之該些序列中的影像而以來自影像之該些相應序列的背景影像之背景影像資料取代其代表該些已識別主體之前台影像資料,以提供已遮蔽影像,其導致新背景影像以供處理。當循環緩衝器接收來自相機114之影像框時,遮罩邏輯係處理影像之該些序列中的影像來以背景影像資料取代由影像遮罩所界定的前台影像資料。該背景影像資料被取自影像之該些相應序列的該些背景影像以產生該些相應已遮罩影像。
考量購物商店之範例。一開始,於時間t=0,當商店中沒有消費者時,背景影像儲存2704中之背景影像係相同於每相機之影像的該些序列中之其相應影像框。現在考量時間t=1,消費者係於貨架前方移動以購買該貨架中之項目。遮罩產生器2724係產生該消費者之定界框並將其傳送至遮罩邏輯組件2702。遮罩邏輯組件2702係藉由在t=0之該背景影像框中的相應像素來取代該定界框內部在t=1之該影像框中的像素。此係導致相應於循環緩 衝器1502中在t=1之該影像框的在t=1之已遮蔽影像。已遮蔽影像不包括針對前台主體(或消費者)之像素,係現在係由來自在t=0之該背景影像框的像素所取代。在t=1之已遮蔽影像被儲存於背景影像儲存2704中並作用為來自相應相機的影像之該些序列中在t=2之下個影像框的背景影像。
於一實施例中,遮罩邏輯組件2702係結合(諸如藉由以像素來平均或加總)影像之該些序列中的多組N個已遮蔽影像以產生針對各相機之因數化影像的序列。於此一實施例中,該些第二影像處理器藉由處理因數化影像的該序列以識別並分類背景改變。因數化影像可(例如)藉由取得每相機的已遮蔽影像之該序列中的N個已遮蔽影像中之像素的平均值來產生。於一實施例中,N之值係等於相機114之框率,例如,假如框率為30 FPS(每秒之框),則N之值為30。於此一實施例中,針對一秒之時間週期的已遮蔽影像被結合以產生因數化影像。取得平均像素值係將像素波動減至最小,由於真實空間之區域中的感應器雜訊及發光度改變。
該些第二影像處理器藉由處理因數化影像的該序列以識別並分類背景改變。因數化影像之該些序列中的因數化影像係藉由位元遮罩計算器2710而與該相同相機之先前因數化影像進行比較。因數化影像2706之對被提供為輸入至位元遮罩計算器2710以產生位元遮罩,其係識別兩因數化影像之相應像素中的改變。該位元遮罩具有1於像素位置,其中介於相應像素(目前及先前因數化影像)的 RGB(紅、綠及藍頻道)值之間的差異係大於「差異臨限值」。該差異臨限值之值是可調整的。於一實施例中,該差異臨限值之值被設於0.1。
來自每相機之因數化影像的序列之該位元遮罩及該對因數化影像(目前及先前)被提供為輸入至背景影像辨識引擎。於一實施例中,背景影像辨識引擎包含卷積神經網路且被稱為改變CNN 2714a-2714n。單一改變CNN係處理每相機之因數化影像的序列。於另一實施例中,來自影像之相應序列的已遮蔽影像不被結合。該位元遮罩被計算自已遮蔽影像之該些對。於此實施例中,已遮蔽影像之該些對及該位元遮罩被接著提供為輸入至該改變CNN。
於此範例中對於改變CNN模型之輸入係由七(7)個頻道所組成,包括每因數化影像之三個影像頻道(紅、綠及藍)及針對該位元遮罩之一頻道。該改變CNN包含多數卷積層及一或更多完全連接(FC)層。於一實施例中,該改變CNN包含如圖5中所示之關節CNN 112a-112n的相同數目的卷積及FC層。
背景影像辨識引擎(改變CNN 2714a-2714n)係識別並分類該些因數化影像中之改變且產生針對影像之該些相應序列的改變資料結構。該些改變資料結構包括已識別背景改變之已遮蔽影像中的座標、該些已識別背景改變之存貨項目主體的識別符及該些已識別背景改變之類別。該些改變資料結構中之已識別背景改變的該些類別係分類該已識別存貨項目是否已相對於該背景影像而被加入 或移除。
因為項目可由一或更多主體所同時地取走或放在貨架上,所以該改變CNN係產生其重疊每輸出位置之定界框預測的數字「B」。定界框預測係相應於該因數化影像中之改變。考量該購物商店具有數字「C」的獨特存貨項目,各由獨特SKU所識別。該改變CNN係預測該改變之存貨項目主體的SKU。最後,改變CNN係識別針對該輸出中之每一位置(像素)的改變(或存貨事件類型),其係指示該已識別項目是被取走自該貨架或是被放下於該貨架上。來自改變CNN之以上三對輸出係由式子「5 * B+C+1」來描述。各定界框「B」預測係包含五(5)數字,因此「B」被乘以5。這五個數字係代表定界框之中心、定界框之寬度及高度的「x」及「y」座標。第五數字係代表針對該定界框之預測的改變CNN模型之信心分數。「B」為超參數,其可被調整以增進改變CNN模型之性能。於一實施例中,「B」之值等於4。考量來自改變CNN之輸出的寬度及高度(以像素)係各別地由W及H所表示。改變CNN之輸出被接著表達為「W*H*(5*B+C+1)」。定界框輸出模型係根據由Redmon及Farhadi於其論文「YOLO9000:更佳、更快、更強」(發佈於2016年十二月25日)中所提議的物件檢測系統。該論文可取得於https://arxiv.org/pdf/1612.08242.pdf。
相應於來自具有重疊觀看域之相機的影像之序列的改變CNN 2714a-2714n之輸出係由協調邏輯組件2718所結合。協調邏輯組件係處理來自具有重疊觀看域之 多組相機的改變資料結構來找出真實空間中之該些已識別背景改變。協調邏輯組件2718係選擇定界框,其代表具有相同SKU及相同存貨事件類型(取走或放下)之存貨項目,來自具有重疊觀看域之多數相機。選定的定界框被接著三角測量於3D真實空間中(使用如上所述之三角測量技術),以識別3D真實空間中之存貨項目的位置。真實空間中之貨架的位置係與3D真實空間中之存貨項目的三角測量出的位置進行比較。錯誤肯定預測被丟棄。例如,假如定界框之三角測量出的位置不映射至真實空間中之貨架的位置,則該輸出被丟棄。其映射至貨架之3D真實空間中的定界框之三角測量出的位置被視為存貨事件之真實預測。
於一實施例中,由第二影像處理器所產生的該些改變資料結構中之已識別背景改變的該些類別係分類該已識別存貨項目是否已相對於該背景影像而被加入或移除。於另一實施例中,該些改變資料結構中之已識別背景改變的該些類別係指示該已識別存貨項目是否已相對於該背景影像而被加入或移除,且該系統包括用以使背景改變與已識別主體相關聯的邏輯。該系統執行由該些已識別主體取走存貨項目的檢測及由該些已識別主體放下存貨項目於存貨展示結構上的檢測。
日誌產生器2720係實施邏輯以使由改變之真實預測所識別的改變與接近該改變之位置的已識別主體相關聯。於利用關節識別引擎以識別主體之實施例中,日誌產生器2720係使用關節資料結構800以判定3D真實空間中 之主體的手關節之位置。識別出一主體,其手關節是在改變之時刻落入與改變之位置的臨限值距離內。日誌產生器係使該改變與該已識別主體相關聯。
於一實施例中,如上所述,N個已遮蔽影像被結合以產生因數化影像,其被提供為輸入至該改變CNN。考量:N等於相機114之框率(每秒框數)。因此,於此一實施例中,於一第二時間週期期間之主體的手之位置係與該改變之位置進行比較以使該些改變與已識別主體相關聯。假如多於一主體之手關節位置落入與改變之位置的臨限值距離內,則該改變與主體之關聯被延緩至前台影像處理子系統2606之輸出。
前台影像處理(區提議)子系統2606(亦稱為第三影像處理器)包括前台影像辨識引擎,其接收來自該些複數相機之影像的該些序列。該些第三影像處理器包括邏輯,用以識別並分類影像之該些相應序列中的該些影像中所表示之前台改變。該區提議子系統2606產生由該些已識別主體取走存貨項目的檢測及由該些已識別主體放下存貨項目於存貨展示結構上的檢測之第二集合。如圖27中所示,子系統2606包括定界框產生器1504、WhatCNN 1506及WhenCNN 1508。關節資料結構800及來自循環緩衝器1502之每相機的影像框被提供為針對定界框產生器1504之輸入。定界框產生器1504、WhatCNN 1506及WhenCNN 1508之細節被較早地提出。
圖27中所述之系統包括選擇邏輯,用以處理 檢測之第一及第二集合來產生包括已識別主體之存貨項目的列表之日誌資料結構。由該些已識別主體取走存貨項目的檢測及由該些已識別主體放下存貨項目於存貨展示結構上的檢測之第一集合係由日誌產生器2720所產生。檢測之第一集合係使用第二影像處理器之輸出及關節資料結構800(如上所述)來判定。由該些已識別主體取走存貨項目的檢測及由該些已識別主體放下存貨項目於存貨展示結構上的檢測之第二集合係使用第三影像處理器之輸出來判定。針對各真實存貨事件(取走或放下),選擇邏輯控制器2608係選擇來自第二影像處理器(語意差異子系統2604)或第三影像處理器(區提議子系統2606)之任一者的輸出。於一實施例中,選擇邏輯係選擇來自針對該存貨事件具有較高信心分數之影像處理器的輸出。
背景影像語意差異之程序流
圖28A及28B提出由語意差異子系統2604所履行的詳細步驟,用以追蹤藉由真實空間之區域中的主體之改變。於購物商店之範例中,主體為移動於貨架與其他開放空間之間的走道中之商店中的消費者及商店的員工。該程序開始於步驟2802。如上所述,相機114被調校在來自相機之影像的序列被處理以識別主體之前。相機調校之細節被提出如上。具有重疊觀看域之相機114係擷取其中有主體出現之真實空間的影像。於一實施例中,相機被組態成以每秒N框的速率產生影像之同步化序列。各相機之 影像的序列被儲存於每相機之各別循環緩衝器1502中,於步驟2804。循環緩衝器(亦稱為環緩衝器)係儲存時間之滑動窗中的影像之序列。背景影像儲存2704被初始化以不具前台主體之每相機的影像框之該序列中的初始影像框(步驟2806)。
當主體於貨架之前方移動時,每主體之定界框係使用其相應關節資料結構800(如上所述)來產生(步驟2808)。於步驟2810,已遮蔽影像係藉由以來自背景影像儲存2704之來自背景影像的相同位置上之像素取代每影像框的定界框中之像素來產生。相應於每相機的影像之該些序列中之各影像的已遮蔽影像被儲存於背景影像儲存2704中。第i已遮蔽影像被使用為背景影像,用以取代每相機的影像框之該序列中的後續(i+1)影像框中之像素。
於步驟2812,N個已遮蔽影像被結合以產生因數化影像。於步驟2814,差異熱映圖係藉由比較多對因數化影像之像素值來產生。於一實施例中,介於兩因數化影像(fi1及fi2)的2D空間中之位置(x,y)上的像素之間的差異被計算於方程式1中如以下所示:
Figure 107126341-A0305-02-0092-5
介於2D空間中之相同x及y位置上的像素之間的差異係使用紅、綠及藍(RGB)頻道(如該方程式中所示)之各別強度值來判定。以上方程式係提供兩個因數化影像中的相應像素之間的差異之數值(亦稱為歐幾里德模值)。
差異熱映圖可含有雜訊,由於真實空間之區域中的感應器雜訊及發光度改變。在圖28B中,於步驟2816,位元遮罩被產生給差異熱映圖。語意上有意義的改變係由該位元遮罩中之1(一)的叢集所識別。這些叢集係相應於其識別從貨架取走或被放在貨架上的存貨項目之改變。然而,差異熱映圖中之雜訊可引入隨機1於該位元遮罩中。此外,多數改變(取自該貨架或放在該貨架上之多數項目)可引入1之重疊叢集。於該程序流之下一步驟(2818),影像形態操作被應用至該位元遮罩。影像形態操作係移除雜訊(不想要的1)且亦嘗試分離1之重疊叢集。如此導致較乾淨的位元遮罩,其包含相應於語意上有意義的改變之1的叢集。
兩輸入被提供至形態操作。第一輸入為該位元遮罩而第二輸入被稱為結構元件或內核。兩個基本形態操作為「侵蝕」及「膨脹」。內核係由以多種大小之矩形矩陣所配置的1所組成。不同形狀(例如,圓形、橢圓形或十字形狀)的內核係藉由相加該矩陣中之特定位置上的0來產生。不同形狀的內核被用於影像形態操作以獲得於清潔位元遮罩時之所欲結果。於侵蝕操作時,內核係滑動(或移動)於該位元遮罩之上。該位元遮罩中之像素(1或0之任一者)被視為1,假如於該內核之下的所有像素均為1的話。否則,其被侵蝕(改變至0)。侵蝕操作可用於移除該位元遮罩中之隔離的1。然而,侵蝕亦藉由侵蝕邊緣而縮小了1的該些叢集。
膨脹操作為侵蝕的相反。於此操作中,當內核滑動於該位元遮罩之上時,由該內核所重疊之位元遮罩區域中的所有像素之值均被改變至1,假如該內核之下的至少一像素之值為1的話。膨脹被應用至侵蝕後之該位元遮罩以增加1之大小叢集。因為雜訊在侵蝕時被移除,所以膨脹不會將隨機雜訊引入至該位元遮罩。侵蝕與膨脹操作之組合被應用以獲得較乾淨的位元遮罩。例如,電腦程式碼之後續行係將1之3x3過濾器應用至該位元遮罩以履行「開放」操作,其係應用侵蝕操作接著膨脹操作以移除雜訊並復原該位元遮罩中之1的叢集之大小,如上所述。上述電腦程式碼係使用針對即時電腦視覺應用程式之編程功能的OpenCV(開放式來源電腦視覺)庫。該庫可取得於https://opencv.org/._bit_mask=cv2.morphologyEx(bit_mask,cv2.MORPH_OPEN,self.kernel_3x3,dst=_bit_mask)
「關閉」操作係應用膨脹操作接著侵蝕操作。其可用於關閉1之叢集內部的小洞。以下程式碼係使用30x30之十字形狀的過濾器以應用關閉操作至該位元遮罩。
Figure 107126341-A0305-02-0094-6
該位元遮罩及兩個因數化影像(之前及之後)被提供為輸入至每相機之卷積神經網路(稱之為如上的改變CNN)。改變CNN之輸出為改變資料結構。於步驟2822,來自具有重疊觀看域之改變CNN的輸出係使用較早 所述之三角測量技術而被結合。3D真實空間中之改變的位置係與貨架之位置匹配。假如存貨事件之位置映射至貨架上之位置,則該改變被視為真實事件(步驟2824)。否則,該改變為錯誤肯定且被丟棄。真實事件係與前台主體相關。於步驟2826,前台主體被識別。於一實施例中,關節資料結構800被用以判定該改變之臨限值距離內的手關節之位置。假如前台主體被識別於步驟2828,則該改變被關聯至該已識別主體,於步驟2830。假如無前台主體被識別於步驟2828,例如,由於該改變之臨限值距離內的多數主體之手關節位置。接著藉由區提議子系統之該改變的冗餘檢測被選擇,於步驟2832。該程序結束於步驟2834。
訓練改變CNN
七個頻道輸入之訓練資料集被產生以訓練該改變CNN。當作消費者之一或更多主體係藉由假裝在購物商店中購物以履行取走及放下動作。主體係於走道中移動,從貨架取走存貨項目以及將項目放回貨架上。履行取走及放下動作的演員之影像被收集於循環緩衝器1502中。該些影像被處理以產生因數化影像,如上所述。多對因數化影像2706以及由位元遮罩計算器2710所輸出之相應位元遮罩被手動地檢視以視覺地識別介於兩因數化影像之間的改變。針對具有改變之因數化影像,定界框被手動地描繪繪製於該改變周圍。此為最小的定界框,其含有相應於該位元遮罩中之該改變的1之叢集。該改變中之存貨項目的 SKU數被識別且被包括於針對該影像(連同該定界框)之標籤中。識別存貨項目之取走或放下的事件類型亦被包括於該定界框之標籤中。因此各定界框之標籤係識別(在該因數化影像上之其位置)該項目之SKU以及該事件類型。因數化影像可具有多於一個定界框。上述程序被重複於該訓練資料集中之所有已收集因數化影像中的每一改變。一對因數化影像(連同該位元遮罩)係形成對於該改變CNN之七個頻道輸入。
於該改變CNN之訓練期間,前向傳遞及後向傳播被履行。於前向傳遞中,該改變CNN係識別並分類背景改變,其被表示於該訓練資料集中的影像之該些相應序列中的因數化影像中。該改變CNN係處理已識別背景改變以進行由已識別主體取走存貨項目的檢測及由已識別主體放下存貨項目於存貨展示結構上的檢測之第一集合。於後向傳播期間,該改變CNN之輸出係與該地面真相(如訓練資料集之標籤中所指示)進行比較。一或更多成本函數之梯度被計算。梯度被接著傳播至卷積神經網路(CNN)及完全連接(FC)神經網路以致其預測誤差被減少,造成輸出更接近於地面真相。於一實施例中,softmax函數及交叉熵損失函數被用於針對該輸出之類別預測部分的改變CNN之訓練。該輸出之類別預測部分包括該存貨項目及該事件類型(亦即,取走或放下)之SKU識別符。
第二損失函數被用以訓練針對定界框之預測的改變CNN。此損失函數係計算介於預測框與地面真相框 之間的intersection over union(IOU)。由具有真實定界框標籤之改變CNN所預測的定界框之交點的區域被除以相同定界框之聯集的區域。假如介於預測框與地面真相框之間的重疊很大,則IOU之值是高的。假如多於一預測定界框重疊地面真相定界框,則具有最高IOU值之一者被選擇以計算損失函數。損失函數之細節係由Redmon等人所提出於其論文中「You Only Look Once:Unified,Real-Time Object Detection」發佈於2016年五月9日。該論文可取得於https://arxiv.org/pdf/1506.02640.pdf。
特定實施方式
於各個實施例中,用以追蹤真實空間之區域中藉由主體之存貨項目的放下及取走之系統(如上所述)亦包括以下特徵之一或更多者。
1.區提議
區提議為來自其涵蓋人之所有不同相機的手位置之框影像。區提議係由系統中之每一相機所產生。其包括空手以及攜帶商店項目的手。
1.1 WhatCNN模型
區提議可被使用為針對使用深學習演算法之影像分類的輸入。此分類引擎被稱為「WhatCNN」模型。其為手中分類模型。其係分類手中的事物。即使物件之部 分被手所阻擋,手中影像分類仍可操作。較小的項目可被手阻擋高達90%。藉由WhatCNN模型之影像分析的區被有意地保持為小(於某些實施例中),因為其是計算上昂貴的。各相機可具有專屬GPU。此係針對每一框而被履行於來自每一相機之每一手影像。除了藉由WhatCNN模型之上述影像分析以外,信心加權亦被指派給該影像(一相機、一時點)。分類演算法係輸出涵蓋庫存保持單元(SKU)之完整列表的羅吉特以產生針對n個項目之該商店的產品和服務識別碼列表及針對空手(n+1)之一額外者。
場景程序現在藉由傳送密鑰-值字典至各視頻以將其結果傳回至各視頻程序。於此,密鑰為獨特關節ID而值為該關節所關聯的獨特個人ID。假如無任何人與該關節相關聯,則其不被包括於該字典中。
各視頻程序從場景程序接收密鑰-值字典,並將其儲存入環緩衝器,其係將框數目映射至返回的字典。
使用返回的密鑰-值字典,該視頻在各時刻選擇其接近與已知的人關聯的手之影像的子集。這些區為numpy片段。吾人亦取得類似的片段於前台遮罩周圍以及關節CNN之原始特徵陣列。這些結合的區被序連在一起而成為單一多維numpy陣列且被儲存於資料結構中,該資料結構係保存:與該區關聯的該numpy陣列和該個人ID、以及該區係來自該個人的哪隻手。
所有提議區被接著饋送入FIFO佇列。此佇列 係接受數區且將其numpy陣列推入GPU上之記憶體。
當陣列到達GPU時,其被饋送入一專用於分類之CNN,稱之為WhatCNN。此CNN之輸出為大小N+1之浮點的平坦陣列,其中N為該商店中之獨特SKU的數目,而最後類別係代表無類別(或空手)。此陣列中之該些浮點被稱為羅吉特。
WhatCNN之結果被儲存回入區資料結構。
針對一時刻之所有區被接著從各視頻程序傳回至場景程序。
該場景程序在某一時刻接收來自所有視頻之所有區並將結果儲存於密鑰-值字典中,其中該密鑰為個人ID而該值為密鑰-值字典,其中該密鑰為相機ID而該值為區之羅吉特。
此聚合資料結構被接著儲存於環緩衝器,其係將框數目映射至聚合結構於各時刻。
1.2 WhenCNN模型
由WhatCNN模型所處理之來自不同相機的影像在一段時間週期期間被結合(在一段時間週期期間之多數相機)。對於此模型之額外輸入為3D空間中之手位置,三角測量自多數相機。對於此演算法之另一輸入為手與該商店之貨架圖的距離。於某些實施例中,貨架圖可被用以識別該手是否接近一含有特定項目(例如,cheerios盒子)的貨架。對於此演算法之另一輸入為在該商店上之足部位 置。
除了使用SKU之物件分類以外,第二分類模型係使用時間序列分析以判定該物件是被拾起自該貨架或者是被放在該貨架上。該些影像在一段時間週期期間被分析以判定其在先前影像框中位於該手中的該物件是已被放回該貨架中或者是已被拾起自該貨架。
針對一第二時間(每秒30框)週期及三個相機,系統將具有90個類別輸出,針對相同手加信心。此結合影像分析顯著地增加了正確地識別該手中之物件的機率。涵蓋時間的分析係增進了輸出之品質,儘管是各別框之某些極低信心位準的輸出。此步驟可具有(例如)從80%準確度至95%準確度之輸出信心。
此模型亦包括來自貨架模型之輸出以當作其輸入,用來識別此人已拾起什麼物件。
場景程序等待30或更多聚合結構累積(其代表真實時間之至少一秒),並接著履行進一步分析以向下減少聚合結構至針對每一個人ID-手對之單一整數,其中該整數為代表該商店中之SKU的獨特ID。針對一時刻,此資訊被儲存於密鑰-值字典中,其中密鑰為個人ID-手對,而值為SKU整數。此字典係隨著時間經過而被儲存於環緩衝器,其係將框數目映射至針對該時刻之各字典。
可接著履行額外分析以觀察此字典如何隨著時間經過而改變以識別個人在什麼時刻取走某物以及其取走什麼東西。此模型(WhenCNN)係發出SKU羅吉特以及針 對各布林問題:某物被取走?某物被放置?之羅吉特。
WhenCNN之輸出被儲存於環緩衝器,其係將框數目映射至密鑰-值字典,其中密鑰為個人ID而值為由WhenCNN所發出之延伸羅吉特。
啟發法之另一集合被接著運行於WhenCNN及人之已儲存關節位置兩者之儲存結果上、以及於商店貨架上之項目的預先計算映圖上。啟發法之此集合係判定其取走及放下係導致項目被加至或移除自何處。針對各取走/放下,該些啟發法係判定該取走或放下係自或至貨架、自或至籃子、或者自或至個人。該輸出為針對每個人的存貨,其被儲存為一陣列,其中在SKU之索引上的陣列值為個人所擁有的那些SKU之數目。
當購物者接近商店之出口時,該系統可傳送存貨列表至該購物者的手機。該手機接著顯示該使用者的存貨並要求確認從其所儲存的***資訊收費。假如使用者接受,則其***將被收費。假如其不具有該系統中所已知的***,則其將被要求提供***資訊。
替代地,購物者亦可靠近商店內的服務台(kiosk)。該系統係識別出該購物者於何時接近該服務台且將傳送訊息至該服務台以顯示該購物者的存貨。該服務台要求該購物者接受該存貨之收費。假如購物者接受,則其可接著刷他們的***或者***現金來付款。圖16提出針對區提議之WhenCNN模型的圖示。
2.錯置的項目
此特徵係識別錯置的項目,當該些項目被個人放回隨機的貨架上時。如此造成物件識別的問題,因為相對於貨架圖之足部及手位置將是不正確的。因此,該系統隨著時間經過而建立修改的貨架圖。根據先前的時間序列分析,該系統能夠判定個人是否已將項目放回該貨架中。下一次,當物件從該貨架位置被拾起時,該系統便得知有至少一錯置的項目在該手位置上。相應地,演算法將具有其該個人可能從該貨架拾起錯置的項目之一些信心。假如該錯置的項目被拾起自該貨架,則該系統便從該位置減去該項目,該貨架不再具有該項目。該系統亦可經由應用程式以告知店員有關錯置的項目以致該店員可將該項目移至其正確的貨架。
3.語意差異(貨架模型)
用於背景影像處理之替代技術包含背景減去演算法,用以識別對於該些貨架上之項目的改變(項目被移除或放置)。此係根據像素位準上之改變。假如有人在該貨架前方,則該演算法便停止以致其不會將由於人的存在所致之像素改變列入考量。背景減去為一種雜訊程序。因此,跨相機分析被執行。假如有足夠的相機同意其該貨架上有「語意上有意義的」改變,則該系統便記錄其在該貨架之該部分中有改變。
下一步驟係用以識別該改變是「放下」或是 「取走」改變。對此,第二分類模型之時間序列分析被使用。針對該貨架之該特定部分的區提議被產生並通過深學習演算法。此比手中影像分析更為容易,因為該物件不會被阻擋在手內部。第四輸入被提供至該演算法,除了三個典型的RGB輸入以外。該第四頻道為背景資訊。該貨架或語意差異之輸出被再次輸入至第二分類模型(時間序列分析模型)。
此方式中之語意差異包括以下步驟:
1.來自相機之影像係與來自相同相機之較早影像進行比較。
2.介於兩影像之間的各相應像素係經由RGB空間中之歐幾里德距離而被比較。
3.在某臨限值之上的距離被標記,其導致剛標記的像素之新影像。
4.影像形態過濾器之集合被用以從該已標記影像移除雜訊。
5.吾人接著搜尋已標記像素之大型集合並形成於其周圍之定界框。
6.針對各定界框,吾人接著觀察兩影像中之原始像素以獲得兩個影像快照。
7.這兩個影像快照被接著推入CNN,其被訓練以分類該影像區是代表被取走的項目或者是代表被放置的項目以及該項目是什麼。
3.商店稽查
各貨架之存貨係由該系統所維持。當項目被消費者所拾起時其便被更新。於任何時點,該系統能夠產生商店存貨之稽查。
4.手中之多數項目
不同影像被用於多數項目。手中的兩個項目與一個項目相較之下係被不同地處置。某些演算法僅可預測一個項目而非一項目之數個。因此,CNN被訓練以致其針對「二」數量的項目可不同於手中之單一項目來執行。
5.資料收集系統
預先定義的購物腳本被用以收集影像之良好品質的資料。這些影像被用於演算法之訓練。
5.1 購物腳本
資料收集包括以下步驟:
1.腳本被自動地產生以告知人類演員應採取哪些動作。
2.這些動作被隨機地取樣自包括以下之動作集合:取走項目X、放下項目X、持有項目X達Y秒。
3.當履行這些動作時,演員係移動並使其本身盡可能多方式地定向,而同時在該既定動作上仍成功。
4.於動作之序列期間,相機之集合係從許多觀點記錄 該些演員。
5.在該些演員已完成該腳本後,相機視頻被捆在一起並連同原始腳本而被儲存。
6.該腳本係作用為對於在演員之視頻上所訓練的機器學習模型(諸如CNN)之輸入標籤。
6.產品線
該系統及其部分可被用於無出納員結帳,其係由以下應用程式所支援。
6.1 商店應用程式
商店應用程式具有數個主要可能性:提供資料分析視覺化、支援損失預防、及提供平台以輔助消費者,藉由顯示零售商有關人在商店中的何處以及他們已收集了什麼商品。對於員工之許可位準以及應用程式存取權可由零售商所決定。
6.1.1 標準分析
資料係由平台所收集且可被使用以多種方式。
1.衍生資料被用以履行對於以下各者之多種分析:商店、其所提供的購物經驗、以及消費者與產品、環境、及其他人的互動。
a.該資料被儲存並使用於背景中以履行商店與 消費者互動之分析。商店應用程式將顯示此資料之某些視覺化給零售商。其他資料被儲存並詢問(當想要該資料點時)。
2.熱映圖:
平台將以下視覺化:零售商的平面圖、貨架佈局、及其他商店環境,具有顯示多種活動之位準的重疊圖。
1.範例:
1.針對人走過、但並未觸摸任何產品的地點之地圖。
2.針對當與產品互動時人所站立的處所之地圖。
3.錯置的項目:
該平台係追蹤商店之SKU的所有者。當項目被放在不正確的位置時,該平台將知道該項目在哪裡並建立日誌。於某臨限值,或立即地,商店員工可被警示有關錯置的項目。替代地,員工可存取商店應用程式中之錯置的項目映圖。當方便時,員工可接著快速地找出並校正錯置的項目。
6.1.2 標準輔助
‧商店應用程式將顯示商店的平面圖。
‧其將顯示圖形以表示該商店中的每個人。
‧當該圖形被選擇(經由接觸、按壓、或其他手段)時,針對商店員工之相關資訊將被顯示。例如:購 物車項目(其已收集之項目)將出現在列表中。
‧假如該平台具有低於針對特定項目及針對一段時間週期之預定臨限值的信心位準(有關其係為某人所擁有(購物車)),則其圖形(目前為一個點)將指示該差異。該應用程式系使用顏色改變。綠色指示高信心而黃色/橘色係指示較低的信心。
‧具有商店應用程式之商店員工可被告知有關該較低的信心。他們可以去確認消費者的購物車是正確的。
‧透過商店應用程式,零售商之員工將能夠調整消費者的購物車項目(加入或刪除)。
6.1.3 標準LP
‧假如購物者正在使用商店應用程式,則其僅需離開商店且被收費。然而,假如其不是的話,則其將必須使用訪客應用程式以針對其購物車中的項目付款。
‧假如購物者在其離開商店的途中繞過訪客應用程式,則其圖形係指示其必須在離開前被靠近。該應用程式係使用顏色之改變至紅色。人員亦接收潛在損失之通知。
‧透過商店應用程式,零售商之員工將能夠調整消費者的購物車項目(加入或刪除)。
6.2 非商店應用程式
以下分析特徵係表示該平台之額外能力。
6.2.1 標準分析 1.產品互動:
產品互動之粒度分解,諸如:
a.針對各產品之互動時間與轉換比。
b.A/B比較(顏色、式樣,等等)。展示架上之某些較小產品具有多數選項,如顏色、口味,等等。
‧玫瑰金是否比銀***作更多?
‧藍色罐子是否比紅色罐子吸引更多互動?
2.方向性印象:
得知介於位置為基的印象與購物者的關注在何處之間的差異。假如其正觀看其在15英尺遠的產品(20秒),則該印象不應考量其位於何處,而應考量其正在觀看何處。
3.消費者辨識:
記住重複購物者及其相關的電子郵件地址(由零售商以多種方式來收集)和購物輪廓。
4.群組動態:
決定購物者何時在觀看其他人與產品互動。
‧回答該個人之後是否與該產品互動?
‧那些人是否一起進入商店、或者其可能是陌生人?
‧個人還是人群花比較多時間在商店中?
5.消費者回陣:
提供消費者目標資訊、公布商店經驗。此特徵可依各零售商而具有稍微不同的實施方式,取決於特定習慣及策略。其可能需要來自零售商之整合及/或開發以採取該特徵。
‧購物者將被詢問其是否希望接收有關其可能有興趣的產品之通知。該步驟可被整合與收集電子郵件之商店的方法。
‧在離開商店後,消費者可接收一封具有其在該商店中花了時間的產品之電子郵件。針對歷時、接觸、及目睹(方向印象)之互動臨限值將被決定。當該臨限值被滿足時,該些產品將進入她的列表且在她離開商店後不久被傳送給她。
此外,或替代地,購物者可在一段時間週期後被傳送一封電子郵件,其係提供折扣產品或其他特殊資訊。這些產品將是他們表達有興趣(但並未購買)的項目。
6.3 訪客應用程式
購物者應用程式自動地幫人們結帳,當他們離開商店時。然而,平台並未要求購物者需具有或使用購 物者應用程式才能使用該商店。
當購物者/人不具有或使用該購物者應用程式時,他們便走向服務台(iPad/平板或其他螢幕)或者他們走向預先安裝的自行結帳機器。該顯示(與該平台整合)將自動地顯示消費者的購物車。
購物者將有機會檢視其顯示了什麼。假如他們同意該顯示上之資訊,則他們可以將現金投入該機器(假如該能力被建入硬體(例如,自行結帳機器)的話)或者他們刷***或轉帳卡。他們可接著離開商店。
假如他們不同意該顯示,則商店人員被告知,藉由他們的選擇來透過觸控螢幕、按鈕、或其他手段提出質疑。(參見商店應用程式之下的商店輔助)
6.4 購物者應用程式
透過應用程式(購物者應用程式)之使用,消費者可帶著商品離開商店且自動地被收費並提供數位收據。購物者必須在當位於商店的購物區域內時之任何時刻開啟他們的應用程式。該平台將辨識其被顯示於購物者的裝置上之獨特影像。該平台將把他們綁定至他們的帳戶(消費者協會),且無論他們是否保持該應用程式為開啟,將能夠在他們位於商店的購物區域內的所有時間記得他們是誰。
當購物者收集項目時,購物者應用程式將顯示該些項目於購物者的購物車中。假如購物者想要,他們 可以觀看有關他們所拾起(亦即,加入到他們的購物車)之各項目的產品資訊。產品資訊被儲存以該商店的系統或者被加至平台。用以更新該資訊之能力(諸如提供產品折扣或顯示價錢)為一種零售商可請求/購買或開發的選項。
當購物者把項目放下時,則其被移除自後端上以及購物者應用程式上之其購物車。
假如購物者應用程式被開啟,且接著在消費者協會完成後被關閉,則該平台將維持購物者的購物車並正確地向他們收費(一旦他們離開該商店)。
購物者應用程式亦具有關於其開發準則之映射資訊。其可告知消費者去何處找該商店中之項目,假如該消費者藉由鍵入搜尋項目以請求該資訊的話。在稍後的日子,吾人將取得購物者的購物列表(手動地鍵入該應用程式或者透過其他智慧型系統)並顯示通過該商店以收集所有想要的項目之最快速路由。其他過濾器(諸如「裝袋偏好」)可被加入。裝袋偏好過濾器係容許購物者不依循最快速路由,而是先收集最強韌的項目,接著稍後收集較易碎的項目。
7.消費者的類型
會員消費者-第一類型的消費者係使用應用程式以登入該系統。該消費者被提示以一圖片且當她/他按壓時,該系統會將其鏈結至該消費者的內部id。假如該消費者具有帳戶,則該帳戶被自動地收費(當該消費者 走出該商店時)。此為會員為基的商店。
訪客消費者-不是每個商店將具有會員制度,或者消費者可能沒有智慧型手機或***。此類型的消費者將向服務台。該服務台將顯示該消費者所具有的項目且將要求該消費者放入金錢。該服務台將已得知有關該消費者已購買的所有項目。針對此類型的消費者,該系統能夠識別該消費者是否尚未針對購物車中的項目付款,並提示在門上的收銀機(在該消費者到達那裡之前)以讓收銀機得知有關未付款的項目。該系統亦可針對一個尚未被付款的項目提示,或者該系統具有關一個項目的低信心。此被稱為預測路徑找尋。
該系統係根據信心位準以將顏色碼(綠或黃)指派給行走在該商店中的消費者。綠色編碼的消費者是已登入該系統或者是該系統具有關於他們的高信心。黃色編碼的消費者具有其尚未被預測以高信心的一或更多項目。店員可觀看黃色點並按壓它們以識別問題項目,走向該消費者並解決問題。
8.分析
關於該消費者收集了一大群分析資訊,諸如消費者在特定貨架前方花費了多少時間。此外,該系統係追蹤消費者正觀看的位置(關於該系統之印象),以及消費者拾起並放回貨架的項目。此等分析目前可用於電子商務但尚未可用於零售商店。
9.功能性模組
以下為功能性模組之列表:
1.使用同步化相機之商店中影像的系統擷取陣列。
2.用以識別影像中之關節、及各別人的關節之集合的系統。
3.用以使用關節集合來產生新人的系統。
4.用以使用關節集合來刪除幽靈人的系統。
5.用以藉由追蹤關節集合來隨著時間推移追蹤各別人的系統。
6.用以針對該商店中所存在的各人產生區建議的系統,其係指示手中之項目的SKU數(WhatCNN)。
7.用以履行針對區提議之獲取/放下分析的系統,其係指示手中的項目是被拾起或是被放在貨架上(WhenCNN)。
8.用以使用區提議及獲取/放下分析來產生每人之存貨陣列的系統(與啟發法、人的已儲存關節位置、及商店貨架上之項目的預先計算映圖結合之WhenCNN的輸出)。
9.用以識別、追蹤及更新貨架上之錯置的項目之位置的系統。
10.用以使用像素為基的分析來追蹤對於貨架上之項目的改變(獲取/放下)之系統。
11.用以履行商店之存貨稽查的系統。
12.用以識別手中之多數項目的系統。
13.用以使用購物腳本來收集來自商店之項目影像資料的系統。
14.用以履行結帳並從會員消費者收款的系統。
15.用以履行結帳並從訪客消費者收款的系統。
16.用以藉由識別購物車中之未付款項目來履行損失預防的系統。
17.用以使用顏色碼來追蹤消費者以協助店員識別消費者的購物車中之不正確識別的項目之系統。
18.用以產生消費者購物分析之系統,其包括位置為基的印象、方向性印象、A/B分析、消費者辨識、群組動態,等等。
19.用以使用購物分析來產生針對性的消費者回陣之系統。
20.用以產生商店之熱映圖重疊圖來視覺化不同活動的系統。
文中所述之技術可支援無出納員結帳。去商店。取走東西。離開。
無出納員結帳是一種純機器視覺及深學習為基的系統。購物者跳過排隊而更快速且更輕易地獲得他們想要的。無RFID標籤。對於商店的後端系統無改變。可與銷售及存貨管理系統之第三方點(3rd party Point of Sale and Inventory Management systems)整合。
每一視頻饋送之即時30 FPS分析。
預置的、尖端的GPU叢集。
辨識購物者以及與他們互動的項目。
於範例實施例中並無網際網路依存性。
多數最先進深學習模型(包括專屬訂製演算法),用以首次解決機器視覺技術中的間隙。
技術及能力(Techniques & Capabilities)包括以下:
1.標準認知的機器學習管線係解決:
a)人檢測。
b)單體追蹤。
c)多數相機個人同意。
d)手檢測。
e)項目分類。
f)項目所有權解決。
結合這些技術,吾人可:
1.遍及其即時的購物經驗以追蹤所有人。
2.得知購物者手中有什麼、他們站在哪裡、以及他們放回了什麼。
3.得知購物者面對什麼方向以及多久。
4.辨識錯置的項目並履行24/7視覺推銷稽查。
可檢測購物者手中以及其籃子中確實有什麼。
學習你的商店:
對於特定商店及項目所訓練的訂製神經網路。訓練資料可再使用橫跨所有商店位置。
標準部署:
天花板相機必須被安裝以該商店之所有區域的雙重覆蓋。針對一般走道需要介於2與6之間的相機。
預置GPU叢集可配適入後端辦公室中的一或兩個伺服器架。
範例系統可整合與或者包括銷售及存貨管理系統之點。
使用同步化相機以擷取商店中之影像的陣列之第一系統、方法及電腦程式產品。
用以識別影像中之關節、及各別人的關節之集合的第二系統、方法及電腦程式產品。
使用關節集合以產生新人的第三系統、方法及電腦程式產品。
使用關節集合以刪除幽靈人的第四系統、方法及電腦程式產品。
藉由追蹤關節集合以隨著時間推移追蹤各別人的第五系統、方法及電腦程式產品。
用以針對該商店中所存在的各人產生區建議的第六系統、方法及電腦程式產品,其係指示手中之項目的SKU數(WhatCNN)。
用以履行針對區提議之獲取/放下分析的第 七系統、方法及電腦程式產品,其係指示手中的項目是被拾起或是被放在貨架上(WhenCNN)。
使用區提議及獲取/放下分析以產生每人之存貨陣列的第八系統、方法及電腦程式產品(例如,與啟發法、人的已儲存關節位置、及商店貨架上之項目的預先計算映圖結合之WhenCNN的輸出)。
用以識別、追蹤及更新貨架上之錯置的項目之位置的第九系統、方法及電腦程式產品。
使用像素為基的分析以追蹤對於貨架上之項目的改變(獲取/放下)之第十系統、方法及電腦程式產品。
用以履行商店之存貨稽查的第十一系統、方法及電腦程式產品。
用以識別手中之多數項目的第十二系統、方法及電腦程式產品。
使用購物腳本以收集來自商店之項目影像資料的第十三系統、方法及電腦程式產品。
用以履行結帳並從會員消費者收款的第十四系統、方法及電腦程式產品。
用以履行結帳並從訪客消費者收款的第十五系統、方法及電腦程式產品。
藉由識別購物車中之未付款項目以履行損失預防的第十六系統、方法及電腦程式產品。
使用(例如)顏色碼來追蹤消費者以協助店員識別消費者的購物車中之不正確識別的項目之第十七系 統、方法及電腦程式產品。
用以產生消費者購物分析之第十八系統、方法及電腦程式產品,該些分析包括一或更多位置為基的印象、方向性印象、A/B分析、消費者辨識、群組動態,等等。
使用購物分析以產生針對性的消費者回陣之第十九系統、方法及電腦程式產品。
用以產生商店之熱映圖重疊圖來視覺化不同活動的第二十系統、方法及電腦程式產品。
用於手檢測之第二十一系統、方法及電腦程式。
用於項目分類之第二十二系統、方法及電腦程式。
用於項目所有權解決之第二十三系統、方法及電腦程式。
用於項目人檢測之第二十四系統、方法及電腦程式。
用於項目單體追蹤之第二十五系統、方法及電腦程式。
用於項目多數相機個人同意之第二十六方法及電腦程式。
實質上如文中所述之用於無出納員結帳的第二十七系統、方法及電腦程式產品。
系統1-26之任一者與任何其他系統或以上列 出的系統1-26中之系統的組合。
文中所述者為一種用以追蹤真實空間之區域中藉由主體之存貨項目的放下及取走之方法,包含:使用複數相機以產生該真實空間中之相應觀看域的影像之各別序列,各相機之該觀看域係與該些複數相機中之至少一其他相機的該觀看域重疊;接收來自該些複數相機之影像的該些序列,並使用第一影像辨識引擎以處理影像來產生其識別該真實空間中之該些已識別主體的主體及位置之第一資料集;處理第一資料集以指明其包括影像之該些序列中的影像中之已識別主體的手之影像的定界框;接收來自該些複數相機之影像的該些序列,並處理該些影像中之該些已指明定界框以使用第二影像辨識引擎來產生該些已識別主體的手之分類,該分類包括該已識別主體是否正持有存貨項目、第一接近度類別,其係指示該已識別主體的手相對於貨架之位置、第二接近度類別,其係指示該已識別主體的手相對於該已識別主體的身體之位置、第三接近度類別,其係指示該已識別主體的手相對於與已識別主體關聯的籃子之位置、及可能存貨項目之識別符;以及處理已識別主體的影像之該些序列中的影像之集合的手之類別以檢測由已識別主體取走存貨項目以及由已識別主體放下存貨項目於存貨展示結構上。
於此描述的方法中,該些第一資料集可針對 各已識別主體包含具有真實空間中之座標的候選關節之集合。
此描述的方法可包括處理該些第一資料集以指明定界框包括根據針對各主體的候選關節之該些集合中的關節之位置以指明定界框。
於此描述的方法中,該些第一及第二影像辨識引擎之一者或兩者可包含卷積神經網路。
此描述的方法可包括使用卷積神經網路以處理定界框之該些類別。
描述一種電腦程式產品(及產品),其包括電腦可讀取記憶體,其包含非暫態資料儲存媒體,儲存於該記憶體中之電腦指令可由電腦所執行以追蹤真實空間之區域中藉由主體的存貨項目之放下及取走,藉由文中所述之程序的任一者。
描述一種系統,包含複數相機,其係產生包括主體的手之影像的序列;及處理系統,其係耦合至該些複數相機,該處理系統包括手影像辨識引擎,其係接收影像的該些序列以產生該手的類別於時間序列中、及邏輯,用以處理來自影像的該些序列之該手的該些類別來識別藉由該主體的動作,其中該動作為存貨項目的放下及取走之一。
該系統可包括邏輯,用以識別影像的該些序列中之該些影像中的該主體的關節之位置,及用以根據該些已識別關節來識別其包括該主體的該些手之相應影像中 的定界框。
電腦程式列表附錄係依附於本說明書,且包括用以實施本申請案中所提供之系統的某些部分之電腦程式的範例之部分。該附錄包括啟發法之範例,用以識別主體之關節及存貨項目。該附錄提出電腦程式碼,用以更新主體的購物車資料結構。該附錄亦包括電腦程式常式,用以計算於卷積神經網路之訓練期間的學習率。該附錄包括電腦程式常式,用以將來自卷積神經網路之主體的手之分類結果儲存於來自各相機之每影像框的每主體之每手的資料結構中。
112a-112n:影像辨識引擎
114:相機
800:資料結構
1502:循環緩衝器
1504:定界框產生器
1506:WhatCNN
1508:WhenCNN
1510:購物車資料結構
2602:第一影像處理器子系統
2604:第二影像處理器子系統
2606:第三影像處理器子系統
2608:選擇邏輯組件
2702:遮罩邏輯組件
2704:背景影像儲存
2706:因數化影像
2710:位元遮罩計算器
2714a-2714n:改變CNN
2718:協調邏輯組件
2720:日誌產生器
2724:遮罩產生器

Claims (30)

  1. 一種用以追蹤真實空間之區域中的多關節主體之系統,包含:複數相機,該些複數相機中之相機係產生該真實空間中之相應觀看域的影像之各別序列,各相機之該觀看域係與該些複數相機中之至少一其他相機的該觀看域重疊;及處理系統,其係耦合至該些複數相機,該處理系統包括:影像辨識引擎,接收來自該些複數相機之影像的該些序列,其係處理影像以產生關節資料結構的相應陣列,相應於特定影像之關節資料結構的該些陣列係藉由關節類型、該特定影像之時間、及該特定影像中之元件的座標來分類該些特定影像之該些元件;追蹤引擎,組態成接收相應於來自具有重疊觀看域之相機的影像之序列中的影像之關節資料結構的該些陣列,並將相應於不同序列中的影像之關節資料結構的該些陣列中之該些元件的該些座標變換為具有該真實空間中之座標的候選關節;及邏輯,用以將具有該真實空間中之座標的候選關節之集合識別為該真實空間中之多關節主體。
  2. 如申請專利範圍第1項之系統,其中該些影像辨識引擎包含卷積神經網路。
  3. 如申請專利範圍第1項之系統,其中該些影像辨識引擎係處理影像以產生針對該些影像之元件的信心陣列,其中影像之特定元件的信心陣列包括該特定元件之複數關節類型的信心值,及根據該信心陣列以選擇針對該特定元件之該關節資料結構的關節類型。
  4. 如申請專利範圍第1項之系統,其中用以識別候選關節之集合的該邏輯包含根據該真實空間中之主體的關節之間的物理關係之啟發函數,用以將候選關節之集合識別為多關節主體。
  5. 如申請專利範圍第4項之系統,包括邏輯,用以儲存其被識別為該些多關節主體之關節的該些集合,及其中用以識別候選關節之集合的該邏輯包括邏輯,用以判定在特定時間所取得之影像中所識別的候選關節是否符合其被識別為先前影像中之多關節主體的候選關節之該些集合之一的成員。
  6. 如申請專利範圍第1項之系統,進一步包含邏輯,用以隨著時間經過處理其被識別為該些多關節主體之候選關節的該些集合,以檢測該等已識別的多關節主體與真實空間之區域中的存貨項目之互動事件。
  7. 如申請專利範圍第1項之系統,其中該些複數相機包含配置於上方並具有涵蓋真實空間中之該區域的各別部分之觀看域的相機,而其被識別為多關節主體之候選關節的集合之成員的該真實空間中之該些座標係識別該多關節主體之真實空間之該區域中的位置。
  8. 如申請專利範圍第1項之系統,包括邏輯,用以追蹤複數多關節主體在真實空間之該區域中之位置。
  9. 如申請專利範圍第8項之系統,包括邏輯,用以判定該些複數多關節主體中之多關節主體何時離開真實空間之該區域。
  10. 如申請專利範圍第1項之系統,包括邏輯,用以追蹤其為被識別為特定多關節主體的候選關節之集合的成員之多數候選關節在真實空間之該區域中的位置。
  11. 一種用以追蹤真實空間之區域中的多關節主體之方法,包含:使用複數相機以產生該真實空間中之相應觀看域的影像之各別序列,各相機之該觀看域係與該些複數相機中之至少一其他相機的該觀看域重疊;處理影像之該些序列中的影像以產生關節資料結構的相應陣列,相應於特定影像之關節資料結構的該些陣列係 藉由關節類型、該特定影像之時間、及該特定影像中之元件的座標來分類該些特定影像之該些元件;將相應於不同序列中的影像之關節資料結構的該些陣列中之該些元件的該些座標變換為具有該真實空間中之座標的候選關節;及將具有該真實空間中之座標的候選關節之集合識別為該真實空間中之多關節主體。
  12. 如申請專利範圍第11項之方法,其中該處理影像包括使用卷積神經網路。
  13. 如申請專利範圍第11項之方法,其中該處理影像包括產生針對該些影像之元件的信心陣列,其中影像之特定元件的信心陣列包括該特定元件之複數關節類型的信心值,及根據該信心陣列以選擇針對該特定元件之該關節資料結構的關節類型。
  14. 如申請專利範圍第11項之方法,其中該識別候選關節之集合包含應用根據該真實空間中之主體的關節之間的物理關係之啟發函數以將候選關節之集合識別為多關節主體。
  15. 如申請專利範圍第14項之方法,包括儲存其被識別為多關節主體之關節的該些集合,及其中識別候選關節之集 合包括判定在特定時間所取得之影像中所識別的候選關節是否符合其被識別為先前影像中之多關節主體的候選關節之該些集合之一的成員。
  16. 如申請專利範圍第11項之方法,其中該影像之該些序列被同步化。
  17. 如申請專利範圍第11項之方法,其中該些複數相機包含配置於上方並具有涵蓋真實空間中之該區域的各別部分之觀看域的相機,而其被識別為多關節主體之候選關節的集合之成員的該真實空間中之該些座標係識別該多關節主體之真實空間之該區域中的位置。
  18. 如申請專利範圍第11項之方法,包括追蹤複數多關節主體在真實空間之該區域中的位置。
  19. 如申請專利範圍第18項之方法,包括判定該些複數多關節主體中之多關節主體何時離開真實空間之該區域。
  20. 如申請專利範圍第11項之方法,包括追蹤其為被識別為特定多關節主體的候選關節之集合的成員之多數候選關節在真實空間之該區域中的位置。
  21. 一種電腦程式產品,包含: 電腦可讀取記憶體,其包含非暫態資料儲存媒體;及儲存於該記憶體中之電腦指令,其可由電腦所執行以藉由一程序來追蹤真實空間之區域中的多關節主體,該程序包括:使用來自具有該真實空間中之相應觀看域的複數相機的影像之序列,各相機之該觀看域係與該些複數相機中之至少一其他相機的該觀看域重疊;處理影像之該些序列中的影像以產生關節資料結構的相應陣列,相應於特定影像之關節資料結構的該些陣列係藉由關節類型、該特定影像之時間、及該特定影像中之元件的座標來分類該些特定影像之該些元件;將相應於不同序列中的影像之關節資料結構的該些陣列中之該些元件的該些座標變換為具有該真實空間中之座標的候選關節;及將具有該真實空間中之座標的候選關節之集合識別為該真實空間中之多關節主體。
  22. 如申請專利範圍第21項之產品,其中該處理影像包括使用卷積神經網路。
  23. 如申請專利範圍第21項之產品,其中該處理該些影像包括產生針對該些影像之元件的信心陣列,其中影像之特定元件的信心陣列包括該特定元件之複數關節類型的信心值,及根據該信心陣列以選擇針對該特定元件之該關節資 料結構的關節類型。
  24. 如申請專利範圍第21項之產品,其中該識別候選關節之集合包含應用根據該真實空間中之主體的關節之間的物理關係之啟發函數以將候選關節之集合識別為多關節主體。
  25. 如申請專利範圍第24項之產品,包括儲存其被識別為多關節主體之關節的該些集合,及其中識別候選關節之集合包括判定在特定時間所取得之影像中所識別的候選關節是否符合其被識別為先前影像中之多關節主體的候選關節之該些集合之一的成員。
  26. 如申請專利範圍第21項之產品,其中該影像之該些序列被同步化。
  27. 如申請專利範圍第21項之產品,其中該些複數相機包含配置於上方並具有涵蓋真實空間中之該區域的各別部分之觀看域的相機,而其被識別為多關節主體之候選關節的集合之成員的該真實空間中之該些座標係識別該多關節主體之真實空間之該區域中的位置。
  28. 如申請專利範圍第21項之產品,包括追蹤複數多關節主體在真實空間之該區域中的位置。
  29. 如申請專利範圍第28項之產品,包括判定該些複數多關節主體中之多關節主體何時離開真實空間之該區域。
  30. 如申請專利範圍第21項之產品,包括追蹤其為被識別為特定多關節主體的候選關節之集合的成員之多數候選關節在真實空間之該區域中的位置。
TW107126341A 2017-08-07 2018-07-30 用以追蹤真實空間之區域中的多關節主體之系統,方法及電腦程式產品 TWI773797B (zh)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US201762542077P 2017-08-07 2017-08-07
US62/542,077 2017-08-07
US15/847,796 US10055853B1 (en) 2017-08-07 2017-12-19 Subject identification and tracking using image recognition
US15/847,796 2017-12-19
US15/907,112 US10133933B1 (en) 2017-08-07 2018-02-27 Item put and take detection using image recognition
US15/907,112 2018-02-27
US15/945,473 2018-04-04
US15/945,473 US10474988B2 (en) 2017-08-07 2018-04-04 Predicting inventory events using foreground/background processing
US15/945,466 2018-04-04
US15/945,466 US10127438B1 (en) 2017-08-07 2018-04-04 Predicting inventory events using semantic diffing

Publications (2)

Publication Number Publication Date
TW201911119A TW201911119A (zh) 2019-03-16
TWI773797B true TWI773797B (zh) 2022-08-11

Family

ID=65271305

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107126341A TWI773797B (zh) 2017-08-07 2018-07-30 用以追蹤真實空間之區域中的多關節主體之系統,方法及電腦程式產品

Country Status (5)

Country Link
EP (4) EP3665647A4 (zh)
JP (4) JP7228569B2 (zh)
CA (4) CA3072062A1 (zh)
TW (1) TWI773797B (zh)
WO (4) WO2019032305A2 (zh)

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3454698B1 (en) 2016-05-09 2024-04-17 Grabango Co. System and method for computer vision driven applications within an environment
US10615994B2 (en) 2016-07-09 2020-04-07 Grabango Co. Visually automated interface integration
CA3052292A1 (en) 2017-02-10 2018-08-16 Grabango Co. A dynamic customer checkout experience within an automated shopping environment
GB2560177A (en) 2017-03-01 2018-09-05 Thirdeye Labs Ltd Training a computational neural network
GB2560387B (en) 2017-03-10 2022-03-09 Standard Cognition Corp Action identification using neural networks
EP3610469A4 (en) 2017-05-10 2021-04-28 Grabango Co. SERIES CONFIGURED CAMERA ARRANGEMENT FOR EFFICIENT USE
US10740742B2 (en) 2017-06-21 2020-08-11 Grabango Co. Linked observed human activity on video to a user account
US11250376B2 (en) 2017-08-07 2022-02-15 Standard Cognition, Corp Product correlation analysis using deep learning
US10650545B2 (en) 2017-08-07 2020-05-12 Standard Cognition, Corp. Systems and methods to check-in shoppers in a cashier-less store
US11023850B2 (en) 2017-08-07 2021-06-01 Standard Cognition, Corp. Realtime inventory location management using deep learning
US10474988B2 (en) 2017-08-07 2019-11-12 Standard Cognition, Corp. Predicting inventory events using foreground/background processing
US10853965B2 (en) 2017-08-07 2020-12-01 Standard Cognition, Corp Directional impression analysis using deep learning
US11200692B2 (en) 2017-08-07 2021-12-14 Standard Cognition, Corp Systems and methods to check-in shoppers in a cashier-less store
US11232687B2 (en) 2017-08-07 2022-01-25 Standard Cognition, Corp Deep learning-based shopper statuses in a cashier-less store
US10474991B2 (en) 2017-08-07 2019-11-12 Standard Cognition, Corp. Deep learning-based store realograms
US20190079591A1 (en) 2017-09-14 2019-03-14 Grabango Co. System and method for human gesture processing from video input
US10963704B2 (en) 2017-10-16 2021-03-30 Grabango Co. Multiple-factor verification for vision-based systems
US11481805B2 (en) 2018-01-03 2022-10-25 Grabango Co. Marketing and couponing in a retail environment using computer vision
US11568554B2 (en) 2019-10-25 2023-01-31 7-Eleven, Inc. Contour-based detection of closely spaced objects
US11004219B1 (en) 2019-10-25 2021-05-11 7-Eleven, Inc. Vector-based object re-identification during image tracking
US10885642B1 (en) 2019-10-25 2021-01-05 7-Eleven, Inc. Scalable position tracking system for tracking position in large spaces
US10956777B1 (en) 2019-10-25 2021-03-23 7-Eleven, Inc. Shelf position calibration in a global coordinate system using a sensor array
US10614318B1 (en) 2019-10-25 2020-04-07 7-Eleven, Inc. Sensor mapping to a global coordinate system using a marker grid
US11367124B2 (en) 2019-10-25 2022-06-21 7-Eleven, Inc. Detecting and identifying misplaced items using a sensor array
US10783762B1 (en) 2019-10-25 2020-09-22 7-Eleven, Inc. Custom rack for scalable position tracking system
US11188763B2 (en) 2019-10-25 2021-11-30 7-Eleven, Inc. Topview object tracking using a sensor array
US11030756B2 (en) 2018-10-26 2021-06-08 7-Eleven, Inc. System and method for position tracking using edge computing
US11288518B2 (en) 2019-10-25 2022-03-29 7-Eleven, Inc. Tracking positions using a scalable position tracking system
US11080529B2 (en) 2019-10-25 2021-08-03 7-Eleven, Inc. Determining candidate object identities during image tracking
US10878585B1 (en) 2019-10-25 2020-12-29 7-Eleven, Inc. Sensor array for scalable position tracking system
US11062147B2 (en) 2019-10-25 2021-07-13 7-Eleven, Inc. Object assignment during image tracking
US11176686B2 (en) 2019-10-25 2021-11-16 7-Eleven, Inc. Image-based action detection using contour dilation
US10769450B1 (en) 2019-10-25 2020-09-08 7-Eleven, Inc. Tracking positions using a scalable position tracking system
US11113837B2 (en) 2019-10-25 2021-09-07 7-Eleven, Inc. Sensor mapping to a global coordinate system
US11257225B2 (en) 2019-10-25 2022-02-22 7-Eleven, Inc. Sensor mapping to a global coordinate system using homography
US10789720B1 (en) 2019-10-25 2020-09-29 7-Eleven, Inc. Multi-camera image tracking on a global plane
US10621444B1 (en) 2019-10-25 2020-04-14 7-Eleven, Inc. Action detection during image tracking
US11308630B2 (en) 2019-10-25 2022-04-19 7-Eleven, Inc. Auto-exclusion zone for contour-based object detection
US11107226B2 (en) 2019-10-25 2021-08-31 7-Eleven, Inc. Object re-identification during image tracking
US11430046B2 (en) 2019-10-25 2022-08-30 7-Eleven, Inc. Identifying non-uniform weight objects using a sensor array
US11132550B2 (en) 2019-10-25 2021-09-28 7-Eleven, Inc. Detecting shelf interactions using a sensor array
US10943287B1 (en) 2019-10-25 2021-03-09 7-Eleven, Inc. Topview item tracking using a sensor array
WO2020092450A1 (en) 2018-10-29 2020-05-07 Grabango Co. Commerce automation for a fueling station
US11507933B2 (en) 2019-03-01 2022-11-22 Grabango Co. Cashier interface for linking customers to virtual data
US11232575B2 (en) 2019-04-18 2022-01-25 Standard Cognition, Corp Systems and methods for deep learning-based subject persistence
DE102019209463A1 (de) * 2019-06-27 2020-12-31 Robert Bosch Gmbh Verfahren zur Bestimmung eines Vertrauenswertes eines Objektes einer Klasse
CN110503092B (zh) * 2019-07-22 2023-07-14 天津科技大学 基于领域适应的改进ssd监控视频目标检测方法
CN110705274B (zh) * 2019-09-06 2023-03-24 电子科技大学 基于实时学习的融合型词义嵌入方法
JP6982259B2 (ja) * 2019-09-19 2021-12-17 キヤノンマーケティングジャパン株式会社 情報処理装置、情報処理方法、プログラム
CN112560834B (zh) * 2019-09-26 2024-05-10 武汉金山办公软件有限公司 一种坐标预测模型生成方法、装置及图形识别方法、装置
US11893759B2 (en) 2019-10-24 2024-02-06 7-Eleven, Inc. Homography error correction using a disparity mapping
US11798065B2 (en) 2019-10-25 2023-10-24 7-Eleven, Inc. Tool for generating a virtual store that emulates a physical store
US11674792B2 (en) 2019-10-25 2023-06-13 7-Eleven, Inc. Sensor array with adjustable camera positions
US10607080B1 (en) 2019-10-25 2020-03-31 7-Eleven, Inc. Feedback and training for a machine learning algorithm configured to determine customer purchases during a shopping session at a physical store
US11887337B2 (en) 2019-10-25 2024-01-30 7-Eleven, Inc. Reconfigurable sensor array
US11386647B2 (en) 2019-10-25 2022-07-12 7-Eleven, Inc. System and method for processing a refund request arising from a shopping session in a cashierless store
US10922555B1 (en) 2019-10-25 2021-02-16 7-Eleven, Inc. Customer-based video feed
US11380091B2 (en) 2019-10-25 2022-07-05 7-Eleven, Inc. System and method for populating a virtual shopping cart based on a verification of algorithmic determinations of items selected during a shopping session in a physical store
US11501454B2 (en) 2019-10-25 2022-11-15 7-Eleven, Inc. Mapping wireless weight sensor array for item detection and identification
US11887372B2 (en) 2019-10-25 2024-01-30 7-Eleven, Inc. Image-based self-serve beverage detection and assignment
US11551454B2 (en) 2019-10-25 2023-01-10 7-Eleven, Inc. Homography error correction using marker locations
US11587243B2 (en) 2019-10-25 2023-02-21 7-Eleven, Inc. System and method for position tracking using edge computing
US11100717B2 (en) 2019-10-25 2021-08-24 7-Eleven, Inc. System and method for presenting a virtual store shelf that emulates a physical store shelf
US11023740B2 (en) 2019-10-25 2021-06-01 7-Eleven, Inc. System and method for providing machine-generated tickets to facilitate tracking
US11017229B2 (en) 2019-10-25 2021-05-25 7-Eleven, Inc. System and method for selectively verifying algorithmically populated shopping carts
US11113541B2 (en) 2019-10-25 2021-09-07 7-Eleven, Inc. Detection of object removal and replacement from a shelf
US11023728B1 (en) 2019-10-25 2021-06-01 7-Eleven, Inc. Machine learning algorithm trained to identify algorithmically populated shopping carts as candidates for verification
WO2021081297A1 (en) 2019-10-25 2021-04-29 7-Eleven, Inc. Action detection during image tracking
US11003918B1 (en) 2019-10-25 2021-05-11 7-Eleven, Inc. Event trigger based on region-of-interest near hand-shelf interaction
US11023741B1 (en) 2019-10-25 2021-06-01 7-Eleven, Inc. Draw wire encoder based homography
US11893757B2 (en) 2019-10-25 2024-02-06 7-Eleven, Inc. Self-serve beverage detection and assignment
US11450011B2 (en) 2019-10-25 2022-09-20 7-Eleven, Inc. Adaptive item counting algorithm for weight sensor using sensitivity analysis of the weight sensor
US11341569B2 (en) 2019-10-25 2022-05-24 7-Eleven, Inc. System and method for populating a virtual shopping cart based on video of a customer's shopping session at a physical store
US10861085B1 (en) 2019-10-25 2020-12-08 7-Eleven, Inc. Apparatus, system and method for populating a virtual shopping cart based on video of a customers shopping session at a physical store
US11557124B2 (en) 2019-10-25 2023-01-17 7-Eleven, Inc. Homography error correction
US11403852B2 (en) 2019-10-25 2022-08-02 7-Eleven, Inc. Object detection based on wrist-area region-of-interest
TWI703837B (zh) * 2019-11-29 2020-09-01 中華電信股份有限公司 用於管理雲端資料中心的管理系統和管理方法
TWI769420B (zh) * 2019-12-11 2022-07-01 財團法人工業技術研究院 智慧貨架圖產生方法與系統
JP7370845B2 (ja) * 2019-12-17 2023-10-30 東芝テック株式会社 販売管理装置及びその制御プログラム
US11093736B1 (en) * 2020-01-24 2021-08-17 Synchrony Bank Systems and methods for machine vision based object recognition
US11651516B2 (en) 2020-02-20 2023-05-16 Sony Group Corporation Multiple view triangulation with improved robustness to observation errors
JP7400532B2 (ja) * 2020-02-26 2023-12-19 株式会社村田製作所 複合炭素材およびその製造方法、リチウムイオン二次電池用負極活物質並びにリチウムイオン二次電池
JP7400533B2 (ja) * 2020-02-26 2023-12-19 株式会社村田製作所 複合炭素材およびその製造方法、電極作製用スラリー、電極塗膜並びにリチウムイオン二次電池
EP3882857A1 (en) 2020-03-19 2021-09-22 Sony Group Corporation Extrinsic calibration of multi-camera system
CN111461141B (zh) * 2020-03-30 2023-08-29 歌尔科技有限公司 一种设备位姿计算方法装置及设备
WO2021230123A1 (ja) * 2020-05-12 2021-11-18 日本電気株式会社 店舗システム、情報処理装置、情報処理方法、およびプログラム
US11303853B2 (en) 2020-06-26 2022-04-12 Standard Cognition, Corp. Systems and methods for automated design of camera placement and cameras arrangements for autonomous checkout
US11361468B2 (en) 2020-06-26 2022-06-14 Standard Cognition, Corp. Systems and methods for automated recalibration of sensors for autonomous checkout
CN114120083A (zh) * 2020-08-12 2022-03-01 东芝泰格有限公司 图像识别装置及存储介质、图像识别方法
CN112508962A (zh) * 2020-09-27 2021-03-16 绍兴文理学院 基于时间关联图像序列的目标图像区域子序列分离方法
CN112767252B (zh) * 2021-01-26 2022-08-02 电子科技大学 一种基于卷积神经网络的图像超分辨率重建方法
EP4356295A1 (en) * 2021-06-17 2024-04-24 Abb Schweiz Ag Robotic sytems and methods used to update training of a neural network based upon neural network outputs
JP2023031618A (ja) * 2021-08-25 2023-03-09 株式会社東芝 物品管理装置、物品管理方法、物品管理システム及びプログラム
FR3128048A1 (fr) * 2021-10-13 2023-04-14 Mo-Ka Borne d’encaissement automatique intelligente
JP2023064427A (ja) * 2021-10-26 2023-05-11 富士通株式会社 推論プログラム、学習プログラム、推論方法および学習方法
CN114444895A (zh) * 2021-12-31 2022-05-06 深圳云天励飞技术股份有限公司 清洁质量评估方法及相关设备
JP7276535B1 (ja) * 2022-02-22 2023-05-18 富士通株式会社 情報処理プログラム、情報処理方法、および情報処理装置
CN114842045B (zh) * 2022-04-01 2024-04-16 深圳市九天睿芯科技有限公司 目标跟踪方法及装置
WO2024054784A1 (en) * 2022-09-08 2024-03-14 Digimarc Corporation Image analysis methods and arrangements
CN116403269B (zh) * 2023-05-17 2024-03-26 智慧眼科技股份有限公司 一种遮挡人脸解析方法、***、设备及计算机存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080159634A1 (en) * 2006-12-30 2008-07-03 Rajeev Sharma Method and system for automatically analyzing categories in a physical space based on the visual characterization of people
US20120159290A1 (en) * 2010-12-17 2012-06-21 Microsoft Corporation Validation analysis of human target
TW201228380A (en) * 2010-12-16 2012-07-01 Microsoft Corp Comprehension and intent-based content for augmented reality displays
US20130156260A1 (en) * 2011-12-15 2013-06-20 Microsoft Corporation Problem states for pose tracking pipeline

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3584334B2 (ja) * 1997-12-05 2004-11-04 オムロン株式会社 人間検出追跡システムおよび人間検出追跡方法
US7058204B2 (en) 2000-10-03 2006-06-06 Gesturetek, Inc. Multiple camera control system
US6678413B1 (en) * 2000-11-24 2004-01-13 Yiqing Liang System and method for object identification and behavior characterization using video analysis
US7688349B2 (en) * 2001-12-07 2010-03-30 International Business Machines Corporation Method of detecting and tracking groups of people
JP2004171241A (ja) * 2002-11-20 2004-06-17 Casio Comput Co Ltd 不正監視システムおよびプログラム
JP2004171240A (ja) * 2002-11-20 2004-06-17 Casio Comput Co Ltd 不正監視システムおよびプログラム
JP4125634B2 (ja) 2003-05-26 2008-07-30 Necソフト株式会社 顧客情報収集管理方法及びそのシステム
KR100519782B1 (ko) * 2004-03-04 2005-10-07 삼성전자주식회사 스테레오 카메라를 이용한 사람 검출 방법 및 장치
JP2006126926A (ja) * 2004-10-26 2006-05-18 Canon Inc 顧客データ作成システム、プログラムおよび方法
US20090041297A1 (en) * 2005-05-31 2009-02-12 Objectvideo, Inc. Human detection and tracking for security applications
GB0617604D0 (en) * 2006-09-07 2006-10-18 Zeroshift Ltd Inventory control system
JP2008176504A (ja) * 2007-01-17 2008-07-31 Toshiba Corp 物体検出装置及びその方法
US7961946B2 (en) 2007-05-15 2011-06-14 Digisensory Technologies Pty Ltd Method and system for background estimation in localization and tracking of objects in a smart video camera
US20090217315A1 (en) * 2008-02-26 2009-08-27 Cognovision Solutions Inc. Method and system for audience measurement and targeting media
JP4970195B2 (ja) 2007-08-23 2012-07-04 株式会社日立国際電気 人物追跡システム、人物追跡装置および人物追跡プログラム
US8098888B1 (en) 2008-01-28 2012-01-17 Videomining Corporation Method and system for automatic analysis of the trip of people in a retail space using multiple cameras
DE102008007199A1 (de) * 2008-02-01 2009-08-06 Robert Bosch Gmbh Maskierungsmodul für ein Videoüberwachungssystem, Verfahren zur Maskierung von selektierten Objekten sowie Computerprogramm
JP4585580B2 (ja) * 2008-04-24 2010-11-24 東芝テック株式会社 人物動線追跡システム
JP2010002997A (ja) 2008-06-18 2010-01-07 Toshiba Tec Corp 人物行動分析装置及び人物行動分析プログラム
US8009863B1 (en) * 2008-06-30 2011-08-30 Videomining Corporation Method and system for analyzing shopping behavior using multiple sensor tracking
US8180107B2 (en) * 2009-02-13 2012-05-15 Sri International Active coordinated tracking for multi-camera systems
JP2011209966A (ja) 2010-03-29 2011-10-20 Sony Corp 画像処理装置および方法、並びにプログラム
US20110320322A1 (en) * 2010-06-25 2011-12-29 Symbol Technologies, Inc. Inventory monitoring using complementary modes for item identification
JP2012123667A (ja) 2010-12-09 2012-06-28 Panasonic Corp 姿勢推定装置および姿勢推定方法
JP2012147083A (ja) * 2011-01-07 2012-08-02 Sony Corp 画像処理装置、画像処理方法、およびプログラム
US8890357B2 (en) 2011-01-17 2014-11-18 Balboa Water Group, Inc. Bathing system transformer device with first and second low voltage output power connections
WO2012155279A2 (en) 2011-05-13 2012-11-22 Liberovision Ag Silhouette-based pose estimation
US9177195B2 (en) * 2011-09-23 2015-11-03 Shoppertrak Rct Corporation System and method for detecting, tracking and counting human objects of interest using a counting system and a data capture device
US9247211B2 (en) * 2012-01-17 2016-01-26 Avigilon Fortress Corporation System and method for video content analysis using depth sensing
US9124778B1 (en) 2012-08-29 2015-09-01 Nomi Corporation Apparatuses and methods for disparity-based tracking and analysis of objects in a region of interest
JP2014154037A (ja) 2013-02-12 2014-08-25 Toshiba Tec Corp 画像読取装置
US10176456B2 (en) * 2013-06-26 2019-01-08 Amazon Technologies, Inc. Transitioning items from a materials handling facility
US10268983B2 (en) 2013-06-26 2019-04-23 Amazon Technologies, Inc. Detecting item interaction and movement
JP5632512B1 (ja) * 2013-07-02 2014-11-26 パナソニック株式会社 人物行動分析装置、人物行動分析システムおよび人物行動分析方法、ならびに監視装置
US10290031B2 (en) * 2013-07-24 2019-05-14 Gregorio Reid Method and system for automated retail checkout using context recognition
JP5834196B2 (ja) 2014-02-05 2015-12-16 パナソニックIpマネジメント株式会社 モニタリング装置、モニタリングシステムおよびモニタリング方法
US9262681B1 (en) * 2014-11-19 2016-02-16 Amazon Technologies, Inc. Probabilistic registration of interactions, actions or activities from multiple views
JP2016144049A (ja) 2015-02-02 2016-08-08 キヤノン株式会社 画像処理装置、画像処理方法、およびプログラム
JP5988225B2 (ja) 2015-02-25 2016-09-07 パナソニックIpマネジメント株式会社 モニタリング装置およびモニタリング方法
GB2542118B (en) * 2015-09-04 2021-05-19 Toshiba Europe Ltd A method, apparatus, system, and computer readable medium for detecting change to a structure
JP6590609B2 (ja) * 2015-09-15 2019-10-16 キヤノン株式会社 画像解析装置及び画像解析方法
WO2017123920A1 (en) * 2016-01-14 2017-07-20 RetailNext, Inc. Detecting, tracking and counting objects in videos

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080159634A1 (en) * 2006-12-30 2008-07-03 Rajeev Sharma Method and system for automatically analyzing categories in a physical space based on the visual characterization of people
TW201228380A (en) * 2010-12-16 2012-07-01 Microsoft Corp Comprehension and intent-based content for augmented reality displays
US20120159290A1 (en) * 2010-12-17 2012-06-21 Microsoft Corporation Validation analysis of human target
US20130156260A1 (en) * 2011-12-15 2013-06-20 Microsoft Corporation Problem states for pose tracking pipeline

Also Published As

Publication number Publication date
EP3665615A4 (en) 2020-12-30
WO2019032305A2 (en) 2019-02-14
WO2019032305A3 (en) 2019-03-21
EP3665649A1 (en) 2020-06-17
TW201911119A (zh) 2019-03-16
EP3665649A4 (en) 2021-01-06
EP3665648A2 (en) 2020-06-17
EP3665648A4 (en) 2020-12-30
CA3072062A1 (en) 2019-02-14
JP2020530167A (ja) 2020-10-15
JP7208974B2 (ja) 2023-01-19
WO2019032306A1 (en) 2019-02-14
EP3665647A4 (en) 2021-01-06
JP2020530170A (ja) 2020-10-15
JP2020530168A (ja) 2020-10-15
JP2021503636A (ja) 2021-02-12
CA3072058A1 (en) 2019-02-14
JP7181922B2 (ja) 2022-12-01
EP3665647A1 (en) 2020-06-17
WO2019032306A9 (en) 2020-03-19
JP7228569B2 (ja) 2023-02-24
WO2019032307A1 (en) 2019-02-14
CA3072063A1 (en) 2019-02-14
EP3665615A1 (en) 2020-06-17
JP7191088B2 (ja) 2022-12-16
WO2019032304A1 (en) 2019-02-14
CA3072056A1 (en) 2019-02-14

Similar Documents

Publication Publication Date Title
TWI773797B (zh) 用以追蹤真實空間之區域中的多關節主體之系統,方法及電腦程式產品
US12026665B2 (en) Identifying inventory items using multiple confidence levels
US10127438B1 (en) Predicting inventory events using semantic diffing
US10133933B1 (en) Item put and take detection using image recognition
US10055853B1 (en) Subject identification and tracking using image recognition
US11544866B2 (en) Directional impression analysis using deep learning
US11250376B2 (en) Product correlation analysis using deep learning
US20200074432A1 (en) Deep learning-based actionable digital receipts for cashier-less checkout
WO2020023926A1 (en) Directional impression analysis using deep learning
US20210350555A1 (en) Systems and methods for detecting proximity events