Accurate wave velocity estimation is an important part to determine the quality and reliability of GPR survey results, such as positioning of underground utility and characterization of materials. An algorithm was proposed to estimate the velocity accurately by modeling the GPR signal travel path. Both the effects of factors of antenna separation and radius of cylindrical target were taken into account. This model helped to establish a nonlinear relationship among the parameters of horizontal displacement of antenna, GPR signal travel time, wave propagation velocity. Levenberg-Marquardt iteration method was used to solve the non-linear least square fitting. Validation experiments were conducted in lab environment. The reflection data of an Y25 steel bar in air at depth 0.2m, 0.3m, 0.4m and 0.5m were extracted to test the algorithm. Errors of the estimated velocities is around 2% to 3% which is quite small and acceptable in reality. It is believed that this algorithm is qualified for future accurate GPR positioning survey and condition survey.