Optimal Camera Placement To Visualize Surrounding View From Heavy Machinery

Computer vision-based advanced driver assistance systems (ADAS) increase safety of operations involving heavy machinery. ADAS systems using multiple cameras can be used for surround-view visualization of complex vehicles with blind spots. Such systems are also useful for autonomous vehicles. Multiple camera systems used to capture surrounding view of heavy machinery require complex design due to the complexity in size and shape of the vehicles. In this paper, we present a novel method for determining the optimal camera pose i.e. placement and orientation in three-dimensional space, given the shape of the vehicle, in order to maximize surrounding area coverage. The first method determines camera poses using a fixed pre-determined number of cameras, while the second method determines both camera poses and the number of cameras. The problem is modelled and solved using three different deterministic optimization algorithms: 1) single objective binary integer programming approach; 2) single objective greedy algorithm; and 3) bi-objective binary integer programming approach. The methods are validated using a set of realistic 3-D vehicle models. Experimental validation has been conducted to compare the proposed methods with respect to coverage quality and computation time metrics. The experimental results have demonstrated that the proposed methods provide accurate solutions to the camera pose and the number of camera optimization.


INTRODUCTION
Increasing research interest in autonomous vehicles has led to the rise of surround view camera system solutions to display Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from permissions@acm.org. APIT 2020, January [17][18][19]2020 surrounding area of a vehicle to the driver with an aim to aid the driver while maneuvering and parking the vehicle. Several leading manufacturers have already launched products providing surround view of commercial vehicles, [3,9,23]. Consequently, research over the last few years focused on improving these vehicle surround vision systems starting from the camera system calibration stage, [18,20,35], to image/video processing, [18,19,44,45], until the final displaying stage, [10,17,22]. Taking advantage of the large amounts of information generated by these surround vision systems, research has also covered applications such as parking lot detection, [16], and, pedestrian detection, [14]. Methods were further developed for 3D surround view systems, [11], with depth perception coming from stereo vision, [8], or, through the use of multi-modal sensing, [39]. The most interesting point to note here would be that all of the above mentioned methods are specific to small vehicles (cars). Recent research highlights the problems associated with the so called blind spots present on heavy machinery or construction equipment and the risk they pose to workers working nearby the equipment, [6,37]. Such concerns show that surround view systems are required also for heavy machinery. However, designing a multi-camera system for vehicles with such complex shapes and structures is not as straightforward as for the case of cars ( Figure 1). The motivation for the work presented in this article lies on the fact that multi-camera systems, to achieve surround vision for heavy machinery, can be designed in a smart and cost efficient way by optimizing the number and locations of the cameras that are to be placed on the vehicle.

