System and method for perspective preserving stitching and summarizing views
09569874 ยท 2017-02-14
Assignee
Inventors
- Chung-Ching Lin (White Plains, NY, US)
- Sharathchandra U. Pankanti (Darien, CT)
- Karthikeyan Natesan Ramamurthy (YORKTOWN HEIGHTS, NY, US)
- Aleksandr Y. Aravkin (Bronx, NY, US)
- John R. Smith (New York, NY)
Cpc classification
G06V10/462
PHYSICS
G06T3/4038
PHYSICS
International classification
Abstract
A method and a system of stitching a plurality of views of a scene, the method including extracting points of interest in each view to include a point set from each of the plurality of image views of the scene, matching the points of interest and reducing an outlier, grouping the matched points of interest in a plurality of groups, determining a similarity transformation with a smallest rotation angle for each grouping of the match points, generating virtual matching points on a non-overlapping area of the plurality of image views, generating virtual matching points on an overlapping area for each of the plurality of image views, and calculating piecewise projective transformations for the plurality of image views.
Claims
1. A method of stitching a plurality of image views of a scene, the method comprising: extracting points of interest in each view to comprise a point set from each of the plurality of image views of the scene; matching the points of interest and reducing outliers; grouping the matched points of interest in a plurality of groups; determining a similarity transformation with smallest rotation angle for each grouping of the matched points; generating virtual matching points on non-overlapping area of the plurality of image views; generating virtual matching points on overlapping area for each of the plurality of image views; and calculating piecewise projective transformations for the plurality of image views.
2. The method according to claim 1, wherein the points of interest representations comprise translation-invariant representations of edge orientations.
3. The method according to claim 2, wherein the points of interest representations comprise scale invariant feature transform (SIFT) points.
4. The method according to claim 1 is stored in a non-transitory computer-readable medium and executed by a processor.
5. The method according to claim 1, wherein the plurality of views of a scene are remotely captured from an aerial view.
6. The method according to claim 1, wherein each group of the plurality of matched points is used to calculate an individual similarity transformation, and then the rotation angles corresponding to the transformations are examined and a one with the smallest rotation angle is selected.
7. The method according to claim 1, further comprising, when extracting the points of interest, for each of the plurality of views, finding key points and texture descriptors.
8. A system of stitching a plurality of views of a scene, the system comprising: a non-transitory computer-readable medium storing data including the plurality of views of the scene; and a processor processing the data on the non-transitory computer-readable medium, wherein the processor extracts points of interest in each view stored on the computer-readable medium to comprise a point set from each of the plurality of image views of the scene, wherein the processor matches the points of interest and reduces an outlier, wherein the processor groups the matched points of interest in a plurality of groups, wherein the processor determines a similarity transformation for each group of the matched points, and wherein the processor calculates piecewise projective transformations for the plurality of image views.
9. The system according to claim 8, wherein the processor calculates piecewise projective transformations for the plurality of image views on overlapping areas.
10. The system according to claim 8, wherein the processor determines the similarity transformation with a smallest rotation angle for each group of the matched points.
11. The system according to claim 8, wherein the processor calculates linearized transformations for the plurality of image views.
12. The system according to claim 8, wherein the processor uses weighted linearized transformations to extrapolate non-overlapping areas.
13. The system according to claim 8, wherein the processor generates virtual matching points on a non-overlapping area of the plurality of image views, and wherein the processor generates virtual matching points on an overlapping area for each of the plurality of image views.
14. The system according to claim 8, wherein the points of interest representations comprise translational invariant representations of edge orientations.
15. The system according to claim 14, wherein the points of interest representations comprise scale invariant feature transform (SIFT) points.
16. The system according to claim 8, wherein the plurality of views of a scene are remotely captured from an aerial view and stored on the non-transitory computer-readable medium for execution by the processor.
17. The system according to claim 8, wherein each group of the plurality of matched points is used to calculate an individual similarity transformation, then the rotation angles corresponding to the transformations are examined and a one with the smallest rotation angle is selected by the processor.
18. A method of developing summary visualization of the visual content in a plurality of videos of a scene, the method comprising: processing the videos to extract objects and activities of interest; establishing a frame of reference with respect to a visual content of a video so that the objects in a scene provide a least distracting view of the scene according to a predetermined criteria; for each candidate frame in the video, relating a portion of its content with a portion of another frame of a gallery frame by finding a common portion of visual content in the corresponding frames; relating the portion of the candidate frame to a common frame of reference by finding a chain of successive relationships that relate a candidate frame content to the reference video frame; visualizing an overall content by rendering contents of the video frames in common frame of reference as a mosaic; and overlaying the objects and activities of interest on the mosaic.
19. The method as claimed in claim 18, wherein a user interface provides interaction with overlays to see details of the objects and the activities including the original video.
20. The method as claimed in 18, wherein the activities are tracks, wherein the common reference is related to a geographic map, and wherein a user interface queries and searches the objects and activities.
21. A system comprising a non-transitory computer-readable medium and a processor executing the method according to claim 18.
22. A method of stitching a plurality of image views of a scene, the method comprising: extracting a set of matched points of interest from each pair of the plurality of image views of the scene; grouping the matched points of interest in a plurality of groups; determining a similarity transformation with a smallest rotation angle for each group of the matched points; generating virtual matching points on a non-overlapping area of the plurality of image views; generating virtual matching points on an overlapping area for each of the plurality of image views; and calculating piecewise projective transformations for the plurality of image views.
Description
BRIEF DESCRIPTION OF DRAWINGS
(1) The exemplary aspects of the invention will be better understood from the following detailed description of the exemplary embodiments of the invention with reference to the drawings.
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
DETAILED DESCRIPTION OF A PREFERRED EMBODIMENTS
(14) The invention will now be described with reference to the drawing figures, in which like reference numerals refer to like parts throughout. It is emphasized that, according to common practice, the various features of the drawing are not necessary to scale. On the contrary, the dimensions of the various features can be arbitrarily expanded or reduced for clarity. Exemplary embodiments are provided below for illustration purposes and do not limit the claims.
(15) Several assumptions can be imposed on the stitching field during image alignment and tolerance to parallax can also be imposed. The disclosed invention includes a new method that incorporating several assumptions to make the panorama look more accurate in order to depict the actual image. To mitigate perspective distortion that occurs in As-Projective-As-Possible (APAP) related art, the disclosed invention linearizes the homography in the regions that do not overlap with any other image, and then automatically estimate a global similarity transform using a subset of corresponding points in overlapping regions. Finally, the disclosed invention extrapolates smoothly between the homography and the global similarity in the overlapping regions, and using the linearized homography (affine) and the global similarity transform in the non-overlapping regions. The smooth combination of two stitching fields (homography/linearized homography and global similarity) help us achieve: (a) a fully continuous and smooth stitching field with no bending artifacts, (b) improved perspective in the non-overlapping regions using a global similarity transform, (c) full benefits of the state-of-the-art alignment accuracy offered by APAP.
(16) A detailed presentation of a method of the disclosed invention is provided in the following. First, the moving DLT method to estimate the local homography is described, and an approach to linearize it in the non-overlapping regions is provided. Then, the computation of a global similarity transformation between the reference and the target images is explained. Since many similarity transformations are possible, the disclosed invention includes to automatically choose the one with the lowest rotation angle as the best candidate. Finally, the details of the warp, which is constructed by combining the homography or its linearized version across the whole image with the global similarity, are presented.
(17) An example aspect of the disclosed invention is to provide a method for stitching a plurality of views of a scene, the method including extracting points of interest in each view to comprise of a point set from each of the plurality of image views of the scene, matching the points of interest and reducing outliers, grouping the matched points of interest in a plurality of groups, determining a similarity transformation with smallest rotation angle for each grouping of the matched points, generating virtual matching points on non-overlapping area of the plurality of image views, generating virtual matching points on overlapping area for each of the plurality of image views, and calculating piecewise projective transformations for the plurality of image views.
(18) The points of interest representations can be translational invariant representations of edge orientations. The points of interest representations can be scale invariant feature transform (SIFT) points. The method can be stored in a non-transitory computer readable medium and executed by a processor. The plurality of views of a scene are remotely captured from an aerial view. Each group of the matched plurality points is used to calculate an individual similarity transformation, and then the rotation angles corresponding to the transformations are examined and the one with the smallest rotation angle is selected. When extracting the points of interest, for each of the plurality of views, finding key points and texture descriptors.
(19) The processor calculates piecewise projective transformations for the plurality of image views on overlapping areas. The processor determines the similarity transformation with a smallest rotation angle for each grouping of the match points. The processor calculates linearized transformations for the plurality of image views. The processor uses weighted linearized transformations to extrapolate non-overlapping areas. The processor generates virtual matching points on non-overlapping area of the plurality of image views, and the processor generates virtual matching points on overlapping area for each of the plurality of image views. The points of interest representations are translation-invariant representations of edge orientations. The points of interest representations are scale invariant feature transform (SIFT) points. The plurality of views of a scene are remotely captured from an aerial view and stored on the non-transitory computer readable medium for execution by the processor. Each group of the matched plurality points is used to calculate an individual similarity transformation, then the rotation angles corresponding to the transformations are examined and the one with the smallest rotation angle is selected by the processor.
(20) A user interface provides interaction with overlays to see the details of objects and activities including the original video. The activities are tracks, the common reference is related to a geographic map, and a user interface can query and search the objects and activities. A system including a non-transitory computer readable medium and a processor can execute the method of the disclosed invention.
(21)
(22) Local Homography Model
(23) Let the target and the reference images be denoted by I and image I. Given a pair of matching points p=[x y].sup.T and p=[x y].sup.T, between I and I, the homographic transformation p=h(p) can be represented as
(24)
(25) In homogeneous coordinates p=[x y 1].sup.T and p=[x y 1].sup.T it can be represented up to a scaling using the homography matrix H.sup.33 as
{circumflex over (p)}H{circumflex over (p)}.(3)
The columns of H are given by h.sub.1=[h.sub.1 h.sub.4 h.sub.7].sup.T, h.sub.2=[h.sub.2 h.sub.5 h.sub.8].sup.T, and h.sub.3=[h.sub.3 h.sub.6 h.sub.9].sup.T. Taking a cross product on both sides of formula (3), a computer processor obtains:
0.sub.31={circumflex over (p)}H{circumflex over (p)}(4)
which can be rewritten as can be re-written as follows:
(26)
(27) The 91 vector is denoted in formula (5) as h. Since only two rows of the 39 matrix in formula (5) are linearly independent, for a set of N matching points {{circumflex over (p)}.sub.i}.sub.i=1.sup.N, and {{circumflex over (p)}.sub.i}.sub.t=1.sup.N, a computer processor can estimate h using
(28)
where a.sub.i,1 and a.sub.i,2 correspond to the two rows of the matrix in formula (5). The disclosed invention also incorporates the constraint h.sup.2=1 since the homographic transformation has only 8 degrees of freedom.
(29) Previously it was introduced moving DLT framework to estimate local homography by including locality-enforcing weights in the objective of formula (6). The local homography at the location p.sub.j is estimated as
(30)
which can be written in matrix form as
(31)
where W.sub.j=diag ([.sub.1, .sub.j.sub.1, .sub.j . . . .sub.N, .sub.j.sub.N,j]). The weights are generated using the offsetted Gaussian which assumes high value for pixels in the neighborhood of p.sub.j and equal values for those that are very far,
.sub.i,j=max(exp(p.sub.ip.sub.j.sup.2/.sup.2),).(9)
(32) The parameter [0 1] is the offset used to prevent numerical issues. Note that the local homography can be computed only in the regions of the target image that overlap with the reference image. For each pixel in the non-overlapping regions, the transformation is computed as a weighted linear combination of the local homographies in the overlapping regions. Here it becomes important to choose a proper offset to avoid extrapolation artifacts. This is demonstrated in
(33) In the method of the disclosed invention, the moving DLT is used without offset in overlapping area to estimate the local homography, and extrapolate to the non overlapping area using homography linearization, as described in the following section.
(34) This reduces the perspective distortion, and weighting scheme for extrapolation of the disclosed invention is less sensitive to parameter selections compared to other state-of-the-art approaches.
(35) Homography Linearization
(36) The extrapolation of homographic transformation in the non-overlapping areas produces extreme and un-natural scaling effects, as seen in
(37) With images, the linearization of homography at any point q in the neighborhood of the anchor point p can be understood by considering the Taylor series of the homographic transformation h(q), where h: .sup.2.fwdarw.
.sup.2
h(q)=h(q)+J.sub.h(p)(qp)+o(qp),(10)
where J.sub.h(p) is the Jacobian of the homography h at the point p. The first two terms in formula (10) provide the best linearization for h(q), and it will be denoted as h.sub.p.sup.L(q). Since, if h is differentiable at p, J.sub.h(p) is invertible, the linearization of homography is an affine transformation. However, it is not straightforward to compute linearization at an arbitrary point q in the non-overlapping region as in the case of 1-D data, since the boundary between the overlapping and the non-overlapping regions could contain multiple points and one would not know where the Jacobian has to be computed. Therefore, one would consider anchor points in the boundary for linearization and compute a weighted average of the transformations. For a set of R anchor points {p.sub.i}.sub.i=1.sup.R at the boundary with possibly different local homographies, the weighted combination of linearizations is given as:
(38)
It is assumed .sub.i to be a function of qp.sub.i, and in particular one considers the Gaussian weighting where .sub.i=exp(qpi.sup.2), or the Student's-t weighting where
(39)
Student's-t weighting is more robust since that tail of the distribution decays slowly compared to Gaussian and hence when q is far from anchor points, all the anchor points are given similar weighting.
(40) However, if Gaussian weighting is chosen, the tail should be made flat at the offset parameter to avoid The stitching result using our extrapolation method is shown in
(41) Global Similarity Transformation
(42) In the previous section, a method to linearize the homography was introduced to reduce the perspective distortion in the overlapping areas. In the following sections, the disclosed invention will provide approaches to further reduce the distortions and hence make the panorama look natural. The idea is to use a similarity transformation in the non-overlapping areas in the target image, since it will not introduce any perspective distortions.
(43) The global similarity transformation, must approximate the camera motion between the target and the reference images, which can then be used to compensate for it. However, finding a global similarity transformation using all point matches may result in non-optimal solution particularly when the overlapping areas contain distinct image planes. An issue is apparent in
(44) The disclosed invention includes an approach to compute an optimal similarity transformation between the reference and the target images by segmenting the corresponding points in the following manner. After obtaining the feature point matches, first the outliers are removed using RANSAC (Random Sample Consensus) with threshold .sub.g. Then, one would RANSAC with a threshold .sub.1 is used to find a homography of the plane with largest inliers. .sub.1 is smaller than .sub.g. Third, the inliers are removed. The second and third procedures are repeated until the number of inliers is smaller than . Each group of feature point matches is used to calculate an individual similarity transformation. Then, the rotation angles corresponding to the transformations are examined and the one with the smallest rotation angle is chosen.
(45)
(46) Integration of Global Similarity Transformation
(47) After the global similarity transformation is calculated, it is used to adjust warps of target image to have a better perspective view of overall panorama. If one only adjusts the transformations on the non-overlapping area, the stitching result may have unnatural visual effect. In order to adjust the local transformations of the target image smoothly, a processor in a computer would gradually update the local transformations of entire target image to the global similarity transformation. The processor would update the local transformation using the following equation:
Hs.sub.i.sup.(2)=.sub.hH.sub.i.sup.(2)+.sub.sS,(12)
(48) where H.sub.i.sup.(2) is i-th local transformation, Hs.sub.i.sup.(2) is updated local transformation, S is the global transformation. .sub.h and .sub.s are weighting coefficients.
.sub.h+.sub.s=1,(13)
where .sub.h and .sub.s are between 0 and 1, and decided as follows:
.sub.h(i)=(x.sub.maxx(i))/(x.sub.maxx.sub.min),(14)
.sub.s(i)=(x(i)x.sub.min)/(x.sub.maxx.sub.min),(15)
where x.sub.min and x.sub.max are the point with smallest value on x axis of warped target image.
(49) After updating the warps of target image with global similarity transformation, this causes the aligned overlapping areas between reference image and target image no longer align.
H.sub.i.sup.(2).fwdarw.Hs.sub.i.sup.(2)(16)
(50) Therefore, the processor would need to compensate the changes by appropriately propagating the changes to the reference image. The local transformation of reference image can be obtained as:
Hs.sub.i.sup.(1)=Hs.sub.i.sup.(2)inv(H.sub.i.sup.(2))(17)
(51)
(52) Alternatively, the following formula can be used if we gradually update the local transformations of entire target image to the global similarity transformation using the following equation:
.sub.i.sup.(t)=.sub.hH.sub.i.sup.(t)+.sub.sS.(18)
(53) Here, H.sub.i.sup.(t) is i.sup.th local homography, .sub.i.sup.(t) is updated local transformation, S is the global similarity transformation. S and .sub.s are weighting coefficients. The superscript (t) refers to the target image and the superscript (r) denotes the reference image. We also constrain .sub.h+.sub.s=1, where .sub.h and .sub.s are between 0 and 1. They are computed as,
.sub.h(i)=({right arrow over (.sub.mp(i))},{right arrow over (.sub.m.sub.M)})/|{right arrow over (.sub.m.sub.M)}|,(19)
.sub.s(i)=1.sub.h(i),(20)
where is the projected point of warped target image on the {right arrow over (o.sub.ro.sub.t)} direction. o.sub.r and o.sub.t are the center points of the reference image and the warped target image. .sub.m and .sub.M are the points with smallest and largest value of ({right arrow over (o.sub.rp(i))},{right arrow over (o.sub.ro.sub.t)}) respectively. Here, p(i) is the location of the i.sup.th location in the final panorama.
(54) Updating the warps of target image with global similarity transformation causes misalignment of overlapping areas between reference image and target image that were previously aligned. Therefore, we need to compensate the changes by appropriately propagating the changes from the target image to the reference image. The local transformation of the reference image can be now obtained as
.sub.i.sup.(r)=.sub.i.sup.(t)(H.sub.i.sup.(t)).sup.1(21)
EXPERIMENTS
(55) Comparative experiments of algorithm of the disclosed invention on a variety of existing datasets made available were conducted. The compared methods include MICROSOFT Image Composite Editor (ICE), APAP, SPHP with global homography, SPHP with local homographies computed with APAP (SPHP+APAP). In the experiments, the same set of parameters are used as suggested in the respective related art. (for the moving DLT weight) is 12.5, (for student's t-penalty) is 5, .sub.g (for the threshold of global RANSAC error function) is 0.1, .sub.l (for the threshold of the local RANSAC error function) is 0.001, and (for the threshold of inlier number) is 50. The method of the disclosed invention typically takes, for example, from 20 to 30 seconds with a 2.7 GHz (gigahertz) CPU (Central Processing Unit) and 16 GB RAM (Random Access Memory) to stitch two images with 800600 resolution. For the sake of being concise, comparisons are shown only on Temple (
(56) The results for the Temple dataset are provided in
(57)
(58) As indicated above, a goal is to warp both images to fit each other. A first illustrative approach (see
(59) First Illustrative Approach
(60) Referring to
(61) For similarity transformations, a computer processor finds similarity transformation with smallest rotation angle in step S830. Then the processor generates virtual matched points on non-overlapping area in step S840. Thereafter, the processor generates virtual matched points of image 1 on overlapping area in step S850. Then the processor calculates piecewise projective transformation for image 2 in step S860. Thereafter, the processor calculates the matched feature points of image 2 in step S870. Finally, the computer processor calculates piecewise projective transformation for image 1 in step S880.
(62) Second Illustrative Approach
(63) Referring to
(64) Thereafter, calculate piecewise projective transformations on overlapping area in step S930. Then, calculate linearized transformations in step S940. Finally, use weighted linearized transformations to extrapolate non-overlapping area in step S950.
(65) In this work, a novel stitching method and apparatus that uses a smooth stitching field derived from local homography or its linearized version and a global similarity transformation. Results show that this approach provides a more natural panorama with no visible parallax in the overlapping regions and mitigates the perspective distortion issue in the non-overlapping regions. Furthermore, it is more robust to parameter selection and computes the appropriate global similarity transform automatically. Experimental comparisons to existing methods show that the method of the disclosed invention yields the best stitch compared to the state-of-the-art methods. This makes the disclosed invention's approach a one-stop solution that addresses all major problems in image stitching.
(66) Summarizing Aerial Views
(67) In another aspect of the invention, a method of summarizing aerial views are provided. A method detects objects and their activities from one or more moving cameras and overlays them on summary panorama of the view so that the entire panorama has least interference from the objects in the scene.
(68) An illustrative method is as follows with reference to
(69) Thereafter, for each frame I in step S98, the following steps are performed with reference to
(70) First, find corner points for the frame in step S98a. Then check if corner points of I are related the corner points of previous frame I1 by homography in step S98b.
(71) If yes is the answer to the determination in step S98b, then the following steps are performed. Prepare a transformation matrix T from I and I1 in step S98c. Then compute transform T.sub.overall from frame I to reference frame in step S98e. Then transform frame I to common frame of reference I.sub.overall by applying Toverall to I in step 98f. Finally, update BV with I.sub.overall an bit-wise XOR operation in step S98g.
(72) If not is the answer to the determination in step S98b, then the following steps are performed. Mark end-frame of the accumulator BA buffer in step S98d. Set the current frame to be reference frame in step 98h. Set A=A+1 in step 98i. Start a new empty accumulate buffer BA, mark first frame of BA in step 98j.
(73) Then, referring to
(74) Referring to
(75) Select the reference frame of the lowest indexed accumulator buffer Ba to be common reference frame, say, Xa in step S100b. Then prepare a transformation matrix T from Xb and Ya in step S100c. Then compute transform T.sub.overall from frame Xb to the reference frame Xa in step S100d. Then, transform frame I to common frame of reference Xa by applying T.sub.overall to Xb in step S100e.
(76) Then, update Ba with I.sub.overall an bit-wise XOR operation in step S100f. Similarly update the remaining frame Xb+1 through Yb to Ba in step S100g. Then set A=A1 in step S100h. Then finally, adjust the buffer indices as needed in step S100i.
(77) Then, finally, referring back to
(78) Exemplary Hardware Implementation
(79)
(80) The CPUs 611 are interconnected via a system bus 612 to a random access memory (RAM) 614, read-only memory (ROM) 616, input/output (I/O) adapter 618 (for connecting peripheral devices such as disk units 621 and tape drives 640 to the bus 612), user interface adapter 622 (for connecting a keyboard 624, mouse 626, speaker 628, microphone 632, and/or other user interface device to the bus 612), a communication adapter 634 for connecting an information handling system to a data processing network, the Internet, an Intranet, a personal area network (PAN), etc., and a display adapter 636 for connecting the bus 612 to a display device 638 and/or printer 639 (e.g., a digital printer or the like).
(81) In addition to the hardware/software environment described above, a different aspect of the invention includes a computer-implemented method for performing the above method. As an example, this method may be implemented in the particular environment discussed above.
(82) Such a method may be implemented, for example, by operating a computer, as embodied by a digital data processing apparatus, to execute a sequence of machine-readable instructions. These instructions may reside in various types of signal-bearing media.
(83) Thus, this aspect of the present invention is directed to a programmed product, comprising signal-bearing storage media tangibly embodying a program of machine-readable instructions executable by a digital data processor incorporating the CPU 611 and hardware above, to perform the method of the invention.
(84) This signal-bearing storage media may include, for example, a RAM contained within the CPU 611, as represented by the fast-access storage for example.
(85) Alternatively, the instructions may be contained in another signal-bearing storage media 700, such as a magnetic data storage diskette 701 or optical storage diskette 702 (
(86) Whether contained in the diskette 701, 702, the computer/CPU 611, or elsewhere, the instructions may be stored on a variety of machine-readable data storage media, such as DASD storage (e.g., a conventional hard drive or a RAID array), magnetic tape, electronic read-only memory (e.g., ROM, EPROM, or EEPROM), an optical storage device (e.g. CD-ROM, WORM, DVD, digital optical tape, etc.), paper punch cards, or other suitable signal-bearing storage media, including memory devices in transmission media, such as communication links and wireless devices, and in various formats, such as digital and analog formats. In an illustrative embodiment of the invention, the machine-readable instructions may comprise software object code.
(87) Therefore, based on the foregoing exemplary embodiments of the invention, the numerical scaling method for mathematical programs with quadratic objectives and/or quadratic constraints can improve the accuracy of the computations and the overall stability of the implementation of the solving.
(88) Although examples of the numerical scaling method are shown, alternate embodiments are also possible, including for example, numerical scaling methods for higher order problem solving and computation in computers or other machines that must compute high level mathematical problems.
(89) The many features and advantages of the invention are apparent from the detailed specification, and thus, it is intended by the appended claims to cover all such features and advantages of the invention which fall within the true spirit and scope of the invention. Further, since numerous modifications and variations will readily occur to those skilled in the art, it is not desired to limit the invention to the exact construction and operation illustrated and described, and accordingly, all suitable modifications and equivalents may be resorted to, falling within the scope of the invention.