失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > OpenCV人工智能图像处理学习笔记 第6章 计算机视觉加强之机器学习上

OpenCV人工智能图像处理学习笔记 第6章 计算机视觉加强之机器学习上

时间:2023-09-26 04:34:05

相关推荐

OpenCV人工智能图像处理学习笔记 第6章 计算机视觉加强之机器学习上

目录

主要内容

harr特征

6-2 视频分解图片

6-3 图片合成视频

6-4 Haar特征1

6-7 adaboost分类器1

主要内容

可以通过视频分解图片的方式生成样本

Harr人脸识别

harr特征

遍历时harr特征用时很大

可以通过积分图提速

# 1 样本 2 特征 3 分类器 4 预测 检验

# haar+adaboost -》face

# haar 模版 adaboost 三级 (强分类器 弱分类器 node)

# hog 模版 svm 小狮子识别

6-2 视频分解图片

# 视频分解图片# 1 load 2 info 3 parse 4 imshow imwriteimport cv2cap = cv2.VideoCapture("1.mp4")# 获取一个视频打开cap 1 file nameisOpened = cap.isOpened# 判断是否打开‘print(isOpened)fps = cap.get(cv2.CAP_PROP_FPS)#帧率width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))#w hheight = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))print(fps,width,height)i = 0while(isOpened):if i == 10:breakelse:i = i+1(flag,frame) = cap.read()# 读取每一张 flag frame fileName = 'image'+str(i)+'.jpg'print(fileName)if flag == True:cv2.imwrite( '../images/' + fileName,frame,[cv2.IMWRITE_JPEG_QUALITY,100]) //保存到特定目录# cv2.imwrite(fileName,frame,[cv2.IMWRITE_JPEG_QUALITY,100])print('end!')

6-3 图片合成视频

import cv2img = cv2.imread('image1.jpg')imgInfo = img.shapesize = (imgInfo[1],imgInfo[0])print(size)videoWrite = cv2.VideoWriter('2.mp4',-1,5,size)# 写入对象 1 file name# 2 编码器 3 帧率 4 sizefor i in range(1,11):fileName = 'image'+str(i)+'.jpg'img = cv2.imread(fileName)videoWrite.write(img)# 写入方法 1 jpg dataprint('end!')

6-4 Haar特征1

#haar 1 什么是haar?特征 = 像素 运算 -》结果 (具体值 向量 矩阵 多维)

# 2 如何利用特征 区分目标? 阈值判决

# 3 得到判决?机器学习

# 1 特征 2 判决 3 得到判决

# 公式推导 1 -2

# 特征 = 整个区域*权重1 + 黑色*权重2 = (黑+白)*1+黑*(-2)=

# = 黑+白-2黑 = 白-黑

# 1 haar模版 上下 左右 image size 模版 size 100*100 10*10 100次 step = 10

# 1 100*100 2 10*10 3 step 10 4 模版1

# 模版 滑动 缩放 10*10 11*11 20级

# 举例 1080*720 step2 10*10

# 计算量 = 14模版*20缩放*(1080/2*720/2)*(100点+- ) = 50-100亿

# (50-100)*15 = 1000亿次

# A 1 B 1 2 C 1 3 D 1 2 3 4

# 4 = A-B-C+D = 1+1+2+3+4 - 1 -2 - 1 -3 = 4 (3+-)

6-7 adaboost分类器1

#adaboost 训练

# 1 初始化数据权值分布

# 苹果 苹果 苹果 香蕉

# 0.1 0.1 0.1 0.1

# 2 遍历阈值 p

# minP t

# 3 G1(x)

# 4 权值分布 update

# 0.2 0.2 0.2 0.7

## 训练终止条件:1 for count 2 p

#haar + adaboost face

# 苹果 苹果 苹果 香蕉

# 0.1 0.1 0.1 0.5

# 训练终止条件:1 for count 2 p

# 1 分类器的结构 2 adaboost 计算过程 3 xml 文件结构

# haar> T1 and haar>T2 2个强分类器15-20

# 1 分类器的结构

# 3个强分类器 1 x1 t1 2 x2 t2 3 x3 t3

# x1>t1 and x2>t2 and x3>t3 目标-》苹果

# 作用:判决

# 弱分类器结构

# 作用:计算强分类器特征x1 x2 x3

# x2 = sum(y1,y2,y3)

# y1 弱分类器特征

# node

# 3个haar-》 node

# 1node haar1 > nodeT1 z1 = a1

# 1node haar1 < nodeT1 z1 = a2

# Z = sum(z1,z2,z3)>T y1 = AA

# Z = sum(z1,z2,z3)<T y1 = BB

# haar->Node z1 z2 z3 Z=sum(z1,z2,z3)

# Z>T y1 y2 y3

# x = sum(y1,y2,y3) > T1 obj

# 1 load xml 2 load jpg 3 haar gray 4 detect 5 drawimport cv2import numpy as np# load xml 1 file nameface_xml = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')eye_xml = cv2.CascadeClassifier('haarcascade_eye.xml')# load jpg# img = cv2.imread('face.jpg')img = cv2.imread('PR.jpg')# img = cv2.imread('TP.jpg')cv2.imshow('src',img)# haar graygray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)# detect faces 1 data 2 scale 3 5faces = face_xml.detectMultiScale(gray,1.3,5)print('face=',len(faces))# drawfor (x,y,w,h) in faces:cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)roi_face = gray[y:y+h,x:x+w]roi_color = img[y:y+h,x:x+w]# 1 grayeyes = eye_xml.detectMultiScale(roi_face)print('eye=',len(eyes))for (e_x,e_y,e_w,e_h) in eyes:cv2.rectangle(roi_color,(e_x,e_y),(e_x+e_w,e_y+e_h),(0,255,0),2)cv2.imshow('dst',img)cv2.waitKey(0)

脸和眼的xml文件/download/moonlightpeng/13494251

如果觉得《OpenCV人工智能图像处理学习笔记 第6章 计算机视觉加强之机器学习上》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。