/ 프로젝트 / AI / Object Recognition Studio
🎥
베타

Object Recognition Studio

보고, 가르치고, 학습하는 인식 스튜디오

카메라·이미지·링크(URL/유튜브) 영상에서 객체를 실시간으로 검출해 사람(초록)·사물(주황)로 하이라이트하고, 자세·상태 분석과 few-shot 직접 학습까지 하나의 공통 엔진으로 제공하는 데스크톱(PyQt5)·웹(Flask) 인식 스튜디오.

PyQt5FlaskPyTorchtorchvisionOpenCVChromaDBCUDA
×실시간 사물인식
실시간 사물인식

배경

일반 영상 인식 도구는 사전 정의된 클래스만 잡을 뿐, 내가 원하는 상태·자세·사물을 직접 가르치거나 실시간 영상을 안정적으로 다루기 어렵습니다. 카메라부터 유튜브 링크까지 한 화면에서 검출하고, 부족한 인식은 예시 몇 장으로 바로 가르치는 것이 목표입니다.

핵심 기능

  • 카메라·이미지·로컬 동영상·IP카메라/RTSP·유튜브 링크에서 실시간 객체 검출 및 사람(초록)/사물(주황) 하이라이트, COCO 클래스 한글 라벨 표시
  • 동영상에 재생/정지·현재 시간/총 길이·탐색 슬라이더(막대 클릭 시 그 지점부터 재생)를 제공하고, 라이브 소스는 탐색을 자동 비활성화
  • torchvision Keypoint R-CNN으로 사람 17관절 스켈레톤을 추출해 서있음/앉음/누움·손 듦을 추정(토글 시 지연 로딩, 의학적 진단 아님)
  • 이미지+라벨 few-shot 학습: MobileNetV3-Small 임베딩을 ChromaDB(미설치 시 .npz 폴백)에 저장하고 프로토타입+코사인 kNN으로 분류
  • 웹·유튜브 이미지 자동 수집(Openverse→Bing→DuckDuckGo, 부족 시 유튜브 썸네일)과 로컬 Ollama 기반 AI 검색어 보강으로 학습 데이터 구성
  • 사지 방향 코사인 유사도 기반 ‘유사 자세 학습’으로 기준 이미지와 비슷한 자세의 사진을 웹에서 찾아 함께 학습
  • 라벨별 누적·최대 동시·시간별 추이·상태 분포를 집계해 좌측 실시간 통계 패널과 Pillow 차트(막대+시간별 라인+상태분포)로 시각화
  • GPU(CUDA) 자동 사용/CPU 폴백, psutil·nvidia-smi 기반 시스템 모니터(CPU/RAM/GPU·VRAM·온도·전력) 제공
  • 시스템 메모리·앱 RSS 기준 과부하 감지 시 쿨다운 후 자동 재개, 반복되면 강제 정지·트레이 알림으로 앱 보호
  • 실시간 로그 패널(복사/저장/지우기·자동 스크롤, RotatingFileHandler)과 데스크톱(PyQt5)·웹(Flask) 병행 실행

동작 방식

검출은 torchvision 사전학습 Faster R-CNN MobileNetV3 FPN(기본, COCO 91클래스)이 담당하고 SSDLite·Faster R-CNN ResNet50로 속도/정밀을 바꿀 수 있으며, 사람 자세는 별도 Keypoint R-CNN을 토글 시에만 지연 로딩합니다. 영상 재생은 VideoWorker(QThread)가 표시 스레드와 검출 스레드를 분리하고 단일 슬롯 프레임 드롭·가로 960px 다운스케일·검출 레이트 캡으로 과부하를 막습니다. 직접 학습은 MobileNetV3-Small 임베딩을 벡터DB(ChromaDB, .npz 폴백)에 저장해 코사인 유사도로 분류하는 few-shot 방식이라 모델 가중치를 갱신하지 않고 CPU에서도 즉시 학습됩니다. detector가 검출·포즈·학습 결과를 통합해 그려 데스크톱(PyQt5)과 웹(Flask)이 같은 엔진을 공유합니다.

사용 방법

  1. main.py로 데스크톱을, `main.py web`으로 웹(127.0.0.1:5000)을 실행한다(최초 실행 시 검출 모델 가중치 자동 다운로드)
  2. 카메라를 켜거나 이미지·동영상 파일을 열거나 링크 칸에 URL/유튜브/IP카메라 주소를 입력해 인식을 시작한다
  3. 동영상은 재생/정지 버튼과 탐색 슬라이더로 원하는 구간을 이동하며 확인한다
  4. ‘자세/상태 분석’을 켜서 사람 스켈레톤·상태 추정을 활성화한다
  5. 학습 창에서 작업(사람 상태/동물 상태/사물/표정 감정/동작)과 라벨을 정하고 이미지 추가·URL·웹 자동 수집으로 예시를 모아 학습한다
  6. 통계/시간별 분석과 시스템 모니터 창으로 인식 결과와 자원 사용을 확인한다
분류: AI · 원본 경로: D:\python_Project\Object_Recognition