- Mempersiapkan DVR untuk Streaming RTSP
- Mempersiapkan Raspberry Pi Anda
- Menginstal OpenCV dan Library Lain di Raspberry Pi
- Pemrograman Raspberry Pi untuk Streaming Video RTSP dari CCTV
- Menguji Raspberry Pi CCTV Viewer
Sebagian besar tempat kerja dan bangunan komersial saat ini memiliki sistem pengawasan CCTV yang dipasang untuk memantau aktivitas. Namun seringkali sulit bagi otoritas atau personel keamanan terkait untuk memantau live feed dari semua kamera secara terus menerus untuk mencari aktivitas yang mencurigakan. Dengan visi komputer dan pembelajaran mesin yang maju pada fase yang cepat, sudah saatnya kita membuat sistem CCTV kita lebih pintar. Pada artikel kali ini, kita akan membahas cara mendapatkan video feed dari DVR yang sudah ada (seperti DVR Hikvision) melalui streaming RTSP dengan Raspberry pi menggunakan Python dan OpenCV. Setelah kami mendapatkan ini, kami akan dapat memanfaatkan kekuatan OpenCV pada umpan video ini untuk mendeteksi objek tertentu, membaca pelat nomor kendaraan, pengenalan wajah, dan yang tidak!
Demi tutorial ini, saya akan menggunakan DVR CCTV Hikvision 4 channel yang sudah terpasang di dalam gedung. Kami akan mengalirkan semua 4 layar kamera ke Raspberry dan menampilkannya pada tampilan layar sentuh 5 inci di mana pengguna dapat beralih di antara setiap saluran sesuai kebutuhan. Saya tahu ini tidak banyak, mengingat kekuatan OpenCV dan saya memiliki rencana untuk meningkatkannya dengan deteksi gerakan, peringatan video bugler, pelacakan orang, dll. Tapi mari kita tinggalkan semua itu untuk tutorial lain.
Mempersiapkan DVR untuk Streaming RTSP
Sebelum kita menyelami perangkat keras raspberry pi dan kode python, penting untuk memeriksa apakah DVR mendukung RTSP dan cara mengaksesnya. Saya menghabiskan sebagian besar waktu saya terjebak di sini karena prosedur tampaknya berbeda untuk setiap jenis DVR dan Anda harus melakukan dan banyak hits dan mencoba. Tapi begitu Anda mengetahuinya, itu bekerja seperti pesona setiap saat.
Pertama-tama, pastikan Anda mengetahui nama pengguna dan kata sandi sistem DVR Anda, dan terhubung ke internet. Juga dalam tutorial ini, saya akan mengalirkan RTSP hanya dari jaringan lokal, jika Anda memiliki IP statis, Anda dapat melakukan penerusan port dan mengikuti hal yang sama untuk jaringan lain. Tetapi untuk tutorial ini, kami akan melakukan semuanya di dalam jaringan lokal.
Langkah 1: Temukan alamat IP DVR Anda. Setelah DVR terhubung ke Internet, DVR akan diberi alamat IP-nya sendiri. Anda dapat menemukan alamat IP ini baik dari halaman konfigurasi router Anda atau dari layar DVR Anda sendiri (dengan asumsi Anda memiliki monitor yang terhubung ke DVR). Alamat IP router saya adalah http://192.168.11.110/ (diubah untuk alasan keamanan)
Langkah 2: Buka browser web apa pun pilihan Anda dan masukkan alamat IP dan tekan enter. Anda akan dibawa ke halaman login DVR. Di mana Anda harus memasukkan nama pengguna (milik saya diubah) dan kata sandi untuk DVR Anda. Nama pengguna default adalah admin, tetapi kata sandi Anda harus tahu. Layar login saya untuk DVR ditampilkan di bawah, penampilan Anda mungkin berbeda.
Langkah 3: Setelah berhasil masuk, cari nomor port RTSP pada DVR Anda, biasanya nilai defaultnya adalah 554 tetapi mungkin berubah. Saat Anda di sini bermain dengan pengaturan konfigurasi untuk memeriksa apakah ada opsi untuk mengaktifkan RTSP, jika tidak Anda dapat melewati itu. Anda harus meluangkan waktu di sini karena prosedurnya berbeda berdasarkan DVR.
Langkah 4: Siapkan tautan RTSP Anda, tautan RTSP dasar akan dalam format berikut-
rtsp: //
Sekali lagi, itu tergantung pada jenis DVR, Anda dapat menggunakan google untuk menemukan salah satu yang akan bekerja untuk Anda. Yang berhasil memiliki format di bawah ini, Anda juga dapat mencoba dengan ini-
rtsp: //
Dimana
rtsp: // admin: [email protected]: 554 / Streaming / Channels / 202 /
Langkah 5: Putar streaming di VLC untuk memastikan koneksi RTSP Anda berfungsi. Instal VLC di komputer yang terhubung ke jaringan yang sama dengan DVR, luncurkan, dan tekan Ctrl + N untuk streaming jaringan. Masukkan URL seperti yang ditunjukkan di bawah ini dan tekan oke.
Jika tautan RTSP berfungsi sebagaimana mestinya, Anda akan melihat streaming langsung CCTV Anda di pemutar VLC seperti yang ditunjukkan di bawah ini. Jika itu memunculkan kesalahan maka Anda harus mencari tahu tautan yang benar.
Dengan ini selesai, kita tidak perlu lagi berbicara tentang DVR kita, mari kita lanjutkan dengan Raspberry pi kita.
Mempersiapkan Raspberry Pi Anda
Selanjutnya, kita perlu mengatur raspberry pi kita dengan Display 5 inci. Saya tidak akan membahas detailnya karena kita telah membahasnya berkali-kali. Anda dapat membaca artikel berikut untuk panduan-
- Memulai dengan Raspberry Pi
- Menghubungkan Layar 5-Inci dengan Raspberry Pi
Kami menggunakan Raspberry Pi 3 B + dengan OS Debian Buster yang berjalan di dalamnya. Mungkin juga ide yang baik untuk menggunakan Pi 4 jika Anda bisa dan juga menambahkan beberapa opsi pendinginan seperti heatsink atau Fan karena saya perhatikan suhunya mencapai hampir 70 * C. Saya tidak mengikuti prosedur pendinginan apa pun untuk sekarang, dan pengaturan saya terlihat seperti ini-
Menginstal OpenCV dan Library Lain di Raspberry Pi
Langkah selanjutnya adalah menginstal OpenCV di Raspberry Pi. Kami sebelumnya telah membahas cara mengkompilasi OpenCV di Raspberry pi.
- Menginstal OpenCV di Raspberry Pi
- Memulai dengan OpenCV
Anda dapat mengikuti tautan di atas dan mengkompilasi OpenCV menggunakan Cmake atau hanya menginstalnya dengan metode apt-get. Saya akan merekomendasikan nanti jika Anda tidak terlalu serius dalam pemrograman OpenCV. Saya menggunakan perintah berikut untuk menginstal OpenCV.
sudo apt memperbarui sudo apt install python3-opencv
Dalam program kami, kami juga akan menggunakan pustaka "cvui" untuk membuat UI dasar dengan dua tombol yang memungkinkan kami untuk menavigasi di antara empat layar. Untuk menginstal cvui ikuti perintah di bawah ini.
Python3 pip menginstal cvui
Dengan kedua paket terinstal, kita bisa masuk ke program utama. Pastikan kedua paket yang diinstal berfungsi, beli mencoba mengimpornya dari terminal perintah Pi.
Pemrograman Raspberry Pi untuk Streaming Video RTSP dari CCTV
Program lengkap untuk proyek ini dapat ditemukan di akhir halaman ini. Penjelasannya adalah sebagai berikut. Kami memulai program dengan memasukkan file header yang diperlukan.
impor cv2 impor cvui
Bagian selanjutnya dari program ini membutuhkan beberapa pengeditan. Anda harus memasukkan nama pengguna dan kata sandi DVR Anda. Untuk layar 5 inci, lebar dan tinggi masing-masing adalah 800 dan 480, jadi kami telah memasukkan yang sama.
rtsp_username = "admin" rtsp_password = "aswinth347653" lebar = 800 tinggi = 480 cam_no = 1
Selanjutnya, kita memiliki fungsi yang disebut buat kamera yang akan digunakan setiap kali kita mengganti nomor kamera yang harus dilihat.
def create_camera (saluran): rtsp = "rtsp: //" + rtsp_username + ":" + rtsp_password + "@ 192.168.29.100: 554 / Streaming / saluran /" + saluran + "02" cap = cv2.VideoCapture () cap.open (rtsp) cap.set (3, 640) # Nomor ID untuk lebar adalah 3 cap.set (4, 480) # Nomor ID untuk tinggi adalah 480 cap.set (10, 100) # Nomor ID untuk kecerahan adalah 10qq topi kembali
Di dalam while loop utama, kita memiliki program untuk membaca bingkai dari perangkat penangkap dan mengubahnya menjadi layar penuh. Jendela tampilan dalam program kami akan disebut sebagai layar.
sukses, current_cam = cam.read () redup = (lebar, tinggi) Full_frame = cv2.resize (current_cam, redup, interpolasi = cv2.INTER_AREA) cv2.namedWindow ('screen', cv2.WINDOW_NORMAL) cv2.setWindowProperty ('screen ', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)
Diikuti dengan itu kami memiliki kode untuk dua tombol yang akan ditempatkan di layar. Perintah cvui.button digunakan untuk menempatkan tombol di tempat yang diperlukan dan perintah cvui.mouse digunakan untuk mendeteksi klik mouse. Kami memiliki dua pernyataan if untuk dua tombol jika tombol diklik, pernyataan if masing-masing akan dijalankan.
if (cvui.button (Full_frame, width - 100, height - 40, "Next") dan cvui.mouse (cvui.CLICK)): print ("Next Button Pressed") cvui.init ('screen') cam_no = cam_no +1 jika (cam_no> 4): cam_no = 1 del cam cam = create_camera (str (cam_no)) if (cvui.button (Full_frame, width - 200, height - 40, "Previous") dan cvui.mouse (cvui. KLIK)): print ("Tombol Sebelumnya Ditekan") cvui.init ('layar') cam_no = cam_no - 1 if (cam_no <1): cam_no = 4 del cam cam = create_camera (str (cam_no))
Di dalam pernyataan if , berdasarkan tombolnya kita menambah atau mengurangi jumlah cam_no dan kemudian menghapus cam yang ada dan membuat cam baru menggunakan fungsi yang kita diskusikan di atas. Selain itu, perhatikan bahwa cvui.init harus dipanggil setiap saat untuk menyegarkan layar UI.
Bagian terakhir dari kode ini adalah untuk menampilkan frame sebagai keluaran dan untuk keluar dari layar keluaran saat q ditekan. Kami hanya menunggu penekanan tombol dan jika kuncinya adalah 'q', kami akan menghancurkan semua jendela.
cv2.imshow ('screen', Full_frame) jika cv2.waitKey (1) & 0xFF == ord ('q'): cv2.destroyAllWindows () break
Menguji Raspberry Pi CCTV Viewer
Menguji kode cukup mudah, nyalakan pi, dan luncurkan kode python yang diberikan di bagian bawah halaman ini. Pastikan Anda telah memasukkan kredensial yang benar agar tautan RTSP berfungsi. Jika Anda ingin berada di sisi yang aman, Anda juga dapat mencoba menggunakan pemutar VLC di Pi yang sudah diinstal sebelumnya di buster OS.
Jika berfungsi pada VLC, maka kita dapat yakin bahwa pi kita terhubung ke jaringan yang sama dan tautan RTSP berfungsi sebagaimana mestinya. Kemudian buka program yang diberikan di bagian bawah halaman ini dan luncurkan menggunakan IDE python apa pun. Jika kredensial dimasukkan dengan benar, Anda akan melihat layar berikut. Yang menunjukkan umpan kamera langsung dengan dua tombol di bagian bawah.
Karena layarnya memiliki layar sentuh TFT, Anda cukup menyentuh tombol "sebelumnya" dan "berikutnya" untuk pindah ke kamera berikutnya. Program ini ditulis untuk loop antara empat kamera pertama, Anda dapat dengan mudah memodifikasinya jika ada lebih dari 4 kamera yang terhubung ke DVR Anda.
Pekerjaan lengkap proyek ini dapat ditemukan dalam video yang ditautkan di bawah ini. Semoga Anda menikmati tutorial ini dan mempelajari sesuatu yang berguna jika Anda memiliki pertanyaan, tinggalkan di bagian komentar atau Anda juga dapat menggunakan forum kami untuk memposting pertanyaan Anda yang lain. Selain itu, saya berencana menambahkan fitur deteksi gerakan dan penyimpanan video ke pengaturan ini, jadi pantau terus untuk itu.