Systems and methods for the localization of objects buried in the seabed
11846742 · 2023-12-19
Assignee
Inventors
- Wendy E Snyder (Bremerton, WA, US)
- Forrest N French (Poulsbo, WA, US)
- Stephen John Leahu (Poulsbo, WA, US)
Cpc classification
International classification
Abstract
Systems and methods are provided to detect and localize targeted objects buried in the seabed. A targeted area of the seabed may be scanned with a sub-bottom profiler based on predetermined parameters. A localization engine may model the sub-bottom profiler data using a Levenberg-Marquardt non-linear least squares determination. Distance measurements may be based on the modeled data, including a vertical range based on a slant range measured from the sub-bottom profiler to the closest points on the exterior of the targeted objects. The location of the targeted objects may be based on the measurements. In some embodiments, the sub-bottom profiler may be mounted on an unmanned underwater vehicle having thrusters to navigate the vehicle toward the targeted area to excavate and sidescan the targeted object.
Claims
1. A method for detecting and localizing targeted objects buried in a seabed, comprising the steps of: scanning, via a sub-bottom profiler, a targeted area of the seabed for at least one of the targeted objects; receiving sub-bottom profiler data from the sub-bottom profiler, the sub-bottom profiler data comprising a set of data points representing the location of a plurality of physical points on the exterior surface of the at least one of the targeted objects; modelling, via a localization engine, the sub-bottom profiler data; determining distance measurements based on the modeled sub-bottom profiler data, the distance measurements comprising a vertical range based on a slant range, the slant range measured from the sub-bottom profiler to the closest one of the plurality of physical points on the exterior surface of the at least one of the targeted objects; and, determining a location of the at least one of the targeted objects based on the distance measurements.
2. The method of claim 1, further comprising the step of: accessing a database, the database including a plurality of predetermined parameters for the targeted objects, wherein the predetermined parameters for each of the targeted objects comprises a x-coordinate, a y-coordinate, a z-coordinate, a bearing angle, a plunge angle, and an object length, and wherein the scanning step is based on a corresponding predetermined location for the at least one of the targeted objects.
3. The method of claim 1, wherein the location determining step is performed by the localization engine that implements a Levenberg-Marquardt non-linear least squares determination based on a derivative matrix comprising a set of squared values derived from the distance measurements.
4. The method of claim 3, further comprising the steps of: adjusting the derivative matrix based on a Levenberg-Marquardt non-linear least squares determination; and, updating the determination of the location of the at least one of the targeted objects based on the adjusted derivative matrix.
5. The method of claim 1, further comprising the step of: determining a value for the location of the at least one of the targeted objects based the sub-bottom profiler data, wherein the location determining step is performed by the localization engine that implements a Levenberg-Marquardt non-linear least squares determination.
6. The method of claim 1, further comprising the step of: adjusting a model based on a Levenberg-Marquardt non-linear least squares determination, wherein the modelling step is based on the model.
7. The method of claim 2, further comprising the steps of: generating a localization result for the at least one of the targeted objects based on a Levenberg-Marquardt non-linear least squares determination, wherein the location determining step is performed by a localization that engine implements the Levenberg-Marquardt non-linear least squares determination; and, adjusting the corresponding predetermined location based the localization result, wherein the localization result comprises a position and an orientation for the at least one of the targeted objects.
8. The method of claim 7, wherein the localization result is based on a dampening factor applied to a derivative matrix comprising a set of distance measurements.
9. The method of claim 1, wherein the sub-bottom profiler is mounted on an unmanned underwater vehicle.
10. The method of claim 9, wherein the unmanned underwater vehicle comprises a plurality of thrusters, the thrusters adapted to control the navigation and stability of the unmanned underwater vehicle.
11. The method of claim 10, further comprising the steps of: navigating to the targeted area, wherein the unmanned underwater vehicle navigates in a linear path towards the targeted area using the plurality of thrusters; receiving updated sub-bottom profiler data from the sub-bottom profiler while the underwater vehicle navigates toward the targeted area; and, excavating the targeted area to expose at least a portion of the at least one of the targeted objects, wherein the excavating step is performed by tools mounted on the unmanned underwater vehicle.
12. The method of claim 11, further comprising the step of: scanning, via sidescan sonar, the exposed portion of the at least one of the targeted objects; and, updating the plurality of predetermined parameters for the targeted objects based on sidescan data received from the sidescan sonar.
13. A non-transitory computer-readable medium including instructions configured to be executed by a processor, wherein the executed instructions are adapted to cause the processor to: access a database, the database including a plurality of predetermined parameters for the targeted objects; scan, via a sub-bottom profiler, a targeted area of the seabed for at least one of the targeted objects based on a corresponding predetermined parameter for the at least one of the targeted objects; receive sub-bottom profiler data from the sub-bottom profiler, the sub-bottom profiler data comprising a set of data points representing the location of a plurality of physical points on the exterior surface of the at least one of the targeted objects; model, via a localization engine, the sub-bottom profiler data; determine distance measurements based on the modeled sub-bottom profiler data, the distance measurements comprising a vertical range based on a slant range, the slant range measured from the sub-bottom profiler to the closest one of the plurality of physical points on the exterior surface of the at least one of the targeted objects; and, determine a location of the at least one of the targeted objects based on the distance measurements, wherein the localization engine implements a Levenberg-Marquardt non-linear least squares determination.
14. The computer-readable medium of claim 13, wherein the predetermined parameters for each of the targeted objects comprises a x-coordinate, a y-coordinate, a z-coordinate, a bearing angle, a plunge angle, and an object length.
15. The computer-readable medium of claim 13, wherein the executed instructions are further adapted to cause the processor to: navigate to the targeted area, wherein the sub-bottom profiler is mounted on an unmanned underwater vehicle, wherein the unmanned underwater vehicle comprises a plurality of thrusters, the thrusters adapted to control the navigation and stability of the unmanned underwater vehicle, wherein the unmanned underwater vehicle navigates in a linear path towards the targeted area using the plurality of thrusters; receive updated sub-bottom profiler data from the sub-bottom profiler while the underwater vehicle navigates toward the targeted area; and, excavate the targeted area to expose at least a portion of the at least one of the targeted objects, wherein the excavating step is performed by tools mounted on the unmanned underwater vehicle.
16. The computer-readable medium of claim 15, wherein the executed instructions are adapted to further cause the processor to: scanning, via sidescan sonar, the exposed portion of the at least one of the targeted objects; and, updating the plurality of predetermined parameters for the targeted objects based on sidescan data received from the sidescan sonar.
17. A system for detecting and localizing targeted objects buried in a seabed, comprising: a memory to store executable instructions; and, a processor adapted to access the memory, the processor further adapted to execute the executable instructions stored in the memory to: access a database, the database including a plurality of predetermined parameters for the targeted objects; scan, via a sub-bottom profiler, a targeted area of the seabed for at least one of the targeted objects based on a corresponding predetermined parameter for the at least one of the targeted objects; receive sub-bottom profiler data from the sub-bottom profiler, the sub-bottom profiler data comprising a set of data points representing the location of a plurality of physical points on the exterior surface of the at least one of the targeted objects; model, via a localization engine, the sub-bottom profiler data; determine distance measurements based on the modeled sub-bottom profiler data, the distance measurements comprising a vertical range based on a slant range, the slant range measured from the sub-bottom profiler to the closest one of the plurality of physical points on the exterior surface of the at least one of the targeted objects; and, determine a location of the at least one of the targeted objects based on the distance measurements, wherein the localization engine implements a Levenberg-Marquardt non-linear least squares determination.
18. The system of claim 17, wherein the predetermined parameters for each of the targeted objects comprises a x-coordinate, a y-coordinate, a z-coordinate, a bearing angle, a plunge angle, and an object length.
19. The system of claim 17, wherein the processor is further adapted to: navigate to the targeted area, wherein the sub-bottom profiler is mounted on an unmanned underwater vehicle, wherein the unmanned underwater vehicle comprises a plurality of thrusters, the thrusters adapted to control the navigation and stability of the unmanned underwater vehicle, wherein the unmanned underwater vehicle navigates in a linear path towards the targeted area using the plurality of thrusters; receive updated sub-bottom profiler data from the sub-bottom profiler while the underwater vehicle navigates toward the targeted area; and, excavate the targeted area to expose at least a portion of the at least one of the targeted objects, wherein the excavating step is performed by tools mounted on the unmanned underwater vehicle.
20. The system of claim 19, wherein the processor is further adapted to: scanning, via sidescan sonar, the exposed portion of the at least one of the targeted objects; and, updating the plurality of predetermined parameters for the targeted objects based on sidescan data received from the sidescan sonar.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The foregoing and other objects, features, and advantages for embodiments of the present disclosure will be apparent from the following more particular description of the embodiments as illustrated in the accompanying drawings, in which reference characters refer to the same parts throughout the various views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating principles of the present disclosure.
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
DETAILED DESCRIPTION OF THE DISCLOSURE
(12) Reference will now be made in detail to the embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings.
(13) The present disclosure may be embodied in various forms, including a system, a method, or a computer readable medium for scanning, within the sea 1 under the water surface 2, the seabed 4 to detect, localize and/or identify targeted objects 5 buried beneath the seafloor 3. As shown in
(14) Referring back to
(15)
(16) An embodiment of the disclosed system that may be implemented in many different ways, using various components and modules, including any combination of circuitry described herein, such as hardware, software, middleware, application program interfaces (APIs), and/or other components for implementing the corresponding features of the circuitry. The system may include a localization engine 15, as further described below. In an embodiment, as shown in
(17)
(18) The localization method 26 utilizes the beam-width effects of the sub-bottom profiler 7. Because of the aperture of the sub-bottom profiler 7, targeted objects 5 resulting in strong enough reflections located anywhere within the beam of the sonar for a given ping will result in a return in the sub-bottom data. Because returns ranges are based on acoustic travel time, returns from objects 7 off the main axis of the sub-bottom aperture will have longer travel times and thus appear deeper than their corresponding profiler data 7′. When the sound speed is constant, the vertical range measurement (R.sub.m) 10 determined from the sub-bottom data is equal to the actual slant range (R.sub.s) 9 between the sub-bottom transducer 7 and the targeted object 5 creating the reflection. Based on these relationships, when the reflection comes from the closest point on the target 5 and there is no tidal change over the duration of data collection, a non-linear least squares model may be utilized to locate a targeted object 5 based on collected sub-bottom data.
(19) In some embodiments, the targeted object 5 is predetermined to have a linear shape. For linear targeted objects 5, the targeted object 5 may be parameterized by features/parameters 28: x, y, z, bearing, plunge and length. The x,y,z coordinates provide the location of one endpoint of the targeted object 5, in a local tangent plane Cartesian coordinate system. The bearing may be the angle the line of the targeted object 5 from due north, in a counterclockwise positive direction. The plunge may be the angle the line of the targeted object 5 with the horizontal sea surface 2. The length corresponds to the overall length of the targeted object 5. Points on the target may be defined by parametric equations:
xp=x+t*sin(θ)*cos(φ)
yp=y+t*cos(θ)*cos(φ)
zp=z+t*sin(φ) where t is the length along the target (0<t<length).
(20) The system model may be defined as a function of the parameters for the targeted object 5. Length may be predetermined, estimated by the model, or later determined using sidescan sonar after excavation of at least a portion of the targeted object 5 as described below. The system model may represent the vertical range measurement (R.sub.m) 10 squared may be based on the actual slant range (R.sub.s) 9 squared between the sub-bottom profiler 7 and target object 5. While the squared distances are used in some embodiments using derivatives in the least squares solution, actual distances may also be used in accordance with the present disclosure. The depth measurement (dep) 8 together with its corresponding vertical range measurement (R.sub.m) 10 may be set to equal a vertical measurement (Z.sub.meas) 11 for the targeted meas, object 5. The system model may comprise:
(21)
where x.sub.v,y.sub.v and dep is location and depth of the sub-bottom profiler 7 corresponding to the vertical measurement of Z.sub.meas 11. The subscript i indicates the index of each data point in which a strong reflection was measured. The values t, are selected such that R.sub.s is minimized over 0<t<target length using the equation:
t.sub.i=((x.sub.v,i−x)*sin θ cos ϕ+(y.sub.v,i−y)*cos θ cos ϕ+(dep.sub.i−z)*sin(ϕ)/(sin.sup.2θ cos.sup.2ϕ+cos.sup.2θ cos.sup.2ϕ+sin.sup.2ϕ)
The location of the targeted object 5 is then determined by minimizing:
Σ.sub.i∥F.sub.i(x,y,z,θϕ)∥.sup.2 over a set of sub-bottom contact data.
(22) The minimization may be facilitated by incorporating the non-linear least squares Levenberg-Marquardt optimization method into the disclosed method 26. In an embodiment, the steps of a localization method 26 may include: 1) Define initial predetermined parameters X.sub.0=[x.sub.0, y.sub.0, z.sub.0, θ.sub.0, φ.sub.0] and damping factor λ 2) Iterate the following until X converges: a. For each i, find t, that minimizes:
sqrt[(x.sub.k+t.sub.i*sin(θ.sub.k)*cos(φ.sub.k)−x.sub.v,i).sup.2+(y.sub.k+t.sub.i*cos(θ.sub.k)*cos(φ.sub.k)−y.sub.v,i).sup.2+(z.sub.k+t.sub.i*sin(φ.sub.k)+dep.sub.i).sup.2] b. Compute F.sub.i(X.sub.k) for each i c. Compute derivative matrix dF.sub.k 34 for F.sub.i(X.sub.k) d. Compute new predetermined values for X.sub.k+1 and J.sub.k+1
X.sub.k+1=X.sub.k−(dF.sub.k.sup.T*dF.sub.k+λI.sub.5).sup.−1*dF.sub.k.sup.T*F(X.sub.k) e. If J.sub.k+1<J.sub.k: Accept update to X.sub.k+1 set λ=0.8*λ (or otherwise reduce lambda) Else: Reject update set λ=2*λ (or otherwise increase lambda) f. Compute change in predetermined values
dX.sub.k=X.sub.k+1−X.sub.k g. Test for convergence (max(|dX.sub.k|)<0.001) or other convergence value/criteria h. If not converged, repeat iteration unless the desired maximum number of iterations has been completed 3) Once converged compute quality of fit for final X.sub.k:
J.sub.min=Σ.sub.i|F.sub.i(x.sub.k,y.sub.k,z.sub.k,θ.sub.k,ϕ.sub.k)|.sup.2 4) Normalize quality by number of data points to aid in comparison of different inputs
J.sub.norm=J.sub.min/n where n is the number of sub-bottom data points.
(23) When length of the targeted object 5 is unknown, the solution can be determined for varying parameters for length of the targeted object 5. The length that yields the lowest value of J.sub.norm or at which J.sub.norm converges to a minimum value is the most likely value of length.
(24) A script may be written to process sub-bottom data using the aforementioned method 26, taking as input a set of sub-bottom contacts 5′ including the location and measured depth of each contact 5′. The output gives the optimal fit values of the target parameters based on the contacts 5′ and shows an x/y plot of each location for a contact 5′ contact beneath the targeted area 3″ as well as a comparison of each actual measured contact verses the expected return for the resulting contact 5′.
(25)
(26) Sub-bottom profiler data 7′, predetermined shape/orientation data 32 of a buried object 5 based on predetermined parameters 28, and an assumed location/position 31 of a buried object 5 represented by λ may be processed by the localization model 29. The iterations may assume a location 31 of the object 5, and improve the location so the data matches the expected data return for an object 5 at the assumed location 31. Location adjustments 33 may be made slowly during each iteration of the algorithm until the data fits within some tolerance or a maximum number of iterations has occurred.
(27) In some embodiments, a derivative matrix 34 is determined based on the current value X.sub.k. The steps 27 are based on J.sub.k when a derivative matrix 34 for a current X.sub.k is utilized. A new value of X.sub.k is determined. Values of J.sub.k may determine whether a new current X.sub.k value has a greater or lesser chance of being correct. The steps 27 may apply the Levenberg-Marquardt non-linear least squares formula based on the new parameters resulting from determining a derivative matrix 34 of a current X.sub.k, value denoted as X.sub.k+1.
(28) The steps 27 may determine the sum of the squares of error values of J based a new X.sub.k+1. The sum of squares of error values of J using a new X.sub.k+1 is determined, and new error values of J denoted as J.sub.k+1 are determined. New J.sub.k+1, also referred to as new summed squares of errors, may be compared to an immediate previous error values of J to determine the degree of error. If J.sub.k+1 is larger than J.sub.k, the next iterations of the steps 27 may increase X, a dampening factor, to a smaller adjustment and continue to use X.sub.k. If J.sub.k+1 is smaller than J.sub.k, the next iterations of the steps 27 may update X.sub.k to X.sub.k+1 and reduces X. A smaller J.sub.k+1 may be desired, as a smaller J.sub.k+1 indicates the new estimate of the object location having a lower error than the previous estimate. This is performed in post processing on the same data, while improving the estimate of the location with each iteration.
(29) The change in the X value is determined by the steps 27. A new value of λ may be subtracted from an immediate previous value of X, or X.sub.k+1−X.sub.k. The steps 27 may examine the change in X against a convergence value. A convergence value may be predetermined. If the change in λ is more than the convergence value, or if k is less than the number of maximum iterations, X.sub.k+1 is returned to the beginning of the iteration and becomes X.sub.k in the formulae. If λ is less than the convergence number, or k is greater than the number of maximum iterations, steps stops and produces an output parameter value. Output parameter values are a best-fit values for the location of a buried object.
(30)
(31)
(32)
(33) In order to locate a buried fiber optic cable 5, in an embodiment, a targeted area 3″ is determined based on the location where at least a portion of the buried cable 5 was known to exist. The model may also determine whether a dampening factor X will be increased or decreased for errors. A predetermined number of iterations of the steps 27 is set, as well as a convergence number to end the iterations of the steps 27. The UUV 6 may utilize sonar to scan a predetermined targeted area 3″ of the seafloor 3. For example, the buried fiber optic cable 5 may be found in a targeted area 3″ of one-meter wide, ten-meters long, and five-meters deep. As a UUV travels, a sub-bottom profiler generates pings that bounce off of sediments and the object 5, returning to a SONAR receiver 7. Each ping return is a set of data points in the vertical, down direction. Pitch equals frequency, which is the same for every ping. In the case of the sub-bottom profiler, this is referred to as pulse. The intensity of the returned sound indicates the density and reflectiveness of the sediment or object 5 it is reflected from. The returned pings are also referred to as sub-bottom data. The distance between a UUV 6 and the targeted object 5 may be determined and then recorded, along with the depth of the UUV 6, and the slant range distance (R.sub.s) 9 from the UUV 6 to a location of a buried fiber optic cable 5.
(34) The method may use all the collected data at once to find the most likely location of the object 5 after data is collected and post processed. In some embodiments, position/location and navigation information 30 of the underwater vehicle 6 may be collected and then processed by the localization model 29. A predetermined shape of a buried fiber optic cable 5 may be used by the steps 27, along with a predetermined location for a buried fiber optic cable 5. Steps 27 may compute the differences between sub-bottom data measurements, such as R.sub.m 10, the depth of the UUV 6, the slant range distance R.sub.s 9 from the UUV 6 to an assumed location 31 for a buried fiber optic cable 5, and the differences between the current assumed location 31 and a previous assumed location 31.
(35) The steps 27 may square and sum all of the differences between the sub-bottom data measurements and the theoretical measurements based on the assumed location 31. The steps 27 may use a squared differences and an assumed location 31 of a buried fiber optic cable 5 to calculate a derivative matrix 34. The product of a derivative matrix 34 is a new value of X, or a new assumed location 31 for the buried fiber optics cable 5. A new assumed location 31 may be used by the Levenberg-Marquardt non-linear least squares formula. A new summed square of errors may be determined for a new assumed location. If a new squared error is less than the immediate previous error, a new assumed location of a buried fiber optic cable 5 is used by the steps 27 as the next assumed location at the beginning of the subsequent iteration of the steps 27. The steps 27 update the new assumed location of a buried fiber optic cable 5, and reduce the dampening factor X by the predetermined amount at the start of buried object localization process 26.
(36) The steps 27 may determine the difference between a new assumed location 31 and the preceding assumed location 31. If the difference is less than a predetermined convergence value, the steps 27 use the new assumed location 31 of the buried fiber optic cable 5 as a targeted contact 5′ of a buried fiber optic cable 5. A targeted contact 5′ is represented by a return in the sub-bottom data assumed to be from an object or target of interest.
(37) The steps 27 may run as many times as set by the maximum number of iterations. The process in step 27 may rely on the prior determination of contacts 5. Contacts 5 may be marked and extracted from data via an image processing algorithm. The contacts 5′ may be plotted on a two-dimensional graph, as shown in
(38) The localization method may include additional steps based on information received after the excavation of a targeted area 3″ and the performance of sidescans on a targeted contact 5. Referring back to
(39) As shown in
(40) In accordance with certain method and systems, the underwater vehicle 6 may navigate to the targeted area 3″. The vehicle 6 may navigates in a linear path towards the targeted area 3″ using the thrusters of the vehicle 6. Updated sub-bottom profiler data 7′ may be received from the sub-bottom profiler 7 while the underwater vehicle 6 navigates toward the targeted area 3″. In certain embodiments, the targeted area 3″ may be excavated to expose at least a portion of the targeted object 5. The excavating step may be performed by tools 69 mounted on the underwater vehicle 6. In some embodiments, the exposed portion of the targeted object 5 may be scanned by sidescan sonar 24. Predetermined parameters 28 for the targeted objects 5 may be updated based on sidescan data received from the sidescan sonar 24.
(41) In some embodiments, the computer device 17 may include communication interfaces, system circuitry, input/output (I/O) interface circuitry, and display circuitry. The communication interfaces may include wireless transmitters and receivers (herein, “transceivers”) and any antennas used by the transmit-and-receive circuitry of the transceivers. The transceivers and antennas may support Wi-Fi network communications, for instance, under any version of IEEE 802.11, e.g., 802.11n or 802.11ac, or other wireless protocols such as Bluetooth, Wi-Fi, WLAN, cellular (4G, LTE/A). The communication interfaces may also include serial interfaces, such as universal serial bus (USB), serial ATA, IEEE 1394, lighting port, I.sup.2C, slimBus, or other serial interfaces. The communication interfaces may also include wireline transceivers to support wired communication protocols. The wireline transceivers may provide physical layer interfaces for any of a wide range of communication protocols, such as any type of Ethernet, Gigabit Ethernet, optical networking protocols, data over cable service interface specification (DOCSIS), digital subscriber line (DSL), Synchronous Optical Network (SONET), or other protocol.
(42) The system circuitry may include any combination of hardware, software, firmware, APIs, and/or other circuitry. The system circuitry may be implemented, for example, with one or more systems on a chip (SoC), servers, application specific integrated circuits (ASIC), field programmable gate arrays (FPGA), microprocessors, discrete analog and digital circuits, and other circuitry. The system circuitry may implement any desired functionality of the system 16. As just one example, the system circuitry may include one or more instruction processor 19 and memory 18. The processor 19 may be one or more devices operable to execute logic. The logic may include computer executable instructions or computer code embodied in the memory 18 or in other memory that when executed by the processor 19, cause the processor 19 to perform the features implemented by the logic. The computer code may include instructions executable with the processor 19. Logic, such as programs or circuitry, may be combined or split among multiple programs, distributed across several memories and processors, and may be implemented in a library, such as a shared library (e.g., a dynamic link library or DLL).
(43) The memory 18 stores, for example, control instructions for executing the features of the disclosed system 16. Examples of the memory 18 may include non-volatile and/or volatile memory, such as a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), or flash memory. Alternatively or in addition, the memory 18 may include an optical, magnetic (hard-drive) or any other form of data storage device. In one implementation, the processor 19 executes the control instructions to carry out any desired functionality for the disclosed system 16, including without limitation those attributed to data/reflection receiver (e.g., relating to the data receiver circuitry), image generation, and/or profiler results generation. The control parameters may provide and specify configuration and operating options for the control instructions, and other functionality of the computer device 16.
(44) The computer device 17 may further include various data sources, as described herein. Each of the databases that are included in the data sources may be accessed by the system 16 to obtain data for consideration during any one or more of the processes described herein. For example, the data receiver circuitry may access the data sources to obtain the information for generating the images and the reflection returns. In an embodiment, a data receiver circuitry may be configured to receive reflected signals.
(45) All of the discussion, regardless of the particular implementation described, is exemplary in nature, rather than limiting. For example, although selected aspects, features, or components of the implementations are depicted as being stored in memories, all or part of the system or systems may be stored on, distributed across, or read from other computer readable storage media, for example, secondary storage devices such as hard disks, flash memory drives, floppy disks, and CD-ROMs. Moreover, the various modules and screen display functionality is but one example of such functionality and any other configurations encompassing similar functionality are possible.
(46) The respective logic, software or instructions for implementing the processes, methods and/or techniques discussed above may be provided on computer readable storage media. The functions, acts or tasks illustrated in the figures or described herein may be executed in response to one or more sets of logic or instructions stored in or on computer readable media. The functions, acts or tasks are independent of the particular type of instructions set, storage media, processor or processing strategy and may be performed by software, hardware, integrated circuits, firmware, micro code and the like, operating alone or in combination. Likewise, processing strategies may include multiprocessing, multitasking, parallel processing and the like. In one embodiment, the instructions are stored on a removable media device for reading by local or remote systems. In other embodiments, the logic or instructions are stored in a remote location for transfer through a computer network or over telephone lines. In yet other embodiments, the logic or instructions are stored within a given computer, central processing unit (“CPU”), graphics processing unit (“GPU”), or system.
(47) While the present disclosure has been particularly shown and described with reference to an embodiment thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present disclosure. Although some of the drawings illustrate a number of operations in a particular order, operations that are not order-dependent may be reordered and other operations may be combined or broken out. While some reordering or other groupings are specifically mentioned, others will be apparent to those of ordinary skill in the art and so do not present an exhaustive list of alternatives.