[개발환경] Raspberry Pi5 카메라 모듈 v3 연결
·
개발환경
라즈베리파이5에 라즈베리파이 카메라 모듈 3을 연결한다.  우선 라즈베리파이5 호환 케이블을 카메라와 라즈베리파이에 연결해준다.  라즈베리파이의 전원을 키고 시스템을 업데이트한다.sudo apt-get updatesudo apt-get upgrade 업데이트 후에 재부팅을 한다.sudo reboot 아래 명령어를 실행해 config.txt를 연다.sudo nano /boot/firmware/config.txtcamera_auto_detect=1을 camera_auto_detec=0으로 수정, dtoverlay를 #으로 주석처리 한다. config.txt 하단 [all] 밑에 카메라 모델에 맞는 설명문과 gpu 메모리 설정을 추가한다.라즈베리파이5는 두개의 카메라 연결을 지원하므로, 연결한 인터페이스에 따..
[PyTorch] MNIST 숫자 손글씨 데이터셋 학습
·
PyTorch
PyTorch를 이용해 MNIST 숫자 데이터셋을 학습시키고 onnx모델로 변환한다. 1학년 때 TensorFlow로 진짜 대충 배우고 뭔지도 모른 채로 MNIST 데이터를 학습시킨 적이 있었는데, 현재 진행 중인 DeepSeg 프로젝트를 통해 보다 발전시켜본다.  1. 라이브러리 import 및 기본 설정# mnist.pyimport numpy as npimport torchfrom torch import nnfrom torch.utils.data import Subsetfrom torch.utils.data import DataLoaderimport torchvisionfrom torchvision import transforms as trimport torch.nn.functional as Fimp..
[DeepSeg] YOLOv5 설치 및 MNIST 데이터셋으로 학습
·
Side Project/DeepSeg
이전 포스트에서 변환한 MNIST 데이터셋으로 YOLOv5 모델을 학습시킨다. [DeepSeg] MNIST 데이터셋 YOLO 형식으로 변환 — zerogod 코코딩딩 [DeepSeg] MNIST 데이터셋 YOLO 형식으로 변환숫자 이미지 전처리를 위해 OpenCV로 ROI를 추출하던 중, YOLOv를 이용해 숫자 객체를 탐지한 후 이를 MNIST 모델을 이용해 분류하는 것이 낫겠다고 생각했다. 이 포스트에서는 MNIST 데이터셋을 YOLO용zerogod-ai-dev.tistory.com 1. YOLOv5 설치git clone https://github.com/ultralytics/yolov5.gitcd yolov5pip install -r requirements.txt프로젝트 디렉터리에서 YOLOv5를 ..
[DeepSeg] MNIST 데이터셋 YOLO 형식으로 변환
·
Side Project/DeepSeg
숫자 이미지 전처리를 위해 OpenCV로 ROI를 추출하던 중, YOLOv를 이용해 숫자 객체를 탐지한 후 이를 MNIST 모델을 이용해 분류하는 것이 낫겠다고 생각했다. 이 포스트에서는 MNIST 데이터셋을 YOLO용으로 변환해 학습시키는 과정을 정리하고, 다음 포스트에서 변환된 데이터셋으로 YOLOv5 모델을 학습시키는 과정을 다루도록 한다.1. MNIST 데이터셋 다운로드 import torchvision.datasets as datasets# MNIST 데이터 다운로드 (train + test 세트)datasets.MNIST(root="../mnist_data", train=True, download=True)datasets.MNIST(root="../mnist_data", train=False,..
[Application][Backend] ScrapingScheduler 설정 및 Caching 정책
·
Side Project/Application
공지사항을 스크래핑하는 데에는 일정 시간이 소요된다. 따라서 매번 API 요청이 들어올 때마다 스크래핑을 수행하면 불필요한 지연이 발생하고 서버에 과부하를 줄 수 있다. 또한 새로운 공지사항이 게시될 경우 이를 빠르게 감지하고 반영해야 하는데, 이를 효율적으로 처리하기 위해서는 캐싱(Cache)과 스케줄링(Scheduling)이 필수적이다. 먼저, 한 번 스크래핑된 데이터는 캐시에 저장되며 30분간 유지된다. API 요청이 들어오면 기존에 저장된 데이터를 즉시 반환하고, 새로운 스크래핑을 수행하지 않는다. 이를 통해 반복적인 데이터 요청으로 인한 성능 저하를 방지하고, 사용자에게 빠른 응답을 제공할 수 있다. 공지사항 데이터는 5분마다 자동으로 스크래핑되며, 기존 데이터와 비교하여 변경 사항이 있는지 확..
[Linux] PyTorch 모델을 C++ 포팅으로 사용하기 - ONNX Runtime 설치
·
Linux
라즈베리 파이는 기본적으로 PyTorch의 GPU 가속을 사용할 수 없다. 라즈베리 파이 5의 경우 NPU 가속의 사용 가능성이 있지만, PyTorch에서는 이를 공식적으로 지원하지 않는다. 때문에 경량화 PyTorch를 사용해야 하는데, CPU만으로 동작하기 때문에 라즈베리 파이에서 직접 모델을 학습시키는 것은 매우 느리다.  따라서 모델은 PC에서 GPU 가속으로 학습하고, 이를 .onnx 형식으로 변환해 라즈베리 파이에 업로드한다. 그리고 C++에 포팅하여 데이터 전처리를 하는 방법을 사용한다.  이를 위해서 라즈베리 파이에 ONNX Runtime을 설치해야 한다. 일반적으로는 다음 과정을 거친다.sudo apt update && sudo apt upgrade -ysudo apt updatesudo..
zerogod-ai-dev
'분류 전체보기' 카테고리의 글 목록