Related Work
The Optimal Camera Placement (OCP) problem has been thoroughly studied over the past decade, particularly for surveillance applications, [24,26]. Apart from surveillance, OCP problem has found interest in various applications such as, wireless sensor network deployment, [4,46], industrial monitoring, [47], motion capture systems, [38], human behaviour analysis, [28], agriculture, [12], and even online gaming, [2], to name a few. Some literature [41] classifies the OCP problem into categories such as target-based, area-based and probing-based coverage models. The mention of OCP problem, here, refers to both area and target coverage models as a single category. Target coverage model can be considered as a subset or special case of the area coverage model because, although, both approach the problem with an objective to maximize coverage of a specific target or area, former might have additional constraints limiting the number of cameras or the total cost of the multi-camera system. The OCP problem is almost always related with the Art Gallery Problem (AGP), [5]. Nevertheless, they also highlight the limitations in field of view of a camera as compared to that of security guards in the AGP. The first significant contribution towards exactly solving the OCP problem can be attributed to Erdem and Sclaroff, [7], and, Hörster and Lienhart, [21]. Hörster and Lienhart formulate the problem in a 2D grid using binary decision variables representing possible camera poses and target points that are to be covered. Their problem formulation results in selecting the best combination through an exhaustive search from a sufficiently large set. They defined multiple problem statements to minimize the cost of the multi-camera system or to maximize coverage of target points. Their approach of using a linear model based on Binary Integer Programming (BIP) formed the basis of many other approaches that were later presented, [24]. In [15], Gupta et al. solved the OCP problem using a multi-objective genetic algorithm. They use a BIP formulation to maximize multi-sensor system coverage based on different qualitative aspects. They mention the use of a search heuristic due to the computational complexity of looking for an exact solution. However, their method is limited to 2D. Citing the "blind-area" issue caused by 2D modelling of the OCP problem, Zhang et al. presented an extension to the BIP formulation into 3D, [46]. They model the surveillance scene into small regions and categorize them based on essentiality. Such modelling does not apply to the case of surround vision where the surrounding area of a vehicle is to be covered uniformly. Additionally, introduction of "balance scheme", along with essential region and wireless connectivity constraints, further complicate the model. Becker et al. proposed a voting scheme based algorithm for automatic sensor placement in a 3D volume, [4], but, this method is limited to optimization of only one sensor and does not apply to a multi-camera system. Kritter et al., [25], explored the accuracy and applicability of deterministic approaches to solve the OCP problem and compare it with heuristic methods. They tested the methods on models of European cities for target surveillance and highlight real-world applicability of the OCP problem. Rebai et al., [41], studied the applicability of bi-objective formulation by proposing three different exact optimization models. Ahn et al., [1], proposed a two-phase algorithm to reduce the complexity of the problem. They divide the problem into low and high resolution phases, resulting in many sub-problems that are then optimized using a heuristic. The high computational complexity requirements of the exact BIP-based OCP problem resulted in the development of approximation algorithms that guarantee feasibility, but not, optimality, [48]. There are also some methods, [43,47], that deviate from the usual 2D/3D grid based modelling by using continuous modelling for problem formulation. To the best of our knowledge, no methods or results are known for multi-camera system deployment problem to achieve surround view for vehicles. This contribution is the first to consider such a problem. The OCP problem for surround vision differs from surveillance scenarios in the way the problem is modelled. Surveillance scenarios enforce certain restrictions on placement and orientation of cameras (such as height, viewing direction, target coverage, etc.), while, in the case of surround view, non-planar structure of the vehicles results in poses across 6 Degrees Of Freedom (DOF).

Binary Integer Programming
Our proposed problem formulation builds over the BIP method as mentioned in [21]. Our method is applied to 3D space, while, Hörster and Lienhart's problem is applied in 2D space. This implies that the constraints that apply to the optimization problem need to be extended to 3D space. Modelling the problem space by dividing it into a 3D grid of samples results in a set of binary variables. Since, the optimization method works on the set of binary variables, the resulting problem model remains similar for both 2D and 3D cases. However, binary variables in 3D space comprise of a larger set of discrete samples representing complex geometry, when compared to the case of 2D space. Constraints have to be enforced in additional dimensions, and, coupled with 3D space modelling, the problem, on the whole, is bigger in terms of computational complexity. Owing to these similarities and differences, the problem description of single objective BIP formulation has been omitted from this document, but, modelling the space in 3D is elaborated. We also tested the Greedy algorithm as mentioned in [21] on our problem of surround view for heavy duty vehicles, while, extending it to the 3D case. As discrete problem formulation results only in a larger set of binary variables, the algorithm remains similar, and thus, has been omitted from this document. However, to adopt the method for our problem, the definition of rank has been slightly modified.

Contributions
Our interest in real-scenario applications will be communicated by, first, describing any realistic 3D model of an industrial heavy machine in a discrete volume (voxel grid) and extracting data points from the 3D model. We use binary decision variables to model possible camera locations and background points that need to be covered, and, formulate the problem using BIP based model. Two approaches are proposed; 1) single objective to maximize coverage, and; 2) bi-objective to minimize the number of required cameras and maximize coverage in a lexicographic fashion, [42]. The objectives are solved using exact deterministic optimization algorithms, while, the single objective problem is also solved using a greedy algorithm. A simulation tool to collect data and to visualize the results has also been developed. Our contribution differs from the approach presented in [21] w.r.t. the dimensions of the modelled area. It differs from [46] in the way the problem is modelled and formulated, and also, in the targeted application area. Lastly, it differs from [24] in the way the bi-objective problem formulation is approached.

Paper Organization
The rest of the document will guide the reader, firstly, through the formulation of the problem in section 2. Section 3 describes the three proposed methods in detail, while, experiments, evaluation and discussion are presented in section 4. The document concludes in section 5.

PROBLEM FORMULATION
The problem set or space comprises of a voxel grid. The distance between two adjacent points comprises an edge of each voxel and is of unit length. For the sake of simplicity, the corners of all the voxels are considered as 3D points for modelling the problem without any repetitive entries. These 3D points are then represented as binary decision variables to formulate the OCP problem. The following sub-sections will explain in detail, how problem space and the camera's Field-Of-View are defined.

