[How to Article] 0부터 시작하는 엣지: AOM-2721 OSM 개발 키트를 활용한 최적화된 객체 인식 구현

1. 개요

어드밴텍 AOM-2721은 OSM(Open Standard Module) 1.1 폼 팩터를 채택한 컴퓨터 온 모듈(Computer-on-Module)입니다. 초소형 통합 컴퓨팅 플랫폼으로 설계되었으며, 특히 임베디드 애플리케이션과 엣지 AI(Edge AI) 분야에 최적화되어 있습니다.

2. 사전 준비 사항

  • Qualcomm Dragonwing™ QCS6490 기반 AOM-2721 OSM 개발 키트

    • CPU: Qualcomm 8코어 Kryo CPU (최대 2.7GHz)

    • NPU: Hexagon™ 텐서 프로세서 (12 TOPS AI 성능)

    • VPU: Adreno 633, 4K30 인코딩 / 4K60 디코딩 (H.264/H.265)

    • GPU: Adreno 643, OpenGL ES3.2 / OpenCL 2.0 지원

    • 메모리: 온보드 8GB LPDDR5 (8533MT/s)

    • 스토리지: 온보드 128GB UFS + 128GB eMMC

    • 주요 I/O 인터페이스:

      • HDMI & DP 각 1개 (1920×1080@60Hz)

      • MIPI-CSI 4-Lane 2개

      • USB 3.2 Gen1, PCIe Gen3, GbE 등

  • 개발용 PC (x86): RAM 16GB, 저장공간 350GB 이상 권장

  • 주변기기: FHD HDMI 모니터, HDMI 케이블, USB 마우스 및 키보드

소프트웨어

  • Yocto OS 설치 (Ubuntu 호스트 머신 필요)

  • AOM-2721 상의 AI 런타임 설정

3. 부트 스위치 설정 방법

  • AOM-2721 개발 키트에는 이미지 플래싱(Flashing) 과정에서 사용되는 마이크로 스위치가 있습니다. 이는 AOM-2721 호환 장치에서 공통적으로 사용됩니다.

image

AOM-2721 개발 키트 스위치 설정

  • 아래의 설치 가이드에서 사용된 사진 속 장치는 AOM-2721 개발 키트 본체입니다.
    똑같이 AOM-2721 OSM을 기반으로 제작된 다른 장치들은 외관상 약간의 차이가 있을 수 있으니 참고하시기 바랍니다.

3.1 (선택 사항) AOM-2721 OSM 플래싱

제품에 이미 Yocto 기반 이미지가 설치되어 있다면 이 단계를 건너뛰고 3단계로 진행하셔도 됩니다. 새로 플래싱이 필요한 경우, AOM-2721 Yocto User Guide의 Quick Start 섹션을 참조하세요.

장치에 OS 이미지를 새로 설치(플래싱)해야 하는 경우, 아래 절차를 확인해 주시기 바랍니다. 단계별 설치 방법이 상세히 설명되어 있습니다.
AOM-2721 Yocto User Guide → Quick Start.

어드밴텍에서 AOM-2721 OSM용으로 제작한 공식 Yocto 이미지는 다음 위치에서 다운로드할 수 있습니다.
AIM-Linux Qualcomm Yocto OS Release Notes.

이미지 버전은 aom2721a1_yl01301_k0606052_q6490_08g 버전 또는 그 이상의 최신 버전을 다운로드하여 사용하시기 바랍니다.

이미지 플래싱 과정이 모두 완료되었다면, 아래의 3단계(Step 3) 절차로 이동하여 설정을 계속 진행해 주세요.


3.2 (선택 사항) AOM-2721 OSM 커스텀 Yocto 이미지 빌드

직접 AOM-2721 OSM 이미지를 빌드하려는 사용자는 빌드 스크립트 가이드를 참조하여 호스트 환경을 구축하고 호환 이미지를 생성할 수 있습니다.
그런 경우 Yocto build host 및 호환 이미지 세팅을 하려면 아래를 참고해 주세요.
Build YOCTO Image by Build Script

4. AOM-2721 OSM 부팅 및 인터넷 연결

4.1 개요

장치의 전원을 켜고, 네트워크를 연결한 뒤 Edge Impulse CLI를 설치하는 과정입니다.


