MirAI 사용자 매뉴얼

VERSION 2.0.8

1. 개요

MirAI는 지능형 영상 감시 및 AI 분석 플랫폼입니다. 고성능 Rust 기반 서버(AI 추론, 스트림 관리, 데이터 저장)와 Qt C++ 데스크톱 클라이언트(실시간 모니터링, 사건 관리, 설정)로 구성됩니다.

주요 기능

  • 실시간 영상 스트리밍 — GStreamer를 통한 저지연 RTSP 및 하드웨어 가속 디코딩. 서버당 최대 100대 카메라 지원.
  • AI 이벤트 감지 — 불꽃(화재), 연기, 쓰러짐, 침입에 대한 파이프라인 기반 감지. ROI/RONI 영역 및 신뢰도 임계값 설정 가능.
  • 멀티 카메라 그리드 — 1×1부터 10×10까지 유연한 그리드(최대 100개 동시 표시). 카메라 수에 따라 그리드가 자동으로 늘어나거나 줄어듭니다. 드래그 앤 드롭 재배치, 카메라 그룹 지원.
  • 카메라 그룹 & AI 파이프라인 — 카메라를 그룹으로 구성하고 그룹별 AI 파이프라인 할당.
  • 사건 녹화 & 감사 — 사전 이벤트 버퍼를 포함한 자동 녹화. 감사 워크플로우(True/False), 다중 형식 다운로드(MP4, AVI, PNG, JPG).
  • 알림 시스템 — 이메일, Webhook, HTTP Endpoint, SNMP 전달을 지원하는 IF-THEN 규칙 엔진. 글로벌 속도 제한 및 조용한 시간대 설정.
  • 멀티 서버 지원 — 여러 서버에 동시 연결, 각각 별도 탭으로 표시.
  • 역할 기반 접근 제어 — Super_Admin, Admin, User 역할과 세분화된 권한.
  • 시스템 관리 — 저장소 정책, 예약 백업/복원, 감사 추적, 로그 뷰어, 자동 업데이트.
  • 다국어 지원 — 영어, 한국어, 일본어. 시간대 및 날짜 형식 설정 가능.

메인 화면 구성

서버 목록, 라이브 뷰 그리드, 알림 패널이 표시된 메인 화면
서버 목록, 라이브 뷰 그리드, 알림 패널이 표시된 메인 화면
영역용도
상단 내비게이션라이브 뷰, 사건 로그, 설정 간 전환. 음소거 토글, 사용자 정보, 창 제어.
서버 목록 (좌측)서버 → 그룹 → 카메라 트리 뷰. 항목을 그리드로 드래그.
라이브 뷰 그리드 (중앙)크기 조절 가능한 그리드의 카메라 스트림. 드래그 앤 드롭 재배치 지원.
알림 패널 (우측)썸네일이 포함된 실시간 AI 알림. 클릭하여 사건 상세 보기.

시스템 요구 사항

구성 요소최소권장
OSWindows 10 (64비트)Windows 11 (64비트)
CPUIntel i5 / Ryzen 5Intel i7 / Ryzen 7+
RAM8 GB16 GB+
GPU (서버)NVIDIA GTX 1060NVIDIA RTX 3060+ (AI 추론)
네트워크100 Mbps LAN1 Gbps LAN
디스크500 MB (앱) + 20 GB50+ GB SSD

사용자 역할

역할접근 수준
Super_Admin전체 접근 권한. AI 파이프라인 생성, 수정, 활성화/비활성화, 삭제 가능.
Admin파이프라인 수정(생성/편집/삭제/활성화/비활성화)을 제외한 모든 기능에 접근 가능. 파이프라인 조회 가능. 카메라, AI 모델, 사용자, 시스템 설정, 업데이트, 알림 및 기타 모든 기능 관리 가능.
User라이브 스트림 및 사건 로그(읽기 전용). 일반 설정 및 도움말만 접근 가능.

참고: Super_Admin과 Admin의 유일한 권한 차이는 AI 파이프라인을 추가하고 수정할 수 있는 능력입니다. 다른 모든 기능(모델 관리, 시스템 재시작, 업데이트, 사용자 등록, 백업/복원)은 두 역할 모두 동일하게 접근할 수 있습니다.

2. 시작하기

로그인

서버 IP, ID, 비밀번호 필드와 ID/PW 저장 체크박스가 표시된 로그인 화면
서버 IP, ID, 비밀번호 필드와 ID/PW 저장 체크박스가 표시된 로그인 화면
  1. MirAI 실행 — 바탕화면 아이콘을 더블클릭합니다.
  2. 서버 IP 입력 — 서버의 IP 주소를 입력합니다 (예: 192.168.1.100). 기본 포트: 7878 (HTTPS).
  3. ID 및 비밀번호 입력 — 시스템 관리자로부터 받은 자격 증명을 사용합니다.
  4. "ID/PW 저장" 체크 (선택 사항) — 다음 접속 시 ID와 비밀번호를 저장합니다.
  5. "로그인" 클릭 — 서버가 시작 중인 경우 "서버 대기 중..." 대화 상자가 나타납니다.

팁: 버튼을 클릭하지 않고 Enter 키를 눌러 로그인 양식을 제출할 수 있습니다.

초기 설정

참고: AI 엔진 초기화, AI 모델 등록, AI 파이프라인 생성은 Super_Admin이 수행합니다. 관리자(Admin)는 아래 단계부터 진행하세요.

첫 로그인 후 다음 단계를 순서대로 완료하세요:

  1. 기본 비밀번호 변경 → 설정 → 유저 설정 → 관리자 계정 편집
  2. 라이센스 활성화 → 설정 → 라이센스 → 키 입력 또는 파일 업로드
  3. 카메라 추가 → 설정 → 서버와 카메라 → + 카메라 추가
  4. 카메라 그룹 생성 → 카메라 그룹 탭 → + 그룹 생성
  5. 그룹에 AI 파이프라인 할당 → 그룹 상세 → AI 파이프라인 구성
  6. 카메라별 감지 활성화 → 라이브 뷰 → 카메라 선택 → AI 설정 → 유형 활성화

카메라 추가

자동 검색 (ONVIF)

