- הכנת ה- DVR להזרמת RTSP
- הכנת פי פטל שלך
- התקנת OpenCV וספריות אחרות ב- Raspberry Pi
- תכנות פטל פטל להזרמת וידאו RTSP מ- CCTV
- בודק את צופה במעגל סגור של פטל פי
ברוב מקומות העבודה ובנייני המסחר כיום מותקנת מערכת מעקב טלוויזיה במעגל סגור לניטור הפעילויות. אך לעיתים קרובות קשה לרשות המודאגת או לאישורי הביטחון לעקוב אחר עדכונים חי של כל המצלמות ברציפות כדי לחפש פעילות חשודה. עם ראיית מחשב ולמידת מכונה המתקדמים בשלב מהיר, הגיע הזמן שנהפוך את מערכות המצלמה שלנו לחכמות יותר. במאמר זה נדון כיצד להשיג את עדכון הווידאו מ- DVR קיים (כמו Hikvision DVR) באמצעות הזרמת RTSP עם Raspberry pi באמצעות Python ו- OpenCV. ברגע שנקבל זאת, נוכל למנף את העוצמה של OpenCV בהזנות הווידאו הללו כדי לזהות עבור אובייקט מסוים, לקרוא את לוחית המספר של הרכב, זיהוי פנים ומה לא!
לצורך הדרכה זו, אשתמש במכשיר DVR CCTV 4 של Hikvision שכבר מותקן בבניין. אנו נזרום את כל 4 מסכי המצלמה לפטל ונציג אותו על גבי מסך מגע בגודל 5 אינץ 'בו המשתמש יכול לעבור בין כל ערוץ כנדרש. אני לא יודע את זה הרבה, בהתחשב בכוחו של OpenCV ויש לי תוכניות להגדיל אותו באמצעות זיהוי תנועה, התראת וידיאו באגר, מעקב אחר אנשים וכו ', אבל בוא נעזוב את כל זה להדרכה אחרת.
הכנת ה- DVR להזרמת RTSP
לפני שנצלול לתוך חומרת ה- pi פטל וקוד הפיתון, חשוב לבדוק אם ה- DVR תומך ב- RTSP וכיצד לגשת אליו. ביליתי את רוב הזמן שלי תקוע כאן כי נראה שההליך שונה עבור כל סוג של DVR ואתה צריך לעשות והרבה להיטים ולנסות. אבל ברגע שאתה מבין את זה, זה עובד כמו קסם בכל פעם.
דבר ראשון, ודא שאתה יודע את שם המשתמש והסיסמה של מערכת ה- DVR שלך, והוא מחובר לאינטרנט. גם במדריך זה, אני אזרם את ה- RTSP רק מרשת מקומית, אם יש לך IP סטטי, אתה יכול לבצע העברת יציאות ולבצע את אותו הדבר עבור רשתות אחרות. אך באשר להדרכה זו, אנו נעשה הכל בתוך הרשת המקומית.
שלב 1: מצא את כתובת ה- IP של ה- DVR שלך. לאחר חיבור ה- DVR לאינטרנט, תוקצה לו כתובת IP משלו. תוכל למצוא כתובת IP זו מדף התצורה של הנתב שלך או ממסך ה- DVR עצמו (בהנחה שיש לך צג מחובר ל- DVR). כתובת ה- IP של הנתב שלי הייתה http://192.168.11.110/ (שונתה מטעמי בטיחות)
שלב 2: פתח כל דפדפן אינטרנט לפי בחירתך והזן את כתובת ה- IP והקש על Enter. תועבר לדף הכניסה ל- DVR. איפה עליך להזין את שם המשתמש (שלי שונה) והסיסמה עבור ה- DVR שלך. שם המשתמש המוגדר כברירת מחדל יהיה admin, אך הסיסמה שעליך לדעת. מסך הכניסה שלי ל- DVR מוצג להלן, ייתכן שהמראה שלך שונה.
שלב 3: לאחר כניסה מוצלחת, חפש את מספר יציאת RTSP ב- DVR שלך, לרוב, ערך ברירת המחדל יהיה 554 אך הוא עשוי להשתנות. בזמן שאתה כאן שחק עם הגדרות התצורה כדי לבדוק אם יש אפשרות להפעיל RTSP, אם לא תוכל לדלג עליה. עליכם לבלות כאן זמן מכיוון שהנוהל שונה בהתבסס על DVR.
שלב 4: הכן את קישור ה- RTSP שלך, קישור ה- RTSP הבסיסי יהיה בפורמט הבא-
rtsp: //
שוב, זה תלוי בסוג ה- DVR, אתה יכול להשתמש בגוגל כדי למצוא את זה שיעבוד בשבילך. זה שעבד עבורו היה בפורמט הבא, אתה יכול גם לנסות עם זה-
rtsp: //
איפה
rtsp: // admin: [email protected]: 554 / סטרימינג / ערוצים / 202 /
שלב 5: הפעל את הזרם ב- VLC כדי לוודא שחיבור ה- RTSP שלך עובד. התקן VLC במחשב המחובר לאותה רשת כמו DVR, הפעל אותה ולחץ על Ctrl + N להזרמת רשת. הזן את כתובת האתר כמוצג למטה ולחץ על בסדר.
אם קישור ה- RTSP עובד כמו שצריך, אתה אמור לראות שידור חי של טלוויזיה במעגל סגור שלך בנגן VLC כמוצג להלן. אם זה מטיל שגיאה אז אתה צריך להבין את הקישור הנכון.
עם סיום זה, אנחנו כבר לא צריכים לדבר על ה- DVR שלנו שמאפשר להמשיך עם ה- Raspberry pi שלנו.
הכנת פי פטל שלך
לאחר מכן, עלינו להגדיר את פטל הפטל שלנו עם התצוגה בגודל 5 אינץ '. אני לא הולך להיכנס לפרטים על זה מכיוון שכבר סקרנו את זה פעמים רבות. תוכלו לקרוא את המאמרים הבאים להדרכה-
- תחילת העבודה עם פטל פי
- ממשק תצוגה בגודל 5 אינץ 'עם פטל פי
אנו משתמשים ב- Raspberry Pi 3 B + עם מערכת ההפעלה של דביאן באסטר. זה יכול להיות גם רעיון טוב להשתמש ב- Pi 4 אם אתה יכול וגם להוסיף כמה אפשרויות קירור כמו גוף קירור או מאוורר כי שמתי לב שהטמפרטורה מגיעה לכמעט 70 * C. נכון לעכשיו לא פעלתי אחר הליך קירור וההגדרה שלי נראית כך-
התקנת OpenCV וספריות אחרות ב- Raspberry Pi
השלב הבא הוא התקנת OpenCV ב- Raspberry Pi. דנו בעבר כיצד להרכיב OpenCV ב- Raspberry pi.
- התקנת OpenCV ב- Raspberry Pi
- תחילת העבודה עם OpenCV
אתה יכול לעקוב אחר הקישור שלמעלה ולהרכיב את OpenCV באמצעות Cmake או פשוט להתקין אותו בשיטת apt-get. אני ממליץ על המאוחר יותר אם אתה לא עוסק בתכנות OpenCV רציני מאוד. השתמשתי בפקודות הבאות כדי להתקין את OpenCV.
עדכון sudo apt להתקין את python3-opencv
בתוכנית שלנו נשתמש גם בספריית "cvui" כדי ליצור ממשק משתמש בסיסי עם שני כפתורים המאפשרים לנו לנווט בין ארבעת המסכים. כדי להתקין cvui בצע את הפקודה הבאה.
Python3 pip להתקין cvui
כאשר שתי החבילות מותקנות, אנו יכולים להיכנס לתוכנית הראשית. וודא ששתי החבילות המותקנות עובדות וקונות ומנסות לייבא אותן ממסוף הפקודה של Pi.
תכנות פטל פטל להזרמת וידאו RTSP מ- CCTV
את התוכנית המלאה לפרויקט זה תוכלו למצוא בסוף עמוד זה. ההסבר לכך הוא כדלקמן. אנו מתחילים את התוכנית על ידי הכללת קבצי הכותרת הנדרשים.
ייבוא
החלק הבא של התוכנית דורש עריכה מסוימת. עליך להזין את שם המשתמש והסיסמה של ה- DVR שלך. לתצוגה בגודל 5 אינץ ', הרוחב והגובה הם 800 ו -480 בהתאמה, כך שנכנסנו זהה.
rtsp_username = "admin" rtsp_password = "aswinth347653" רוחב = 800 גובה = 480 cam_no = 1
בהמשך, יש לנו פונקציה שנקראת ליצור מצלמה שתשתמש בה בכל פעם שנשנה את מספר המצלמה שיש לראות.
def create_camera (ערוץ): rtsp = "rtsp: //" + rtsp_username + ":" + rtsp_password + "@ 192.168.29.100: 554 / סטרימינג / ערוצים /" + ערוץ + "02" cap = cv2.VideoCapture () cap. open (rtsp) cap.set (3, 640) # ID מזהה לרוחב הוא 3 cap.set (4, 480) # ID ID לגובה הוא 480 cap.set (10, 100) # ID מזהה עבור בהירות הוא 10qq מכסה להחזיר
בתוך לולאת הראשי הראשי, יש לנו את התוכנית שלנו לקרוא מסגרת ממכשיר הלכידה ולהמיר אותה למסך מלא. חלון התצוגה בתכנית שלנו ייקרא כמסך.
success, current_cam = cam.read () dim = (רוחב, גובה) 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)
אחריו יש לנו את הקוד לשני כפתורים שיוצבו על המסך. הפקודה cvui.button משמשת למיקום הכפתור במקום הנדרש והפקודה cvui.mouse משמשת לאיתור לחיצת העכבר. יש לנו שני הצהרות אם עבור שני כפתורים אם לוחצים על הכפתור, ההצהרה אם תתבצע.
אם (cvui.button (מסגרת מלאה, רוחב - 100, גובה - 40, "הבא") ו- cvui.mouse (cvui.CLICK)): הדפס ("לחצן הבא נלחץ") cvui.init ('מסך') cam_no = cam_no +1 אם (cam_no> 4): cam_no = 1 del cam cam = create_camera (str (cam_no)) if (cvui.button (Full_frame, רוחב - 200, גובה - 40, "הקודם") ו- cvui.mouse (cvui. לחץ)): הדפס ("לחצן הקודם נלחץ") cvui.init ('מסך') cam_no = cam_no - 1 אם (cam_no <1): cam_no = 4 cam cam = create_camera (str (cam_no))
בתוך הצהרת ה- if , על סמך הכפתור, אנו מגדילים או מורידים את ספירת cam_no ואז מוחקים את הפקה הקיימת ויוצרים מצלמה חדשה באמצעות הפונקציה עליה דנו לעיל. כמו כן, שים לב כי cvui.init צריך להתקשר בכל פעם כדי לרענן את מסך ממשק המשתמש.
החלק האחרון של הקוד הוא הצגת המסגרת כפלט וליציאה ממסך הפלט בעת לחיצה על q. אנחנו רק מחכים למקש הקשה ואם המפתח 'q', נהרוס את כל החלונות.
cv2.imshow ('screen', Full_frame) אם cv2.waitKey (1) & 0xFF == ord ('q'): cv2.destroyAllWindows () הפסקה
בודק את צופה במעגל סגור של פטל פי
בדיקת הקוד היא די ישר קדימה, הפעל את ה- pi והפעל את קוד הפיתון שניתן בתחתית דף זה. ודא שהזנת את האישורים הנכונים כדי שהקישור RTSP יעבוד. אם אתה רוצה להיות בצד הבטוח, אתה יכול גם לנסות להשתמש בנגן VLC ב- Pi שמגיע מותקן מראש במערכת ההפעלה buster.
אם זה עובד ב- VLC, אנו יכולים להיות בטוחים שה- pi שלנו מחובר לאותה רשת וקישור ה- RTSP עובד כמו שצריך. לאחר מכן פתח את התוכנית שניתנה בתחתית דף זה והפעל אותה באמצעות כל פידון IDE. אם האישורים מוזנים כראוי, תראה את המסך הבא. המציג את הזנת המצלמה החיה עם שני כפתורים בתחתית.
מכיוון שלמסך יש מסך מגע TFT, תוכלו פשוט לגעת בלחצנים "הקודם" ו"הבא "כדי לעבור למצלמה הבאה. התוכנית נכתבת לולאה בין ארבע המצלמות הראשונות, תוכל לשנות אותה בקלות אם יש יותר מ -4 מצלמות המחוברות ל- DVR שלך.
את העבודה המלאה של פרויקט זה תוכלו למצוא בסרטון המקושר למטה. מקווה שנהנית מההדרכה ולמדת משהו שימושי אם יש לך שאלות, השאיר אותן בסעיף ההערות או שתוכל גם להשתמש בפורומים שלנו כדי לפרסם את השאלות האחרות שלך. כמו כן, אני מתכנן להוסיף תכונה לזיהוי תנועה ושמירת וידאו להגדרה זו, אז הישאר מעודכן גם לכך.