- A DVR előkészítése az RTSP streaminghez
- A Raspberry Pi előkészítése
- Az OpenCV és más könyvtárak telepítése a Raspberry Pi-re
- Raspberry Pi programozása RTSP videó streamingjéhez CCTV-ből
- A Raspberry Pi CCTV Viewer tesztelése
A legtöbb munkahelyen és kereskedelmi épületben ma CCTV megfigyelő rendszer van telepítve a tevékenységek figyelemmel kísérésére. De gyakran az érintett hatóságnak vagy biztonsági személyzetnek nehéz figyelemmel kísérnie az összes kamera élő adását, hogy gyanús tevékenységet keressen. Mivel a számítógépes látás és a gépi tanulás gyors ütemben halad, itt az ideje, hogy intelligensebbé tegyük CCTV rendszereinket. Ebben a cikkben megvitatjuk, hogyan lehet a meglévő DVR-ről (például a Hikvision DVR-ről) video-feedet szerezni az RTSP streaming segítségével a Raspberry pi segítségével Python és OpenCV segítségével. Amint ezt megkapjuk, képesek leszünk kiaknázni az OpenCV erejét ezeken a videó hírcsatornákon, hogy észleljünk egy adott objektumot, elolvassuk a jármű rendszámtábláját, az arcfelismerést, és mi nem!
A bemutató kedvéért egy Hikvision 4 csatornás CCTV DVR-t fogok használni, amely már telepítve van az épületbe. Mi mind a 4 kameraképernyőt a Raspberry-ra továbbítjuk, és egy 5 hüvelykes érintőképernyős kijelzőn jelenítjük meg, ahol a felhasználó szükség szerint válthat az egyes csatornák között. Ezt nem nagyon tudom, figyelembe véve az OpenCV erejét, és vannak terveim, hogy ezt mozgásérzékeléssel, bugleres videó riasztással, személykövetéssel stb. Bővítsem, de hagyjuk mindezt egy másik oktatóanyagra.
A DVR előkészítése az RTSP streaminghez
Mielőtt belevetnénk magunkat a málna pi hardverbe és a python kódba, fontos ellenőrizni, hogy a DVR támogatja-e az RTSP-t és hogyan érhető el. Időm nagy részét itt ragadtam, mert úgy tűnik, hogy az eljárás minden DVR-típus esetében eltér, és meg kell tennie, és sok találatot és próbálkozást kell végrehajtania. De miután ezt kitalálta, minden alkalommal varázslatként működik.
Először is győződjön meg róla, hogy ismeri a DVR-rendszer felhasználónevét és jelszavát, és hogy csatlakozik az internethez. Ebben az oktatóanyagban az RTSP-t csak helyi hálózatról fogom továbbítani, ha statikus IP-vel rendelkezik, akkor port-továbbítást végezhet, és ugyanezt követheti más hálózatoknál is. De ami a bemutatót illeti, mindent meg fogunk tenni a helyi hálózaton belül.
1. lépés: Keresse meg a DVR IP-címét. Miután a DVR csatlakozik az internethez, hozzá lesz rendelve saját IP-címe. Ezt az IP-címet megtalálhatja az útválasztó konfigurációs oldalán vagy a DVR képernyőjén (feltételezve, hogy a DVR-hez csatlakoztatva van egy monitor). Az útválasztóm IP-címe a következő volt: http://192.168.11.110/ (biztonsági okokból megváltozott)
2. lépés: Nyissa meg bármelyik választott webböngészőt, írja be az IP-címet, és nyomja meg az enter billentyűt. A DVR bejelentkezési oldalára kerül. Ahol meg kell adnia a DVR felhasználónevét (az enyém megváltozott) és jelszavát. Az alapértelmezett felhasználónév admin lesz, de a jelszó, amelyet tudnia kell. A DVR bejelentkezési képernyőm alább látható, megjelenése eltérhet.
3. lépés: A sikeres bejelentkezés után keresse meg az RTSP port számát a DVR-en, legtöbbször az alapértelmezett érték 554 lesz, de változhat. Amíg itt van, játsszon a konfigurációs beállításokkal, hogy ellenőrizze, van-e lehetőség az RTSP engedélyezésére, ha nem, akkor kihagyhatja. Itt kell töltenie egy ideig, mivel az eljárás a DVR alapján más és más.
4. lépés: Készítse elő az RTSP-linket, az alap RTSP-kapcsolat a következő formátumban lesz:
rtsp: //
Ismét a DVR típusától függ, a google segítségével megtalálhatja az Ön számára megfelelőt. Az, amelyiknek működött, az alábbi formátumú volt, ezzel is megpróbálhatja-
rtsp: //
Hol
rtsp: // admin: [email protected]: 554 / Streaming / Csatornák / 202 /
5. lépés: Játssza le a közvetítést VLC-n, hogy megbizonyosodjon arról, hogy az RTSP-kapcsolat működik. Telepítse a VLC-t egy számítógépre, amely ugyanahhoz a hálózathoz csatlakozik, mint a DVR, indítsa el, és nyomja meg a Ctrl + N billentyűt a hálózati streaminghez. Írja be az URL-t az alábbiak szerint, és nyomja meg az OK gombot.
Ha az RTSP link úgy működik, ahogy kell, akkor a CCTV élő közvetítését látnia kell a VLC lejátszón, az alábbiak szerint. Ha hibát dob, akkor meg kell találnia a helyes linket.
Ezzel megtörtént a továbbiakban nem kell beszélnünk arról, hogy DVR-jünk tovább megy a Raspberry pi-vel.
A Raspberry Pi előkészítése
Ezután be kell állítanunk a málna piát az 5 hüvelykes kijelzővel. Ennek részleteibe nem fogok belemenni, mivel már annyiszor kitértünk rá. A következő cikkeket elolvashatja útmutatásként -
- Az első lépések a Raspberry Pi-vel
- Összekötő 5 hüvelykes kijelző a Raspberry Pi-vel
Raspberry Pi 3 B + -ot használunk, amelyben Debian Buster OS fut. Az is jó ötlet lehet a Pi 4 használata, ha megteheti, és néhány hűtési lehetőséget is hozzáad, például hűtőbordát vagy ventilátort, mert észrevettem, hogy a hőmérséklet majdnem 70 * C-ot ér el. Mostanáig nem követtem semmilyen hűtési eljárást, és a beállításom így néz ki-
Az OpenCV és más könyvtárak telepítése a Raspberry Pi-re
A következő lépés az OpenCV telepítése a Raspberry Pi-re. Korábban megbeszéltük, hogyan lehet az OpenCV-t fordítani a Raspberry pi-n.
- Az OpenCV telepítése a Raspberry Pi-re
- Az OpenCV használatának megkezdése
Vagy kövesse a fenti linket, és lefordíthatja az OpenCV-t a Cmake használatával, vagy egyszerűen telepítheti egy apt-get módszerrel. A későbbieket javasolnám, ha nem nagyon foglalkozik az OpenCV programozásával. A következő parancsokat használtam az OpenCV telepítéséhez.
sudo apt update sudo apt install python3-opencv
Programunkban a „cvui” könyvtárat is felhasználva létrehozunk egy alap felhasználói felületet két gombbal, amelyek lehetővé teszik a négy képernyő közötti navigálást. A cvui telepítéséhez kövesse az alábbi parancsot.
A Python3 pip telepítse a cvui-t
Mindkét telepített csomaggal bejuthatunk a főprogramba. Győződjön meg arról, hogy mindkét telepített csomag működik-e, és megpróbálja-e importálni őket a Pi parancssori termináljáról.
Raspberry Pi programozása RTSP videó streamingjéhez CCTV-ből
A projekt teljes programja az oldal végén található. Ugyanez magyarázata a következő. A programot a szükséges fejlécfájlok hozzáadásával kezdjük.
import cv2 import cvui
A program következő része némi szerkesztést igényel. Meg kell adnia a DVR felhasználónevét és jelszavát. 5 hüvelykes kijelző esetén a szélesség és a magasság 800, illetve 480, tehát ugyanazt adtuk meg.
rtsp_username = "admin" rtsp_password = "aswinth347653" width = 800 height = 480 cam_no = 1
Továbbhaladva van egy olyan funkcióunk, amelyet úgy hívunk, hogy hozzon létre egy kamerát, amelyet minden alkalommal használni fognak, amikor megváltoztatjuk a megtekinteni kívánt kamera számát.
def create_kamera (csatorna): rtsp = "rtsp: //" + rtsp_felhasználónév + ":" + rtsp_jelszó + "@ 192.168.29.100: 554 / Streaming / csatornák /" + csatorna + "02" cap = cv2.VideoCapture () cap.open (rtsp) cap.set (3, 640) # A szélesség azonosítószáma 3 cap.set (4, 480) # A magasság azonosító száma 480 cap.set (10, 100) # A fényerő azonosítója 10qq visszatérő sapka
A main while cikluson belül megvan a programunk, hogy olvassunk egy keretet a rögzítő eszközről, és teljes képernyősre konvertáljuk. A programunk kijelzőablakát képernyőként hívják meg.
siker, current_cam = cam.read () dim = (szélesség, magasság) Full_frame = cv2.resize (current_cam, dim, interpolation = cv2.INTER_AREA) cv2.namedWindow ('screen', cv2.WINDOW_NORMAL) cv2.setWindowProperty ('screen ', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)
Ezt követően megvan a kód két gombhoz, amelyek a képernyőn helyezkednek el. A cvui.button paranccsal helyezhető el a gomb a kívánt helyen, a cvui.mouse paranccsal pedig az egér kattintását észlelhetjük. Van két , ha kimutatások két gomb, ha a gombra kattint, akkor a megfelelő , ha nyilatkozat végrehajtásra kerül.
if (cvui.button (Full_frame, szélesség - 100, magasság - 40, "Next") és cvui.mouse (cvui.CLICK)): print ("Next gomb lenyomva") 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.gomb (Full_frame, szélesség - 200, magasság - 40, "Előző") és cvui.mouse (cvui. CLICK)): print ("Az előző gomb megnyomva") cvui.init ('képernyő') cam_no = cam_no - 1 if (cam_no <1): cam_no = 4 del cam cam = create_camera (str (cam_no))
Az if utasítás belsejében a gomb alapján vagy növeljük, vagy csökkentjük a cam_no számot, majd töröljük a meglévő bütyöket, és létrehozunk egy új bütyöket a fent tárgyalt funkció segítségével. Vegye figyelembe azt is, hogy a cvui.init- nek minden alkalommal telefonálnia kell az UI képernyő frissítéséhez.
A kód utolsó része, hogy a keretet kimenetként jelenítse meg, és hogy kilépjen a kimeneti képernyőről a q megnyomásakor. Csak várunk egy billentyűleütésre, és ha a kulcs 'q', akkor az összes ablakot elpusztítjuk.
cv2.imshow ('screen', Full_frame) if cv2.waitKey (1) & 0xFF == ord ('q'): cv2.destroyAllWindows () break
A Raspberry Pi CCTV Viewer tesztelése
A kód tesztelése meglehetősen egyszerű, kapcsolja be a pi-t, és indítsa el az oldal alján megadott python-kódot. Győződjön meg arról, hogy megadta a megfelelő hitelesítő adatokat az RTSP-link működéséhez. Ha biztonságban akar lenni, akkor kipróbálhatja a Pi VLC-lejátszóját is, amely előre telepítve van a buster operációs rendszerre.
Ha a VLC-n működik, akkor biztosak lehetünk abban, hogy az azonos hálózathoz és az RTSP-kapcsolathoz csatlakoztatott pi-k megfelelően működnek. Ezután nyissa meg az oldal alján megadott programot, és indítsa el bármely python IDE használatával. Ha a hitelesítő adatokat helyesen adta meg, a következő képernyőt látja. Ami az élő kamera adását mutatja, két alján található gomb.
Mivel a képernyőn TFT érintőképernyő van, egyszerűen megérintheti az „előző” és a „következő” gombokat a következő kamerához lépéshez. A program hurokként van írva az első négy kamera között, könnyen módosíthatja, ha 4-nél több kamera van csatlakoztatva a DVR-hez.
A projekt teljes működése megtalálható az alábbi videóban. Remélem, hogy tetszett az oktatóanyag, és valami hasznosat tanult, ha bármilyen kérdése van, hagyja őket a megjegyzés részben, vagy fórumunkon is felteheti egyéb kérdéseit. Továbbá azt tervezem, hogy ehhez a beállításhoz hozzáadom a mozgásérzékelés és a videomegtakarítás funkciót, ezért tarts velünk.