
计算机视觉知识点
蓝色的杯子
A good programmer knows things. A better programmer shares the things they know
展开
-
简单的图片换背景
本篇博客实现把卡片随机旋转一下原创 2020-12-07 11:01:49 · 178 阅读 · 0 评论 -
OpenCV滤镜效果
在medium上看到一篇介绍opencv滤镜效果的博客,这里做一下记录和分享.https://towardsdatascience.com/python-opencv-building-instagram-like-image-filters-5c482c1c5079原创 2020-11-29 16:34:35 · 677 阅读 · 0 评论 -
opencv直方图均衡提高图像对比度
def improve_contrast_image_using_clahe(bgr_image: np.array) -> np.array: hsv = open_cv.cvtColor(bgr_image, open_cv.COLOR_BGR2HSV) hsv_planes = open_cv.split(hsv) clahe = open_cv.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8)) hsv_p...原创 2020-11-15 17:50:32 · 284 阅读 · 0 评论 -
图像颜色聚类
这篇博文介绍对图像进行颜色聚类,进而达到分割的效果.待分割的图片是我们需要分割的颜色有:1 绿色(苹果)2 橙色(橙子)3 灰色阴影4 黄色高亮5 白色背景下边的代码# For clustering the image using k-means, we first need to convert it into a 2-dimensional arrayimage_2D = img.reshape(img.shape[0]*img.shape[1], im...原创 2020-11-01 17:19:44 · 1207 阅读 · 0 评论 -
计算机视觉知识点-TensorFlow工具介绍
看到一篇介绍的比较好的TensorFlow关于计算机视觉相关库的介绍的文章,这里转述一下.TensorFlow是能够执行一系列任务的端到端开源机器学习平台。 它为初学者和研究人员提供了一种易用性,并且可以用于不同的应用程序,比如计算机视觉,自然语言处理和强化学习。TensorFlow model optimization toolkitTensorFlow GraphicsTensorFlow FederatedTensorFlow PrivacyTensorFlow HubTens..原创 2020-09-13 12:07:39 · 511 阅读 · 0 评论 -
计算机视觉知识点-FineTuning
FineTuning技术是采用自己网络的特征提取层的参数采用其它开源的模型的参数初始化,避免了由于自己的数据少而过拟合现象严重的情况。采用这里的例子来说明finetuning.使用mxnet进行一下代码演示。mxnet的安装方法pip install d2l==0.14.3pip install -U mxnet-cu101mkl==1.6.0.post0 pip install gluoncv加载一个1400个正样本,1000个负样本的hotdog数据集%matplot...原创 2020-09-13 12:04:36 · 439 阅读 · 0 评论 -
TensorFlow-训练图像分类器
这篇文章是使用tensorflow_hub,进行图像分类的指南,原文在这里.环境搭建import itertoolsimport osimport matplotlib.pylab as pltimport numpy as npimport tensorflow as tfimport tensorflow_hub as hubprint("TF version:", tf.__version__)print("Hub version:", hub.__version__..原创 2020-09-13 12:03:05 · 1774 阅读 · 0 评论 -
一个调用云API进行车牌识别的的例子
这个网址提供了一个云车牌识别的测试接口,我测试一下.下边是代码.import base64import requestsimage_path = "1.jpg"secret_key = 'YOUR_KEY' #注册后软件会给一个Keywith open(image_path, 'rb') as image_file: image_base64 = base64.b64encode(image_file.read()) url = ('https://api.opena..原创 2020-09-13 10:42:25 · 366 阅读 · 0 评论 -
图像透明叠加
这篇文章介绍一个使用Opencv进行png透明头像叠加的小例子两张图像素材上边胡子的图片是一张png图片,包含a通道数据.使用opencv加载一下image_3 = cv2.imread("image3.png", cv2.IMREAD_UNCHANGED)数据大概是这个样子 shape = (320,640,4).[0,0,0,0],[0,0,0,0]....[0,0,0,128],[0,0,0,255][0,0,0,255][0,0,0,255]第一种效果i...原创 2020-09-13 10:41:15 · 921 阅读 · 0 评论 -
计算机视觉知识点-Detectron2Beginner‘sTutorial
这篇博客介绍Detectron2的使用,参考率官方文档.Detectron2是PyTorch官方用于检测和分割的一个库,这个库的优点是有很多训练好的模型.安装# install dependencies: !pip install pyyaml==5.1 pycocotools>=2.0.1import torch, torchvisionprint(torch.__version__, torch.cuda.is_available())!gcc --version# ope..原创 2020-09-02 21:24:45 · 283 阅读 · 0 评论 -
计算机视觉知识点-图像增强
图像增强技术通过对训练图像进行一系列随机更改以生成相似但不同的训练示例来扩展训练数据集的规模。 随机更改训练示例可以减少模型对某些属性的依赖,从而提高模型的泛化能力。我们可以以不同的方式裁剪图像,以使感兴趣的对象出现在不同的位置,从而减少了模型对对象出现位置的依赖性。 我们还可以调整亮度,颜色和其他因素,以降低模型对颜色的敏感度。 可以说图像增强技术为AlexNet的成功做出了巨大贡献。使用mxnet进行一下代码演示。mxnet的安装方法pip install d2l==0.14.3pip ..原创 2020-09-02 21:23:52 · 1513 阅读 · 0 评论 -
计算机视觉知识点-基础网络-DenseNet
ResNet极大地改变了有关如何参数化深度网络功能的观点,2017年提出的DenseNet在某种程度上是这一概念的逻辑扩展.公式1resnet的方式densennet和resnet的不同地方renent是相加,densenet是并列.用代码实现以下densenetfrom d2l import mxnet as d2lfrom mxnet import np, npxfrom mxnet.gluon import nnnpx.set_np()def con..原创 2020-09-02 21:21:53 · 417 阅读 · 0 评论 -
计算机视觉知识点-基础网络-BatchNorm
2015年提出的batchnorm, 也许是网络训练中仅次于relu中的技术点。有了batchnorm+resnet,让训练超过100层的网络成为可能。上图中的μ是这个批次的均值,σ是这个批次的方差,首先把数据变成0均值,和1方差, 然后增加两个可以学习的参数γ和β。增加batchnorm后,网络的收敛速度会加快。batchnorm针对fc的情况batchnorm针对conv的情况需要对每个通道单独计算推理推理时不需要在进行batchnorm,这是为了提高计算速度,还..原创 2020-09-01 23:12:16 · 764 阅读 · 1 评论 -
计算机视觉知识点-应用例子-手势识别
一个手势识别的例子,还是咱么的直接上代码的风格。import cv2 as cvimport numpy as npimg_path = "data/palm.jpg"img = cv.imread(img_path)cv.imshow('palm image',img)二值化hsvim = cv.cvtColor(img, cv.COLOR_BGR2HSV)lower = np.array([0, 48, 80], dtype = "uint8")upper = np..原创 2020-09-01 22:59:15 · 955 阅读 · 0 评论 -
计算机视觉知识点-基础网络-ResNet
2015年,ResNet网络的提出,让超过100层深度的网络成为可能,在ResNet网络提出之前,如果网络层次太深,会产生识别率下降,网络难于收敛的问题。ResNet论文提出里一个很直观的解决方法。如下图:F(i)表示第i层对数据的修改作用,左图是一般的深度网络的偏转效果,有图是作者提出的网络的效果。通过采用拟合res的方法,实现了有图的效果。图中,左边的网络需要拟合f(x), 而右边的网络需要拟合f(x)-x, 这个也就是残差这个名字的由来。如果想让网络在传递过程中不发生偏转,只需让网络什..原创 2020-08-31 22:52:26 · 490 阅读 · 0 评论 -
计算机视觉知识点-基础网络-GoogleNet
2014年,GoogLeNet赢得了ImageNet挑战赛的冠军,提出了一种结合了NiN的优势和重复块范例的结构,论文的重点是解决哪种大小的卷积核最好的问题。 以前的流行网络采用的选择范围小至1×1,大至11×11,GoogleNet认为结合使用各种大小的kernel是有利的。使用mxnet进行一下代码演示。mxnet的安装方法pip install d2l==0.14.3pip install -U mxnet-cu101mkl==1.6.0.post0 pip install glu..原创 2020-08-31 22:51:09 · 283 阅读 · 0 评论 -
计算机视觉知识点-基础网络-NinNet
NiNNet是2014提出的一个网络结构,NinNet有这些特征:1) 使用alobal average pool替代fc层2) 使用kernel_size=1的conv层来实现各个channel之间的像素级别的fc使用mxnet进行一下代码演示。mxnet的安装方法pip install d2l==0.14.3pip install -U mxnet-cu101mkl==1.6.0.post0 pip install gluoncv创建一个VGGNet中的标准块from..原创 2020-08-31 22:49:11 · 590 阅读 · 0 评论 -
计算机视觉知识点-基础网络-VGGNet
VGGNet是英国剑桥Visual Geometry Group (VGG)小组提出的一个分块概念的网络结构,取得了2014年imagenet分类任务的冠军。VGGNet有这接特征:1) 使用maxpool,dropout, relu2) 使用blok的概念,简化设计3) 卷积层通过 kernel=3,padding=1保存输入尺寸4) 使用pool_size=2, alexnet的pool_size=3, pooling层使分辨率减半5) 提出一个这样的块结构,每个块都是几个卷积层加一个..原创 2020-08-31 22:46:10 · 397 阅读 · 0 评论 -
计算机视觉知识点-基础网络-AlexNet
AlexNet发布于2012年,这篇文章让研究界接受了深度网络在数据特征提却中的可行性。网络有5个卷集层,3个FC层,创新点有:1)增加了卷积网络的深度,由LeNet的2个卷积层变为5个, 2)pool层使用maxpooling, 3)激活函数使用relu,4)使用dropout5)使用了大量的数据增强预处理方法。使用mxnet进行一下代码演示。mxnet的安装方法pip install d2l==0.14.3pip install -U mxnet-cu101mkl==1.6.0.po..原创 2020-08-30 21:49:40 · 224 阅读 · 0 评论 -
计算机视觉知识点-基础网络-LeNet
LeNet是基础网络中的基础网络。原创 2020-08-30 21:47:50 · 720 阅读 · 0 评论 -
计算机视觉知识点-VisualStuido下OpenCV的环境配置
计算机视觉知识点-VisualStuido下OpenCV的环境配置原创 2020-08-30 21:46:18 · 179 阅读 · 0 评论 -
计算机视觉知识点-人脸对齐
今天这篇博客介绍了一下人脸对齐的原理,并通过代码演示了一下人脸对齐。我参考了这篇博客原创 2020-07-20 22:55:30 · 855 阅读 · 0 评论 -
计算机视觉知识点-opencv介绍
在我的 cv/tool下有个opencv的介绍,可以写一篇原创 2020-07-20 22:07:40 · 596 阅读 · 0 评论 -
计算机视觉知识点-车型识别
本篇博文是一个简单的车型识别介绍的例子,我参考了这个github,这个git中,对于车型识别, 开放场景整理了1776种车型,并共享了数据,是这里(链接:https://pan.baidu.com/s/1ZtXvjwLzIMQodEp3SAbN8g提取码: byhy , 大约4.5G)交通卡口版本支持4000多种车型,开源了模型,但是没有开源数据。车型检测的流程为:车辆检测采用mobile-ssd模型,车型识别采用一个20层左右的分类模型。项目的目录结构为:vehicle_...原创 2020-07-19 23:01:13 · 4872 阅读 · 1 评论 -
计算机视觉知识点-车牌识别
今天我来实现一个简单版本的车牌识别,目的是识别上边的这张图片。我的大体方案是:车牌检测:我采用检测轮廓,如果有4个点就是车牌。虽然这种方法方法有些流氓做派,但是简单啊,不要嘲笑我没有使用ssd/yolo/级联分类器/纹理扫描的方法。车牌剪切:检测到区域后,把图片剪切下来。车牌识别:我是用tesseract进行识别。#1.1 gray and reisizeimg = cv2.resize(img, (620,480) )gray = cv2.cvtColor(img, c...原创 2020-07-17 23:26:47 · 1494 阅读 · 1 评论 -
计算机视觉知识点-图标黑白滤镜
朋友小明跟我提了一个现在遇到的问题,他们公司(天注定办公礼品智慧定制)是做定制化礼品的公司,在他家网上商城采购的东西,可以打上用户的特殊字符,比如我想买一个抱枕送给我媳妇,抱枕上可以打印上我媳妇的名字。(后来我真的买了一个抱枕给我媳妇,我媳妇很高兴,也奖励了我一个抱枕)客户有时候要在礼品上打印公司的图标,如果打印在一个不锈钢材质的杯子上,是没有颜色的。这就需要程序员把图片变成黑白的,然后送给机器打印。小明说能否用算法自动生成这些黑白图像。另外他提出,现在人工智能这么火,是不是用人工智能技...原创 2020-07-09 22:37:13 · 365 阅读 · 0 评论 -
计算机视觉知识点-答题卡识别
采用光学方法进行答题卡识别 之前跟同事聊过答题卡识别的原理,自己调研了一下,高考那种答题卡是通过一个专门的答题卡阅读器进行识别的,采用红外线扫描答题看,如果被涂过2B的那个碳,就会扫描到,然后在加上一些矫正逻辑就能得到判卷的作用.这种方法的准确度很高.淘宝上查了下,光标机的误准确率是0.9999999(7个9).见下图.准确率有些高的离谱,机器张这个样子这台机器的价格是15000, 有些小贵. 但是如果我就是想用计算机时觉得方法做这个任务...原创 2020-07-05 17:38:19 · 4221 阅读 · 6 评论 -
计算机视觉知识点-Color Space
rgb空间redgreen blue三个通道YUV空间YUV色彩模型来源于RGB模型,该模型的特点是将亮度和色度分离开,从而适合于图像处理领域,一般应用在模拟领域.Y'= 0.299*R' + 0.587*G' + 0.114*B'U'= -0.147*R' - 0.289*G' + 0.436*B' = 0.492*(B'- Y')V'= 0.615*R' - 0.515*G' - 0.100*B' = 0.877*(R'- Y')R' = Y' + 1.140*V'G'.原创 2020-06-21 14:13:53 · 552 阅读 · 1 评论 -
计算机视觉知识点-Colaboratory
Colaboratory亲,你是不是在为下载资源速度慢而发愁?一个1M的论文下载了2个小时,真是日了狗了. 一个30M的python安装包,居然下载了10个小时,一个300M的模型你居然下载了2天. 你是不是想要是有个朋友帮你下载该多好. 对不起,我就是那个朋友 本文告诉你一个服务地址,这里的网速100M/s.亲,你是不是看到过一篇论文介绍了一个很牛逼的网络,git上还有还有源码,想自己跑一下,但是弄环境弄了3天也没弄好,最好放弃了. 要是有个朋友给你一个弄好的环境改多好.对不起,我就是那.原创 2020-06-10 14:30:47 · 484 阅读 · 1 评论 -
计算机视觉知识点-select search
select serach 提出的时间是2013年,面对分割问题,这个方法得到了极高的recall, 13年的rcnn的区域选取方法就是用的这个方法. select serach 假设区域分割依赖*颜色*/*纹理*/*大小*/*形状*传统方法最好能做到过分割,就是不希望有一个区域有两个物体的情况,但是仅仅依靠颜色是不行的,我们希望的下面这种分割情况.SS算法的核心步骤是:1 得到最小粒度的区域2 把相似的相邻的区域合并3 重复步骤1实现了下图的效果那...原创 2020-06-02 11:04:07 · 794 阅读 · 0 评论 -
计算机视觉知识点-Depth Wise Separable Convolutional
深度可分离卷积在谷歌的mobilenet和xception中得到的应用,比常规的卷积计算量少,提高了推理速度,并且可以抵抗overfitting. 那么计算量减少是如何做到的,或者说计算量的减少是指什么?今天我们来推导一下现在推导一下一个标准卷积做了多少计算计算输入数据的分辨率是DfXDf, 通道有M个,例如RGB3个通道 假设有N个filter, 每个filter的尺寸为DkXDkXM, 输出的尺寸为 DpXDPXN, 那么为了实现上图这个动作,需要的计算量为 DpXDpXNXDkXDk.原创 2020-06-09 09:44:53 · 1002 阅读 · 0 评论