4.2 단계별 세팅 방법

  1. Edge Impulse CLI 를 호스트 컴퓨터에 설치하세요.

  2. AOM-2721 OSM 후면에 전원을 연결하세요.

  3. 시리얼 콘솔을 연결하세요**.**

    • 장치의 COM1 시리얼 포트시리얼-USB 변환기를 통해 PC에 연결합니다.

    Advantech AOM-2721 Dev. Kit — USB over Serial-to-USB

  4. 호스트 PC에서 호스트 PC와 보드를 연결합니다. Edge Impulse CLI를 통해 직접 실행할 수 있습니다**.**

    edge-impulse-run-impulse --raw
    
    
  5. 전원 버튼을 눌러 부팅을 시작합니다. (약 30~60초 소요).

  6. 시리얼 터미널에 로그인 프롬프터가 뜨면 로그인 정보를 입력하세요.

    • Username: root

    • Password: oelinux123

  7. 네트워크 설정을 하세요.

      1. 방법 A: 이더넷 케이블 연결
      2. 방법 B: Wi-Fi 연결
  8. (선택 사항) SSH로 연결

    • 디바이스 IP 주소 찾기

      ifconfig | grep "inet addr:" | grep -v "127.0.0.1"
      

      결과값 예시

      inet addr:192.168.1.38  Bcast:192.168.1.255  Mask:255.255.255.0
      
    • SSH으로 로그인 (default password: oelinux123):

      ssh [email protected]
      

5. Edge Impulse Linux CLI 설치

6. Edge Impulse 프로젝트에 연결

  • 설치가 완료되면 다음 명령어를 실행합니다.

    $ edge-impulse-linux

    image

    명령어를 실행하면 로그인Edge Impulse 프로젝트 선택을 안내하는 마법사가 시작됩니다.

  • 프로젝트 전환 및 설정 변경: 현재 연결된 프로젝트를 변경하고 싶거나, USB 카메라와 같은 다른 카메라를 사용하려는 경우에는 명령어 뒤에 --clean 인수를 추가하여 실행해 주세요.

  • 실행 명령어 예시

    $ edge-impulse-linux –clean

7. 연결 확인

  • 이제 다 됐습니다! 디바이스는 Edge Impulse에 연결됐습니다. 확인하려면 Edge Impulse project 에서 Devices를 클릭하세요. 메뉴에서 장치 목록을 확인할 수 있습니다.

    image

예시:

>> https://advantech.edgeimpulse.com/studio/677676/acquisition/training

8. Edge Impulse 계정 생성 및 프로젝트 세팅

  • 먼저 계정을 만드세요.
    이미 계정이 있으면, 5단계 Data Acquisition and Upload로 건너뛰세요**.**

1단계:
회원가입: 어드밴텍 Edge Impulse 페이지에서 계정을 생성합니다.

  • 입력 항목 및 절차
  1. 사용자 정보 입력: 사용자 이름(Username), 회사 이메일, 직함(Job title), 비밀번호를 입력합니다.

  2. 보안 인증: 캡차(CAPTCHA) 인증을 완료합니다.

  3. 약관 동의: 서비스 이용 약관(Terms of Service)을 읽고 동의합니다.

  4. 가입 완료: 모든 항목을 입력한 후 “Sign up” 버튼을 클릭합니다.

image

2단계: 로그인 및 인증 절차

  1. 정보 입력: 사용자 이름(Username) 또는 회사 이메일 주소를 입력합니다.

  2. 다음 단계: “Next” 버튼을 클릭하여 본인 인증 절차를 계속 진행합니다.

  • 추가 옵션
    비밀번호 재설정:
    비밀번호를 잊으셨을 경우, 해당 페이지에서 비밀번호 재설정(Reset password) 옵션을 이용할 수 있습니다.
    새 계정 생성: 아직 계정이 없으시다면 새 계정 생성(Create a new account)을 선택하여 가입하실 수 있습니다.

image

3단계: 프로젝트 설정 및 생성

Edge Impulse 플랫폼에서 새로운 프로젝트를 생성하려면 다음 절차를 따르세요.

  1. 프로젝트 이름 입력: 프로젝트 명칭 입력란에 “Automated Optical Inspection”을 입력합니다.

  2. 프로젝트 유형 선택: 프로젝트 유형으로 Enterprise(엔터프라이즈)를 선택합니다.

  3. 공개 범위 설정: 필요에 따라 Public(공개) 또는 Private(비공개) 설정을 선택합니다.

  4. 생성 완료: 모든 설정을 마친 후 “Create new project” 버튼을 클릭하여 프로젝트 생성을 완료합니다.

