20 self.
server_ip = socket.gethostbyname(socket.gethostname())
26 self.
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
29 socket.socket().setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
34 mp_face_mesh = mp.solutions.mediapipe.python.solutions.face_mesh
40 self.
cap = cv2.VideoCapture(0)
47 print(f
"[LISTENING] Server is listening on {self.server_ip}")
52 conn, addr = self.
server.accept()
55 thread = threading.Thread(target=self.
handle_client, args=(conn, addr))
61 print(
"[NEW CONNECTION] {addr} connected.")
68 ret, img = self.
cap.read()
77 point_cloud_dict = {
"x": pc_x,
"y": pc_y,
"z": pc_z }
80 pc_data = json.dumps(point_cloud_dict)
82 conn.send(bytes(pc_data, encoding=self.
format))
96 if results.multi_face_landmarks:
98 for face_landmarks
in results.multi_face_landmarks:
99 for lm
in face_landmarks.landmark:
100 pointcloud_x.append(lm.x)
101 pointcloud_y.append(lm.y)
102 pointcloud_z.append(lm.z)
104 return (pointcloud_x, pointcloud_y, pointcloud_z)
108face_mesh_server.start_server()
def get_pointcloud(self, img)
face_mesh
Face landmarking ##########################.
def handle_client(self, conn, addr)