현재 겪고 있는 문제와 해결 방안
·
2025(학부 3학년)/[project]미숙련자를 위한 운전 피드백 디바이스
1. 문제내가 이번 프로젝트를 통해 구현해야 할 메인 기능은 두 개다.기능 1. 시선 추적 (Eyes Tracking / Gaze estimation)기능 2. 사람의 보고 있는 방향(왼쪽, 오른쪽, 위, 아래) 추적 2번 같은 문제는 구현하는데 있어 크게 문제가 되지는 않지만..  1번 시선 추적을 구현하는데 있어 난항을 겪고 있다. 현재까지로는 YOLO모델로 학습을 시켜 사람의 눈동자(홍채)를 탐지하는것 까지는 성공했고 눈동자를 움직였을 때, 큰 오차 없이 잘 따라오는 것을 확인했다. 그리고 각 눈동자들을 좌표(x, y)값으로 나타냈다. 하지만 실제 사람은 눈동자나 고개를 조금만 돌려도 볼 수 있는 시야각이 넓어지지만 좌표상으로는 큰 변화가 없다.  그래서 실제 사람의 시야 변화률과 좌표 상의 변화률..
[Hailo8] 라즈베리파이에서 HEF파일 실행시켜보기
·
2025(학부 3학년)/[project]미숙련자를 위한 운전 피드백 디바이스
1. 기본 세팅 2. pt → HEF 컴파일   0. 목표hailo에서 제공하는 예제 중 하나인 detection.py을 이용해 내가 만든 hef파일을 실행시켜 볼 예정이다.1. lable.json 생성다음과 같이 test-labels.json 파일을 만들어준다.{ "detection_threshold": 0.5, "max_boxes":200, "labels": [ "pupiles", "eyes" ]} detection_threshold : 탐지된 객체의 신뢰도이다. 신뢰도가 50% 미만인 객체는 출력되지 않는다max_boxes : 최대 탐지할 객체 개수를 200개로 설정labels : 모델이 탐지할 객체 목록 나 같은 경우는 pupils과 eyes라는 객체이다. ..
[Hailo8] pt → HEF 파일 변환
·
2025(학부 3학년)/[project]미숙련자를 위한 운전 피드백 디바이스
0. 서론 변환시킬 파일 : best_s.ptyolov8s 모델로 학습을 시킨 파일이라 이를 구분하고자 파일 마지막에 _s를 붙였다.   1. PT →  ONNX 변환from ultralytics import YOLOmodel = YOLO("./runs/detect/train/weights/best_s.pt")model.export(format = "onnx")ONNX 변환은 YOLO에서 export 기능을 지원하기 때문에 위와 같이 간단하게 변환시킬 수 있다.  사진처럼 ONNX 파일이 추출된 것을 확인할 수 있다.    2. ONNX → HEF 변환대략적인 큰 그림을 그리자면 host에서 HEF 파일 변환을 하고, on device에서 hef파일 실행할 것이다. 내 프로젝트 같은 경우는 host가 내..
[Hailo8] Dataflow Compiler
·
2025(학부 3학년)/[project]미숙련자를 위한 운전 피드백 디바이스
Hailo8을 사용하기 위해서는 그냥 학습된 가중치 파일(.pt)을 라즈베리파이 같은 보드에서 사용할 수 없다. Hailo 칩이 사용할 수 있게끔 최적화된 파일로 변환시켜줘야한디ㅏ.Hailo Excutable Format이라고 해서 HEF 파일이라 명칭 한다.  변환 과정은 다음과 같다 : 1. .pt   → .onnx   2. .onnx → .hef 1번 과정은  yolov8의 export 기능을 사용하여 쉽게 변환이 가능하지만  2번 과정은 hailo사에서 제공하는 SDK를 사용해야 하기 때문에 관련 설정이 까다롭다. Dataflow Compiler라는 소프트웨어를 사용해서 hef파일로 변환을 시켜줘야 하는데 이거 사용할 수 있는 시스템 사양이 다음과 같다 시스템 사양(2025. 03. 02 기준, ..
[Hailo8] 기본 세팅
·
2025(학부 3학년)/[project]미숙련자를 위한 운전 피드백 디바이스
개발 환경1. 라즈베리파이52. Hailo8사용 (hailo8L 아님)3. OS : Rasberry Pi OS (64-bit) 참고 문서유튜브깃허브 저 둘 내용을 번역한 거라 자세한 내용을 알고 싶으면 저 두 자료를 참고하면 된다. 1. apt 패키지 업데이트sudo apt updatesudo apt full-upgrade위 두 명령어로 apt 패키지를 최신버전으로 업데이트하여. 추후에 Hailo driver 패키지를 다운로드할 수 있도록 한다. sudo apt full-upgrade를 하면 중간마다 뭐 물어보는 게 나오는데 default로 설정했다.  2. PCIe Gen3 설정Hailo를 사용하기 위한 환경을 세팅하기 위해 PCle Gen3설정을 한다.sudo raspi-config  Advanced..
[라즈베리파이5, Hailo8] 구매 및 조립
·
2025(학부 3학년)/[project]미숙련자를 위한 운전 피드백 디바이스
라즈베리파이에서 yolo모델을 돌릴거라 라즈베리파이 자체의 연산량은 부족하다고 판단하여 검색해보니 Hailo라는 연산 가속기가 있다. 대충 찾아보니 AI 관련 프로세서들을 대신 처리해주는 NPU 같다. (비전 처리쪽에 특화된 칩이다. 이걸로 다른거 돌리려고하면 정보가 없을거다..)  1. 가격좀 비싸다.. 라즈베리파이도 비싸고.. 인터넷을 보니 저거 살바에 차라리 n100산다는 여론이지만.. 아무튼 라즈베리파이 쓰기로 결정했으니 구매..   2. 부품  왼쪽부터 순서대로 라즈베리파이5(쿨링팬 장착), 헤일로 8이다.윗쫏에 있는 볼트들은 라파5에 헤일로를 장착하는데 쓰면 된다.  3. 조립
[라즈베리파이4] 파이썬 설치
·
2025(학부 3학년)/[project]미숙련자를 위한 운전 피드백 디바이스
라즈베리파이5를 사용 할 예정이지만, 현재 배송중이고 가지고 있는 보드가 라즈베리파이4라 일단 4를 기준으로 작성 이번 프로젝트에서 사용할 파이썬 버전은 3.10.11이다.  apt를 사용하면 명령어 하나로 쉽게 설치할 수 있지만 apt가 지원하는 파이썬 버전이 적기때문에 만약 본인이 설치하려는 파이썬 버전이 apt에서 지원하지 않는 경우, 아래 방법을 통해 설치하면 된다. 1. 파이썬 버전 확인 python --verison 출력 결과 :   2.  APT 저장소 업데이트sudo apt update && sudo apt upgrade -y 필요없으면 안 해도 된다.  실행시키면 뭐 쭉쭉 다운 된다. 3.  필수 패키지 설치 sudo apt install -y build-essential libffi-d..
[Yolov8] yaml파일을 이용하여 학습모델 만들기
·
2025(학부 3학년)/[project]미숙련자를 위한 운전 피드백 디바이스
저번에 roboflow를 이용하여 dataset 파일인 yaml파일을 만들었는데, 이 파일들을 이용해 학습된 모델 파일(pt)을 만들 예정이다.   1. Yaml 파일저번 글에는 yolov5 버전으로 다운로드하였는데, 사연이 생겨서 yolov8 버전으로 진행할 예정이다.  아무튼 다운을 받으면 이렇게 폴더가 하나 생길 것이다. 폴더 안에는 각각 내가 사전에 정해둔 trst, train, valid 폴더가 있고 yaml파일이 있다. yaml파일을 들어가 보면이렇게 되어있는데 저기 11~13라인의 test, train, val을 상황에 따라 수정해 주면 된다. 각 test, train, valid폴더가 어디 있는지 적어두는 곳인데 이는 각 폴더 안에 images 폴더 안에 있다.  그냥 편하게 절대경로로 바..
[Roboflow] 학습 데이터셋 만들기
·
2025(학부 3학년)/[project]미숙련자를 위한 운전 피드백 디바이스
0. Roboflow란?roboflow는 Computer Vision 기술을 이용해 다양한 애플리케이션을 만들 수 있도록 지원해 주는 서비스다. 여기서 필요한 데이터 셋을 다운받을수도 있고 본인이 직접 데이터셋을 만들 수도 있는 것 같다.  전에 만들어 둔 사진을 가지고 라벨링 작업을 통해 직접 데이터셋을 만들어 볼 예정이다. 사용법보다는 대략적인 워크 플로우를 기록 할 예정이다.  1. 데이터셋 만들기다음과 같이 Object Detection으로 프로젝트를 생성했다. 전에 이미지는 38장 정도 만들었었는데 좀 부족할 것 같아 65장으로 늘렸다.  분류하고 싶은 이미지는 눈과 눈동자 총 두개이므로 두 개의 클래스(eyes, pupils)를 생성한다.   이런 식으로 총 65장의 이미지에 눈과 홍채를 라벨..
[OpenCV] 동영상 자르기
·
2025(학부 3학년)/[project]미숙련자를 위한 운전 피드백 디바이스
0. 서론아직 픽스되지는 않았지만, 올해 프로젝트는 영상처리분야가 메인이 될 것 같다. 실제로도 리눅스os에서 영상처리를 해보고싶기도 하고 프로젝트는 좀 더 윤곽이 잡힌 후에 올릴텐데 아마 이번프로젝트에서 메인 기능 중 하나인 시선 탐지(gaze detectio)을 하려고 한다. 눈을 감지(eye detection)를 하는 것이 아닌, 사용자가 보고있는 "시선"을 탐지하는 것이다. 이를 구현하기 위해서는 사람의 눈동자(홍채)의 위치를 정확히 구별해야하고 이를 위해서는 딥러닝을 통해 학습을 시켜야한다고 판단이 들었다. 학습 데이터는 찾아보니 roboflow에서 작업하면 될 것 같고. 지금 해야할 일은 학습 시킬 데이터들을 만들어야한다.사람 눈동자가 학습 데이터 ㅇㅇ  좀 찾아보면 오픈소스로 풀린 데이터셋이..