RPI Cam 프로젝트

2. Camera module 사용하기 위한 PC 개발 환경 설정

kimsihoon 2026. 6. 2. 14:25

1. Python 및 venv 설정

1) 프로젝트 폴더를 생성하고, 가상환경을 설치한다.

# python version 확인. 우리가 사용할 python은 3.11.x ~ 3.12.x 사이를 사용한다.
# Mac과 linux 환경에서는 python3로 작성한다.
python --version

# pip version 확인 및 업그레이드를 진행한다.
python -m pip --version
python -m pip install --upgrade pip

# 만일 여러 python 버전을 동시에 관리하고자 한다면, pyenv를 사용하면 편리하다.
# 하지만 필자는 pyenv가 아닌 venv를 사용하고자 한다.

2) 가상환경 생성과 활성화

# 프로젝트 디렉토리를 생성하고 이동한다.
# 필자는 C드라이브에서 프로젝트를 생성했다.
mkdir 프로젝트폴더명
cd 프로젝트폴더명

# PC와 Raspberry에서 동일한 환경을 위해 가상환경을 생성한다.
# 사용해본 결과 3.11.x ~ 3.12.x 사이의 버전이 가장 안정적으로 구현 가능하다.
# 해당 포스트에서는 3.12.x 버전으로 설치한다.
py -3.12 -m venv .venv

# Window 환경에서 가상환경을 실행하는 방법이다.
.venv\Scripts\Activate.ps1

# Raspberry Pi 및 Mac에서 가상환경 실행하는 방법이다.
source .venv/bin/activate

# 가상환경 내의 python 경로 확인하는 방법이다.
# 이는 추후 editor을 사용할 때 사용된다.
# window:
where python
# Mac, Linux(rpi):
which python

# 가상환경 비활성화
deactivate

3) 가상환경에서 pip 업그레이드 및 기본 도구 설치

가상환경 활성화를 진행한 상태에서 pip과 기본적인 도구를 최신으로 설치합니다.

# 가상환경이 활성화 된 상태에서 실행한다.
pip install --upgrade pip setuptools wheel

# 업그레이드 결과를 확인하는 명령어는 다음과 같다.
pip --version

4) 협업 및 재현을 위한 패키지 의존성 관리

requiremets.txt를 작성하여 의존성을 관리한다.

# --- 기본 및 데이터 처리 ---
numpy>=2.0,<3
pandas>=2.2
matplotlib>=3.9
pillow>=10.0
scikit-learn>=1.5
seaborn>=0.13.0

# --- 영상 처리 ---
opencv-python>=4.10.0

# --- 학습 프레임워크 (GPU 지원) ---
torch>=2.5.0
torchvision>=0.20.0
tensorflow>=2.16  # NumPy 2.x 호환성을 위해 2.16 이상 권장
ultralytics>=8.3  # YOLO 모델 학습 및 추론(객체탐지 우수함)

# --- 추론 및 모델 변환 ---
onnx>=1.16
onnxruntime-gpu>=1.19
ai-edge-litert[dev]  # 라즈베리파이/배포용 리트라이트 변환 툴킷

# --- 네트워킹 및 API 서버 ---
fastapi>=0.115
uvicorn[standard]>=0.30
requests>=2.32

# --- 빌드 및 패키지 관리 ---
pip>=24.0
setuptools>=61
wheel

 

이후 라즈베리파이로 requirements.txt를 옮긴 이후 다음과 같이 명령어를 입력한다.

# requirements.txt를 설치하는 방법이다.
pip install -r requirements.txt

# pip을 통해 설치된 패키지 목록 확인 방법이다.
pip list

# 특정 패키지 정보
# ex) pip show 특정패키지이름
pip show torch

 

5) (선택사항) editor에서 자동으로 venv 작동

  • 프로젝트 폴더를 VS Code로 엽니다.
  • Ctrl+Shift+P  Python: Select Interpreter.
  • ./.venv/bin/python (또는 Windows의 .venv\Scripts\python.exe)을 선택.
  • 새 터미널을 열면 자동으로 .venv가 활성화됩니다.

2. 학습을 위한 추가적인 Framework

requirements.txt에서 설치되었지만, 혹시 모를 개별 설치 방안을 남겨둔다. 필요 없다면 추가 설치 진행하지 않아도 된다.

1) PyTorch 설치 및 확인

# CPU 전용 (NVIDIA GPU가 없거나 가벼운 학습을 위해 사용한다.)
pip install torch torchvision

# NVIDIA GPU + CUDA 12.8 (Window, Linux)
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128

# Apple Silicon (M1/M2/M3 — MPS 가속)
pip install torch torchvision
# 설치 결과 확인을 위한 명령어이다.
python -c "import torch; print('PyTorch:', torch.__version__); print('CUDA OK:', torch.cuda.is_available())"
# 예상 출력은 다음과 같다.
# PyTorch: 2.x.x
# CUDA OK: True   (GPU 환경에서는 True, CPU 환경에서는 출력이 없다.)

2) TensorFlow (TFLIte 변환)

# TensorFlow 2.x (CPU/GPU 자동 감지)
pip install "tensorflow>=2.16.0"

# 설치 확인
python -c "import tensorflow as tf; print('TF:', tf.__version__); print('GPU:', tf.config.list_physical_devices('GPU'))"

3) YOLO를 사용하기 위한 Ultralytics 설치

객체 탐지를 위한 Ultralytics 패키지를 설치한다.

pip install "ultralytics>=8.3.0"

# 설치 확인
python -c "from ultralytics import YOLO; print('Ultralytics OK')"

 

3. 추론을 위한 추가적인 라이브러리

PC에서 학습한 모델을 ONNX or TFLite로 Export 한 이후 동일 PC에서 먼저 추론 결과를 확인한다.

이를 통해 라즈베리파이에 배포 전 작동을 확인한다.

위와 마찬가지로 requirements.txt에서 설치가 진행되었지만, 개별 설치하는 방법이다.

1) ONNX Runtime

# CPU 전용
pip install "onnxruntime>=1.17.0"

# NVIDIA GPU (선택)
pip install "onnxruntime-gpu>=1.17.0"

# 설치 확인
python -c "import onnxruntime as ort; print('ORT:', ort.__version__); print('Providers:', ort.get_available_providers())"

2) ai-edge-litert

# 새로운 패키지 이름이다.
# 과거 패키지명: tflite-runtime
pip install ai-edge-litert