라즈베리파이 AI 키트에는 Hailo 사의 AI 가속기(NPU)가 함께 구성되어 있습니다. 여기서 NPU(Neural Processing Unit)란 머신러닝(ML) / 인공지능(AI) 전용으로 설계되어 보다 효율적으로 연산을 수행할 수 있는 반도체 칩입니다.
Hailo 학습에 도움이 되는 포스팅 목록입니다. 참고하세요.
라즈베리 파이 5 AI 키트, Hailo AI 가속 모듈
Raspberry Pi AI HAT+ Hailo 설치 1
Raspberry Pi AI HAT+ Hailo 8L 설치 2
CPU나 GPU처럼 다양한 목적으로 사용할 순 없지만 ML/AI 용으로는 아주 효율적입니다. 한국말로 표현한다면 AI 가속기, AI 가속 모듈 등으로 표현할 수 있을 것 같네요. 이전에 말씀드린 Coral 같은 경우는 TPU라고 표현하는데요. TPU는 Tensor Processing Unit의 약자로 구글에서 개발한 NPU 들에 이런 이름이 붙었습니다.
설치 및 학습 순서
라즈베리파이5
NPU AI 모듈(Hailo-8L)
라즈베리파이 전용 카메라 혹은 USB 웹 카메라
리눅스 배포본, 라즈베리파이 전용 OS 설치
hailo 소프트웨어 설치
hailo 소프트웨어 실행(테스트)
라즈베리파이 5에 관해서는 공식 사이트를 참고하세요.
라즈베리파이 5 상세 스팩은 카피해 가져다 쓰기 편하라고 ^^ 그냥 코드에 붙여 넣었어요. ^^
라즈베리파이5 Specification
Broadcom BCM2712 2.4GHz quad-core 64-bit Arm Cortex-A76 CPU, with cryptography extensions, 512KB per-core L2 caches and a 2MB shared L3 cache
VideoCore VII GPU, supporting OpenGL ES 3.1, Vulkan 1.2
Dual 4Kp60 HDMI® display output with HDR support
4Kp60 HEVC decoder
LPDDR4X-4267 SDRAM (4GB and 8GB SKUs available at launch)
Dual-band 802.11ac Wi-Fi®
Bluetooth 5.0 / Bluetooth Low Energy (BLE)
microSD card slot, with support for high-speed SDR104 mode
2 × USB 2.0 ports, 2 × USB 3.0 ports, supporting simultaneous 5Gbps operation
Gigabit Ethernet, with PoE+ support (requires separate PoE+ HAT)
2 × 4-lane MIPI camera/display transceivers
PCIe 2.0 x1 interface for fast peripherals (requires separate M.2 HAT)
5V/5A DC power via USB-C, with Power Delivery support
Raspberry Pi standard 40-pin header
Real-time clock (RTC), powered from external battery
Power button
전용 쿨링팬은 7,000원 구매 후 조립을 추천합니다.
NPU AI 모듈(Hailo-8L) - AI Kit에 관한 라즈베리파이 공식 사이트
- 라즈베리파이5 AI 가속 모듈(Hailo-8L, 13테라톱스, PCIe 인터페이스)
- NPU: Neural Processing Unit 내장 (동작온도: 0도 ~ 50도)
라즈베리파이5 NPU AI 모듈(Hailo-8L) 장착
라즈베리파이 카메리 V3 설치 가이드를 참고하세요.
카메라 인식 설정은 자동으로 됩니다. 라즈베리파이 배포본을 설치하면 /boot/firmware/config.txt 파일에 다음과 같이 자동으로 설정 됩니다.
/boot/firmware/config.txt
camera_auto_detect=1
카메라를 구동하는 소프트웨어들도 기본적으로 설치되어 있으며 다음 웹사이트를 참고 하여 실행할 수 있습니다.
기타 준비물은 micro SD 카드(OS 저장)와 전원 어댑터, Mini HDMI모니터 연결 케이블, 이더넷 케이블, USB 키보드와 마우스가 필요합니다. 처음 설치할 때는 복잡하지만 사용하다보면 저절로 연결 됩니다. ^^
Input voltage: 100 - 240 v.a.c
Input AC frequency: 50-60Hz
Output voltage: 5.1V (USB-C type)
Output current: 5.0A
Output power: 25.5W
라즈베리파이 5 리눅스 배포본 설치
라즈베리파이5 리눅스 배포본는 마이크로 SD 카드에 설치하기 때문에, 다음과 같이 개발용 PC의 USB 카드 리더기 혹은 SD 카드 슬롯에 마이크로 SD 카드가 장착 되어 있어야 합니다. 참고로, 필자는 32GB 마이크로 SD 카드를 장착 했습니다. 라즈베리파이5 리눅스 배포본 설치는 다음 웹사이트에서 다운로드 받아 설치할 수 있습니다. 그러나 데스크탑 환경에서 쉽게 설치하는 방법은 다음 링크를 참고하여 설치하세요.
만약 개발용 PC에 리눅스 우분투가 설치되어 있다면 아래 명령으로 rpi-imager 프로그램을 설치할 수 있습니다.
$ sudo apt install rpi-imager
설치방법은 내용이 길어져서 생략합니다. 위 설치 사이트를 꼭 참고하세요.
아 ~ 쓰기 싫다. 규율을 생각해. 집에 가고 싶다. 규율! 오늘 달리기 훈련하는 날인데... 규율!! 규율이고 제랄이고 내일 하겠다. 바이~, 안녕~, 꺼져~ 그래도 규율!
부팅후 커널 버전 정보 확인
라즈베리파이5 리눅스 배포본 설치 날짜: 2024년 11월 21일
부팅후, /boot/firmware 경로를 확인해 보면, 라즈베리파이 부트로더와 디바이스 트리(DTB) 파일들과 커널 바이너리 이미지 파일이 있습니다. 라즈베리파이5는 bcm2712 디바이스 트리(DTB) 파일과 kernel_2712.img 커널 바이너리 이미지 파일을 사용하여 부팅 합니다.
커널 버전은 아래와 같이 확인 합니다. (v6.6.x)
커널 버전 확인
$ uname -a
Linux rpi5 6.6.51+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.51-1+rpt3 (2024-10-08) aarch64 GNU/Linux
hailo 소프트웨어 설치 준비(설정)
hailo 매뉴얼과 소프트웨어들은 아래 문서에서 확인할 수 있습니다.
- 매뉴얼(문서): https://www.raspberrypi.com/documentation/accessories/ai-kit.html
- 오픈 소스 웹사이트: https://github.com/hailo-ai
- 오픈 소스 사용법 : https://github.com/hailo-ai/hailo-rpi5-examples/blob/main/doc/install-raspberry-pi5.md#how-to-set-up-raspberry-pi-5-and-hailo-8l
hailo을 구동하기 위한 소프트웨어 패키지들은 리눅스 커널 버전이 최신 일수록 좋습니다. 먼저 다음과 같이 라즈베리파이 리눅스 시스템을 최신 버전으로 전체 업그레이드 합니다.
apt full-upgrade
$ sudo apt full-upgrade
라즈베리파이 리눅스 커널이 최신 버전으로 업그레이드하여 재부팅후, 다음과 같은 명령 실행으로 PCIe 포트 속도 설정(Gen 3 Enable) 합니다.
$ sudo raspi-config
hailo 소프트웨어 설치
다음과 같이 apt install 명령으로 hailo 소트웨어를 설치 합니다.
$ sudo apt install hailo-all
위의 명령으로 다음과 같은 hailo 소프트웨어가 설치 됩니다.
- Hailo kernel device driver and firmware
- HailoRT middleware software
- Hailo Tappas core post-processing libraries
- The rpicam-apps Hailo post-processing software demo stages
설치가 마무리 되면, 리눅스를 재부팅 합니다.
$ sudo reboot
hailo 소프트웨어 설치 정보 확인
설치정보를 다음과 같은 명령으로 확인 합니다.
$ sudo apt show hailo-all
Package: hailo-all
Version: 4.18.0+1
Priority: optional
Section: video
Maintainer: Serge Schneider <serge@raspberrypi.com>
Installed-Size: 7168 B
Depends: hailofw (>= 4.18.0), hailort (>= 4.18.0), hailo-tappas-core (>= 3.29.1), rpicam-apps-hailo-postprocess (>= 1.5.1), python3-hailort (>= 4.18.0) Breaks: hailo-dkms (<< 4.18.0) Download-Size: 1186 B APT-Manual-Installed: yes APT-Sources: http://archive.raspberrypi.com/debian bookworm/main arm64 Packages Description: Hailo support (metapackage)
hailo firmware 버전 확인
$ ls -al /lib/firmware/hailo/
drwxr-xr-x 2 root root 4096 Nov 21 15:38 .
drwxr-xr-x 48 root root 4096 Nov 21 15:37 ..
-rw-r--r-- 1 root root 164224 May 24 18:14 hailo8_fw.4.17.0.bin
-rw-r--r-- 1 root root 165816 Aug 12 17:53 hailo8_fw.4.18.0.bin
lrwxrwxrwx 1 root root 31 May 24 18:14 hailo8_fw.bin -> /etc/alternatives/hailo8_fw.bin
hailo 디바이스드라이버 버전 확인
$ dmesg | grep hailo
[ 3.499035] hailo: Init module. driver version 4.18.0
[ 3.506171] hailo 0000:01:00.0: Probing on: 1e60:2864...
[ 3.506183] hailo 0000:01:00.0: Probing: Allocate memory for device extension, 11632
[ 3.506200] hailo 0000:01:00.0: enabling device (0000 -> 0002)
[ 3.506207] hailo 0000:01:00.0: Probing: Device enabled
[ 3.506236] hailo 0000:01:00.0: Probing: mapped bar 0 - 00000000aa7655d5 16384
[ 3.506243] hailo 0000:01:00.0: Probing: mapped bar 2 - 000000009a38e721 4096
[ 3.506248] hailo 0000:01:00.0: Probing: mapped bar 4 - 00000000bbf5d1bd 16384
[ 3.506252] hailo 0000:01:00.0: Probing: Force setting max_desc_page_size to 4096 (recommended value is 16384)
[ 3.506261] hailo 0000:01:00.0: Probing: Enabled 64 bit dma
[ 3.506264] hailo 0000:01:00.0: Probing: Using userspace allocated vdma buffers
[ 3.506269] hailo 0000:01:00.0: Disabling ASPM L0s
[ 3.506273] hailo 0000:01:00.0: Successfully disabled ASPM L0s
[ 3.737788] hailo 0000:01:00.0: Firmware was loaded successfully
[ 3.759665] hailo 0000:01:00.0: Probing: Added board 1e60-2864, /dev/hailo0
hailo 설치 확인
$ hailortcli fw-control identify
Executing on device: 0000:01:00.0
Identifying board
Control Protocol Version: 2
Firmware Version: 4.18.0 (release,app,extended context switch buffer)
Logger Version: 0
Board Name: Hailo-8
Device Architecture: HAILO8L
Serial Number: HLDDLBB241601230
Part Number: HM21LB1C2LAE Product Name: HAILO-8L AI ACC M.2 B+M KEY MODULE EXT TMP
hailo 소프트웨어(펌웨어) 버전과 디바이스드라이버 버전은 서로 같아야 합니다. (설치된 버전 4.18.0)
hailo 실행 테스트
실행파일 위치 확인
$ ls -al /usr/bin/rpicam*
-rwxr-xr-x 1 root root 68040 Oct 4 07:30 /usr/bin/rpicam-hello
-rwxr-xr-x 1 root root 134136 Oct 4 07:30 /usr/bin/rpicam-jpeg
-rwxr-xr-x 1 root root 199744 Oct 4 07:30 /usr/bin/rpicam-raw
-rwxr-xr-x 1 root root 200000 Oct 4 07:30 /usr/bin/rpicam-still
-rwxr-xr-x 1 root root 199760 Oct 4 07:30 /usr/bin/rpicam-vid
$ ll /usr/bin/hailo*
-rwxr-xr-x 1 root root 957 Aug 12 18:52 /usr/bin/hailo
-rwxr-xr-x 1 root root 5178160 Jul 8 20:17 /usr/bin/hailortcli
rpicam 카메라 테스트
$ rpicam-hello
[0:26:14.465765424] [2012] INFO Camera camera_manager.cpp:325 libcamera v0.3.2+27-7330f29b [0:26:14.473273512] [2016] INFO RPI pisp.cpp:695 libpisp version v1.0.7 28196ed6edcf 29-08-2024 (16:33:32) [0:26:14.490502486] [2016] INFO RPI pisp.cpp:1154 Registered camera /base/axi/pcie@120000/rp1/i2c@88000/ov5647@36 to CFE device /dev/media1 and ISP device /dev/media0 using PiSP variant BCM2712_C0
//10초동안 카메라 영상 표시
$ rpicam-hello -t 10s
//180도 회전
$ rpicam-hello --rot 180 -t 10s
post-process-file(json)
hailo 모듈 실행시 전달하는 설정 파일들(*.json)
$ ll /usr/share/rpi-camera-assets/
-rw-r--r-- 1 root root 158 Sep 28 18:17 annotate_cv.json
-rw-r--r-- 1 root root 303 Sep 28 18:17 face_detect_cv.json
-rw-r--r-- 1 root root 416 Sep 28 18:17 hailo_classifier.json
-rw-r--r-- 1 root root 647 Sep 28 18:17 hailo_yolov5_personface.json
-rw-r--r-- 1 root root 438 Sep 28 18:17 hailo_yolov5_segmentation.json
-rw-r--r-- 1 root root 551 Sep 28 18:17 hailo_yolov6_inference.json
-rw-r--r-- 1 root root 555 Sep 28 18:17 hailo_yolov8_inference.json
-rw-r--r-- 1 root root 259 Sep 28 18:17 hailo_yolov8_pose.json
-rw-r--r-- 1 root root 563 Sep 28 18:17 hailo_yolox_inference.json
-rw-r--r-- 1 root root 630 Sep 28 18:17 hdr.json
-rw-r--r-- 1 root root 249 Sep 28 18:17 motion_detect.json
-rw-r--r-- 1 root root 30 Sep 28 18:17 negate.json
-rw-r--r-- 1 root root 47 Sep 28 18:17 sobel_cv.json
Object Detection
객체(물체) 식별 실행
$ rpicam-hello -t 0 --post-process-file /usr/share/rpi-camera-assets/hailo_yolov6_inference.json --lores-width 640 --lores-height 640
$ rpicam-hello -t 0 --post-process-file /usr/share/rpi-camera-assets/hailo_yolov8_inference.json --lores-width 640 --lores-height 640
$ rpicam-hello -t 0 --post-process-file /usr/share/rpi-camera-assets/hailo_yolox_inference.json --lores-width 640 --lores-height 640
$ rpicam-hello -t 0 --post-process-file /usr/share/rpi-camera-assets/hailo_yolov5_personface.json --lores-width 640 --lores-height 640
Image Segmentation
이미지 분리 실행
$ rpicam-hello -t 0 --post-process-file /usr/share/rpi-camera-assets/hailo_yolov5_segmentation.json --lores-width 640 --lores-height 640 --framerate 20
Pose Estimation
자세(pose) 검출
$ rpicam-hello -t 0 --post-process-file /usr/share/rpi-camera-assets/hailo_yolov8_pose.json --lores-width 640 --lores-height 640
hailortcli 실행 도움말
$ hailortcli --help
하! 끝났다. 놀자! 아니 달리자! 인내없이 열매없고, 고통없이 성취없다.
위 문서의 참고는 이곳으로 저작자 정보를 밝힘니다.
Copyright (C) 커널연구회 (www.kernel.bz)
작성자: 정재준(rgbi3307 골뱅이 nate.com)
문서위치 메인(출처): https://kernel.bz/blogPost/rpi5-hailo
참고문서- 메카솔루션 오픈 랩
'라즈베리파이 5' 카테고리의 다른 글
Raspberry Pi AI HAT+ Hailo 설치 1 (5) | 2025.07.03 |
---|---|
Hailo NPU 학습 내용 정리 2 (0) | 2025.06.20 |
Hailo NPU 학습 내용 정리 1 (4) | 2025.06.20 |
라즈베리파이 센서 보드 구성 (5) | 2025.06.13 |
인터럽트가 있는 Raspberry Pi Pico (1) | 2025.05.30 |
Raspberry Pi 피코, Pico W, W2 LED 표시기용 UPS 휴대용 전원 공급 장치 (0) | 2025.05.22 |
메이커를 위한 라즈베리파이, 이승현 저 (2) | 2025.05.06 |
DietPi 경량 데비안 기반 Linux 배포판 (2) | 2025.04.25 |
더욱 좋은 정보를 제공하겠습니다.~ ^^