图像处理与机器视觉
zaf赵
这个作者很懒,什么都没留下…
展开
-
AI项目(CV方向)研发流程
参考网址:https://www.cnblogs.com/wxl845235800/p/11508626.html原创 2020-10-10 15:56:32 · 586 阅读 · 0 评论 -
使用VsCode进行python代码调试参数(args)添加方法
前提:代码中设置了arg paser,需要手动设置,VS code的debug没有简介的添加参数的方式。解决方式如下:打开运行->打开配置 在对应的代码块中添加args,如下图(注意参数之间需要用字符串分割开,用空格是不行的) 再次运行,可以看到结果如下图,自定义的命令已经添加进去了参考网址:https://blog.csdn.net/zk0272/article/details/83105574...原创 2020-09-30 16:54:42 · 8641 阅读 · 2 评论 -
python图像金字塔模板匹配
#!/usr/bin/env python# -*- encoding: utf-8 -*-'''Descripttion: version: 1.0Author: zffDate: LastEditors: LastEditTime: Software:: Visual Studio CodeFilePath: image_match.py'''from cv2 import cv2import numpy as npfrom nms import py_cpu_nmsim.原创 2020-09-29 16:56:15 · 1349 阅读 · 0 评论 -
NMS 和 Soft-NMS简单介绍
一 NMSNMS算法的大致思想:对于有重叠的候选框:若大于规定阈值(某一提前设定的置信度)则删除,低于阈值的保留。对于无重叠的候选框:都保留。所谓非极大值抑制:先假设有6个输出的矩形框(即proposal_clip_box),根据分类器类别分类概率做排序,从小到大分别属于车辆的概率(scores)分别为A、B、C、D、E、F。(1)从最大概率矩形框F开始,分别判断A~E与F的重叠度IOU是否大于某个设定的阈值;(2)假设B、D与F的重叠度超过阈值,那么就扔掉B、D;并标记第一个矩形框F,是我原创 2020-09-29 16:49:52 · 1033 阅读 · 0 评论 -
opencv查看图像的任意像素位置、RGB值与HSV值等
# -*- coding:utf-8 -*- import cv2 img = cv2.imread('11_13/120002.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) def mouse_click(event, x, y, flags, para): i...原创 2020-09-29 14:20:01 · 4399 阅读 · 2 评论 -
使用约登指数寻找最佳ROC曲线阈值
预备知识对于二元分类结果评价,ROC曲线是常用标准,其使用TPR与FPR绘制而成。(相关知识推荐博文:一文让你彻底理解准确率,精准率,召回率,真正率,假正率,ROC/AUC) 而TPR与FPR的计算是根据选定的一系列阈值(Threshold)得到的,本文的目的便是寻找最优阈值,在假正率FPR与真正率TPR之间做折中。ROC用以判断分类模型好坏,是否足以区分两类对象,而寻找最佳阈值可以使分类效果达到最优,符合实际应用要求。计算方法Youden Index参考链接:全面了解ROC曲线如图所原创 2020-09-29 11:26:19 · 22687 阅读 · 4 评论 -
目标检测里评价指标
评价指标: 准确率 (Accuracy),混淆矩阵 (Confusion Matrix),精确率(Precision),召回率(Recall),平均正确率(AP),mean Average Precision(mAP),交除并(IoU),ROC + AUC,非极大值抑制(NMS)。1、准确率 (Accuracy) 分对的样本数除以所有的样本数 ,即:准确(分类)率 = 正确预测的正反例数 / 总数。 准确率一般用来评估模型的全局准确程度,不能包含太多信息,无法全面评价一个模型性能。原创 2020-09-29 10:47:22 · 1233 阅读 · 2 评论 -
解决matplotlib中文乱码问题(Ubuntu16.04)
网上教程很多,但是折腾了好久才弄好。特此记录一下。查看matplotlib配置文件位置>>> import matplotlib>>> print matplotlib.matplotlib_fname()/home/ubuntu/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/ma...原创 2019-05-16 16:21:09 · 181 阅读 · 0 评论 -
神经网络架构搜索(NAS)综述
本文是一篇神经网络架构搜索综述文章,从 Search Space、Search Strategy、Performance Estimation Strategy 三个方面对架构搜索的工作进行了综述,几乎涵盖了所有近几年的优秀工作。论文:Neural Architecture Search: A Survey链接:https://www.paperweekly.site/papers/2249作...原创 2019-05-17 18:08:46 · 2637 阅读 · 0 评论 -
使用numpy解决图像维度变换问题
在这篇文章中:numpy函数介绍 1. np.transpose(input, axes=None) 2. np.concatenate((a1, a2, …), axis=0) 3. np.newaxis 实践出真知 1. 扩展出一个新的维度用来表示channel 2.叠加channel 3.维度转置 4.验证是否正确 5.整体演示代码 numpy函数...原创 2019-05-17 19:19:26 · 4982 阅读 · 1 评论 -
Tensorflow 中 learning rate decay 的奇技淫巧
深度学习中参数更新的方法想必大家都十分清楚了——sgd,adam等等,孰优孰劣相关的讨论也十分广泛。可是,learning rate的衰减策略大家有特别关注过吗?在训练神经网络时,使用学习率控制参数的更新速度.学习率较小时,会大大降低参数的更新速度;学习率较大时,会使搜索过程中发生震荡,导致参数在极优值附近徘徊.为此,在训练过程中引入学习率衰减,使学习率随着训练的进行逐渐衰减.learni...原创 2019-05-31 19:00:08 · 5539 阅读 · 2 评论 -
Tensorflow Estimator做迁移学习(Transfer Learning)
在TensorFlow官方ResNet模型实现分析中我们分析了基于Estimator的模型实现与运行的基本方法。除此之外,这份源码还提供了神经网络中常用的一种手段——迁移学习(Transfer Learning)的实现。迁移学习取决于具体的任务,从零开始训练一个深度神经网络有时需要海量的数据才能得到较好的效果。如果你手头的数据有限,又想采用神经网络作为解决方案,可以尝试一下迁移学习。举...原创 2019-06-03 10:25:38 · 1131 阅读 · 4 评论 -
谷歌开发新模型EfficientNets,缩放CNN的精度与效率超越现有模型
谷歌提出了一项新型模型缩放方法:利用复合系数统一缩放模型的所有维度,该方法极大地提升了模型的准确率和效率。谷歌研究人员基于该模型缩放方法,提出了一种新型 CNN 网络 EfficientNet,该网络具备极高的参数效率和速度。目前,该模型的代码已开源。卷积神经网络(CNN)通常以固定成本开发,然后再按比例放大,从而在获得更多资源时可以达到更高的准确率。例如Resnet 可以通过增加网络层数,从...原创 2019-06-04 14:43:03 · 571 阅读 · 0 评论 -
Linux下安装OpenCV4(适用于Ubuntu等)
安装依赖必须要安装的依赖,通过命令安装:sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev如果需要其他的功能,还需安装一些,命令:sudo apt-get install python-dev ...原创 2019-07-04 18:17:45 · 3036 阅读 · 0 评论 -
opencv高效遍历图像
初次接触OpenCV的开发者,必须过的第一道坎就是学会如何遍历访问Mat对象中每个像素,实现像素级别的图像操作,这个是最级别的编程技能,但是不同的像素遍历方法效率有云泥之别,相差特别大,甚至可能成为算法运行的瓶颈之一,因此找到一种速度快的遍历方法对大图像处理是很关键的。在开始寻找高效遍历方法之前,先来了解一下Mat对象的数据组织形式与像素块数据的存储方式,Mat对象由两个部分组成,元数据头部加像素...原创 2019-07-11 18:52:29 · 263 阅读 · 0 评论 -
Numpy / OpenCV 图像中 BGR 与RGB转换
Conversion between any/all of BGR, RGB, and GBR may be necessary when working withMatplotlib pyplot.imshow(): M x N x 3 image, where last dimension is RGB. OpenCV cv2.imshow(): M x N x 3 image, whe...原创 2019-09-11 18:09:02 · 6519 阅读 · 0 评论 -
多任务学习Multi-task Learning(MTL)概述
本文学习资料主要来自An Overview of Multi-Task Learning in Deep Neural Networks 背景:只专注于单个模型可能会忽略一些相关任务中可能提升目标任务的潜在信息,通过进行一定程度的共享不同任务之间的参数,可能会使原任务泛化更好。广义的讲,只要l...原创 2019-05-20 19:24:10 · 7366 阅读 · 3 评论 -
图像分类算法优化技巧:Bag of Tricks for Image Classification
论文:Bag of Tricks for Image Classification with Convolutional Neural Networks论文链接:https://arxiv.org/abs/1812.01187论文复现对很多人而言难度都比较大,因为常常涉及很多细节,部分细节对于模型效果影响很大,但是却很少有文章介绍这些细节,前段时间正好看到这篇文章,再加上之前就有关注Gluo...原创 2019-05-20 19:02:40 · 783 阅读 · 0 评论 -
PCA的一些基本资料 以及MATLAB实现
PCA的一些基本资料最近因为最人脸表情识别,提取的gabor特征太多了,所以需要用PCA进行对提取的特征进行降维。本来最早的时候我没有打算对提取的gabor特征进行降维,但是如果一个图像时64*64,那么使用五个尺度八个方向的gabor滤波器进行滤波,这样提取的特征足足有64*64*5*8这么多,如果图像稍微大一点,比如128*128的图像,那么直接提取的特征就会几十万,所以不降维的...原创 2019-06-04 14:29:17 · 774 阅读 · 0 评论 -
人脸识别主要算法原理
人脸识别主要算法原理主流的人脸识别技术基本上可以归结为三类,即:基于几何特征的方法、基于模板的方法和基于模型的方法。1.基于几何特征的方法是最早、最传统的方法,通常需要和其他算法结合才能有比较好的效果;2.基于模板的方法可以分为基于相关匹配的方法、特征脸方法、线性判别分析方法、奇异值分解方法、神经网络方法、动态连接匹配方法等。3.基于模型的方法则有基于隐马尔柯夫模型,主动形状模型和主...原创 2019-06-04 14:24:17 · 18347 阅读 · 0 评论 -
PCA的简单理解
PCA人脸识别的基本思想就是从人脸图像中找出最能代表人脸的特征空间,去除一些不能代表人脸特征的属性。一个单个的人脸图片映射到这个特征空间得到这个特征空间的一组系数,这组系数就表示这张人脸图片的特征脸特征。如果两张人脸图片映射到这个特征空间的系数差不多,就表示这两张人脸是同一个人。训练阶段: 1:一张人脸图片在计算机表示为一个像素矩阵,即是一个二维数组,现在把这个二维数组变成一维数组,...原创 2019-06-04 14:30:16 · 397 阅读 · 0 评论 -
基于视频图像的识别算法
一个典型的基于视频图像的人脸识别系统一般都是自动检测人脸区域,从视频中提取特征,最后如果人脸存在则识别出人脸的身份。在视频监控、信息安全和出入控制等应用中,基于视频的人脸识别是一个非常重要的问题,也是目前人脸识别的一个热点和难点。基于视频比基于静态图像更具优越性,因为 Bruce 等人和 Knight 等人已证明,当人脸被求反或倒转时,运动信息有助于(熟悉的)人脸的识别。虽然视频人脸...原创 2019-06-04 14:34:09 · 9944 阅读 · 1 评论 -
常用计算机视觉实验图像库和图像集
转自http://www.cppblog.com/cdy20/archive/2012/10/10/193134.html 资料库 KDD杯的中心,所有的数据,任务和结果。 UCI机器学习和知识发现研究中使用的大型数据集KDD数据库存储库。 UCI机器学习数据库。 AWS(亚马逊网络服务)公共数据集,提供了一个集中的资料库,可以无缝集成到基于AWS的云应用程序的公共数据集。...原创 2019-05-20 14:18:59 · 814 阅读 · 0 评论 -
matlab读取/播放视频的函数
1.可以用mmreader和 read这两个函数读取视频帧readerobj = mmreader('xylophone.mpg');vidFrames = read(readerobj);具体参数含义帮助文档里面有。示例:fileName = 'ntia_wfall-qcif_original.avi';% .avi必须是无损压缩的.obj = mmreader(fileName)...原创 2019-04-22 15:31:19 · 8760 阅读 · 0 评论 -
Tensorflow中BN层的使用
使用tf.layers.batch_normalization()需要三步:在卷积层将激活函数设置为None。使用batch_normalization。使用激活函数激活。需要特别注意的是:在训练时,需要将第二个参数training = True。在测试时,将training = False。同时,在降低loss时候时候:update_ops = tf.get_collectio...原创 2019-05-09 15:20:37 · 8350 阅读 · 5 评论 -
线性代数中特征向量物理意义
什么是特征向量,特征值,矩阵分解[1. 特征的数学意义] 我们先考察一种线性变化,例如x,y坐标系的椭圆方程可以写为x^2/a^2+y^2/b^2=1,那么坐标系关于原点做旋转以后,椭圆方程就要发生变换。我们可以把原坐标系的(x,y)乘以一个矩阵,得到一个新的(x',y')的表示形式,写为算子的形式就是(x,y)*M=(x',y')。这里的矩阵M代表一种线性变换:拉伸,平移,旋转...原创 2019-05-09 15:24:43 · 2316 阅读 · 0 评论 -
Tensorflow保存和恢复模型
在tensorflow中保存和恢复模型主要通过tf.train.Saver(),具体如下:保存模型saver = tf.train.Saver()获得一个文件句柄,将训练中的某一个快照状态保存到文件中去 saver.save(sess, os.path.join(model_dir, ‘ckp-%05d’%(i+1))),将训练好的模型保存到文件中 参数1:sess,session会话,...原创 2019-05-09 18:02:07 · 301 阅读 · 0 评论 -
tensorflow实现将ckpt转pb文件
本博客实现将自己训练保存的ckpt模型转换为pb文件,该方法适用于任何ckpt模型,当然你需要确定ckpt模型输入/输出的节点名称。目录tensorflow实现将ckpt转pb文件一、CKPT 转换成 PB格式二、 pb模型预测三、源码下载和资料推荐1、训练方法2、本博客Github地址3、将模型移植Android的方法 使用 ...原创 2019-05-09 19:07:49 · 1033 阅读 · 0 评论 -
Tensorflow 运行时内存持续增长导致系统崩溃的问题
在用tensorflow实现一些模型的时候,有时候我们在运行程序的时候,会发现程序占用的内存在不断增长。最后内存溢出,程序被kill掉了。这个问题,其实有两个可能性。一个是比较常见,同时也是很难发现的。 tensorflow 训练部分代码几乎都采用循环,如果在循环中用到tf的op操作,就会导致节点越来越多,图的大小也不停的增大,故而内存会持续增长。这个问题的解决,需要我们知道tensorfl...原创 2019-05-14 18:37:24 · 3813 阅读 · 0 评论 -
tensorflow oom报错OOM的问题
OOM定义—out of memory,内存溢出,一个程序中,已经不需要使用某个对象,但是因为仍然有引用指向它垃圾回收器就无法回收它,当该对象占用的内存无法被回收时,就容易造成内存泄露。多个内存泄漏最终会导致内存溢出,即OOM。这个报错的原因有很多1、自身代码有问题,导致GPU内存不够用这个只能自查2、有未释放的GPU资源,导致GPU不够用;当然也有可能多人使用GPU,别人使用了。解...原创 2019-05-14 19:16:43 · 5740 阅读 · 0 评论 -
MobileNetV3论文讲解
在现代深度学习算法研究中,通用的骨干网+特定任务网络head成为一种标准的设计模式。比如VGG + 检测Head,或者inception + 分割Head。在移动端部署深度卷积网络,无论什么视觉任务,选择高精度的计算量少和参数少的骨干网是必经之路。这其中谷歌家去年发布的 MobileNetV2是首选。在MobileNetV2论文发布时隔一年4个月后,MobileNetV3 来了!论文名称《...原创 2019-05-20 16:58:07 · 8340 阅读 · 0 评论 -
神经网络CNN训练tricks
神经网络构建好,训练不出好的效果怎么办?明明说好的拟合任意函数(一般连续)(为什么?可以参考http://neuralnetworksanddeeplearning.com/),说好的足够多的数据(Occam's_razor),仔细设计的神经网络都可以得到比其他算法更好的准确率和泛化性呢(当然不是我说的),怎么感觉不出来呢?很直观,因为神经网络可以随意设计,先验假设较少,参数多,超参数...原创 2019-05-20 18:13:34 · 1160 阅读 · 0 评论 -
主成分分析 PCA算法
对同一个体进行多项观察时,必定涉及多个随机变量X1,X2,…,Xp,它们都是的相关性, 一时难以综合。这时就需要借助主成分分析 (principal component analysis)来概括诸多信息的主要方面。我们希望有一个或几个较好的综合指标来概括信息,而且希望综合指标互相独立地各代表某一方面的性质。任何一个度量指标的好坏除了可靠、真实之外,还必须能充分反映个体间的变异。如果有一项指标,...原创 2019-05-09 15:24:10 · 1345 阅读 · 0 评论