我是靠谱客的博主 畅快饼干,最近开发中收集的这篇文章主要介绍php 获取图片脸部坐标,如何获取dlib的脸部标志点检测程序中的点坐标位置?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

该程序检测脸部特征并用原始照片中的点和线表示地标。

我想知道是否有可能获得每个点的坐标位置。像(10,25)一样。 'a'表示嘴角。

稍微修改程序一次处理一张图片后,我尝试打印出dets和shape的值而没有成功。

>>>print(dets)

>>>print(dets[0])

[(1005, 563) (1129, 687)]

表示人脸标志点和参数数据类型的参数仍然未知。 这里是在2016年3月10日的简化代码

import dlib

from skimage import io

#shape_predictor_68_face_landmarks.dat is the train dataset in the same directory

predictor_path = "shape_predictor_68_face_landmarks.dat"

detector = dlib.get_frontal_face_detector()

predictor = dlib.shape_predictor(predictor_path)

win = dlib.image_window()

#FDT.jpg is the picture file to be processed in the same directory

img = io.imread("FDT.jpg")

win.set_image(img)

dets = detector(img)

print("Number of faces detected: {}".format(len(dets)))

for k, d in enumerate(dets):

print("Detection {}: Left: {} Top: {} Right: {} Bottom: {}".format(

k, d.left(), d.top(), d.right(), d.bottom()))

# Get the landmarks/parts for the face in box d.

shape = predictor(img, d)

#print(shape)

print("Part 0: {}, Part 1: {} ...".format(shape.part(0),

shape.part(1)))

# Draw the face landmarks on the screen.

win.add_overlay(shape)

win.add_overlay(dets)

dlib.hit_enter_to_continue()

---------------------------更新---- -----------------------

今天,我记得python中的help()方法,并试用了它。

>>>help(predictor)

Help on shape_predictor in module dlib.dlib object:

class shape_predictor(Boost.Python.instance)

| This object is a tool that takes in an image region containing

some object and outputs a set of point locations that define the pose

of the object. The classic example of this is human face pose

prediction, where you take an image of a human face as input and are

expected to identify the locations of important facial landmarks such

as the corners of the mouth and eyes, tip of the nose, and so forth.

在原始代码中,变量shape是预测方法的输出。

>>>help(shape)

形状的描述

class full_object_detection(Boost.Python.instance)

| This object represents the location of an object in an image along

with the positions of each of its constituent parts.

----------------------------------------------------------------------

| Data descriptors defined here:

|

| num_parts

| The number of parts of the object.

|

| rect

| The bounding box of the parts.

|

| ----------------------------------------------------------------------

似乎可变shape与点坐标位置相关。

>>>print(shape.num_parts)

68

>>>print(shape.rect)

[(1005, 563) (1129, 687)]

我假设有68个人脸标志点。

>>> print(shape.part(68))

Traceback (most recent call last):

File "", line 1, in

IndexError: Index out of range

>>> print(shape.part(65))

(1072, 645)

>>> print(shape.part(66))

(1065, 647)

>>> print(shape.part(67))

(1059, 646)

如果它是真的。剩下的问题是哪个部分响应哪个人脸标志点。

+0

您可以检测点并在图像上绘制其编号。或者你可以看看这里https://matthewearl.github.io/2015/07/28/switching-eds-with-python/ –

+0

哇,这是一个好主意。 –

+1

请点击这里,http://www.pyimagesearch.com/2017/04/03/facial-landmarks-dlib-opencv-python/ –

最后

以上就是畅快饼干为你收集整理的php 获取图片脸部坐标,如何获取dlib的脸部标志点检测程序中的点坐标位置?的全部内容,希望文章能够帮你解决php 获取图片脸部坐标,如何获取dlib的脸部标志点检测程序中的点坐标位置?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部