image

4단계: 대시보드

Edge Impulse 플랫폼에 접속하면 생성하신 “Automated Optical Inspection” 프로젝트의 메인 화면을 확인하실 수 있습니다. 이 대시보드에서는 모델 개발을 위한 핵심 작업을 수행할 수 있습니다.

  • **주요 기능 및 작업
    • 데이터 관리:** 기존 데이터를 추가(Add existing data)하거나, 연결된 장치를 통해 새로운 데이터를 수집(Collect new data)할 수 있습니다.
    • 모델 업로드: 이미 학습된 외부 모델이 있다면 직접 업로드(Upload a model)하여 프로젝트에 적용할 수 있습니다.
    • 학습 가이드: 제공되는 튜토리얼을 따라가며 빠르고 정확하게 모델을 구축할 수 있습니다.

image

9. 데이터 수집 및 업로드

Step 5: 데이터 수집 및 데이터셋 구축

Edge Impulse 프로젝트 내 “Data acquisition” 페이지에서는 모델 학습에 필요한 데이터를 관리하고 새롭게 수집할 수 있습니다.

  1. 데이터 추가(Add data): 기존에 보유하고 있는 이미지나 데이터를 업로드하여 데이터셋 구축을 시작할 수 있습니다.
  2. 장치 연결: AOM-2721 개발 키트와 같은 장치를 직접 연결하여 실시간으로 새로운 이미지 데이터를 수집(Collect new data)할 수 있습니다.

image

Step 6: 기존 데이터 추가(Add existing data)

“Add existing data” 메뉴에서는 프로젝트에 데이터를 추가하기 위한 세 가지 주요 방법을 제공합니다. 사용자의 데이터 보관 방식에 따라 가장 적합한 옵션을 선택해 보세요.

  • 제공되는 3가지 옵션
  1. 데이터 업로드 (Upload data): 내 컴퓨터에 저장된 로컬 파일(이미지, CSV 등)을 직접 업로드합니다.

  2. 다른 프로젝트에서 가져오기 (Import from another project): 이전에 생성한 다른 Edge Impulse 프로젝트의 데이터를 현재 프로젝트로 복사해 옵니다.

  3. 스토리지 버킷 사용 (Use a storage bucket): AWS S3, Google Cloud Storage, Azure Blob Storage와 같은 클라우드 저장소에 연결하여 데이터를 대량으로 불러옵니다.

image

Step 7: 데이터 업로드(Upload data) 설정

“Upload data” 페이지에서는 로컬 환경에 있는 데이터를 프로젝트로 세부 설정하여 업로드할 수 있습니다.

  • 주요 설정 및 절차
  1. 파일 선택: 개별 파일들을 선택하거나, 특정 폴더(Folder) 전체를 선택하여 업로드할 수 있습니다.

  2. 데이터셋 분류: 업로드할 데이터가 모델 학습용(Training)인지, 성능 검증용(Testing)인지를 지정합니다.

  3. 레이블(Label) 정의: 데이터의 레이블을 다음 세 가지 방식 중 하나로 설정합니다.

    • 파일명에서 유추 (Infer from filename): 파일 이름에 포함된 키워드를 레이블로 자동 지정합니다.

    • 레이블 없음 (Unlabeled): 레이블을 지정하지 않고 업로드합니다.

    • 수동 입력 (Enter manually): 사용자가 직접 레이블 명칭을 입력합니다.

  4. 업로드 시작: 구성을 모두 마친 후 “Upload data” 버튼을 클릭하면 업로드가 시작됩니다.

image

Step 8: 학습 데이터셋 구축을 위한 폴더 선택

Edge Impulse 플랫폼에서 학습용 데이터셋(Training dataset)을 구축하기 위해 로컬 컴퓨터에 저장된 학습용 폴더(train)를 선택하여 업로드합니다.

  • 업로드 절차
  1. 데이터 선택: 업로드 페이지에서 ‘폴더 선택’ 옵션을 클릭합니다.

  2. 경로 지정: 내 컴퓨터 내에서 학습용 이미지들이 담긴 train 폴더를 찾아 선택합니다.

  3. 데이터셋 유형 확인: 업로드 설정에서 해당 데이터가 Training 세트로 지정되었는지 다시 한번 확인해 주세요.image

Step 9: 레이블링 형식 및 방식 설정 (객체 탐지용)

