[Raspberry Pi] 라즈베리파이에서 YOLO11 Pose 써보기

2025. 1. 22. 16:21·Computer Vision1/Project
모바일 어플리케이션 서비스를 준비하는데 USB 카메라를 통해 라즈베리파이에서 자체 연산을 통해 자세 추정을 할 수 있는지 사용해 보았다.

 

이 포스팅은 이전글에서 원격 접속 세팅과 OpenCV를 설치한 라즈베리파이 환경과 세팅한 가상환경에서 실시한다.

2025.01.21 - [CV/프로젝트] - [Raspberry Pi] 원격 접속 세팅과 실시간 USB CAM 사용

 

[Raspberry Pi] 원격 접속 세팅과 실시간 USB CAM 사용

모바일 어플리케이션 서비스를 준비하는데 카메라와 간단한 연산은 라즈베리파이를 이용해서 서버로 보내볼 생각이라 Putty를 통한 접속과 USB 캠을 사용하여 보았다. 라즈베리파이  window 64 OS

c0mputermaster.tistory.com

 

우선 다음 ultralytics 페이지에서 미리 학습된 모델을 가져왔다.

 

https://docs.ultralytics.com/ko/tasks/pose/#models

 

포즈

포즈 추정 작업에 YOLO11 을 사용하는 방법을 알아보세요. 모델 훈련, 유효성 검사, 예측 및 다양한 형식의 내보내기에 대해 알아보세요.

docs.ultralytics.com

 

 

크기별로 사용할 수 있는데 중간 m모델을 우선 사용하여보았다.

Ultralytics 설치

라즈베리파이에서 yolo 모델을 사용하기 위해 라즈베리 파이에 Ultralytics 모델을 인스톨해준다.

 

pip install ultralytics

 

YOLO Pose를 통해 자제 추정

from ultralytics import YOLO
import cv2

model = YOLO("yolo11m-pose.pt") 

cap = cv2.VideoCapture(0) 

cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 640)

while True:
    ret, frame = cap.read()
    if not ret:
        break 
    
    results = model(frame)
    
    annotated_frame = results[0].plot()  # 예측 결과가 그려진 프레임 얻기

    cv2.imshow("YOLO Pose Estimation", annotated_frame)

    # 'q' 키를 누르면 종료
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

 

 

자세를 잘 추정하여 가져오나 한 프레임당 거의 8초의 추론시간이 걸려서 GPU가 없는 라즈베리파이에서 실시간 탐지으로 사용하긴 어려워 보였다.

 

하여 해상도를 640x640에서 320x320으로 낮추어 진행하여 보았다.

from ultralytics import YOLO
import cv2

model = YOLO("yolo11m-pose.pt") 

cap = cv2.VideoCapture(0) 

cap.set(cv2.CAP_PROP_FRAME_WIDTH, 320)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 320)

while True:
    ret, frame = cap.read()
    if not ret:
        break 
    
    results = model(frame)
    
    annotated_frame = results[0].plot()  # 예측 결과가 그려진 프레임 얻기

    cv2.imshow("YOLO Pose Estimation", annotated_frame)

    # 'q' 키를 누르면 종료
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

 

 

추론 시간이 7초로 조금 빨라진 모습이다.

 

YOLO Pose n 모델을 통해 자제 추정

 

이번에는 비교적 작은 모델인 나노 모델을 사용하여 보았다.

from ultralytics import YOLO
import cv2

model = YOLO("yolo11n-pose.pt") 

cap = cv2.VideoCapture(0) 

cap.set(cv2.CAP_PROP_FRAME_WIDTH, 320)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 320)

while True:
    ret, frame = cap.read()
    if not ret:
        break 
    
    results = model(frame)
    
    annotated_frame = results[0].plot()  # 예측 결과가 그려진 프레임 얻기

    cv2.imshow("YOLO Pose Estimation", annotated_frame)

    # 'q' 키를 누르면 종료
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

 

 

 

추론 시간이 한 프레임당 1초까지 줄어들었다. 

카메라에 프레임을 1초에 1장으로 줄여서 실험해보았다.

from ultralytics import YOLO
import cv2
import time

model = YOLO("yolo11n-pose.pt") 

cap = cv2.VideoCapture(0)

cap.set(cv2.CAP_PROP_FRAME_WIDTH, 320)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 320)

last_time = time.time()

while True:
    ret, frame = cap.read()
    if not ret:
        break
    
    current_time = time.time()
    if current_time - last_time >= 1:
        last_time = current_time
        
        results = model(frame)
        annotated_frame = results[0].plot()
        
        cv2.imshow("YOLO Pose Estimation", annotated_frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

 

 

잘 동작하나 그래도 처리 속도가 1000ms 를 넘어갈 떄 전처리 속도와 후처리 속도가 더해져 이미지 처리가 점점 밀리는 모습이 보였다.

 

이렇게 해서 라즈베리파이에서 yolo 모델을 설치하고 USB 카메라를 통해서 실시간 영상을 출력해 보았는데 라즈베리파이 자체로 실시간 탐지를 하기는 어려워 보였다.

'Computer Vision > Project' 카테고리의 다른 글

[Project] Classification Model 구현해보기 (ResNet)  (0) 2025.08.12
[Project] Spring Boot와 Flask를 이용해 모바일용 서버 구축  (0) 2025.02.01
[Raspberry Pi] 원격 접속 세팅과 실시간 USB CAM 사용  (7) 2025.01.21
[Pose Estimation] YOLO11 Pose를 이용한 간단한 애니매이션 만들기  (6) 2025.01.06
[Pose Estimation] OpenPose 써보기  (4) 2025.01.03
'Computer Vision1/Project' 카테고리의 다른 글
  • [Project] Classification Model 구현해보기 (ResNet)
  • [Project] Spring Boot와 Flask를 이용해 모바일용 서버 구축
  • [Raspberry Pi] 원격 접속 세팅과 실시간 USB CAM 사용
  • [Pose Estimation] YOLO11 Pose를 이용한 간단한 애니매이션 만들기
임승택
임승택
"Hello, I am Lim Seungtaek, a computer engineering student. Nice to meet you!"
  • Lim's Technology
    임승택
    임승택
    "Welcome to Lim's Technology!"
  • 누적 조회수
    총 회
    구독하기
    • 분류 전체보기 (103)
      • Blog (10)
      • Computer Vision (44)
        • Computer Vision (4)
        • Paper reviews (24)
        • Project (8)
        • Basic (8)
      • LLM (8)
        • Paper reviews (3)
        • Project (3)
        • Basic (2)
      • Data Analysis (11)
        • Basic (8)
        • Project (3)
      • Computer Graphics (2)
        • Basic (2)
      • Robotics (5)
        • Paper reviews (3)
        • Basic (2)
      • Technology Notes (15)
      • Memo (5)
  • 인기 글

  • 최근 댓글

  • 최근 글

임승택
[Raspberry Pi] 라즈베리파이에서 YOLO11 Pose 써보기
상단으로

티스토리툴바