如何使用从图像中提取的特征矩阵在Matlab中构建神经网络?

时间:2015-06-14 10:37:21

标签: matlab image-processing matrix neural-network feature-extraction

我有一个X矩阵,每行包含一些从图像中提取的特征(一行一个图像)和一个Y矩阵,每行上有一个矩阵X中每个特征向量/行的分类标准(Y是一个矩阵只有一列)。现在我想将这两个矩阵提供给神经网络并训练它然后我想测试一个新的图像特征向量(new_ft),并能够获得神经网络模型中构建的两个分类标准之一。基本上我想看看一个新的特征向量属于哪个组。 我尝试以以下形式训练网络:net = newpr(X,Y,numHiddenNeurons)然后使用[net,tr] = train(net,Xx,Y); outputs = sim(net,Xx);但我得到一个错误"连接的矩阵的维度不一致。"在第一行。我的矩阵大小为:X = 46 x 25750 double,Y = 46 x 1 cell。我尝试给Y大小相同的尺寸46 x 25750,但我遇到了同样的问题。

你能告诉我这里可能出现什么问题吗?谢谢!

2 个答案:

答案 0 :(得分:0)

试试这个 如果每张图像的特征向量长度为​​1 * 59,则为4张图像;所以你的特征向量长度将是4 * 59.你必须用两个类来分类。

所以你训练数据应该是(对于matlab NNTOOL类)是59 * 4的向量长度 和火车标签是2 * 4矢量长度

Train_label =

<html>
<head>
<script src="jquery-latest.min.js"></script>
<script>
$(document).ready(function(){

$( ".add" ).on("click", function() {

    $( ".profile" ).append( '<div class="col-md-3"><div class="form-group"><label>Subject</label><input type="text" id="subject" name="subject" value="" class="form-control" placeholder="First row, second input"></div></div>');

    $(this).attr("disabled", true);

});

$(".profile").on("click", "#submit", function(){

    //Post Data using AJAX

    var formData = {name: $("#names").val(), city: $("#city").val(), subject: $("#subject").val()};
    console.log(formData);

    var postDataObj = {
                    url: "YOUR_SERVER_FILE",
                    type: "post",
                    data: formData,
                    success: function(data){
                       //Response Data From Server
                    }
    }
    console.log(postDataObj);       

    $.ajax(postDataObj);



});

});
</script>
</head>
<body>

<div class="allsubjects">
<form class="profile">
<label>Names</label>
<input type="text" name="names" id="names" value="" />
<label>City</label>
<input type="text" name="city" id="city" value="" />
<input type="button" id="submit" value="Submit Form"/>
</form>
</div>

<button class="add">
Add Subject
</button>



</body>
</html>

现在使用

 1     1     0     0
 0     0     1     1

它会起作用

答案 1 :(得分:0)

尝试将X和Y转置为网络: [net,tr] = train(net,X',Y')