Clarification in R-CNN
To explain about the BBox regression working which is as mentioned below.  
Like you mentioned it happens in multiple stages.

Selective Search:

Generate initial sub-segmentation, we generate many candidates or part regions.
Use greedy algorithm to recursively combine similar regions into larger ones.
Use the generated regions to produce the final candidate region proposals.  

CNN and BBox Regression:  
The regressor is a CNN with convolutional layers, and fully connected layers, but in the last fully connected layer, it does not apply sigmoid or softmax, which is what is typically used in classification, as the values correspond to probabilities. Instead, what this CNN outputs are four values (,,ℎ,), where (,) specify the values of the position of the left corner and (ℎ,) the height and width of the window. In order to train this NN, the loss function will penalize when the outputs of the NN are very different from the labelled (,,ℎ,) in the training set.
I am learning object detection using R-CNN...
I have the images and the annotation file which gives the bounding box for the object
I understand these steps in R-CNN,
Using selective search to get the proposed regions
Make all the region same size
Feed those images in CNN 
Save the feature maps and feed to SVM for classification

In training, I took all the objects (only the objects from images not the background) and feed to the CNN and then train the feature maps in SVM for classification.
In every blogs, all are saying in R-CNN, there are three parts, 
1st -selective search
2nd -CNN
3rd -BBox Regression
But, I don't get the deep explanation of the BBox Regression.
I understand the IOU(Intercept over Union) to check the BBox accuracy.
Could you please help me to learn how this BBox Regression is used to get the coordinates of the object.