검색 버튼과 체크박스가 있는 검색된 카메라 목록이 표시된 카메라 추가 대화 상자
검색 버튼과 체크박스가 있는 검색된 카메라 목록이 표시된 카메라 추가 대화 상자
  1. 설정 → 서버와 카메라 → + 카메라 추가로 이동
  2. 자동 모드 선택
  3. 검색 클릭 — 네트워크에서 검색된 카메라가 목록에 표시됨
  4. 추가할 카메라 체크
  5. 필요한 경우 카메라 자격 증명(ID/비밀번호) 입력
  6. 추가 클릭

수동 (RTSP URL)

  1. 수동 모드 선택
  2. 카메라명과 전체 RTSP URL 입력: rtsp://user:pass@192.168.1.50:554/stream1
  3. 필요한 경우 카메라 자격 증명(ID/비밀번호) 입력
  4. 추가 클릭

먼저 확인: 추가하기 전에 VLC Media Player에서 RTSP URL을 테스트하여 올바르게 스트리밍되는지 확인하세요.

자격 증명 포함 URL: 입력한 RTSP URL에 자격 증명이 포함된 경우(rtsp://user:pass@host/...) ID/비밀번호 필드가 자동으로 채워지고 URL에서는 자격 증명이 제거됩니다. 따라서 자격 증명이 한 곳에서 관리되어 수정하기 편리합니다.

카메라 그룹 & AI 파이프라인

좌측에 그룹 카드, 우측에 파이프라인 할당 드롭다운과 카메라 목록이 있는 그룹 상세 패널이 표시된 카메라 그룹 탭
좌측에 그룹 카드, 우측에 파이프라인 할당 드롭다운과 카메라 목록이 있는 그룹 상세 패널이 표시된 카메라 그룹 탭

그룹은 카메라를 구성하고 공유 AI 처리를 할당합니다. 그룹 내 모든 카메라는 동일한 파이프라인 구성을 공유합니다.

카메라 이동·제거: 카메라를 그룹에서 빼거나 다른 그룹으로 옮기면 해당 카메라의 개별 AI 설정이 초기화되고 AI 엔진도 중지됩니다. 따라서 더 이상 그룹에 속하지 않는 카메라에서 AI 처리가 계속 실행되지 않습니다.

  1. 그룹 생성: 서버와 카메라 → 카메라 그룹 → + 그룹 생성 → 이름 입력 → 생성
  2. 카메라 할당: 그룹 상세 → + 카메라 할당 → 카메라 체크 → 할당. 카메라는 하나의 그룹에만 속할 수 있으므로, 이미 다른 그룹에 속한 카메라는 카메라 할당 목록에 나타나지 않습니다.
  3. 파이프라인 할당: 그룹 상세 → AI 파이프라인 구성 → 파이프라인 선택 → 추가
  4. 카메라별 감지 활성화: 라이브 뷰 → 카메라 선택 → AI 설정 → 불꽃/연기/쓰러짐/침입 활성화 → 저장

3. 라이브 뷰

그리드 제어

그리드에 카메라 추가

  • 카메라 드래그 — 서버 목록에서 빈 그리드 셀로 드롭
  • 서버 드래그 → 해당 서버의 모든 카메라로 그리드 채움
  • 카메라 그룹 드래그 → 그룹 내 모든 카메라로 그리드 채움
  • 재배치 — 셀 간 드래그로 카메라 위치 변경

이미 그리드에 배치된 카메라를 다시 추가하면 중복으로 생성되지 않고 기존 타일이 강조 표시됩니다.

그리드 탐색

그리드 크기는 배치된 카메라 수에 따라 자동으로 조정됩니다(예: 카메라를 추가하면 1×2가 1×3으로 확장). 별도의 줌 조작은 없습니다. 카메라를 드래그하는 동안 대상 셀이 강조 표시되고 적용될 그리드 크기(예: 3 × 2)가 미리보기로 나타납니다.

동작방법
카메라 하나를 전체 화면으로 확대카메라 더블클릭
전체 화면에서 그리드로 복원다시 더블클릭 또는 Escape 키
카메라 ID 배지 표시그리드 우클릭 → "카메라 ID 표시"
드래그 작업 취소Escape 키

카메라 호버 메뉴

호버 컨트롤(바운딩 박스 표시, 고화질/저화질, 캡쳐, 풀스크린 보기, 정보 표시, 닫기)이 표시된 카메라 타일
호버 컨트롤(바운딩 박스 표시, 고화질/저화질, 캡쳐, 풀스크린 보기, 정보 표시, 닫기)이 표시된 카메라 타일

카메라 타일 위에 마우스를 올리면 제어 바가 나타납니다:

버튼기능
바운딩 박스 표시AI 감지 오버레이 표시/숨기기 (감지된 객체 주위의 색상 박스)
고화질/저화질고해상도와 저해상도 스트림 간 전환
캡쳐현재 프레임의 스크린샷을 디스크에 저장
풀스크린 보기이 카메라를 전체 그리드 영역으로 확대
정보 표시카메라 정보 오버레이 표시/숨기기 (이름, IP, 해상도, FPS, 코덱)
닫기그리드 셀에서 이 카메라 제거

알림 패널 (우측 사이드바)

AI가 이벤트를 감지하면:

  1. 우측 패널에 알림 카드가 나타남: 이벤트 유형 아이콘, 카메라 이름, 서버, 타임스탬프, 썸네일
  2. 알림을 클릭하면 사건 상세 보기로 바로 이동
  3. "모두 지우기"를 클릭하여 모든 알림 해제
  4. 음소거 버튼 (우측 상단, 스피커 아이콘)으로 알림 소리 끄기

패널에 마우스를 올려 두면 새 카드가 도착해도 스크롤 위치가 고정되어 읽고 있던 카드를 놓치지 않습니다. 패널은 최대 50개의 카드를 유지하며 가장 오래된 카드부터 정리됩니다. 패널이 접혀 있을 때 새 알림이 도착하면 다시 열기 아이콘이 빨간색으로 깜빡입니다.

이벤트 유형에 따라 알림음이 다르게 재생됩니다: 불꽃 및 연기 → Alarm, 침입 → Siren, 쓰러짐 → Alert, 기타 → Beep. 알림음은 약 2초 동안 디바운스되며, 각 알림 규칙의 "소리 재생" 토글로 규칙별로 끌 수 있습니다.

속도 제한: 높은 활동 기간 동안 과부하를 방지하기 위해 우측 패널 알림은 초당 2개로 제한됩니다. 속도 제한은 우측 패널 표시에만 적용되며, 모든 이벤트는 사건 로그에 정상적으로 기록됩니다.

서버 관리

서버 목록 트리 구조

서버 → 그룹 → 카메라 계층 구조와 온라인/오프라인 표시기가 있는 서버 목록 사이드바
서버 → 그룹 → 카메라 계층 구조와 온라인/오프라인 표시기가 있는 서버 목록 사이드바

트리에서 카메라 이름은 현재 그리드에 표시 중이면 밝은 흰색으로, 표시되지 않은 경우 회색으로 나타납니다. 카메라 이름 옆에는 다음 아이콘이 표시됩니다:

  • AI 칩 아이콘 — 보라색이면 해당 카메라에 AI 감지가 활성화되어 있음
  • 알림 벨 아이콘 — 노란색이면 해당 카메라를 대상으로 하는 알림 규칙이 있음
  • 녹화 점 — 빨간색=녹화 중, 노란색=대기 중, 주황색=오류

카메라 그룹을 우클릭하면 모두 펼치기 / 모두 접기 메뉴를 사용할 수 있습니다. 또한 카메라를 다른 그룹 위로 드래그하면 (확인 후) 해당 그룹으로 재할당할 수 있습니다.

서버 컨텍스트 메뉴 (서버 우클릭)

  • 서버 정보 — CPU·GPU 제품명 확인
  • 카메라 추가 — 카메라 추가 대화 상자 열기
  • 테스트 카메라 — 스트림 작동 확인을 위한 테스트 비디오 창 열기
  • 로그 확인 — 이 서버의 사건 로그 열기

카메라 컨텍스트 메뉴 (카메라 우클릭)

  • 카메라 설정 — 카메라 이름, 해상도, 프로필 편집
  • 로그 확인 — 이 카메라의 사건만 보기
  • AI 설정 — 이 카메라의 AI 감지 구성
  • 플로우 보기 — AI 파이프라인 플로우 다이어그램 보기 (읽기 전용)

모든 컨텍스트 메뉴에는 카메라 ID 표시 토글이 포함되어 그리드에 카메라 ID 배지를 켜고 끌 수 있습니다.

서버 추가

  1. 서버 목록 영역에서 우클릭 → 서버 추가
  2. 서버의 IP 주소, 사용자 ID, 비밀번호 입력
  3. 테스트를 클릭하여 연결 확인
  4. 추가 클릭
  5. 새 서버가 상단에 새 탭으로 나타남

서버 정보 대화 상자

서버 우클릭 → 서버 정보에서 표시:

  • 서버 이름 — 현재 로그인한 서버에서 관리자 권한으로 접속한 경우에만 편집할 수 있습니다. 그 외에는 읽기 전용이며 저장 버튼이 표시되지 않습니다.
  • CPU·GPU 제품명
  • 서버 제거 버튼 — 이 서버와의 연결 해제

여러 서버 사용

MirAI는 하나의 클라이언트에서 여러 서버를 모니터링할 수 있습니다. 로그인한 서버가 로그인 서버이며, (위 절차로) 추가한 서버는 추가 서버로 상단에 별도의 탭으로 표시됩니다. 탭을 클릭하여 서버를 전환합니다.

추가 서버에서도 모든 것을 모니터링할 수 있습니다. 카메라를 그리드에 배치하고, 라이브 영상을 보고, 서버 목록 트리를 탐색하고, 사건 로그를 열고, AI 이벤트를 확인할 수 있습니다. 각 카메라에는 해당 카메라가 속한 서버에 정의된 AI 이벤트 종류가 표시됩니다.

추가 서버는 읽기 전용입니다. 카메라 그룹 지정, AI 설정, 알림 규칙, 사용자 관리 및 대부분의 설정은 현재 로그인한 서버에서만 변경할 수 있습니다. 추가 서버를 구성하려면 해당 서버에 직접 로그인하세요. (추가 서버에서는 서버 이름 등의 항목이 읽기 전용이며 그룹으로의 드래그 앤 드롭이 비활성화됩니다.)

추가 서버 모니터링을 중지하려면 서버를 우클릭 → 서버 정보서버 제거를 선택합니다. 이는 클라이언트 연결만 해제하며 서버 자체에는 영향을 주지 않습니다.

카메라 상태 표시기

다음 상태는 라이브 뷰 그리드의 각 카메라 타일에 표시됩니다:

상태시각적 표시의미
온라인정상 영상, 복구 시 녹색 플래시정상 스트리밍 중
정지노란색 깜빡임 테두리, 정지된 프레임스트림 일시 중단
재연결 중더 빠른 노란색 깜빡임, "재연결 중 (n/50)" 시도 횟수 표시서버가 연결 재설정 중
오프라인오프라인 아이콘 오버레이, 빨간색 깜빡임 테두리카메라 접근 불가
연결 중"연결 중..." 텍스트 깜빡임초기 연결 진행 중
변경 중"설정 업데이트 중..." 텍스트구성 적용 중
오류오류 아이콘 오버레이, 빨간색 깜빡임 테두리, "연결 실패" 텍스트복구 불가능한 스트림 오류

AI 이벤트가 발생하면 해당 카메라 타일의 테두리가 이벤트 색상으로 깜빡입니다(해당 이벤트의 감지 박스와 동일한 색상이며, 색상이 없으면 빨간색). 이 화면 플래시 알림은 일반 설정에서 켜거나 끌 수 있습니다.

이벤트 아이콘 및 색상: 각 AI 이벤트 유형에는 파이프라인의 이벤트 출력에서 설정한 아이콘과 색상이 있으며, 클라이언트는 이를 단일 기준으로 사용합니다. AI 설정의 이벤트 칩과 인시던트 로그의 라벨에 이 아이콘과 색상이 표시되고, 위의 알림 플래시도 동일한 색상을 사용합니다.

4. 설정 & 구성

상단 내비게이션 바의 설정 버튼을 통해 접근합니다. 좌측 사이드바에 설정 카테고리가 표시됩니다.

일반 설정

언어 선택기, 글꼴 크기, 시간대, 날짜 형식, 기본 랜딩, 세션 타임아웃, Windows 시작 시 실행 토글이 표시된 일반 설정 페이지
언어 선택기, 글꼴 크기, 시간대, 날짜 형식, 기본 랜딩, 세션 타임아웃, Windows 시작 시 실행 토글이 표시된 일반 설정 페이지

모든 사용자 역할에서 사용 가능. 외관 및 환경 설정 구성:

설정옵션
언어영어, 한국어, 일본어
글꼴 크기작게, 기본, 크게
시간대시스템 목록에서 선택
날짜 & 시간 형식다양한 형식 옵션
기본 랜딩라이브 뷰, 사건 로그, 또는 설정
세션 타임아웃15분 / 30분 / 1시간 / 없음
Windows 시작 시 실행시스템 부팅 시 자동 실행
알림 볼륨알림 소리 볼륨을 0~100 슬라이더로 조절
모든 알림 음소거모든 알림 소리를 끔
화면 플래시 알림AI 감지 시 해당 카메라의 그리드 타일 테두리가 색상으로 깜빡임 (기본 켜짐)

서버와 카메라

상태 표시기와 그룹 할당이 있는 카메라 테이블이 표시된 서버와 카메라 설정 페이지
상태 표시기와 그룹 할당이 있는 카메라 테이블이 표시된 서버와 카메라 설정 페이지

전체 카메라 탭

  • 테이블 뷰: 카메라 이름, IP, 상태(온라인/오프라인), 그룹, AI 감지 상태, 알람 (AI 감지 상태 = 해당 카메라에 AI 감지가 활성화되어 있는지 여부)
  • 검색: 카메라 이름 또는 IP로 필터링
  • 필터: 상태 드롭다운(온라인/오프라인/전체), 그룹 드롭다운
  • 일괄 작업: 여러 카메라 체크 → 그룹에 할당 또는 삭제
  • 편집/삭제: 카메라별 작업 버튼

카메라 그룹 탭

  • 그룹 카드 표시: 이름, 할당된 파이프라인, 카메라 수, AI 수, 알람 수
  • 그룹 생성: + 그룹 생성 → 이름 → 생성
  • 카메라 할당: 그룹 상세 → + 카메라 할당 → 체크 → 할당
  • AI 파이프라인 구성: 드롭다운에서 파이프라인 선택 → 추가

참고: 카메라별 AI 감지 활성화 및 알람 채널 설정은 라이브 뷰에서 카메라를 선택한 뒤 AI 설정에서 수행합니다(아래 AI 설정 → 카메라별 AI 설정 참조).

AI 설정

모델 카드가 있는 모델 허브와 파이프라인 빌더 캔버스가 표시된 AI 설정 페이지
모델 카드가 있는 모델 허브와 파이프라인 빌더 캔버스가 표시된 AI 설정 페이지

접근: 설정 → AI 설정. Admin과 Super_Admin 모두 AI 모델을 관리할 수 있습니다. Super_Admin만 파이프라인을 생성/수정할 수 있습니다 (Admin은 파이프라인 조회 가능). Admin에게는 파이프라인 생성/편집/삭제 컨트롤이 비활성화된 상태(툴팁 안내 포함)로 표시되며, 파이프라인 수정은 Super_Admin만 가능합니다.

AI 모델 허브

  • 모델 카드 보기: 유형 배지(Detector/Classifier/Embedder/Segmenter), 버전, 이름, 설명
  • 검색 & 필터: 모델 검색, 유형별 필터(전체/Detector/Classifier/Embedder/Segmenter)
  • 모델 업로드: + 신규 AI 모델 추가 → 가중치(.onnx/.pt/.enc/.tflite)와 매니페스트(.toml) 업로드 → 저장
  • 설정: 모델 카드의 [설정] 버튼 → 버전 관리 대화 상자. 버전 기록, 모델 엔진·설정(.toml) 교체, 새 버전 업로드, 설명 편집을 제공합니다(모델명은 변경 불가). 변경 사항은 자동으로 적용되며, 구조 변경 시 서버 재시작이 권장됩니다. 활성 파이프라인에서 사용 중인 모델을 변경하면 재시작 권장 안내가 표시됩니다.
  • 삭제: 사용 중이지 않은 모델만 삭제할 수 있습니다. 활성 파이프라인이 참조하는 모델은 삭제할 수 없습니다.

참고: 모델에는 별도의 켜기/끄기 토글이 없습니다. 모델은 활성 파이프라인의 노드로 사용될 때 동작합니다. 모델 추가·업데이트는 기존에 동작 중인 AI에 영향을 주지 않습니다.

AI 파이프라인 빌더

참고: AI 파이프라인의 생성·편집은 Super_Admin 전용입니다. 관리자(Admin)는 파이프라인을 조회하고(카메라 우클릭 → 플로우 보기), 기존 파이프라인을 카메라 그룹에 할당할 수 있습니다.

파이프라인 탭에서는 "활성만 표시" 토글로 현재 활성화된 파이프라인만 추려서 볼 수 있습니다.

카메라별 AI 설정

감지 유형 토글(불꽃/연기/쓰러짐/침입), 카메라 미리보기에 그려진 ROI 다각형, 신뢰도 임계값 슬라이더가 표시된 카메라별 AI 설정
감지 유형 토글(불꽃/연기/쓰러짐/침입), 카메라 미리보기에 그려진 ROI 다각형, 신뢰도 임계값 슬라이더가 표시된 카메라별 AI 설정

라이브 뷰에서 카메라 우클릭 → AI 설정:

  • AI 기능 ON → 감지할 이벤트 유형 선택: 불꽃, 연기, 쓰러짐, 침입
  • 정의된 규칙: 각 이벤트 출력을 펼치면 모달에서 해당 감지 규칙(파이프라인의 이벤트 출력 옵션, 신뢰도 임계값 등)을 보고 편집할 수 있습니다. 임계값이 낮을수록 더 민감하고, 높을수록 오탐이 줄어듭니다.
  • ROI: 다각형 그리기 — 이 영역 내부에서만 감지
  • RONI: 다각형 그리기 — 이 영역 내부의 감지 무시 (ROI/RONI 다각형은 ROI 편집기 안에서 개별 삭제)
  • FPS to AI: AI로 전송되는 프레임을 선택하는 선택 항목(드롭다운) (낮을수록 = GPU 사용량 감소)
  • 초기화: 이 카메라의 AI 설정을 기본값으로 되돌립니다.
  • 저장을 클릭하여 변경 사항 적용

감지 박스의 기본 색상은 다음과 같습니다: 쓰러짐 = 노란색, 불꽃 = 빨간색, 연기 = 주황색, 침입 = 파란색. 색상은 파이프라인별로 설정할 수 있습니다.

알림 설정

채널 목록과 규칙 빌더(IF-THEN 단계)가 표시된 알림 설정
채널 목록과 규칙 빌더(IF-THEN 단계)가 표시된 알림 설정

채널 (전달 방법)

이메일 SMTP 설정(서버, 포트, 암호화, 자격 증명, 제목 템플릿)이 표시된 알림 채널 구성 양식
이메일 SMTP 설정(서버, 포트, 암호화, 자격 증명, 제목 템플릿)이 표시된 알림 채널 구성 양식
유형구성
이메일 (SMTP)서버, 포트, 암호화, 자격 증명, 제목, HTML 템플릿
일반 WebhookURL, HTTP 메서드(GET/POST/PUT), 헤더, 페이로드
HTTP Endpoint기본 URL, 인증(없음/Basic/Bearer/API Key), 헤더
SNMP TrapIP, 버전(v1/v2c/v3), 커뮤니티 문자열 또는 v3 보안

각 채널은 테스트, 활성/비활성 토글, 편집, 또는 삭제(규칙이 참조하는 경우 삭제 불가)할 수 있습니다. 헤더가 여러 개 필요한 경우 쉼표(,)로 구분합니다.

Webhook 및 HTTP Endpoint 채널은 기본적으로 내부/LAN 주소(예: 온프레미스 SIEM이나 패트라이트)를 대상으로 지정할 수 있습니다.

규칙 (IF-THEN 자동화)

5단계 마법사가 표시된 알림 규칙 빌더: IF 트리거 → 범위 & 스케줄 → 스로틀 → 게이트 → THEN 동작
5단계 마법사가 표시된 알림 규칙 빌더: IF 트리거 → 범위 & 스케줄 → 스로틀 → 게이트 → THEN 동작

5단계로 규칙을 생성합니다. 규칙 이름(1-100자)을 입력하세요:

  1. IF (트리거): AI 이벤트(불꽃/연기/쓰러짐/침입), 카메라 상태(온라인/오프라인), 또는 시스템 알림
  2. 범위 & 스케줄: 카메라/그룹 선택 + 스케줄(항상 또는 사용자 지정 요일/시간)
  3. 스로틀: 주기 — 즉시(매 감지), 분당 1회, 시간당 1회, 일괄(5분), 다이제스트(매시간) (+ 하루 최대 횟수, 선택)
  4. 게이트 (선택): 추가 조건 (예: 신뢰도 > 0.5, 박스 크기)
  5. THEN (동작): 채널 및 이메일 수신자 선택. 각 규칙은 발생 시 재생할 알림음을 선택할 수 있으며, 미리듣기 버튼으로 들어볼 수 있습니다.

글로벌 정책

  • 알림 카운트다운: 동일 소스에서 동일 이벤트 알림 간 최소 초
  • 제한: 분당 / 시간당 최대 알림 수
  • 조용한 시간대: 지정된 시간 동안 모든 알림 억제

정책 저장을 클릭하여 적용. 초기화를 클릭하여 기본값 복원.

유저 설정

Admin/Super_Admin 전용. 설정 → 유저 설정.

  • 유저 추가: + 추가 → 유저명(3-20자), 비밀번호(4자 이상), 이메일, 역할 → 저장
  • 편집: 역할, 비밀번호 또는 상태 변경 (이메일은 변경 불가). 상태를 '비활성'으로 설정하면 삭제하지 않고 로그인을 차단합니다.
  • 역할: Admin, User (Super_Admin은 UI에서 할당할 수 없습니다)
  • 역할 변경 제약: User를 Admin으로 올릴 수는 있으나, Admin을 User로 낮출 수는 없습니다.

라이센스 관리

라이센스 상태(활성/만료), 만료일, 카메라 수, 키 입력 필드가 있는 활성화 양식이 표시된 라이센스 관리 페이지
라이센스 상태(활성/만료), 만료일, 카메라 수, 키 입력 필드가 있는 활성화 양식이 표시된 라이센스 관리 페이지

라이센스 상태

라이센스 페이지에 표시: 현재 상태(활성화 / 만료 임박(N일 남음) / 만료됨), 만료일, 라이센스된 카메라 수.

라이센스는 해당 장비(하드웨어/장치 ID)에 종속됩니다.

온라인 활성화

  1. 키 입력: XXXXX-XXXXX-XXXXX-XXXXX
  2. 라이센스 활성화 클릭

오프라인 활성화

  1. 요청 파일 생성 클릭 → .req 파일 저장
  2. 파일을 지원팀에 전송 → 라이센스 파일 수신
  3. 라이센스 파일 업로드 클릭 → 라이센스 적용

만료: 만료 후에는 7일간의 고정 유예 기간이 적용되며, 이 기간에는 시스템이 계속 동작하고 '만료 임박 — N일 남음'으로 표시됩니다. 유예 기간이 끝나면 AI 추론이 중단되지만, 라이브 뷰와 녹화는 계속됩니다. 갱신 키는 지원팀에 문의하세요.

시스템 설정

경로 구성 필드(녹화, 캡처, 백업), 경로 테스트 버튼, 보존 정책(N일 후 자동 삭제), 저장소 분석 차트가 표시된 저장소 및 보존 설정
경로 구성 필드(녹화, 캡처, 백업), 경로 테스트 버튼, 보존 정책(N일 후 자동 삭제), 저장소 분석 차트가 표시된 저장소 및 보존 설정
하위 탭기능
감사 추적모든 작업의 불변 로그. 심각도/작업/날짜별 필터링. 사용자, 작업, 리소스 또는 세부 정보로 검색. CSV/TXT로 다운로드.
시스템 로그앱/네트워크/카메라 로그. 로그 레벨 구성(OFF/INFO/WARNING/ERROR). 날짜 범위 및 형식 선택으로 다운로드.
저장소 & 보존녹화/이미지/백업 경로 설정. 경로 테스트로 접근성 확인. 새 폴더 만들기. 보존 정책 설정(N일 후 자동 삭제). 기간별 저장소 분석 보기(최근 30일, 31-90일, 90일 이상). 수동 정리를 위한 지금 정리 버튼.
백업 & 복원수동 또는 예약 백업. 수동 백업 트리거 → 포함할 카테고리를 개별적으로 선택(모두 선택/모두 해제 지원):
  • 데이터베이스 — 카메라, 사용자, 규칙, 설정, 감사 추적, 사건 로그
  • AI 모델 파일 — 모델 디렉토리의 모델 가중치 및 매니페스트
  • 사건 미디어 — 캡처된 이미지 및 비디오 녹화
예약 백업(매일/매주/매월)은 데이터베이스 카테고리에만 적용됩니다. 최근 백업 테이블(날짜, 크기, 유형, 다운로드 및 복원 버튼). 복원: 백업 선택 → 카테고리 확인 → 시스템이 변경 적용(전체 복원 시 재시작 가능).

백업 미리보기: 백업을 트리거하기 전에 미리보기 대화 상자에서 포함될 카테고리, 예상 파일 수, 총 크기를 정확히 보여줍니다. 진행하기 전에 검토하고 확인하세요.
업데이트 & 보고서현재 버전 및 릴리스 날짜. 업데이트 확인 / 업데이트 다운로드(진행률 표시줄 및 팝업에 릴리스 노트 표시). 오프라인 업데이트(에어갭 환경용 .zip 업로드). 일일 보고서 다운로드. 별도의 시스템 중지 버튼은 없으며, 재시작은 업데이트 적용 후 또는 모델/파이프라인 변경 후에 상황에 맞게 안내(프롬프트)됩니다.

복원 경고: 복원은 선택한 카테고리의 현재 구성을 덮어씁니다. 복원하기 전에 항상 새 백업을 생성하세요.

도움말 페이지

설정 → 도움말 (모든 역할에서 사용 가능). 포함 내용:

  • 사용자 매뉴얼 — 기본 브라우저에서 이 매뉴얼 열기
  • 지원 문의 — MarkAny Co., Ltd. 지원 정보 (웹사이트, 전화, 이메일)
  • 키보드 단축키 — 모든 키보드 단축키 빠른 참조
  • 서드파티 라이선스 — Qt (LGPL v3), GStreamer (LGPL v2.1+), OpenCV (Apache 2.0), Rust crates (MIT/Apache 2.0)

시스템 유지보수

캐시된 데이터를 지워 디스크 공간 확보 (설정 → 시스템 설정 → 업데이트 & 보고서 → 유지보수):

  • 애플리케이션 캐시, 임시 파일, 썸네일 캐시
  • 시스템 로그, 비디오 녹화, 이미지 캡처, 백업 저장소
  • 모든 캐시 & 로그 지우기: 원클릭 정리 (확인 필요, 캐시 재구축 중 일시적으로 느려질 수 있음)

5. 사건 로그

상단 내비게이션의 사건 로그 탭을 통해 접근하거나, 서버/카메라 우클릭 → 로그 확인.

사건 필터링

필터 바(날짜 범위, 카메라, 이벤트 유형, 감사 상태)와 썸네일 및 상태가 표시된 페이지네이션 결과가 있는 사건 로그 테이블
필터 바(날짜 범위, 카메라, 이벤트 유형, 감사 상태)와 썸네일 및 상태가 표시된 페이지네이션 결과가 있는 사건 로그 테이블
필터옵션
날짜 범위오늘, 이번 주, 이번 달, 또는 사용자 지정(달력 선택기)
카메라특정 카메라 또는 전체
이벤트 유형불꽃, 연기, 쓰러짐, 침입, 또는 전체 (목록은 구성된 이벤트 유형에 따라 동적으로 채워짐)
감사 상태확인됨, 미확인, 전체

테이블 표시: 일시, 썸네일, 카메라, 이벤트 종류, 이벤트(True/False), 확인자, 확인 일시. 하단에 페이지네이션.

사건 상세 보기

비디오 플레이어, 타임라인 스크러버, 바운딩 박스 오버레이, 감사 컨트롤이 있는 사건 상세 보기
비디오 플레이어, 타임라인 스크러버, 바운딩 박스 오버레이, 감사 컨트롤이 있는 사건 상세 보기

행을 클릭하여 열기:

  • 비디오 재생 — 타임라인 스크러버 포함, 약 5초의 사전 이벤트 버퍼 포함. 재생 클릭, 드래그하여 탐색.
  • AI 바운딩 박스 오버레이 — 감지된 내용을 보여주는 캡처 이미지 위의 오버레이
  • 메타데이터: 이벤트 종류, 서버 이름, 카메라 이름, 최종 수정일시, 이벤트 True/False

사건 감사

  1. True 또는 False 선택 — True = 실제 이벤트 확인, False = 오탐
  2. 메모 추가 (선택 사항) — 관찰한 내용 설명 (최대 500자)
  3. "체크" 클릭 — 사건에 기록됨: 확인자, 최종 수정일시, True/False 상태

팁: 감사 후 평가를 변경해야 하는 경우 수정을 클릭하세요.

이미지 라이브러리: 사건을 감사하면 감지 박스를 잘라낸 이미지가 판정에 따라 이미지 라이브러리에 저장됩니다. 확인된 사건은 True 모음으로, 오탐은 False 모음으로 분류되며(카메라 및 이벤트 종류별로 정리), 그중 핵심은 False 모음입니다. AI가 이 False 모음을 기준 자료로 활용해 앞으로 발생하는 유사한 오탐을 인식하고 억제하기 때문이며, 이것이 라이브러리의 주된 용도입니다. 이미지는 항상 최신 판정을 반영합니다. True와 False를 서로 바꾸면 해당 모음으로 이동하고, 판정을 해제하면 제거됩니다. 같은 장면이 반복적으로 여러 번 포착되어 생기는 유사 중복 이미지는 자동으로 정리되어 서로 다른 패턴마다 하나씩만 보관되므로, 오래된 이미지를 지우는 방식이 아니라 중복 제거를 통해 라이브러리가 간결하게 유지됩니다. 매일 실행되는 작업이 현재 판정에 맞춰 라이브러리를 동기화합니다.

사건 다운로드

  • 상세 페이지에서 다운로드 아이콘 클릭
  • 형식 선택: 이미지(PNG/JPG) 및/또는 비디오(MP4/AVI)
  • 바운딩 박스 포함 체크박스를 선택하면 AI 감지 박스가 내보낸 이미지/비디오에 함께 그려집니다.
  • 저장 폴더 선택 → 진행률 표시기와 함께 다운로드 시작

추가 내보내기 옵션

  • 사건 보고서 생성: 설정 → 시스템 설정 → 업데이트 & 보고서 → 사건 보고서 생성 → 날짜 범위, 스타일, 그래프 그룹화 선택 → 생성
  • 일일 보고서: 설정 → 시스템 설정 → 업데이트 & 보고서 → 일일 보고서 다운로드

6. 자주 묻는 질문

Q: MirAI는 몇 대의 카메라를 처리할 수 있나요?

서버: 최대 100개 스트림(하드웨어에 따라 다름). 클라이언트 그리드: 최대 100개 동시 피드. 성능은 해상도, 프레임 레이트, GPU 성능에 따라 달라집니다.

Q: 원격으로 시스템에 접근할 수 있나요?

예. 포트 포워딩(서버 포트 7878/7575) 또는 VPN을 사용하세요. 운영 환경에서는 VPN을 강력히 권장합니다. TLS(HTTPS/WSS)는 기본적으로 활성화되어 있습니다.

Q: 어떤 카메라가 지원되나요?

RTSP를 지원하는 모든 카메라: Hikvision, Dahua, Axis, Hanwha, Bosch 등. ONVIF 카메라는 자동 검색이 가능합니다.

Q: 어떤 AI 이벤트를 감지할 수 있나요?

불꽃(화재), 연기, 쓰러짐(사람 넘어짐), 침입(무단 진입). 각각 ROI/RONI 영역으로 카메라별 설정 가능.

Q: 여러 서버에 어떻게 연결하나요?

서버 목록 우클릭 → 서버 추가 → IP 및 자격 증명 입력. 각 서버는 별도 탭으로 나타납니다.

Q: 첫 부팅에 왜 15-30분이 걸리나요?

서버가 GPU에 최적화된 TensorRT 엔진 파일을 빌드합니다. 이 과정은 한 번만 발생합니다. 이후 시작은 30초 이내입니다.

Q: 휴대폰으로 알림을 받을 수 있나요?

예. Slack, Teams, LINE 또는 기타 HTTP 서비스를 가리키는 Webhook 채널을 설정하세요. SMTP를 통한 이메일도 지원됩니다.

Q: 구성을 어떻게 백업하나요?

설정 → 시스템 설정 → 백업 & 복원. 수동 또는 예약(매일/매주/매월). 모든 설정, 카메라, 사용자, 규칙이 포함됩니다.

Q: ROI와 RONI의 차이점은 무엇인가요?

ROI = 관심 영역(이 영역 내부에서만 감지). RONI = 비관심 영역(감지에서 제외). 오탐을 유발하는 영역에 RONI를 사용하세요.

Q: 애플리케이션을 어떻게 업데이트하나요?

설정 → 시스템 설정 → 업데이트 & 보고서 → 업데이트 확인. 오프라인 환경에서는 .zip 업로드 옵션을 사용하세요. 항상 클라이언트보다 서버를 먼저 업데이트하세요.

Q: 어떤 네트워크 포트를 열어야 하나요?

7878 — REST API(HTTPS, 클라이언트 ↔ 서버). 7575 — WebSocket(WSS, 실시간 동기화). 8554 — RTSP 영상 스트리밍. 7979 — TCP 파일 전송. 서버 머신에서 이 포트들의 인바운드 트래픽을 방화벽에서 허용해야 합니다.

Q: 비밀번호를 어떻게 변경하나요?

설정 → 유저 설정으로 이동 → 계정의 편집 버튼 클릭 → 새 비밀번호 입력 → 저장 클릭. 관리자는 다른 사용자의 비밀번호도 변경할 수 있습니다.

Q: 새 서버로 어떻게 마이그레이션하나요?

1) 기존 서버에서 전체 백업 생성(설정 → 시스템 설정 → 백업 & 복원 → 모든 카테고리를 포함한 수동 백업). 2) 새 서버에 MirAI 설치. 3) 새 서버에 로그인. 4) 백업 & 복원 → 복원 → 백업 파일 업로드 또는 선택. 5) 카메라가 재연결되고 AI 파이프라인이 활성화되었는지 확인.

7. 문제 해결

연결 문제

연결 끊김 & 재연결 동작

서버 연결이 끊어지면:

  • 메인 화면에 "연결 끊김" 오버레이가 나타남
  • 카메라 스트림이 마지막 수신 프레임에서 정지
  • 클라이언트가 몇 초마다 자동으로 재연결 시도
  • 재연결되면 스트림이 재개되고 오버레이가 사라짐
  • 연결 끊김 중 수신된 알림은 소급하여 표시되지 않음

일반적인 연결 문제

  • 대상 머신에서 서버 애플리케이션이 실행 중인지 확인
  • IP 주소 및 포트 확인 (기본값: 7878)
  • 방화벽이 서버 포트에서 인바운드 연결을 허용하는지 확인
  • 두 머신이 동일 네트워크에 있거나 VPN이 구성되어 있는지 확인
  • 사용 중 "서버 연결 끊김" → 네트워크 확인. 클라이언트가 자동 재연결합니다.

카메라 문제

피드가 표시되지 않음

  • 먼저 VLC에서 RTSP URL을 테스트하여 MirAI 외부에서 작동하는지 확인
  • 카메라가 서버 머신에서 접근 가능한지 확인 (클라이언트뿐만 아니라)
  • 카메라 상태 표시기 확인 (녹색=온라인, 빨간색=오프라인, 노란색 깜빡임=정지)
  • 서버 로그 확인: logs/server.log

