Tự triển khai Frigate NVR: Hệ thống giám sát Camera AI thông minh cho HomeLab

HomeLab tutorial - IT technology blog
HomeLab tutorial - IT technology blog

Loại bỏ báo động giả: Giám sát nhà thông minh hơn

Nếu bạn từng sở hữu một chiếc camera an ninh phổ thông, bạn sẽ hiểu cảm giác này: điện thoại rung chuông lúc 3 giờ sáng chỉ vì một con bướm đêm bay sát ống kính. Các phương pháp phát hiện chuyển động truyền thống cực kỳ “ngớ ngẩn”. Chúng không phân biệt được đâu là kẻ trộm, đâu là một chiếc lá ướt bay qua hiên nhà. Sau khi phải xóa tới 200 thông báo “ma” mỗi ngày, tôi nhận ra HomeLab của mình cần một cách xử lý video thông minh hơn.

Frigate NVR thay đổi hoàn toàn cuộc chơi bằng cách chạy nhận diện vật thể AI cục bộ, thực sự hiểu những gì nó nhìn thấy. Thay vì báo chuông mỗi khi gió thổi, nó xác định chính xác một “người” ở hiên nhà hoặc một con “chó” trong vườn. Vì chạy hoàn toàn trên phần cứng của riêng bạn, các luồng video riêng tư sẽ không bao giờ chạm tới đám mây của bên thứ ba.

So sánh NVR: Tìm kiếm giải pháp phù hợp

Hầu hết các hệ thống an ninh gia đình đều thuộc một trong ba nhóm sau. Việc chọn đúng giải pháp sẽ quyết định hệ thống của bạn là một công cụ hữu ích hay là một nguồn gây phiền toái liên tục.

Giải pháp dựa trên đám mây (Nest, Ring, Arlo)

Đây là những loại dễ lắp đặt nhất, nhưng sự tiện lợi đi kèm with cái giá của nó. Bạn sẽ phải trả phí thuê bao hàng tháng từ 10–20 USD và mất hoàn toàn quyền riêng tư. Nếu mất internet, hệ thống an ninh của bạn sẽ ngừng hoạt động. Với nhiều người đam mê HomeLab, việc gửi video 24/7 từ cửa nhà mình đến một tập đoàn lớn là điều không thể chấp nhận.

NVR cục bộ truyền thống (Blue Iris, Shinobi)

Các hệ thống như Blue Iris rất mạnh mẽ và giữ dữ liệu cục bộ, nhưng chúng tiêu tốn rất nhiều tài nguyên. Blue Iris yêu cầu một máy chạy Windows riêng biệt và thường tốn khoảng 70 USD cho một giấy phép. Mặc dù ổn định, các hệ thống này vẫn dựa nhiều vào việc phát hiện thay đổi điểm ảnh. Bạn có thể sẽ mất hàng tuần để khoanh vùng loại bỏ cây cối và điều chỉnh các thanh trượt độ nhạy, nhưng vẫn nhận được cảnh báo khi một đám mây che khuất mặt trời.

NVR cục bộ tích hợp AI (Frigate)

Frigate được xây dựng chuyên biệt cho việc nhận diện vật thể AI theo thời gian thực. Nó sử dụng các chuyển động cơ bản để kích hoạt kiểm tra AI cục bộ, sau đó xác nhận loại vật thể trước khi làm phiền bạn. Nó giao tiếp qua MQTT, biến camera của bạn thành các cảm biến dữ liệu phong phú cho Home Assistant. Điều này cho phép kích hoạt các kịch bản tự động hóa phức tạp, chẳng hạn như nháy đèn hiên nhà chỉ khi một phương tiện lạ đi vào lối vào.

Thực tế khi vận hành Frigate

Không có phần mềm nào là hoàn hảo. Dưới đây là những đánh giá trung thực sau sáu tháng thử nghiệm.

Ưu điểm

  • Độ tin cậy thực sự: Sau khi tinh chỉnh, báo động giả giảm xuống gần như bằng không. Bạn chỉ thấy những gì quan trọng.
  • Kiểm soát chi tiết: Bạn có thể xác định các vùng cụ thể. Ví dụ: bạn muốn theo dõi người trên vỉa hè nhưng chỉ ghi hình khi họ bước vào thảm cỏ nhà mình.
  • Khả năng phối hợp nhà thông minh: Tích hợp với Home Assistant thuộc hàng tốt nhất hiện nay. Nó coi sự kiện “phát hiện người” giống như một cảm biến chuyển động vật lý.
  • Hiệu quả tài nguyên: Bằng cách sử dụng tăng tốc phần cứng, Frigate có thể xử lý nhiều luồng 4K mà không làm quá tải CPU.

Nhược điểm

  • Kén chọn phần cứng: Nhận diện AI tiêu tốn nhiều năng lượng tính toán. Chạy trên CPU tiêu chuẩn sẽ khiến mức tải tăng lên 90% hoặc cao hơn. Về cơ bản, bạn cần một bộ tăng tốc phần cứng.
  • Khó tiếp cận: Frigate có giao diện đồ họa (GUI) tối giản cho các thiết lập. Hầu hết công việc diễn ra trong các tệp cấu hình YAML, điều này có thể gây khó khăn cho người mới bắt đầu.

