[Hailo] Hailo Model Zoo
·
Driving_Assistance_Device/Hailo
0. Hailo Mode Zoo1. Hailo에서 제공하는 pre-trained model이다. Hailo를 사용할 때, 굳이 모델을 만들거나 찾을 필요 없이 HailoMZ에서 찾으면 된다. 없으면 뭐,, 알아서 만들어야죠 2. 컴파일도 하는 듯? 근데 이건 DFC가 있는데 굳이 컴파일 기능을 왜 넣었는지 모르겠다 1. Sysmtem Requirements • Ubuntu 20.04/22.04, 64 bit (supported also on Windows, under WSL2) • Python 3.8/3.9/3.10, including pip and virtualenv • Hailo Dataflow Compiler v3.30.0 (Obtain from hailo.ai) • HailoRT 4.20.0 (O..
[Hailo] Dataflow Compiler (Windows OS)
·
Driving_Assistance_Device/Hailo
0. Dataflow Compiler Hailo사의 Dataflow Compiler는 딥러닝 모델을 Hailo에서 구동할 수 있는 바이너리 파일(HEF)로 컴파일을 할 수 있도록 지원하는 API다. Input : 학습된 딥러닝 모델(tensorflow, .onnx)Output : Hailo Executable File(HEF) 1. System Requirements 1. Ubuntu 20.04/22.04, 64bit (window에서 WSL2 지원)2. 16GB RAM (32GB recommended)3. Python 3.8/3.9/3.10, including pip and virtualenv4. python3.X-dev and python3.X-distutils (according to the P..
[일지] 시선 추적
·
Driving_Assistance_Device/일지
현재 여기 리포에서 MoblienetV2 모델을 컴파일하여 헤일로에서 실행시켰더니 시선 벡터가 이상하게 뜨는 것을 감지하였다. 정확히는 시선에 따라 벡터가 변하지 않고 좌측 상단만 계속 가르키는 문제가 있다. 저기 리포 코드를 보면 uniface라는 모듈을 사용해 얼굴 객체를 인식한 후 객체 탐지를 한 프레임을 추론를 한다. 코드 리뷰도 해보고 지피티한테 화도 내보고 여러가지 삽질을 하다가 혹시 싶어서 예제 코드에서 추론 할 프레임을 얼굴 객체를 탐지한 프레임이 아닌 그냥 일반 이미지(웹캠)을 추론하니 벡터가 똑같이 좌측 상단만 가르키는 현상이 발생했다! 따라서 라즈베리파이에서도 객체 탐지를 한 프레임을 넘겨줘서 추론을 하게끔 해 볼 예정이다. 하지만 문제가 uniface 모듈은 라즈베리파이에서 사용하기..
[일지] 시선 추적 및 L2CS-NET 모델
·
Driving_Assistance_Device/일지
현재까지는 눈(eyes)과 눈동자(puplis)를 객체 탐지를 하여 눈의 구역을 2x3로 분할하여 다음과 같이 구역을 나눈다 그 다음 눈동자 객체 내에서의 홍채의 중심의 좌표를 추적하여 일정 offset 이상 움직여 각 칸의 구역을 사용자의 시선으로 정의하게끔 설계를 하였다. 예를 들어 눈동자를 좌측 상단으로 움직이면 0번칸이 시선이 된다. 실제 구현하여 테스트한 결과 프로젝트 자체를 진행하는데 있어 약간 가라를 치면 잘 써먹을 수 있을 것 같은데 아래와 같은 문제점들이 있다. 1. 부정확한 결과 눈동자를 항상 올바르게 인식하는 건 아니라서 신뢰성이 낮다. 물론 학습량을 늘리면 해결될 수도 있지만(현재 사용중인 모델은 약 60장 정도의 데이터셋으로 학습시킴) 개인적으로 느끼기엔 구조적 설계 자체의 문제..
현재 겪고 있는 문제와 해결 방안
·
Driving_Assistance_Device/일지
1. 문제내가 이번 프로젝트를 통해 구현해야 할 메인 기능은 두 개다.기능 1. 시선 추적 (Eyes Tracking / Gaze estimation)기능 2. 사람의 보고 있는 방향(왼쪽, 오른쪽, 위, 아래) 추적 2번 같은 문제는 구현하는데 있어 크게 문제가 되지는 않지만..  1번 시선 추적을 구현하는데 있어 난항을 겪고 있다. 현재까지로는 YOLO모델로 학습을 시켜 사람의 눈동자(홍채)를 탐지하는것 까지는 성공했고 눈동자를 움직였을 때, 큰 오차 없이 잘 따라오는 것을 확인했다. 그리고 각 눈동자들을 좌표(x, y)값으로 나타냈다. 하지만 실제 사람은 눈동자나 고개를 조금만 돌려도 볼 수 있는 시야각이 넓어지지만 좌표상으로는 큰 변화가 없다.  그래서 실제 사람의 시야 변화률과 좌표 상의 변화률..
[Hailo8] 라즈베리파이에서 HEF파일 실행시켜보기
·
Driving_Assistance_Device/Hailo
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 파일 변환
·
Driving_Assistance_Device/Hailo
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
·
Driving_Assistance_Device/Hailo
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] 기본 세팅
·
Driving_Assistance_Device/Hailo
개발 환경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] 구매 및 조립
·
Driving_Assistance_Device/Hailo
라즈베리파이에서 yolo모델을 돌릴거라 라즈베리파이 자체의 연산량은 부족하다고 판단하여 검색해보니 Hailo라는 연산 가속기가 있다. 대충 찾아보니 AI 관련 프로세서들을 대신 처리해주는 NPU 같다. (비전 처리쪽에 특화된 칩이다. 이걸로 다른거 돌리려고하면 정보가 없을거다..)  1. 가격좀 비싸다.. 라즈베리파이도 비싸고.. 인터넷을 보니 저거 살바에 차라리 n100산다는 여론이지만.. 아무튼 라즈베리파이 쓰기로 결정했으니 구매..   2. 부품  왼쪽부터 순서대로 라즈베리파이5(쿨링팬 장착), 헤일로 8이다.윗쫏에 있는 볼트들은 라파5에 헤일로를 장착하는데 쓰면 된다.  3. 조립