검색 중 카메라를 찾을 수 없음

  • IP 범위가 올바르고 카메라 전원이 켜져 있는지 확인
  • 카메라가 ONVIF를 지원하고 활성화되어 있는지 확인
  • 대신 RTSP URL을 통해 수동으로 추가 시도

AI 감지 문제

  • 카메라에 대해 감지가 활성화되어 있는지 확인 (우클릭 → AI 설정)
  • 카메라가 활성 파이프라인이 할당된 그룹에 있는지 확인
  • 신뢰도 임계값 낮추기 (테스트용으로 0.3-0.5 시도)
  • ROI/RONI 확인 — 이벤트가 ROI 다각형 외부에 있을 수 있음
  • 서버 GPU가 과부하되지 않았는지 확인 (>90% → 프레임 드롭)
  • 올바른 AI 모델이 모델 허브에서 활성 상태인지 확인
  • logs/ai_pipeline.log 확인

알림 문제

  • 채널이 활성 상태인지 확인 (채널 탭에서 토글 ON)
  • 채널 카드의 테스트 버튼을 클릭하여 전달 확인
  • 이벤트 유형을 채널에 연결하는 규칙이 있는지 확인
  • 글로벌 정책 확인 — 조용한 시간대가 억제하고 있을 수 있음
  • 속도 제한 확인 (분당/시간당 최대치가 소진되었을 수 있음)
  • 이메일: SMTP 설정, 포트, 암호화, 자격 증명 확인
  • Webhook: 서버에서 URL에 접근 가능한지 확인

