【天天向上】OpenVINO学习笔记(十一)网络摄像头使用
【学习任务一】获取网络摄像机rtsp地址1、查看配置的光盘文档,没有发现。
用户手册中只提及rtsp端口号:554,失败。
2、浏览器访问摄像机配置
看到同上内容,失败。此时,创客无畏的探索精神被点燃,失败次数越多,冲劲就越足。
3、通过ONVIF Device Test Tool获取RTSP地址及播放视频
http://www.itnotepad.cn/Home/Article/num/31.html
通过以上教程进行操作,之前几步操作没有问题,能够获取硬件信息。
但到获取rtsp地址,无法正常进行。
失败4、使用ONVIF Device Manage工具将摄像机ONVIF登陆校验“关闭”后,可继续进行,但到加载“NVT”时,软件出现闪退现象。失败
5、依靠网络查找,遍寻不到。
https://jingyan.baidu.com/article/295430f19b01bf0c7e0050d2.html
英飞拓、大华、海康品牌的网络摄像机rtsp地址,并未找到Hisome。
失败
6、利用VLC media player播放器,一个个去利用网络找到的大品牌的网络摄像机rtsp地址。
成功
【学习任务二】利用Python程序测试网络摄像机rtsp地址Python代码:import cv2,time
classfier=cv2.CascadeClassifier("D:\\xml\\haarcascade_frontalface_alt2.xml")#定义分类器
max_x=0
max_y=0
max_h=0
max_w=0
max=0
color = (255,0,155)#设置人脸框的颜色
#url = 'rtsp://admin:a12345678@172.20.0.81:554/1'#办公室
url = 'rtsp://admin:111111@172.16.104.220:554/cam/realmonitor?channel=1&subtype=1'
cap = cv2.VideoCapture(url)
path_name="./img"
i=0
while(cap.isOpened()):
# Capture frame-by-frame
ret, frame = cap.read()
# Display the resulting frame
try:
image=cv2.resize(frame, (800,600), interpolation=cv2.INTER_AREA)
if i>15:
i=0
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)#将当前桢图像转换成灰度图像(这里有修改)
#如下三行是设定最小图像的大小
#第三个参数表示每一个目标至少要被检测到3次才算是真的目标(因为周围的像素和不同的窗口大小都可以检测到人脸),
faceRects = classfier.detectMultiScale(image, 1.3,5, cv2.CASCADE_SCALE_IMAGE,(8,8))#人脸检测
print(len(faceRects))
max=0
if len(faceRects)>0:#如果人脸数组长度大于0
for faceRect in faceRects: #对每一个人脸画矩形框
x, y, w, h = faceRect
if w*h>max :
max=w*h
max_x=x
max_y=y
max_h=h
max_w=w
now = time.localtime()
img_name = r"%s/%s.jpg" % (path_name, time.strftime("%Y-%m-%d %H:%M:%S",now).replace(":","-") )
print(img_name)
image1 = image
cv2.imwrite(img_name, image1,)
cv2.rectangle(image, (max_x, max_y), (max_x+max_w, max_y+max_h), color,2)#矩形的两个点(左上角与右下角),颜色,线的类型(不设置就
else:
print(i)
i=i+1
cv2.imshow('frame',image)
except:
print("False")
cap = cv2.VideoCapture(url)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
因角度、远近及使用分类器的原因,识别学生时,两分钟内只识别到两个人脸。人脸在摄像头前,识别效果还可以。但当人脸侧向一边时,识别效果差。
演示视频:
https://v.youku.com/v_show/id_XNDczMTY0MjcyNA==.html
【学习任务三】OpenVINO加速推理
修改face_recognition_demo.py
@staticmethod
def open_input_stream(path):
log.info("Reading input data from '%s'" % (path))
stream = path
"""try:
stream = int(path)
except ValueError:
pass"""
return cv2.VideoCapture('rtsp://admin:111111@172.16.104.220:554/cam/realmonitor?channel=1&subtype=1')
运行命令:
python face_recognition_demo.py -m_fd C:/Users/zlzx/Documents/Intel/intel/face-detection-adas-0001/FP16-INT8/face-detection-adas-0001.xml -m_reid C:/Users/zlzx/Documents/Intel/intel/face-reidentification-retail-0095/FP16-INT8/face-reidentification-retail-0095.xml -m_lm C:/Users/zlzx/Documents/Intel/intel/landmarks-regression-retail-0009/FP16/landmarks-regression-retail-0009.xml -fg C:/Users/zlzx/Documents/Intel/OpenVINO/omz_demos_build/intel64/Release/classroom -i rtsp://admin:111111@172.16.104.220:554/cam/realmonitor?channel=1
演示视频:
https://v.youku.com/v_show/id_XNDczMTczNTcwNA==.html
页:
[1]