Optimal Camera Placement to measure Distances Conservativly Regarding Static and Dynamic Obstacles
In modern production facilities industrial robots and humans are supposed to interact sharing a common working area. In order to avoid collisions, the distances between objects need to be measured conservatively which can be done by a camera network. To estimate the acquired distance, unmodelled objects, e.g., an interacting human, need to be modelled and distinguished from premodelled objects like workbenches or robots by image processing such as the background subtraction method.
The quality of such an approach massively depends on the settings of the camera network, that is the positions and orientations of the individual cameras. Of particular interest in this context is the minimization of the error of the distance using the objects modelled by the background subtraction method instead of the real objects. Here, we show how this minimization can be formulated as an abstract optimization problem. Moreover, we state various aspects on the implementation as well as reasons for the selection of a suitable optimization method, analyze the complexity of the proposed method and present a basic version used for extensive experiments.
Closed range photogrammetry, optimization, camera network, camera placement, error minimization
Nowadays, human/machine interaction is no longer restricted to humans programming machines and operating them from outside their working range. Instead, one tries to increase the efficiency of such a cooperation by allowing both actors to share the same working area. In such a context, safety precautions need to be imposed to avoid collisions, i.e., the distance between human and machine interacting in a common area needs to be reconstructed continuously in order to detect critical situations. To this end, usually a network of cameras is installed to, e.g., ensure that every corner of the room can be watched, every trail can be followed or every object can be reconstructed correctly. Within this work, we focus on computing an optimal configuration of the camera network in order to measure the distances as correct as possible but still conservatively.
After a brief review on previous results concerning the predescribed distance measurement, we show how an unmodelled (human) object can be contoured by a 3D background subtraction method. We extend this scheme to cover both static and dynamic obstacles, some of which are modelled in advance but still occlude the vision of the sensor. In Section III, we rigorously formulate the problem of minimizing the error made by using the associated model instead of the original collective of unmodelled objects. Considering the implementation of a solution method, we discuss various difficulties such as, e.g., the evaluation of the intersection of the cones corresponding to each camera in Section IV and also give an outline of concepts to work these issues. In the final Sections V and VI, we analyze the complexity of our basic implementation by a series of numerical experiments and conclude the article by given an outlook on methods to further improve the proposed method.
Ii State of the art
Many camera placement methods have to deal with a trade-off between the quality of observations and the quantity of pieces of information which are captured by the cameras. The latter aspect is important for camera networks which have to decide whether an item or an action has been observed. There have been investigations about how to position and orientate cameras subject to observing a maximal number of surfaces  and different courses of action [2, 6, 7] as well as maximizing the volume of the surveillance aread  or the number of objects [13, 12, 14]. Another common goal in this context is to be able to observe all items of a given set but minimize the amount of cameras in addition to obtain their positions and orientations [5, 13, 12, 14]. This issue is called “Art Gallery Problem” especially when speaking of two–dimensional space.
Apart from deciding whether an object has been detected by a camera network, another task is to obtain detailed geometrical data of the observed item like its position and measurements of its corners, curves, surfaces, objects etc. As described in  determining this information for distances smaller than a few hundred meters by cameras belongs to the field ‘close range photogrammetry’. In order to configure a camera network to cope with such tasks, one usually minimizes the error of observed and reconstructed items. Often the phrase ‘Photogrammetric Network Design’ is used to express minimizing the reconstruction error for several (three-dimensional) points. The default assumption in this context, however, is that no occlusions occur, cf. [20, 19, 17, 18, 8] for details. Optimally localizing an entire object which is not occluded is an assignment treated in . Furthermore, many approaches compensate for the increasing complexity of the problem by oversimplifying matters: One common approach is to restrain the amount of cameras (in  two cameras are used) or their position and orientation. Considering the latter, known approaches are the viewing sphere model given in [19, 20] or the idea of situating all cameras on a plane and orientating them horizontally, cf. ).
In contrast to these approaches, we discuss optimizing positions and orientations of cameras in a network in the context of the background subtraction method which is used to determine a visual hull of a solid object. By means of this visual hull, distances can be computed easily which renders this approach to be a different simplification. Occlusions of solids to be reconstructed obscure the view and enlarge the visual hull. In order to get the minimal error of the construction of the hull,  assumes that minimizing the occuring occlusions of solids also reduces and thus specifies their possibile locations. However, neither obstacles nor opening angles other than are discussed in  and additionally the orientation of the camera is neglected as a variable since it is simply orientated towards the object. In , static obstacles are considered but the amount of cameras is chosen out of a preinstalled set.
Since we are not interested in optimizing the quantity of observed objects but the quality of data, our approach is different to most of the discussed results. Note that the quality of information can be obtained by various types of image processing. Here, we consider the background subtraction method to obtain a visual hull of a given object. Within our approach, we optimize the positions and orientations of a fixed amount of cameras as to minimize the error that is made by evaluating distances to the visual hull. In contrast to existing results, our goal is to incorporate the aspects of occuring static or dynamic obstacles into our calculations but also to exploit all degrees of freedom available in an unconstrained camera network. Nevertheless, distances are to be evaluated conservativly.
Iii Visibility Analysis
Within this section, it will be shown how to condition the objective function on the cameras position and orientation, thus, we successively build up a mathematical representation of the optimization problem. We start off by defining the critical area as well as the to be reconstructed unmodelled objects and corresponding abstract models in Section III-A. This will allow us to formally state the objective function which we aim to minimize. In the following Section III-B, we define the camera network and its degrees of freedom, i.e. the position and orientation of each camera. These degrees of freedom allow us to parametrize the model of the to be reconstructed object. Additionally, this tuple of degrees of freedom will serve as an optimization variable in the minimization problem stated in Section III-C. To cover all possible scenarios, this problem is extended by incorporating both static and dynamic obstacles as well as an evolving time component.
Iii-a Formalizing the Problem
Let be a spacial area based on which information about humans, perils, obstacles and also cameras can be given. Consider to be the surveillance area, where critical points of the set as well as objects, such a human or a robot, are monitored.
For the moment, we neglect obstacles completely, we just distinguish two types of objects, to explain the basic idea of reconstructing an object by the means of a camera network: If a detailed model of an object exists describing its appearance like location, shape, color or else, the object is called modelled. If this is not the case the object is called unmodelled. This is motivated by the following scenario: If humans move unpredictably within the surveillance area, i.e. without a given route, their appearance is unmodelled and needs to be reconstructed to be used for further calculations. The model of an unmodelled object can be reconstructed by the means of a camera network. Therefore, let be a complete set of points included in one or more unmodelled objects, depending on the appearance of unmodelled objects specified by the parameter . We refer to these objects as unmodelled collective. Since automaticly placing the cameras for such a scenario is incomputable without information on the unmodelled collective, we impose the assumption that the distribution of the appearance is known.
As the safety of a human being must be guaranteed in any case, the distance
has to be computed conservatively and security measures need to be taken if the unmodelled collective appoaches the critical points . Here denotes a standard distance function. If the exact set was known, this distance could be evaluated easily. As we do not directly know the value of and therefore can only guess the points that are included in , we need to approximate a (as a consequence also conservative) model , see Fig. 1.
Note that for now is an abstract approximation of with respect to the parameter only. In order to actually compute , a sensor network and its degrees of freedom come into play, see Section III-B for details. Still, the abstract approximation allows us to formalize our overall task, i.e. to minimize the difference between the approximation based distance and the real distance . Taking the assumed distribution of the parameter into account, we aim to minimize the functional
Note that for the optimization we need to be aware of possible appearances of the object in order to let the integral pass through their space . Thus all appearances of the unmodelled collective should be known.
Iii-B Building a Model with the Camera Network
In the previous section we saw that in order to evaluate the functional (1), a model of the unmodelled collective is required. To obtain such a model, we impose a camera network consisting of Cameras. Each camera can be placed and orientated with a setting . Here, the first term corresponds to the position of the camera whereas the second and third denote the angles ‘yaw’ and ‘pitch’ respectively. For simplicity of exposition, we exclusively considered circular cones in our implementation which allowed us to neglect the angle ‘roll’ as a degree of freedom in the setting of a single camera. Hence, each camera exhibits five degrees of freedom, three for the position and two for its orientation.
Thus, each camera can be regarded as a tupel whereas its produced output regarding the parameter of unmodelled collective is a function
that is - given the setting and the appearance of the unmodelled collective - each point is mapped onto a sensor value where
This set is adjusted to the evaluation of the network’s images by the change detection method (e.g. background subtraction). The sensor value of a point is free if this point is perceived as not part of the unmodelled collective. The value occupied resembles the possibility that the point could be part of the unmodelled collective (i.e. the point might be occupied by the collective). If the sensor cannot make the decision, e.g. this is the case for cameras that cannot ‘see’ behind walls, the value is undetectable. Obstacles like walls will be discussed in Section III-C. To obtain the values of set one could apply the method of background subtraction, which is discussed in  elaborately. Although our method is not restricted to a pixel model which is considered in , the idea of this work remains the same. Thus, we will only provide the prior formulization of the values, as to explain their role in building the model of an unmodelled collective.
According to the definition of the set , all cameras split the set into three different subsets:
We state here without proof that we have constructed these parts to be a pairwise disjoint conjunction of , i.e.
The unmodelled collective cannot be situated inside , all we know is
Since this inclusion holds for the parameter and one camera with settings , obviously the following is true if we consider a camera network consisting of cameras with settings :
Note that this set is already a good approximation of the unmodelled collective if we considered the entire set . However, as we only monitor the surveillance area , we define the desired model of the unmodelled collective as the intersection with the set , i.e.,
This is the basic model that can be used to calculate Formula (1). In the following, we will extend our setting to incorporate a time dependency and to cover for different types of obstacles.
Iii-C Adding Time and Obstacles
So far, we have only considered a static scene to be analyzed. Motivated by moving objects, we extend our setting by introducing a time dependency to the process under surveillance. Therefore, we declare the time interval of interest , in which denotes the moment the reference image is taken and corresponds to the last instant the surveillance area ought to be observed. Thus, the unmodelled collective , its probability distribution and its approximation as well as the set of critical points change in time . As a simple extension of (1) we obtain the time dependend error functional
In a second step, we add some more details to the scene under surveillance. To this end, we specify several categories and properties of objects , which we are particularly interested in and which affect the reconstruction of the current scene. Right from the beginning we have considered unmodelled objects. In contrast to modelled objects, these objects need to be reconstructed in order to track them. In the following, we additionally distinguish objects based on the characteristical behavior “static/dynamic”, “target/obstacle” and “rigid/nonrigid”, neglecting those objects that cannot be noticed by the sensors (like a closed glass door for cameras without distance sensor).
We define a target of a sensor network as an object which ought to be monitored and in our case reconstructed. An object which is not a target is called obstacle. Furthermore, we distinguish obstacles based on their physical character: An obstacle features a rigid nature (like furniture), if the inpenetrability condition holds, and is denoted by the index in .
The method proposed in  constructs a visual hull of an object by background subtraction, i.e. via change detection. In context of change detection methods another characteristical behavior of objects is relevant: A static object is an object which is known to affect the given sensors in the same way at any time. If this is not the case, it is called dynamic, which we indicate by adding a subscript and a time dependency . More specifically, within the proposed background subtraction method the value of each pixel of a current image is subtracted from its counterpart within the reference image which has been taken beforehand. Thus, any change (like size/color/location) occuring after the reference image has been taken leaves a mark on the subtracted image, i.e., if the scene consists of static objects only, then the subtracted image is blank. For this reason, static objects must be placed in the scene before the reference picture is taken, and dynamic objects must not.
Within the rest of this work, we consider all unmodelled objects to be reconstructed, i.e. in (3) we have
Consequently, the unmodelled collective and its distance to the critical points are dynamic targets. Thus, we always consider an obstacle to be a modelled obstacle since all our unmodelled objects are targets. Furthermore, all obstacles are considered rigid. To formalize the human-robot-scene let and be the collective of static and of dynamic obstacles with time , respectively. We incorporate these new aspects into the model of the unmodelled collective in (3) by intuitively extending our notation to
Last – as a robot is a dynamic obstacle in addition to a security thread (f.e. when moving too fast) – we define the critical points in (3) as the collective of dynamic obstacles
Note that there are dynamic obstacles next to dynamic targets i.e. the unmodelled collective. Thus a dynamical obstacle could easily be regarded as an object of the unmodelled collective since both evoke akin reactions of the change detection method. In our approach the obstacles are fully modelled and thus define a target free zone since they are physical obstacles. Still, inaccuracies of the accidental change detection leave fragments outside the dynamic obstacle, in our case outside the critical points. As a consequence the required distance between critical points and target is reduced to zero. Publication  solves this issue by introducing plausibility checks, in which predicates that characterize the target (like volume, height, etc.) are used to sort out the fragments.
Iv Aspects of Optimization
There are various ways to compute Equation (3) referring to: Representing the model, solving the integral and solving the optimization, as can be seen further on.
Iv-a Discretization of time and distribution
We would at first like to state that the distance between the model and another set does not need to be continuous at every appearance even if the distance to the unmodelled collective is continuous at . This point can also be made for Equation (3) but we stick to Equation (1) for reasons of simplicity. Such a case is illustrated in Fig. 2. As the original unmodelled collective of the appearance does not necessarily need to be convex or even connected, given the settings , the unfree parts of the sensors do not need to be connected, either. The model is constructed of an intersection of these parts (see Equation (2)). But, as intersections of disconnected parts do not need to be continuous on (e.g. referring to Hausdorff–metrics), the distance between the model and another set does not need to be continuous at every appearance .
Since only integrals with continuous integrants can generally be calculated as a whole or else need to be splitted, such a discontinuous function becomes a problem when being an integrant as of Formula (1). In our case a point of discontinuity of the distance as a function of cannot be derived easily, as it would have to be extracted from an individual nonrelated analysis depending not only on or but also on the sensor settings . While in simple cases this is possible, we spare such an altering analysis by discretizing appearance and time. Here, just the most important appearances of the unmodelled collective and most important time steps with and and with their weights
are modelled. Accordingly, the following weighted sum approximates the integral of Formula (3):
Iv-B Discretizing space by voxels
The next challenge – building an intersection of (free-form) solids – has claimed to be subject of discussion for more than a quater of a century and still is an issue of recent investigations. The publication  describes three main areas of solving this issue depending on their representation, each going with pros and cons.
Solids represented by polygonial meshs can be intersected by exact arithmetic and intervall computation, checking surface membership afterwards. The major concerns of this approach are robustness and efficiency (e.g., while intersecting two tangetially connected polyhedra/polygons inside-out facettes are computed).
Approximate methods (e.g. applying exact methods to a rough mesh of solids and refine the result) exist for meshs, too. Robustness problems (constructing breaks in the boundary) are in this case compensated by time consuming perturbation methods or interdependent operations which prevent parallel computing.
There are also techniques for solids transfered to image space (ray representation). While many of these mainly help rendering rather than evaluating the boundary, there are some that can be applied to intersection purposes (Layered Depth Image). Unfortunately, when computing these representations back into meshs many geometric details are destroyed.
Loosing geometric details is also the case for volumetric approaches. Converting surfaces with sharp corners and edges into volumetric data (like voxels) and not loosing data for reconstruction purpose is a challenging task even with oversampling. This also holds true for a voxel representation, but voxels on the other hand are easily obtained and robustly being checked by boolean operations. In addition to that we need a data structure, distances and volumes which are calculated easily, properties which are ensured for voxels. For these reasons our approach uses a voxel based model which is obtained by boolean operations on the free parts of the sensor.
Iv-C Optimization method
After having evaluated existing solutions by plugging them in the objective function of a problem, the solver of an optimization problem is a strategy to improve solutions until an optimum of the objective function is reached. To choose a suitable solver for the specified problem, there are different characteristics of the objective function that need to be considered.
At first, we associate the cone of a camera subtracted from the surveillance area as the ’undetectable’-part of this camera, depending on the setting of the camera. Remember that the undetectable area could be part of the model of the unmodelled collective. Now imagine the cone rotating in ’yaw’-direction continuously. One can easily see that the distance between any given point of the surveillance area and this cone is not convex in (as an exception, the chosen point can be included in the ’undetectable’-part and the distance is therefore for all ).
The second characteristic to be discussed is the discontinuity of with respect to . Due to the voxel based model distances are only evaluated to a finite set of points. When calculating the distances we need to jump from one point to the next even if settings are just altered gradually. Thus, the objective function is discontinuous and constant in between these discontinuities. Even if we used a non–voxelbased model, discontinuities would appear due to the intersections of disconnected parts mentioned in Section IV-A.
The objective function’s properties complicate the search for a suitable solver. As elucidated in standard references on nonlinear optimization like , most algorithms take advantage of a characteristical behavior like convexity, differentiability or at least continuity which cannot be guaranteed in our case. This applies to all determinisic solvers for nonlinear programs such as the Sequential Quadratic Programming, all kinds of local search algorithms (Downhill-Simplex, Bisection, Newton, Levenberg-Marquard etc.) and many others. Moreover, the problem cannot be transformed to a standard form of solvers like branch-and-bound, decompositions, cutting planes or outer approximation. This leaves us with non-deterministic, e.g., stochastic solvers. We have chosen the method MIDACO which is based on the ant-colony algorithm and samples solutions randomly where they appear to be most promising, see [22, 21] for details.
The solver is an iteration which generates a tuple of settings , (one setting for each camera) within each iteration step stochastically, based on knowledge of previous generations. Given these settings the model, the distances and the objective function consisting of the weighted sum given in Equation (IV-A) are evaluated. This continues until a stopping criteria is fulfilled. In order to compute the complexity of the method, assume that upon termination the -th iteration step has been reached. The process of obtaining the objective value of Formula (IV-A) is only implemented in a basic version, whereas for the given tuple of settings all of the time steps and appearances are to be evaluated to test all of the voxels whether they are included in the intersection in question. The intersection test uses all of the facets of the unmodelled collective as well as most of static facets and dynamic facets. Summing up these components give us the complexity
of the method.
Since we use a stochastical solver on the non-convex problem of camera configuration, the obtained solutions (i.e. tuple of settings) most likely differ from one another although the same objective value (i.e. deviation of distances) might have been found. Therefore, we ran groups of 20 solver calls with the same parameters to perceive the average outcome. One examination consists of a few groups of test runs which only differ in one parameter. We made examinations about changing resolutions, facets, objects, amount of events, amount of cameras and starting point. As long as there are no other assumptions the basic setup stated in Tab. I is used.
|modelled part of the scene||dimension/amount|
|surveillance area S:||cuboid|
|critical points:||all point inside the dynamic collective|
|static collective:||8 facets at 2 objects|
|dynamic collective:||24 facets at 6 objects in 2 timesteps|
|unmodelled collective:||24 facets at 6 objects in 3 events (of distrib.)|
|camera placement:||6 cameras all over the surveillance area|
|starting solution:||cameras are placed and orientated randomly all over S|
|stop criteria:||maximal time limit 3hoptimization tolerance|
We additionally assumed that the dynamic collective is also considered to be the set of critical points. Thus, we were able to model a robot (dynamical object and critical points) spinning too fast in direction of a human (unmodelled object).
Furthermore, Tab. II contains all test parameters and their ranges.
|modelled part of the scene||alterations|
|static coll.:||facets for at 2 obj.|
|facets at objects|
|dynamic coll.:||facets at 3 obj./2 timest.|
|obj. w. fac./1 timest. objects placed randomly|
|timest. w. obj fac. 3 events|
|unmodelled coll.:||facets at 2 obj./3 events|
|obj. w. fac./1 event objects placed randomly|
|events w. obj fac. 3 timest.|
|restrictions of the settings’ domain:||cameras placed only at ‘ceilling’cameras placed only in the ‘upper fourth’|
The aim of this section is to summarize all the examinations defined in Tab. II and, in particular, to answer the following central questions: Can the desired optimization tolerance be satisfied in time, ie. will the target be approximated as accuratly as needed? How many iteration cycles are needed? What is the operating time of one cycle, of each iteration step and the components of one step? What is the highest memory consumption?
V-a Hardware and Software
We implemented the optimization problem in C++ and compiled it with ’gcc’ version 4.0.20050901 (prerelease) optimized with the setting ’-O3’ on SuSE Linux version 10.0. We have used only one of the two cores of an AMD Opteron(tm) Processor 254 with 2.8 GHz Power(dynamical from 1GHz - 2.8GHz).Further information can be taken from Tab. IV and IV.
|model name:||AMD Opteron(tm) Processor 254|
V-B Optimization tolerance
As a second stopping criteria next to the three hour time limit we introduced the optimization tolerance, which is the maximal objective value a tuple of settings must be mapped at, for the optimization to terminate. This is desinged to depend on the length of a voxel’s diagonal. In many cases the solver was able to satisfy the desired optimization tolerance in the predefined maximal time. Following exceptions have exceeded the time limit: We recorded an increasing time consumption of one iteration step (beyond linear) when gradually raising the resolution of the voxel discretization. Due to the time criterion, approaches with a resolutions of more than were terminated before satisfying the optimization tolerance (see Fig. 4 and 6). Increasing the number of dynamic obstacles resulted in too many iteration steps (over 160000 at most compared to less than 45000 when increasing the amount of static obstacles, cf. Fig. 4) and thus decreasing the amount of tests the optimization tolerance was satisfied for, in time, as illustrated in Fig. 6. In rare cases, a similar outcome was observed if theamount of randomly placed unmodelled objects is increased.
A combination of both occurrances – the time loss in each iteration step and the requirement of too many iteration steps – has been observed for test runs utilizing a small number of cameras (considering three cameras it was literally impossible to compute a satisfactory result, see Fig. 8). In case of the tests on dynamic obstacles and too few cameras, the model of the unmodelled collective could not be produced optimally before the maximal computing time was up. We experienced similar results for all tests concerning restrictive domains: None of the tests reached the optimization tolerance (0.046 ) but all of them stayed below the value 0.25 . This could be a sign, e.g. that in our test setting six cameras on the ceilling cannot assimilate the unmodelled collective close enough by the model.
V-C Time consumption
When raising the amount of events, time steps, facets or objects of any of the collectives we have also recorded a linearly increasing time consumption for one iteration step. Out of these, the resolution of voxel discretization and the amount of dynamic objects appear to be the most critical ones. Using more cameras, however, resulted in a lower time loss in one iteration step in our range of camera amounts (for three cameras we required about 315 ms on average whereas for nine cameras ca. 170 ms were needed). Of course, this effect can only last until optimization tolerance is satisfied (i.e. the model assimilates the unmodelled collective as accurat as needed), and hence time consumption will slope up when using a greater amount of cameras.
Without giving a detailed explanation about the way one iteration step is calculated with our test setting’s camera network, we would like to state that extending the amount of facets, cameras and refining the voxel resolution enlarges time consumption of the intersection test. However, no intersection test except for those with refined voxel resolution has exceded on average. The test runs with voxel, six cameras and 24 facets have reached an average of . After intersecting areas the related voxels need to be combined to clusters, as to be able to check a free part’s height or volume (and to compare whether it could be human). This task took about twice up to four times as long as the intersection test, a fact which is mainly due to its direct dependence on the resolution, but also due to the misshaping of the model (as the clustering seems to depend indirectly on the amount of cameras). As the period of an iteration step is mostly filled with intersecting and clustering, Fig. 8 also shows the decreasing time consumption while using more cameras.
Measurements of the maximal virtual memory while altering the resulution resulted an ascending graph (beyond linear), cf. Fig. 9. The highest demand for virtual memory was measured while testing with the resolution (a total of 32868 kB). The graphs concerning the maximum demand for virtal memory versus facets and amount of cameras are only ascending slowly. Both show a linear slope of about 350 kB to 450 kB in our range of parameters.
Vi Conclusion and Future Prospects
We managed to build up a camera placement optimization algorithm that computes location and orientation of a given amount of cameras inside of a specified surveillance area. Only randomly placed dynamic obstacles, too few cameras or too restricted placements and a too refined voxel resolution are a critical for this method. Apart from that we have succeeded to minimize the error made by evaluating distances to the visual hull of a given object up to the optimization tolerance. In contrast to existing results, we are able to model a surrounding area with static and moving obstacles without limiting camera positions or orientations and still evaluate distances conservatively.
Still, as to assimilate the model and the unknonwn collective even better, higher resolutions are desired. This leads to the fact that some improvements of the algorithm still need to be implemented. Following alterations of the algorithm may lead to an improved time consumption: First of all, it is possible to parallelize the iterations of the solver as well as some intersection tests. But as the amount of iteration steps of the solver ranged in between about and , the first goal should be to decrease both the expected number of iteration steps as well as their variance. Placing the initial position of the cameras roughly around the surveillance area and leaving the fine tuning to the algorithm could do the trick.
Some consideration should also be paid to save many clustering and intersecting processes by leaving out unnecessary caculations. One of these calculations is the summing up addends (the number of appearances times number of time steps), which all have to be simulated. Time loss will be minimized if cancelling the evaluation of the sum when it trespasses the current optimal value. Also, appropriate data structures like Oct-Trees and BSP-Trees for intersection and inclusion tests have not been implemented, yet, which improve the time loss during the intersection test.