关于facial_detection的代码学习

学习的程序:https://github.com/xionghc/Facial-Expression-Recognition

1,image.shape返回的是图片的行数,列数,色彩通道数。

注意:参考:https://blog.csdn.net/qingyuanluofeng/article/details/51568741

(1)行数对应坐标轴上的y,即图像的高度

 (2)列数对应坐标轴上的x,即图像的宽度

 (3)所以shape返回的是(高度,宽度)=(y,x)

2,

faces=cascade_classifier.detectMultiScale(image,scaleFactor=1.3,minNeighbors=3)

https://blog.csdn.net/cooli7wa/article/details/53959195

简单理解就是将输入图像和训练好的图像进行图像匹配。待。。。

(1)image:我们要输入的图像

(2)scaleFactor=1.3:缩小图像的比例

(3)minNeighbors=3:是匹配成功所需要的周围矩形框的数目,每一个特征匹配到的区域都是一个矩形框,只有同时多个矩形框同时存在的时候,才认为是匹配成功。比如人脸,这个默认值是3.

3,https://www.cnblogs.com/neo-T/p/6430583.html

以上博文对 cascade_classifier.detectMultiScale讲的挺好的。

x, y, w, h = faceRect

所以在faces里面包含的是这四个数据

4,face_x = tf.placeholder(tf.float32, [None, 2304])  #定义数据类型

shape:这里定义的的是2304列,行不定

参考文章https://blog.csdn.net/cc1949/article/details/78364615?locationNum=4&fps=1

5,softmax(多分类的归一化)

http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92

发现了一个高级的网站

6,saver = tf.train.Saver()

https://blog.csdn.net/qiqiaiairen/article/details/53184216

就是保存模型的参数

7,
  ckpt = tf.train.get_checkpoint_state(modelPath)

https://blog.csdn.net/changeforeve/article/details/80268522

#通过checkpoint文件找到模型文件名

8,sess = tf.Session()

https://blog.csdn.net/Enchanted_ZhouH/article/details/77571939

徐其华的博客讲的很详细:https://www.cnblogs.com/denny402/p/6940134.html

创建一个会话,当上下文管理器退出时,会话关闭和资源释放都是自动完成的。

但是,tf.Session().as_default()。是当上下文管理器退出时,会话没有关闭,那么还可以通过调用会话进行run和eaval()操作

9,saver.restore(sess, ckpt.model_checkpoint_path)#模型的恢复

徐其华的博客讲的很详细:https://www.cnblogs.com/denny402/p/6940134.html

10,cv2.putText(frame, emotion, (10, index * 20 + 20), cv2.FONT_HERSHEY_PLAIN, 0.5, (0, 255, 0), 1)

这个就是要在图片上写上字。

参考文章:https://blog.csdn.net/gan_player/article/details/78155283?utm_source=debugrun&utm_medium=referral

11,报错:没有len(image.shape) > 2 and image.shape[2] == 3中的shape类型。

        结果插上摄像头他就好了。

12,按下“p”键,他没有退出。可能是因为对齐方式不对。

猜你喜欢

转载自blog.csdn.net/weixin_30226901/article/details/81204967
今日推荐