标签: computer-vision

将多边形旋转 180 度会产生反射吗?

我已经以传统方式在 Java 中编写了反射代码,我知道如何对多边形进行反射。

我的问题是关于尝试新的东西,我在想如果我将多边形旋转 180 度,它会产生多边形的反射吗??我认为它会产生它的反射,但它在数学上是可以接受的吗??

reflection graphics rotation computer-vision

0
推荐指数
1
解决办法
3987
查看次数

从二值图像中提取形状/多边形?

我正在尝试从映射数据构建导航网格。其中一个步骤涉及将二值图像(其中 0 表示占用空间,1 表示空闲空间)转换为平面直线图。

我试图找出一种方法来做到这一点,这有点可靠。我目前的想法是使用 Canny 边缘检测器,然后通过 OpenCV 的 Hough 线变换运行它。但是,这并不能保证检测到的线以代表原始形状的方式连接。

可以安全地假设地图相对平滑,并且没有任何区域相互接触。

编辑 - 这是一个示例图像:

样本地图

白色区域代表可用空间

黑色区域代表占用空间

python opencv computer-vision computational-geometry python-2.7

0
推荐指数
1
解决办法
1760
查看次数

为什么我的CIFAR 100 CNN模型主要预测两个类?

我目前正试图在CIFAR 100上使用Keras得到一个不错的分数(> 40%的准确率).然而,我正在经历一个CNN模型的奇怪行为:它倾向于预测一些类(2 - 5)比其他:

在此输入图像描述

位置(i,j)处的像素包含计数来自类i的验证集的多少元素被预测为类j的计数.因此,对角线包含正确的分类,其他一切都是错误.两个垂直条表示模型经常预测那些类,尽管情况并非如此.

CIFAR 100完美平衡:所有100个班级都有500个训练样本.

为什么模型比其他类更倾向于预测某些类?怎么解决这个问题?

代码

运行这需要一段时间.

#!/usr/bin/env python

from __future__ import print_function
from keras.datasets import cifar100
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Convolution2D, MaxPooling2D
from keras.utils import np_utils
from sklearn.model_selection import train_test_split
import numpy as np

batch_size = 32
nb_classes = 100
nb_epoch = 50
data_augmentation = True

# input image dimensions
img_rows, img_cols = 32, 32
# The CIFAR10 images are RGB. …
Run Code Online (Sandbox Code Playgroud)

computer-vision neural-network keras

0
推荐指数
1
解决办法
2967
查看次数

如何在caffe中输入多个ND阵列到网络?

我想为caffe中的语义分段创建一个自定义丢失层,需要多个输入.我希望这种损失函数具有额外的输入因子,以便惩罚小物体中的未命中检测.

为此,我创建了一个图像GT,其中包含每个像素的权重.如果像素属于小物体,则重量很高.

我是caffe的新手,我不知道如何同时为我的网络提供三个2-D信号(图像,gt-mask和每像素权重).我怀疑caffe如何处理rgb数据和gt数据之间的对应关系.
我想扩展这个以便为类标签图像设置2 gt,而将另一个设置为丢失功能.

你能给出一些暗示以达到这个目的吗?

谢谢,

computer-vision neural-network image-segmentation deep-learning caffe

0
推荐指数
1
解决办法
1129
查看次数

为什么不能在Go中将变量作为多维数组大小?

最近,我一直对机器学习更感兴趣,机器学习图像,但要做到这一点,我需要能够处理图像.我想更全面地了解图像处理库如何工作,所以我决定创建自己的库来阅读我能理解的图像.但是,在读取图像的SIZE时,我似乎遇到了一个问题,因为当我尝试编译时会弹出这个错误:

 ./imageProcessing.go:33:11: non-constant array bound Size
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

package main

import (
 // "fmt"
 // "os"
)