Problem Statement
The OCP problem can be formulated in many ways, for e.g., maximizing coverage, minimizing multi-camera system cost, minimizing number of cameras of a given type to achieve sufficient coverage, etc.. The following two problems are studied: • Problem 1: Given the number of cameras, optimize their position and pose such that maximum coverage is achieved. • Problem 2: Minimize the number of required cameras such that minimal defined coverage is achieved and optimize the positions and pose of these number of cameras so that coverage is maximized.

Modelling Camera's Field Of View
The camera's Field Of View (FOV) is defined in a simple way using a pyramidal structure. The camera position in 3D, p(x, y, z), defines the origin or the top of the pyramid. A unit vector passing from camera's origin through the center of the pyramid's base,θ (x, y, z), defines the orientation or camera's look-at direction. Additionally, horizontal and vertical FOV angles, α h , α v , define the length and breadth of the pyramidal FOV. Lastly, the height of the pyramid, z f defines the far depth limit of the FOV for achieving minimal resolution. Together, these parameters form the five planes that describe the pyramid ( Figure 2). Readers can refer to [29] for details on camera coverage modelling. Unlike in surveillance scenarios, modelling a camera for the case of surround vision of vehicles requires 6DOF. This is because, in surveillance scenarios, the cameras are usually placed on walls limiting the primary orientation to only two axes (for e.g., if we consider the height of the wall along y-axis, then, one can be sure that the camera will be facing along the x − z plane). However, in the case of a vehicle the primary orientation could be along the x − z, or, y − z, or, x − y planes. Hence, in such situations an additional vector,φ(x, y, z), describing the camera's up vector, is required to prevent rotating the camera about a third axis, i.e., camera's look-at direction.

Figure 2. Camera's Field Of View.
Visibility analysis of the background points (i.e. to check whether a background point lies within the camera's FOV; details in section 2.4.4) is done by checking the point against the five p lanes that describe the camera. The 5 planes can be described with five points on the pyramid (camera origin and the four corners of the base of the FOV pyramid). As we already know the camera origin, the remaining four points can be calculated using linear geometry.

Modelling Space
The problem is modelled using a 3D grid of points. 3D models are, usually, represented as triangular meshes, [30], and saved in convenient formats in wavefront object files. Modelling space in a voxel grid has it's advantages over polygonal representation, [13]. Voxel representation enables a straightforward use of standard image processing algorithms. Firstly, a 3D model, openly available online in wavefront object files can be displayed in a voxel grid representation using any existing method that can convert a polygonal mesh into a voxel grid representation. For this purpose, we use an openly available tool developed by Patrick, [32,36]. This object is then placed at the center of the voxel environment (problem space) (see Figure 3(a)). Because, the aim of this work is to place cameras on the vehicle to obtain a 360 • view, we collect all the voxels that represent object boundary and model them as binary decision variables. The boundary voxels represent a set J ∈ R 3 , comprised of 3D points, j(x, y, z), where, x, y, z ∈ Z. Each 3D point j further contains a set Φ ∈ R 3 , representing possible orientations, ϕ(xˆ, yˆ, zˆ), where, xˆ, yˆ, zˆ ∈ R, the camera at location j can assume. The binary variables representing possible camera positions and poses can be defined as, Next step is to define a set B ∈ R 3 consisting of 3D points i(x, y, z), where, x, y, z ∈ Z, to represent a set of points, surrounding the vehicle, that are to be covered by the multi-camera system. These background points can be modelled using binary variables as, Having defined these binary variables we can now look into some data pre-processing requirements.

Data Pre-Processing
There are certain pre-processing steps that need to be taken to collect sets of points [42], x j,ϕ and c i , in a meaningful way. This sub-section will briefly explain some methods to collect and represent data before it can be passed to the optimization environment.

Boundary Voxels.
As, each voxel corner is represented either by '1' or '0' stating whether the point is occupied or not, simple binary-morphological operations can be applied to the volume by considering the 8-neighbourhood of each point. We perform a pre-processing step of morphological dilation on the object to collect boundary voxels. Although, there exist efficient data structures to store voxel data that enable easy access to object boundaries, [31], implementing such data structures is out of the scope of this work. The idea behind morphological dilation is simple. Let us assume a set, O 1 ∈ Z, containing all the voxels that define the object. The dilation operation will grow the object boundary by certain units of length depending on the size of the mask used (we use a 3 × 3 × 3 grid as a mask for each of x, y, z dimensions), resulting in a new super-set of O 1 , O 2 ∈ Z. Now, a simple subtraction operation, O 2 − O 1 , will represent the set, J , of boundary voxels.

Camera orientations.
The primary orientation, ϕ of the camera at each position j is represented by the normal, n(x,ŷ,ẑ) of the uncovered face of the voxel at j. Since, each boundary voxel is, ideally, surrounded on five faces by adjacent voxels, the normal of the sixth face, facing outwards the object, is used to represent the primary orientation of the camera. The normals of all boundary voxels can be calculated using the marching cubes algorithm, [27,33].
Camera modelling for the case of surround view has an added Degree Of Freedom. This implies that the camera's look-at direction is not limited to two planes (x − z or y − z, for e.g.). As we do not want to rotate the camera about its primary axis (camera's look-at direction), selection of two planes between the three available planes for rotating the camera, differentiates the problem formulation from the case of surveillance scenarios. We select the axis with highest magnitude in the unit normal vector, n, as the primary axis of the orientation ϕ. The camera is then rotated about the other two axes at discrete steps of angles of rotation such that, the camera's FOV can cover 180 • in both directions for all the orientations combined. As, the generated boundary voxel normals lie in the global plane, rotations about an axis are relatively simple to perform. Equation 3 describes the rotation matrices for rotations about the x, y, z axes. The unit normal vector n at each camera position j is multiplied by any two of these three matrices to obtain the possible orientations set, Φ, for that location j.

Background Points.
Following the standards defined by Ray et al., [40], we collect empty voxels lying within a spherical cap of 12m radius from the center of the object. However, since we do not consider any points lying below the ground plane, and, points lying above the height of the object, the spatial arrangement of backдroundpoints represents a hollow spherical segment or frustum (Figure 3(b)).

Visibility analysis.
A database of background points that are visible by a camera placed at position j with an orientation ϕ is required for formulation of optimization problem. It is constructed as a visibility matrix for the combined set J, Φ, B, with each entry in the matrix representing a binary variable, д j,ϕ,i . It is defined as follows, 1 if background point i is covered by a camera placed at position j with orientation ϕ 0 otherwise (4) Constructing visibility matrix is computationally expensive, as, it involves a large number of geometrical calculations. It requires comparing the distance of each background point with each of the five planes that form the camera's FOV for all the possible camera pose combinations. This step is implemented on the GPU to achieve significant improvement in calculation time. However, details of this OpenCL, [34], implementation are omitted from this document due to space constraints.

METHODOLOGY
We propose different methods to solve the OCP problem for surround vision. The selection of objective function and optimization is, primarily, based on the BIP model proposed in [21]. We adopt their objective function and constraints, while, applying them on 3D space instead of a 2D plane. The problem is explained along with the optimization algorithms, for the sake of completeness. We explore optimization of a single objective function, as well as, a bi-objective problem formulation. Optimization of single objective problem is studied using both, an exact algorithm, and, a search heuristic. While, the bi-objective problem is optimized using an exact algorithm. Although, Rebai et al., [41], proposed multiple bi-objective optimization problems for surveillance scenarios, our problem is solved in a lexicographic fashion.

Single Objective Approach
First, we need to recall the binary decision variables defined in equations 1, 2 and 4. As our objective is to maximize coverage for a given number of cameras, the objective can be defined as maximization of sum of all background points, Points in 3D space are represented using binary decision variables and enforced constraints largely remain the same as proposed in [21]. However, we noticed during experimental analysis that equations 6,7 and 8 enforce stricter constraints than the ones proposed in [21]. They result in reducing the overall computation time for solving the model. The rest of the constraints are omitted from this document to avoid repetition. v ϕ,j,i ≤ x j,ϕ As, the maximization procedure has no bounds on the number of cameras to be placed, it might end up placing cameras at all the possible locations to cover all the available background points. Thus, this approach of using a single objective function to maximize surrounding area coverage requires a pre-defined number of cameras that are to be placed on the vehicle that is provided by the user.

