Tự làm AI Camera để nâng cao bảo mật cho nhà của bạn, khắc phục độ trễ và các cảnh báo giả
Sử dụng Frigate để nhận diện hình ảnh local và đưa các tính năng AI Camera cao cấp lên bất cứ camera thông thường nào
Vì sao cần tự làm AI Camera?
Có 2 lý do chính mình muốn làm dự án này:
- Bảo mật: Sau nhiều vụ bị hack, mình không còn sử dụng app của hãng để xem camera nữa mà tìm phương án để tự xem và lưu trữ trên local
- Cải thiện độ chính xác, nhiều quyền kiểm soát hơn (khi nào thì cảnh báo)
Yêu cầu cần có
- Raspberry Pi 4 với 4G ram trở lên. Hoặc phần cứng mạnh tương tự, như mình dùng proxmox để cài một máy ảo riêng cho tác vụ này.
- Camera hỗ trợ kết nối qua IP để sử dụng rtsp hoặc onvif truyền tín hiệu
Được gì sau khi hoàn thành dự án
- Không cần tốn tiền mua thẻ nhớ cho từng camera, cũng không sợ bị trộm phá hoại camera thì mất hết dữ liệu đã lưu trên camera này.
- Camera nhận diện tức thời được các vật thể từ người, xe cộ, động vật với độ chính xác rất cao. Thường sử dụng tính năng này của hãng sẽ có độ trễ ít nhất 1-2s và thường xuyên nhận diện nhầm hoạt động của mấy con côn trùng, cây cối thành chuyển động của người.
- Bạn tạo được các cảm biến riêng cho từng khu vực, từng vật thể để kích hoạt tự động hóa phù hợp
Cài đặt Frigate như thế nào
Bạn có thể cài đặt thông qua các hướng dẫn tại đây: https://docs.frigate.video/frigate/installation
Mình dùng docker compose để triển khai nhanh dịch vụ này
version: "3.9"
services:
frigate:
container_name: frigate
privileged: true # this may not be necessary for all setups
restart: unless-stopped
image: ghcr.io/blakeblackshear/frigate:stable
shm_size: 64mb # update for your cameras based on calculation above
volumes:
- /etc/localtime:/etc/localtime:ro
- /volume2/DATA/Frigate/config:/config
- /volume2/DATA/Frigate/storage:/media/frigate
- type: tmpfs
target: /tmp/cache
tmpfs:
size: 1000000000
ports:
- 8971:8971
- 8554:8554 # RTSP feeds
- 8555:8555/tcp # WebRTC over tcp
- 8555:8555/udp # WebRTC over udp
- 5005:5000
networks: {}
Trong đó bạn cần điều chỉnh lại các thông tin liên quan tới volumes vì dữ liệu từ hệ thống này là videos, hình ảnh nên nó chiếm dung lượng khủng khiếp lắm. Bạn cần cấu hình phần storage
ở ổ cứng ngoài hoặc HDD gắn vào trên phần cứng bạn cài.
Cấu hình camera trong Config Editor
mqtt:
host: 172.16.0.61
port: 1883
user: leolion
password: YourPASS
go2rtc:
streams:
Garage_camera: rtsp://
cameras:
Garage_camera: # <------ Name the camera
enabled: true
ffmpeg:
output_args:
record: preset-record-generic-audio-copy
inputs:
- path: rtsp://
Trong đó phần cấu hình go2rtc giúp lấy phần âm thanh và phần hình ảnh sẽ được cấu hình ở ffmpeg cameras, bạn có thể lấy thông tin link rtsp hoặc onvif bằng link https://www.ispyconnect.com/vi/camera/imou. Với hãng khác có thể tìm kiếm thông tin IP camera tương tự
Sau khi cài đặt xong bạn sẽ có được một hệ thống vận hành tương tự như thế này. Có thể tự nghịch các cài đặt của nó nhé.
Phần lớn các tùy biến có thể thực hiện trong phần cài đặt, tuy nhiên để tùy biến nhiều hơn cần can thiệp code trong phần Config. Trường hợp bạn cần tùy biến nhiều hơn mình có thể giải đáp ở phần comment hoặc một bài viết mới để hướng dẫn về các config cho các tính năng đặc biệt.
Kết nối Frigate vào Home Assistant
Kết nối camera và các cảm biến
Bạn cần thực hiện cài đặt Frigate thông qua HACS hoặc thủ công qua link https://github.com/blakeblackshear/frigate-hass-integration.git
Bước này thực hiện khá dễ, bạn nhập IP của thiết bị đã cài Frigate và port như hình là kết nối được thôi.
Kết nối Frigate Card để sử dụng hết tính năng trên HASS
Cài đặt thông qua HACS với repo này https://github.com/dermotduffy/frigate-hass-card
Sau khi cài thì có thể xem được trực tiếp các video lưu trữ trên HASS, không cần xem riêng trên giao diện web của Frigate nữa
Tổng kết
Ở phần tiếp theo, mình sẽ hướng dẫn các automation thú vị có thể thực hiện với hệ thống AI camera nhà trồng này. Ví dụ gửi cảnh báo lên telegram với mô tả của google AI. Thiết lập các kịch bản cảnh báo và các ràng buộc để giảm cảnh báo nhầm trong nhà.