【发布时间】:2015-07-22 03:57:43
【问题描述】:
我正在做一个“情绪检测”项目。
作为制作完整产品的第一步,我们从图像处理开始。我从网上了解到,卷积神经网络是最好的方法。
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) 如何处理同一物体的不同尺寸?我在 Internet 上看到的一种解决方案是不断调整原始图像的大小。我想知道是否有更快的方法?
3) 在反向传播中,我们给出哪些粗略条件来获得优化的权重矩阵?
【问题讨论】:
标签: python image-processing matrix conv-neural-network