When projecting a 3D object onto the camera plane, we usually use the pinhole model. However, it only applies to a single point. When we consider a solid object, we need to consider the interaction between the object and the camera, especially when the object is close to the camera. In the following, we will use the view frustum to cull the object and project it onto the camera plane.
Object Projection
Use View Frustum to Cull the Object Box

Algorithm
Compute the frustum of the camera given camera parameters (intrinsic, region of perception, near and far field depth): the frustum is constructed from the intersection of six surfaces. Each surface is depicted by a point and a normal vector. Each normal vector points to the interested area of the camera;
Construct the object: an object is ideally modeled as a cuboid which comprises six convex polygons. The order of the vertices of each polygon follows the right-hand rule and points to the inner of the object;
Use the frustum to cut the object
Surface culls a convex polygon
Six surfaces cull a convex polygon
Six surfaces cull six convex polygons
A Surface Clips a Polygon
Please refer to [1] for more details.
Distorted Image

Since we use four corner vertices to compute the frustum, it is different from the actual frustum, which is curved. Objects culled by this boundary are usually outside the perception area. We should clip them into the perception area further.
Advantages
Can handle the case that an object is close to a camera. (the detection box is on the boundary of the camera). Also, it can get the correct bounding box when parts of the object has negative depths.
Usage and Limitations
The frustum is represented as the intersection of six surfaces, which is a pyramid in 3D space;
The frustum should be convex;
The image is undistorted;
Since using the surface to clip a convex polygon, we must assume each surface of the object is a convex polygon. (that is why objects are represented by small triangles?) Note that the object does not need to be convex. If a surface is non-convex, we can decompose the polygon into convext sub-polygons or use more advanced clipping algorithms.
Extensions and Improvements
We can further refine the shape of vehicles. For example:

Examples
In this example, we demonstrate results of the 3D object projected onto the camera by camera frustum culling.





References
[1] Joy, Kenneth I. “Clipping.” On-Line Computer Graphics Notes, Visualization and Graphics Research Group, Department of Computer Science, University of California, Davis.