小编pow*_*der的帖子

pytorch在顺序模型中跳过连接

我试图在顺序模型中绕过跳过连接.使用功能API,我会做一些简单的事情(快速示例,可能不是100%语法正确,但应该得到的想法):

x1 = self.conv1(inp)
x = self.conv2(x)
x = self.conv3(x)
x = self.conv4(x)

x = self.deconv4(x)
x = self.deconv3(x)
x = self.deconv2(x)
x = torch.cat((x, x1), 1))
x = self.deconv1(x)
Run Code Online (Sandbox Code Playgroud)

我现在正在使用顺序模型并尝试执行类似的操作,创建一个跳过连接,将第一个conv层的激活一直带到最后一个convTranspose.我已经看过这里实现的U-net架构,它有点令人困惑,它做了这样的事情:

upconv = nn.ConvTranspose2d(inner_nc * 2, outer_nc,
                                    kernel_size=4, stride=2,
                                    padding=1, bias=use_bias)
down = [downrelu, downconv, downnorm]
up = [uprelu, upconv, upnorm]

if use_dropout:
    model = down + [submodule] + up + [nn.Dropout(0.5)]
else:
    model = down + [submodule] + up
Run Code Online (Sandbox Code Playgroud)

这不仅仅是按顺序向顺序模型添加图层吗?有一个downconv后面跟着submodule(递归地添加内层),然后连接到upupconv层.我可能遗漏了一些关于Sequential …

python sequential deep-learning conv-neural-network pytorch

10
推荐指数
1
解决办法
4302
查看次数

使用OpenCV获取多类分类中的SVM分类分数

我正在开发一个项目,我在OpenCV中使用SVM进行多类分类.

我的目标是获得分类的置信度分数以及预测的等级.我怎样才能做到这一点?现在我正在做类似的事情

float result = mysvm.predict(sample);
Run Code Online (Sandbox Code Playgroud)

拥有相当多的课程,我宁愿避免做很多一对一的分类,然后计算分数.

由于OpenCV SVM是使用LibSVM实现的,我很确定有一种方法可以做到这一点,但是查看http://docs.opencv.org/modules/ml/doc/support_vector_machines.html并没有真正帮助.

感谢您提供的任何输入.

c++ opencv svm

5
推荐指数
1
解决办法
5128
查看次数

SIFT匹配产生非常差的结果

我正在开展一个项目,我将使用单应性作为分类器中的特征.我的问题在于自动计算单应性,我使用SIFT描述符来找到两个图像之间的点,在这两个图像上计算单应性,但SIFT给我的结果非常差,因此我不能在我的工作中使用它们.

我正在使用OpenCV 2.4.3.

起初我使用的是SURF,但我有类似的结果,我决定使用速度较慢但更精确的SIFT.我的第一个猜测是我的数据集中的图像分辨率太低但我在最先进的数据集上运行我的算法(指向04)并且我获得了几乎相同的结果,所以问题在于我做什么而不是我的数据集.

在每个图像中找到的SIFT关键点之间的匹配是使用FlannBased匹配器完成的,我尝试了BruteForce,但结果再次大致相同.

这是我找到的匹配示例(来自Pointing 04数据集的图像) 匹配我的算法

上图显示了我的程序找到的匹配程度有多差.只有1分是正确的匹配.我需要(至少)4个正确的匹配我必须做的事情.

这是我使用的代码:

这是从每个图像中提取SIFT描述符的函数

void extract_sift(const Mat &img, vector<KeyPoint> &keypoints, Mat &descriptors, Rect* face_rec) {

        // Create masks for ROI on the original image
    Mat mask1 = Mat::zeros(img.size(), CV_8U);  // type of mask is CV_8U

    Mat roi1(mask1, *face_rec);
    roi1 = Scalar(255, 255, 255);

    // Extracts keypoints in ROIs only
    Ptr<DescriptorExtractor> featExtractor;
    Ptr<FeatureDetector> featDetector;
    Ptr<DescriptorMatcher> featMatcher;

    featExtractor = new SIFT(); 
    featDetector = FeatureDetector::create("SIFT"); 

    featDetector->detect(img,keypoints,mask1); 
    featExtractor->compute(img,keypoints,descriptors); 

}
Run Code Online (Sandbox Code Playgroud)

这是匹配两个图像描述符的函数

void match_sift(const Mat &img1, const Mat &img2, const …
Run Code Online (Sandbox Code Playgroud)

c++ opencv computer-vision sift

4
推荐指数
1
解决办法
2079
查看次数