정보
Agent DVR는 DeepStack AI, CodeProject AI, PlateRecognizer.com, Claude, Gemini, OpenAI(ChatGPT) 및 Ollama, vLLM, LM Studio와 같은 로컬 LLM과 완전히 통합되어 스마트 알림 필터링, 객체 인식, 장면 인식 및 지능형 이벤트 제어를 추가합니다.
DeepStack 및 CodeProject AI 외에도 동일한 API를 지원하는 다른 AI 서버를 사용할 수 있습니다:
객체 인식 & 컴퓨터 비전
- https://codeproject.github.io/ - 크로스 플랫폼 GPU/CPU 기반 AI 처리 서버
- https://docs.platerecognizer.com/ - 번호판 인식 서버(웹 기반 API)
- https://github.com/runningman84/docker-coral-rest-server - Coral USB 스틱의 가속화로 RPi(또는 Linux/Mac)의 Tensorflow-lite 모델
- https://github.com/robmarkcole/coral-pi-rest-server/ - Flask 앱을 통한 Coral USB 가속기의 Tensorflow-lite 모델
- https://xnorpx.github.io/blue-onyx/ - Blue Onyx 객체 감지 서비스
클라우드 AI 서비스
- https://platform.openai.com/ - 이미지 분석 및 채팅용 OpenAI API(ChatGPT, GPT-4 Vision)
- https://console.anthropic.com/ - 고급 추론 및 이미지 이해를 위한 Anthropic Claude API
- https://ai.google.dev/ - 멀티모달 AI 기능을 위한 Google Gemini API
- https://docs.anthropic.com/ - Claude API 설명서
- https://platform.openai.com/docs/ - OpenAI API 설명서
- https://ai.google.dev/gemini-api/docs - Gemini API 설명서
로컬 AI 서버(LLM)
- https://ollama.com/ - Ollama: 대형 언어 모델을 로컬에서 실행
- https://docs.vllm.ai/ - vLLM: 고처리량 LLM 추론 및 제공
- https://lmstudio.ai/ - LM Studio: 로컬 LLM을 위한 사용하기 쉬운 데스크톱 앱
- https://github.com/ollama/ollama - Ollama GitHub 저장소
- https://github.com/vllm-project/vllm - vLLM GitHub 저장소
AI 모델 추가
사용자 정의 AI 모델을 사용하면 Agent DVR의 객체 감지 기능을 확장할 수 있습니다. 예를 들어 야생동물, 배송 차량 또는 학습된 모델이 찾을 수 있는 다른 항목을 인식할 수 있습니다. 자신의 모델 파일을 Agent DVR에 추가하려면 서버 설정 > AI 설정으로 이동하여 AI 모델 아래의 객체 인식을 클릭합니다. Agent는 Agent DVR용으로 성능을 조정한 두 개의 사전 구축된 모델과 함께 제공됩니다.
모델을 설정하기 전에 Agent DVR의 모델 폴더에 추가해야 합니다(AI 모델 구축 참조). 이는 보통 Agent/Media/Models/ONNX에 있습니다(경로는 OS에 따라 다를 수 있습니다). 전체 경로는 확실하지 않은 경우 모델 추가 페이지에 표시됩니다. Agent는 .onnx 모델을 사용합니다. Python 도구를 사용하여 다른 AI 모델 형식을 ONNX로 변환할 수 있습니다.
모델을 구축하고 복사한 후 Agent에 추가하는 것은 간단합니다. 클릭하여 모델을 추가합니다:
- 이름: 모델에 이름을 지정합니다. 아무 이름이나 지정할 수 있습니다.
- 설명: 모델이 수행하는 작업에 대한 선택적 설명입니다.
- 모델 파일: 폴더에 복사한 모델 파일명을 선택합니다.
- 레이블: 모델이 찾는 레이블(또는 "클래스") 목록을 따옴표 없이 CSV 형식으로 입력합니다(공백은 자동으로 제거됩니다).
- 레이아웃: 모델이 NCHW인지 NHWC인지 선택합니다. 확실하지 않은 경우 대부분의 모델은 NCHW입니다.
- 채널 순서: 모델이 이미지를 RGB로 할지 BGR로 할지 선택합니다. 대부분의 모델은 RGB를 사용합니다. 모델이 단일 채널(그레이스케일)인 경우 이는 무시됩니다.
- 정규화: 데이터를 모델에 사용하기 전에 정규화하는 방법을 선택합니다. 대부분의 모델은 재조정(0-1)을 사용하며, 이는 픽셀 값을 255로 나눕니다.
- 이미지 패딩: 이는 이미지를 입력 크기로 늘일지 검은색 막대로 패딩할지를 제어합니다. 일반적으로 정확도를 위해 이미지를 패딩하는 것이 더 좋습니다.
- NMS 있음: 모델이 이미 내부적으로 비최대값 억제를 수행하는 경우 확인합니다. 그렇지 않으면 Agent가 자체적으로 NMS를 수행합니다. NMS는 결과 사각형이 필터링되는 방식을 제어합니다.
- 기본 NMS: NMS의 겹침 제한기를 설정합니다(기본값은 45% 겹침).
모델을 추가하면 장치의 객체 인식 탭에서 사용할 수 있습니다. 문제가 있는 경우 모델 설정으로 돌아가서 변경할 수 있습니다. Agent는 또한 모델 파일 다시 로드를 지원하므로 실행 중이어도 새 버전으로 덮어쓸 수 있습니다.
AI 서버 설정
AI 서버를 설정하려면 Agent DVR 주 인터페이스의 오른쪽 상단에 있는 아이콘을 클릭합니다. 그 다음에 구성 아래의 설정을 클릭하고, 드롭다운 메뉴에서 AI 설정을 선택한 후 AI 서버를 클릭합니다.
Agent DVR은 객체 인식, 얼굴 인식, ALPR(자동 번호판 인식) 및 초고해상도(향상) 등 다양한 AI 기능을 위해 CodeProject.AI와 통합됩니다. PlateRecognizer.com도 ALPR 제공자로 지원됩니다. CodeProject.AI는 오픈 소스이며 무료이고 대부분의 플랫폼과 호환됩니다.
시작하려면 사용자의 플랫폼에 맞는 AI 서버를 설치하고 AI 서버를 클릭한 후 추가를 눌러 Agent DVR을 연결하세요.
필요한 만큼 많은 AI 서버를 Agent DVR에 추가할 수 있습니다. Agent DVR의 카메라는 각 기능마다 다른 AI 서버를 사용하도록 설정하거나, 모든 작업 목록에 하나의 AI 서버를 사용할 수 있습니다.
서버 구성
- 이름: 서버의 이름을 지정합니다. 예: Cat Catcher.
- AI 서버 URL: AI 서버의 URL을 입력합니다. 예: http://localhost:32168/
- API 키: 설정한 경우 키를 입력합니다(선택 사항).
- 시간 초과: 서버 요청의 시간 초과(초 단위).
- 재시도 지연 시간: 이 서버에 대한 실패한 요청을 재시도하기 전의 시간(초 단위).
확인을 클릭하여 설정을 저장하세요.
OpenAI 사용
OpenAI("ChatGPT")를 설정하여 비디오 피드에서 발생하는 상황에 대한 질문에 답하도록 하려면 서버 설정 - AI 설정으로 이동하여 AI 질문 아래에서 "OpenAI"를 선택하세요.
- URL: 서비스의 URL을 입력하세요. 기본값은 "https://api.openai.com/v1/responses"입니다.
- OpenAI API 키: OpenAI에 등록한 후 API 키 페이지로 이동하여 새 비밀 키를 생성하세요. 이 키를 복사하여 지정된 필드에 붙여넣으세요.
- 모델: 사용할 모델을 지정하세요. 기본값은 gpt-5.4-mini입니다. OpenAI는 나중에 이를 제거하거나 변경할 수 있습니다.
- 최대 토큰 수: 요청당 최대 토큰 사용량을 설정합니다. 문제가 발생하면 /logs.html의 로그를 확인하세요. 토큰 사용량과 관련된 문제일 수 있습니다.
OpenAI를 설정한 후 AI 질문을 참조하여 카메라 피드에서 발생하는 상황에 대한 일반적인 질문에 답하는 데 사용하는 방법에 대한 사용 방법을 확인하세요.
Claude 사용
Claude AI를 설정하여 비디오 피드에서 발생하는 상황에 관한 질문에 답하도록 하려면 서버 설정 - AI 설정으로 이동하고 AI 질문 아래에서 "Claude"를 선택합니다.
- URL: 서비스의 URL을 입력합니다. 기본값은 "https://api.anthropic.com/v1/messages"입니다.
- Claude API 키: Claude에 가입한 후 API 키 페이지를 방문하고 새로운 비밀 키를 생성합니다. 이 키를 복사하여 필드에 붙여넣습니다.
- 버전: 사용할 API 버전을 지정합니다. 기본값은 2023-06-01입니다. 이는 Anthropic에 의해 어느 시점에 제거되거나 변경될 수 있습니다.
- 모델: 사용할 모델을 지정합니다. 쓰는 소리 기준 기본값은 claude-sonnet-4-6(Claude Sonnet 4.6)입니다.
- 최대 토큰 수: 요청당 최대 토큰 사용량을 제어합니다. 토큰 사용량과 관련된 문제가 있는 경우 /logs.html의 로그를 확인합니다.
Claude를 구성한 후 AI 질문을 참조하여 카메라 피드에서 일반적인 시나리오를 인식하는 방법을 알아봅니다.
Gemini 사용
비디오 피드에서 일어나는 일에 대한 질문에 답하도록 Gemini를 설정하려면 서버 설정 - AI 설정으로 이동하여 AI 질문 아래에서 "Gemini"를 선택하세요.
- URL: 서비스에 대한 URL을 입력하세요. 기본값은 "https://generativelanguage.googleapis.com"입니다.
- Gemini API 키: Gemini에 가입한 후 API 키 페이지를 방문하여 새 비밀 키를 만드세요. 이 키를 복사하여 필드에 붙여넣으세요.
- 버전: 사용할 API 버전을 지정하세요. 기본값은 v1beta입니다. 이는 Google에서 언제든지 제거되거나 변경될 수 있습니다.
- 모델: 사용할 모델을 지정하세요. 작성 시점의 기본값은 gemini-2.5-flash입니다. API 키를 입력한 후 Agent는 계정에서 사용 가능한 비전 모델을 나열합니다.
- 최대 토큰 수: 요청당 최대 토큰 사용량을 제어합니다. 토큰 사용량과 관련된 문제가 있는 경우 /logs.html의 로그를 확인합니다.
Gemini를 설정한 후 AI 질문을 참고하여 카메라 피드에서 일반적인 시나리오를 인식하는 방법을 알아보세요.
다른 LLM 서버 사용
Agent DVR가 카메라에서 캡처한 이미지를 설명하고 비디오 스트림에서 일어나는 상황에 대한 질문에 답하기 위해 자신의 로컬 LLM 서버(vLLM, Ollama, LM Studio 같은)를 사용할 수 있습니다. 설명하기와 AI 질문을 참조하세요.
로컬 AI 서버를 설정하려면 서버 설정 - AI 설정으로 이동하여 사용하려는 LLM(Ollama, vLLM 또는 LM Studio) 옆의 설정 버튼을 클릭하세요.
- URL: LLM 서버가 실행 중인 끝점을 지정하세요. 기본 URL은 다음과 같습니다:
- Ollama:
http://localhost:11434/api/chat - vLLM:
http://localhost:8000/v1/chat/completions - LM Studio:
http://localhost:1234/v1/chat/completions
- Ollama:
- API 키: LLM 서버에 인증이 필요한 경우 여기에 API 키를 입력하세요. 대부분의 로컬 서버는 특별히 설정되지 않는 한 이것이 필요하지 않습니다.
- 모델: 이미지 분석에 사용할 비전 지원 모델을 선택하세요. 이 모델을 이미 LLM 서버에 다운로드하고 로드해야 합니다. Agent가 다음을 포함한 인기 있는 옵션들을 제안합니다:
- Qwen VL 모델(높은 성능)
- Gemma 4(다양한 크기 범위)
- Llama 3.2 Vision(Meta)
- Mistral Small 3.1
- moondream(매우 작음, 저사양 하드웨어에 좋음, Ollama만 해당)
- 온도: 응답의 창의성과 정확성을 제어합니다(0.0-1.0). 낮은 값(0.3-0.4)은 더 객관적이고 일관성 있는 설명을 생성합니다. 높은 값(0.6-0.8)은 더 다양하고 창의적인 응답을 생성합니다. 권장 사항: 보안 카메라 분석의 경우 0.4입니다.
- 최대 토큰 수: AI 응답의 최대 단어/토큰 수입니다. 높은 값은 더 자세한 설명을 허용하지만 생성하는 데 시간이 더 오래 걸립니다. 권장 사항: 자세한 이미지 분석의 경우 300-500, 간단한 설명의 경우 150-250입니다.
- top_p: 어휘 선택을 제한하여 응답 다양성을 제어합니다(0.0-1.0). 낮은 값은 더 일반적인 단어를 사용하고, 높은 값은 더 다양한 어휘를 허용합니다. 권장 사항: 정확성과 자연스러운 언어의 좋은 균형을 위해 0.9입니다.
- top_k: 모델을 상위 K개의 가장 가능성 높은 다음 단어에서 선택하도록 제한합니다. 낮은 값(20-40)은 더 집중된 응답을 생성하고, 높은 값(80-100)은 더 다양한 결과를 허용합니다. 권장 사항: 신뢰할 수 있는 이미지 설명의 경우 50입니다.
PlateRecognizer.com 사용
Agent DVR에서 LPR(ANPR 또는 번호판 인식)을 설정하려면 서버 설정 - AI 설정으로 이동하여 Plate Recognizer 아래에 자세한 정보를 입력합니다. Plate Recognizer에서 무료 평가판에 가입하세요. 신용카드가 필요하지 않습니다.
DoubleTake 사용
DoubleTake는 다음을 사용하여 얼굴 인식을 처리하기 위한 통합 API를 제공하는 오픈 소스 플랫폼입니다:
- CompreFace
- Amazon Rekognition
- DeepStack
- CodeProject.AI Server
- Facebox
DoubleTake를 설치하고 선호하는 얼굴 인식 옵션으로 설정해야 합니다.
DoubleTake를 설정한 후 Agent DVR을 열고 서버 설정 - AI 설정으로 이동한 다음 DoubleTake 옆의 설정 버튼을 클릭합니다.
DoubleTake 서버의 URL(예: http://localhost:3000/)과 설정한 경우 비밀번호를 입력합니다.
확인을 클릭한 다음 카메라를 편집하고 얼굴 인식으로 이동합니다. AI 서버 옵션을 DoubleTake로 설정하고 필요에 따라 얼굴 인식을 설정합니다.
AI 모듈 관리
위에서 참조한 AI 서버 목록에서 AI 서버를 설정, 테스트, 편집 및 제거할 수 있는 옵션이 있습니다. 설정 단추를 클릭하여 선택한 서버에서 사용 가능하거나 설치된 모듈을 표시합니다.
Agent DVR은 서버에서 현재 모듈 목록을 검색하고 각 모듈을 설치, 제거, 설정 및 테스트하기 위한 사용자 인터페이스를 제공합니다. 모든 기본 CodeProject.AI 모듈에 대해 지원되지만 Agent DVR은 이 중 일부만 사용합니다.
Agent DVR에서 ALPR(자동 번호판 인식), 초고해상도 또는 얼굴 인식을 사용하려면 이 페이지에서 해당 모듈을 설치해야 합니다. 일반적으로 이러한 모듈에는 기본값 설정으로 충분하지만, 각 모듈 아래의 아이콘을 클릭하여 설정할 수 있습니다.