“Upload data” 페이지에서 객체 탐지 모델 학습을 위해 다음과 같이 설정을 세분화합니다.

  • 세부 설정 항목
  1. 레이블 형식(Labeling format) 설정: 드롭다운 메뉴에서 YOLO TXT 형식을 선택합니다. 이는 객체의 위치와 클래스 정보를 텍스트 파일로 관리하는 표준 형식입니다.

  2. 레이블 지정 방식(Labeling method) 선택: 객체 탐지 작업의 핵심인 경계 상자(Bounding boxes) 방식을 선택합니다.

    • 이 설정을 통해 이미지 내 특정 사물의 위치를 사각형 영역으로 지정할 수 있습니다.

image

Step 10: 테스트 데이터셋 업로드 및 카테고리 설정

학습된 모델의 성능을 객관적으로 검증하기 위해, 학습에 사용되지 않은 별도의 테스트 데이터를 업로드합니다.

  • 업로드 및 설정 단계
  1. 데이터 선택: 로컬 컴퓨터에서 테스트용 이미지들이 담긴 폴더 또는 파일을 선택합니다.

  2. 데이터 카테고리 지정: 업로드 설정 메뉴에서 데이터 분류(Upload category)를 **“Testing”**으로 선택합니다.

  3. 검증용 데이터셋 구축: 이렇게 분류된 데이터는 모델 학습 과정에는 포함되지 않으며, 나중에 모델의 정확도를 평가하는 용도로만 사용됩니다.

image

Step 11: 테스트 데이터셋 업로드 및 레이블 설정 완료

테스트 데이터셋의 업로드 구성을 마무리하여 모델 검증을 위한 준비를 마칩니다. 앞서 학습 데이터셋에 적용했던 설정과 동일하게 맞추는 것이 중요합니다.

  • 최종 설정 항목:
  1. 업로드 완료: 선택한 테스트용 파일들의 전송을 준비합니다.

  2. 레이블 형식(Format) 설정: 드롭다운 메뉴에서 YOLO TXT를 선택하여 기존 좌표 데이터와의 호환성을 유지합니다.

  3. 레이블링 방식(Method) 지정: 객체 탐지 성능을 정확히 측정할 수 있도록 경계 상자(Bounding box) 레이블링 방식을 적용합니다.

  4. 검증 데이터셋 준비: 이 과정을 통해 학습 모델의 실제 정확도를 평가할 수 있는 완벽한 테스트 세트가 구축됩니다.

image

Step 12: 후처리 데이터 업로드 및 카테고리 설정

모델의 예측 결과에 추가적인 로직을 적용하거나 성능을 미세 조정하기 위해, 후처리(Post-processing) 데이터를 업로드합니다.

  • 업로드 및 설정 단계:
  1. 데이터 선택: 로컬 환경에서 후처리 분석에 사용할 이미지나 관련 데이터를 선택합니다.

  2. 데이터 카테고리 지정: 업로드 설정 메뉴에서 데이터 분류(Upload category)를 “Post-processing”으로 선택합니다.

  3. 후처리 데이터셋 구축: 이 카테고리로 분류된 데이터는 모델이 감지한 결과를 필터링하거나, 특정 조건에 따라 경고를 발생시키는 등의 후속 알고리즘을 테스트하는 데 사용됩니다.

image

Step 13: 후처리 데이터 업로드 및 레이블 설정 완료

모델의 탐지 결과를 정교화하기 위한 후처리(Post-processing) 데이터 업로드 설정을 마무리합니다. 데이터의 일관성을 위해 이전 단계들과 동일한 형식을 유지해야 합니다.

  • 최종 설정 항목:
  1. 업로드 완료: 후처리 분석에 사용할 이미지 파일들의 전송을 준비합니다.

  2. 레이블 형식(Format) 설정: 드롭다운 메뉴에서 YOLO TXT를 선택하여 기존 학습/테스트 데이터와 형식을 일치시킵니다.

  3. 레이블링 방식(Method) 지정: 후처리 로직이 객체의 위치를 정확히 판단할 수 있도록 경계 상자(Bounding box) 레이블링 방식을 적용합니다.

  4. 후처리 데이터셋 구축: 이 과정을 통해 모델이 탐지한 결과값에 필터링이나 추가 알고리즘을 적용해 볼 수 있는 완벽한 데이터 세트가 준비됩니다.

image

Step 14: 데이터 수집(Data acquisition) 현황 및 관리