// This function reads a dimension of an image you would use it like readImageDimension("IMAGENAME.PNG", "HEIGHT")

 func readImageDimension(path string, which string) int{

var dimensionyes int

if(which == "" || which == " "){
    panic ("You have not entered which dimension you want to have.")
} else if (which == "Height" || which == "HEIGHT" || which == "height" || which == "h" …
Run Code Online (Sandbox Code Playgroud)

arrays image-processing go computer-vision

0
推荐指数
1
解决办法
207
查看次数

cv2.floodfill如何工作?

这是一个显示cv2.floodfill函数用法的示例代码

import cv2
import numpy as np
import os

def imshow(img):
    cv2.imshow('img', img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()


img = cv2.imread('test4.png')

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

thresh = cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY_INV,3,1)

_, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_CCOMP,cv2.CHAIN_APPROX_NONE)

mask = np.zeros(img.shape[:-1],np.uint8)

cv2.drawContours(mask,contours,-1,(255,255,255),-1)

height, width = img.shape[:-1]

mask1 = np.zeros((height+2, width+2), np.uint8)     # line 26
cv2.floodFill(mask,mask1,(0,0),255)     # line 27
mask_inv=cv2.bitwise_not(mask)

imshow(mask_inv)
Run Code Online (Sandbox Code Playgroud)

我在我的一个项目中使用此函数但我不理解代码的mask1部分(第26行和第27行),

为什么我们为高度为'-h'和宽度为'w'的给定图像创建形状为h + 2,w + 2的mask1?(第26行)

为什么我们必须将这个mask1传递给cv2.floodfill函数?(第27行)

这是示例代码的输入和输出.

输入图像 输入图像

输出图像 输出图像

请帮忙

python opencv computer-vision

0
推荐指数
1
解决办法
1万
查看次数

可以加快ChessboardboardCorners的查找速度吗?

我发现此帖子OpenCV findChessboardCorners非常慢,但是它不能完全回答我的问题。

我在树莓派上运行相机校准工具,并且要花费大量时间来检测全分辨率图像中的棋盘角。我目前正在重新缩放它们,但是计算出的参数无法用于完整尺寸的图像。

我当时想做的一件事是在较小的图像中检测到角点4倍,然后将角点坐标乘以4,但结果却不尽相同。

您是否认为有办法加快或插入另一个拐角检测?

我正在使用python实现(cv2)

谢谢

opencv computer-vision camera-calibration corner-detection

0
推荐指数
1
解决办法
1639
查看次数

如何在缩放和旋转后重新计算点的cooredinates?

我在图像中有6个点的坐标

(170.01954650878906, 216.98866271972656)
(201.3812255859375, 109.42137145996094)
(115.70114135742188, 210.4272918701172)
(45.42426300048828, 97.89037322998047)
(167.0367889404297, 208.9329833984375)
(70.13690185546875, 140.90538024902344)
Run Code Online (Sandbox Code Playgroud)

我有一点作为中心[89.2458, 121.0896].我试图用4个旋转度(从0,90,-90,180)和6个比例因子(0.5,0.75,1,1.10,1.25,1.35,1.5)重新计算python中点的位置.
我的问题是如何旋转和缩放相对于中心点的上述点并获得这6个点的新坐标?

非常感谢您的帮助.

python image-processing draw computer-vision cv2

0
推荐指数
1
解决办法
702
查看次数

掩码R-CNN用于对象检测和分割[训练自定义数据集]

我正在研究" Mask R-CNN用于对象检测和分割".因此,我已阅读呈现原始研究论文Mask R-CNN为目标检测,也发现了我的几个实现Mask R-CNN,在这里这里(被Facebook人工智能研究小组称为detectron).但他们都使用coco数据集进行测试.

但是,对于使用具有大量图像的自定义数据集进行上述实现的培训,我有点困惑,并且对于每个图像,存在用于在相应图像中标记对象的掩模图像的子集.

所以,如果有人可以为此任务发布有用的资源或代码示例,我很高兴.

注意:我的数据集具有以下结构,

它包含大量图像,每个图像都有单独的图像文件,将对象突出显示为黑色图像中的白色色块.

这是一个示例图像和它的掩码:

图片;

在此输入图像描述

面具;

在此输入图像描述 在此输入图像描述

python machine-learning object-detection computer-vision semantic-segmentation

0
推荐指数
1
解决办法
5821
查看次数

什么是物体检测“头”?

我目前正在阅读SSD Single Shot Detector,并且有一个我很难理解的术语。该术语是“头”。当我听到这个词时,就像起初一样,我想到了网络的负责人。

我查看了由Google创建的对象检测API,发现带有不同头部类型的“ heads”文件夹,一种用于框编码,另一种用于类预测。

抽象的“ head”类的文档不是超级启发性的:

不同模型中所有不同种类的预测头都将从该类继承。所有头类之间的共同点是它们具有一个 作为其第一个参数predict接收的features函数。

我想我对它们有较高的了解,但是我对它们没有具体的定义。有人可以定义一个“头”并解释如何拥有“盒子预测头”或“分类头”吗?

machine-learning computer-vision neural-network conv-neural-network object-detection-api

0
推荐指数
1
解决办法
457
查看次数