Single Objective Heuristic Approach
The greedy algorithm was implemented in this context, in the same way it is described in [21]. However, we enforce different stopping criteria. Since, the objective is to maximize coverage given a number of cameras, the algorithm will be stopped when all N cameras are placed. The greedy algorithm is a constructive heuristic. But, as it is a deterministic algorithm, it has been included in this work. The visibility matrix is required also for greedy algorithm. Once we have the visibility matrix, we need to compute the rank for each possible camera location and pose combination. The rank of a camera placed at position, j, with an orientation, ϕ, is nothing but the number of background points covered by it. So, if we define a set c cov consisting of all the background points that are covered by a camera, x j,ϕ , then the rank, r , can be given as, The greedy algorithm, at each iteration, selects the camera position-pose combination, x j,ϕ , with the highest rank. This procedure is repeated sequentially for each camera until the required number of, N , cameras are placed.

Bi-objective Approach
A bi-objective optimization approach is proposed in this section. The idea behind the bi-objective formulation is that, user interference to specify a number of required cameras is not required. The problem will consist of the following two objective functions, The first objective is to minimize the sum of all the binary variables representing possible camera poses. While, the second objective is to maximize coverage as in the case of single-objective formulation. Constraints used for the single objective formulation are re-used for the bi-objective problem formulation together with new constraints to be able to solve both objective functions simultaneously. The following equations will be discussed under this section for the sake of completeness in explaining this novel approach. Visibility of a background point by a camera placed at each possible camera position for each given camera orientation can be verified using the binary variable д ϕ,j,i in the form of the following constraint, Constraint in equation 12 ensures that at most one camera orientation is selected for a selected camera position j.
The minimization procedure in the first objective has no lower bound, hence, if additional constraints are not enforced, it might end up placing no camera at all. Therefore, a new constraint has to be added to set a lower bound on the required number of cameras to be placed. We can define a constraint based on the minimal required percentage of coverage as follows, Where, p is the minimal required points that need to be covered, and, it can be expressed as a fraction of the total number of background points that need to be covered (a required coverage of 95% would translate as p = 0.95 · I , where, I , is the total number of background points). Objective functions in 10 together with constraints 11, 12, 13, 6, 7 and 8 complete the bi-objective formulation for the general case of camera pose optimization for heavy machinery surround view.
The two objective functions are solved in a lexicographic fashion, [42]. That means that the two objective functions are solved sequentially based on a priority assigned to each of the objective functions. We approach the problem by first optimizing the number of required cameras, followed by, optimizing the coverage. the two objectives are solved in the same environment which means that all the constraints apply for both the problems, and, the solution from the minimizing problem can be used as a starting point for maximization problem. One advantage of approaching the problem in a lexicographic fashion is that no additional parameter is required to have a trade-off between the two objective functions. This method guarantees that both the objectives are optimally solved.

EXPERIMENTAL ANALYSIS
Experiments were conducted on a simulation tool that was developed using Qt creator and c++ programming language. The exact algorithms were run on a cluster of CPUs together amounting to 24 cores and 125GB of RAM.
To run tests on realistic scenarios, a 3D model of the desired industrial vehicle is fit into a 32 × 32 × 32 voxel grid. The dimensions of a real vehicle of that type are then mapped to voxel grid by comparing with the largest of three dimensions occupied in the cubic voxel grid. This procedure roughly describes the length of one voxel in metric units. The camera parameters are also defined in number of voxels based on this mapping. This voxelized object is then placed at the center of a 100 × 35 × 100 empty voxel grid with only the object representing occupied voxels. The camera parameters α v , α h and z f are considered equal to 77 0 , 77 0 and 40 voxels, respectively, for all cases. Camera at each possible position is rotated horizontally and vertically at steps of ±25.75 0 such that these 9 orientations together cover a hemisphere, facing outwards. One of the major drawbacks of not using search heuristics lies in memory requirements. To be able to solve the problem using reasonable amount of RAM, about 1% of the collected background points and 5% of existing boundary voxels are randomly selected during optimization. No other conditions are placed on environment modelling to maintain generality of the problem.
The three proposed methods were tested on 3D models of multiple heavy machinery that are primarily used at construction sites. The algorithms were tested under criteria guaranteeing optimal solution, as well as, with a trade-off between optimality and feasibility. To ensure a feasible solution within reasonable computational times, a gap of 5% from the best bound integer was allowed in the solutions, for some tests. The methods were tested on simulated models of heavy machinery, namely, bulldozer, excavator, lift truck, mining truck and wheel tractor scraper. These particular machinery were selected based on their size and shape complexity.

