From 139b3992d83eeecced0e3ef3e53096b1a6dd6c24 Mon Sep 17 00:00:00 2001 From: Laurent Date: Wed, 31 Dec 2025 14:39:20 +0100 Subject: [PATCH] Finally --- rpi/main.py | 5 ++--- rpi/services/detection_service.py | 8 +++++--- rpi/services/game_service.py | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/rpi/main.py b/rpi/main.py index 2ae12ef0..4583133f 100644 --- a/rpi/main.py +++ b/rpi/main.py @@ -65,13 +65,12 @@ def start_party(): def make_move(): try: frame, fen = game_service.make_move() - encoded_frame = cv2.imencode('.jpg', frame, [int(cv2.IMWRITE_JPEG_QUALITY), 80])[1].tobytes() print(fen) - headers = {'Content-Type': 'image/jpeg'} + body = {'frame': frame, 'fen': fen} response = requests.post( "https://192.168.15.125:1880/party/image", - data=encoded_frame, + data=body, headers=headers, verify=False) print(response.status_code) diff --git a/rpi/services/detection_service.py b/rpi/services/detection_service.py index 7c1829a8..73fa1a5c 100644 --- a/rpi/services/detection_service.py +++ b/rpi/services/detection_service.py @@ -40,8 +40,10 @@ class DetectionService: def stop(self): self.camera.close() - def analyze_single_frame(self) -> tuple[np.ndarray, str | None]: + def analyze_single_frame(self) -> tuple[bytes, str | None]: frame = self.camera.take_photo() + encoded_frame = cv2.imencode('.jpg', frame, [int(cv2.IMWRITE_JPEG_QUALITY), 80])[1].tobytes() + result = self.__run_complete_detection(frame) edges_prediction = result["edges"] @@ -49,7 +51,7 @@ class DetectionService: processed_frame = self.board_manager.process_frame(edges_prediction[0], frame, self.scale_size) if processed_frame is None: - return frame, None + return encoded_frame, None warped_corners, matrix = processed_frame @@ -57,7 +59,7 @@ class DetectionService: board = self.pieces_manager.pieces_to_board(detections, warped_corners, matrix, self.scale_size) - return pieces_prediction[0].plot(), self.pieces_manager.board_to_fen(board) + return encoded_frame, self.pieces_manager.board_to_fen(board) def __run_complete_detection(self, frame : np.ndarray, display=False) -> dict[str, list[Results]] : pieces_prediction = self.__run_pieces_detection(frame) diff --git a/rpi/services/game_service.py b/rpi/services/game_service.py index 7848c8af..524cf9ce 100644 --- a/rpi/services/game_service.py +++ b/rpi/services/game_service.py @@ -23,5 +23,5 @@ class GameService: self.clock_service.stop() self.detection_service.stop() - def make_move(self) -> tuple[np.ndarray, str]: + def make_move(self) -> tuple[bytes, str]: return self.detection_service.analyze_single_frame() \ No newline at end of file