1. Field of the Invention
This invention relates to surveillance systems. Specifically, the invention relates to a video-based surveillance system that uses an omni-directional camera as a primary sensor. Additional sensors, such as pan-tilt-zoom cameras (PTZ cameras), may be applied in the system for increased performance.
2. Related Art
Some state-of-the-art intelligent video surveillance (IVS) systems can perform content analysis on frames generated by surveillance cameras. Based on user-defined rules or policies, IVS systems can automatically detect potential threats by detecting, tracking and analyzing the targets in the scene. One significant constraint of the system is the limited field-of-view (FOV) of a traditional perspective camera. A number of cameras can be employed in the system to obtain a wider FOV. However increasing the number of cameras increases the complexity and cost of system. Additionally, increasing the number of cameras also increases the complexity of the video processing since targets need to be tracked from camera to camera.
An IVS system with a wide field of view has many potential applications. For example, there is a need to protect a vessel when in-port. The vessel's sea-scanning radar provides a clear picture of all other vessels and objects in the vessel's vicinity when the vessel in underway. This continuously updated picture is the primary source of situation awareness for the watch officer. In port, however, the radar is less useful due to the large amount of clutter in a busy port facility. Furthermore, it may be undesirable or not permissible to use active radar in certain ports. This is problematic because naval vessels are most vulnerable to attack, such as a terrorist attack, when the vessel is in port.
Thus, there is a need for a system with substantially 360° coverage, automatic target detection, tracking and classification and real-time alert generation. Such a system would significantly improve the security of the vessel and may be used in many other applications.
Embodiments of the invention include a method, a system, an apparatus, and an article of manufacture for video surveillance. An omni-directional camera is ideal for a video surveillance system with a wider field of view because of its seamless coverage and passive, high-resolution feature.
Embodiments of the invention may include a machine-accessible medium containing software code that, when read by a computer, causes the computer to perform a method for video surveillance. A method of operating a video surveillance system, the video surveillance system including at least two sensing units, the method comprising using a first sensing unit having a substantially 360 degree field of view to detect an event of interest, sending location information regarding a target from the first sensing unit to at least one second sensing unit when an event of interest is detected by the first sensing unit.
A system used in embodiments of the invention may include a computer system including a computer-readable medium having software to operate a computer in accordance with embodiments of the invention.
An apparatus according to embodiments of the invention may include a computer including a computer-readable medium having software to operate the computer in accordance with embodiments of the invention.
An article of manufacture according to embodiments of the invention may include a computer-readable medium having software to operate a computer in accordance with embodiments of the invention.
Exemplary features of various embodiments of the invention, as well as the structure and operation of various embodiments of the invention, are described in detail below with reference to the accompanying drawings.
The foregoing and other features of various embodiments of the invention will be apparent from the following, more particular description of such embodiments of the invention, as illustrated in the accompanying drawings, wherein like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements.
An “omni image” refers to the image generated by omni-directional camera, which usually has a circle view in it.
A “camera calibration model” refers to a mathematic representation of the conversion between a point in the world coordinate system and a pixel in the omni-directional imagery.
A “target” refers to a computer's model of an object. The target is derived from the image processing, and there is a one-to-one correspondence between targets and objects.
A “blob” refers generally to a set of pixels that are grouped together before further processing, and which may correspond to any type of object in an image (usually, in the context of video). A blob may be just noise, or it may be the representation of a target in a frame.
A “bounding-box” refers to the smallest rectangle completely enclosing the blob.
A “centroid” refers to the center of mass of a blob.
A “footprint” refers to a single point in the image which represents where a target “stands” in the omni-directional imagery.
A “video primitive” refers to an analysis result based on at least one video feed, such as information about a moving target.
A “rule” refers to the representation of the security events the surveillance system looks for. A “rule” may consist of a user defined event, a schedule, and one or more responses.
An “event” refers to one or more objects engaged in an activity. The event may be referenced with respect to a location and/or a time.
An “alert” refers to the response generated by the surveillance system based on user defined rules.
An “activity” refers to one or more actions and/or one or more composites of actions of one or more objects. Examples of an activity include: entering; exiting; stopping; moving; raising; lowering; growing; and shrinking.
The “calibration points” usually refers to a pair of points, where one point is in the omni-directional imagery and one point is in the map plane. The two points correspond to the same point in the world coordinate system.
A “computer” refers to any apparatus that is capable of accepting a structured input, processing the structured input according to prescribed rules, and producing results of the processing as output. Examples of a computer include: a computer; a general purpose computer; a supercomputer; a mainframe; a super mini-computer; a mini-computer; a workstation; a micro-computer; a server; an interactive television; a hybrid combination of a computer and an interactive television; and application-specific hardware to emulate a computer and/or software. A computer can have a single processor or multiple processors, which can operate in parallel and/or not in parallel. A computer also refers to two or more computers connected together via a network for transmitting or receiving information between the computers. An example of such a computer includes a distributed computer system for processing information via computers linked by a network.
A “computer-readable medium” refers to any storage device used for storing data accessible by a computer. Examples of a computer-readable medium include: a magnetic hard disk; a floppy disk; an optical disk, such as a CD-ROM and a DVD; a magnetic tape; a memory chip; and a carrier wave used to carry computer-readable electronic data, such as those used in transmitting and receiving e-mail or in accessing a network.
“Software” refers to prescribed rules to operate a computer. Examples of software include: software; code segments; instructions; computer programs; and programmed logic.
A “computer system” refers to a system having a computer, where the computer comprises a computer-readable medium embodying software to operate the computer.
Exemplary embodiments of the invention are discussed in detail below. While specific exemplary embodiments are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations can be used without parting from the spirit and scope of the invention.
A primary sensing unit 100 may comprise, for example, a digital video camera attached to a computer. The computer runs software that may perform a number of tasks, including segmenting moving objects from the background, combining foreground pixels into blobs, deciding when blobs split and merge to become targets, tracking targets, and responding to a watchstander (for example, by means of e-mail, alerts, or the like) if the targets engage in predetermined activities (e.g., entry into unauthorized areas). Examples of detectable actions include crossing a tripwire, appearing, disappearing, loitering, and removing or depositing an item.
Upon detecting a predetermined activity, the primary sensing unit 100 can also order a secondary 108 to follow the target using a pan, tilt, and zoom (PTZ) camera. The secondary 108 receives a stream of position data about targets from the primary sensing unit 100, filters it, and translates the stream into pan, tilt, and zoom signals for a robotic PTZ camera unit. The resulting system is one in which one camera detects threats, and the other robotic camera obtains high-resolution pictures of the threatening targets. Further details about the operation of the system will be discussed below.
The system can also be extended. For instance, one may add multiple secondaries 108 to a given primary 102. One may have multiple primaries 102 commanding a single secondary 108. Also, one may use different kinds of cameras for the primary 102 or for the secondary(s) 108. For example, a normal, perspective camera or an omni-directional camera may be used as cameras for the primary 102. One could also use thermal, near-IR, color, black-and-white, fisheye, telephoto, zoom and other camera/lens combinations as the primary 102 or secondary 108 camera.
In various embodiments, the secondary 108 may be completely passive, or it may perform some processing. In a completely passive embodiment, secondary 108 can only receive position data and operate on that data. It can not generate any estimates about the target on its own. This means that once the target leaves the primary's field of view, the secondary stops following the target, even if the target is still in the secondary's field of view.
In other embodiments, secondary 108 may perform some processing/tracking functions. Additionally, when the secondary 108 is not being controlled by the primary 102, the secondary 108 may operate as an independent unit. Further details of these embodiments will be discussed below.
The omni-directional camera 102 obtains an image, such as frames of video data of a location. The video frames are provided to a video processing unit 104. The video processing unit 104 may perform object detection, tracking and classification. The video processing unit 104 outputs target primitives. Further details of an exemplary process for video processing and primitive generation may be found in commonly assigned U.S. patent application Ser. No. 09/987,707 filed Nov. 15, 2001, and U.S. patent application Ser. No. 10/740,511 filed Dec. 22, 2003, the contents of both of which are incorporated herein by reference.
The event detection module 106 receives the target primitives as well as user-defined rules. The rules may be input by a user using an input device, such as a keyboard, computer mouse, etc. Rule creation is described in more detail below. Based on the target primitives and the rules, the event detection module detects whether an event meeting the rules has occurred, an event of interest. If an event of interest is detected, the event detection module 106 may send out an alert. The alert may include sending an email alert, sounding an audio alarm, providing a visual alarm, transmitting a message to a personal digital assistant, and providing position information to another sensing unit. The position information may include commands for the angles for pan and tilt or zooming level for zoom for the secondary sensing unit 108. The secondary sensing unit 108 is then moved based on the commands to follow and/or zoom in on the target.
As defined, the omni-directional camera may have a substantially 360-degree field of view.
Omni-Directional Camera Calibrator
Camera calibration is widely used in computer vision applications. Camera calibration information may be used to obtain physical information regarding the targets. The physical information may include the target's physical size (height, width and depth) and physical location. The physical information may be used to further improve the performance of object tracking and classification processes used during video processing. In an embodiment of the invention, an omni-directional camera calibrator module may be provided to detect some of the intrinsic parameters of the omni-directional camera. The intrinsic parameters may be used for camera calibration. The camera calibrator module may be provided as part of video processing unit 104.
Referring again to
If the input frame is not valid, the module 300 may wait for the next frame from the omni-directional camera. If the input frame is valid, edge detection model 306 reads in the frame and performs edge detection to generate a binary edge image. The binary edge image is then provided to circle detection module 308. Circle detection module 308 reads in the edge image and performs circle detection. The parameters used for edge detection and circle detection are determined by the dimensions of the input video frame. The algorithms for edge detection and circle detection are known to those skilled in the art. The results of the edge detection and circle detection include the radius and center of the circle in the image from the omni-directional camera. The radius and center are provided to a camera-building module 310, which builds the camera model in a known manner.
For example, the camera model may be built based on the radius and center of the circle in the omni image, the camera geometry and other parameters, such as the camera physical height. The camera model may be broadcast to other modules which may need the camera model for their processes. For example, an object classifier module may use the camera model to compute the physical size of the target and use the physical size in the classification process. An object tracker module may use the camera model to compute the target's physical location and then apply the physical location in the tracking process. An object detector module may use the camera model to improve its performance speed. For example, only the pixels inside the circle are meaningful for object detection and may be processed to detect a foreground region during video processing.
Target Classification in Omni-Directional Imagery
Target classification is one of the major components of an intelligent video surveillance system. Through target classification, a target may be classified as human, vehicle or another type of target. The number of target types available depends on the specific implementation. One of the features of a target that is generally used in target classification is the aspect-ratio of the target, which is the ratio between width and height of the target bounding box.
The magnitude of the aspect ration of a target may be used to classify the target. For example, when the aspect-ratio for a target is larger than a specified threshold (for instance, the threshold may be specified by a user to be 1), the target may be classified as one type of target, such as vehicle; otherwise, the target may be classified as another type of target, such as human.
For an omni-directional camera, a target is usually warped in the omni image. Additionally, the target may lie along the radius of the omni image. In such cases, classification performed based on a simple aspect ratio may cause a classification error. According to an exemplary embodiment of the invention, a warped aspect-ratio may be used for classification:
Where Ww and Hw are the warped width and height and Rw is the warped aspect ratio. The warped width and height may be computed based on information regarding the target shape, the omni-directional camera calibration model, and the location of the target in the omni image.
Referring to
After these values are determined, the camera model may be used to calculate the warped width and warped height. A classification scheme similar to that described above for the aspect ratio may then be applied. For instance, an omni-directional camera with a parabolic mirror may used as the primary. A geometry model for such a camera is illustrated in
Ww=Fw(h,r0,r1,φ)
Hw=FH(h,r0,r1,φ)
While aspect ratio and warped aspect ratio are very useful in target classification, sometimes, a target may be misclassified. For instance, as a car drives towards the omni-directional camera, the warped aspect ratio of the car may be smaller than the specified threshold. As a result, the car may be misclassified as human. However, the size of the vehicle target in the real world is much larger than a size of a human target in the real world. Furthermore some targets, which only contain noise, may be classified as human, vehicle or another meaningful type of target. The size of the target measured in the real world may be much bigger or smaller than the meaningful types of targets. Consequently, the physical characteristics of a target may be useful as an additional measure for target classification. In an exemplary embodiment of the invention, a target size map may be used for classification. A target size map may indicate the expected size of a particular target type at various locations in an image.
As an example of the use of a target size map, classification between human and vehicle targets is described. However, the principles discussed may be applied to other target types. A human size map is useful for target classifications. One advantage of using human size is that the depth of a human can be ignored and the size of a human is usually a relatively constant value. The target size map, in this example a human size map, should be equal in size to the image so that every pixel in the image has a corresponding pixel in the target size map. The value of each pixel in the human size map represents the size of a human in pixels at the corresponding pixel in the image. An exemplary process to build the human size map is depicted in
Where (xƒ, yƒ) and (xh, yh) are the coordinates of the footprint and head in world coordinate system separately; (x′ƒ, y′ƒ) and (x′h, y′h) are the coordinates of footprint and head in the omni image separately. F0( ) and F1( )denote the transform functions from world coordinates to image coordinates; F′0( ) and F′1( ) denote the transform functions from image coordinates to world coordinates. All of the functions should be decided by the camera calibration model.
Where Wt is the human width in the real world, which, for example, may be assumed as 0.5 meters. (xp1, yp1) and (xp2, yp2) represent the left and right side of the human in world coordinate; (x′p1, y′p1) and (x′p2, y′p2) represent the left and right side in the omni image. F0( ) and F1( ) are still the transform functions from world coordinates to image coordinates.
Turning now to
For example,
Please note that the human size map is only one of the possible target classification reference maps. In different situations, other types of target size maps may be used.
Region Map and Target Classification
A region map is another tool that may be used for target classification. A region map divides the omni image into a number of different regions. The region map should be the same size as the image. The number and types of regions in the region map may be defined by a user. The use may use a graphical interface or a mouse to draw or otherwise define the regions on the region map. Alternatively, the regions may be detected by an automatic region classification system. The different types of targets that may be present in each region may be specified. During classification, the particular region that a target is in is determined. The classification of targets may be limited to those target types specified for the region that the target is in.
For example, if the intelligent video surveillance system is deployed on a vessel, the following types of regions may be present: pier, water, land and sky.
Two special regions may also be included in the region map. One region may be called “area of disinterest,” which indicates that the user is not interested in what happens in this area. Consequently, this particular area in the image may not undergo classification processing, helping to reduce the computation cost and system errors. The other specified region may be called “noise,” which means that any new target detected in this region is noise and should not be tracked. However, if a target is detected outside of the “noise” region, and the target subsequently moves into this region, the target should be tracked, even though in the “noise” region.
The Definition of Footprint of the Target in Omni-Directional Image
A footprint is a single point or pixel in the omni image which represents where the target “stands” in the omni image. For a standard camera, this point is determined by projecting a centroid 1201 of the target blob towards a bottom of the bounding box of the target until the bottom of the target is reached, as shown in
However, the footprint of a target in the omni image may vary with the distance between the target and the omni-directional camera. Here, an exemplary method to compute the footprint of the target in the omni image when a target is far from the camera is provided. The centroid 1302 of the target blob 1304 is located. A line 1306 is created between the centroid 1302 of the target and the center C of the omni image. A point P on the target blob contour that is closest to the center C is located. The closet point P is projected on the line 1306. The projected point P′ is used as the footprint.
However as the target gets closer to the camera, the real footprint should move closer to the centroid of the target. Therefore, the real footprint should be a combination of the centroid and the closest point. The following equations illustrate the computation details.
The equations shows that that when the target is close to the camera, its footprint may be close to its centroid and when the target is far from the camera, its footprint may be close to the closest point P.
Omni-Directional Camera Placement Tool
A camera placement tool may be provided to determine the approximate location of the camera's monitoring range. The camera placement tool may be implemented as a graphical user interface (GUI). The camera placement tool may allow a user to determine the ideal surveillance camera settings and location of cameras to optimize event detection by the video surveillance system. When the system is installed, the cameras should ideally be placed so that their monitoring ranges cover the entire area in which a security event may occur. Security events that take place outside the monitoring range of the cameras may not be detected by the system.
The camera placement tool may illustrate, without actually changing the camera settings or moving equipment, how adjusting certain factors, such as the camera height and focal length, affect the size of the monitoring range. Users may use the tool to easily find the optimal settings for an existing camera layout.
After the camera is selected, the configuration data area 1408 is populated accordingly. Area 1408 allows a user to enter information about the camera and the size of an object that the system should be able to detect. For the omni-directional camera, the user may input: focal settings, such as focal length in pixels, in area 1410, object information, such as object physical height, width and depth in feet and the minimum target area in pixels, in the object information area 1412, and camera position information, such as the camera height in feet, in camera position area 1414.
By hitting the apply button 1416, the monitoring range of the system is calculated based on the omni camera's geometry model and is displayed in area 1418. The maximum value of the range of the system may also be marked.
Rules for Omni-Directional Camera
A Rule Management Tool (RMT) may be used to create security rules for threat detection. An exemplary RMT GUI 1500 is depicted in
Various types of rules may be defined. In an exemplary embodiment, the system presents several predefined rules that may be selected by a user. These rules include an arc-line tripwire, circle area of interest, and donut area of interest for event definition. The system may detect when an object enters an area of interest or crosses a trip wire. The user may use an input device to define the area of interest on the omni-directional camera image.
Rule Definition on Panoramic View
An omni-directional image is not an image that is seen in everyday life. Consequently, it may be difficult for a user to define rules on the omni image. Therefore, embodiments of the present invention present a tool for rule definition on a panoramic view of a scene.
Perspective and Panoramic View in Alert
If a rule is set up and an event of interest based on the rule occurs, an alert may be generated by the intelligent video surveillance system and sent to a user. An alert may contain information regarding the camera which provides a view of the alert, the time of the event, a brief sentence to describe the event, for instance, “Person Enter AOI”, one or two snapshots of the target and the target marked-up with a bounding box in the snapshot. The omni-image snapshot may be difficult for the user to understand. Thus, a perspective view of the target and a panoramic view of the target may be presented in an alert.
The user may select a particular one of the alerts displayed in area 1902 for a more detailed view. In
2D Map-Based Camera Calibration
Embodiments of the inventive system may employ a communication protocol for communicating position data between the primary sensing unit and the secondary sensing unit. In an exemplary embodiment of the invention, the cameras may be placed arbitrarily, as long as their fields of view have at least a minimal overlap. A calibration process is then needed to communicate position data between primary 102 and secondary 108. There are a number of different calibration algorithms that may be used.
In an exemplary embodiment of the invention, measured points in a global coordinate system, such as a map (obtained using GPS, laser theodolite, tape measure, or any measuring device), and the locations of these measured points in each camera's image are used for calibration. The primary sensing unit 100 uses the calibration and a site model to geo-locate the position of the target in space, for example on a 2D satellite map.
A 2D satellite map may be very useful in the intelligent video surveillance system. A 2D map provides details of the camera and target location, provides visualization information for user, and may be used as a calibration tool. The cameras may be calibrated with the map, which means to compute the camera location in the map coordinates M(x0, y0), camera physical height H and the view angle offset, and a 2D map-based site model may be created. A site model is a model of the scene viewed by the primary sensor. The field of the view of the camera and the location of the targets may be calculated and the targets may be marked on the 2D map.
The embodiment of the video surveillance system disclosed herein includes the omni-directional camera and also the PTZ cameras. In some circumstances, the PTZ cameras receive commands from the omni camera. The commands may contain the location of targets in omni image. To perform the proper actions (pan, tilt and zoom) to track the targets, PTZ cameras need to know the location of the targets in their own image or coordinate system. Accordingly, calibration of the omni-directional and PTZ cameras is needed.
Some OMNI+PTZ systems assume that omni camera and PTZ cameras are co-mounted, in other words, the location of the cameras in the world coordinate system are the same. This assumption may simplify the calibration process significantly. However, if multiple PTZ cameras are present in the system, this assumption is not realistic. For maximum performance, PTZ cameras should be able to be located anywhere in the field view of the omni camera. This requires more complicated calibration methods and user input. For instance, the user may have to provide a number of points in both the omni and PTZ images in order to perform calibration, which may increase the difficulty in setting up the surveillance system.
If a 2D map is available, all the cameras in the IVS system may be calibrated to the map. The cameras may then communicate with each other using the map as a common reference frame. Methods of calibrating PTZ cameras to a map are described in co-pending U.S. patent application Ser. No. 09/987,707 filed Nov. 15, 2001, which is incorporated by reference. In the following, a number of methods for the calibration of omni-directional camera to the map are presented.
2D Map-Based Omni-Directional Camera Calibration
Note that the exemplary methods presented here are based on one particular type of omni camera, which is an omni-directional camera with parabolic mirror. The methods may be applied to other types of omni cameras using that cameras geometry model.
A one-point camera to map calibration method may be applied if the camera location on the 2D map is known, otherwise a four-point calibration method may be required. For both of the methods, there is an assumption that the ground plane is flat and is parallel to the image plane. This assumption, however, does not always hold. A more complex, multi-point calibration, discussed below, may be used to improve the accuracy of calibration when this assumption is not fully satisfied.
One-Point Calibration
If a user can provide the location of the camera on the map, one pair of points, one point in the image, image coordinate I(x2, y2) and a corresponding point on the map, map coordinate M(x1, y1,), are sufficient for calibration. Based on the geometry of the omni camera (shown in
As mentioned above and shown in
The angle offset is computed as:
where α and β are shown in
Four-Point Calibration
If the camera location is not available, four pairs of points from the image and map are needed. The four pairs of points are used to calculate the camera location based on a simple geometric property. One-point calibration may then be used to obtain the camera height and viewing angle offset.
The following presents an example of how the camera location on the map M(x0, y0) is calculated based on the four pairs of points input by the user. The user provides four points on the image and four points on the map that correspond to those points on the image. With the assumption that the image plane is parallel to the ground plane, an angle between two viewing directions on the map is the same as an angle between the two corresponding viewing directions on the omni image. Using this geometric principle, as depicted in
From the user's perspective, the one-point calibration approach is easier since selecting pairs of points on the map and on the omni images is not a trivial task. Points are usually selected by positioning a cursor over a point on the image or map and selecting that point. One mistake in point selection could cause the whole process to fail. Selecting the camera location on the map, on the other hand, is not as difficult.
As mentioned, both the above-described calibration methods are based on the assumption that the ground plane is parallel to the camera and the ground plane is flat. In the real world, one omni-directional camera may cover a 360° with a 500 foot field of view, and the assumptions may not be applied.
Enhanced One-Point Calibration
To solve the irregular ground problem, the ground is divided into regions. Each region is provided with a calibration point. It is assumed that the ground is flat only in a local region. Note that it is still only necessary to have one point in the map representing the camera location. For each region, the one-point calibration method may be applied to obtain the local camera height and viewing angle offset in that region. When target gets into a region, the target's location on the map and other physical information are calculated based on the calibration parameters of this particular region. With this approach, the more calibration points that there are, the more accurate the calibration results. For example,
As mentioned above, the target should be projected to the map using the most suitable local calibration information (calibration point). In an exemplary embodiment, three methods may be presented at runtime to select calibration points. The first is a straightforward approach to use the calibration point closest to the target. This approach may have les than satisfactory performance when the target and the calibration point happen to be located in two different regions and there is a significant difference between the two regions.
A second method is spatial closeness. This is an enhanced version of the first approach. Assuming that a target does not “jump around” on the map, The target's current position should always be close to the target's previous position. When switching calibration points, based on the nearest point rule, the physical distance between the target's previous location and its current computed location is determined. If the distance is larger than a certain threshold, the prior calibration point may be used. This approach can greatly improve the performance of target projection and it can smooth the target movement as displayed on the map.
The third method is region map based. A region map as described above to improve the performance of target classification may also be applied to improve calibration performance. Assuming that the user provides a region map and each region includes substantially flat ground, as a target enters each region; the corresponding one-point calibration should be used to decide the projection of the target on the map.
Multi-Point Calibration
As depicted in
The incoming ray L(s) may be defined by camera center C0 and P′. And this ray should intersect with the ground plane at P. The projection of P on the map plane is the corresponding selected calibration point. L(s) may be represented with the following equations:
Where, x and y are the coordinates of the selected calibration point on the map; X′ and Y′ can be represented with camera calibration parameters. There are seven unknowns: calibration parameters, camera location, camera height, normal of actual plane N, and viewing angle offset. Four point pairs are sufficient to compute the calibration model, but the more point pairs that are provided, the more accurate the calibration model is. The embodiments and examples discussed herein are non-limiting examples.
The invention is described in detail with respect to preferred embodiments, and it will now be apparent from the foregoing to those skilled in the art that changes and modifications may be made without departing from the invention in its broader aspects, and the invention, therefore, as defined in the claims is intended to cover all such changes and modifications as fall within the true spirit of the invention.