일반적인 오류 메시지

메시지원인해결 방법
"ID와 비밀번호를 확인해주세요"잘못된 자격 증명관리자에게 확인
"IP 유효하지 않음"잘못된 IP 형식형식 사용: 192.168.1.100
"세션 만료"비활동 타임아웃다시 로그인; 일반 설정에서 타임아웃 증가
"AI 엔진 로딩 중"첫 부팅 모델 빌드15-30분 대기, 재시작하지 마세요
"카메라를 찾을 수 없음"ONVIF 검색 실패IP 범위, 카메라 전원, ONVIF 활성화 확인
"서버 연결 끊김"네트워크 중단네트워크 확인; 클라이언트 자동 재연결
"라이센스 만료"라이센스 갱신 필요새 키를 위해 지원팀에 문의
"유효하지 않은 라이센스"키 형식 오류XXXXX-XXXXX-XXXXX-XXXXX 사용, 특수 문자 없음

성능 팁

  • 클라이언트 CPU 부하를 줄이기 위해 더 작은 그리드 레이아웃 사용
  • 많은 피드를 모니터링할 때 호버 메뉴에서 카메라를 저해상도로 전환
  • "FPS to AI" 슬라이더를 낮춰 서버 GPU 사용량 감소
  • 보존 정책을 설정하여 오래된 녹화를 자동 삭제하고 디스크 공간 확보
  • 클라이언트 머신에서 다른 리소스 집약적 애플리케이션 종료

