王冉,孟磊
(西安職業(yè)技術(shù)學(xué)院,陜西 西安 710077)
隨著城市人口的增加,學(xué)校、醫(yī)院、社區(qū)、商場(chǎng)等人流量比較大場(chǎng)合,安全問(wèn)題成為重點(diǎn)的研究方向,視頻監(jiān)控成為主流趨勢(shì),視頻監(jiān)控的關(guān)鍵技術(shù)之一即為物體及人體檢測(cè)及識(shí)別,本文就識(shí)別技術(shù)中的圖像處理、視頻流處理、數(shù)字識(shí)別等關(guān)鍵技術(shù)加以分析和驗(yàn)證。
圖像識(shí)別技術(shù)主要針對(duì)獲取的圖片進(jìn)行:(1)圖片的獲?。?)樣本圖片及非樣本圖片的分類(3)圖片的預(yù)處理(4)特征提?。?)建立模型對(duì)圖片中的目標(biāo)物體(本文所列舉的就是手寫數(shù)字)進(jìn)行識(shí)別。本文應(yīng)用的軟件包括Pycharm、Anaconda 等,應(yīng)用到的庫(kù)包括python3.6、numpy、tensorboard、tensorflow 等。
圖形繪制可以使用import<庫(kù)名>as<庫(kù)別名>,代碼如下:
import cv2
import numpy as np
newtInfo=(500,500,3)
dst=np.zeros(newtInfo,np.uint8)
cv2.rectangle(dst,(50,100),(200,300),(0,0,255),-1)
cv2.circle(dst,(250,250),(50),(255,0,0),2)
cv2.ellipse(dst,(256,256),(150,100),0,0,180,(0,2 55,0),-1)
points = np.array([[150,50],[140,140],[200,170], [250,250],[150,50]])
points = points.reshape((-1,1,2))
cv2.polylines(dst,[points],True,(0,255,255),5)
cv2.imshow("tutu",dst)
cv2.waitKey(0)
繪制圖形效果如圖1 所示。

圖1 繪制圖形示例
邊緣檢測(cè)是圖像處理和計(jì)算機(jī)視覺(jué)中的基本問(wèn)題,邊緣檢測(cè)的目的是標(biāo)識(shí)數(shù)字圖像中亮度變化明顯的點(diǎn),本文中圖片邊緣檢測(cè)代碼如下:
import cv2
import numpy as np
img = cv2.imread("q.jpeg",1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
dst = cv2.Canny(img,50,50)
cv2.imshow("dst",dst)
cv2.waitKey(0)
檢測(cè)的樣本圖形為圖2,經(jīng)過(guò)處理的圖形為圖3。

圖2 圖片邊緣檢測(cè)原圖

圖3 圖片邊緣檢測(cè)示例
視頻的獲取有很多種方法,網(wǎng)絡(luò)獲取、自由拍攝,為了測(cè)試的準(zhǔn)確性需要視頻盡可能的清晰,將獲取的視頻再進(jìn)行分解為圖片,就可以獲取測(cè)試所需要的樣本。
視頻流分解為圖片的代碼如下:
import cv2
cap = cv2.VideoCapture("q.mp4")
isOpened = cap.isOpened
print(isOpened)
fps = cap.get(cv2.CAP_PROP_FPS)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
print(fps,width,height)
i = 0
while(isOpened):
if i == 13:
break;
else:
i = i+1
fileName = "image"+str(i)+".jpg"
print(fileName)
if flag == True:
cv2.imwrite(fileName, [cv2.IMWRITE_JPEG_QUALITY, 100])
print("end")
其運(yùn)行結(jié)果即將視頻分解為13 張待測(cè)試的圖片,在某些情況下也需要將圖片合成為視頻。
在做數(shù)據(jù)的訓(xùn)練前,應(yīng)該找出測(cè)試集,MNIST 可以幫助我們完成這項(xiàng)任務(wù)。為了測(cè)試的速度和準(zhǔn)確率,在識(shí)別手寫數(shù)字是0~9 中的某一個(gè)數(shù)前,先設(shè)定識(shí)別數(shù)字“5”和非“5。
MNIST 數(shù)據(jù)集是手寫0 到9 的灰度圖像,輸入圖像數(shù)據(jù)28 * 28 的灰度圖,形狀是[1, 28, 28],如果圖像是32*32 的彩色圖,那么輸入的形狀是[3,32,32],因?yàn)榛叶葓D只有一個(gè)通道,而彩色圖有RGB 三個(gè)通道。
例如要識(shí)別數(shù)字“5”,出現(xiàn)以下請(qǐng)況(1)將數(shù)字“5”識(shí)別為數(shù)字“5”;(2)將其他數(shù)字識(shí)別為數(shù)字“5”,“3”“6”“8”這些和“5”相近的數(shù)字都有可能被識(shí)別為數(shù)字“5”;(3)將數(shù)字“5”沒(méi)有識(shí)別出來(lái),這種錯(cuò)誤的原因就是將所有類似“5”的數(shù)字劃分為非“5”。經(jīng)過(guò)分析,在數(shù)字識(shí)別的過(guò)程中,盡可能的識(shí)別為真,進(jìn)而再根據(jù)易混淆數(shù)字的特征進(jìn)行下一級(jí)分類器的設(shè)置,進(jìn)而提高分析的準(zhǔn)確率。
為了智能識(shí)別數(shù)字本文進(jìn)行了研究和測(cè)試,為進(jìn)一步研究如何統(tǒng)計(jì)高密度人群提供研究基礎(chǔ),研究教師、實(shí)驗(yàn)室、醫(yī)院、幼兒園等的人口數(shù)量,以及外來(lái)人口檢測(cè)實(shí)現(xiàn)智能監(jiān)控及預(yù)警是我們下一步的研究工作。