Projects 42

[프로젝트 후일담] Docker 기반 런타임

요약“Docker를 활용하여 리눅스 기반 런타임을 구현하였으며, 서비스별 의존성을 분리하고, 개발환경 차이에 따른 재현성을 높였으며, 추후 배포 시 이식성을 고려하였다.”즉,리눅스 기반 런타임: Docker Desktop(WLS2) 위에서 리눅스 컨테이너 실행의존성 분리: YOLO, STT, LangGraph 각각 격리된 환경재현성: 팀원/환경이 달라도 동일한 결과이식성: 로컬 ↔ 서버 배포가 동일 이미지로 가능A-EYE의 Docker 구조 한눈에컨테이너 1: YOLO (객체·세그멘테이션 추론)HTTP API (예: POST /infer) 혹은 WebSocket로 프레임/이미지 받음 → 결과 JSON 반환컨테이너 2: STT (음성 인식)WebSocket(실시간 스트림) 또는 REST(파일 업로드)로 음..

[프로젝트] 7. 프로젝트 트러블슈팅 및 향후과제

프로젝트명: 시선추적 + 월드깊이맵 + YOLOE 객체탐지 + STT + LLM (LangGraph) 융합 시스템작성일: 2025년 9월1. 개요본 프로젝트는 시선추적(eye tracking)과 월드카메라 깊이맵 추정을 결합하고, YOLOE 기반 객체탐지, Whisper STT, LangGraph LLM을 연계하여, 사용자의 응시 기반 인터랙션을 구현하는 것을 목표로 한다.개발 과정에서 다양한 기술적 트러블이 발생하였으며, 이를 해결하기 위한 트러블슈팅 결과를 아래와 같이 정리한다.2. 주요 트러블 및 해결 방안2.1 멀티 카메라 동기화 및 지연 문제 (최고 중요도)문제점: Eye cam과 World cam 간 타이밍 불일치 및 Wi-Fi 전송 지연(최대 7초).원인: 저성능 하드웨어(Raspberry ..

[프로젝트] 6. Langgraph-yolo 이미지 처리

메인(디바이스)프레임 업로드: POST /image/push (file, session_id, label?, ts?)YOLO 결과 업로드: POST /perception/yolo/push (JSON; session_id, ts, detections …)시선/깊이 업로드: POST /perception/gaze/push (JSON; session_id, ts, gaze_xy_norm, …)LangGraph(LLM)최근 이미지 설명: image_recent(session_id, limit)최근 YOLO 요약: yolo_scene(session_id, last)최근 시선·깊이 경고: gaze_depth_status(session_id, last)일반 이미지 키워드 조회: image_lookup(query)날씨..

[프로젝트] 5. 음성인식. Porcupine(웨이크워드) + Whisper(STT) + webrtcvad(발화구간) 파이프라인

전체 흐름(한 사이클)웨이크워드 감지hotword_detector_worker()가 Porcupine으로 16kHz, mono, 512샘플 프레임을 읽으며 키워드 대기감지되면 큐에 ("hotword_detected", device_index)를 넣고 스트림을 닫고 종료같은 마이크를 STT가 바로 열 수 있도록 충돌 방지STT 녹음 시작record_and_transcribe(device_index=같은_인덱스) 호출sounddevice.InputStream(..., dtype="int16")로 int16 모노로 입력콜백이 주는 가변 길이 오디오를 내부 byte 버퍼에 쌓고, 정확히 FRAME_MS(기본 20ms) 단위(= 320샘플 = 640바이트)로 프레임화VAD로 발화 구간 검출각 프레임을 webrtc..

[프로젝트] 4. 시선벡터 - 월드맵 정합

1) 구성요소 & 사용 모델A. 시선추적(Gaze) 모듈기본선택: Mediapipe FaceMesh + Iris이유: 추가 학습 없이 즉시 사용, CPU에서도 실시간(또는 준실시간) 가능, 구현 난이도/의존성 낮음.역할: 눈 윤곽·홍채 랜드마크 검출 → 홍채 평면 법선(or 안구중심–홍채중심 벡터)로 시선벡터 d\mathbf{d}d 계산.보정: EMA(Exponential Moving Average)로 방향/중심점 스무딩.대안·확장:RT-GENE (eye-only): 근접 눈 영상에서의 강건한 gaze 회귀(추후 정밀도 향상을 위한 후보).Gaze360: 얼굴/머리자세 변화에 강건한 3D gaze(추후 교체·앙상블 후보).EllSeg/YOLO-seg 기반: 동공/홍채 세그멘테이션 후 기하 모델 정밀화(추..

[프로젝트 A-EYE] 3. 시선추적_월드 깊이맵 구현

과제: 하나의 월드 카메라로 월드 영상의 x,y,z(깊이) 좌표 맵을 생성한다.사람은 두 눈의 시차를 이용해서 사물의 깊이감을 판단한다. 다만 본 프로젝트는 월드 카메라(눈)의 개수가 하나이므로 시차를 알 수 없다. 따라서 하나의 월드 카메라로 깊이를 알 수 있는 AI 모델이 필요하다. 월드 깊이맵 파이프라인: 제약: 하나의 world카메라로 2D 이미지에서 깊이를 구해야 함.모델: Depth-Anything(2024)1. MediaPipe FaceMesh로 양쪽 홍채 4점을 얻는다.2. 각 홍채 4점으로 홍채 평면을 추정하고 법선(= 시선방향 근사)을 구한다.3. 홍 채 반지름으로 눈알(구형) 중심을 근사한 후 시선벡터를 구한다.4. 좌/우 눈에서 나온 두 시선벡터의 최근접점 중점(P_mid)을 3D ..

[프로젝트 A-EYE] 2. 시선추적_시선벡터 구하기

과제: 안구를 촬영하여 사용자가 응시하는 곳의 3차원 시점 좌표를 구한다. 시선벡터 파이프라인: 제약: 하나의 eye카메라로 양 안의 시선벡터를 구해야 함모델: MediaPipe FaceMesh 1. MediaPipe FaceMesh로 양쪽 홍채 4점을 얻는다.2. 각 홍채 4점으로 홍채 평면을 추정하고 법선(= 시선방향 근사)을 구한다.3. 홍 채 반지름으로 눈알(구형) 중심을 근사한 후 시선벡터를 구한다.4. 좌/우 눈에서 나온 두 시선벡터의 최근접점 중점(P_mid)을 3D 응시점으로 사용.이론적 배경:1. 안구(eye)의 기본 구조각막(Cornea) : 눈의 가장 바깥 투명한 막, 카메라 렌즈와 비슷한 역할. 빛을 굴절시켜 망막에 초점을 맞춤.홍채(Iris) : 눈의 색 부분. 카메라의 조리개처럼..

[프로젝트 A-EYE] 1. 개요

프로젝트명 : A-EYE프로젝트 팀 명 : AI 방범대진행 기간 : 2025.09.01 ~ 2025.09.25프로젝트 소개 : 프로젝트 A-EYE는 실시간 시점 추점 기술을 기반으로 AI-Agent 서비스를 제공하는 웨어러블 디바이스 개발 프로젝트입니다. 사용자는 시각만으로 객체를 탐지하고 llm을 통해 음성으로 명령을 내릴 수 있습니다.프로젝트 주요 기술 : 시선 추적 : mediapipe 기반 안구 및 홍채 탐지월드 깊이맵 추정 : Depth-Anything(2024) 모델 기반 단안카메라 깊이 추정 객체 탐지 : yoloe(2025) 기반 객체탐지STT : openAI Whisper 음성인식 모델LLM : openAI GPT-4o mini 자연어처리 모델LangGraph : RAG(tavily) 및..

[도메인 공부 ] 8. 홍채 세그맨테이션 경량 CNN 모델

추천 경량 모델 (3클래스: sclera/iris/pupil)RITnet (OpenEDS 경쟁작, 초경량)구조: 저용량 인코더 + 얕은 디코더(UNet 계열)장점: 눈 전용으로 설계되어 동공/홍채 경계에 강함, 파라미터 매우 작음쓰임: 실시간(수백 FPS/GPU 가능 보고), 근접 눈 크롭에 특히 적합단점: 일반 장면보다 눈 전용 데이터에 강하게 최적화됨MobileNetV3-Small + Lite-UNet 디코더 (Depthwise)구조: MobileNetV3-Small(α=0.5~1.0) 백본 + 가벼운 up-proj 디코더장점: 속도/정확도 균형 아주 좋음, 파라미터 1~2M대까지 슬림화 가능쓰임: Edge/GPU/CPU 모두 쉬움, ONNX/TensorRT 변환 쉽고 윈도우 배포 용이팁: width..

[도메인 공부 ] 7. PLY(Point Cloud Data format)

PLY(Point Cloud Data format) 는 3차원 점군(point cloud) 데이터를 저장하기 위한 파일 포맷이에요.주로 .ply 확장자를 쓰고, 3D 스캐너/컴퓨터 비전/그래픽스 분야에서 많이 사용돼요. PLY 파일의 특징점(Point) 기반각 점은 (x, y, z) 좌표를 가짐 → 3차원 공간 상의 위치선택적으로 색상(R, G, B), 법선 벡터(normal), 투명도(alpha) 등 추가 속성을 가질 수 있음.ASCII / Binary 지원사람이 읽을 수 있는 텍스트(ASCII) 형식저장/읽기 속도가 빠른 이진(Binary) 형식둘 다 지원.헤더(Header) + 본문(Data) 구조헤더: 파일 형식, 점 개수, 속성 정의본문: 실제 점 데이터(x, y, z, r, g, b …)