지원팀에 문의 시: 앱 버전(설정 → 시스템 설정 → 업데이트), OS 정보, 재현 단계, logs/ 디렉토리의 로그 파일을 포함하세요.

빠른 참조: 팁 & 단축키

동작방법
카메라를 전체 화면으로 확대그리드에서 카메라 더블클릭
그리드로 복귀다시 더블클릭 또는 Escape 키
빠른 카메라 접근서버 트리에서 카메라 우클릭
서버의 모든 카메라로 그리드 채우기서버 이름을 그리드로 드래그
카메라 ID 표시/숨기기그리드 우클릭 → "카메라 ID 표시"
추가 전 카메라 테스트카메라 우클릭 → 테스트 카메라
빠른 사건 필터링오늘 / 이번 주 / 이번 달 버튼 사용
서버 상태 확인서버 우클릭 → 서버 정보
로그인 제출로그인 화면에서 Enter 키
전체 화면 종료Escape 키 또는 전체 화면 버튼 다시 클릭
드래그 작업 취소드래그 중 Escape 키

8. 용어집

ROI (Region of Interest)
카메라 뷰에서 사용자가 정의한 다각형. AI 감지는 이 영역 내부에서 발생하는 이벤트에 대해서만 트리거됩니다.
RONI (Region of Non-Interest)
AI 감지에서 제외하는 사용자 정의 다각형. RONI 내부의 이벤트는 오탐을 줄이기 위해 무시됩니다.
RTSP (Real-Time Streaming Protocol)
IP 카메라에서 MirAI 서버로 실시간 비디오 스트림을 제어하고 전달하는 데 사용되는 네트워크 프로토콜.
ONVIF (Open Network Video Interface Forum)
IP 카메라 상호 운용성을 위한 산업 표준. 벤더별 설정 없이 자동 카메라 검색 및 구성을 가능하게 합니다.
TensorRT
NVIDIA의 고성능 딥러닝 추론 최적화 도구 및 런타임. MirAI는 TensorRT를 사용하여 NVIDIA GPU에서 AI 모델 실행을 가속화합니다.
NSSM (Non-Sucking Service Manager)
MirAI 서버를 부팅 시 자동으로 시작되는 백그라운드 Windows 서비스로 실행하는 데 사용되는 Windows 서비스 관리자.
Pipeline
비디오 프레임을 처리하고 감지 이벤트를 생성하는 구성된 AI 처리 단계 체인(Detector → Classifier → Tracker).
Bounding Box
AI 모델이 객체 또는 이벤트를 감지한 위치를 나타내는 비디오 프레임 위의 직사각형 오버레이.
Confidence Threshold
AI 감지가 보고되기 위해 필요한 최소 확실성을 결정하는 숫자 값(0.0–1.0). 낮은 값은 민감도를 높이고, 높은 값은 오탐을 줄입니다.
JWT (JSON Web Token)
MirAI 클라이언트와 서버 간 인증에 사용되는 보안 토큰 형식. 로그인 시 발급되며 이후 모든 API 요청에 포함됩니다.
SMTP (Simple Mail Transfer Protocol)
이메일 전송을 위한 표준 프로토콜. MirAI의 알림 시스템이 구성된 메일 서버를 통해 알림 이메일을 전달하는 데 사용됩니다.
SNMP (Simple Network Management Protocol)
네트워크 장치 모니터링을 위한 프로토콜. MirAI는 엔터프라이즈 네트워크 관리 시스템(NMS)과 통합하기 위해 SNMP 트랩을 전송할 수 있습니다.
Webhook
AI 감지가 발생할 때 외부 URL로 실시간 이벤트 데이터를 전송하는 HTTP 콜백. Slack, Teams, LINE 또는 사용자 지정 서비스와 통합하는 데 사용됩니다.