如何使用tensorflow.js人脸标志检测模型获取嘴唇或眼睛等人脸的特定标志



我正在尝试改变眼睛和嘴唇的形状和位置,为此我使用tenserflow.js人脸地标检测模型。我得到了所有468个面部标志,但问题是我不知道,也从来没有在互联网上找到任何解决方案,如何获得嘴唇和眼睛等唯一需要的标志的位置。我明白了所有的要点,但我想在嘴唇和眼睛上施加变化——我只在这些地标上施加变化。

的坐标在此处可用。

您可以参考网格图像示例,该示例也有点,但您需要放大并手动检查它们。

这些是您的用例所需的精确坐标。

lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291]
lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291]
lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308]
lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308]
rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173]
rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133]
rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190]
rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243]
rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189]
rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244]
rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245]
rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193]
rightEyebrowLower: [35, 124, 46, 53, 52, 65]
rightEyeIris: [473, 474, 475, 476, 477]
leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398]
leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362]
leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414]
leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463]
leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413]
leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464]
leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465]
leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417]
leftEyebrowLower: [265, 353, 276, 283, 282, 295]
leftEyeIris: [468, 469, 470, 471, 472]

使用cv2lib,我将库存图像的每个点分配给它的指定点,以便获得我可能需要的任何点的图形,这可能对其他人有帮助,所以将其发布在这里

faces = det.findFaceMesh(img)
for id in range(10,400):
(x,y) = face[id]
conv = str(id)
cv2.putText(img, (conv), (x,y), cv2.FONT_HERSHEY_PLAIN,1.25,(255,0,0))

上面的代码适用于任何想要更改范围的人。所有图形节点

最新更新