Phần mềm camera giám sát, tự động cảnh báo đất lở, đá rơi

Hiện nay, trên mạng đường sắt Việt Nam có nhiều khu vực xung yếu có địa hình đèo dốc phức tạp, độ dốc lớn tiềm ẩn nguy cơ sạt lở đất, đá xuống đường sắt trong mùa mưa bão. Công tác kiểm tra tại các khu vực xung yếu chủ yếu do công nhân tuần đường thực hiện mà chưa có hệ thống giám sát bằng hình ảnh truyền dẫn về trung tâm, nên khi sự cố xảy ra, đặc biệt là vào thời điểm bất lợi như ban đêm, mưa bão, sẽ gây nguy hiểm đến an toàn chạy tàu.
Phanthach.com đã nhận được đơn đặt hàng này và phối hợp với công ty đường sắt việt nam để triển khai đề tài này, mình đã ứng dụng các thuật toán xử lí hình ảnh từ OpenCV-Python để thiết kế phần mềm này

Chức năng của phần mềm như sau:
- Nhận video stream từ 2 camera ip về máy chủ thông qua cáp quang
- Vẽ vùng giám sát và cảnh báo nguy hiểm trên phần mềm
- Xử lí phân tách các vật thể lạ trên đường sắt, như đất đá, con người động vật và sự biến dạng địa hình
- Ra lệnh cảnh báo cho nhân viên trực máy chủ bằng âm thanh thông qua hệ thống loa phát thanh kết nối với máy chủ, và ra lệnh cảnh báo bằng hình ảnh trên phần mềm
- Nếu phát hiện chướng ngại phát âm thanh cảnh báo và lưu hình ảnh chướng ngại kèm ngày tháng năm ngày giờ phút xuất hiện chướng ngại vào ở cứng trên máy chủ

xulianh
 Hình vẽ có đường màu xanh lá là vùng cần giám sát cảnh báo nguy hiểm 
giám sát sạt lở

phanthach.com
                          Hình ảnh giao diện phần mềm




phanthach.com



Một số hình ảnh nhận diện chướng ngại từ phần mềm khi triển khai thực tế:







camera



Việc sử dụng camera và phần mềm tự động để giám sát sạt lở cho đường sắt là một phương pháp hiệu quả để phát hiện và đối phó với các vấn đề an toàn và bảo trì trên hệ thống đường sắt. Dưới đây là một số ưu điểm của việc áp dụng công nghệ này:

  1. Phát hiện sớm vấn đề: Hệ thống camera và phần mềm tự động có thể phát hiện sớm các dấu hiệu của sạt lở trên đường sắt, giúp cho các biện pháp sửa chữa và bảo trì được triển khai kịp thời trước khi tình trạng trở nên nguy hiểm.

  2. Giảm rủi ro tai nạn: Bằng cách phát hiện và đánh giá các điểm yếu trên đường sắt, hệ thống giám sát có thể giúp giảm thiểu rủi ro tai nạn do sạt lở gây ra.

  3. Tối ưu hóa chi phí bảo trì: Điều tra và sửa chữa sạt lở trên đường sắt có thể mất nhiều thời gian và nguồn lực. Bằng cách sử dụng công nghệ giám sát tự động, việc phát hiện và xác định các điểm cần can thiệp có thể được thực hiện một cách hiệu quả, giúp tối ưu hóa chi phí bảo trì.

  4. Quản lý dữ liệu: Hệ thống camera và phần mềm tự động có thể thu thập và lưu trữ dữ liệu về sạt lở và các vấn đề liên quan trên đường sắt, giúp các nhà quản lý có cái nhìn tổng thể về tình trạng của hệ thống và hỗ trợ trong việc ra quyết định về bảo trì và nâng cấp.

  5. Tăng cường hiệu suất vận hành: Bằng cách giảm thiểu thời gian dừng lại do sạt lở gây ra, hệ thống giám sát có thể giúp tăng cường hiệu suất và độ tin cậy của hệ thống đường sắt.


Các khó khăn khi triển khai phần mềm :

 - Do mấy chủ có cấu hình tương đối trong khi camera ip là loại có chuẩn video có độ phân giải 4k nên đòi hỏi băng thông tương đối lớn do đó mình đã phải nén hình ảnh cho mục đích xử lí xuống độ phân giải thấp hơn và chỉ xử lí 10 khung hình trên giây để đảm bảo mọi task chạy trơn tru

- Xử lí ổn định hình ảnh do vị trí trụ camera đặt gần với đường tàu, mỗi lần tàu chạy qua nên đất nơi đặt camera rung động nhiều làm hình ảnh truyền về máy chủ cũng bị rung theo

Hạn chế phần mềm:

- Hạn chế chỉ xử lí được 2 camera, tương lai có thể phát triển thêm nhiều đường camera

- Tỉ lệ cảnh báo lỗi sai và nhầm khoản 25%, các giải thuật tương lai sẽ xử lí tốt hơn

- Nếu trời mưa rất lớn thì camera tạm thời mù, vấn đề này không có cách giải quyết

Chu dù có cảnh báo tự động tiên tiến cho đến đâu chăng nữa thì con người vẫn là yếu tố quan trọng nhất

Đề tài này được đánh giá cao và được đăng lên các trang:

mt.gov.vn

baogiaothong.vn


phanthach


Đoạn code xử lí nén hình ảnh và capture video thành từng frame nhỏ:

upper_left = (300, 100)
        bottom_right = (800, 800)
        url = "rtsp://admin:abcd1234@192.168.2.176:554/Streaming/Channels/101"
        vid = cv2.VideoCapture(url)
        _, image_frame_new= vid.read()
        _, image_frame_old = vid.read()
        frame_new = image_frame_new[upper_left[1]: bottom_right[1], upper_left[0]: bottom_right[0]]
        frame_old = image_frame_old[upper_left[1]: bottom_right[1], upper_left[0]: bottom_right[0]]
        while (vid.isOpened()):
            gray_new = cv2.cvtColor(frame_new, cv2.COLOR_BGR2GRAY)
            gray_old = cv2.cvtColor(frame_old, cv2.COLOR_BGR2GRAY)

Mọi chi tiết xin liên hệ email hachilu.com@gmail.com
Source code : hachilu.com@gmail.com



Mới hơn Cũ hơn