/
main.py
41 lines (32 loc) · 1.1 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from concurrent import futures
import grpc
from ..headposeservice import pose_service_pb2_grpc
from ..headposeservice.pose_service_pb2 import PoseResponse
from .process_frame import FrameProcessor
FRAME_WIDTH = 640
FRAME_HEIGHT = 480
class HeadPoseServicer(pose_service_pb2_grpc.HeadPoseApiServicer):
def __init__(self):
self.frame_processor = FrameProcessor(
frame_width=FRAME_WIDTH,
frame_height=FRAME_HEIGHT,
)
super().__init__()
def GetPose(self, frame, context):
result = self.frame_processor.process_frame(frame)
if result is None:
result = []
else:
result = result.flatten().tolist()
return PoseResponse(
frame_identifier=frame.frame_identifier,
pose=result,
)
def serve():
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
pose_service_pb2_grpc.add_HeadPoseApiServicer_to_server(
HeadPoseServicer(), server)
server.add_insecure_port('[::]:50051')
server.start()
print("started server")
server.wait_for_termination()