Results & Discussion
Random selection of Background points and boundary voxels results in different number of variables for different tests for the same model. This results in a different value of the objective for each optimization. Hence, to maintain uniformity, the coverage value is expressed in terms of percentages of the total area covered rather than the exact objective value. However, some tests were performed with a pseudo-random selection of the decision variables resulting in the selection of the same set of background points and boundary voxels for subsequent tests, so that, the three methods can be compared against each other for a given 3D model of the heavy machine. Table 1 shows the percentage of coverage achieved by the single objective optimization for the considered simulations of heavy machinery. The second column mentions computation time in seconds amounting for the complete process of root node relaxation and the branch and cut process. The single objective problems were optimized for all the considered models for a fixed number of cameras. The required number of cameras was set to five for all cases for both BIP based approach, as well as, for the greedy approach. The percentage of coverage matches with that in Table 3 only for the case of bulldozer and tractor scraper models (Table 1). Although, the methods are deterministic, the minor mismatch in resulting coverage between the two cases of single and bi-objective formulations can be attributed to the random selection of boundary voxels. There is significant increase in computation time for lift crane model for the case of single objective problem (Tables 1 and 3). Theoretically, bi-objective problem should require more computation time as it optimizes two objective functions simultaneously. Since, the optimal number of cameras for achieving at least 95% coverage for the case of lift crane is six, it took longer to achieve maximum coverage when optimized with only five cameras.  Table 2 shows the percentage of coverage achieved by the single objective optimization using greedy heuristic for 3D models of different heavy machinery. Greedy method could provide a solution in insignificant time when compared to the other methods. Greedy method has two major time consuming steps; 1) calculation of visibility matrix at each iteration; 2) sorting of the rank matrix. Speed up achieved by the Greedy method can be attributed to GPU acceleration implemented for calculating the visibility matrix. Thus, resulting computational complexity depends on sorting the rank matrix, which is trivial for the considered number of variables. However, Greedy algorithm places the cameras one at a time by picking the best available location and orientation combination at each iteration without looking at the combinations of given number of cameras. Hence, Greedy method provides sub-optimal solutions when compared with the exact methods. Table 3 shows the results for the bi-objective model. These results represent feasible solutions that have a gap of about 6% from the best possible integer value. Lift crane and tractor scraper have comparatively smaller sizes, resulting in fewer boundary voxels. Similarly, mining truck has much larger surface area with a complex body structure resulting in a very high number of boundary voxels. The bi-objective problem for the case of mining truck could not be solved as the computer ran out of memory due to high number of boundary voxels. Therefore, it can be stated that BIP based optimization is affected by the number of considered variables. The single objective BIP based problem and the bi-objective problem were solved with an emphasis on optimality for the bulldozer model. No gap was allowed for these tests, thus, resulting in an optimal solution for the given environment. The results are shown in Table 4. It is evident from the results that emphasis on optimality introduces large overhead on required computational time. Hence, it can be argued that significant trade-off between solution quality and computational time can be achieved by stopping the optimization process as soon as a feasible solution within the permissible gap is obtained.
Multiple tests were executed to check if random selection has any effect on the quality of the resulting solution. Five tests with different subsets of randomly selected variables were executed for the bi-objective problem on the bulldozer and excavator models. Table 5 shows these results with the last column mentioning the best coverage value obtained in the five tests. It was observed in these tests that there is not any significant standard deviation in the coverage values.

CONCLUSION
Optimal Camera Placement has been, for the first time, implemented in the context of heavy machinery. Multiple cameras were successfully placed on the heavy machines to achieve surround view vision, while, minimizing the required number of cameras. Three novel methods were studied for optimally placing cameras on five different heavy industrial vehicle (heavy machinery) models. A complete solution including problem modelling and optimization stages, has been proposed. The three proposed approaches were compared on the basis of surrounding area coverage quality and computational time, while, specifying trade-offs between optimality and feasibility. A visualization tool has also been developed to collect data and to visualize optimized solutions.

Future Work
The motivation for this work lies in the fact that large blind spots exist for such heavy machinery that can be a threat to human life in vicinity of the machinery. Some weight can be given to the background points lying in these blind spot regions so as to effectively cover those particular points to minimize the risk associated with it. Set-cover based optimization algorithms could also be tested for the case of surround view visualization for heavy machinery.