TW201741937A - 決定行動裝置的現行位置的技術 - Google Patents
決定行動裝置的現行位置的技術 Download PDFInfo
- Publication number
- TW201741937A TW201741937A TW106105773A TW106105773A TW201741937A TW 201741937 A TW201741937 A TW 201741937A TW 106105773 A TW106105773 A TW 106105773A TW 106105773 A TW106105773 A TW 106105773A TW 201741937 A TW201741937 A TW 201741937A
- Authority
- TW
- Taiwan
- Prior art keywords
- main frame
- capture
- frames
- frame
- main
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000013527 convolutional neural network Methods 0.000 claims description 134
- 238000003860 storage Methods 0.000 claims description 76
- 230000000007 visual effect Effects 0.000 claims description 49
- 238000005070 sampling Methods 0.000 claims description 22
- 238000011156 evaluation Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 18
- 230000009471 action Effects 0.000 claims description 14
- 230000003190 augmentative effect Effects 0.000 claims description 4
- 230000036961 partial effect Effects 0.000 claims description 2
- 238000013528 artificial neural network Methods 0.000 claims 1
- 230000015654 memory Effects 0.000 description 96
- 238000012545 processing Methods 0.000 description 75
- 238000010586 diagram Methods 0.000 description 44
- 230000000875 corresponding effect Effects 0.000 description 22
- 230000033001 locomotion Effects 0.000 description 22
- 238000013461 design Methods 0.000 description 21
- 239000000872 buffer Substances 0.000 description 20
- 238000004422 calculation algorithm Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 16
- 239000000463 material Substances 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 11
- 238000003491 array Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 9
- 230000011664 signaling Effects 0.000 description 9
- 238000004519 manufacturing process Methods 0.000 description 7
- 238000009877 rendering Methods 0.000 description 7
- 239000007787 solid Substances 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 6
- 230000005291 magnetic effect Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 208000019300 CLIPPERS Diseases 0.000 description 4
- 238000007792 addition Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 208000021930 chronic lymphocytic inflammation with pontine perivascular enhancement responsive to steroids Diseases 0.000 description 4
- 230000002596 correlated effect Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 235000012431 wafers Nutrition 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 101000912503 Homo sapiens Tyrosine-protein kinase Fgr Proteins 0.000 description 2
- 102100026150 Tyrosine-protein kinase Fgr Human genes 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000005294 ferromagnetic effect Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 229920000642 polymer Polymers 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 235000009854 Cucurbita moschata Nutrition 0.000 description 1
- 240000001980 Cucurbita pepo Species 0.000 description 1
- 235000009852 Cucurbita pepo Nutrition 0.000 description 1
- 235000014676 Phragmites communis Nutrition 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000007334 copolymerization reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000000227 grinding Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003340 mental effect Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 230000003014 reinforcing effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 125000006850 spacer group Chemical group 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 235000020354 squash Nutrition 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/10—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
- G01C21/12—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
- G01C21/16—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
- G01C21/165—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
- G01C21/1656—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with passive imaging devices, e.g. cameras
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/16—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using electromagnetic waves other than radio waves
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
- G05D1/028—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using a RF signal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/248—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/38—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
- G01S19/39—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/42—Determining position
- G01S19/48—Determining position by combining or switching between position solutions derived from the satellite radio beacon positioning system and position solutions derived from a further system
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S2205/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S2205/01—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations specially adapted for specific applications
- G01S2205/02—Indoor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Aviation & Aerospace Engineering (AREA)
- Multimedia (AREA)
- Electromagnetism (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Image Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
Abstract
各種實施例係有關於用以決定行動裝置的現行位置的技術。一種設備包含:SLAM候選元件,用以識別第一候選主圖框,其匹配現行捕捉圖框離開由間隔為主的主圖框組第一程度,該間隔為主的主圖框組具有由確定區域內的周遭的行動裝置攝影機以循環間隔所捕捉的多重早先捕捉圖框所選擇的主圖框;CNN候選元件,用以識別第二候選主圖框,其匹配該現行捕捉圖案離開差異為主的主圖框組第二程度該差異為主的主圖框組具有根據已經包含其中所有主圖框之差異程度,由該多重早先捕捉圖框所選出的主圖框;及位置評估元件,用以由該現行位置與第一與第二候選主圖框的位置間之差異評估,決定行動裝置的現行位置。
Description
本發明關係於決定行動裝置的現行位置的技術。
能夠決定裝置本身在地理或其他實體區域內的現行位置的裝置已經愈來愈常見。很多此等裝置利用三角定位技術與自定位衛星及/或固定無線接取點所接收的無線信號推導現行位置。然而,此等方式經常受限於其準確度及/或可能為阻擋及/或失真無線信號的各種狀況所阻礙。
為了改良裝置決定其本身現行位置的能力,更多用法近來已經加以完成,以藉由指明此等裝置的周遭中的物體,而識別現行位置。然而,此等方式經常需要大資料庫以及相當大的處理資源來識別物體,並且然後將所指明的物體相關至現行位置。
100‧‧‧行動裝置
110‧‧‧攝影機
119‧‧‧位置感應器
131‧‧‧捕捉影像資料
137‧‧‧捕捉位置資料
140‧‧‧控制常式
150‧‧‧處理器電路
160‧‧‧儲存器
170‧‧‧馬達
190‧‧‧網路介面
300‧‧‧確定區域
301‧‧‧路徑
302‧‧‧牆壁
303‧‧‧柱子
304‧‧‧入口
305‧‧‧辦公桌
306‧‧‧椅子
310‧‧‧影像常式
319‧‧‧發射裝置
331‧‧‧影像資料庫
337‧‧‧圖資料庫
370‧‧‧圖常式
500‧‧‧控制裝置
520‧‧‧控制
537‧‧‧位置資料
540‧‧‧控制常式
550‧‧‧處理器電路
560‧‧‧儲存器
580‧‧‧顯示器
590‧‧‧網路介面
141‧‧‧捕捉元件
313‧‧‧SLAM選擇元件
315‧‧‧CNN選擇元件
333‧‧‧間隔為主的主圖框組
335‧‧‧差異為主的主圖框組
549‧‧‧通訊元件
312‧‧‧CNN引擎
336‧‧‧主圖框登錄項
373‧‧‧產生元件
314‧‧‧SLAM候選元件
316‧‧‧CNN候選元件
317‧‧‧位置評估元件
334‧‧‧主圖框登錄項
338‧‧‧圖登錄項
920‧‧‧鍵盤
925‧‧‧印表機
950‧‧‧處理器電路
959‧‧‧耦接
960‧‧‧儲存器
961‧‧‧揮發儲存器
962‧‧‧非揮發儲存器
963‧‧‧可移除媒體儲存器
965a‧‧‧儲存控制器
965b‧‧‧儲存控制器
965c‧‧‧儲存控制器
969‧‧‧機器可讀取儲存媒體
980‧‧‧顯示器
985‧‧‧顯示介面
990‧‧‧介面
995a‧‧‧介面控制器
995b‧‧‧介面控制器
995c‧‧‧介面控制器
999‧‧‧網路
1000‧‧‧定位系統
700‧‧‧圖
701‧‧‧路徑
702‧‧‧盡頭
703‧‧‧彎路
704‧‧‧交叉
3000‧‧‧處理架構
3100‧‧‧處理系統
3102‧‧‧處理器
3104‧‧‧快取
3106‧‧‧暫存器檔案
3107‧‧‧處理器核心
3108‧‧‧圖形處理器
3109‧‧‧指令集
3110‧‧‧處理器匯流排
3112‧‧‧外部圖形處理器
3116‧‧‧記憶體控制器集線器
3120‧‧‧記憶體裝置
3121‧‧‧指令
3122‧‧‧資料
3124‧‧‧資料儲存裝置
3126‧‧‧無線收發器
3128‧‧‧韌體介面
3130‧‧‧I/O控制器集線器
3134‧‧‧網路控制器
3140‧‧‧傳統I/O控制器
3142‧‧‧USB控制器
3144‧‧‧鍵盤/滑鼠
3146‧‧‧音訊控制器
3150‧‧‧比較器元件
3160‧‧‧比較器元件
3200‧‧‧處理器
3202A-N‧‧‧處理器核心
3204A-N‧‧‧內部快取單元
3206‧‧‧共享快取單元
3208‧‧‧圖形處理器
3210‧‧‧系統代理核心
3212‧‧‧互連環
3213‧‧‧I/O
3214‧‧‧積體記憶體控制器
3216‧‧‧匯流排控制器單元
3218‧‧‧嵌式記憶體
3123‧‧‧控制常式
3300‧‧‧圖形處理
3302‧‧‧顯示控制器
3304‧‧‧方塊影像傳送引擎
3306‧‧‧視訊編解碼引擎
3310‧‧‧圖形處理引擎
3312‧‧‧3D管線
3314‧‧‧記憶體介面
3315‧‧‧3D/媒體子系統
3316‧‧‧媒體管線
3320‧‧‧顯示裝置
3410‧‧‧圖形處理引擎
3403‧‧‧命令串流器
3412‧‧‧3D管線
3414‧‧‧執行單元陣列
3416‧‧‧媒體管線
3430‧‧‧取樣引擎
3432‧‧‧去雜訊/解交錯模組
3434‧‧‧動作評估模組
3436‧‧‧影像縮放/過濾模組
3444‧‧‧資料埠
3500‧‧‧圖形處理器
3502‧‧‧環互連
3503‧‧‧命令串流器
3504‧‧‧管線前端
3530‧‧‧視訊品質引擎
3533‧‧‧多格式編碼/解碼
3536‧‧‧圖形管線
3537‧‧‧媒體引擎
3550A-N‧‧‧次核心
3552A-N‧‧‧執行單元
3554A-N‧‧‧媒體/紋理取樣器
3560A-N‧‧‧次核心
3562A-N‧‧‧執行單元
3564A-N‧‧‧取樣器
3570A-N‧‧‧共享資源
3580A-N‧‧‧圖形核心
3600‧‧‧線程執行單元
3602‧‧‧像素著色器
3604‧‧‧線程調度器
3606‧‧‧指令快取
3608A-N‧‧‧執行單元
3610‧‧‧取樣器
3612‧‧‧資料快取
3614‧‧‧資料埠
3700‧‧‧指令格式
3710‧‧‧128位元指令
3712‧‧‧指令運算碼
3713‧‧‧索引欄
3714‧‧‧指令控制欄
3716‧‧‧執行大小欄
3718‧‧‧目的地
3720‧‧‧SRC0
3722‧‧‧SRC1
3724‧‧‧SRC2
3726‧‧‧存取/位址模式資訊
3730‧‧‧64位元緊縮指令格式
3740‧‧‧運算碼解碼
3742‧‧‧移動及邏輯運算碼群組
3744‧‧‧流程控制指令群組
3746‧‧‧雜項指令群組
3748‧‧‧並聯數學指令群組
3750‧‧‧向量數學群組
3800‧‧‧圖形處理器
3802‧‧‧環互連
3803‧‧‧命令串流器
3805‧‧‧頂點擷取器
3807‧‧‧頂點著色器
3811‧‧‧可程式包著色器
3813‧‧‧鑲嵌器
3817‧‧‧鑲嵌元件
3819‧‧‧幾何著色器
3829‧‧‧剪輯器
3830‧‧‧媒體管線
3831‧‧‧線程調度器
3834‧‧‧視訊前端
3840‧‧‧顯示引擎
3841‧‧‧2D引擎
3843‧‧‧顯示控制器
3851‧‧‧附著L1快取
3852A,B‧‧‧執行單元
3854‧‧‧紋理與媒體取樣器
3856‧‧‧資料埠
3858‧‧‧紋理/取樣器快取
3870‧‧‧描繪輸出管線
3873‧‧‧光柵器與深度測試元件
3875‧‧‧L2快取
3877‧‧‧像素運算元件
3878‧‧‧描繪快取
3879‧‧‧深度快取
3820‧‧‧圖形管線
3850‧‧‧線程執行邏輯
3823‧‧‧串流輸出單元
3837‧‧‧媒體引擎
3900‧‧‧圖形處理器命令格式
3902‧‧‧目標客戶
3904‧‧‧命令運算碼
3905‧‧‧次運算碼
3906‧‧‧相關資料
3908‧‧‧命令大小
3910‧‧‧圖形處理器命令順序
3924‧‧‧媒體管線
4000‧‧‧資料處理系統
4010‧‧‧3D圖形應用
4012‧‧‧著色器指令
4014‧‧‧可執行指令
4016‧‧‧圖形物件
4020‧‧‧作業系統
4022‧‧‧圖形API
4024‧‧‧前端著色器編譯器
4026‧‧‧使用者模式圖形驅動器
4027‧‧‧著色器編譯器
4028‧‧‧OS核心模式功能
4029‧‧‧核心模式圖形驅動器
4030‧‧‧處理器
4032‧‧‧圖形處理器
4034‧‧‧通用處理器核心
4050‧‧‧系統記憶體
4100‧‧‧IP核心開發系統
4110‧‧‧軟體模擬
4115‧‧‧RTL設計
4120‧‧‧硬體模型
4130‧‧‧設計設施
4140‧‧‧非揮發記憶體
4150‧‧‧有線連接
4160‧‧‧無線連接
4165‧‧‧製造設施
4200‧‧‧晶片積體電路
4205‧‧‧應用處理器
4210‧‧‧圖形處理器
4215‧‧‧影像處理器
4220‧‧‧視訊處理器
4225‧‧‧USB控制器
4230‧‧‧UART控制器
4235‧‧‧SPI/SDIO控制器
4240‧‧‧I2S/I2C控制器
4245‧‧‧顯示裝置
4250‧‧‧HDMI控制器
4255‧‧‧MIPI顯示介面
4260‧‧‧快閃記憶體次系統
4265‧‧‧記憶體控制器
4270‧‧‧安全引擎
圖1A及1B各個例示定位系統的例示實施例。
圖2例示依據一實施例之當行動裝置移動於確定區域附近所產生的圖。
圖3A及3B一起例示依據一實施例之產生兩分開組的主圖框。
圖4例示依據一實施例之由捕捉圖框中選出之主圖框的影像資料庫與圖資料庫間的相關。
圖5A及5B一起例示依據一實施例之使用兩個分開組的主圖框決定行動裝置的現行位置。
圖6例示依據一實施例之邏輯流程。
圖7A、7B及7C一起例示依據一實施例之另一邏輯流程。
圖8例示依據一實施例之處理架構。
圖9A例示依據一實施例之處理系統的方塊圖。
圖9B例示依據一實施例之圖1A的處理系統的一部份之方塊圖。
圖10例示依據一實施例之處理器的方塊圖。
圖11例示依據一實施例之圖形處理器的方塊圖。
圖12例示依據一實施例之圖形處理引擎的方塊圖。
圖13例示依據另一實施例之圖形處理器的方
塊圖。
圖14例示依據一實施例之線程執行邏輯。
圖15例示依據一實施例之圖形處理器指令格式的方塊圖。
圖16例示依據另一實施例之圖形處理器的方塊圖。
圖17A例示依據一實施例之圖形處理器命令格式。
圖17B例示依據一實施例之圖形處理器命令順序。
圖18例示依據一實施例之圖形軟體架構的方塊圖。
圖19例示依據一實施例之IP核心開發系統的方塊圖。
圖20例示依據一實施例之系統晶片(SoC)積體電路的方塊圖。
各種實施例係大致有關於用以根據影像的現行捕捉圖框與可以各個相關至一地圖的位置的一或更多先前捕捉或儲存的主圖框的匹配,來決定行動裝置的現行位置。更明確地說,當行動裝置沿著構成例如室內、建築物內部及預定地理區域等之確定區域的圖之路徑移動時,同時定位與映圖(SLAM)與卷積類神經網路(CNN)演算法的組
合可以被用以初始地由以該行動裝置的至少一攝影機所捕捉的影像圖框產生分開組的主圖框。確定區域的圖也可以當兩組主圖框被產生時加以產生,及在各個組內的各個主圖框可以相關至該圖的路徑的一位置。在圖內的各個此一位置可以額外地相關至在該確定區域內的實體位置的識別碼,例如,全球定位衛星(GPS)座標、相對於在一室內或建築物樓板內的兩或更多無線接取點的位置之座標、由加速計及/或陀螺儀的使用所推導出之座標等等。當產生圖及/或各個分開組的主圖框完成時,為行動裝置的至少一攝影機所依序捕捉的影像的圖框然後與在分開組的主圖框內的所述主圖框作比較。在此比較中,SLAM及CNN演算法之對應者可以被用以指明被視為最接近匹配這些捕捉圖框的主圖框。這些被指明的主圖框可以然後相關至圖上的位置及/或至在確定區域內的實體位置的識別碼。
行動裝置可以自驅動(例如,加裝輪子以行動化,以自行移動)或可以為另一裝置及/或人所承載。行動裝置也可以裝配有一或更多攝影機,以當行動裝置於確定區域內移動時,循環地捕捉在該行動裝置周圍的影像。各種方法可以用以將一或更多攝影機加入該行動裝置,以從該行動裝置的現行位置,完成一個以上方向的捕捉影像。在一些實施例中,行動裝置也可以裝配有各種類型位置感應器之任一,例如,一或更多射頻(RF)接收器,其可以由繞著地球的多個定位衛星及/或多個固定位置裝置(例如,無線接取點)、一或更多加速計及/或提供慣性導航之一或
更多陀螺儀、及/或可以定位在確定區域內的各種位置處的條碼及/或RFID標籤的讀取器接收信號。在一些實施例中,行動裝置可以裝配有無線網路介面,以完成該行動裝置與例如控制裝置的一或更多其他裝置間的通訊,該控制裝置可以無線地控制該行動裝置的移動及/或無線地接收為該行動裝置的該一或更多攝影機所捕捉的影像的圖框。
在一些實施例中,可以有不同的學習模式,其中行動裝置可以在該確定區域內移動作為產生該圖與分開組的主圖框的一部份。更明確地說,在此一學習模式中之此等移動期間,為該一或更多攝影機所循環捕捉的影像的多個圖框可以被用以產生兩分開組的主圖框。更明確地說,SLAM演算法可以根據循環間隔選擇為各個該一或更多攝影機所捕捉的圖框的次組作為主圖框,循環間隔係例如每第N個捕捉圖框或在每次該行動裝置已經在該確定區域內行進一特定距離後(例如,在每一呎的行進後)。另外,CNN演算法可以根據每一捕捉圖框與由所有先前選擇主圖框的差異程度,選擇為各個該一或更多攝影機所捕捉的圖框的不同次組變成主圖框。由於使用此等不同準則選擇捕捉圖框變成主圖框的結果,所產生的兩分開組的主圖框可能彼此有相當大的不同。更明確地說,間隔為主的該組主圖框可以以SLAM演算法產生,並且可以與由該CNN演算法所產生的差異為主的該組主圖框有相當大的不同。
同時,在此一學習模式中之移動期間,一連串
的路徑可以被推導一起界定該圖。該圖的一些方面可以在當兩分開組仍被產生的同時,透過由該兩分開組的主圖框所取出的主圖框的使用加以推導,該圖的方面包含在該圖中之迴路為閉合的路徑交叉的位置。因為路徑被推導出,所以,被選擇為在該等組主圖框之一或兩組中的主圖框的各個捕捉圖框可以相關至該圖的路徑之一的一位置。包含路徑的方向及/或長度的圖的其他方面可以根據各種感應技術的任一透過使用該一或更多位置感應器加以推導出。在一些實施例中,有可能沿著該圖與一或更多路徑的位置可以相關至在該確定區域內的實體位置的識別碼。大體上,在產生圖中,可能視為想要利用主圖框與位置感應器來產生該圖。由於定位準確度的限制,這可以透過單獨使用位置感應器加以完成。
在一些實施例中,學習模式可以根據該圖不再有新的路徑要被推導的自動決定,而自動結束。例如,從最後一次捕捉圖框被CNN演算法所選擇作為主圖框後,如果在足夠長的時間段經過後、行動裝置已經行進足夠長距離、及/或足夠大量的影像圖框已經被捕捉,則學習模式可以自動終止。
雖然不在學習模式,並且當行動裝置移動於確定區域內時,為該一或更多攝影機所捕捉的行動裝置的周遭的影像的各個圖框可以為CNN及SLAM演算法所進行與儲存在其個別組主圖框中之主圖框作比較。候選圖框匹配至捕捉圖框可以在兩組主圖框之一或兩者中找到。然
後,可以決定來自各個兩組主圖框的一或更多候選圖框配對的哪一主圖框最接近所捕捉圖框。由該兩組主圖框的候選圖框所選出的主圖框可以然後被相關至圖上的一位置,其也可以相關至在該確定區域內的實體位置。
如以下所更詳述,CNN及SLAM演算法的一起使用可以允許彼此互補,造成在決定行動裝置的現行位置的整體改良。各個CNN及SLAM演算法選擇捕捉圖框變成在個別組主圖框中之主圖框的差異準則可以在各個兩組主圖框中造成補償另一者沿著該圖的一或更多路徑可能具有的所謂“盲點”。因此,此種使用來自兩組主圖框的候選圖框匹配可以顯著地降低捕捉圖框沒有匹配主圖框的情況。隨著降低捕捉圖框沒有匹配主圖框的情況,使用捕捉圖框以匹配至主圖框來決定行動裝置在確定區域內的現行位置的作用可以被改良。再者,基於此改良,使用行動裝置的現行位置的指示作為輸入之其他功能之作用也可以改良。
參考於此所用之符號與命名,以下之詳細說明的部份可以以執行於電腦上或電腦網路上的程式順序加以表示。這些程序說明與表示法係為熟習於本技藝者所使用以最有效將其工作的實質轉達給本技藝中之其他熟習於此技藝者。於此之程序大致想要一自相容的操作順序,以造成一想要的結果。這些操作係為需要實體數量的實體演算。通常,但並不必然,這些數量採用可以被儲存、轉換、結合、比較及以其他方式演算的電、磁,或光信號的
形式。主要是經常使用的理由,它經常被證明方便稱這些信號為位元、值、元件、符號、字元、項、數字或類似物。然而,應注意是,所有這些與類似用語係相關於適當實體數量並只是應用至這些數量的方便標籤。
再者,這些演算法經常稱為例如相加或相比,這些係經常相關於為人類操作者所執行的心理作業有關。然而,人類操作員並不需要此能力或者在多數情況下並不想要有此能力,於此所述之任何操作形成一或更多實施例之部份。相反地,這些操作為機器操作。用以執行各種實施例的操作的有用機器包含通用數位電腦,其係為儲存於其中之依據於此所教示加以撰寫的電腦程式所選擇作動或組態,及/或包含特別建構用於所需目的的設備。各種實施例也有關於用以執行這些操作的設備或系統。這些設備可以為了所需目的加以特別建構或可以包含通用電腦。用於各種這些機器的所需結構將由以下說明加以了解。
現參考附圖,其中類似元件符號係被使用以表示所有圖中之類似元件。在以下說明中,為了解釋目的,各種特定細節係被加以說明,以提供對其的全盤了解。然而,明顯地,新穎實施例可以在沒有這些特定細節下加以實施。在其他例子中,所有已知結構及裝置係以方塊圖形式加以顯示,以促成其說明。其企圖係想要涵蓋在申請專利範圍內的所有修改、等效及替代。
圖1A例示定位系統1000的實施例之方塊圖,其加入行動裝置100移動於確定區域300內、控制裝置
500、及/或多重發射裝置319。在定位系統1000中,行動裝置100於其移動於確定區域300內的同時,循環地捕捉其周遭的影像圖框,並將這些捕捉圖框轉送至控制裝置500。控制裝置500循環比較所捕捉圖框與在兩分開組的主圖框內的主圖框,以識別匹配主圖框,其中控制裝置500相關至在確定區域300之圖的一或更多路徑的多數位置。在一些實施例中,行動裝置100也可以由一或更多發射裝置319循環接收無線信號,並可以將有關於這些信號的資料轉送至控制裝置500。在各種實施例中,控制裝置500可以循環使用沿著該圖的一或更多路徑的匹配主圖框及/或有關於自一或更多發射裝置319接收的信號的資料的相關性,用以循環地決定該行動裝置100在確定區域300內的現行實際位置。
如所繪,至少行動裝置100與控制裝置500可以透過網路999交換有關影像的圖框的資料、自一或更多發射裝置319接收的信號、並以之完成匹配及/或相關性的結果等等。然而,這些裝置的一或多者也可以經由網路999彼此及/或與其他裝置(未示出)交換無關於決定行動裝置100的現行位置的其他資料。在各種實施例中,網路999也可以為可能被限制延伸於單一建築物內或其他相對受限區域的單一網路、可能延伸相當距離的連接網路的組合、及/或可以包含網際網路。網路999也可以是根據信號可以被交換的各種通訊技術(或組合)的任一,包含但並不限於利用電及/或光傳導纜線的有線技術、及利用紅外
線、射頻或其他形式之無線傳輸的無線技術。
在各種實施例中,行動裝置100可以加入處理器電路150、儲存器160、一或更多攝影機110、及/或網路介面190,以耦接行動裝置100至網路999。在定位系統1000包含一或更多發射裝置319的實施例中,行動裝置100可以另外加入一或更多位置感應器119,以接收為該一或更多發射裝置319所發射的信號。在行動裝置100為自驅動,例如行動裝置100能以其自己電力移動於確定區域300內的實施例中,行動裝置100可以加入一或更多馬達170,以完成此動作。儲存器160可以儲存控制常式140、捕捉影像資料131及/或捕捉位置資料137。控制常式140可以各個加入一順序指令,其可操作於處理器電路150上,以實施執行各種功能的邏輯。
該一或更多攝影機110可以為各種影像捕捉裝置之任一及/或一陣列的影像捕捉裝置,用以捕捉該行動裝置100在至少該確定區域300內周遭的影像圖框。例如,單一攝影機110或一陣列攝影機110可以可旋轉地安裝在行動裝置的框架或外殼上,使得該單一攝影機110或該陣列攝影機110可以繞著一垂直軸(及/或另一軸)旋轉,以捕捉行動裝置100的周遭的全景視圖。另一例子之多攝影機110可以排列呈圓形組裝體,其中各個係被給定以不同方向指向,以給出該行動裝置100的周遭的不同視圖,以可以避免旋轉多攝影機110的任一個。
如前所討論,在一些實施例中,一或更多位置
感應器119(如果有的話)可以包含射頻(RF)及/或其他類型接收器,其接收由該一或更多發射裝置319所發射的信號。在此等實施例中,該一或更多發射裝置319可以為各種裝置的任一者,其發射可以配合使用三角測量及/或其他技術以決定行動裝置100的現行位置的信號。例如,一或更多發射裝置319可以是繞著地球的定位衛星,使得一或更多發射裝置319可以良好地定位在確定區域300相當外面。或者,一或更多發射裝置319可以為固定發射裝置(例如,網路的無線接取點),使得一或更多發射裝置可以定位在確定區域300內,或至少在其附近。
圖2例示確定區域300的例子,其加入兩發射裝置319。更明確地說,圖2例示辦公大樓的樓面的一部份,包含牆壁302、柱子303、入口304、會議桌及/或辦公桌305、及椅子306。如所描繪,兩發射裝置319可以各個定位於此例示確定區域300的分開角落,並且,行動裝置100可以現行被定位在沿著牆壁301之一與隔間之一之間的開放路徑的一位置。圖2同時也例示當行動裝置100沿著此例示確定區域300的此等開放路徑移動並進出各個隔間內的開放區域時所產生的路徑701的一圖700例。如所繪,圖700的路徑701可以包含盡頭702、彎路703、及交叉704,圖700的路徑迴路可以在交叉處閉合。由於在此例示確定區域300內設置例示成對的發射裝置319的結果,行動裝置100可以接收由各個這兩發射裝置319發射的信號。可以然後使用各種三角測量或其他技
術的任一將圖700的部份相關至在確定區域300內的實體位置。
回到圖1A,應注意到一或更多發射裝置319為網路(例如網路999)的元件,其可以發射與接收信號以在無線通訊中作為接合的各種實施例係可能的。在此等實施例中,行動裝置100也可以完全不加入一或更多位置感應器119,並可以不加入一或更多位置感應器119而利用網路介面190來接收自一或更多發射裝置319發射的信號。確實,在此等實施例中,行動裝置100及控制裝置500可以透過一或更多發射裝置319加以通訊。然而,如同所討論,不論該一或更多發射裝置319的裝置類型為何及/或由其中發射的信號類型為何,都可以使用自一或更多發射裝置319所發射的信號來決定行動裝置100的現行位置,可能在準確度略微會受限及/或使用這些信號可能為天氣狀況及/或阻擋、失真及/或劣化這些信號的結構的出現所阻礙。
替代或額外地,(如果有的話)該一或更多位置感應器119可以包含一或更多讀取器,以讀取可能散佈在整個確定區域300內的各個位置的各種標示裝置的任一標示裝置,例如條碼貼紙、磁或射頻識別(RFID)標籤。例如,此等標示裝置可以應用至及/或加入在確定區域300內的樓面,以促使行動裝置100取得現行定位在一特定標示位置的清楚指示。然而,如同使用此等標示裝置的熟習此技藝者所立即了解,可能有不想要及/或無法使用此等
標示裝置的情況。例如,確定區域300可能太大而不符合成本效益,而不能以有用方式在足夠密度下以此等標示裝置涵蓋確定區域300。
同時,替代或額外地,(如果有的話)該一或更多位置感應器119可以包含一或更多動作感應器,以利用各種技術來檢測動作、動作的速度、動作的方向、速度的變化等等,各種技術例如速度計、里程表、一或更多加速計、陀螺儀、一或更多鄰近檢測器等等。更明確地說,一或更多位置感應器119可以加入量測行動裝置100已經在確定區域300內的周遭中的任一方向行進的距離及/或在行動裝置100與一目標物間的距離的能力。替代或額外地,一或更多位置感應器119可以根據由陀螺儀所提供的慣性導航,加入檢測現行羅盤航向及/或移動的現行方向的能力。替代或額外地,一或更多感應器119也可以額外地或替代檢測其他加速度及/或加速度上的變化外,加入檢測重力的方向的能力。然而,如同熟習於本技藝者所知,在沒有至少一開始點至確定區域300內的實體位置的一些相關形式下,此等動作的檢測所提供的資料組太不完整,而不能由該資料組決定行動裝置100的現行位置。
因此,如前所討論,雖然可能包含一或更多位置感應器119,但仍可能想要利用捕捉行動裝置100的周遭的影像圖框,來決定行動裝置100在確定區域300內的現行位置。再者,根據各種技術及/或科技的任一,一或更多位置感應器119可以被用以擴增影像的捕捉圖框的此
等用途。例如,自一或更多發射裝置319接收的信號的三角量測可以被用來驗證行動裝置100仍否在確定區域300內,或者,是至少在確定區域300的附近。再例如,檢測標示裝置也可以用以確認是否行動裝置100已經抵達確定區域300的入口及/或抵達在確定區域300內的有限量特定實體位置的一位置。然而,由一或更多攝影機110所捕捉的影像的圖框可以主要用以決定在確定區域300內的現行位置。
如前所討論,在一些實施例中,行動裝置100可以為自驅動,使得其可以利用(如果有的話)一或更多馬達170,以作用此動作。這在行動裝置100為自驅動機器人、載具等的實施例中是如此。一或更多馬達170可以包含一或更多電、內燃機、蒸氣為主、繞簧及/或其他類型馬達,其提供旋轉及/或線性形式的機械動作。在一些此等實施例中,一或更多馬達170可以驅動地耦合至一或更多輪、軌道、機械行走元件及/或行動裝置100的其他元件,其結合在確定區域300內的地板、軌道、軌跡及/或其他結構,以將行動裝置100移動於其內。替代或額外地,一或更多馬達170的至少之一可以操作以操控元件,以促成行動裝置100在確定區域300內的移動方向上的改變。可以加入至行動裝置100的根據各種元件之任一的其他形式之自驅動將為熟習於本技藝者所完成。
替代或額外地,行動裝置100可以為另一裝置(未示出)或一個人(未示出)所承載移動於確定區域300
內。例如,行動裝置100可以安裝在載具上,其行進於確定區域300內。替代或額外地,行動裝置100可以綁至及/或以它法為一個人所攜帶(例如,行動裝置100可以為穿戴式裝置、智慧手機、平板電腦、筆記型電腦等)。
在執行控制常式140中,處理器電路150可以使得一或更多攝影機110操作,以循環地捕捉行動裝置100的周遭的影像圖框。處理器電路150可以暫時儲存此等捕捉圖框於儲存器160內,作為捕捉影像資料131的至少一部份。處理器電路150也可以循環地操作網路介面190,以發射在捕捉影像資料131內的捕捉圖框的多數至控制裝置500。在行動裝置100加入有一或更多位置感應器119的實施例中,處理器電路150可以藉由控制常式140的執行而被造成以操作一或更多位置感應器119,以在一或更多位置感應器119所利用的技術限制下,循環地捕捉行動裝置100的現行位置的至少一些指示。處理器電路150也可以暫時儲存現行位置的此等捕捉指示於儲存器160內,作為捕捉位置資料137的至少一部份。處理器電路150也可以循環地操作網路介面190,以發射捕捉位置資料137的部份至控制裝置500。在行動裝置100為自驅動的實施例中,處理器電路150可以由控制常式140的執行所造成以操作網路介面190,以自控制裝置500接收命令,以移動於至少該確定區域300內。在此等實施例中,處理器電路150可以然後操作一或更多馬達170,以作動這些命令。
在各種實施例中,控制裝置500可以加入處理器電路550、儲存器560、及/或網路介面590,以將控制裝置500耦接至網路999。在控制裝置500支援人工操作以控制及/或監視行動裝置100的實施例中,控制裝置500可以額外地加入人工操作控制520及顯示器580之一或兩個。儲存器560可以儲存捕捉影像資料131的至少一部份、捕捉位置資料137的至少一部份、影像常式310、圖常式370、影像資料庫331、圖資料庫337、位置資料537及控制常式540。各個影像常式310、圖常式370及控制常式540可以各個加入可操作於處理器電路550上的一順序指令,以實施邏輯以執行各種功能。
在執行控制常式540中,處理器電路550可以操作網路介面590,以循環地由行動裝置100經由網路999接收捕捉影像資料131的至少一部份,並也可以藉以循環地接收捕捉位置資料137的至少一部份。處理器電路550也然後儲存其一或兩者於儲存器560中。在行動裝置100為自驅動的實施例中,處理器電路550可以為控制常式540的執行所造成以操作網路介面590,以經由網路999發射命令給行動裝置100,以移動於確定區域300。在此等命令為操作員的人工輸入所提供的實施例中,處理器電路550可以額外地為控制常式540的執行以造成控制520及/或顯示器580的操作以提供使用者介面,此操作員可以以此介面提供這些命令。
在執行影像常式310中,處理器電路550可以
被造成以利用SLAM演算法及CNN演算法兩者,以在影像資料庫331內建立兩分開組的主圖框。如前所討論,當行動裝置100於學習模式期間,初始移動於確定區域300附近以建立兩組主圖框時,各個組的主圖框可以由行動裝置100的周遭的影像圖框作成。同時如所討論,在此學習模式之後,兩分開組的主圖框可以然後被使用以比較行動裝置100的周遭的新捕捉的影像圖框,作為決定行動裝置100在確定區域300內的現行位置的一部份。在如此作時,處理器電路550也可以被造成以利用SLAM與CNN演算法兩者,以執行此等比較,以由兩組圖框中識別最接近匹配現行捕捉圖框的主圖框。
在執行圖常式370中,當兩組主圖框產生於影像資料庫331內時,處理器電路550也可以被造成以產生對應於行動裝置100能移動於圖資料庫337內的確定區域300內的開放路徑的路徑圖700。當捕捉圖框被選擇變成主圖框並因此被加入至所述組主圖框之一或兩者時,各個這些被選擇圖框可以相關於在圖700內的一路徑的一位置,其係正被界定為正在產生的圖資料庫337。換句話說,兩組主圖框與圖700的路徑可以被並列產生,使得影像資料庫331與圖資料庫337被並列產生,兩組主圖框之一或兩者的各個主圖框被相關至在圖700路徑的一位置。如前所討論,在並列產生兩組主圖框與圖700的學習模式發生後,在各個主圖框以及路徑中的一位置間之相關可以用以決定行動裝置100在圖700內的現行位置。
另外,在執行圖常式370中,處理器電路550可以被造成以使用自行動裝置100接收的任意類型的捕捉位置資料137,以在學習模式期間,相關圖700的路徑中的位置至確定區域300內的實體位置。取決於捕捉位置資料137中所提供的細節程度(其必然取決於在行動裝置100內用以產生捕捉位置資料137的技術的限制),相關至實體位置也可以為特定至座標組或者非特定至發生於圖700的路徑之一的位置處的方向改變之表示,以相關至主圖框。不管自行動裝置100接收的捕捉位置資料137的品質與數量為何,由於主圖框與行動裝置100的周遭的影像的捕捉圖框的比較,造成決定行動裝置100的現行位置,處理器電路550可以儲存此決定的至少最現行的指示於儲存器560中,作為位置資料537。
圖1B例示定位系統1000的另一實施例之方塊圖,加入行動裝置100及控制裝置500的替代實施例。如所繪出,在定位系統1000的替代實施例中,行動裝置100的處理器電路150執行影像常式310及圖常式370,而不是控制裝置500的處理器電路150來執行。因此,常式310及370可操作於處理器電路150上實施邏輯,用以在圖1B的定位系統1000的替代實施例中,在行動裝置100內產生影像資料庫330及圖資料庫370,而不是如同圖1A的定位系統1000的實施例中地在控制裝置500內。對應地,在產生資料庫331及337後,處理器電路150可以被造成用以使用資料庫331及337以決定行動裝置100
在行動裝置100內的現行位置,並可以藉以更進一步在圖1B的此替代實施例中,造成發射位置資料537至控制裝置537,而不是如圖1A的實施例中之處理器電路550造成決定行動裝置100的現行位置。
圖3A及3B一起更詳細例示在圖1A或圖1B的定位系統1000的實施例中,產生兩分開組的主圖框的例子。更明確地說,圖3A描繪在行動裝置100或控制裝置500內,產生影像資料庫331的間隔為主的主圖框組333與差異為主的主圖框組335,與圖資料庫337的態樣。圖3B描繪使用卷積類神經網路(CNN)以產生差異為主的主圖框組335的態樣。
如同熟習於此技藝者所認知,包含各個其元件所構成的控制常式140、影像常式310、圖常式370、及控制常式540係被選擇地可操作於任意類型處理器或多處理器上,以被選擇以實施可應用的處理器電路150或550。在各種實施例中,各個這些常式可以包含作業系統、裝置驅動程式及/或應用程式級常式(例如,設在光碟媒體上的所謂“套裝軟體”、自遠端伺服器取得之“小程式”等)的一或更多。當包含作業系統時,作業系統可以為各種可用作業系統之任一,其可以適用於處理器電路150及/或550。當包含一或更多裝置驅動程式時,這些裝置驅動程式可以提供不論是行動裝置100及/或控制裝置500的硬體或軟體元件的各種其他元件之任一的支援。
參考圖3A,在所繪的各種實施例中,圖常式
370及影像常式310可以為行動裝置100的處理器電路150或控制裝置500的處理器電路550所執行。如果為行動裝置100內的處理器電路150所執行,則影像常式310由該處所產生影像資料庫331的捕捉影像資料131可以自一或更多攝影機110接收,並且,圖常式370由該處產生圖資料庫337的捕捉位置資料137可以自一或更多位置感應器119接收。如所繪,為行動裝置100的處理器電路150所執行之控制常式140可以加入捕捉元件141。捕捉元件141可以操作一或更多攝影機110及/或一或更多位置感應器119,以分別循環地抽出行動裝置100的現行位置的捕捉影像及/或捕捉指示。捕捉元件141可以循環地儲存捕捉影像作為捕捉影像資料131,以用於作為至影像常式310的輸入,及/或可以循環地儲存捕捉行動裝置100的現行位置的指示作為捕捉位置資料137,以用於作為至圖常式370的輸入。
然而,如果影像常式310及圖常式370為控制裝置500內的處理器電路550所執行,則影像常式310由該處產生影像資料庫331及圖常式370由該處產生圖資料庫337的捕捉影像資料131及捕捉位置資料137可以透過網路999經由網路介面590自行動裝置100接收。如所繪,為控制裝置500的處理器電路550所執行之控制常式540可以加入通訊元件549。通訊元件549可以操作網路介面590,以自行動裝置100經由網路999循環地抽取捕捉影像資料131及及/或捕捉位置資料137的部份。通訊
元件549可以循環地儲存捕捉影像作為捕捉影像資料131,以用以作為至影像常式310的輸入,及/或可以循環地儲存行動裝置100的現行位置的捕捉指示作為捕捉位置資料137,以用以作為至圖常式370的輸入。
如所繪,影像常式310可以加入SLAM選擇元件313,以用以為處理器電路150或550所執行,以產生間隔為主的主圖框組333,其多數捕捉圖框作成,這些捕捉圖框係在當行動裝置100移動於確定區域300附近時,以循環間隔被選擇為主圖框。如先前所討論,循環間隔可以為時間間隔、行進距離的間隔等。例如,在行動裝置100移動於確定區域300附近的學習模式期間,SLAM選擇元件313可以於預定時間段經過的每一實例中(例如,一秒的預定部份或預定數量的秒數),或者,於預定數量的圖框被捕捉的每一實例中,選擇捕捉影像資料131的捕捉圖框之一作為間隔為主的主圖框組333的一主圖框。或者,當行動裝置100加入里程表及/或其他機制,以量測所行進的距離時,SLAM選擇元件313可以於行動裝置100已經行進預定距離間隔(例如,預定數量米、呎等)的各個實例中選擇一捕捉圖框。在間隔係相關於行動裝置100的動作的實施例中,SLAM選擇元件313可以監視在捕捉位置資料137中的移動的指示(例如,行進距離的指示)。
如所繪,影像常式310可以也加入CNN選擇元件315,用以為處理器電路150或550所執行,以產生
差異為主的主圖框組335,其由多數捕捉圖框作成,其係由於其與先前被選擇為差異為主的主圖框組335的主圖框的所有捕捉圖框足夠不同而被選擇為主圖框。換句話說,CNN選擇元件315比較在捕捉影像資料131中的各個新捕捉圖框與在差異為主的主圖框組335內的所有主圖框,並且,如果新的捕捉圖框與已經包含在差異為主的主圖框組335內的所有主圖框足夠不同時,則其係被選擇作為另一主圖框。更詳細說,導出一碼值給新的捕捉圖框,該碼值為該新捕捉圖框的影像的內容的說明,及此碼值係與已經包含在差異為主的主圖框組335中的所有主圖框的碼值相比較,以決定是否該新捕捉圖框的該碼值與所有這些碼值差異到超出差異的預定臨限值的程度。如果是,則此新捕捉圖框被選擇加入作為在差異為主的主圖框組335中的另一主圖框。
如圖3B所描繪,CNN選擇元件315可以包含CNN引擎312的描繪例示實施法,用以產生在該捕捉影像資料131內的各個新捕捉圖框的碼值。應注意的是,CNN引擎312的邏輯可以以可操作於處理器電路150或550上的指令加以實施,或者,CNN引擎312的邏輯可以以硬體數位邏輯元件(例如,一或更多可程式陣列的電晶體及/或邏輯閘)加以實施。如熟習於本技藝者所熟悉,CNN引擎312可以實施多數散佈卷積層及池層,使得其仿真人類視覺系統的一部份的類神經網路態樣。各個卷積層可以實施很多並列實例的過濾器,其被組態以決定是否
一特定視覺特性係出現在各個許多重疊位置,其由在新捕捉圖框內的多重像素作成。結果類同於過濾器的卷積於作成該圖框的二維矩陣像素一般,但其中過濾器並列應用至該圖框內的很多重疊位置。各個池層可以實現在卷積層間的次取樣的並列實例,使得其有效地提供稜錐處理的多重並列實例。在有限程度下,各個池層致使已經被找到的特性指示分散於該圖框內的不同位置之間,以允許這些指示被利用作為使用過濾器的輸入,來找出在後續卷積層中的其他位置處的其他特性。
卷積層與池層的數量可以在CNN引擎312的可能實施法間作改變,以及可以改變在各個層內的模擬神經元的大小。有了各個額外卷積層,另一過濾器檢測另一特性的各種實例可以被實現,造成產生是否及/或何處各個此特性被檢測的更多指示。經由散佈卷積層與池層的多數層,產生用以表示什麼特性被找到與在圖框內的何處被找到的碼值。如所描繪,致能特性被找到的位置的某些程度的全球化的單一全連接層及/或其他邏輯可以被利用以降低由多重卷積及池層所產生的碼值的維度複雜性。在一些實施例中,該降低可以以三維表示之座標點的碼值降低至只有以一或兩維表示之座標點的碼值。
如同圖3B所描繪,CNN選擇元件315也可以包含比較器元件3150,用以比較由CNN引擎312所產生之用於行動裝置100的周遭的影像的各個新捕捉圖框的維度降低碼值與早先產生的用於差異為主的主圖框組335的
各個主圖框的早先產生降低維度碼值。如所繪,差異為主的主圖框組335可以由主圖框登錄項336構成,及單一主圖框可以與由CNN引擎312所產生的對應碼值一起被儲存於各個主圖框登錄項336內。因為由比較器元件3150所比較的碼值可以各個代表多維度中之一個點,所以藉由推導於新捕捉圖框的碼值與各個這些主圖框的碼值間的歐幾里德距離,並且然後,比較各個歐幾里德距離與臨限距離,比較器元件3150可以決定新捕捉圖框的碼值是否與差異為主的主圖框組335的所有主圖框的碼值足夠不同。如果沒有任一歐幾里德距離超出該臨限,則新捕捉圖框並不會被視為與在差異為主的主圖框組335內的所有其他主圖框有足夠不同,並且,也並不會被比較器元件3150所選擇以被加入至差異為主的主圖框組335內。
如所繪,回到圖1A,圖常式370可以加入產生元件373,用以為處理器電路150或550所執行以由捕捉位置資料137產生圖資料庫337。如前所討論,行動裝置100的各種實施例可以可不加入一或更多位置感應器119及/或其他運用各種其他技術之一的元件,以當行動裝置100移動於確定區域300附近時,循環地捕捉行動裝置100的現行位置的指示。如前所討論,在捕捉有此等指示的實施例中,這些指示可能缺乏準確度,使得由利用行動裝置100的周遭的影像的捕捉圖框作成的行動裝置100的現行位置可以更精準。再者,例如,捕捉位置資料137可以包含根據自一或更多發射裝置319收到的信號,透過三
角測量及/或其他技術所完成的行動裝置100的現行位置的座標。然而,座標可以表示確定區域300的相當大部份。替代或額外地,例如,捕捉位置資料137可以透過一或更多形式之慣性導航的使用,例如,加速計、陀螺儀、速度計、里程計、對一或更多目標的距離量測等等,包含動作的指示及/或動作的改變。然而,在確定區域100內可能沒有行動裝置100的移動開始點位置的可靠指示。因此,在各種實施例中,可能沒有捕捉位置資料137,可以用來加強由行動裝置100的周遭影像的捕捉圖框獲得的有關行動裝置100的位置,或者,可能有作成行動裝置100的指示的捕捉位置資料137,但這些指示係相當分散及/或欠缺準確度。
如前所討論,描述確定區域300的圖700的圖資料庫337可以至少部份同時與影像資料庫331一起產生。當影像常式310的SLAM選擇元件313與CNN選擇元件315的各個選擇一捕捉圖框作為主圖框時,各個SLAM選擇元件313與CNN選擇元件315可以對圖常式370的產生元件373提供其指示。產生元件373可以在主圖框333及335的任一組內被捕捉的各個主圖框沿著圖700的一或更多路徑701加入位置的指示。在沒有捕捉位置137或捕捉位置資料137係離開產生圖資料庫337的行動裝置100的位置之指示相當分散的實施例中,為選擇一捕捉圖框作為在主圖框333或335組之任一組中之主圖框的每一實例的圖常式370所接收的指示提供圖700所根據
的大多數或全部的資訊。如將更詳述,在此等實施例中,其可能是由捕捉圖框所獲得的資訊,其完成在圖700中的可能存在交叉704的位置的檢測,使得在圖700中之路徑701中的迴路可以閉合。
然而,在產生元件373被提供有捕捉位置資料137作為輸入,及/或捕捉位置資料137在確定區域300內常常包含更大數量及/或更多種類的行動裝置100的位置之指示的實施例中,圖700可以將在確定區域300內的實體位置的指示、路徑701的長度指示、方向改變之指示等相關至主圖框被捕捉的至少一部份位置。再者,產生元件373可以能夠單獨地由捕捉位置資料137識別在圖700中之一或更多交叉704。
圖4描繪圖2的例示圖700的放大部份,以顯示圖700的產生態樣,包含兩組圖框333及335為行動裝置100的一或更多攝影機110所捕捉的主圖框的圖700的沿著路徑701的位置的相關。在圖4中,“+”符號定位沿著圖的路徑701之在間隔為主的主圖框組333的主圖框被捕捉的位置,及“X”符號定位在沿著路徑701在差異為主的主圖框組335的主圖框被捕捉的位置。
由圖4中之“+”符號的分佈的相當一致間隔的描繪例,有可能可以認出SLAM選擇元件313可能已經根據沿著各種路徑701行進的距離的預定選擇間隔選擇捕捉圖框成為間隔為主的主圖框組的主圖框的方法。也可能可以看出此選擇捕捉圖框的方法如何在間隔為主的主圖框
333造成盲點,使得並沒有主圖框重合圖700的路徑701中的一些交叉704及/或其他特性所在處。相反地,由圖4的“X”符號分佈的描繪例中看出,有可能識別CNN選擇元件315可能有更多傾向於選擇對應於此等特性的捕捉圖框變成差異為主的主圖組335的主圖框。此CNN選擇元件315的此一分佈可能在不包含例如交叉704的此等特性的路徑701的長度及出現此特性作為交叉704的位置間的外表上的差異。因為CNN選擇元件315根據來由所有先前選擇主圖框的影像中的差異,來選擇捕捉圖框作為主圖框,所以,CNN選擇元件315傾向於選擇捕捉圖框變成在交叉704處及/或在具有相當獨特外表的其他位置處所捕捉圖框的主圖框。然而,也可以由圖4的“X”符號的描繪位置明顯看出,此等選擇主圖框的準則可能在差異為主的主圖框組335中造成盲點,這可以也包括相對大部份的路徑701,其並沒有獨特外表特性。
因此,由圖4的“+”符號與“X”符號的相對位置看來,可以了解到各個兩組主圖框333及335可以包含在圖700內的位置處的主圖框,其填補另一者的盲點。因此,可以藉由組合使用兩組主圖框333與335,藉以善用各個選擇主圖框上的差異,來實現更有利地完整涵蓋沿著圖700的各個路徑701的位置。然而,應注意的是,由幾個描繪實例之“+”符號及“X”符號相當鄰近看出,可能會有捕捉圖框被選擇成為主圖框333與335組之一組的主圖框的位置與捕捉圖框被選擇變成另一組的主圖框333與
335的主圖框的位置接近重合的實例,使得有可能單一捕捉圖框可以被選擇變成在兩組主圖框333及335內的主圖框。
如在圖4所描繪的為該圖與主圖框被捕捉的位置間的相對性產生與維護的態樣。如所描繪,並如配合圖3B所先前討論,以CNN選擇元件315產生的差異為主的主圖框組335可以由多數主圖框登錄項336組成,其各個可以儲存為CNN選擇315所選擇的主圖框及由CNN引擎312所產生的碼值。對應地,及如所描繪,由SLAM選擇元件313所產生的間隔為主的主圖框組333可以由多重主圖框登錄項334組成,其各個可以儲存為SLAM選擇元件313所選擇的主圖框。同時,對應地,及也如所繪,由產生元件373產生的圖資料庫338可以由多重圖登錄項338組成,各個登錄項儲存圖700的路徑701的一部份的指示,及其至少一次組可以各個儲存為SLAM選擇元件313或CNN選擇元件315之任一所選擇的主圖框被捕捉的位置的指示。因此,如所繪,各個主圖框登錄項334與各個主圖框登錄項336可以相關至圖登錄項338,藉以使得各個主圖框可以被相關至在圖700內的一位置。
如同已討論,在一些實施例並取決於可能已經為圖常式370的產生元件373所接收與使用的任一捕捉位置資料137的特殊性,至少一部份的圖登錄項338可以相關至在確定區域300內的特定實體位置。結果,可能至少一次組的主圖框登錄項334及/或336能相關至此等特定
實體位置。
現參考圖3A,在圖資料庫337、間隔為主的主圖框組333及差異為主的主圖框組335之一或多者係在不同學習模式期間被產生的實施例中,該學習模式可以回應於一或更多檢測狀況被自動結束。明確地說,及如先前所討論,如果在學習模式期間預定時間量經過、在學習模式期間,行動裝置100行進預定距離、或預定圖框量在學習模式期間被捕捉,而沒有另一捕捉圖框被CNN選擇元件315所決定為足夠與差異為主的主圖框組331內的所有主圖框有所不同,而被選擇用以相加至其上。替代或額外地,在控制裝置500支援經由控制520及/或顯示器580提供使用者介面的實施例中,使用者介面可以致使控制裝置500的操作者輸入一命令,以結束該學習模式。
圖5A-5B一起例示使用兩組主圖框333及335在圖1A或圖1B中的定位系統1000的實施例中,以更詳細決定行動裝置100的現行位置的例子。更明確地說,圖5A描繪識別候選主圖框的態樣,其在行動裝置100或控制裝置500內,匹配來自影像資料庫331的間隔為主的主圖框組333與差異為主的主圖框組335的新捕捉主圖框。圖5B描繪使用卷積類神經網路(CNN),用以由差異為主的主圖框組335選擇此等候選主圖框的態樣。
回圖5A,再次如所描繪,圖常式370與影像常式310兩者可以為行動裝置100的處理器電路150所執行或控制裝置500的處理器電路550所執行。再者,取決
於是否這些常式310及370是否為行動裝置100內的處理器電路150所執行或為控制裝置500內之處理器電路550所執行,捕捉影像資料131與捕捉位置資料137可以直接或間接由一或更多攝影機110及一或更多位置感應器119所提供。然而,不像明確描述這些態樣的圖3A,為了清楚起見,圖5A並未描繪這些態樣。
如所繪,影像常式310可以加入SLAM候選元件314,用以為處理器電路150或550所執行,以由間隔為主的主圖框組333的主圖框中選擇一或更多候選主圖框,這些係被認為相當類似於新捕捉圖框,使得新捕捉圖框與該一或更多候選主圖框可以沿著圖700的路徑701大致相同的位置。在各種實施例中,SLAM候選元件314可以自捕捉影像資料131擷取新捕捉圖框,並可以使用各種演算法之任一,包含但並不限於標度不變特性轉換(SIFT),以比較該新捕捉圖框與該間隔為主的主圖框組333的主圖框。不管執行該比較的特定演算法為何,選擇演算法可以被組態有預定臨限,其界定在新捕捉圖框與間隔為主的主圖框組333的主圖框間的相似度的最小程度,其必須符合以使其主圖框被選擇作為候選主圖框。如果在間隔為主的主圖框組333的任一主圖框足夠類似於新捕捉圖框符合該臨限,則SLAM候選元件314可以提供被發現如此類似影像常式310的位置評估元件317的一或更多候選主圖框。
如所繪,影像常式310也可以加入CNN候選
元件316,用以為處理器電路150或550所執行,以從差異為主的主圖框組335的主圖框找到相當類似新捕捉圖框的一或更多候選主圖框,使得該新捕捉圖框與該一或更多候選主圖框可以沿著圖700的路徑701大致相同的位置。如圖5B所繪,CNN候選元件316可以使用在圖3B中所早先描繪的相同CNN引擎312。再次,CNN引擎312可以被利用以自捕捉影像資料131擷取的新捕捉圖框產生減少的維度碼值。CNN候選元件316的比較器元件3160然後可以比較與新捕捉圖框有關的碼值與跟差異為主的主圖框組335的主圖框有關的碼值。如同CNN選擇元件315的比較器元件3150,CNN候選元件316的比較器元件3160可以推導出為新捕捉圖框的碼值所代表的點座標與差異為主的主圖框組335的各個主圖框的碼值所代表的點座標間的歐幾里德距離。比較器元件3160可以然後類似地比較各個歐幾里德距離與臨限距離。然而,比較器元件3160可以選擇主圖框為一或更多候選主圖框,其中對應於這些主圖框的歐幾里德距離小於該臨限距離,使得這些被選擇的主圖框對於新捕捉圖框具有最小程度的類似性。在一些實施例中,為比較器元件3160所使用來選擇差異為主的主圖框組335的一或更多主圖框作為候選主圖框的臨限歐幾里德距離可以與為比較器元件3150所使用以選擇捕捉圖框以加入至差異為主的主圖框組335的臨限歐幾里德距離相同。如果在差異為主的主圖框組335內有任何主圖框足夠類似新捕捉圖框,即對應歐幾里德距離小於歐
幾里德距離臨限,則CNN候選元件316可以提供被認為類似於影像常式310的位置評估元件317的一或更多候選主圖框。
回到圖5A,如果SLAM候選元件314或CNN候選元件316均未能識別出任何候選主圖框,則作出行動裝置100已經移動至確定區域300內的一位置的假設,在該位置並沒有先前已捕捉的影像的圖框並被選擇作為主圖框。這也可以表示仍有很多的確定區域300要被加入至圖700,及新捕捉圖框可以被考量加入主圖框333及335之一或兩組中。明確地說,回到參考圖3A,SLAM選擇元件313可以被觸發以決定是否決定何時選擇所捕捉圖框為主圖框的間隔準則已經符合,以選擇新捕捉圖框變成在間隔為主的主圖框組333內的新主圖框。同時,CNN選擇元件315也可以被觸發以決定是否在新捕捉圖框與在差異為主的主圖框組335內的所有主圖框間的差異程度是否足夠以選擇該新捕捉圖框變成在差異為主的主圖框組335中的新主圖框。相關是否將此新捕捉圖框加入至差異為主的主圖框組335內之決定,重要的是注意,雖然在一些實施例中,為比較器元件3160所使用以識別候選主圖框的歐幾里德距離臨限可能與為比較器元件3150所使用以選擇捕捉圖框變成主圖框的歐幾里德距離臨限相同,但在其他實施例中,有可能兩個歐幾里德距離不同。如果新捕捉圖框被選擇成為主圖框333或335兩組之任一的主圖框,則圖常式370可以被造成加入至圖700。明確地說,圖常式
370的產生元件373可以加入對應至新捕捉圖框(現新主圖框)被捕捉的位置的另一圖登錄項338至圖資料庫337,並且,其可以包含在捕捉位置資料137內可以使用的位置的指示(在存在有捕捉位置資料137的實施例中)。
替代地,如果SLAM候選元件314或CNN候選元件316的任一能識別出一或更多候選主圖框的話,則可以假設行動裝置100已經移動到確定區域300內的一個位置,其至少相當接近先前已捕捉到影像的一位置,該先前捕捉的影像然後被選擇並儲存為主圖框333及335之一或兩組中的主圖框。影像常式310的位置評估元件317可以分析新捕捉圖框與由SLAM候選元件314及CNN候選元件316之一或兩者所提供的各個候選主圖框間的差異的狀況,以首先指明候選主圖框中之一主圖框,其與新捕捉圖框的透視圖在其透視(以角度及距離)看來差異最少,以識別候選主圖框中之在一位置被捕捉的一候選主圖框,其位置較其他任一選主圖框更接近新捕捉圖框的位置。於識別出最接近候選主圖框的同時,位置評估元件317然後可以推導出該新捕捉圖框與最接近候選主圖框間的位置間之差異的評估。該評估然後可以被使用以決定行動裝置100相對於最接近候選圖框被捕捉相關的位置的現行位置。在也有捕捉位置資料137可用的實施例中,在行動裝置100的現行位置的捕捉位置資料137的指示可以為位置評估元件317所擷取並使用作為額外輸入,以決定行動裝置100的現行位置。行動裝置100的現行位置然後可以被儲存在
儲存器160或560中,作為位置資料537。
能夠識別至少一候選主圖框以被使用於決定行動裝置100的現行位置的事實可以為是否圖700的路徑701的迴路閉合已經找到的指示。例如,可以是行動裝置100已經循著一或更多路徑701回到沿著路徑701的早先已經歷的部份的一點而發現交叉704。評估元件317可以另外分析由行動裝置100所採的路徑,以比較維持在圖資料庫337內的圖700,以決定是否剛找到迴路閉合而到達其現行位置。如果已經為行動裝置100所採到達其現行位置的路徑為已知引導到現行位置,則將不會有新的迴路閉合被找到。然而,如果為行動裝置100所採已到達現行位置的路徑不是已知引導到現行位置,則已經找到新迴路閉合,及位置評估元件317可以觸發圖常式370的產生元件373,以更新圖資料庫337,以包含新的迴路閉合。
在各種實施例中,處理器電路150及/或550可以包含各種可購得之處理器之任一。再者,一或更多這些處理器電路可以包含多重處理器、多線程處理器、多核心處理器(不管多核心是否共同存在於相同或分開晶粒上)、及/或其他類型的多處理器架構,多數實體分開處理器可以以該架構以其他方式鏈結者。
在各種實施例中,儲存器160及/或560可以根據各種資訊儲存技術之任一,可能包含需要不中斷提供電力的揮發技術,及可能包含帶有使用可或可不移除的機器可讀取儲存媒體的技術。因此,各個這些儲存器
可以包含各種類型(或類型組合)儲存裝置之任一,包含但並不限於唯讀記憶體(ROM)、隨機存取記憶體(RAM)、動態RAM(DRAM)、雙資料率DRAM(DDR-DRAM)、同步DRAM(SDRAM)、靜態RAM(SRAM)、可程式ROM(PROM)、可抹除可程式ROM(EPROM)、電氣可抹除可程式ROM(EEPROM)、快閃記憶體、聚合物記憶體(例如,鐵電聚合物記憶體)、雙向記憶體、相變或鐵電記憶體、矽-氧化物-氮化物-氧化物-矽(SONOS)記憶體、磁或光學卡、一或更多個別磁碟機或多數儲存裝置,其被組織成一或更多陣列(例如,多重磁碟機被組織成冗餘陣列的獨立碟陣列,或RAID陣列)。應注意的是,雖然各個這些儲存器被描繪為單一方塊,但這些之一或更多者可以包含多重儲存裝置,這些係可以根據不同儲存技術。因此,例如,各個這些描繪儲存器之一或多者可以表示光碟機或快閃記憶體這些的組合,藉由這些程式及/或資料可以被儲存並傳輸於一些形式的機器可讀取儲存媒體上、磁碟機上用以本地儲存程式及/或資料相當延長的時間、及一或更多揮發固態記憶體裝置,致使對程式及/或資料的相當快速存取(例如,SRAM或DRAM)。應注意的是,各個這些儲存器可以根據相同儲存技術由多重儲存元件作成,但也可以由於用途特殊性,而被分開維持(例如,一些DRAM裝置被使用作為主儲存器,而其他DRAM裝置被使用作為圖形控制器的不同圖框緩衝器)。
在各種實施例中,至少一部份的網路介面190
及/或590可以利用各種發信技術之任一,使得這些裝置能如所述被耦接至其他裝置。各個這些介面包含提供至少一部份必要功能的電路,以完成此耦接。然而,各個這些介面也可以至少部份以為處理器電路的對應者所執行之指令順序所實施(例如,實施協定堆疊或其他特性)。當電及/或光導纜線被利用時,這些介面可以利用符合各種工業標準之任一的發信及/或協定,包含但並不限於RS-232C、RS-422、USB、乙太(IEEE-802.3)或IEEE-1394。當帶有使用無線信號傳輸時,這些介面可以利用符合各種工業標準之任一的發信及/或協定,包含但並不限於IEEE802.11a、802.11b、802.11g、802.16、802.20(通稱為“行動寬頻無線接取”);藍牙;ZigBee;或蜂巢無線電話服務,例如,具有一般封包無線電服務的GSM(GSM/GPRS)、CDMA/1xRTT、用於全球演進的加強資料率(EDGE)、唯演進資料/最佳化(EV-DO)、用於資料及語音的演進(EV-DV)、高速下鏈封包接取(HSDPA)、高速上鏈封包接取(HSUPA)、4G LTE等等。
圖6例示邏輯流程2100的實施例。邏輯流程2100可以表示為在此所述一或更多實施例所執行的一些或全部的運算。更明確地說,邏輯流程2100可以例示為處理器電路150及550之一或兩者所執行及/或為行動裝置100或控制裝置500的其他元件所執行的運算,以執行控制常式140、影像常式310、圖常式370及控制常式540之一或多者。更明確地說,邏輯流程2100係針對於
產生確定區域的圖及相關於沿著該圖的路徑的位置的兩分開組主圖框的部份。
在2110,行動裝置或控制裝置(例如,行動裝置100的處理器電路150或控制裝置500的處理器電路550)的處理器電路接收在確定區域內該行動裝置的周遭的影像的捕捉圖框(例如,捕捉確定區域300內的位置並被儲存為捕捉影像資料131的一部份的影像的圖框)。如所討論,捕捉圖框可以當行動裝置以自己供電或被攜帶的結果而移動於確定區域附近時被捕捉。
在2120,處理器電路可以檢查是否循環時間間隔、行動裝置所行進的距離、捕捉圖框的數量等已經經過。如果此間隔已經過,則在2122,捕捉圖框可以為處理器電路所選擇,變成被加入至與使用SLAM實施法相關的間隔為主的主圖框組的新主圖框。然後,在2124,處理器電路可以以新主圖框被捕捉的在圖中的在確定區域的圖內的位置指示,來擴充在圖資料庫中之圖(例如,在圖資料庫337中所述之圖700)。如所討論,在行動裝置在確定區域內的現行位置也被捕捉的位置資料(例如捕捉位置資料137)實施例中,則此捕捉位置資料可以被用以額外地將新主圖框被捕捉的圖中的位置相關至確定區域內的實體位置。
在2130,在圖的擴充2124後或在2120決定循環間隔並未經過時,處理器電路可以使用CNN引擎(例如,CNN引擎312)來導出與所捕捉圖框的內容有關的碼
值及指示。如前所討論,CNN引擎可以實施為以處理器電路可執行之指令或者是硬體為主的數位邏輯。在2132,CNN引擎的全連接層或其他邏輯可以為處理器電路所使用以維度上降低該碼值(例如,將以三維代表點座標的值轉換為以一維或二維代表點座標的一值)。
在2134,處理器電路可以決定有關於捕捉圖框的碼值所代表的座標點與在有關於使用CNN實施法(例如,CNN引擎312)的差異為主的主圖框組中的各個主圖框的碼值所代表的座標點間的歐幾里德距離。在2140,處理器電路可以檢查是否在2134所決定的歐幾里德距離大於用於選擇捕捉圖框變成主圖框的臨限歐幾里德距離。在2140,如果這些歐幾里德距離之任一超出該臨限,則捕捉圖框可以為處理器電路所選擇變成新的主圖框,予以被加入至使用CNN有關的差異為主的主圖框組中。然後,在2144,處理器電路可以以新主圖框被捕捉的圖中的位置之指示來擴充該圖。再者,在行動裝置在確定區域內的現行位置的位置資料表示也被捕捉的實施例中,此等捕捉位置資料可以被用以額外地將新主圖框在圖中被捕捉的位置相關至在確定區域內的實體位置。
在2150,在2144的圖的擴充後,或者在2140決定並無歐幾里德距離超出臨限時,處理器電路可以檢查是否現行學習模式已經結束。如同已討論,在一不同學習模式的實施例中,其中在使用圖與影像資料庫以決定行動裝置的現行位置之前,先產生圖與影像資料庫,此學習模
式可以透過控制裝置的操作者所提供的命令(例如,透過控制520及/或顯示器580所提供的使用者介面的操作)加以結束。或者,如已討論,此一學習模式也可以回應於已經符合預定條件而自動結束,預定條件係例如,已經經過預定時間量、行動裝置已經行進一預定距離、或自從最後一次捕捉圖框被找到足夠與差異為主的主圖框組內的所有主圖框不同並被選擇加入其中作為新圖框以來,已經捕捉了預定數量的圖框。如果在2150,此學習模式並未結束,則在2110處理器電路可以接收另一捕捉圖框。
圖7A、7B及7C一起例示邏輯流程2200的實施例。邏輯流程2200可以代表為在此所述的一或更多實施例所執行的一部份或全部操作。更明確地說,邏輯流程2200可以例示為處理器電路150和550之一或兩者所執行的運算,以執行控制常式140、影像常式130、圖常式370及控制常式540之一或更多,及/或以行動裝置100或控制裝置500的其他元件所執行的運算。尤其,邏輯流程2200係聚焦於使用兩分開的主圖框組以相關至沿著圖的路徑的位置,以決定行動裝置的現行位置。
在2210,行動裝置或控制裝置的處理器電路(例如,行動裝置100的處理器電路150或控制裝置500的處理器電路550)接收行動裝置在確定區域內的周遭的影像的捕捉圖框(例如,在確定區域300內的位置捕捉並被儲存作為捕捉影像資料131的一部份的影像圖框)。如所討論,捕捉圖框可以在行動裝置以其自己動力或被攜帶而
移動通過確定區域時被捕捉。
在2220,處理器電路可以使用CNN引擎(例如,CNN引擎312)以推導出有關於捕捉圖框的內容的碼值及捕捉圖框的內容的指示。如前所討論,CNN引擎可以實施為可為處理器電路所執行之指令或者硬體為主的數位邏輯。在2222,CNN引擎的全連接層或其他邏輯可以為處理器電路所使用以維度上降低該碼值(例如由以三維表示的座標點的值轉換為以一維或二維所表示的座標點的值)。在2224,處理器電路可以決定與捕捉圖框相關的碼值所表示的座標點與有關於使用CNN實施法(例如,CNN引擎312)的有關於在差異為主的主圖框組中的各個主圖框的碼值所表示的座標點間之歐幾里德距離,以識別足夠類似捕捉圖框的候選主圖框,其中在這些點間的歐幾里德距離係小於預定臨限。
在2230,至少部份平行於2220、2222、及/或2224發生,該處理器電路比較所捕捉圖框與有關於使用SLAM實施法的間隔為主的主圖框組中的各個主圖框,以識別候選主圖框,其對捕捉圖框具有至少預定臨限程度的類似性。如此作,處理器電路可以使用各種演算法之任一,以可定量地執行比較,例如SIFT演算法。在2240,處理器電路可以由2220至2224的CNN為主方法或由2230的SIFT(或其他方法)中,檢查究竟是否有任何候選主圖框。
如果在2240有任何候選主圖框,則在2250,
處理器電路可以分析各個候選主圖框的內容,與所述捕捉圖框的內容相比,以識別出一候選主圖框,其在較任一其他候選主圖框的被捕捉圖框的捕捉位置更接近的位置被捕捉。在2252,處理器電路可以然後藉由推導該最接近候選主圖框被捕捉的位置與該捕捉圖框被捕捉的位置間的距離評估,來推導該行動裝置的現行位置。在2254,處理器電路可以然後比較為行動裝置所採用到達其現行位置的路徑與圖中的已知路徑。在2260,如果行動裝置並未遵循圖中之已知路徑來到達行動裝置的現行位置,則在2262,處理器電路可以以在該圖的路徑中的迴路閉合於該行動裝置的現行位置的指示來擴充該圖,使得在該行動裝置的現行位置可能有交叉。不論在2260決定行動裝置有否遵循圖中之已知路徑到達其現行位置,處理器電路可以然後在2210接收另一捕捉圖框。
然而,如果在2240沒有候選主圖框,則如所討論,假設該捕捉圖框為確定區域的一部份,其中並未有任何主圖框被捕捉並儲存在兩主圖框組之一中。在2270,處理器電路可以檢查是否循環時間段、行動裝置所行經的距離、捕捉圖框的數量等已經經過。如果是,則在2272,捕捉圖框可以為處理器電路所選擇以變成加入至間隔為主的主圖框組的新主圖框,該間隔為主的主圖框組係有關於SLAM實施法的使用。然後,在2274,處理器電路可以以在圖中新主圖框被捕捉的位置的指示來擴充該圖。再者,在位置資料表示行動裝置的現行位置在確定區
域內被捕捉(例如,捕捉位置資料137)的實施例中,則該捕捉位置資料可以被用以額外地將圖中之新主圖框被捕捉的位置相關至在確定區域內的實體位置。在2280,處理器電路可以檢查是否早先在2224決定的歐幾里德距離大於用以選擇捕捉圖框成為主圖框的臨限歐幾里德距離。在2280,如果這些歐幾里德距離之任一超出該臨限,則捕捉圖框可以被處理器電路所選擇以變成被加入至有關於使用CNN的差異為主的主圖框組的一新主圖框。然後,在2284,處理器電路可以以新主圖框在該圖中被捕捉的位置的指示擴充該圖。在2210,該處理器電路可以然後接收另一捕捉圖框。
圖8例示適用以實施先前所述之各種實施例之例示處理架構3000的實施例。更明確地說,處理架構3000(或其變化)可以實施為裝置100、200、304、305或500及/或控制器400之一或多數的部份。應注意,處理架構3000的元件係為給定參考號碼,其中最後兩位數對應於早先描繪或描述為這些裝置及/或控制器的部份的至少一些元件的元件符號的最後兩位數。如此作以協助各個元件關聯性。
處理架構3000包含常用於數位處理的的各種元件,包含但並不限於一或更多處理器、多核心處理器、共處理器、記憶體單元、晶片組、控制器、週邊、介面、振盪器、計時裝置、視訊卡、音訊卡、多媒體輸入/輸出(I/O)元件、電源等等。如在本案中所用,用語“系統”及
“元件”係想要表示一裝置實體,其中執行有數位處理,該實體為硬體、軟體與硬體的組合、軟體或執行中之軟體,其例子係為此描繪例示處理架構所提供。例如,元件可以但並不限於執行於處理器電路上的處理、處理器電路本身、可以利用光及/或磁儲存媒體之儲存裝置(例如,硬碟機、呈陣列排列之多儲存機器等等)、軟體物件、可執行之指令順序、執行線程、程式、及/或整個裝置(例如,整個電腦)。如所例示,執行於伺服器上的應用程式與該伺服器可以為一元件。一或更多元件可以內藏於處理及/或執行線程內,及元件可以本地化於一裝置上及/或分散於兩或更多裝置之間。再者,元件可以為各種類型通訊媒體所通訊地彼此耦接,以協調運算。協調可能涉及單向或雙向的資訊交換。例如,元件可以以通訊媒體上傳遞的信號的形式,傳遞資訊。該資訊可以實施為配置至一或更多信號線的信號。信息(包含命令、狀態、位址或資料信息)可以為此等信號之一或可以為多數此等信號,並可以串列或實質並列的方式傳送通過各種連接及/或介面之任一。
如所繪,在實施處理架構3000中,一裝置包含至少一處理器電路950、儲存器960、至其他裝置的介面990、及耦接器959。如將解釋,取決於實施該處理架構3000的裝置的各種態樣,包含其想要用途及/或使用狀態,此一裝置可以更包含額外元件,例如但並不限於顯示介面985。
耦接器959包含一或更多匯流排、點對點互
連、收發器、緩衝器、交點或交換、及/或其他導體及/或邏輯,其能通訊地耦接至少處理器電路950至儲存器960。耦接器959可以更將處理器電路950耦接至介面990、音訊子系統970及顯示介面985之一或多者(取決於這些及/或其他元件之哪些有出現)。隨著處理器電路950被耦接器959所如此耦接,處理器電路950能執行以上所詳述之各種任務,以供上述裝置的無論哪個實施處理架構3000。耦接器959可以以各種技術之一或技術組合加以實施,藉由該技術信號可以被光及/或電方式傳達。再者,耦接器959的至少一部份可以利用符合各式各樣工業標準的任一的時序及/或協定,包含但並不限於加速圖形埠(AGP)、CardBus、擴充工業標準架構(E-ISA)、微通道架構(MCA)、NuBus、週邊元件互連(擴充)(PCI-X)、PCI-快速(PCI-E)、個人電腦記憶體卡國際協會(PCMCIA)匯流排、HyperTransportTM、QuickPath、及類似物。
如前所討論,處理器電路950(可以對應於處理器電路450)可以包含各式各樣可購得處理器的任一,利用各式各樣技術之任一並以若干方式之任一實體組合的一或更多核心加以實施。
如前所討論,儲存器960(其可以對應於儲存器460)可以根據各式各樣技術之任一或技術的組合,由一或更多不同儲存裝置構成。更明確地說,如所繪,儲存器960可以包含一或更多的揮發儲存器961(例如,根據RAM技術的一或更多形式的固態儲存器)、非揮發儲存器
962(例如,固態、鐵磁或其他儲存器,其不需經常提供電力來保留其內容者)、及可移除媒體儲存器963(例如,可移除碟片或固態記憶體卡儲存器,資訊可以在裝置之間被傳達)。儲存器960的描繪可能包含多數不同類型儲存器,其被認知在裝置中使用一種類型以上的儲存裝置,其中一種類型提供使得處理器電路950完成更快速演算資料的相對快速讀取反寫入能力(但可能使用經常需要電力的“揮發”技術),而另一類型則提供相對高密度的非揮發儲存器(但似乎提供相對緩慢的讀取與寫入能力)。
假設有利用不同技術的不同儲存裝置的經常不同特徵,此等不同儲存裝置也經常透過經由不同介面耦接至其不同儲存裝置的不同儲存控制器,來被耦接至裝置的其他部份。例如,當揮發儲存器961出現並基於RAM技術時,揮發儲存器961可以透過儲存控制器965a被通訊地耦接至耦接器959,該儲存控制器965a提供適當介面給可能利用列與行定址的揮發儲存器961,及儲存控制器965a可以執行列再新及/或其他維護任務,以協助保存儲存於揮發儲存器961內的資訊。作為另一例子,非揮發儲存器962出現並包含一或更多鐵磁及/或固態碟機時,非揮發儲存器962可以透過儲存控制器965b通訊地耦接至耦接器959,該儲存控制器965b對非揮發儲存器962提供適當介面,其或許利用資訊方塊及/或磁柱與扇區的定址。作為另一例子,當可移除媒體儲存器963出現並包含利用機器可讀取儲存媒體969之一或更多片段的一或更多
光及/或固態碟機時,可移除媒體儲存器963可以透過儲存控制器965c通訊地耦接至耦接器959,該儲存控制器965c提供至可移除媒體儲存器963的適當介面,其或許利用資訊方塊的定址,並且,其中儲存控制器965c可以以特定於延長機器可讀取儲存媒體969的壽命的方式,協調讀取、抹除及寫入運算。
揮發儲存器961或非揮發儲存器962之一或另一個可以包含以機器可讀取儲存媒體形式表示的製造物品,取決於各個所根據的技術,在該媒體上,儲存有可以為處理器電路950所執行的指令順序的常式。作為例子,當非揮發儲存器962包含磁鐵為主碟機(例如,所謂“硬碟機”)時,各個此等碟機典型利用一或更多旋轉磁盤,其上沈積有磁反應粒子的塗層並磁指向呈各種圖案,以類似於如軟碟的儲存媒體的方式儲存例如指令順序的資訊。作為另一例子,非揮發儲存器962可以由固態儲存裝置排所作成,以類似於微型快閃卡的方式儲存例如指令順序的資訊。再者,也常見在不同時間於一裝置中採用不同類型的儲存裝置,以儲存可執行常式及/或資料。因此,包含予以為處理器電路950所執行之指令順序的常式可以初始被儲存在機器可讀取儲存媒體969上,及可移除媒體儲存器963可以被隨後使用,以複製該常式至非揮發儲存器962作更長期的儲存,而不必持續出現機器可讀取儲存媒體969及/或揮發儲存器961,以當該常式被執行時,致使處理器電路950更快速存取。
如前所討論,介面990(其可以對應於介面490)可以利用對應於各種通訊技術之任一的各種發信技術的任一,這些技術可以被用以通訊地耦接一裝置至一或更多其他裝置。再者,各種形式之有線或無線發信之一或兩者可以被利用以使得處理器電路950可能透過網路(例如網路999)或互連組的網路與輸入/輸出裝置(例如描述例示之鍵盤920或印表機925)及/或其他裝置互動。在認知經常有必須為任一裝置所支援的多類型發信及/或協定的顯著不同的特性時,介面990被描繪為包含多數不同介面控制器995a、995b、及995c。介面控制器995a可以利用各種類型的有線數位串列介面或射頻無線介面之任一,以自使用者輸入裝置,例如所描繪鍵盤920接收串列發射的信息。介面控制器995b可以利用各種纜線為主或無線發信、時序及/或協定的任一,以透過所繪網路999(也許是由一或更多鏈路、更小網路或許網際網路所組成的網路)接取其他裝置。更明確地說,介面控制器995b可以加入一或更多射頻(RF)收發器及/或可以耦接至一或更多天線991(其可以加入為介面990的一部份),以與一或更多其他裝置的天線交換RF無線信號,作為在所繪網路999上的無線通訊的一部份。介面控制器995c可以利用各種導電纜線之任一以促成串列或並列信號傳輸以傳輸資料至所繪印表機925。透過介面990的一或更多介面控制器通訊耦接之其他裝置例包含但並不限於:麥克風,以監視人員的聲音來接受這些人員經由他們所能發出語音或其他聲音
所發信的命令及/或資料、遙控器、光筆、讀卡機、指紋讀取機、虛擬實境互動手套、圖形輸入平板、搖桿、其他鍵盤、虹膜掃描器、觸控螢幕的觸控輸入元件、軌跡球、各種感應器、攝影機或攝影陣列,以監視人員的移動,並接收這些人員經由姿勢及/或臉部表情所發出的命令及/或資料、雷射印表機、噴墨印表機、機械機器人、研磨機器等等。
當裝置通訊地耦接至(或許實質併入)顯示器(例如所繪例如顯示器980)時,此實施該處理架構3000的裝置也可以包含顯示介面985。雖然更一般類型介面可以被用以通訊耦接至顯示器,但略微特殊額外處理可以經常需要視覺顯示各種形式內容於顯示器上,以及略微特殊本質的纜線為主介面被使用,經常想要提供不同的顯示介面。可以為顯示介面985所使用以通訊耦接顯示器980的有線及/或無線發信技術可以使用符合各種工業標準之任一的發信及/或協定包含但並不限於各種類比視訊介面之一,數位視訊介面(DVI)、顯示埠等等。
圖9A及9B為依據實施例之用以識別在圖形工作負載中的效能瓶頸的處理系統3100的方塊圖。在各種實施例中,系統3100包含一或更多處理器3102及一或更多圖形處理器3108,並可以為單一處理器桌上型系統、多處理器工作站系統、或具有大量處理器3102或處理器核心3107的伺服器系統。在一實施例中,系統3100為處理平台,加入有系統晶片(SoC)積體電路,以用於行
動、手持或內嵌式裝置中。
系統3100的實施例可以包含(或併入)伺服器為主遊戲平台、遊戲機台(包含遊戲及媒體機台)、行動遊戲機台、手持遊戲機台、或線上遊戲機台。在一些實施例中,系統3100為行動電話、智慧手機、平板計算裝置或行動網際網路裝置。資料處理系統3100也可以包含、耦接或整合於穿戴式裝置內,例如智慧手錶穿戴式裝置、智慧眼鏡裝置、擴充實境裝置、或虛擬實境裝置。在一些實施例中,系統3100為電視或機上盒裝置,其具有一或更多處理器3102及為一或更多圖形處理器3108所產生的圖形介面。
在一些實施例中,一或更多處理器3102各個包含一或更多處理器核心3107,以處理指令,其當被執行時,執行用於系統的運算及使用者軟體。在一些實施例中,各個一或更多處理器核心3107被組態以處理一特定指令集3109。在一些實施例中,指令集3109可以促成複雜指令集計算(CISC)、精簡指令集計算(RISC)、或經由很長指令字(VLIW)的計算。多處理器核心107可以各個處理不同指令集109,其可以包含指令,用以促成其他指令集的仿真。處理器核心3107也可以包含其他處理裝置,例如數位信號處理器(DSP)。
在一些實施例中,處理器3102包含快取記憶體3104。取決於架構,處理器3102可以具有單一內部快取或多階的內部快取。在一些實施例中,快取記憶體被處
理器3102的各種元件所分享。在一些實施例中,處理器3102也使用外部快取(例如,第3階(L3)快取或最後階快取(LLC))(未示出),其可以使用已知快取共聚技術分享於處理器核心3107之間。暫存器檔案3106被另外包含於處理器3102內,其可以包含不同類型的暫存器,用以儲存不同類型資料(例如,整數暫存器、浮點暫存器、狀態暫存器、及指令指標暫存器)。一些暫存器可以為通用暫存器,而其他暫存器則可以對處理器3102的設計為特定的。暫存器檔案3106內的不同暫存器被暫存器位址所識別。例如,暫存器檔案3106被描繪包含暫存器位址3141-1、3141-2、3141-3至3141-N。
在一些實施例中,處理器3102被耦接至處理器匯流排3110,以傳送通訊信號,例如位址、資料或控制信號於處理器3102與系統3100中的其他元件之間。在一實施例中,系統3100使用例示“集線器”系統架構,其包含記憶體控制器集線器3116及輸入輸出(I/O)控制器集線器3130。記憶體控制器集線器3116可以促成於記憶體裝置及系統3100的其他元件間的通訊,同時,I/O控制器集線器(ICH)3130也提供經由本地I/O匯流排至I/O裝置的連接。在一實施例中,記憶體控制器集線器3116的邏輯被整合入處理器內。
記憶體裝置3120可以為動態隨機存取記憶體(DRAM)裝置、靜態隨機存取記憶體(SRAM)裝置、快閃記憶體裝置、相變記憶體裝置、或一些其他記憶體裝置,具
有適當效能以作為處理記憶體者。在一實施例中,記憶體裝置3120可以操作為用於系統3100的系統記憶體,以儲存圖形工作負載資料3122及指令3121,以當一或更多處理器3102執行應用程式或處理時使用。記憶體控制器集線器3116也耦接選用外部圖形處理器3112,其可以與處理器3102中的一或更多圖形處理器3108通訊,以執行圖形與媒體操作。
在一些實施例中,ICH 3130致使週邊經由高速I/O匯流排連接記憶體裝置3120與處理器3102。I/O週邊包含但並不限於音訊控制器3146、韌體介面3128、無線收發器3126(例如,Wi-Fi、藍牙)、資料儲存裝置3124(例如硬碟機、快閃記憶體,等等)、及傳統I/O控制器3140,用以耦接傳統(例如,個人系統2(PS/2))裝置至系統。一或更多通用串列匯流排(USB)控制器3142連接例如鍵盤與滑鼠3144組合的輸入裝置。網路控制器3134也可以耦接至ICH 3130。在一些實施例中,高效網路控制器(未示出)耦接至處理器匯流排3110。將了解的是,所示系統3100為例示性並非限制性,因為也可以使用不同組態的其他類型的資料處理系統。例如,ICH 3130可以整合於一或更多處理器3102內,或者,記憶體控制器集線器3116與ICH 3130可以被整合入分開的外部圖形處理器,例如外部圖形處理器3112內。
在操作期間,處理器核心3107可以執行指令,以識別為圖形處理器3108及/或外部圖形處理器3112
執行之圖形工作負載(例如,表示為圖18的3D圖形應用程式4010及/或圖形物件4016,或類似物)中的效能瓶頸。尤其,處理器核心3107可以執行包含控制常式3123的指令3121,以根據事件的數量,產生事件優先權樹3125。各個事件可以包含簽章與權重。在一些例子中,簽章包含在執行於圖形處理器3108及/或外部圖形處理器3112上時,事件行為的指示。例如,簽章可以包含瓶頸發生的區域或架構區塊(例如,參考圖16,或類似物)的指示。在一些例子中,事件優先權樹3125包含母節點及葉節點,其中母節點對應於分享一特定架構元件(例如,著色器,或類似物)的事件的葉節點。母及葉節點可以根據事件的權重(或組合權重)加以儲存。
另外,本案可以被實施以識別予以描繪的視訊的圖框中的效能瓶頸。尤其,以上討論的事件可以對應於多重圖框。所述圖框可以根據對應於各個圖框的事件的組合權重加以排序。
因此,根據事件優先權樹及/或排序的圖框,效能瓶頸可以被識別出及此等瓶頸的分析可以增加。因為本案可以應用至圖形工作負載及圖形處理器,圖10-20被給定以對本案提供清晰度與寬度。
圖10為用以抑制冗餘源運算元讀取與複製讀取請求被抑制的用於運算元的讀取資料的處理器3200的實施例之方塊圖。在一些例子中,處理器3200可以具有一或更多處理器核心3202A-3202N、整合記憶體控制器
3214、及整合圖形處理器3208。圖10之具有與在此之其他圖的元件相同的元件符號(或名稱)的這些元件可以以在此所述之類似方式操作或動作,但並不限於此。處理器3200可以包含額外核心,多達並包含為虛線方塊所表示的額外核心3202N。各個處理器核心3202A-3202N包含一或更多內部快取單元3204A-3204N。在一些實施例中,各個處理器核心也可以存取一或更多共享快取單元3206。
內部快取單元3204A-3204N與共享快取單元3206代表在處理器3200內的快取記憶體階層。快取記憶體階層可以包含在各個處理器核心內的至少一階的指令與資料快取,及一或更多階共享中階快取,例如第2階(L2)、第3階(L3)、第4階(L4)或其他階的快取,其中在外部記憶體前的最高階快取被分類為LLC。在一些實施例中,快取階層邏輯維持在各種快取單元3206與3204A-3204N間的內聚。
在一些實施例中,處理器3200也可以包含一組一或更多匯流排控制器單元3216及系統代理核心3210。該一或更多匯流排控制器單元3216管理一組週邊匯流排,例如,一或更多週邊元件互連匯流排(例如,PCI、PCI快速)。系統代理核心3210提供用於各種處理器元件的管理功能。在一些實施例中,系統代理核心3210包含一或更多整合記憶體控制器3214,以管理對各種外部記憶體裝置(未示出)的存取。
在一些實施例中,一或更多處理器核心
3202A-3202N包含同時多線程的支援。在此實施例中,系統代理核心3210包含用以在多線程處理期間,協調與操作核心3202A-3202N的元件。系統代理核心3210可以額外包含電力控制單元(PCU),其包含邏輯與元件,用以調整處理器核心3202A-3202N與圖形處理器3208的電力狀態。
在一些實施例中,處理器3200另外包含圖形處理器3208,以執行圖形處理運算。在一些實施例中,圖形處理器3208耦接該組共享快取單元3206,及該系統代理核心3210,其包含一或更多整合記憶體控制器3214。在一些實施例中,顯示控制器3211係耦接至圖形處理器3208,以驅動圖形處理器輸出至一或更多耦接的顯示器。在一些實施例中,顯示控制器3211可以為分開模組,其經由至少一互連耦接至圖形處理器,或者顯示控制器3211可以整合於圖形處理器3208或系統代理核心3210內。
在一些實施例中,環為主互連單元3212(環互連)係被使用以耦接處理器3200的內部元件。然而,也可以使用替代互連單元,例如點對點互連、開關互連、或其他技術,包含在本技藝中已知的技術。在一些實施例中,圖形處理器3208經由I/O鏈結3213耦接環互連3212。
例示I/O鏈路3213代表各種I/O互連的至少之一,包含封裝上I/O互連,其促成於各種處理器元件與高效嵌式記憶體3218,例如eDRAM模組間的通訊。在一
些實施例中,各個處理器核心3202A-3202N與圖形處理器3208使用嵌式記憶體3218作為共享最後階快取。
在一些實施例中,處理器核心3202A-3202N為執行相同指令集架構的同質核心。在另一實施例中,以指令集架構(ISA)看來,處理器核心3202A-3202N為異質,其中一或更多處理器核心3202A-3202N執行第一指令集及至少一其他核心執行該第一指令集的子集或不同的指令集。在一實施例中,以微架構看來,處理器核心3202A-3202N為異質,其中一或更多核心具有相對較高功率消耗並且耦接至具有較低功率消耗的一或更多能力核心。另外,處理器3200可以實施於一或更多晶片上,或除了其他元件外,成為具有所示元件的SoC積體電路。
圖11為用以抑制冗餘源運算元讀取及複製讀取運算元的圖形處理器3300的方塊圖。在一些例子中,處理器3300可以為分開的圖形處理單元,或也可以為整合有多數處理核心的圖形處理器。在一些實施例中,圖形處理器經由一記憶體映射I/O介面傳送至在圖形處理器上的暫存器並之命令被放入處理器記憶體中。在一些實施例中,圖形處理器3300包含記憶體介面3314,以存取記憶體。記憶體介面3314可以為至本地記憶體、一或更多內部快取、一或更多共享外部快取、及/或至系統記憶體的介面。
在一些實施例中,圖形處理器3300也包含顯示控制器3202,以驅動顯示器輸出資料至顯示裝置
3320。顯示控制器3302包含用於該顯示器的一或更多覆蓋平面的硬體及視訊或使用者介面元件的多層的組合物。在一些實施例中,圖形處理器3300包含視訊編解碼引擎3306,用以編碼、解碼或轉碼媒體為一或更多媒體編碼格式,或由其轉換出、或於其間轉換,該等格式包含但並不限移動圖片專家群(MPEG)格式,例如,MPEG-2、先進視訊編碼(AVC)格式,例如H.264/MPEG-4 AVC、及動作圖片及電視工程師協會(SMPTE)421M/VC-1、及結合照片專家群(JPEG)格式,例如JPEG,與動作JPEG(MJPEG)格式。
在一些實施例中,圖形處理器3300包含方塊影像傳送(BLIT)引擎3304,用以執行二維(2D)光柵運算,包含例如位元邊界方塊傳送。然而,在一實施例中,2D圖形運算係使用圖形處理引擎(GPE)3310的一或更多元件加以執行。在一些實施例中,GPE引擎3310係為用以執行包含三維(3D)圖形運算與媒體運算的圖形運算的計算引擎。
在一些實施例中,GPE 3310包含用以執行3D運算的3D管線3312,例如,使用處理功能作動於3D基元形狀(例如,矩形、三角形等等)以例如描繪三維影像與場景。3D管線3312包含可程式及固定功能元件,其對3D/媒體子系統3315,執行在該元件內的各種任務及/或子執行線程。雖然3D管線3312可以用以執行媒體運算,但GPE 3310的實施例也包含媒體管線3316,其可以特定地
被使用以執行媒體運算,例如,視訊後處理與影像加強。
在一些實施例中,媒體管線3316包含固定功能或可程式邏輯單元,用以執行一或更多特殊化媒體運算,例如視訊解碼加速、視訊解交錯、及視訊編碼加速,以替代或代表視訊編解碼引擎3306。在一些實施例中,媒體管線3316另包含線程生成單元,用以生成用以執行於3D/媒體子系統3315上的線程。所生成線程執行用以在包含在3D/媒體子系統3315中的一或更多圖形執行單元上作媒體運算的計算。
在一些實施例中,3D/媒體子系統3315包含用以執行為3D管線3312及媒體管線3316所生成的線程的邏輯。在一實施例中,這些管線對3D/媒體子系統3315送出線程執行請求,3D/媒體子系統3315包含線程調度邏輯,用以仲裁及調度各種請求至可用的線程執行資源。執行資源包含一陣列的圖形執行單元,用以處理3D及媒體線程。在一些實施例中,3D/媒體子系統3315包含用於線程指令及資料的一或更多內部快取。在一些實施例中,子系統也包含共享記憶體,包含有暫存器及可定址記憶體,用以分享在線程間的資料並儲存輸出資料。
圖12為依據一些實施例之圖形處理器的圖形處理引擎3410的方塊圖。在一實施例中,GPE 3410為示於圖11的GPE 3310的一版本。圖12的元件中之具有與其他圖相同元件符號(或名稱)者可以以類似於對前述所述類似的方式加以操作或動作,但也並不限於此。
在一些實施例中,GPE 3410耦接至命令串流器3403,其提供命令串流給GPE 3D與媒體管線3412、3416。在一些實施例中,命令串流器3403被耦接至記憶體,其可以為系統記憶體、或一或更多內部快取記憶體及共享快取記憶體。在一些實施例中,命令串流器3403自記憶體接收命令並將這些命令發送給3D管線3412及/或媒體管線3416。命令為由環緩衝器擷取的指引,該環緩衝器儲存用於3D及媒體管線3412、3416的命令。在一實施例中,環緩衝器可以另包含儲存多批次多重命令的批次命令緩衝器。3D與媒體管線3412、3416藉由經由在個別管線內的邏輯執行運算或者調度一或更多執行線程至執行單元陣列3414,來處理該等命令。在一些實施例中,執行單元陣列3414為可縮放,使得該陣列根據GPE 3410的目標能力與效能位準,而包含可變數量的執行單元。
在一些實施例中,取樣引擎3430耦接記憶體(例如,快取記憶體或系統記憶體)與執行單元陣列3414。在一些實施例中,取樣引擎3430提供記憶體存取機制給執行單元陣列3414,這允許執行陣列3414自記憶體讀取圖形及媒體資料。在一些實施例中,取樣引擎3430包含邏輯,用以執行媒體的特殊化影像取樣運算。
在一些實施例中,在取樣引擎3430中的特殊化媒體取樣邏輯包含:去雜訊/解交錯模組3432、動作評估模組3434、及影像縮放與過濾模組3436。在一些實施例中,去雜訊/解交錯模組3432包含邏輯,用以對解碼視
訊資料執行一或更多去雜訊或解交錯演算法。解交錯邏輯將交錯視訊內容的交替欄位組合成單一圖框的視訊。去雜訊邏輯降低或移除來自視訊與影像資料的資料雜訊。在一些實施例中,去雜訊邏輯和解交錯邏輯為動作適應並根據在視訊資料中檢測的動作的數量,使用空間或時間過濾。在一些實施例中,去雜訊/解交錯模組3432包含專用動作檢測邏輯(例如,在動作評估引擎3434內)。
在一些實施例中,動作評估引擎3434藉由執行例如對視訊資料的動作向量評估與預測的視訊加速功能,提供用於視訊操作的硬體加速。動作評估引擎決定動作向量,其描述在連續視訊圖框間的影像資料的轉換。在一些實施例中,圖形處理器媒體編解碼器使用視訊動作評估引擎3434以執行視訊在巨方塊級的運算,否則,其將太計算密集而不能以通用處理器加以執行。在一些實施例中,動作評估引擎3434通常可為圖形處理器元件所使用以協助視訊解碼及處理功能,這些係對在視訊資料內的動作的方向或大小很敏感或適應性。
在一些實施例中,影像縮放及過濾模組3436執行影像處理運算,以加強所產生影像和視訊的視覺品質。在一些實施例中,在取樣操作期間在提供資料給執行單元陣列3414之前,縮放及過濾模組3436處理影像和視訊資料。
在一些實施例中,GPE 3410包含資料埠3444,其提供額外機制給圖形子系統,以存取記憶體。在
一些實施例中,資料埠3444促成記憶體存取,用於包含描繪目標寫入、固定緩衝器讀取、暫用記憶體空間讀取/寫入、及媒體表面存取的操作。在一些實施例中,資料埠3444包含快取記憶體空間,以快取存取記憶體。快取記憶體可以為單一資料快取或分開為多數快取,用於多重子系統,其經由資料埠存取記憶體(例如,描繪緩衝器快取、固定緩衝器快取,等等)。在一些實施例中,執行於執行單元陣列3414中的執行單元上的線程藉由經由資料分配互連的交換信息與資料埠通訊,該互連耦接GPE3410的各個子系統。
圖13為圖形處理器3500的另一實施例之方塊圖,用以抑制冗餘源運算元讀取及複製讀取資料。圖13中之具有與在此其他圖的元件相同的元件符號(或名稱)的元件可以以類似於所述元件的方式操作或動作,但並不限於此。
在一些實施例中,圖形處理器3500包含環互連3502、管線前端3504、媒體引擎3537、及圖形核心3580A-3580N。在一些實施例中,環互連3502將圖形處理器耦接至其他處理單元,包含其他圖形處理器或一或更多通用處理器核心。在一些實施例中,圖形處理器係為整合在多核心處理系統內的很多處理器之一。
在一些實施例中,圖形處理器3500經由環互連3502接收多批次的命令。在管線前端3504內的命令串流器3503可以解譯該進入的命令。在一些實施例中,圖
形處理器3500包含可縮放執行邏輯,用以執行經由圖形核心3580A-3580N的3D幾何處理與媒體處理。對於3D幾何處理命令,命令串流器3503供給命令給幾何管線3536。對於至少一些媒體處理命令,命令串流器3503供給命令至視訊前端3534,其耦接至媒體引擎3537。在一些實施例中,媒體引擎3537包含視訊品質引擎(VQE)3530,用於視訊及影像後處理及多格式編碼/解碼(MFX)3533引擎,以提供硬體加速媒體資料編碼和解碼。在一些實施例中,幾何管線3536及媒體引擎3537各個產生執行線程,給為至少一圖形核心3580A所提供的線程執行資源。
在一些實施例中,圖形處理器3500包含可縮放線程執行資源特性模組化核心3580A-3580N(有時稱為核心切片),各個具有多數次核心3550A-3550N、3560A-3560N(有時稱為核心次切片)。在一些實施例中,圖形處理器3500可以具有任意數量的圖形核心3580A至3580N。在一些實施例中,圖形處理器3500包含圖形核心3580A,其具有至少一第一次核心3550A及第二次核心3560A。在其他實施例中,圖形處理器為低功率處理器,具有單一次核心(例如,3550A)。在一些實施例中,圖形處理器3500包含多重圖形核心3580A-3580N,各個包含一組第一次核心3550A-3550N及一組第二次核心3560A-3560N。在該組第一次核心3550A-3550N中的各個次核心包含至少第一組執行單元3552A-3552N及媒體/紋理取樣
器3554A-3554N。在該組第二次核心3560A-3560N中的各個次核心包含至少一第二組執行單元3562A-3562N及取樣器3564A-3564N。在一些實施例中,各個次核心3550A-3550N、3560A-3560N分享一組共享資源3570A-3570N。在一些實施例中,共享資源包含分享快取記憶體及像素操作邏輯。其他共享資源也可以包含在圖形處理器的各種實施例中。
圖14例示線程執行邏輯3600,其包含在一些實施例的GPE中所用的一陣列處理元件。圖14中具有與其他圖元件相同的元件符號(或名稱)的元件可以以類似於其所述之元件相同的方式加以操作或動作,但並不限於此。
在一些實施例中,線程執行邏輯3600包含像素著色器3602、線程調度器3604、指令快取3606、包含多數執行單元3608A-3608N的可縮放執行單元陣列、取樣器3610、資料快取3612、及資料埠3614。在一實施例中,所包含元件係經由互連結構互連在一起,該互連結構將各個元件鏈結在一起。在一些實施例中,線程執行邏輯3600包含透過指令快取3606、資料埠3614、取樣器3610及執行單元陣列3608A-3608N之一或更多而到例如系統記憶體或快取記憶體的記憶體的一或更多連接。在一些實施例中,各個執行單元(例如3608A)為個別向量處理器,其能行多重同時線程並且對各個線程並聯處理多重資料元件。在一些實施例中,執行單元陣列3608A-3608N包含
任意數量個別執行單元。
在一些實施例中,執行單元陣列3608A-3608N主要用以執行“著色器”程式。在一些實施例中,執行單元陣列3608A-3608N執行指令集,其包含用於很多標準3D圖形著色器指令的本機支援,使得來自圖形程式館(例如,Direct 3D及OpenGL)的著色器程式以最小轉譯方式執行。該等執行單元可以支援頂點及幾何處理(例如,頂點程式、幾何程式、頂點著色器)、像素處理(例如,像素著色器、片段著色器)及通用處理(例如,計算、媒體、包(hull)、及/或域著色器)。
在執行單元陣列3608A-3608N中的各個執行單元以資料元件陣列為單位加以運算。資料元件的數目為“執行大小”,或者,用於該指令的通道數目。執行通道為用於資料元件存取、遮罩、及指令內的流程控制的執行之邏輯單元。通道的數目可以無關於用於一特定圖形處理器的實體算術邏輯單元(ALU)或浮點單元(FPU)的數目。在一些實施例中,執行單元608A-608N支援整數與浮點資料類型。
執行單元指令集包含單指令多資料(SIMD)指令。各種資料元件可以在暫存器中被儲存為緊縮資料類型及該執行單元將根據元件的資料大小,處理各種元件。例如,當運算於256位元寬向量時,向量的256位元被儲存在暫存器中及執行單元運算該向量為四個分開的64位元緊縮資料元件(四-字(QW)大小資料元件)、八個分開的32
位元緊縮資料元件(雙字(DW)大小資料元件)、16個分開的16位元緊縮資料元件(字(W)大小資料元件)、或32個分開8位元資料元件(位元組(B)大小資料元件)。然而,不同向量寬度與暫存器大小也是有可能的。
一或更多內部指令快取(例如,3606)被包含於線程執行邏輯3600中,以快取用於執行單元的線程指令。在一些實施例中,一或更多資料快取(例如,3612)係被包含以在線程執行期間快取線程資料。在一些實施例中,取樣器3610係包含以提供用於3D運算的紋理取樣及用於媒體運算的媒體取樣。在一些實施例中,取樣器3610包含特殊化紋理或媒體取樣功能,以在取樣處理期間並在提供取樣資料給執行單元之前,處理紋理或媒體資料。
在執行期間,圖形及媒體管線經由線程生成及調度邏輯,發送線程初始請求給線程執行邏輯3600。在一些實施例中,線程執行邏輯3600包含本地線程調度器3604,其仲裁來自圖形與媒體管線的線程初始請求並樣例化(instantiate)在一或更多執行單元3608A-3608N上的請求線程。例如,幾何管線(例如,圖13的3536)調度頂點處理、鑲嵌(tessellation)、或幾何處理線程至線程執行邏輯3600(圖14)。在一些實施例中,線程調度器3604也可以處理來自執行著色器程式的運行時間線程生成請求。
一旦一群幾何物件被處理及光柵化成像素資料,則像素著色器3602被引動,以進一步計算輸出資訊
並使得結果被寫入至輸出表面(例如,色彩緩衝器、深度緩衝器、模板緩衝器等等)。在一些實施例中,像素著色器3602計算將被內插於整個光柵化物件內的各種頂點屬性的值。在一些實施例中,像素著色器3602然後執行應用程式介面(API)供應的像素著色器程式。為了執行像素著色器程式,像素著色器3602調度線程經由線程調度器3604至執行單元(例如,3608A)。在一些實施例中,像素著色器3602使用在取樣器3610中的紋理取樣邏輯,以存取儲存在記憶體中之紋理圖中之紋理資料。對紋理資料與輸入幾何資料的算術運算計算了用於各個幾何片段的像素色彩資料,並廢除一或更多像素作進一步處理。
在一些實施例中,資料埠3614提供記憶體存取機制,以供線程執行邏輯3600輸出已處理資料給記憶體,以在圖形處理器輸出管線上作處理。在一些實施例中,資料埠3614包含或耦接至一或更多快取記憶體(例如,資料快取3612),以經由資料埠快取資料作記憶體存取。
圖15為依據一些實施例之圖形處理器指令格式3700的方塊圖。在一或更多實施例中,圖形處理器執行單元支援具有多重格式的指令之指令集。實線方塊例示通常包含在執行單元指令內的元件,而虛線則包含選用或只有包含在該等指令的次組中的元件。在一些實施例中,所述與例示之指令格式3700為巨指令,其中,它們為被供給至執行單元的指令,相對於一旦指令被處理,由指令
解碼所造成的微運算。
在一些實施例中,圖形處理器執行單元本機支援以128位元格式表示之指令3710。64位元緊縮指令格式3730係根據於所選擇指令、指令選項、及運算元的數目,而可用於一些指令。本機128位元格式3710提供對所有指令選項的存取,而一些選項及運算則被限制於64位元格式3730。可用於64位元格式3730的本機指令隨著實施例而有所不同。在一些實施例中,使用在索引欄3713中的一組索引值指令被部份緊縮。執行單元硬體根據該等索引值參考一組緊縮表並使用該緊縮表輸出以重建以128位元格式3710表示的本機指令。
對於各個格式,指令運算碼3712界定執行單元將要執行之運算。執行單元並列執行各個運算元的多重資料元件的各個指令。例如,回應於加法指令,執行單元對代表紋理元件或像素的各個色彩通道,執行同時加法運算。根據預設,執行單元對該等運算元的所有資料通道執行各個指令。在一些實施例中,指令控制欄位3714致能對某些執行選項的控制,例如,通道選擇(例如,預測)及資料通道順序(例如,拌和)。對於128位元指令3710,執行大小欄位3716限制了將被並列執行的資料通道的數目。在一些實施例中,執行大小欄位3716並不能用於64位元緊縮指令格式3730。
一些執行單元指令具有多達三個運算元,包含兩個源運算元SRC0 3722、SRC1 3722及一個目的3718。
在一些實施例中,執行單元支援雙目的指令,其中目的之一為隱含。資料調處指令可以具有第三源運算元(例如,SRC2 3724),其中指令運算碼3712決定源運算元的數目。指令的最後源運算元可以為與該指令一起通過的立即值(例如,硬編碼)值。
在一些實施例中,128位元指令格式3710包含存取/位址模式資訊3726,例如,指明,是否直接暫存器定址模式或間接暫存器定址模式被使用。當直接暫存器定址模式被使用時,在指令3710中之位元直接提供一或更多運算元的暫存器位址。
在一些實施例中,128位元指令格式3710包含存取/位址模式欄位3726,其指明用於該指令的位址模式及/或存取模式。在一實施例中,存取模式界定用於該指令的資料存取對準。一些實施例支援包含16位元組對準模式與1-位元組對準存取模式的存取模式,其中存取模式的位元組對準決定指令運算元的存取對準。例如,當在第一模式時,指令710可以使用位元組對準定址用於源與目的運算元,及當在第二模式時,指令3710可以使用16位元組對準定址,用於所有源與目的運算元。
在一實施例中,存取/位址模式欄位3726的位址模式部份決定是否該指令將使用直接或間接定址。當直接暫存器定址模式被使用時,在指令3710中的位元直接提供一或更多運算元的暫存器位址。當間接暫存器定址模式被使用時,一或更多運算元的暫存器位址可以根據位址
暫存器值與在該指令中的位址立即欄位加以計算。
在一些實施例中,指令係根據運算碼3712位元欄位加以群集,以簡化運算碼解碼3740。對於8位元運算碼,位元4、5、及6允許執行單元決定運算碼的類型。所示之精準運算碼群集只是一例子。在一些實施例中,移動及邏輯運算碼群組3742包含資料移動及邏輯指令(例如,移動(mov)、比較(cmp))。在一些實施例中,移動與邏輯群組3742共享五個最高效位元(MSB),其中移動(mov)指令係以0000xxxxb的形式表示及邏輯指令係以0001xxxxb的形式表示。流程控制指令群組3744(也稱為呼叫、跳越(jump))包含0010xxxxb形式(例如,0x20)表示的指令。雜項指令群組3746包含指令的混合,包含以0011xxxxb形式(例如,0x30)表示的同步化指令(例如,等待、發送)。並聯數學指令群組3748包含以0100xxxxb形式(例如,0x40)表示的元件狀算術指令(例如,相加、相乘(mul))。並聯數學指令群組3748執行整個資料通道的並聯算術運算。向量數學群組3750包含以0101xxxxb形式(例如,0x50)表示的算術指令(例如,dp4)。向量數學群組執行例如對向量運算元的點積計算的算術。
圖16為圖形處理器3800的另一實施例之方塊圖。圖16的元件中之具有與其他圖的相同元件符號(或名稱)的元件係以類似於所述元件的方式操作或作動,但也可並不限於此。
在一些實施例中,圖形處理器3800包含圖形
管線3820、媒體管線3830、顯示引擎3840、線程執行邏輯3850、及描繪輸出管線3870。在一些實施例中,圖形處理器3800為在多核心處理系統內的一個圖形處理器,該多核心處理系統包含一或更多通用處理核心。圖形處理器為暫存器寫入至一或更多控制暫存器(未示出)所控制,或者,經由環互連3802所發送至圖形處理器3800的命令所控制。在一些實施例中,環互連3802將圖形處理器3800耦接至其他處理元件,例如,其他圖形處理器或通用處理器。來自環互連3802的命令係為命令串流器3803所解譯,該命令串流器供給指令至圖形管線3820或媒體管線3830的個別元件。
在一些實施例中,命令串流器3803指示從記憶體讀取頂點資料的頂點擷取器3805的運算並執行為命令串流器3803所提供的頂點處理命令。在一些實施例中,頂點擷取器3805提供頂點資料至頂點著色器3807,其對各個頂點執行座標空間轉換與光影(lighting)操作。在一些實施例中,頂點擷取器3805及頂點著色器3807藉由將執行線程經由線程調度器3831調度給執行單元3852A、3852B,而執行頂點處理指令。
在一些實施例中,執行單元3852A、3852B為一陣列的向量處理器,具有用以執行圖形與媒體運算的指令集。在一些實施例中,執行單元3852A、3852B具有附著L1快取3851,其特定用於各個陣列或者在陣列間作分享。快取可以被組態為資料快取、指令快取、或單一快
取,其可以被分割以在不同分區內包含資料與指令。
在一些實施例中,圖形管線3820包含鑲嵌元件,以執行3D物件的硬體加速鑲嵌。在一些實施例中,可程式包著色器3811組態鑲嵌運算。可程式域著色器3817提供鑲嵌輸出的後端評估。鑲嵌器3813在包著色器3811的指示下操作並包含特殊目的邏輯,以根據提供給圖形管線3820作為輸入的粗幾何模型,產生一組詳細幾何物件。在一些實施例中,如果鑲嵌未使用,則鑲嵌元件3811、3813及3817可以被旁路。
在一些實施例中,完整幾何物件可以為經由調度給執行單元3852A、3852B的一或更多線程為幾何著色器3819所處理,或可以直接進行至剪輯器3829。在一些實施例中,幾何著色器操作整個幾何物件,而不是如同前幾級的圖形管線中的頂點或頂點的補片。如果鑲嵌被去能,則幾何著色器3819自頂點著色器3807接收輸入。在一些實施例中,如果鑲嵌單元被去能的話,則幾何著色器3819可以為幾何著色器程式所程式化,以執行幾何鑲嵌。
在光柵化之前,剪輯器3829處理頂點資料。剪輯器3829可以為固定功能剪輯器或可程式剪輯器,具有剪輯與幾何著色器功能。在一些實施例中,在描繪輸出管線3870中的光柵器與深度測試元件3873將調度像素著色器,以將幾何物件轉換為其各個像素的表示法。在一些實施例中,像素著色器邏輯被包含於線程執行邏輯3850
中。在一些實施例中,應用可以旁路開光柵器與深度測試元件3873並經由串流輸出單元3823存取未光柵化的頂點資料。
圖形處理器3800具有互連匯流排、互連組構、或一些其他互連機制,其允許資料與信息傳遞於處理器的主要元件間。在一些實施例中,執行單元3852A、3852B與相關快取3851、紋理與媒體取樣器3854、及紋理/取樣器快取3858經由資料埠3856互連,以執行記憶體存取並與處理器的描繪輸出管線元件通訊。在一些實施例中,取樣器3854、快取3851、3858與執行單元3852A、3852B各個具有分開的記憶體存取路徑。
在一些實施例中,描繪輸出管線3870包含光柵器與深度測試元件3873,其將頂點為主物件轉換為相關像素為主的表示法。在一些實施例中,光柵器邏輯包含視窗器/遮罩單元,用以執行固定功能三角與線光柵化。相關描繪快取3878與深度快取3879也可以用於一些實施例中。雖然在一些實例中,有關於2D運算的像素運算(例如,具混合的位元方塊影像轉換)係為2D引擎3841所執行,或在顯示時為使用重疊顯示平面的顯示控制器3843所替代,但像素運算元件3877對資料執行像素為主的運算。在一些實施例中,共享L3快取3875係可以為所有圖形元件所用,允許資料共享,而不必使用主系統記憶體。
在一些實施例中,圖形處理器媒體管線3830包含媒體引擎3837及視訊前端3834。在一些實施例中,
視訊前端3834自命令串流器3803接收管線命令。在一些實施例中,媒體管線3830包含分開命令串流器。在一些實施例中,視訊前端3834在將命令發送給媒體引擎3837之前,先處理媒體命令。在一些實施例中,媒體引擎3837包含線程生成功能,以生成線程,以供經由線程調度器3831調度至線程執行邏輯3850。
在一些實施例中,圖形處理器3800包含顯示引擎3840。在一些實施例中,顯示引擎3840在處理器3800外,並經由環互連3802或一些其他互連匯流排或組構而耦接至圖形處理器。在一些實施例中,顯示引擎3840包含2D引擎3841及顯示控制器3843。在一些實施例中,顯示引擎3840包含特殊目的邏輯,其能獨立於3D管線以外操作。在一些實施例中,顯示控制器3843耦接至顯示裝置(未示出),其可以為系統整合顯示裝置,例如在膝上型電腦中者,或者,經由顯示裝置連接器所附接的外部顯示裝置。
在一些實施例中,圖形管線3820與媒體管線3830可組態以根據多重圖形與媒體程式介面執行操作,並且,並未特定至任一應用程式介面(API)。在一些實施例中,用於圖形處理器的驅動軟體將特定於一特別圖形或媒體程式館的API呼叫轉譯為可以為圖形處理器所處理的命令。在一些實施例中,可以提供支援用於來自Khronos集團的開放圖形程式館(OpenGL)與開放計算語言(OpenCL)、用於來自微軟公司的Direct 3D程式館,或可
以對OpenGL與D3D提供支援。也可以提供支援用於開放源電腦視覺庫(OpenCV)。如果也可以完成由未來API的管線至圖形處理器的管線之映射,則也可以支援具有相容3D管線的未來API。
圖17A為依據一些實施例之圖形處理器命令格式3900的方塊圖。圖17B為例示依據一實施例之圖形處理器命令順序3910的方塊圖。於圖17A中之實線方塊例示通常被包含在圖形命令中的元件,而虛線則表示選用或者只有包含在圖形命令的子集中的元件。圖17A的例示圖形處理器命令格式3900包含資料欄位,用以識別命令的目標客戶3902、命令運算碼(opcode)3904、及用於該命令的相關資料3906。次運算碼3905及命令大小3908也包含在一些命令中。
在一些實施例中,客戶3902指明處理命令資料的圖形裝置的客戶單元。在一些實施例中,圖形處理器命令剖析器檢查各個命令的客戶欄位,以調整該命令的進一步處理並配送該命令資料至適當客戶單元。在一些實施例中,圖形處理器客戶單元包含記憶體介面單元、描繪單元、2D單元、3D單元、及媒體單元。各個客戶單元具有一對應處理管線,其處理該等命令。一旦該命令為客戶單元所接收,則客戶單元讀取運算碼3904,並如果有的話,讀取次運算碼3905,用以決定要執行的運算。客戶單元使用在資料欄位3906中的資訊執行該命令。對於一些命令,一明確命令大小3908被期待以指明該命令的大
小。在一些實施例中,命令剖析器根據命令運算碼,自動地決定至少一些命令的大小。在一些實施例中,命令係透過雙字的倍數加以對準。
圖17B中的流程圖顯示例示圖形處理器命令順序3910。在一些實施例中,特徵在於一實施例的圖形處理器的資料處理系統的軟體或韌體使用一所示之命令順序的版本,以設立、執行及中止一組圖形操作。為了例示目的,取樣命令順序係被顯示並描述,因為實施例並不限於這些特定命令或此命令順序。再者,該等命令可以依命令順序被發出成為批次命令,使得圖形處理器將以至少部份同時的方式處理該順序的命令。
在一些實施例中,圖形處理器命令順序3910可以以管線清除命令3912開始,以使得任何作動圖形管線完成該管線的現行未決命令。在一些實施例中,3D管線3922及媒體管線3924並未同時操作。管線清除係被執行,以使得作動管線完成任何未決的命令。回應於管線清除,用於圖形處理器的命令剖析器將暫停命令處理,直到作動繪圖引擎完成未決運算及相關讀取快取失效為止。選用地,在描繪快取中被標示為“壞”的任何資料可以被沖洗至記憶體。在一些實施例中,管線清洗命令3912可以被用以管線同步化或在將圖形處理器置於低電力狀態前被使用。
在一些實施例中,當命令順序需要圖形處理器,用以明確地在管線間作切換時,該管線選擇命令
3913被使用。在一些實施例中,除非該上下文要發出命令給兩個管線,否則在發出管線命令之前,管線選擇命令3913在執行上下文內只需要一次。在一些實施例中,在管線經由管線選擇命令3913切換前立即需要管線清洗命令3912。
在一些實施例中,管線控制命令3914組態用於操作的圖形管線並被用以規劃該3D管線3922及媒體管線3924。在一些實施例中,管線控制命令3914組態用於作動管線的管線狀態。在一實施例中,管線控制命令3914係用以管線同步化並用以在處理一批次命令前,將資料由作動管線內的一或更多快取記憶體內清除。
在一些實施例中,轉回緩衝器狀態命令3916係被用以組態一組轉回緩衝器,以供個別管線寫入資料。一些管線操作需要配置、選擇或組態一或更多轉回緩衝器,在處理期間,運算寫入中介資料至其中。在一些實施例中,圖形處理器也使用一或更多轉回緩衝器,以儲存輸出資料並執行交叉線程通訊。在一些實施例中,轉回緩衝器狀態3916包含選擇被使用於一組管線操作的轉回緩衝器的大小與數目。
在命令順序中的剩餘命令根據用於操作的作動管線而有所不同。根據管線決定3920,命令順序被調整至以3D管線狀態3930開始的3D管線3922,或者,以媒體管線狀態3940開始的媒體管線3924。
用於3D管線狀態3930的命令包含用於頂點緩
衝器狀態、頂點元件狀態、固定色彩狀態、深度緩衝器狀態、及予以在3D基元命令被處理前組態的其他狀態變數的3D狀態設定命令。這些命令的值係至少部份根據使用中的特定3D API加以決定。在一些實施例中,如果管線元件將不被使用的話,3D管線狀態3930命令也將不能選擇地去能或旁路開某些管線元件。
在一些實施例中,3D基元3932命令係用以發出予以為3D管線所處理的3D基元。經由3D基元3932命令傳送給圖形處理器的命令與相關參數係被轉送給在圖形管線中的頂點擷取功能。頂點擷取功能使用3D基元3932命令資料以產生頂點資料結構。頂點資料結構被儲存於一或更多轉回緩衝器中。在一些實施例中,3D基元3932命令被用以經由頂點著色器對3D基元執行頂點運算。為了處理頂點著色器,3D管線3922調度著色器執行線程至圖形處理器執行單元。
在一些實施例中,3D管線3922經由執行3934命令或事件而觸發。在一些實施例中,暫存器寫入觸發命令執行。在一些實施例中,執行經由在命令順序中之’執行’或’踢除’命令而觸發。在一實施例中,命令執行係使用管線同步化命令加以觸發,以透過圖形管線清除該命令順序。3D管線將執行用於3D基元的幾何處理。一旦運算完成,所得幾何物件被光柵化及像素引擎將所得的像素上色。用以控制像素著色與像素後端運算的其他命令也可以包含用於這些運算者。
在一些實施例中,當執行媒體運算時,圖形處理器命令順序3910循著媒體管線3924路徑。通常,程式化媒體管線3924的特定用途與方式係取決於予以執行之媒體或計算運算而定。特定媒體解碼運算可以在媒體解碼期間被卸載至媒體管線。在一些實施例中,媒體管線也可以被旁路及媒體解碼也可以使用為一或更多通用處理核心所提供的資源加以整個或部份執行。在一實施例中,媒體管線也包含用於通用圖形處理器單元(GPGPU)運算的元件,其中,圖形處理器係使用並未顯性關係於圖形基元描繪的計算著色器程式,來執行SIMD向量運算。
在一些實施例中,媒體管線3924被以類似於3D管線3922的方式加以組態。一組媒體管線狀態命令3940被調度或置入於命令佇列,在媒體物件命令3942之前。在一些實施例中,媒體管線狀態命令3940包含資料,用以組態將被用以處理媒體物件的媒體管線元件。此包含用以組態在媒體管線內的該視訊解碼與視訊編碼邏輯的資料,例如編碼或解碼格式。在一些實施例中,媒體管線狀態命令3940也支援使用一或更多指標,以“間接”描述包含一批次狀態設定的元件。
在一些實施例中,媒體物件命令3942供給指標給媒體物件,以用以為媒體管線所處理。媒體物件包含有包括予以處理的視訊資料的記憶體緩衝器。在一些實施例中,所有媒體管線狀態必須在發出媒體物件命令3942之前被生效。一旦管線狀態被組態及媒體物件命令3942
被佇列,媒體管線3924係經由執行命令3944或等效執行事件(例如,暫存器寫入)加以觸發。來自媒體管線3924的輸出可以然後被為3D管線3922或媒體管線3924所提供的運算所後處理。在一些實施例中,GPGPU運算係被以類似於媒體運算的方式加以組態與執行。
圖18例示依據一些實施例之資料處理系統4000的例示圖形軟體架構。在一些實施例中,軟體架構包含3D圖形應用4010、作業系統4020、及至少一處理器4030。在一些實施例中,處理器4030包括圖形處理器4032及一或更多通用處理器核心4034。圖形應用4010及作業系統1020各個執行於資料處理系統的系統記憶體4050中。
在一些實施例中,3D圖形應用4010包含包括有著色器指令4012的一或更多著色器程式。著色器語言指令可以為高階著色器語言,例如高階著色器語言(HLSL)或openGL著色器語言(GLSL)。應用也包含以機器語言表示之可執行指令4014,該機器語言係適用以為通用處理器核心4034所執行。應用也包括為頂點資料所界定的圖形物件4016。
在一些實施例中,作業系統4020為來自微軟公司的微軟®視窗®作業系統、專屬類UNIX作業系統、或使用Linux核心的變異的開放原始碼類UNIX作業系統。當使用Direct 3D API時,作業系統4020使用前端著色器編譯器4024,以編譯以HLSL表示的任何著色器指令
4012成為較低階著色器語言。編譯也可以為動態編譯環境(JIT)編譯或應用可以執行著色器前編譯。在一些實施例中,在編譯3D圖形應用4010期間,高階著色器被編譯成低階著色器。
在一些實施例中,使用者模式圖形驅動器4026包含後端著色器編譯器1027,以將著色器指令4012轉換為特定硬體表示法。當OpenGL API被使用時,以GLSL高階語言表示之著色器指令4012被傳送給使用者模式圖形驅動器4026供編譯。在一些實施例中,使用者模式圖形驅動器4026使用作業系統核心模式功能4028以與核心模式圖形驅動器4029相通訊。在一些實施例中,核心模式圖形驅動器4029與圖形處理器4032通訊,以調度命令與指令。
至少一實施例之一或更多態樣可以以儲存在機器可讀取媒體上的表示碼加以實施,其表示及/或界定在例如處理器之積體電路內的邏輯。例如,機器可讀取媒體可以包含指令,其表示在處理器內的邏輯。當為機器所讀取時,所述指令可以使得機器製造邏輯,以執行於此所述之技術。稱為“IP核心”的此等表示法係為用於積體電路的可重複使用的單元,其可以被儲存在有形、機器可讀取媒體上,作為描述積體電路的結構的硬體模型。硬體模型可以被供給至各種客戶或製造設施,其將硬體模型載入於製造積體電路的製造機器上。該積體電路可以被製造,使得電路執行所述有關於此所述之任一實施例之運算。
圖19為可以用以製造積體電路以執行依據一實施例之運算的IP核心開發系統4100的方塊圖。IP核心開發系統4100可以被使用以產生模組化、可再使用設計,其可以被加入較大設計或被用以建構整個積體電路(例如,SOC積體電路)。設計設施4130可以產生以高階程式語言(例如,C/C++)表示之IP核心設計的軟體模擬4110。軟體模擬4110可以被用以設計、測試、及驗證IP核心的行為。暫存器轉移位準(RTL)設計可以然後被建立或由模擬模型4100合成。RTL設計4115為積體電路的行為的抽象化,其模型化在硬體暫存器間的數位信號的流程,包含使用模型化數位信號執行的相關邏輯。除了RTL設計4115之外,以邏輯層次或電晶體層次表示的較低階設計也可以被建立、設計或合成。因此,初始設計與模擬的特定細節也可以改變。
RTL設計4115或等效也可以進一步被設計設施所合成為硬體模型4120,其可以以硬體描述語言(HDL)表示,或實體設計資料的一些其他表示法表示。HDL也可以被更進一步模擬或測試以驗證IP核心設計。該IP核心設計可以被儲存,以用於輸送至第三方製造設施4165,使用非揮發記憶體4140(例如,硬碟、快閃記憶體、或任意非揮發儲存媒體)。或者,IP核心設計可以被傳送(例如,經由網際網路)於有線連接4150或無線連接4160上。製造設施4165可以然後至少部份基於該IP核心設計,製造積體電路。所製造積體電路可以被組態以執行依
據於此所述之至少一實施例的運算。
圖20為一方塊圖,其例示系統晶片積體電路4200,其可以依據一實施例,使用一或更多IP核心加以製造。例示積體電路包含一或更多應用處理器4205(例如,CPU)、至少一圖形處理器4210、並可以額外包含影像處理器4215及/或視訊處理器4220,其任一可以為來自相同或多重不同設計設施的模型化IP核心。積體電路包含週邊或匯流排邏輯,其包含USB控制器4225、UART控制器4230、SPI/SDIO控制器4235、及I2S/I2C控制器4240。另外,積體電路可以包含耦接至高解析度多媒體介面(HDMI)控制器4250及行動工業處理器介面(MIPI)顯示介面4255的一或多者的顯示裝置4245。儲存器可以為快閃記憶體次系統4260所提供,包含快閃記憶體與快閃記憶體控制器。記憶體介面可以經由記憶體控制器4265所提供,用以存取SDRAM或SRAM記憶體裝置。一些積體電路額外包含嵌式安全引擎4270。
另外,其他邏輯與電路也可以被包含於積體電路4200的處理器中,包含額外圖形處理器/核心、週邊介面控制器、或通用處理器核心。
通常,於此所述與描繪的裝置的各種元件可以包含各種硬體元件、軟體元件、或兩者之組合。硬體元件的例子可以包含裝置、邏輯裝置、元件、處理器、微處理器、電路、處理器電路、電路元件(例如,電晶體、電阻、電容、電感等等)、積體電路、特殊應用積體電路
(ASIC)、可程式邏輯裝置(PLD)、數位信號處理器(DSP)、場可程式閘陣列(FPGA)、記憶體單元、邏輯閘、暫存器、半導體裝置、晶片、微晶片、晶片組等等。軟體元件的例子可以包含軟體元件、程式、應用、電腦程式、應用程式、系統程式、軟體開發程式、機器程式、作業系統軟體、中間軟體、韌體、軟體模組、常式、副程式、功能、方法、程序、軟體介面、應用程式介面(API)、指令集、計算碼、電腦碼、碼片段、電腦碼片段、字、值、符號、或其任何組合。然而,決定是否實施例係使用硬體元件及/或軟體元件加以實施可以依據想要的給定實施法之任意數量的因素加以改變,例如,想要計算速率、電力位準、熱忍受、處理週期預算、輸入資料率、輸出資料率、記憶體資源、資料匯流排速度及其他設計或效能侷限。
一些實施例可以使用表示法“一實施例”或“實施例”與其衍生法加以描述。這些用語表示配合該實施例描述的特定特性、結構、或特徵係包含在至少一實施例中。在說明書各處出現的“在一實施例中”並不必然都表示相同實施例。再者,一些實施例可以使用表示法“耦接”及“連接”及其衍生法加以描述。這些用語並不必然想要各個都是同義。例如,一些實施例可以使用用語“連接”及/或“耦接”加以描述,以表示兩或更多元件係彼此直接實體或電接觸。然而,用語“耦接”也可以表示兩或更多元件並未彼此直接接觸,而是仍是彼此配合或互動。再者,來自不同實施例之態樣或元件也可以組合。
在此強調本案的摘要係提供以允許讀者快速地確定本技術方案的本質。應了解的是,其並不是用以解譯或限制申請專利範圍的範圍或意義。另外,在前述詳細說明中,可以了解,各種特性被群組在單一實施例中,以用以流線化本案。本案的方法並不被解譯為反應於所主張實施例需要較各個項中所明述為多的特徵。相反地,如以下申請專利範圍所表示,本案的發明標的在於少於單一揭示實施例的所有特性。因此,在此,以下之申請專利範圍係加入詳細說明中,以各個請求項單獨作為分開的實施例。在隨附之申請專利範圍中,用語“包括”及“其中”係被分別使用作為一般個別用語“包含”及“其中”的等效。再者,用語“第一”、“第二”、“第三”及以此類推只是作為標示,並不是想要對其物件施加數值要求。
以上所述包含本案架構的例子。當然,其並不可能描述元件及/或方法的每個可想到的組合,但熟習於本技藝者將了解,很多其他組合與替換係有可能的。因此,新穎架構係想要包含在隨附申請專利範圍的精神與範圍內的所有此等替代、修改與變化。現將詳細揭露以提供屬於其他實施例之例子。以下提供之例子並不作為限定用。
在例子1中,設備包含處理器電路;同時位置與映圖(SLAM)候選元件,以識別匹配現行捕捉圖框離開間隔為主的主圖框組至少第一程度的第一候選主圖框,該現行捕捉圖框係為在確定區域內周遭的行動裝置的攝影機
所捕捉,及該間隔為主的主圖框組包含在該確定區域的圖產生期間,根據為該攝影機所捕捉的多重早先捕捉圖框的循環間隔所選擇的主圖框;卷積類神經網路(CNN)候選元件,用以識別匹配該現行捕捉圖框離開差異為主的主圖框組至少第二程度的第二候選主圖框,該差異為主的主圖框組的各個主圖框係根據與已經包括於差異為主的主圖框組中的所有其他主圖框的差異程度,由該多重早先捕捉圖框選出;及位置評估元件,用以由在該圖上,該第一與第二候選主圖框的現行位置與位置間的差異評估,決定該行動裝置在該圖上的現行位置。
在例子2中,其包含例子1的標的,該設備可以包含SLAM選擇元件,用以根據循環間隔,由該多重早先捕捉圖框,選擇該間隔為主的主圖框組的各個主圖框,該循環間隔包含以下之至少之一:時間間隔,其當該行動裝置移動於該確定區域附近以產生圖時,循環地經過;當該行動裝置移動於確定區域附近以產生該圖時,該行動裝置所行進的距離的間隔;或者,當該行動裝置移動於該確定區域附近以產生圖時,為該攝影機所捕捉的早先捕捉的圖框的數量的間隔。
在例子3中,其包含例子1-2之任一的標的,該設備可以包含CNN選擇元件,用以根據已經包含在該差異為主的主圖框組中的所有其他主圖框的差異程度,由該多重早先捕捉圖框,選擇該差異為主的主圖框組的各個主圖框。
在例子4中,其包含例子1-3之任一的標的,該CNN選擇元件可以包含CNN引擎,用以給該多重早先捕捉圖框的各個早先捕捉圖框,產生表示多重預定視覺特性的哪些出現在早先捕捉圖框的碼值。該CNN引擎可以包含多重卷積層,該多重卷積層的各個卷積層實施操作於至少部份並聯的過濾器的多重實例,該過濾器的各個實例用以決定該多重預定視覺特性的預定視覺特性是否出現在早先捕捉圖框的一圖框內的多重像素的各個多重重疊位置內;及多重池層散佈在多重卷積層間,該多重池層的各個池層用以實施對應卷積層的該過濾器的多重實例的不同實例所產生的指示的多重實例的次取樣,該多重預定視覺特性的預定視覺特性是否出現在早先捕捉圖框之一圖框內。
在例子5中,其包含例子1-4之任一的標的,該CNN選擇元件可以包含第一比較器元件,用以根據早先捕捉圖框的碼值與該CNN引擎給已經包含在差異為主的主圖框組中的所有主圖框產生的所有碼值的比較,決定是否選擇早先捕捉圖框包含在該差異為主的主圖框組中。
在例子6中,其包含例子1-5之任一的標的,該CNN引擎可以產生一碼值,用以指示多重預定視覺特性之哪些係出現在現行捕捉圖框中,及該設備可以更包含第二比較器元件,用以根據現行捕捉圖框的碼值與該CNN引擎給包含在差異為主的主圖框組中的所有主圖框所產生的所有碼值的比較,來識別第二候選主圖框。
在例子7中,其包含例子1-6之任一的標的,
該設備可以包含產生元件,用以將間隔為主的主圖框組的各個主圖框與差異為主的主圖框組的各個主圖框相關至沿著該圖的對應路徑的對應位置。
在例子8中,其包含例子1-7之任一的標的,該產生元件可以根據自該行動裝置的至少一位置感應器接收的捕捉位置資料,將相關至該圖上的該間隔主的主圖框組或該差異為主的主圖框組的至少之一的主圖框相關至在該確定區域內的實體位置,該至少一位置感應器包含以下至少之一:自多重衛星接收的信號的接收器、來自相關於該確定區域的多重無線接取點的信號的接收器、陀螺儀、加速計、里程計、鄰近檢測器、用以讀取在確定區域內的條碼的條碼讀取器、或在該確定區域內的射頻識別(RFID)標籤。
在例子9中,其包含例子1-8之任一的標的,該產生元件可以回應於該間隔為主的主圖框組間的第一候選主圖框為SLAM候選元件所識別或者在差異為主的主圖框組間的第二候選主圖框為該CNN候選元件所識別的至少之一,而以該圖的路徑的迴路的閉合的表示來擴充該圖。
在例子10中,其包含例子1-9之任一的標的,該產生元件可以回應於並未識別出候選主圖框匹配在間隔為主的主圖框組間為SLAM候選元件所下一捕捉的圖框及並未識別出候選主圖框匹配在差異為主的主圖框組間為CNN候選元件所下一捕捉的圖框,以相關於下一捕捉
圖框的位置的圖的路徑的新位置的指示來擴充該圖。
在例子11中,其包含例子1-10的任一之標的,該確定區域可以為以下至少之一:房間、大樓樓面、包含多棟建築的校園、或預定的地理區域。
在例子12中,其包含例子1-11的任一之標的,該設備可以包含行動裝置、包含至少一馬達以促成行動裝置自行驅動於確定區域來產生該圖的行動裝置。
在例子13中,一種計算實施方法,包含:以處理器電路識別第一候選主圖框,其匹配現行捕捉圖框至離開間隔為主的主圖框至少第一程度,該現行捕捉圖框係為確定區域內周遭的行動裝置的攝影機所捕捉,及該間隔為主的主圖框組包含根據在產生確定區域的圖期間,為該攝影機所捕捉的多重早先捕捉圖框的循環間隔所選擇的主圖框;識別第二候選主圖框,其匹配現行捕捉圖框至離開差異為主的主圖框至少第二程度,該差異為主的主圖框組的各個主圖框係根據已經包含在該差異為主的主圖框組內的所有其他主圖框的差異程度,由多重早先捕捉圖框選出;及以該處理器電路由現行位置與在該圖上的第一與第二候選主圖框元件的位置間的差異評估,決定該行動裝置在該圖上的現行位置。
在例子14中,其包含例子13的標的,該方法可以包含根據該循環間隔,該處理器電路由該多重早先捕捉圖框選擇該間隔為主的主圖框組的各個主圖框,該循環間隔包含以下至少之一:當行動裝置移動於確定區域附近
以產生該圖時,循環經過的時間間隔;當該行動裝置移動於該確定區域附近以產生圖時,為該行動裝置所行進的距離的間隔;或者當該行動裝置移動於該確定區域附近以產生圖時,為該攝影機所捕捉的早先捕捉圖框的數量的間隔。
在例子15中,其包含例子13-14之任一的標的,該方法可以包含根據已經包含在差異為主的主圖框組中的所有其他主圖框的差異程度,由該等多重早先捕捉圖框,由該多重早先捕捉圖框,選擇該差異為主的主圖框組的各個主圖框。
在例子16中,其包含例子13-15之任一的標的,該方法包含:藉由操作卷積類神經網路(CNN)引擎,給多重早先捕捉圖框的各個早先捕捉圖框產生一碼值,用以表示多重預定視覺特性的哪些係出現在該早先捕捉圖框中。該CNN引擎可以包含多重卷積層,該多重卷積層的各個卷積層係用以實施至少部份並列操作的過濾器的多重實例,該過濾器的各個實例用以決定該多重預定視覺特性的預定視覺特性是否出現在早先捕捉圖框之一內的多重像素的各個多重重疊位置內;及散佈於該等多重卷積層間的多重池層,該多重池層的各個池層用以實施對應卷積層的該過濾器的多重實例的不同實例所產生的指示的多重實例的次取樣,該多重預定視覺特性的預定視覺特性是否出現在早先捕捉圖框之一圖框內。
在例子17中,其包含例子13-16中之任一的
標的,該CNN引擎可以以耦接至該處理器電路的硬體為主數位邏輯加以實施。
在例子18中,其包含例子13-17之任一的標的,該方法可以包括根據早先捕捉圖框的碼值與用於已經包含在差異為主的主圖框組的所有主圖框之使用CNN引擎所產生的所有碼值的比較,決定是否選擇該早先捕捉圖框被包含在差異為主的主圖框組內。
在例子19中,其包含例子13-18的任一之標的,該方法可以包含:產生一碼值,以指示多重預定視覺特性之哪些出現在現行捕捉圖框中,並根據該現行捕捉圖框的該碼值與對於包含在差異為主的主圖框組中的所有主圖框,使用CNN引擎所產生的所有碼值的比較結果,識別第二候選主圖框。
在例子20中,其包含例子13-19之任一的標的,該方法可以包含將該間隔為主的主圖框組的各個主圖框與該差異為主的主圖框組之各個主圖框相關至該圖的對應路徑之對應位置。
在例子21中,其包含例子13-20的任一之標的,該方法可以包含從該行動裝置的至少一位置感應器接收捕捉位置資料,該捕捉位置資料包含至少以下之一:自多重定位衛星接收的信號的表示、自相關於該確定區域的多重無線接取點接收的信號的三角測量法的表示、為陀螺儀所捕捉之方向改變的表示、為加速計所捕捉的速度的變化的表示、由里程表所捕捉的行進距離的表示、有關於在
該確定區域內為鄰近檢測器所捕捉的物件的距離之表示、在該確定區域內為條碼讀取器所捕捉的條碼的表示、或為在該確定區域內的射頻識別(RFID)讀取器所讀取的RFID的表示;及根據捕捉的位置資料,將相關於在圖上的該間隔為主的主圖框組或差異為主的主圖框組的至少之一的主圖框的至少一位置相關至在該確定區域內的實體位置。
在例子22中,其包含例子13-21的任一之標的,該方法可以包含回應於在間隔為主的主圖框組間的第一候選主圖框的識別或者在差異為主的主圖框組間的第二候選主圖框的識別之至少之一,以該圖的路徑之迴路的閉合的表示,來加強該圖。
在例子23中,其包含例子13-22之任一的標的,該方法可以包含:回應於並未識別出候選主圖框匹配在間隔為主的主圖框組間的下一捕捉的圖框及並未識別出候選主圖框匹配在差異為主的主圖框組間的下一捕捉的圖框,以相關於另一捕捉圖框的位置的圖的路徑的新位置的指示來加強該圖。
在例子24中,其包含例子13-23之任一的標的,該確定區域包含以下至少之一:房間、大樓樓面、包含多楝建築的校園、或預定的地理區域。
在例子25中,至少一有形機器可讀取儲存媒體,包括指令,當其為處理器電路所執行時,可以使得處理器電路,用以:識別第一候選主圖框,其匹配現行捕捉圖框至離開間隔為主的主圖框組第一程度,該現行捕捉圖
框係為在確定區域內周遭的行動裝置的攝影機所捕捉,及該間隔為主的主圖框組包含由根據在產生確定區域的圖期間,該攝影機所捕捉的多重早先捕捉圖框以循環間隔所選擇的主圖框;識別第二候選主圖框,其將現行捕捉圖框匹配至離開差異為主的主圖框組至少第二程度,該差異為主的主圖框組的各個主圖框係根據已經包括在差異為主的主圖框組的所有其他主圖框的差異程度,由多重早先捕捉圖框選出;及由該現行位置與在該圖上的第一與第二候選主圖框的位置間的差異評估,來決定該行動裝置在該圖上的現行位置。
在例子26中,其包含例子25的標的,該處理器電路可以耦接至以硬體為主邏輯實施的卷積類神經網路(CNN)引擎,及該處理器電路操作該CNN引擎,以識別第二候選。
在例子27中,其包含例子25-26之任一的標的,該處理器電路可以被造成以根據循環間隔,由多重早先捕捉圖框選擇該間隔為主的主圖框組的各個主圖框,該循環間隔包含以下至少之一:當行動裝置移動於確定區域附近以產生該圖時,所循環經過的時間間隔、當行動裝置移動於確定區域附近以產生該圖時,為該行動裝置所行進的距離的間隔、或當行動裝置移動於該確定區域附近以產生該圖時,為該攝影機所捕捉的早先捕捉圖框的數量的間隔。
在例子28中,其包含例子25-27之任一的標
的,該處理器電路可以被造成以根據已經包含在差異為主的主圖框中的所有其他主圖框的差異程度,由多重早先捕捉圖框選擇該差異為主的主圖框組的各個主圖框。
在例子29中,其包含例子25-28之任一的標的,該處理器電路可以被造成以藉由使用卷積類神經網路(CNN)引擎,來產生碼值給該多重早先捕捉圖框的各個早先捕捉圖框,該碼值指示多重預定視覺特性之哪些出現在早先捕捉圖框中。該CNN可以包含多重卷積層,該多重卷積層的各個卷積層用以至少部份並聯操作過濾器的多重實例,該過濾器的各個實例用以決定該多重預定視覺特性的預定視覺特性是否出現在該等早先捕捉圖框之一內的多重像素的各個多重重疊位置內;多重池層,散佈於所述多重卷積層內,該多重池層的各個池層係用以實施對應卷積層的該過濾器的多重實例的不同實例所產生的指示的多重實例的次取樣,該多重預定視覺特性的預定視覺特性是否出現在早先捕捉圖框之一圖框內。
在例子30中,其包含例子25-29之任一的標的,該處理器電路可以被造成以根據早先捕捉圖框的碼值與該CNN引擎給已經包含在差異為主的主圖框組中的所有主圖框產生的所有碼值的比較,決定是否選擇早先捕捉圖框被包含在該差異為主的主圖框組中。
在例子31中,其包含例子25-30之任一的標的,該處理器電路可以被造成以產生一碼值,用以指示多重預定視覺特性之哪些係出現在現行捕捉圖框中,並根據
現行捕捉圖框的碼值與使用該CNN引擎給包含在差異為主的主圖框組中的所有主圖框所產生的所有碼值的比較,來識別第二候選主圖框。
在例子32中,其包含例子25-31之任一的標的,該處理器電路可以被造成以用以將間隔為主的主圖框組的各個主圖框與差異為主的主圖框組的各個主圖框相關至沿著該圖的對應路徑的對應位置。
在例子33中,其包含例子25-26之任一的標的,該處理器電路可以被造成以從該行動裝置的至少一位置感應器接收的捕捉位置資料,該捕捉位置資料包含至少以下之一:自多重定位衛星接收的信號的表示、自相關於該確定區域的多重無線接取點接收的信號的三角測量的表示、為陀螺儀所捕捉之方向改變的表示、為加速計所捕捉的速度的改變之表示、為里程計所捕捉之所行經距離的表示、為鄰近檢測器所捕捉的與確定區域有關的物體的距離的表示、條碼讀取器與確定區域內的條碼讀取的表示、或在確定區域內的射頻識別(RFID)讀取器的RFID標籤讀取的表示;及根據捕捉位置資料,將相關於在圖上間隔為主的主圖框組或差異為主的主圖框組之至少之一的主圖框的至少一位置相關至在該確定區域內的實體位置。
在例子34中,其包含例子25-26之任一的標的,該處理器電路可以被造成以回應於該間隔為主的主圖框組間的第一候選主圖框的識別或者在差異為主的主圖框組間的第二候選主圖框的識別的至少之一,而以該圖的路
徑的迴路的閉合的表示來加強該圖。
在例子35中,其包含例子25-34之任一的標的,該處理器電路可以被造成以回應於並未識別出候選主圖框匹配在間隔為主的主圖框組間的下一捕捉的圖框及並未識別出候選主圖框匹配在差異為主的主圖框組間的下一捕捉的圖框,以相關於另一捕捉圖框的位置的圖的路徑的新位置的指示來加強該圖。
在例子36中,其包含例子25-35之任一的標的,該確定區域可以包含以下之至少之一:房間、建築的樓面、包含多棟建築的校園、或預定地理區域。
在例子37中,一種設備包含:處理器電路;同時位置與映圖(SLAM)選擇元件,以根據循環間隔,由多重早先捕捉圖框,選擇一間隔為主的主圖框組的各個主圖框,該間隔為主的主圖框組的所述主圖框係為當該行動裝置移動於確定區域附近以產生該確定區域的圖時,在該確定區域內周遭的行動裝置的攝影機所捕捉;卷積類神經網路(CNN)選擇元件,用以根據已經包含在差異為主的主圖框組中的所有其他主圖框的差異程度,由該多重早先捕捉圖框選擇差異為主的主圖框組的各個主圖框;及產生元件,用以將間隔為主的主圖框組的各個主圖框與差異為主的各個主圖框相關至該圖的對應路徑的對應位置。
在例子38中,其包含例子37的標的,該CNN選擇元件可以包含CNN引擎,用以產生碼值給多重早先捕捉圖框的各個早先捕捉圖框,該碼值表示多重預定
視覺特性之哪些係出現在該早先捕捉圖框內。CNN引擎可以包含多重卷積層,該多重卷積層的各個卷積層用以至少部份並聯實施過濾器的多重實例,該過濾器的各個實例用以決定是否多重預定視覺特性之預定視覺特性是否出現在早先捕捉圖框之一內的多重像素的各個多重重疊位置內,該多重池層之各個池層用以實施為對應卷積層的過濾器的多重實例的不同實例所產生的指示的多重實例之次取樣,多重預定視覺特性的預定視覺特性是否出現在早先捕捉圖框之一圖框中。
在例子39中,其包含例子37-38之任一的標的,該CNN選擇元件可以包含第一比較器元件,用以根據早先捕捉圖框的碼值與該CNN引擎給已經包含在差異為主的主圖框組中的所有主圖框產生的所有碼值的比較,決定是否選擇早先捕捉圖框包含在該差異為主的主圖框組中。
在例子40中,其包含例子37-39之任一的標的,該設備可以包含SLAM候選元件,以識別第一候選主圖框,其將現行捕捉圖框匹配離開間隔為主的主圖框組第一程度,及該現行捕捉圖框係為在該確定區域周遭的攝影機所捕捉;CNN候選元件,用以識別第二候選主圖框,其將現行捕捉圖框匹配至離開差異為主的主圖框組至少第二程度;及一位置評估元件,用以由該現行位置與該圖上的第一與第二候選主圖框的位置間的差異評估,決定該行動裝置在該圖上的現行位置。
在例子41中,其包含例子37-40之任一的標的,該CNN引擎可以產生一碼值,用以指示多重預定視覺特性之哪些係出現在現行捕捉圖框中,及該設備可以更包含第二比較器元件,用以根據現行捕捉圖框的碼值與該CNN引擎給包含在差異為主的主圖框組中的所有主圖框所產生的所有碼值的比較,來識別第二候選主圖框。
在例子42中,其包含例子37-41之任一的標的,該產生元件,可以回應於以該SLAM候選元件的該間隔為主的主圖框組的的第一候選主圖框的識別或者以該CNN候選元件的該差異為主的主圖框組間的第二候選主圖框的識別的至少之一,以該圖的路徑的迴路的閉合,來加強該圖。
在例子43中,其包含例子37-42之任一的標的,該產生元件可以回應於並未識別以該SLAM候選元件有一候選主圖框匹配在間隔為主的主圖框組間的下一捕捉圖框的表示以及並未識別以該CNN候選元件有一候選主圖框匹配在該差異為主的主圖框組間的下一捕捉圖框的表示,以相關於下一捕捉圖框的位置的該圖的路徑的新位置的表示來加強該圖。
在例子44中,其包含例子37-43之任一的標的,該產生元件可以根據自該行動裝置的至少一位置感應器接收的捕捉位置資料,將相關至該圖上的該間隔為主的主圖框組或該差異為主的主圖框組的至少之一的主圖框相關的至少一位置相關至在該確定區域內的實體位置,該至
少一位置感應器包含以下至少之一:來自多重衛星的信號的接收器、來自相關於該確定區域的多重無線接取點的信號的接收器、陀螺儀、加速計、里程計、鄰近檢測器、用以讀取在確定區域內的條碼的條碼讀取器、或在該確定區域內的射頻識別(RFID)標籤。
在例子45中,其包含例子37-44之任一的標的,該循環間隔可以包含以下至少之一:當行動裝置移動於確定區域附近以產生該圖時,循環經過的時間間隔;當該行動裝置移動於該確定區域附近以產生圖時,為該行動裝置所行進的距離的間隔;或者當該行動裝置移動於該確定區域附近以產生圖時,為該攝影機所捕捉的早先捕捉圖框的數量的間隔。
在例子46中,其包含例子37-45的任一之標的,該確定區域可以包含以下之至少之一:房間、建築的樓面、包含多棟建築的校園、或預定地理區域。
在例子47中,其包含例子37-46之任一的標的,該設備可以包含行動裝置,該行動裝置包含至少一馬達以促成行動裝置自行驅動於確定區域來產生該圖。
在例子48中,至少一有形機器可讀取儲存媒體,其可以包含指令,當指令為處理器電路所執行時,使得該處理器電路用以執行以上之任一。
在例子49中,該設備可以包含用以執行以上之任一的手段。
1000‧‧‧定位系統
131‧‧‧捕捉影像資料
312‧‧‧CNN引擎
315‧‧‧CNN選擇元件
335‧‧‧主圖框組
336‧‧‧主圖框登錄項
3150‧‧‧比較器元件
Claims (25)
- 一種用以識別位置的設備,包含:處理器元件;同時位置與映圖(SLAM)候選元件,用以識別第一候選主圖框,其將現行捕捉圖框匹配至離開間隔為主的主圖框組至少第一程度,該現行捕捉圖框係為確定區域內周遭的行動裝置的攝影機所捕捉,及該間隔為主的主圖框組包含在該確定區域的圖產生期間,為該攝影機以根據循環間隔所捕捉的多重早先捕捉圖框所選擇的主圖框;卷積類神經網路(CNN)候選元件,用以識別第二候選主圖框,其將該現行捕捉圖框匹配至離開差異為主的主圖框組至少第二程度,該差異為主的主圖框組的各個主圖框係根據已經包括在該差異為主的主圖框組中的所有其他主圖框的差異程度,由該多重早先捕捉圖框選擇出;及位置評估元件,用以由該現行位置與在該圖上的該第一與該第二候選主圖框的位置間之差異評估,決定該行動裝置在該圖上的現行位置。
- 如申請專利範圍第1項之設備,包含SLAM選擇元件,用以根據該循環間隔由該多重早先捕捉圖框選擇該間隔為主的主圖框組的各個所述主圖框,該循環間隔包含以下之至少之一:當該行動裝置移動於該確定區域附近以產生該圖時,循環經過的時間間隔;當該行動裝置移動於該確定區域附近以產生該圖時,該行動裝置所行進的距離的間隔;或者,當該行動裝置移動於該確定區域附近以產生 該圖時,為該攝影機所捕捉的所述早先捕捉圖框的數量的間隔。
- 如申請專利範圍第1項之設備,包含CNN選擇元件,用以根據已經包含在該差異為主的主圖框組中的所有其他主圖框的差異程度,由該多重早先捕捉圖框,選擇該差異為主的主圖框組的各個所述主圖框。
- 如申請專利範圍第3項之設備,其中該CNN選擇元件包含:CNN引擎,用以給該多重早先捕捉圖框的各個早先捕捉圖框,產生表示多重預定視覺特性的哪些出現在該早先捕捉圖框的碼值,該CNN引擎包含:多重卷積層,該多重卷積層的各個卷積層用以實施操作於至少部份並聯的過濾器的多重實例,該過濾器的各個實例用以決定該多重預定視覺特性的預定視覺特性是否出現在所述早先捕捉圖框的一早先捕捉圖框內的多重像素的各個多重重疊位置內;及多重池層,散佈在所述多重卷積層間,該多重池層的各個池層用以實施對應卷積層的該過濾器的該多重實例的不同實例所產生的指示的次取樣多重實例的,所述多重預定視覺特性的預定視覺特性是否出現在所述早先捕捉圖框之一圖框內。
- 如申請專利範圍第1項之設備,更包含產生元件,用以將該間隔為主的主圖框組的各個主圖框與該差異為主的主圖框組的各個主圖框相關至沿著該圖的對應路徑的對 應位置。
- 如申請專利範圍第5項之設備,該產生元件用以根據自該行動裝置的至少一位置感應器接收的捕捉位置資料,將相關至該圖上的該間隔為主的主圖框組或該差異為主的主圖框組的至少之一的主圖框的至少一位置相關至在該確定區域內的實體位置,該至少一位置感應器包含以下至少之一:自多重衛星接收的信號的接收器、來自相關於該確定區域的多重無線接取點的信號的接收器、陀螺儀、加速計、里程計、鄰近檢測器、用以讀取在該確定區域內的條碼的條碼讀取器、或在該確定區域內的射頻識別(RFID)標籤。
- 如申請專利範圍第1項之設備,包含該行動裝置,該行動裝置包含至少一馬達,用以促成該行動裝置自行驅動於該確定區域附近以產生該圖。
- 一種用以控制通訊的電腦實施方法,包含:以處理器電路識別第一候選主圖框,其匹配現行捕捉圖框至離開間隔為主的主圖框組至少第一程度,該現行捕捉圖框係為在確定區域內周遭的行動裝置的攝影機所捕捉,及該間隔為主的主圖框組包含在產生該確定區域的圖期間,從為該攝影機所捕捉的多重早先捕捉圖框基於循環間隔加以選擇的主圖框;識別第二候選主圖框,其匹配該現行捕捉圖框至離開差異為主的主圖框組至少第二程度,該差異為主的主圖框組的各個主圖框係根據已經包括在該差異為主的主圖框組 中的所有其他主圖框的差異程度,由該多重早先捕捉圖框選擇;及以該處理器電路,由現行位置與在該圖上的該第一與該第二候選主圖框的位置間的差異評估,決定該行動裝置在該圖上的該現行位置。
- 如申請專利範圍第8項之電腦實施方法,包含根據該循環間隔,該處理器電路由所述多重早先捕捉圖框選擇該間隔為主的主圖框組的各個所述主圖框,該循環間隔包含以下至少之一:當該行動裝置移動於該確定區域附近以產生該圖時,循環經過的時間間隔;當該行動裝置移動於該確定區域附近以產生該圖時,由該行動裝置所行進的距離之間隔;或當該行動裝置移動於該確定區域附近以產生該圖時,為該攝影機所捕捉的所述早先捕捉圖框的數量之間隔。
- 如申請專利範圍第8項之電腦實施方法,包含:根據已經包含在該差異為主的主圖框組內的所有其他主圖框的該差異程度,由該多重早先捕捉圖框選擇該差異為主的主圖框組的各個所述主圖框。
- 如申請專利範圍第10項之電腦實施方法,包含藉由操作卷積類神經網路(CNN)引擎,給所述多重早先捕捉圖框的各個早先捕捉圖框產生碼值,該碼值表示多重預定視覺特性的哪些出現在該早先捕捉圖框內,該CNN引擎包含:多重卷積層,該多重卷積層的各個卷積層用以實施至 少部份並聯操作的過濾器的多重實例,該過濾器的各個實例決定該多重預定視覺特性的預定視覺特性是否出現在所述早先捕捉圖框之一捕捉圖框內的多重像素的各個多重重疊位置內;及多重池層,散佈於該多重卷積層間,該多重池層的各個池層係用以實施對應卷積層的該過濾器的該多重實例的不同實例所產生的指示的多重實例之次取樣,該多重預定視覺特性之一預定視覺特性是否出現在所述早先捕捉圖框的一圖框內。
- 如申請專利範圍第11項之電腦實施方法,包含:根據該早先捕捉圖框的該碼值與使用該CNN引擎以給已經包含在該差異為主的主圖框組中的所有所述主圖框所產生的所有所述碼值的比較,決定是否選擇一早先捕捉圖框以被包含在該差異為主的主圖框組中。
- 如申請專利範圍第12項之電腦實施方法,包含:產生一碼值,用以表示多重預定視覺特性中之哪些出現在該現行捕捉圖框中;及根據該現行捕捉圖框的該碼值與使用CNN引擎以給包含在該差異為主的主圖框組中的所有所述主圖框所產生的所有所述碼值的比較,識別該第二候選主圖框。
- 如申請專利範圍第8項之電腦實施方法,包含將該間隔為主的主圖框組的各個主圖框與該差異為主的主圖框組的各個主圖框相關至沿著該圖的對應路徑的對應位置。
- 一種識別位置的設備,包含:處理器元件;同時位置與映圖(SLAM)選擇元件,用以根據循環間隔,由多重早先捕捉圖框選擇間隔為主的主圖框組的各個主圖框,該間隔為主的主圖框組的所述主圖框係當行動裝置移動於確定區域附近以產生該確定區域的圖時,為在該確定區域內周遭的該行動裝置的攝影機所捕捉;卷積類神經網路(CNN)選擇元件,用以根據已經包括在該差異為主的主圖框組中的所有其他主圖框的差異程度,由該多重早先捕捉圖框,選擇差異為主的主圖框組的各個所述主圖框;及產生元件,用以將該間隔為主的主圖框組的各個主圖框與該差異為主的主圖框組的各個主圖框相關至沿著該圖的對應路徑的對應位置。
- 如申請專利範圍第15項之設備,該CNN選擇元件包含:CNN引擎,用以產生碼值給所述多重早先捕捉圖框的各個早先捕捉圖框,該碼值係表示多重預定視覺特性之哪些係出現在所述早先捕捉圖框內,該CNN引擎包含:多重卷積層,該多重卷積層的各個卷積層用以實施操作在至少部份並聯的過濾器的多重實例,該過濾器的各個實例係用以決定是否所述多重預定視覺特性的預定視覺特性出現在所述早先捕捉圖框的一捕捉圖框內的多重像素的各個多重重疊位置內;及 多重池層,散佈於所述多重卷積層間,該多重池層的各個池層係用以實施對應卷積層的該過濾器的所述多重實例的不同實例所產生之指示的多重實例之次取樣,所述多重預定視覺特性的預定視覺特性是否出現在所述早先捕捉圖框的該一圖框內。
- 如申請專利範圍第16項之設備,其中該CNN選擇元件,包含第一比較器元件,用以根據早先捕捉圖框的該碼值與為該CNN引擎所產生給已經包括在該差異為主的主圖框組中的所有所述主圖框的所有所述碼值的比較,決定是否選擇該早先捕捉圖框以被包含在該差異為主的主圖框組內。
- 如申請專利範圍第17項之設備,包含:SLAM候選元件,用以識別第一候選主圖框,其將現行捕捉圖框匹配至離開間隔為主的主圖框組至少第一程度,及該現行捕捉圖框係為在該確定區域周遭的該攝影機所捕捉;CNN候選元件,用以識別第二候選主圖框,其將該現行捕捉圖框匹配至離開差異為主的主圖框組至少第二程度;及位置評估元件,用以由該現行位置與該圖上的所述第一與第二候選主圖框的位置間的差異評估,決定該行動裝置在該圖上的現行位置。
- 如申請專利範圍第18項之設備,該CNN引擎用以產生碼值,其表示多重預定視覺特性之哪些係出現在該 現行捕捉圖框內,及該設備包含:第二比較器元件,用以根據該現行捕捉圖框的該碼值與為該CNN引擎所產生給包含在該差異為主的主圖框組中的所有所述主圖框的所有所述碼值的比較,識別該第二候選主圖框。
- 如申請專利範圍第18項之設備,其中該產生元件,用以回應於該間隔為主的主圖框組間的該第一候選主圖框為該SLAM候選元件所識別或者在該差異為主的主圖框組間的該第二候選主圖框為該CNN候選元件所識別的至少之一,以該圖的路徑的迴路的閉合的表示來擴充該圖。
- 一種至少一有形機器可讀取儲存媒體,包含指令,當所述指令為處理器電路所執行時,使得該處理器電路用以:識別第一候選主圖框,其匹配現行捕捉圖框至離開間隔為主的主圖框組至少第一程度,該現行捕捉圖框係為在確定區域內周遭的行動裝置的攝影機所捕捉,及該間隔為主的主圖框組包含根據在產生該確定區域的圖期間,該攝影機所捕捉的多重早先捕捉圖框的循環間隔所選擇的主圖框;識別第二候選主圖框,其將該現行捕捉圖框匹配至離開差異為主的主圖框組至少第二程度,該差異為主的主圖框組的各個主圖框係根據已經包括在該差異為主的主圖框組內的所有其他主圖框的差異程度,由所述多重早先捕捉 圖框選擇出;及由該現行位置與在該圖上的所述第一與第二候選主圖框的位置間的差異評估,來決定該行動裝置在該圖上的現行位置。
- 如申請專利範圍第21項之至少一有形機器可讀取儲存媒體,其中該處理器電路耦接至以硬體為主邏輯實施的卷積類神經網路(CNN)引擎,及該處理器電路,用以操作該CNN引擎,以識別該第二候選主圖框。
- 如申請專利範圍第21項之至少一有形機器可讀取儲存媒體,其中該處理器電路被造成以根據已經包括在該差異為主的主圖框組中的所有其他主圖框的所述差異程度,由所述多重早先捕捉圖框選擇該差異為主的主圖框組的各個所述主圖框。
- 如申請專利範圍第23項之至少一有形機器可讀取儲存媒體,其中該處理器電路被造成以藉由使用卷積類神經網路(CNN)引擎,給所述多重早先捕捉圖框的各個早先捕捉圖框產生碼值,其表示多重預定視覺特性之哪些係出現在該早先捕捉圖框內,該CNN引擎包含:多重卷積層,該多重卷積層的各個卷積層用以實施至少部份並聯操作的多重實例的過濾器,該過濾器的各個實例用以決定所述多重預定視覺特性之預定視覺特性是否出現在所述早先捕捉圖框之一捕捉圖框內的多重像素的各個多重重疊位置內;及多重池層,散佈於所述多重卷積層間,該多重池層之 各個池層用以實施為對應卷積層的該多重實例的過濾器的不同實例所產生的指示的多重實例之次取樣,所述多重預定視覺特性的預定視覺特性是否出現在所述早先捕捉圖框之一捕捉圖框中。
- 如申請專利範圍第24項之至少一有形機器可讀取儲存媒體,其中該處理器電路被造成以根據該早先捕捉圖框的該碼值與使用該CNN引擎給已經包括在該差異為主的主圖框組的所有所述主圖框產生的所有所述碼值的比較,決定是否選擇早先捕捉圖框以被包含在該差異為主的主圖框組中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/077802 WO2017166089A1 (en) | 2016-03-30 | 2016-03-30 | Techniques for determining a current location of a mobile device |
WOPCT/CN2016/077802 | 2016-03-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201741937A true TW201741937A (zh) | 2017-12-01 |
TWI731936B TWI731936B (zh) | 2021-07-01 |
Family
ID=59962402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106105773A TWI731936B (zh) | 2016-03-30 | 2017-02-21 | 根據影像比較的位置識別的設備、方法及有形機器可讀取儲存媒體 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11402213B2 (zh) |
TW (1) | TWI731936B (zh) |
WO (1) | WO2017166089A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI703506B (zh) * | 2018-04-16 | 2020-09-01 | 台達電子工業股份有限公司 | 載具追蹤系統及方法 |
TWI725360B (zh) * | 2017-12-06 | 2021-04-21 | 大陸商北京嘀嘀無限科技發展有限公司 | 用於確定地圖上的新道路的系統和方法 |
TWI726412B (zh) * | 2019-09-06 | 2021-05-01 | 國立成功大學 | 識別室內位置的建模系統、可攜式電子裝置、室內定位方法、電腦程式產品及電腦可讀取紀錄媒體 |
TWI821220B (zh) * | 2017-12-05 | 2023-11-11 | 荷蘭商皇家飛利浦有限公司 | 影像擷取之設備及方法 |
TWI821310B (zh) * | 2018-06-18 | 2023-11-11 | 日商達斯萊有限公司 | 遊戲系統及程式 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201410612D0 (en) * | 2014-06-13 | 2014-07-30 | Tomtom Int Bv | Methods and systems for generating route data |
US10535029B2 (en) | 2015-01-23 | 2020-01-14 | Sprinklr, Inc. | Multi-dimensional command center |
CN109154990B (zh) * | 2016-06-03 | 2023-10-03 | 英特尔公司 | 卷积神经网络中的查找卷积层 |
US10942697B2 (en) * | 2017-03-07 | 2021-03-09 | Sprinklr, Inc. | System for discovering configuration of display wall |
US10048753B1 (en) * | 2017-04-20 | 2018-08-14 | Robert C. Brooks | Perspective or gaze based visual identification and location system |
CN108875931B (zh) * | 2017-12-06 | 2022-06-21 | 北京旷视科技有限公司 | 神经网络训练及图像处理方法、装置、*** |
US11436483B2 (en) * | 2018-01-17 | 2022-09-06 | Mediatek Inc. | Neural network engine with tile-based execution |
US11126846B2 (en) * | 2018-01-18 | 2021-09-21 | Ebay Inc. | Augmented reality, computer vision, and digital ticketing systems |
WO2019168886A1 (en) * | 2018-03-02 | 2019-09-06 | Purdue Research Foundation | System and method for spatially mapping smart objects within augmented reality scenes |
CN110706194B (zh) * | 2018-06-21 | 2021-07-06 | 北京三快在线科技有限公司 | 一种定位方法、装置及移动设备 |
US10798393B2 (en) * | 2018-07-09 | 2020-10-06 | Hulu, LLC | Two pass chunk parallel transcoding process |
US11386178B2 (en) | 2019-06-20 | 2022-07-12 | Sprinklr, Inc. | Enhanced notification system for real time control center |
US11244363B1 (en) | 2018-10-25 | 2022-02-08 | Sprinklr, Inc. | Rating and review integration system |
DE102018126855A1 (de) * | 2018-10-26 | 2020-04-30 | Visualix GmbH | Vorrichtung und Verfahren zur Positionsbestimmung in einem 3D-Modell einer Umgebung |
US20200182623A1 (en) * | 2018-12-10 | 2020-06-11 | Zebra Technologies Corporation | Method, system and apparatus for dynamic target feature mapping |
CN110008804B (zh) * | 2018-12-12 | 2021-07-06 | 浙江新再灵科技股份有限公司 | 基于深度学习的电梯监控关键帧获取及检测方法 |
CN110070577B (zh) * | 2019-04-30 | 2023-04-28 | 电子科技大学 | 基于特征点分布的视觉slam关键帧与特征点选取方法 |
US11397923B1 (en) | 2019-10-07 | 2022-07-26 | Sprinklr, Inc. | Dynamically adaptive organization mapping system |
CN112815923B (zh) * | 2019-11-15 | 2022-12-30 | 华为技术有限公司 | 视觉定位方法和装置 |
ES2886582A1 (es) * | 2021-06-03 | 2021-12-20 | Ostirion S L U | Procedimiento y equipo de deteccion de posicion y velocidad de un vehiculo ferroviario |
CN113624222A (zh) * | 2021-07-30 | 2021-11-09 | 深圳市优必选科技股份有限公司 | 一种地图的更新方法、机器人及可读存储介质 |
WO2023141740A1 (en) * | 2022-01-25 | 2023-08-03 | Qualcomm Incorporated | Method and system for loop closure detection |
CN116012624B (zh) * | 2023-01-12 | 2024-03-26 | 阿波罗智联(北京)科技有限公司 | 定位方法、装置、电子设备、介质以及自动驾驶设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1402852A (zh) * | 1999-10-22 | 2003-03-12 | 动感天空公司 | 面向目标的视频*** |
US8311733B2 (en) * | 2005-02-15 | 2012-11-13 | The Invention Science Fund I, Llc | Interactive key frame image mapping system and method |
JP5072062B2 (ja) | 2006-03-13 | 2012-11-14 | 栗田工業株式会社 | 水素ガス溶解洗浄水の製造方法、製造装置及び洗浄装置 |
JP2011009846A (ja) * | 2009-06-23 | 2011-01-13 | Sony Corp | 画像処理装置、画像処理方法及びプログラム |
EP2357773B1 (en) | 2010-02-10 | 2018-01-10 | Avago Technologies General IP (Singapore) Pte. Ltd | Preamble and header bit allocation for power savings within multiple user, multiple access, and/or MIMO wireless communications systems |
EP4228166A1 (en) | 2012-09-28 | 2023-08-16 | InterDigital Patent Holdings, Inc. | Method for wifi beamforming, feedback, and sounding (wibeam) |
CN103278170B (zh) * | 2013-05-16 | 2016-01-06 | 东南大学 | 基于显著场景点检测的移动机器人级联地图创建方法 |
CN104537709B (zh) * | 2014-12-15 | 2017-09-29 | 西北工业大学 | 一种基于位姿变化的实时三维重建关键帧确定方法 |
US11069082B1 (en) * | 2015-08-23 | 2021-07-20 | AI Incorporated | Remote distance estimation system and method |
US11218688B2 (en) * | 2016-01-04 | 2022-01-04 | Occipital, Inc. | Apparatus and methods for three-dimensional sensing |
-
2016
- 2016-03-30 WO PCT/CN2016/077802 patent/WO2017166089A1/en active Application Filing
- 2016-03-30 US US16/081,129 patent/US11402213B2/en active Active
-
2017
- 2017-02-21 TW TW106105773A patent/TWI731936B/zh active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI821220B (zh) * | 2017-12-05 | 2023-11-11 | 荷蘭商皇家飛利浦有限公司 | 影像擷取之設備及方法 |
TWI725360B (zh) * | 2017-12-06 | 2021-04-21 | 大陸商北京嘀嘀無限科技發展有限公司 | 用於確定地圖上的新道路的系統和方法 |
TWI703506B (zh) * | 2018-04-16 | 2020-09-01 | 台達電子工業股份有限公司 | 載具追蹤系統及方法 |
TWI821310B (zh) * | 2018-06-18 | 2023-11-11 | 日商達斯萊有限公司 | 遊戲系統及程式 |
TWI726412B (zh) * | 2019-09-06 | 2021-05-01 | 國立成功大學 | 識別室內位置的建模系統、可攜式電子裝置、室內定位方法、電腦程式產品及電腦可讀取紀錄媒體 |
Also Published As
Publication number | Publication date |
---|---|
TWI731936B (zh) | 2021-07-01 |
WO2017166089A1 (en) | 2017-10-05 |
US11402213B2 (en) | 2022-08-02 |
US20190094027A1 (en) | 2019-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI731936B (zh) | 根據影像比較的位置識別的設備、方法及有形機器可讀取儲存媒體 | |
US11393211B2 (en) | Hybrid graphics processor-field programmable gate array system | |
US11748841B2 (en) | Coordination and increased utilization of graphics processors during inference | |
US10410115B2 (en) | Autonomous machines through cloud, error corrections, and predictions | |
EP3401786B1 (en) | Autonomous vehicle advanced sensing and response | |
US11859973B2 (en) | Large scale CNN regression based localization via two-dimensional map | |
CN109154990B (zh) | 卷积神经网络中的查找卷积层 | |
EP3399471A1 (en) | Efficient learning and using of topologies of neural networks in machine learning | |
CN109690578B (zh) | 自主机器的通用输入/输出数据捕获和神经高速缓存*** | |
US20190096035A1 (en) | Super-resolution apparatus and method for virtual and mixed reality | |
KR20210040166A (ko) | 컴퓨터 비전 시스템 | |
US10074151B2 (en) | Dense optical flow acceleration | |
CN110050243B (zh) | 通过使用自主机器中的中间层特征的增强神经回归进行相机重新定位 |