Behavior Analysis Nodes
Luật phân tích hành vi áp dụng trên đối tượng đã được track. Mỗi node phát event khi luật được kích hoạt.
Yêu cầu tracker
BA node phải đứng sau tracking node — cần track_id để theo dõi hành vi qua thời gian.
Danh mục luật
Theo đường kẻ (Line)
| Node | Event | Mô tả |
|---|---|---|
cvedix_ba_line_crossline_node | CROSSLINE | Đếm đối tượng cắt qua đường kẻ |
cvedix_ba_line_direction_violation_node | DIRECTION | Đi sai hướng quy định |
cvedix_ba_line_wrong_way_node | WRONG_WAY | Đi ngược chiều |
cvedix_ba_line_speed_estimation_node | SPEED | Ước lượng tốc độ |
cvedix_ba_line_red_light_violation_node | RED_LIGHT | Vượt đèn đỏ |
cvedix_ba_line_illegal_uturn_node | UTURN | Quay đầu trái phép |
cvedix_ba_line_counting_node | COUNTING | Đếm lũy kế qua vạch |
Theo vùng (Area)
| Node | Event | Mô tả |
|---|---|---|
cvedix_ba_area_enter_exit_node | ENTER/EXIT | Vào/ra khỏi vùng |
cvedix_ba_area_crowding_node | CROWDING | Tụ tập đông trong ROI |
cvedix_ba_area_loitering_node | LOITERING | Lảng vảng quá thời gian |
cvedix_ba_area_dwell_time_node | DWELL | Thời gian lưu trú trong vùng |
cvedix_ba_area_jam_node | JAM/UNJAM | Ùn tắc giao thông |
cvedix_ba_area_queue_length_node | QUEUE | Độ dài hàng chờ |
cvedix_ba_area_no_entry_zone_node | NO_ENTRY | Xâm nhập vùng cấm |
cvedix_ba_area_lane_violation_node | LANE | Đi sai làn |
cvedix_ba_area_parking_violation_node | PARKING | Đỗ xe sai quy định |
cvedix_ba_area_helmet_violation_node | HELMET | Không đội mũ bảo hiểm |
cvedix_ba_area_illegal_turn_node | TURN | Rẽ trái phép |
Khác
| Node | Event | Mô tả |
|---|---|---|
cvedix_ba_intrusion_detection_node | INTRUSION | Phát hiện xâm nhập |
cvedix_ba_fall_detection_node | FALL | Phát hiện ngã (cần pose) |
cvedix_ba_fight_detection_node | FIGHT | Phát hiện ẩu đả |
cvedix_ba_movement_node | STOP_LINE | Vi phạm vạch dừng |
cvedix_ba_stop_node | STOP | Đối tượng dừng bất thường |
cvedix_ba_accident_detection_node | ACCIDENT | Phát hiện tai nạn |
Ví dụ: Crossline counting
cpp
#include <cvedix/nodes/ba/cvedix_ba_line_crossline_node.h>
// Định nghĩa đường kẻ bằng 2 điểm
cvedix_objects::cvedix_line line(
cvedix_objects::cvedix_point(100, 400),
cvedix_objects::cvedix_point(1200, 400));
auto crossline = std::make_shared<cvedix_nodes::cvedix_ba_line_crossline_node>(
"crossline_0", line);
crossline->attach_to({tracker});Nhận event
Event được phát dưới dạng control_meta — nhận qua Broker node:
cpp
// Đẩy event JSON qua MQTT
auto mqtt = std::make_shared<cvedix_nodes::cvedix_mqtt_broker_node>(
"mqtt_0", cvedix_nodes::cvedix_broke_for::BA,
"tcp://broker:1883", "cvedix/events");
mqtt->attach_to({crossline});Pipeline điển hình:
src → detector → tracker → ba_crossline → osd → screen
│
└→ mqtt_broker → cloud