本發(fā)明涉及計算機(jī)視覺,尤其涉及一種基于多路攝像機(jī)拼接的計算機(jī)視覺防溺水預(yù)警方法。
背景技術(shù):
1、多路視頻流檢測在安防工業(yè)方面應(yīng)用廣泛,而游泳池是一種實際應(yīng)用場景,游泳池因為人工排查危險不到位,每年會發(fā)生大量溺水事件。由于計算機(jī)視覺技術(shù)的進(jìn)步,監(jiān)控攝像頭的普及,實時監(jiān)控能夠檢測溺水事件,提前發(fā)出警報信號進(jìn)而減少人員的傷亡。
2、一般場景下使用單路相機(jī)覆蓋不了整個場景,需要多路相機(jī)共同工作。一般采用多線程技術(shù)輪流處理每路視頻流,這種技術(shù)在業(yè)務(wù)場景較簡單的場景下比較實用,畫面顯示也看不出明顯的卡頓和輪流顯示。而且泳池實際場景比較復(fù)雜,整個業(yè)務(wù)代碼量大,使用多線程時出現(xiàn)明顯的卡頓和畫面輪流顯示,只能夠勉強(qiáng)能跑兩路相機(jī);同時畫面顯示后采用人工排查,排查較為困難,不利于及時發(fā)現(xiàn)游泳人員溺水。
3、綜上所述,提出一種將多路視頻流變?yōu)橐宦?,提高畫面處理效率,有利于及時發(fā)現(xiàn)游泳人員溺水的基于多路攝像機(jī)拼接的計算機(jī)視覺防溺水預(yù)警方法是十分有必要的。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的在于提供一種基于多路攝像機(jī)拼接的計算機(jī)視覺防溺水預(yù)警方法,能夠?qū)⒍嗦芬曨l流變?yōu)橐宦罚岣弋嬅嫣幚硇?,有利于及時發(fā)現(xiàn)游泳人員溺水。
2、為實現(xiàn)上述目的,本發(fā)明采用的一種基于多路攝像機(jī)拼接的計算機(jī)視覺防溺水預(yù)警方法,包括如下步驟:
3、調(diào)整攝像機(jī)畸變,采用多路攝像機(jī)實時采集游泳人員游泳數(shù)據(jù),并對采集到的視頻流進(jìn)行保存;
4、對視頻流中的視頻幀圖片進(jìn)行圖像預(yù)處理,將多路攝相機(jī)同一時間采集的幀進(jìn)行拼接;
5、將視頻流進(jìn)行分幀處理,對拼接視頻幀做關(guān)鍵點和框的數(shù)據(jù)標(biāo)注,采用數(shù)據(jù)標(biāo)注后的視頻幀數(shù)據(jù)訓(xùn)練檢測模型;
6、依次識別出拼接視頻幀中游泳人員的檢測框和關(guān)鍵點以及每個人員追蹤id;
7、將檢測到的數(shù)據(jù)輸入檢測模型判別游泳人員是否溺水,并在判別游泳人員溺水時觸發(fā)報警,確認(rèn)該游泳人員為溺水人員;
8、獲取溺水人員在拼接視頻幀中溺水時的截圖、觸發(fā)報警時間溺水人員所在的位置以及追蹤id,并實時上傳至云端。
9、其中,在對視頻流中的視頻幀圖片進(jìn)行圖像預(yù)處理,將多路攝相機(jī)同一時間采集的幀進(jìn)行拼接的步驟中:
10、在vlc軟件的網(wǎng)絡(luò)串流中輸入rtsp流地址,每路相機(jī)拉取視頻流;
11、分別為每路視頻流創(chuàng)建一個視頻捕捉對象;
12、讀取任意一路視頻第一幀視頻,儲存此幀的寬、高;
13、依次讀取每路視頻的第一幀,寬、高變換為儲存的幀寬、高;
14、使用python語言numpy庫中的拼接函數(shù)concatenate、vstack、hstack做圖片拼接;
15、將拼接后的視頻幀變換為開始儲存幀的寬、高,保存拼接成功的幀。
16、其中,在將視頻流進(jìn)行分幀處理,對拼接視頻幀做關(guān)鍵點和框的數(shù)據(jù)標(biāo)注,采用數(shù)據(jù)標(biāo)注后的視頻幀數(shù)據(jù)訓(xùn)練檢測模型的步驟中:
17、獲取不同環(huán)境下的泳池監(jiān)控視頻;其中不同環(huán)境包括不同泳池下相同的光照條件、同一泳池不同的光照條件;
18、間隔一定的時間保存視頻幀;
19、標(biāo)注分割后的每個視頻幀圖片,采用四點標(biāo)注方法進(jìn)行數(shù)據(jù)標(biāo)注;其中四點標(biāo)注中的四點包括左肩、右肩、左臀、右臀;
20、對拼接視頻幀中游泳人員目標(biāo)做好關(guān)鍵點和框的數(shù)據(jù)標(biāo)注;
21、將標(biāo)注好的視頻幀數(shù)據(jù)導(dǎo)出的格式轉(zhuǎn)換為yolo訓(xùn)練要求的txt格式,使用yolov8pose訓(xùn)練程序訓(xùn)練檢測模型。
22、其中,在將檢測到的數(shù)據(jù)輸入檢測模型判別游泳人員是否溺水,并在判別游泳人員溺水時觸發(fā)報警,確認(rèn)該游泳人員為溺水人員的步驟中:
23、將每幀的目標(biāo)檢測、目標(biāo)追蹤、人體關(guān)鍵點檢測結(jié)果保存到pandas創(chuàng)建的表格中;
24、使用存入表格的時間戳去除固定時間內(nèi)沒出現(xiàn)的游泳人員id,以及該游泳人員檢測框、人體關(guān)鍵點;
25、根據(jù)存入表格的時間戳以及一直出現(xiàn)的游泳人員id篩選出超過設(shè)定時間一直存在的游泳人員,保留上述游泳人員的列表信息庫作為需要判斷的游泳人員;
26、從pandas創(chuàng)建的表格中篩選出的需要判斷的游泳者,進(jìn)行溺水判斷,并在判別游泳人員溺水時觸發(fā)報警。
27、其中,在進(jìn)行溺水判斷的步驟中:
28、溺水判別條件包括:人體關(guān)鍵點構(gòu)成的向量左肩與左臀和右肩與右臀分別與平行水平面的向量計算夾角,判斷人體與水平面夾角是否接近于90度,在接近90度時,判定為正常狀態(tài)。
29、其中,在進(jìn)行溺水判斷的步驟中:
30、溺水判別條件還包括:將需要檢測的每個游泳人員的檢測框計算寬高比,在寬高小于1時,判定為正常狀態(tài)。
31、其中,在進(jìn)行溺水判斷的步驟中,判斷邏輯順序為:
32、先判定人體與水平面夾角接近90度后,再計算檢測框的寬高比。
33、其中,在先判定人體與水平面夾角接近90度后,再計算檢測框的寬高的步驟中:
34、若寬高比小于1,則判定為正常游泳;
35、若寬高比大于1,則判定為溺水狀態(tài);
36、若判定人體與水平面夾角在0度到60度之間,則直接判定為溺水。
37、本發(fā)明的一種基于多路攝像機(jī)拼接的計算機(jī)視覺防溺水預(yù)警方法,通過調(diào)整攝像機(jī)畸變,采用多路攝像機(jī)實時采集游泳人員游泳數(shù)據(jù),并對采集到的視頻流進(jìn)行保存;對視頻流中的視頻幀圖片進(jìn)行圖像預(yù)處理,將多路攝相機(jī)同一時間采集的幀進(jìn)行拼接;將視頻流進(jìn)行分幀處理,對拼接視頻幀做關(guān)鍵點和框的數(shù)據(jù)標(biāo)注,采用數(shù)據(jù)標(biāo)注后的視頻幀數(shù)據(jù)訓(xùn)練檢測模型;依次識別出拼接視頻幀中游泳人員的檢測框和關(guān)鍵點以及每個人員追蹤id;將檢測到的數(shù)據(jù)輸入檢測模型判別游泳人員是否溺水,并在判別游泳人員溺水時觸發(fā)報警,確認(rèn)該游泳人員為溺水人員;獲取溺水人員在拼接視頻幀中溺水時的截圖、觸發(fā)報警時間溺水人員所在的位置以及追蹤id,并實時上傳至云端;實現(xiàn)了將多路視頻流變?yōu)橐宦?,提高畫面處理效率,有利于及時發(fā)現(xiàn)游泳人員溺水。
1.一種基于多路攝像機(jī)拼接的計算機(jī)視覺防溺水預(yù)警方法,其特征在于,包括如下步驟:
2.如權(quán)利要求1所述的基于多路攝像機(jī)拼接的計算機(jī)視覺防溺水預(yù)警方法,其特征在于,在對視頻流中的視頻幀圖片進(jìn)行圖像預(yù)處理,將多路攝相機(jī)同一時間采集的幀進(jìn)行拼接的步驟中:
3.如權(quán)利要求1所述的基于多路攝像機(jī)拼接的計算機(jī)視覺防溺水預(yù)警方法,其特征在于,在將視頻流進(jìn)行分幀處理,對拼接視頻幀做關(guān)鍵點和框的數(shù)據(jù)標(biāo)注,采用數(shù)據(jù)標(biāo)注后的視頻幀數(shù)據(jù)訓(xùn)練檢測模型的步驟中:
4.如權(quán)利要求3所述的基于多路攝像機(jī)拼接的計算機(jī)視覺防溺水預(yù)警方法,其特征在于,在將檢測到的數(shù)據(jù)輸入檢測模型判別游泳人員是否溺水,并在判別游泳人員溺水時觸發(fā)報警,確認(rèn)該游泳人員為溺水人員的步驟中:
5.如權(quán)利要求4所述的基于多路攝像機(jī)拼接的計算機(jī)視覺防溺水預(yù)警方法,其特征在于,在進(jìn)行溺水判斷的步驟中:
6.如權(quán)利要求5所述的基于多路攝像機(jī)拼接的計算機(jī)視覺防溺水預(yù)警方法,其特征在于,在進(jìn)行溺水判斷的步驟中:
7.如權(quán)利要求6所述的基于多路攝像機(jī)拼接的計算機(jī)視覺防溺水預(yù)警方法,其特征在于,在進(jìn)行溺水判斷的步驟中,判斷邏輯順序為:
8.如權(quán)利要求7所述的基于多路攝像機(jī)拼接的計算機(jī)視覺防溺水預(yù)警方法,其特征在于,在先判定人體與水平面夾角接近90度后,再計算檢測框的寬高的步驟中: