我正在做一个“情绪检测”的项目。
作为制作完整产品的第一步,我们从图像处理开始。我从互联网上了解到,卷积神经网络是最好的方法。
import cv2
import numpy as np
def sum_cnn(image,x,y):
x1,y1=np.shape(image)
temp=image
for i in range(0,x1-x):
for j in range(0,y1-y):
temp1=np.sum(image[i:i+x,j:j+y])/(x*y)
if temp1 in range(850000,1100000):
cv2.rectangle(temp, (i, j), (i+20, j+20), (0, 255, 0), 2)
print "\n"
return temp
image =cv2.imread('test.jpg')
image=cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
image=np.matrix(image)
temp=sum_cnn(image,95,95)
cv2.imshow('Processed Video', temp)
cv2.imwrite('1.jpg',temp)
print "Done"上面是我写的代码--值(850000,1100000)是矩阵的一个卷积范围的和的值(对不起,代码非常粗糙,我今天早上开始写它)。
我要问的问题是,如何设计或获得一个存储权重的矩阵。
1)对于每种对象检测,我是否可以仅使用一个矩阵(例如,一个粗糙的单层CNN,它将为“汽车”和“人脸”提供不同的值),或者我是否应该为“汽车”和“人脸”使用单独的矩阵?
2)如何处理同一对象的不同大小?我在互联网上看到的一种解决方案是不断调整原始图像的大小。我想知道有没有更快的方法?
3)在反向传播中,我们给出了什么粗略的条件来获得优化的权重矩阵?
发布于 2016-02-11 20:35:23
首先,如果你真的打算使用神经网络,我建议你从basics开始。我要说的是,这一页非常适合神经网络的入门。一旦对神经网络有了基本的了解,你就可以尝试使用一个框架或者像Theano这样的东西来尝试构建一个CNN。
老实说,我不太确定你的代码是关于什么的,但我会尽我所能回答你的问题。
我猜你在这里谈论的是权重矩阵。,,
我再次建议您从给定的来源开始。这将使它更容易理解,如果你听我漫无边际地谈论一些我自己可能不完全理解的技术术语。
致以亲切的问候,
附言:请随时纠正我
https://stackoverflow.com/questions/31553608
复制相似问题