- Menyiapkan DVR untuk RTSP Streaming
- Menyiapkan Raspberry Pi anda
- Memasang OpenCV dan Perpustakaan Lain di Raspberry Pi
- Memprogram Raspberry Pi untuk Menstrimkan Video RTSP dari CCTV
- Menguji Raspberry Pi CCTV Viewer
Sebahagian besar bangunan tempat kerja dan komersial hari ini mempunyai sistem pengawasan CCTV yang dipasang untuk memantau kegiatan. Tetapi seringkali sukar bagi pihak berkuasa yang bersangkutan atau pihak keselamatan untuk memantau siaran langsung semua kamera secara berterusan untuk mencari aktiviti yang mencurigakan. Dengan visi komputer dan pembelajaran mesin maju pada fasa yang cepat, sudah waktunya kita menjadikan sistem CCTV kita lebih pintar. Dalam artikel ini, kita akan membincangkan cara mendapatkan suapan video dari DVR yang ada (seperti Hikvision DVR) melalui streaming RTSP dengan Raspberry pi menggunakan Python dan OpenCV. Setelah mendapat ini, kita akan dapat memanfaatkan kekuatan OpenCV pada suapan video ini untuk mengesan objek tertentu, membaca plat nombor kenderaan, pengenalan wajah, dan apa yang tidak!
Demi tutorial ini, saya akan menggunakan CCTV DVR saluran 4 Hikvision yang sudah terpasang di bangunan. Kami akan mengalirkan semua 4 layar kamera ke Raspberry dan memaparkannya pada paparan skrin sentuh 5 inci di mana pengguna boleh beralih antara setiap saluran seperti yang diperlukan. Saya tidak tahu ini, memandangkan kekuatan OpenCV dan saya mempunyai rancangan untuk meningkatkannya dengan pengesanan gerakan, amaran video bugler, penjejakan orang, dll. Tetapi mari kita tinggalkan semua itu untuk tutorial lain.
Menyiapkan DVR untuk RTSP Streaming
Sebelum kita menyelidiki perkakasan raspberry pi dan kod python, penting untuk memeriksa sama ada DVR menyokong RTSP dan cara mengaksesnya. Saya menghabiskan sebahagian besar masa saya di sini kerana prosedurnya kelihatan berbeza untuk setiap jenis DVR dan anda harus lakukan dan banyak hits dan cuba. Tetapi setelah anda mengetahui ini, ia berfungsi seperti daya tarikan setiap masa.
Perkara pertama, pastikan anda mengetahui nama pengguna dan kata laluan sistem DVR anda, dan ia disambungkan ke internet. Juga dalam tutorial ini, saya akan mengalirkan RTSP hanya dari rangkaian tempatan, jika anda mempunyai IP statik, anda boleh melakukan pemajuan port dan mengikuti yang sama untuk rangkaian lain. Tetapi mengenai tutorial ini, kami akan melakukan semua perkara di dalam rangkaian tempatan.
Langkah 1: Cari alamat IP DVR anda. Setelah DVR disambungkan ke Internet, ia akan diberikan alamat IPnya sendiri. Anda boleh mendapatkan alamat IP ini dari halaman konfigurasi penghala anda atau dari skrin DVR anda sendiri (dengan andaian anda mempunyai monitor yang disambungkan ke DVR). Alamat IP penghala saya adalah http://192.168.11.110/ (diubah kerana keselamatan)
Langkah 2: Buka mana-mana pelayar web pilihan anda dan masukkan alamat IP dan tekan enter. Anda akan dibawa ke halaman masuk DVR. Di mana anda mesti memasukkan nama pengguna (nama saya diubah) dan kata laluan untuk DVR anda. Nama pengguna lalai adalah pentadbir, tetapi kata laluan yang harus anda ketahui. Skrin log masuk saya untuk DVR ditunjukkan di bawah, penampilan anda mungkin berbeza.
Langkah 3: Setelah berjaya masuk, cari nombor port RTSP pada DVR anda, kebanyakan kali, nilai lalai akan menjadi 554 tetapi mungkin berubah. Semasa anda di sini bermain dengan tetapan konfigurasi untuk memeriksa apakah ada pilihan untuk mengaktifkan RTSP, jika tidak, anda boleh melewatkannya. Anda harus meluangkan masa di sini kerana prosedurnya berbeza berdasarkan DVR.
Langkah 4: Sediakan pautan RTSP anda, pautan RTSP asas akan dalam format berikut-
rtsp: //
Sekali lagi, bergantung pada jenis DVR, anda boleh menggunakan google untuk mencari yang sesuai untuk anda. Yang berfungsi mempunyai format di bawah, anda juga boleh mencuba dengan ini-
rtsp: //
Di mana
rtsp: // pentadbir: [email protected]: 554 / Penstriman / Saluran / 202 /
Langkah 5: Mainkan aliran pada VLC untuk memastikan sambungan RTSP anda berfungsi. Pasang VLC pada komputer yang disambungkan ke rangkaian yang sama dengan DVR, lancarkan, dan tekan Ctrl + N untuk streaming rangkaian. Masukkan URL seperti yang ditunjukkan di bawah dan tekan oke.
Sekiranya pautan RTSP berfungsi sebagaimana mestinya, anda akan melihat siaran langsung CCTV anda pada pemain VLC seperti gambar di bawah. Sekiranya ia menimbulkan kesalahan maka anda harus mengetahui pautan yang betul.
Dengan ini, kita tidak perlu lagi membincangkan tentang DVR kita untuk terus menggunakan Raspberry pi kita.
Menyiapkan Raspberry Pi anda
Seterusnya, kita perlu menyediakan pi raspberry kita dengan Paparan 5 inci. Saya tidak akan membincangkannya secara terperinci kerana kita sudah membahasnya berulang kali. Anda boleh membaca artikel berikut untuk panduan-
- Bermula dengan Raspberry Pi
- Antara muka 5 inci dengan Raspberry Pi
Kami menggunakan Raspberry Pi 3 B + dengan OS Debian Buster berjalan di dalamnya. Mungkin juga idea yang baik untuk menggunakan Pi 4 jika boleh dan juga menambahkan beberapa pilihan penyejukan seperti heatsink atau Fan kerana saya perhatikan suhu mencecah hampir 70 * C. Saya tidak mengikuti prosedur penyejukan sehingga sekarang, dan persediaan saya kelihatan seperti ini-
Memasang OpenCV dan Perpustakaan Lain di Raspberry Pi
Langkah seterusnya adalah memasang OpenCV pada Raspberry Pi. Kami sebelum ini telah membincangkan cara menyusun OpenCV pada Raspberry pi.
- Memasang OpenCV pada Raspberry Pi
- Bermula dengan OpenCV
Anda boleh mengikuti pautan di atas dan menyusun OpenCV menggunakan Cmake atau memasangnya dengan kaedah apt-get. Saya akan mengesyorkan kemudian jika anda tidak terlalu berminat dengan pengaturcaraan OpenCV. Saya menggunakan arahan berikut untuk memasang OpenCV.
sudo apt update sudo apt install python3-opencv
Dalam program kami, kami juga akan menggunakan perpustakaan "cvui" untuk membuat UI asas dengan dua butang yang memungkinkan kami menavigasi antara keempat layar. Untuk memasang cvui ikuti arahan di bawah.
Python3 pip memasang cvui
Dengan kedua-dua pakej yang dipasang, kita dapat masuk ke program utama. Pastikan kedua-dua pakej yang dipasang berfungsi dengan baik dan cuba mengimportnya dari terminal arahan Pi.
Memprogram Raspberry Pi untuk Menstrimkan Video RTSP dari CCTV
Program lengkap untuk projek ini boleh didapati di hujung halaman ini. Penjelasan yang sama adalah seperti berikut. Kami memulakan program dengan memasukkan fail header yang diperlukan.
import cv2 import cvui
Bahagian seterusnya program memerlukan beberapa penyuntingan. Anda mesti memasukkan nama pengguna dan kata laluan DVR anda. Untuk paparan 5 inci, lebar dan ketinggian masing-masing 800 dan 480, jadi kami telah memasukkan yang sama.
rtsp_username = "admin" rtsp_password = "aswinth347653" lebar = 800 tinggi = 480 cam_no = 1
Melanjutkan, kami mempunyai fungsi yang disebut membuat kamera yang akan digunakan setiap kali kami menukar nombor kamera yang harus dilihat.
def create_camera (channel): rtsp = "rtsp: //" + rtsp_username + ":" + rtsp_password + "@ 192.168.29.100: 554 / Streaming / saluran /" + channel + "02" cap = cv2.VideoCapture () cap.open (rtsp) cap.set (3, 640) # Nombor ID untuk lebar adalah 3 cap.set (4, 480) # Nombor ID untuk ketinggian adalah 480 cap.set (10, 100) # Nombor ID untuk kecerahan adalah 10qq cap balik
Di dalam gelung sementara sementara, kami memiliki program kami untuk membaca bingkai dari peranti penangkap dan mengubahnya menjadi layar penuh. Tetingkap paparan dalam program kami akan disebut sebagai layar.
kejayaan, current_cam = cam.read () dim = (lebar, tinggi) Full_frame = cv2.resize (current_cam, red, interpolation = cv2.INTER_AREA) cv2.namedWindow ('screen', cv2.WINDOW_NORMAL) cv2.setWindowProperty ('skrin ', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)
Diikuti dengan itu kami mempunyai kod untuk dua butang yang akan diletakkan di skrin. Tombol perintah cvui . digunakan untuk meletakkan butang di tempat yang diperlukan dan perintah cvui.mouse digunakan untuk mengesan klik tetikus. Kami mempunyai dua pernyataan jika untuk dua butang jika butang diklik, pernyataan jika masing-masing akan dilaksanakan.
if (cvui.button (Full_frame, width - 100, height - 40, "Next") dan cvui.mouse (cvui.CLICK)): cetak ("Next Button Pressed") cvui.init ('screen') cam_no = cam_no +1 if (cam_no> 4): cam_no = 1 del cam cam = create_camera (str (cam_no)) if (cvui.button (Full_frame, width - 200, height - 40, "Sebelumnya") dan cvui.mouse (cvui. KLIK)): cetak ("Butang Sebelumnya Ditekan") cvui.init ('screen') 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 butang kita menambah atau mengurangkan jumlah cam_no dan kemudian menghapus cam yang ada dan membuat cam baru menggunakan fungsi yang kita bincangkan di atas. Juga, perhatikan bahawa cvui.init perlu menelefon setiap kali untuk menyegarkan semula skrin UI.
Bahagian terakhir kod adalah menampilkan bingkai sebagai output dan untuk keluar dari layar output ketika q ditekan. Kami hanya menunggu ketukan kekunci dan jika kuncinya adalah 'q', kami akan memusnahkan semua tetingkap.
cv2.imshow ('screen', Full_frame) jika cv2.waitKey (1) & 0xFF == ord ('q'): cv2.destroyAllWindows () break
Menguji Raspberry Pi CCTV Viewer
Menguji kodnya agak lurus ke depan, aktifkan pi, dan lancarkan kod python yang diberikan di bahagian bawah halaman ini. Pastikan anda memasukkan kelayakan yang betul agar pautan RTSP berfungsi. Sekiranya anda ingin berada di sisi yang selamat, anda juga boleh mencuba menggunakan pemain VLC pada Pi yang sudah terpasang pada OS buster.
Sekiranya ia berfungsi pada VLC, maka kita dapat memastikan bahawa pi kita terhubung ke rangkaian yang sama dan pautan RTSP berfungsi sebagaimana mestinya. Kemudian buka program yang diberikan di bahagian bawah halaman ini dan lancarkan dengan menggunakan python IDE. Sekiranya kelayakan dimasukkan dengan betul, anda akan melihat skrin berikut. Yang menunjukkan suapan kamera langsung dengan dua butang di bahagian bawah.
Oleh kerana layar mempunyai layar sentuh TFT, Anda cukup menyentuh butang "sebelumnya" dan "seterusnya" untuk beralih ke kamera berikutnya. Program ini ditulis untuk beralih antara empat kamera pertama, anda boleh mengubahnya dengan mudah jika terdapat lebih daripada 4 kamera yang disambungkan ke DVR anda.
Penyelesaian sepenuhnya projek ini boleh didapati dalam video yang dipautkan di bawah. Semoga anda menikmati tutorial dan mempelajari sesuatu yang berguna jika anda mempunyai sebarang pertanyaan, tinggalkan di bahagian komen atau anda juga boleh menggunakan forum kami untuk menghantar pertanyaan anda yang lain. Juga, saya berencana untuk menambahkan ciri pengesanan gerakan dan penjimatan video pada persediaan ini, jadi nantikan juga.