Wide-area salient object detection architecture for low power hardware platforms
10262229 ยท 2019-04-16
Assignee
Inventors
Cpc classification
G06V10/454
PHYSICS
G06V20/46
PHYSICS
G06V10/464
PHYSICS
International classification
Abstract
Described is a system for detecting multiple salient objects in an image using low power hardware. From consecutive pair of image frames of a set of input image frames, image channels are generated. The image channels are resized into multiple image scales that specify a relative size of a salient object in the image frames. A patch-based spectral transform is applied to overlapping image patches in the resized image channel, generating salient patches. Saliency patches are combined into a saliency map for each resized image channel, resulting in multiple saliency maps. The saliency maps are combined into an aggregate saliency map. An adaptive threshold is applied to the aggregate saliency map to determine which pixels in the aggregate saliency map correspond to a detected salient object region including a salient object. An object bounding box is generated for each salient object and output to a display.
Claims
1. A system for salient object detection, the system comprising: one or more processors and a non-transitory computer-readable medium having executable instructions encoded thereon such that when executed, the one or more processors perform operations of: from each consecutive pair of image frames of a set of input image frames, generating an image channel comprising at least one difference in intensity between the pair of image frames; to each image channel, applying a patch-based spectral operation to overlapping image patches of the image channel, generating salient patches wherein each saliency patch, having boundaries, is weighted by a two-dimensional triangular window to reduce any boundary effects at the boundaries of saliency patches; combining saliency patches into a saliency map for each image channel, resulting in a plurality of saliency maps; combining the plurality of saliency maps into an aggregate saliency map comprising a plurality of pixels; and using the aggregate saliency map, identifying one or more salient objects on a display.
2. The system as set forth in claim 1, wherein the one or more processors further perform an operation of resizing the image channels into multiple image scales that specify a relative size of at least one salient object in the pair of image frames, resulting in resized image channels.
3. The system as set forth in claim 1, wherein the one or more processors further perform an operation of applying an adaptive threshold to the aggregate saliency map to determine which pixels in the aggregate saliency map correspond to at least one detected salient object region including a salient object.
4. The system as set forth in claim 1, wherein the one or more processors further perform an operation of generating an object bounding box for each salient object and outputting each object bounding box to the display.
5. The system as set forth in claim 1, wherein hardware-optimized serial bounding box extraction is used to generate each object bounding box and determine a set of coordinates for each object bounding box.
6. The system as set forth in claim 1, wherein the patch-based spectral operation is a Walsh-Hadamard transform (WHT) for spectral saliency.
7. The system as set forth in claim 1, wherein overlapping image patches are combined by performing a weighted average of all of the overlapping image patches that contribute to a part of the image frame.
8. The system as set forth in claim 1, wherein the operations are implemented in hardware having inference modules.
9. The system as set forth in claim 6, wherein the WHT is determined using only additions and subtractions.
10. The system as set forth in claim 1, wherein for each salient patch, the patch-based spectral operation comprises: a two-dimensional spectral transformation of the salient patch; a sign operation; an inverse two-dimensional spectral transformation; and a square operation.
11. A computer implemented method for salient object detection, the method comprising an act of: causing one or more processors to execute instructions encoded on a non-transitory computer-readable medium, such that upon execution, the one or more processors perform operations of: from each consecutive pair of image frames of a set of input image frames, generating an image channel comprising at least one difference in intensity between the pair of image frames; to each image channel, applying a patch-based spectral operation to overlapping image patches of the image channel, generating salient patches, wherein each saliency patch, having boundaries, is weighted by a two-dimensional triangular window to reduce any boundary effects at the boundaries of saliency patches; combining saliency patches into a saliency map for each image channel, resulting in a plurality of saliency maps; combining the plurality of saliency maps into an aggregate saliency map comprising a plurality of pixels; and using the aggregate saliency map, identifying one or more salient objects on a display.
12. The method as set forth in claim 11, wherein the one or more processors further perform an operation of resizing the image channels into multiple image scales that specify a relative size of at least one salient object in the pair of image frames, resulting in resized image channels.
13. The method as set forth in claim 11, wherein the one or more processors further perform an operation of applying an adaptive threshold to the aggregate saliency map to determine which pixels in the aggregate saliency map correspond to at least one detected salient object region including a salient object.
14. The method as set forth in claim 11, wherein the one or more processors further perform an operation of generating an object bounding box for each salient object and outputting each object bounding box to the display.
15. The method as set forth in claim 11, wherein hardware-optimized serial bounding box extraction is used to generate each object bounding box and determine a set of coordinates for each object bounding box.
16. The method as set forth in claim 11, wherein the patch-based spectral operation is a Walsh-Hadamard transform (WHT) for spectral saliency.
17. The method as set forth in claim 11, wherein overlapping image patches are combined by performing a weighted average of all of the overlapping image patches that contribute to a part of the image frame.
18. The method as set forth in claim 11, wherein the operations are implemented in hardware having inference modules.
19. The method as set forth in claim 16, wherein the WHT is determined using only additions and subtractions.
20. The method as set forth in claim 11, wherein for each salient patch, the patch-based spectral operation comprises: a two-dimensional spectral transformation of the salient patch; a sign operation; an inverse two-dimensional spectral transformation; and a square operation.
21. A computer program product for salient object detection, the computer program product comprising: a non-transitory computer-readable medium having executable instructions encoded thereon, such that upon execution of the instructions by one or more processors, the one or more processors perform operations of: from each consecutive pair of image frames of a set of input image frames, generating an image channel comprising at least one difference in intensity between the pair of image frames; to each image channel, applying a patch-based spectral operation to overlapping image patches of the image channel, generating salient patches, wherein each saliency patch, having boundaries, is weighted by a two-dimensional triangular window to reduce any boundary effects at the boundaries of saliency patches; combining saliency patches into a saliency map for each image channel, resulting in a plurality of saliency maps; combining the plurality of saliency maps into an aggregate saliency map comprising a plurality of pixels; and using the aggregate saliency map, identifying one or more salient objects on a display.
22. The computer program product as set forth in claim 21, further comprising instructions for causing the one or more processors to further perform an operation of resizing the image channels into multiple image scales that specify a relative size of at least one salient object in the pair of image frames, resulting in resized image channels.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The objects, features and advantages of the present invention will be apparent from the following detailed descriptions of the various aspects of the invention in conjunction with reference to the following drawings, where:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
DETAILED DESCRIPTION
(19) The present invention relates to a system for salient object detection and, more particularly, to a system for salient object detection that can be implemented in efficient hardware. The following description is presented to enable one of ordinary skill in the art to make and use the invention and to incorporate it in the context of particular applications. Various modifications, as well as a variety of uses in different applications will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to a wide range of aspects. Thus, the present invention is not intended to be limited to the aspects presented, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
(20) In the following detailed description, numerous specific details are set forth in order to provide a more thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without necessarily being limited to these specific details. In other instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention.
(21) The reader's attention is directed to all papers and documents which are filed concurrently with this specification and which are open to public inspection with this specification, and the contents of all such papers and documents are incorporated herein by reference. All the features disclosed in this specification, (including any accompanying claims, abstract, and drawings) may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise. Thus, unless expressly stated otherwise, each feature disclosed is one example only of a generic series of equivalent or similar features.
(22) Furthermore, any element in a claim that does not explicitly state means for performing a specified function, or step for performing a specific function, is not to be interpreted as a means or step clause as specified in 35 U.S.C. Section 112, Paragraph 6. In particular, the use of step of or act of in the claims herein is not intended to invoke the provisions of 35 U.S.C. 112, Paragraph 6.
(23) Before describing the invention in detail, first a list of incorporated literature references is provided. Next, a description of the various principal aspects of the present invention is provided. Finally, specific details of various embodiment of the present invention are provided to give an understanding of the specific aspects.
(1) LIST OF INCORPORATED LITERATURE REFERENCES
(24) The following references are cited throughout this application. For clarity and convenience, the references are listed herein as a central resource for the reader. The following references are hereby incorporated by reference as though fully set forth herein. The references are cited in the application by referring to the corresponding literature reference number. 1. D. Chiarulli, B. Jennings, Y. Fang, A. Seel, and S. Levitan, A Computational Primitive for Convolution based on Coupled Oscillator Arrays, in Proc. of ISVLSI, no. 144, pp 125-130, 2015. 2. A. Fasih, J. Chedjou, and K. Kyamakya, Ultra Fast Object Counting Based on Cellular Neural Network, in Proc. of INDS, 2008. 3. C. Guo, Q. Ma, and L. Zhang, Spatio-temporal Saliency detection using phase spectrum of quaternion fourier transform, in Proc. of CVPR, 2008. 4. H. O. Kunz, On the Equivalence Between One-Dimensional Discrete Walsh-Hadamard and Multidimensional Discrete Fourier Transforms, IEEE Transactions on Computers, 28 (3): 267-8, 1979. 5. X. Hou and L. Zhang, Saliency Detection: A Spectral Residual Approach, in Proc. of CVPR, 2007. 6. X. Hou, and C. Koch, Image Signature: Highlighting Sparse Salient Regions, IEEE TPAMI, 30(1):194-201, 2012. 7. L. Itti, C. Koch, and E. Niebur, A model of saliency-based visual attention for rapid scene analysis, IEEE TPAMI 20(11): 1254-1259, 1998. 8. S. Levitan, Y. Fang, D. Dash, T. Shibata, D. Nikonov, and G. Bourianoff, Non-Boolean associative architectures based on nano-oscillators, Proc. of CNNA, 2012. 9. D. Lowe, Distinctive image features from scale-invariant keypoints, IJCV, 60(2) pp 91-110, 2004. 10. J. Mutch, and D. Lowe, Multiclass Object Recognition with Sparse, Localized Features, in Proc. of CVPR, 2006. 11. M., Riesenhuber, and T. Poggio, Hierarchical Models of Object Recognition in Cortex, Nature Neuroscience 2: 1019-1025, 1999. 12. B. Schauerte and R. Stiefelhagen, Quaternion-Based Spectral Saliency Detection for Eye Fixation Prediction, in Proc. of ECCV, 2012. 13. L., Itti, Neovision2 annotated video datasets, Stanford Hoover Tower images from the DARPA Neovision2 data-set available at http://ilab.usc.edu/neo2/dataset/. 14. R. Walczyk, A. Armitage, and T. Binnie, Comparative Study of Connected Component Labeling Algorithms for Embedding Video Processing Systems, in Proc. of IPCV, 2010. 15. Y. Yu, J. Lin, and J. Yang, Bottom-Up Visual Saliency Using Binary Spectrum of Walsh-Hadamard Transform, in Proc. of ICONIP, 2014.
(2) PRINCIPAL ASPECTS
(25) Various embodiments of the invention include three principal aspects. The first is a system for salient object detection. The system is typically in the form of a computer system operating software or in the form of a hard-coded instruction set. This system may be incorporated into a wide variety of devices that provide different functionalities. The second principal aspect is a method, typically in the form of software, operated using a data processing system (computer). The third principal aspect is a computer program product. The computer program product generally represents computer-readable instructions stored on a non-transitory computer-readable medium such as an optical storage device, e.g., a compact disc (CD) or digital versatile disc (DVD), or a magnetic storage device such as a floppy disk or magnetic tape. Other, non-limiting examples of computer-readable media include hard disks, read-only memory (ROM), and flash-type memories. These aspects will be described in more detail below.
(26) A block diagram depicting an example of a system (i.e., computer system 100) of the present invention is provided in
(27) The computer system 100 may include an address/data bus 102 that is configured to communicate information. Additionally, one or more data processing units, such as a processor 104 (or processors), are coupled with the address/data bus 102. The processor 104 is configured to process information and instructions. In an aspect, the processor 104 is a microprocessor. Alternatively, the processor 104 may be a different type of processor such as a parallel processor, application-specific integrated circuit (ASIC), programmable logic array (PLA), complex programmable logic device (CPLD), or a field programmable gate array (FPGA).
(28) The computer system 100 is configured to utilize one or more data storage units. The computer system 100 may include a volatile memory unit 106 (e.g., random access memory (RAM), static RAM, dynamic RAM, etc.) coupled with the address/data bus 102, wherein a volatile memory unit 106 is configured to store information and instructions for the processor 104. The computer system 100 further may include a non-volatile memory unit 108 (e.g., read-only memory (ROM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM EEPROM), flash memory, etc.) coupled with the address/data bus 102, wherein the non-volatile memory unit 108 is configured to store static information and instructions for the processor 104. Alternatively, the computer system 100 may execute instructions retrieved from an online data storage unit such as in Cloud computing. In an aspect, the computer system 100 also may include one or more interfaces, such as an interface 110, coupled with the address/data bus 102. The one or more interfaces are configured to enable the computer system 100 to interface with other electronic devices and computer systems. The communication interfaces implemented by the one or more interfaces may include wireline (e.g., serial cables, modems, network adaptors, etc.) and/or wireless (e.g., wireless modems, wireless network adaptors, etc.) communication technology.
(29) In one aspect, the computer system 100 may include an input device 112 coupled with the address/data bus 102, wherein the input device 112 is configured to communicate information and command selections to the processor 100. In accordance with one aspect, the input device 112 is an alphanumeric input device, such as a keyboard, that may include alphanumeric and/or function keys. Alternatively, the input device 112 may be an input device other than an alphanumeric input device. In an aspect, the computer system 100 may include a cursor control device 114 coupled with the address/data bus 102, wherein the cursor control device 114 is configured to communicate user input information and/or command selections to the processor 100. In an aspect, the cursor control device 114 is implemented using a device such as a mouse, a track-ball, a track-pad, an optical tracking device, or a touch screen. The foregoing notwithstanding, in an aspect, the cursor control device 114 is directed and/or activated via input from the input device 112, such as in response to the use of special keys and key sequence commands associated with the input device 112. In an alternative aspect, the cursor control device 114 is configured to be directed or guided by voice commands.
(30) In an aspect, the computer system 100 further may include one or more optional computer usable data storage devices, such as a storage device 116, coupled with the address/data bus 102. The storage device 116 is configured to store information and/or computer executable instructions. In one aspect, the storage device 116 is a storage device such as a magnetic or optical disk drive (e.g., hard disk drive (HDD), floppy diskette, compact disk read only memory (CD-ROM), digital versatile disk (DVD)). Pursuant to one aspect, a display device 118 is coupled with the address/data bus 102, wherein the display device 118 is configured to display video and/or graphics. In an aspect, the display device 118 may include a cathode ray tube (CRT), liquid crystal display (LCD), field emission display (FED), plasma display, or any other display device suitable for displaying video and/or graphic images and alphanumeric characters recognizable to a user.
(31) The computer system 100 presented herein is an example computing environment in accordance with an aspect. However, the non-limiting example of the computer system 100 is not strictly limited to being a computer system. For example, an aspect provides that the computer system 100 represents a type of data processing analysis that may be used in accordance with various aspects described herein. Moreover, other computing systems may also be implemented. Indeed, the spirit and scope of the present technology is not limited to any single data processing environment. Thus, in an aspect, one or more operations of various aspects of the present technology are controlled or implemented using computer-executable instructions, such as program modules, being executed by a computer. In one implementation, such program modules include routines, programs, objects, components and/or data structures that are configured to perform particular tasks or implement particular abstract data types. In addition, an aspect provides that one or more aspects of the present technology are implemented by utilizing one or more distributed computing environments, such as where tasks are performed by remote processing devices that are linked through a communications network, or such as where various program modules are located in both local and remote computer-storage media including memory-storage devices.
(32) An illustrative diagram of a computer program product (i.e., storage device) embodying an aspect of the present invention is depicted in
(3) Specific Details of Various Embodiments of the Invention
(33) Described is an object detection system that can be used to detect multiple salient objects of interest, such as cars, trucks, buses, persons and cyclists, in a sequence of wide-area video image frames taken from a stationary camera and output the bounding boxes of detect objects to a display (e.g., computer monitor, touchscreen). The system according to embodiments of the present disclosure finds salient objects by applying an efficient spectral transform to find salient object features that differ from smooth and periodically textured regions. The algorithms and modules have been designed to be implementable in low-power hardware, in particular, recently developed emerging device hardware, such as spiking circuits and coupled oscillators, that are capable of rapidly performing parallel operations that approximate degree-of-match, inner products, convolution, and filtering using very little power.
(34) Some embodiments of the system include one or more of several innovations that improve upon conventional software object detection pipeline that enable efficient (i.e., low-power and low circuit complexity) implementation in hardware. The spectral transformation according to various embodiments of the present disclosure is applied on an overlapping grid of small (6464 pixels) local patches in the image, instead of on the whole image at one time. This reduces the number of inputs needed in the spectral saliency circuit by a factor of 30 (i.e., 30). To mitigate the reduction in detection performance induced by operating on local patches, object detection is performed at two different scales (e.g., 4 and 16 downsampling, respectively), and the saliency responses from overlapping patches are combined using two-dimensional (2-D) triangular windows that reduce boundary effects at the boundary (or edge) of patches.
(35) The Fourier and discrete cosine transforms used in conventional spectral-based saliency methods are replaced with the Walsh-Hadamard Transform, which has the same O(N log N) complexity as the other spectral transformations, but requires only real-valued additions and subtractions instead of complex-valued multiplications, does not require storage of any transform coefficients, and yet achieves comparable object detection performance to saliency methods based on these other spectral transformations.
(36) A hardware-optimized serial bounding box extraction algorithm was developed that is far simpler than conventional approaches based on connected component analysis, and more computationally and power efficient than approaches based on filtering and spatial propagation on information, such as that described in Literature Reference No. 2. To ensure that the performance of the hardware implementation of the object detection pipeline according to various embodiments of the present disclosure will match software simulations, careful modeling of the effect of quantization and limited precision computation and storage at all stages of the pipeline is performed, showing that with very few bits for computation and storage (5-10 bits per module), one can maintain effective object detection performance.
(37) The object detection system described herein comprises a camera, an image processing pipeline, and a display. The image processing pipeline has multiple possible embodiments. It can be implemented in software on a digital computer, or mapped to conventional electronic hardware either by using a field-programmable gate array (FPGA) or by making a custom application-specific integrated circuit (ASIC). However, to minimize the power consumed by the system, several modules in the image processing pipeline are designed such that the computations can be performed using specialized low-power hardware circuits referred to as inference modules. Inference modules are based on non-traditional phenomena, such as coupled oscillators, and are capable of performing degree-of-match, inner product, convolution, and/or filtering computations. Some non-limiting examples of inference modules are described in Literature Reference No. 1 as well as U.S. application Ser. Nos. 15/043,478, 15/079,899, and 15/203,596, which are hereby incorporated by reference as though fully set forth herein).
(38) (3.1) Overall System Architecture
(39)
(40) In
(41) (3.1) Patch-Based Saliency (Element 312)
(42) Spectral methods for finding salient regions in images operate by first applying a 2-D spectral transform (element 328), such as the Fourier or discrete cosine transform. The spectral transform concentrates the energy of the signal in the low frequency components. The amplitude of the spectrum does not contain much information for saliency, so in the spectral domain, a suitable operation is to remove the amplitude in the spectral domain (e.g., taking the phase of the Fourier Transform or the sign of the discrete cosine transform (DCT)) (element 330). Spectral methods then apply a corresponding 2-D inverse spectral transform (element 332), and, finally, square the result (element 334) to obtain a raw saliency map. The raw saliency map amplifies strong salient edges (boundaries) and corners while attenuating smooth regions and periodic textures.
(43) When saliency maps from multiple color/motion channels are combined (elements 314 and 316) and then smoothed via a simple Gaussian filter (element 318), the resulting saliency map 336 can reliably highlight salient objects without training. These spectral approaches have proven to be highly effective for detecting salient objects in images, as measured by the accuracy of these methods to predict pre-attentive gaze (see Literature Reference Nos. 3, 6, and 12). Spectral saliency methods are also efficient to implement in software, owing to the separable nature of 2-D spectral transforms, and their O(N log N) computational complexity. However, it is infeasible to implement a spectral transform in low-power hardware that is applied to a whole image because of the extremely large number of inputs required for the circuit. For example, for a 10881920 pixel high definition (HD) image frame from the Stanford Tower dataset (see Literature Reference No. 13), applying a whole image spectral transform even to the image downsampled by a factor of 4 would require 130,560 input pixels in the circuit.
(44) As applied to
(45) The effectiveness of the spectral saliency method is largely because it is able to capture long-range spatial correlations in the image, thus replacing the whole image spectral transform with patch-level spectral transforms does cause a reduction in performance, as shown in the tables in
(46) The tables depicted in
(47) Using local patches for saliency introduces distortions near the boundaries of each patch. As depicted in
(48) (3.2) Walsh-Hadamard Transform for Spectral Saliency
(49) In the object detection pipeline according to various embodiments of the present disclosure, the discrete cosine transform used in Literature Reference No. 6 was replaced with the Walsh-Hadamard transform (WHT), as suggested in Literature Reference No. 15. As illustrated in
(50)
so that the computation can be implemented with a butterfly pattern very similar to the FFT (Fast Fourier Transform) butterfly, as depicted in
(51) (3.3) Sequential Bounding Box Algorithm
(52) Bounding boxes are the glue in many image processing pipelines between the object detection system and subsequent object recognition. However, the computation of bounding boxes is fundamentally non-local and serial in nature, and, thus, is neither straightforward nor efficient to extract bounding boxes using inference module-based filtering. For example, the authors of Literature Reference No. 2 developed a cellular neural network (CNN)-based approach to obtain bounding boxes based on applying shadowing filter operations that propagate information around spatially in the image. These shadowing operations require time proportional to the height or width of the image to complete, and extract a single region at a time. Thus, the hardware-compatible and power-efficient approach for bounding box generation according to various embodiments of the present disclosure is a sequential object counting, such as that described by Literature Reference No. 14.
(53) The sequential algorithm operates by scanning the pixels of the binary detection map in raster scan order while constructing a label map that stores the label of each connected region. For each pixel, its upper-left, upper, upper-right, and right neighbors are examined, as illustrated in
(54) After all of the pixels have been scanned, they go through the region merging table in descending order, merging each region with the smallest label it is adjacent to. This process uses only a single pass through the detection map and requires as auxiliary store two rows of numbers to store the label map, and a N5 array of numbers to store the bounding box parameters, where N should be a maximum region count that can be accommodated. This approach is efficient, both in power and hardware complexity because it requires only a single pass through the detection map. In addition, with constraints on the maximum object size, this approach can be partially parallelized by breaking the image into smaller blocks and then combining the intermediate block results together.
(55) (3.4) Modeling of Effects of Quantization
(56) Quantization, or limited precision computation and storage of data, can affect the object detection pipeline depicted in
(57) Quantization was introduced into the software simulation of the object detection system according to various embodiments of the present disclosure at each of the above stages by rounding the output of a given module to a certain number of bits. Five bits of quantization were used for each stage, with the exception of the spectral saliency module, where ten bits of quantization were used, and the post-transform smoothing filter, where eight bits of quantization were used. The detection performance of the object detection pipeline described herein was compared with and without quantization. As the results in
(58) The invention described herein is applicable to unmanned autonomous vehicles and platforms that have severely limited SWAP (size, weight, and power). By performing rapid detection of mission-relevant targets and obstacles on hardware near the sensor, the system improves mission responsiveness and reduces the amount of raw sensor data that must be transmitted over constrained communication bandwidths. The system according to various embodiments of the present disclosure will also be of use in both active vehicle and autonomous driving applications. By performing object detection in a low-power, low-cost hardware near the camera, a vehicle (e.g., automobile) can more rapidly and robustly detect obstacles in the road, and thus provide more timely warnings to the driver, or more prompt automated response to obstacles in autonomous vehicles.
(59) Finally, while this invention has been described in terms of several embodiments, one of ordinary skill in the art will readily recognize that the invention may have other applications in other environments. It should be noted that many embodiments and implementations are possible. Further, the following claims are in no way intended to limit the scope of the present invention to the specific embodiments described above. In addition, any recitation of means for is intended to evoke a means-plus-function reading of an element and a claim, whereas, any elements that do not specifically use the recitation means for, are not intended to be read as means-plus-function elements, even if the claim otherwise includes the word means. Further, while particular method steps have been recited in a particular order, the method steps may occur in any desired order and fall within the scope of the present invention.