“Data acquisition” 페이지에서 현재까지 수집된 전체 데이터의 상태를 한눈에 파악하고 관리할 수 있습니다.

데이터 요약 및 구성

  • 전체 데이터 수: 현재 총 500개의 데이터 아이템이 수집되었습니다.

  • 카테고리 분류: 수집된 데이터는 각각 학습(Training), 테스트(Testing), 그리고 후처리(Post-processing) 세트로 분류되어 관리됩니다.

주요 관리 기능

  • 레이블 편집 (Edit labels): 업로드된 이미지의 레이블 명칭을 수정하거나 경계 상자(Bounding box) 위치를 조정할 수 있습니다.

  • 아이템 이동 (Move items): 데이터를 다른 카테고리로 이동시키거나(예: 학습 데이터를 테스트용으로 변경), 프로젝트 간에 이동할 수 있습니다.

  • 데이터 활성화/비활성화 (Enable/Disable data): 특정 데이터를 삭제하지 않고도 모델 학습에 포함할지 여부를 선택하여 관리할 수 있습니다.

image

10. 데이터 라벨링 및 준비

Step 15: 레이블 일괄 편집 (Edit labels) 및 불량 유형 설정

“Edit labels” 기능을 사용하면 대량의 데이터를 빠르고 효율적으로 분류할 수 있습니다. 이번 단계에서는 수집된 데이터 중 결함이 있는 샘플들을 특정 카테고리로 지정합니다.

  • 일괄 편집 및 레이블 지정 단계:
  1. 샘플 선택: 전체 데이터 중 490개의 샘플을 일괄 선택합니다.

  2. 레이블 설정: 선택한 샘플들의 레이블을 “crooked”(정렬 불량)으로 설정합니다.

  3. 추가 불량 카테고리: 드롭다운 메뉴를 통해 다음과 같은 다른 결함 유형도 선택하여 지정할 수 있습니다.

    • Over soldering: 과납 (납 도포량 과다)

    • Tombstone: 툼스톤 현상 (부품 서기 결함)

image

Step 16: 데이터셋 이미지 및 어노테이션 확인

업로드된 개별 이미지를 선택하면 화면 우측에서 상세한 레이블 상태를 확인할 수 있습니다.

상세 확인 항목:

  • 샘플 이미지 미리보기: 선택한 이미지가 화면에 표시되어 데이터의 품질을 직접 점검할 수 있습니다.

  • 경계 상자 어노테이션 (Bounding Box Annotations): 이미지 내에서 결함이 발견된 위치에 사각형 상자가 그려져 있는지 확인합니다.

  • 결함 레이블 지정: 예를 들어, 부품이 틀어지거나 삐뚤어진 결함 부위에 “crooked” 레이블이 정확히 지정되어 있는지 우측 패널에서 확인할 수 있습니다.

image

Step 17: 레이블 편집 및 과납(Over soldering) 지정

선택한 이미지의 결함 유형을 변경하고 싶을 때 “Edit labels” 기능을 활용할 수 있습니다.

설정 및 확인 단계:

  1. 이미지 선택: 데이터셋에서 수정이 필요한 샘플 이미지를 선택합니다.

  2. 레이블 변경: “Edit labels” 기능을 통해 해당 이미지의 결함 범주를 “over soldering”(과납)으로 지정합니다.

  3. 결과 확인: 변경 사항을 저장하면, 화면 우측의 상세 정보 창에서 레이블이 “over soldering”으로 업데이트된 것을 실시간으로 확인할 수 있습니다.

image

Step 18: 툼스톤(Tombstone) 결함 일괄 레이블 지정

“Edit labels” 기능을 활용하여 부품이 한쪽으로 세워지는 툼스톤(Tombstone) 현상이 발생한 이미지들을 한꺼번에 분류하고 확인하는 단계입니다.

일괄 레이블 지정 및 확인 절차:

  1. 샘플 선택: 데이터셋에서 툼스톤 결함이 포함된 이미지들을 다수 선택합니다.

  2. 레이블 지정: 일괄 편집 기능을 통해 선택된 이미지들의 레이블을 “tombstone”으로 설정합니다.

  3. 어노테이션 업데이트 확인: 설정을 마친 후, 화면 우측의 상세 패널에서 해당 이미지들의 경계 상자(Bounding box)와 함께 업데이트된 “tombstone” 레이블을 실시간으로 확인할 수 있습니다.

image

궁금하신 사항이 있으시면 언제든 말씀해 주세요!