Cấu hình phần cứng lý tưởng

Đừng cố chạy nhận diện AI cho năm camera trên CPU của Raspberry Pi; nó có thể trễ tới 15 giây trước khi bị treo. Để có một hệ thống ổn định, tôi khuyên dùng các mục tiêu phần cứng cụ thể.

1. Máy chủ

Một chiếc Mini PC chạy chip Intel cũ (như OptiPlex 7050 Micro) là lựa chọn tối ưu. Bạn thường có thể tìm thấy chúng với giá dưới 130 USD trên eBay. Hãy tìm CPU Intel thế hệ thứ 8 trở lên. Công nghệ QuickSync tích hợp sẵn xử lý giải mã video tốt hơn nhiều so với bất kỳ thiết bị AMD hay ARM tương đương nào.

2. “Vũ khí bí mật”: Google Coral TPU

Thiết bị có giá 60–90 USD này là bắt buộc nếu bạn muốn có một hệ thống nghiêm túc. Google Coral TPU (loại USB hoặc M.2) sẽ đảm nhận các tác vụ nặng nề của việc nhận diện vật thể. Nó giúp giảm thời gian suy luận từ hơn 100ms trên CPU xuống còn mức cực nhanh 7ms. Việc giảm tải này giúp máy chủ của bạn luôn mát mẻ và phản hồi nhanh chóng.

3. Camera

Hãy chọn các camera hỗ trợ RTSP và luồng kép (dual-streaming). Frigate sử dụng một luồng độ phân giải thấp “sub-stream” (thường là 640×480) để phân tích AI liên tục. Nó chỉ lấy luồng 4K độ phân giải cao cho các đoạn video và ảnh chụp được lưu lại, giúp tiết kiệm một lượng lớn băng thông mạng.

Triển khai Frigate với Docker

Giả sử bạn đã có sẵn Docker, hãy làm theo các bước sau để khởi chạy container.

Bước 1: Chuẩn bị môi trường

mkdir -p ~/frigate/config ~/frigate/storage
cd ~/frigate

Bước 2: Cấu hình Docker Compose

Tệp docker-compose.yml này được tối ưu hóa cho GPU Intel và USB Coral TPU. Lưu ý thông số shm_size—các container tiêu chuẩn chỉ nhận được 64MB, không đủ cho các bộ đệm video độ phân giải cao.

version: "3.9"
services:
  frigate:
    container_name: frigate
    privileged: true
    restart: unless-stopped
    image: ghcr.io/blakeblackshear/frigate:stable
    shm_size: "256mb" 
    devices:
      - /dev/bus/usb:/dev/bus/usb
      - /dev/dri/renderD128:/dev/dri/renderD128
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./config:/config
      - ./storage:/media/frigate
      - type: tmpfs
        target: /tmp/cache
        tmpfs:
          size: 1000000000
    ports:
      - "5000:5000"
      - "8554:8554"
    environment:
      FRIGATE_RTSP_PASSWORD: "hay_chon_mot_mat_khau_manh"

Bước 3: Định nghĩa logic (config.yml)

Tạo config/config.yml. Đây là bộ não cho hệ thống của bạn. Thay thế các IP giữ chỗ bằng địa chỉ thực tế của camera.

mqtt:
  host: 192.168.1.50 # Trỏ đến Mosquitto broker của bạn

detectors:
  coral:
    type: edgetpu
    device: usb

cameras:
  front_porch:
    ffmpeg:
      inputs:
        - path: rtsp://admin:[email protected]:554/stream1
          roles: [record]
        - path: rtsp://admin:[email protected]:554/stream2
          roles: [detect]
    detect:
      enabled: True
      width: 640
      height: 480
      fps: 5
    objects:
      track: [person, dog, car]
    record:
      enabled: True
      retain:
        days: 7
        mode: motion

Tích hợp và kết quả

Khởi chạy hệ thống bằng lệnh docker-compose up -d. Truy cập http://[server-ip]:5000 để xem nguồn cấp dữ liệu. Nếu Coral đang hoạt động, bạn sẽ thấy tốc độ nhận diện dưới 10ms trong giao diện gỡ lỗi.

Điều kỳ diệu thực sự diễn ra trong Home Assistant thông qua tích hợp HACS. Tự động hóa yêu thích của tôi là bật đèn hiên nhà lên độ sáng 100% chỉ khi phát hiện có “người” sau 11 giờ đêm, trong khi hoàn toàn bỏ qua những con mèo hàng xóm. Việc thiết lập này đòi hỏi sự kiên nhẫn với YAML, nhưng kết quả là một hệ thống an ninh cấp độ chuyên nghiệp phục vụ bạn, chứ không phải chống lại bạn.

Share: