Cách thiết lập webcam phát hiện chuyển động trong Ubuntu

Motion là một công cụ hữu ích có thể biến webcam thông thường thành camera giám sát. Nó thực hiện điều này bằng cách theo dõi tín hiệu từ webcam và chụp ảnh cũng như quay video khi phát hiện chuyển động. Bài viết sau đây sẽ hướng dẫn bạn cách cài đặt Motion và thiết lập webcam phát hiện chuyển động trong Ubuntu Linux.

Cài đặt Motion Server

Theo mặc định, Motion được bao gồm trong kho lưu trữ chính thức của Ubuntu. Điều này có nghĩa là bạn có thể cài đặt chương trình này thông qua trình quản lý gói apt của mình:

sudo apt install motion v4l-utils

Lưu ý: Chúng ta đề cập đến Ubuntu trong bài viết này, nhưng Motion cũng sẽ hoạt động với hầu hết các bản phân phối Linux.

Xác nhận rằng Motion Server đang hoạt động bình thường bằng cách mở lời nhắc trợ giúp của chương trình:

motion -h

Cấu hình Motion cho hệ thống

Trước khi bắt đầu cấu hình Motion, cần sao chép file cấu hình vào thư mục Home để có bản sao lưu sạch của bản gốc. Mở Terminal và sao chép file cấu hình vào thư mục Home:

cp /etc/motion/motion.conf ~/motion.conf.backup

Mở cấu hình gốc bằng trình soạn thảo yêu thích:

sudo nano /etc/motion/motion.conf

Một trong những điều chỉnh dễ dàng nhất có thể thực hiện cho Motion Server của mình là thay đổi chất lượng đầu ra hình ảnh và video. Theo mặc định, máy chủ đặt độ phân giải ở 640×480, có thể quá nhỏ đối với các webcam hiện đại.

Để thay đổi điều này, hãy chạy lệnh sau trên terminal mới để kiểm tra độ phân giải có sẵn cho camera:

sudo v4l2-ctl -d /dev/video0 --list-formats-ext
Danh sách các độ phân giải có sẵn cho webcam.
Danh sách các độ phân giải có sẵn cho webcam.

Quay lại cấu hình Motion, cuộn xuống danh mục “Image Processing”, sau đó tìm cả biến chiều rộng và chiều cao.

Các giá trị mặc định cho độ phân giải webcam của Motion.
Các giá trị mặc định cho độ phân giải webcam của Motion.

Cung cấp các giá trị thích hợp cho độ phân giải mong muốn. Trường hợp ví dụ muốn chạy Motion ở 1280×720, vì vậy tác giả bài viết đã nhập “1280” làm chiều rộng và “720” làm chiều cao.

Các giá trị độ phân giải cao hơn được cập nhật cho Motion
Các giá trị độ phân giải cao hơn được cập nhật cho Motion

Đặt giá trị framerate thành tốc độ khung hình mà bạn muốn quay video. Theo mặc định, giá trị này được đặt thành “15” nhưng bạn có thể hạ thấp giá trị này để tiết kiệm dung lượng ổ đĩa.

Biến tốc độ khung hình trong file cấu hình Motion
Biến tốc độ khung hình trong file cấu hình Motion

Cuộn xuống danh mục “Picture output”, sau đó đặt giá trị của biến picture_output thành “on”. Điều này sẽ cho phép Motion chụp cả hình ảnh và video từ webcam.

Biến picture_output bên trong file cấu hình Motion
Biến picture_output bên trong file cấu hình Motion

Thay đổi vị trí lưu mặc định

Một điều chỉnh khác mà bạn có thể thực hiện cho Motion Server là thay đổi nơi lưu dữ liệu. Điều này có thể hữu ích nếu bạn muốn xuất video và hình ảnh đã quay của mình sang thư mục từ xa được gắn hoặc dịch vụ lưu trữ đám mây như Dropbox.

Để bắt đầu, hãy điều hướng đến hoặc tạo thư mục mà bạn muốn lưu dữ liệu của mình vào:

sudo mkdir /motion/data

Đặt quyền sở hữu thư mục thành “motion:adm”:

sudo chown -R motion:adm /motion/data

Đảm bảo rằng toàn bộ đường dẫn đến thư mục đều có thể đọc được bởi tất cả người dùng:

sudo chmod -R 755 /motion/data

Quay lại cấu hình Motion, tìm biến target_dir, sau đó đặt giá trị của nó thành đường dẫn đầy đủ trong thư mục.

Thư mục dữ liệu tùy chỉnh cho Motion
Thư mục dữ liệu tùy chỉnh cho Motion

Tinh chỉnh cài đặt phát hiện trong Motion

Motion hoạt động bằng cách xem xét sự khác biệt giữa nguồn cấp dữ liệu video hiện tại và nguồn cấp dữ liệu ngay trước đó. Nếu chương trình tìm thấy đủ sự khác biệt giữa hai điều này, nó sẽ phân loại đó là “chuyển động” và ghi lại video về sự kiện.

Hiện tại, Motion giả định rằng mức chênh lệch 1500 pixel là đủ để phân loại là “chuyển động”. Mặc dù điều này giúp hầu hết các webcam dễ dàng phát hiện chuyển động nhưng nó có thể quá nhạy đối với các camera có độ phân giải cao hơn.

