我正在尝试使用OpenCV的HoG API提取功能,但我似乎无法找到允许我这样做的API.
我想要做的是从我的所有数据集(一组正面和负面图像)中使用HoG提取特征,然后训练我自己的SVM.
我在OpenCV下偷看了HoG.cpp,但没有用.所有代码都埋没在复杂性中,需要满足不同的硬件需求(例如英特尔的IPP)
我的问题是:
到目前为止,我实际上是将一个现有的库(http://hogprocessing.altervista.org/)从Processing(Java)移植到C++,但它仍然非常慢,检测时间至少为16秒
有没有其他人成功提取HoG功能,你是如何解决它的?你有任何我可以使用的开源代码吗?
提前致谢
opencv feature-extraction computer-vision object-recognition feature-detection
我是Stereo Matching的新手.我无法理解Disparity的概念.请告诉我什么是视差图和视差图像,它们之间有什么区别?两个术语是相同还是不同?
我被要求实现基于边缘的视差图,但我从根本上不了解视差图是什么.谷歌搜索似乎没有产生直截了当的答案.有人可以解释它还是指向更好的资源?
imaging image-processing computer-vision disparity-mapping stereo-3d
我是神经网络领域的新手,我想知道Deep Belief Networks和Convolutional Networks之间的区别.还有,深度卷积网络是深信仰和卷积神经网络的结合吗?
这是我到现在为止所收集到的.如果我错了,请纠正我.
对于图像分类问题,Deep Belief网络有许多层,每个层都使用贪婪的分层策略进行训练.例如,如果我的图像大小是50 x 50,我想要一个4层的深度网络
我的输入层将具有50 x 50 = 2500个神经元,HL1 = 1000个神经元(比如说),HL2 = 100个神经元(比如说)和输出层= 10个神经元,以便训练输入层和HL1之间的权重(W1),I使用AutoEncoder(2500 - 1000 - 2500)并学习大小为2500 x 1000的W1(这是无监督学习).然后我通过第一个隐藏层向前馈送所有图像以获得一组特征,然后使用另一个自动编码器(1000-100-1000)来获得下一组特征,最后使用softmax层(100-10)进行分类.(仅学习最后一层的权重(HL2-作为softmax层的输出)是监督学习).
(我可以使用RBM而不是自动编码器).
如果使用卷积神经网络解决了同样的问题,那么对于50x50输入图像,我将仅使用7 x 7个补丁开发一个网络(比方说).我的图层就是
为了学习权重,我从尺寸为50 x 50的图像中取出7 x 7个补丁,并通过卷积层向前馈送,因此我将有25个不同的特征映射,每个都有大小(50 - 7 + 1)x(50 - 7) + 1)= 44 x 44.
然后我使用一个11x11的窗口用于汇集手,因此获得25个大小(4 x 4)的特征映射作为汇集层的输出.我使用这些功能图进行分类.
在学习权重时,我不像深度信念网络(无监督学习)那样使用分层策略,而是使用监督学习并同时学习所有层的权重.这是正确的还是有其他方法来学习权重?
我所理解的是正确的吗?
因此,如果我想使用DBN进行图像分类,我应该将所有图像调整到特定大小(例如200x200)并在输入层中放置那么多神经元,而在CNN的情况下,我只训练一个较小的补丁.输入(比如尺寸为200x200的图像为10 x 10)并将学习的权重卷积在整个图像上?
DBN提供的结果是否比CNN更好,还是纯粹依赖于数据集?
谢谢.
machine-learning computer-vision neural-network dbn autoencoder
通过我的新作业,我正在寻找一种方法来检测图像上是否存在文本.图像是地图 - 例如可以是谷歌地图.任务是检测街道/城市标签的放置位置.
我知道,OpenCV库有算法,可以检测功能(例如人脸) - Haar分类或猪(方向梯度直方图),但我听说,学习这样的算法过程是相当困难的.
您是否知道可以执行此操作的任何算法,方法或库(检测图像上是否存在文本)?
谢谢,约翰
opencv image image-processing image-recognition computer-vision
我有一个静止的相机,指向室内区域.人们将走过相机,距离它约5米.使用OpenCV,我想检测走过的人 - 我理想的回归是一组检测到的个体,带有边界矩形.
我看了几个内置示例:
是否有人能够提供指导或样本 - 最好是在Python中?
我正在尝试制作一个结合Haar Cascade Classification和Lucas Kanade良好特征检测的人脸跟踪器.但是,我不断收到一个错误,我无法弄清楚它的含义以及如何解决它.
有人能帮我一下吗?
错误:
line 110, in <module>
cv2.imshow('frame',img)
error: /build/buildd/opencv-2.4.8+dfsg1/modules/highgui/src/window.cpp:269:
error: (-215)size.width>0 && size.height>0 in function imshow
Run Code Online (Sandbox Code Playgroud)
码:
from matplotlib import pyplot as plt
import numpy as np
import cv2
face_classifier = cv2.CascadeClassifier('haarcascades/haarcascade_frontalface_default.xml')
cap = cv2.VideoCapture(0)
# params for ShiTomasi corner detection
feature_params = dict( maxCorners = 200,
qualityLevel = 0.01,
minDistance = 10,
blockSize = 7 )
# Parameters for lucas kanade optical flow
lk_params = dict( winSize = (15,15),
maxLevel = 2,
criteria = (cv2.TERM_CRITERIA_EPS …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试制作一个程序,仅根据其外观区分腐烂的橙子和可食用的橙子.为此,我计划使用卷积神经网络训练腐烂的橙子和普通的橙子.经过一番搜索,我只能找到一个约数据库.黑色背景上的150个烂橙子和150个普通橙子(http://www.cofilab.com/downloads/).显然,机器学习模型至少需要几千个橙子才能达到90%左右的精度.但是,我可以用某种方式改变这150种橙子来制作更多的橙子照片吗?通过改变,我的意思是在柑橘类水果上添加不同浓度的橙色,以形成"不同的橙色".这是训练神经网络的有效方法吗?
machine-learning computer-vision training-data neural-network conv-neural-network
我只是从一般的keras和机器学习开始.
我训练了一个模型来分类来自2个类的图像并使用它保存model.save().这是我使用的代码:
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D
from keras.layers import Activation, Dropout, Flatten, Dense
from keras import backend as K
# dimensions of our images.
img_width, img_height = 320, 240
train_data_dir = 'data/train'
validation_data_dir = 'data/validation'
nb_train_samples = 200 #total
nb_validation_samples = 10 # total
epochs = 6
batch_size = 10
if K.image_data_format() == 'channels_first':
input_shape = (3, img_width, img_height)
else:
input_shape = (img_width, img_height, 3)
model = Sequential()
model.add(Conv2D(32, …Run Code Online (Sandbox Code Playgroud) 我有兴趣编写一些基本的计算机化对象识别应用程序,所以我想我需要一些图像处理算法的理论背景,以及一些用于决策能力的AI.
我是计算机科学专业的毕业生,有一天我打算获得硕士学位,希望能够进入这些领域.与此同时,我想先行一步,做一些自学.
所以我的问题是,我从哪里开始?我很欣赏正确方向的箭头,如果可能的话,还有一些链接.