语义分割只是一个Pleonasm还是"语义分割"和"分割"之间存在差异?"场景标记"或"场景解析"有区别吗?
像素级和像素级分割有什么区别?
(旁边问题:当你有这种像素方式的注释时,你是否可以免费获得物体检测,还是还有什么可做的?)
请提供您的定义来源.
"语义分割"似乎最近比"场景标记"更多地使用
image-processing object-detection computer-vision image-segmentation semantic-segmentation
我正在开发一个图像处理项目,我在许多科学论文中遇到了遮挡这个词,遮挡在图像处理的背景下意味着什么?字典只给出了一般定义.任何人都可以使用图像作为上下文来描述它们吗?
对于我在大学的最后一个项目,我正在开发车辆牌照检测应用程序.我认为自己是一名中级程序员,但是我的数学知识缺乏中学以上的任何东西,这使得生产正确的公式比它应该更难.
我花了很多时间查阅学术论文,例如:
谈到数学,我迷路了.由于这种测试,各种图形图像被证明是有效的,例如:
至
然而,这种方法仅适用于该特定图像,如果将这些技术应用于不同的图像,我确信会发生较差的转换.我读过一个名为"底帽形态变换"的公式,它执行以下操作:
基本上,变换保留了图片的所有暗部细节,并消除了其他一切(包括更大的暗区和亮区).
我找不到很多关于此的信息,但是报告末尾附近的文档中的图像显示了它的有效性.
我需要建议我应该关注哪些转换技术,以及哪些算法可以帮助我.
编辑:关于续 - 车辆牌照检测的新信息
嗨,我正在创建一个程序,用其他人的脸取代图像中的脸部.但是,我一直试图将新面孔插入原始的较大图像中.我已经研究了ROI和addWeight(需要图像大小相同),但我还没有找到一种方法在python中做到这一点.任何建议都很棒.我是opencv的新手.
我使用以下测试图像:
smaller_image:
larger_image:
这是我的代码到目前为止...其他样本的混合器:
import cv2
import cv2.cv as cv
import sys
import numpy
def detect(img, cascade):
rects = cascade.detectMultiScale(img, scaleFactor=1.1, minNeighbors=3, minSize=(10, 10), flags = cv.CV_HAAR_SCALE_IMAGE)
if len(rects) == 0:
return []
rects[:,2:] += rects[:,:2]
return rects
def draw_rects(img, rects, color):
for x1, y1, x2, y2 in rects:
cv2.rectangle(img, (x1, y1), (x2, y2), color, 2)
if __name__ == '__main__':
if len(sys.argv) != 2: ## Check for error in usage syntax
print "Usage : python faces.py <image_file>"
else:
img …
Run Code Online (Sandbox Code Playgroud) 我认为对于 GPU 内存较低的 PyTorch 用户来说,这是一个非常普遍的信息:
RuntimeError: CUDA out of memory. Tried to allocate MiB (GPU ; GiB total capacity; GiB already allocated; MiB free; cached)
Run Code Online (Sandbox Code Playgroud)
我想为我的课程研究对象检测算法。许多深度学习架构需要大容量的 GPU 内存,所以我的机器无法训练这些模型。我尝试通过将每一层加载到 GPU 然后将其加载回来来处理图像:
RuntimeError: CUDA out of memory. Tried to allocate MiB (GPU ; GiB total capacity; GiB already allocated; MiB free; cached)
Run Code Online (Sandbox Code Playgroud)
但它似乎不是很有效。我想知道在使用很少的 GPU 内存的同时训练大型深度学习模型是否有任何提示和技巧。提前致谢!
编辑:我是深度学习的初学者。如果这是一个愚蠢的问题,请道歉:)
我已成功使用TensorFlow训练了一个对象检测模型,其中的示例配置如下:https://github.com/tensorflow/models/tree/master/object_detection/samples/configs
现在我想微调我的配置以获得更好的结果.我在其中看到的一个有前景的选项是"train_config"下的"data_augmentation_options".目前,它看起来像这样:
train_config: {
batch_size: 1
...
data_augmentation_options {
random_horizontal_flip {
}
}
}
Run Code Online (Sandbox Code Playgroud)
还有其他选项可以进行随机缩放,裁剪或调整亮度吗?
给定纯白色背景上的对象,是否有人知道OpenCV是否提供了从捕获的帧中轻松检测对象的功能?
我正在尝试找到一个对象(矩形)的角点/中心点.我目前正在做的方式是蛮力(扫描物体的图像)而不准确.我想知道引擎盖下是否有功能我不知道.
编辑细节:大小与小苏打相同.相机位于物体上方,为其提供2D /矩形感.来自相机的方向/角度是随机的,这是从角点计算的.
它只是一个白色背景,上面有物体(黑色).拍摄的质量与您希望从Logitech网络摄像头看到的一致.
一旦我得到角点,我计算中心.然后将中心点转换为厘米.
它正在精炼'我如何'获得这四个角落是我正在努力关注的.您可以使用此图像查看我的强力方法:图像
我找到了很多方法来检测不同的形状.但是当我去寻找物理对象时,运气不好.根据我的阅读,我们应该在图像周围有一个黑色边框来制作图案文件.如果我遵循这个概念并生成模式,那么我的应用程序会检测打印输出的图像.但在现实世界中,物体不一定在其周围具有黑色边框方形.
更新
虽然我接受了答案,但我的问题仍然没有解决.由于仍然没有检测物理对象的解决方案.
欢迎任何进一步的研究和链接!
前一段时间我问了一个关于方形检测的问题,karlphillip提出了一个不错的结果.
现在我想更进一步,找到边缘不完全可见的方块.看看这个例子:
有任何想法吗?我正在使用karlphillips代码:
void find_squares(Mat& image, vector<vector<Point> >& squares)
{
// blur will enhance edge detection
Mat blurred(image);
medianBlur(image, blurred, 9);
Mat gray0(blurred.size(), CV_8U), gray;
vector<vector<Point> > contours;
// find squares in every color plane of the image
for (int c = 0; c < 3; c++)
{
int ch[] = {c, 0};
mixChannels(&blurred, 1, &gray0, 1, ch, 1);
// try several threshold levels
const int threshold_level = 2;
for (int l = 0; …
Run Code Online (Sandbox Code Playgroud) 问题
我收集了日本一座山的数码照片.然而,这座山常常被云雾遮挡.
我可以使用哪些技术来检测图像中的山峰是否可见?我目前正在使用带有Imager模块的Perl ,但对替代品开放.
所有图像都是从完全相同的位置拍摄的 - 这些是一些样本.
样本图像http://www.freeimagehosting.net/uploads/7304a6e191.jpg
我天真的解决方案
我开始采用山锥的几个水平像素样本,并将亮度值与天空中的其他样本进行比较.这适用于区分好图像1和坏图像2.
然而在秋天,它下雪了,山比天空更明亮,就像图像3一样,我的简单亮度测试开始失败.
图4是边缘情况的示例.我认为这是一个很好的形象,因为有些山峰清晰可见.
更新1
谢谢你们的建议 - 我很高兴你们都高估了我的能力.
根据答案,我开始尝试使用ImageMagick边缘检测变换,这使我能够分析更简单的图像.
convert sample.jpg -edge 1 edge.jpg
Run Code Online (Sandbox Code Playgroud)
边缘检测样本http://www.freeimagehosting.net/uploads/caa9018d84.jpg
我认为我应该使用某种掩蔽来摆脱树木和大部分云层.
一旦我有了蒙面图像,将相似度与"好"图像进行比较的最佳方法是什么?我猜这个" 比较 "命令适合这份工作吗?如何从中获取数字"相似性"值?
更新2
我想我可能会卷入某个地方.
我通过在良好的图像上执行边缘检测来制作我的"内核"图像(下图中的顶部).然后我把山的轮廓周围的所有"噪音"涂黑了,然后将它裁剪掉.
然后我使用以下代码:
use Image::Magick;
# Edge detect the test image
my $test_image = Image::Magick->new;
$test_image->Read($ARGV[0]);
$test_image->Quantize(colorspace=>'gray');
$test_image->Edge(radius => 1);
# Load the kernel
my $kernel_image = Image::Magick->new;
$kernel_image->Read('kernel-crop.jpg');
# Convolve and show the result
$kernel_image->Convolve(coefficients => [$test_image->GetPixels()]);
$kernel_image->Display();
Run Code Online (Sandbox Code Playgroud)
我为各种样本图像运行了这个,我得到如下结果(每个样本下面都显示了卷积图像):
(对不起 - 上次不同的样本图片!)
alt text http://www.freeimagehosting.net/uploads/f9a5a34980.jpg …
object-detection ×10
opencv ×3
python ×2
android ×1
c# ×1
c++ ×1
image ×1
imagemagick ×1
imaging ×1
low-memory ×1
objective-c ×1
ocr ×1
perl ×1
pytorch ×1
tensorflow ×1