[ABCNet entrena su propio modelo (1)]
[ABCNet entrena su propio modelo (2)]
[ABCNet entrena su propio modelo (3)]
Aplanamiento de la curva de Bézier
La curva Bezier finalmente obtiene la imagen que queremos a través del método de interpolación, que se introdujo en el artículo anterior; aquí solo presentamos el método de muestreo: esta función implementa el muestreo Bezier, y la comprensión del aplanamiento puede referirse a la nivelación del anillo,
excepto que aquí no se utilizan puntos continuos para la interpolación, sino que los resultados del muestreo se envían directamente al algoritmo de interpolación;
def _bezier_to_poly(self, bezier):
# bezier to polygon, 20表示一条直线上采样点的个数,这个可以根据实际需求去设置,
#直接影响是数值越大,代表你生成的拉平后图像分辨率越高,数值越小生成的图像分辨率会越小
# 如果使用小分辨率的图像去插值变大,这个学图像的大家都知道会怎样,就不详细说了。
u = np.linspace(0, 1, 20)
bezier = bezier.reshape(2, 4, 2).transpose(0, 2, 1).reshape(4, 4)
points = np.outer((1 - u) ** 3, bezier[:, 0]) \
+ np.outer(3 * u * ((1 - u) ** 2), bezier[:, 1]) \
+ np.outer(3 * (u ** 2) * (1 - u), bezier[:, 2]) \
+ np.outer(u ** 3, bezier[:, 3])
points = np.concatenate((points[:, :2], points[:, 2:]), axis=0)
return points