Để giảm bớt điều này, hãy chuyển đến danh mục “Motion Detection”, sau đó tăng giá trị của biến threshold. 5500 pixel là đủ để ngăn Motion ghi lại những chuyển động nhỏ không cần thiết từ nguồn cấp dữ liệu webcam.

Giá trị ngưỡng tùy chỉnh cho Motion Server.
Giá trị ngưỡng tùy chỉnh cho Motion Server.

Bạn cũng có thể thêm biến threshold_maximum để đặt giới hạn cho mức chênh lệch mà Motion coi là “chuyển động”. Điều này hữu ích nếu webcam quan sát một khu vực đông người và bạn chỉ muốn nó chạy khi có ít hoạt động hơn.

Nếu không chắc chắn về giá trị threshold và threshold_maximum cho webcam của mình, bạn có thể để Motion điều chỉnh nó cho bạn. Để làm điều đó, hãy thêm biến threshold_tune và đặt thành “on”.

Các tùy chọn ngưỡng pixel khác nhau cho Motion.
Các tùy chọn ngưỡng pixel khác nhau cho Motion.

Cuối cùng, bạn có thể cấu hình Motion ghi lại những khoảnh khắc trước và sau khi phát hiện chuyển động. Để làm điều đó, hãy chuyển đến các biến pre_capture và post_capture rồi đặt giá trị của chúng thành số lượng khung hình bổ sung mà bạn muốn lưu.

Các khung hình bổ sung khi chụp ảnh và quay video trong Motion.
Các khung hình bổ sung khi chụp ảnh và quay video trong Motion.

Kích hoạt giao diện web Motion

Motion server đi kèm với giao diện web cho phép giám sát webcam từ xa. Để kích hoạt tính năng này, hãy đi tới phần “Webcontrol” của cấu hình, sau đó đặt giá trị của biến webcontrol_localhost thành “off”.

Cuộn xuống phần “Live stream”, sau đó đặt giá trị của stream_localhost thành “off”.

2 tùy chọn cần tắt để cho phép các hệ thống từ xa truy cập vào bảng điều khiển web Motion
2 tùy chọn cần tắt để cho phép các hệ thống từ xa truy cập vào bảng điều khiển web Motion

Lưu ý: Motion không có bất kỳ kiểm tra xác thực nào cho giao diện web của nó. Do đó, bất kỳ ai biết địa chỉ Motion Server của bạn đều có thể xem webcam và kiểm soát dịch vụ.

Quản lý ảnh chụp đã lưu từ xa

Như đã đề cập trước đó, cách tốt nhất là lưu hình ảnh vào thư mục Dropbox để có thể truy cập nó ở bất cứ đâu bạn muốn. Tuy nhiên, nếu muốn upload hình ảnh lên file server của riêng mình (qua FTP), bạn có thể sử dụng lệnh wput để upload hình ảnh lên:

sudo apt install wput

Mở cấu hình Motion Server, sau đó chèn các dòng code sau vào cuối file:

on_picture_save wput ftp://YOUR-USERNAME:YOUR-PASSWORD@YOUR-SERVER-ADDRESS %f
on_movie_end wput ftp://YOUR-USERNAME:YOUR-PASSWORD@YOUR-SERVER-ADDRESS %f
2 script hook lưu media đã ghi trên máy chủ từ xa.
2 script hook lưu media đã ghi trên máy chủ từ xa.

Khởi động và kiểm tra máy chủ Motion

Đảm bảo lưu file cấu hình Motion của bạn, sau đó chạy lệnh sau để khởi động máy chủ:

sudo systemctl enable --now motion.service

Xác nhận rằng máy chủ đang hoạt động bình thường bằng cách mở trình duyệt web và điều hướng đến địa chỉ IP của máy bạn theo sau là “:8080.”

Bảng điều khiển web cho Motion.
Bảng điều khiển web cho Motion.

Thao tác này sẽ mở ra một trang web hiển thị nguồn cấp dữ liệu video hiện tại từ webcam cùng với menu chứa các hành động bổ sung cho máy chủ. Ví dụ, bạn có thể nhấp vào Action > Snapshot để chụp ảnh tĩnh từ webcam của mình.

Các hành động khác nhau mà bạn có thể thực hiện từ bảng điều khiển web Motion.
Các hành động khác nhau mà bạn có thể thực hiện từ bảng điều khiển web Motion.

Kiểm tra xem Motion có phát hiện và ghi lại chuyển động từ webcam hay không bằng cách đưa một vật thể trước camera và kiểm tra nội dung của thư mục target_dir.

Motion đang lưu media đã chụp vào một thư mục tùy chỉnh.
Motion đang lưu media đã chụp vào một thư mục tùy chỉnh.

Ngoài ra còn có một live stream mà bạn có thể mở từ trình phát media hoặc trình duyệt web của mình. Để truy cập vào mục này, hãy điều hướng đến địa chỉ IP của máy bạn theo sau là “:8081.”

Stream video chuyên dụng từ Motion.
Stream video chuyên dụng từ Motion.

Biến webcam thông thường thành hệ thống phát hiện chuyển động chỉ là một trong những điều bạn có thể làm với camera trong Linux.

Chủ Nhật, 18/08/2024 15:38
52 👨 190
0 Bình luận
Sắp xếp theo
    ❖ Linux