![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
AI剑客
计算机视觉方向:图像及视频处理
展开
-
faceswap-GAN之perceptual_loss(感知loss)
一,faceswap-GAN之perceptual_loss(感知loss)二,perceptual_loss(感知loss)技巧:直接把生成器生成图片与真实图片送入现有的vggface识别模型,获取四个不同尺寸的特征图,特征图进行instance norm后,比较差异,生成loss。def perceptual_loss(real, fake_abgr, distorted, mask_eyes, vggface_feats, **weights): alpha = Lambda(lam原创 2020-05-10 12:22:47 · 1589 阅读 · 1 评论 -
faceswap-GAN之adversarial_loss_loss(对抗loss)
一,faceswap-GAN之adversarial_loss_loss(对抗loss)二,adversarial_loss,对抗loss,包含生成loss与分辨loss。def adversarial_loss(netD, real, fake_abgr, distorted, gan_training="mixup_LSGAN", **weights): alpha = Lambda(lambda x: x[:,:,:, :1])(fake_abgr) fake_bgr =原创 2020-05-10 11:54:28 · 6885 阅读 · 0 评论 -
opencv之remap() python
一,remap()图像的重映射,可以把一幅图像中某位置的像素放置到另一个图片指定位置的过程。可以实现图像的变形,扭曲,反转等操作。实现图像数据的增强,提升深度模型的泛化能力。可以根据自己设定的函数将图像进行变换,较常见的功能有关于x轴翻转,关于y轴翻转,关于x、y轴翻转;(仿射变换在图像处理中的主要功能为:对图像进行缩放、旋转、平移、扭曲等)二,为了完成映射过程, 我们需要获得一些插值为非整数像素的坐标,因为源图像与目标图像的像素坐标不是一 一对应的。三,remap函数def remap(src, m原创 2020-05-09 17:16:51 · 10134 阅读 · 2 评论 -
pytorch GPU版本安装
根据自己的cuda版本,选择pytorch,当然也可以反着选择。一,登录官网https://pytorch.org二,我的cuda版本是9.0,支持9.0最新的pytorch为1.1.0版本可以使用conda安装,缺点速度慢,受网速限制。# CUDA 9.0conda install pytorch==1.1.0 torchvision==0.3.0 cudatoolkit=9.0 -...原创 2020-03-30 19:52:19 · 1335 阅读 · 1 评论 -
windows dlib gpu配置
一,不要使用pip安装二,下载dlibhttps://pypi.org/project/dlib/#files三,原创 2020-03-28 16:25:59 · 660 阅读 · 0 评论 -
opencv之图像平滑操作
1.cv2.blur(img, (3, 3)) 进行均值滤波参数说明:img表示输入的图片, (3, 3) 表示进行均值滤波的方框核大小cv2.boxfilter(img, -1, (3, 3), normalize=True) 表示进行方框滤波,参数说明当normalize=True时,与均值滤波结果相同, normalize=False,表示对加和后的结果不进行平均操作,大于255的使...原创 2020-03-21 09:16:29 · 349 阅读 · 0 评论 -
python+opencv+dlib实现人脸检测与表情识别
python+opencv+dlib实现人脸检测与表情识别一,dlib简单介绍:Dlib包含广泛的机器学习算法。所有的设计都是高度模块化的,快速执行,并且通过一个干净而现代的C ++ API,使用起来非常简单。它用于各种应用,包括机器人技术,嵌入式设备,手机和大型高性能计算环境。二,识别规则:1、嘴巴张开距离占面部识别框宽度的比例越大,说明情绪越激动,可能是非常开心,也可能是非常惊讶。2...原创 2020-03-15 21:05:39 · 6947 阅读 · 51 评论 -
python+opencv实现人脸识别
python+opencv实现人脸识别步骤:1.人脸检测并建立数据集2.利用数据集,训练分类器3.实现人脸识别特别注意: LBPH 产生评分不同,低于50是可靠的 高于80是不可靠的(网上许多是错误的)4.效果确认# 收集数据import cv2# def pic(cam):def pic(): # 调用笔记本内置摄像头,所以参数为0,如果有其他的摄像头可以调整参数为...原创 2020-03-14 11:48:51 · 744 阅读 · 0 评论 -
np.unique()对数组去重
np.unique()对一维和二维数组去重numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None)[source]import numpy as npA = [1, 2, 2, 5,3, 4, 3]# return_inverse=True 表示返回旧列表元素在新列表...原创 2020-03-12 22:37:17 · 636 阅读 · 0 评论 -
Swish & hard-Swish
当β = 0时,Swish变为线性函数f(x)=x/2β → ∞, σ(x)=(1+exp(−x))−1σ(x)=(1+exp(−x))−1为0或1. Swish变为ReLU: f(x)=2max(0,x)所以Swish函数可以看做是介于线性函数与ReLU函数之间的平滑函数. beta是个常数或者可以训练的参数。其具有无上界有下界、平滑、非单调的特性。其在模型效果上优于ReLU。ha...原创 2020-01-04 13:32:17 · 15238 阅读 · 2 评论 -
keras Mask Rcnn代码走读(十一)-loss介绍
keras Mask Rcnn代码走读(十一)-loss介绍一,loss相关的GT Input(MaskRCNN.build),五个input,对应五种loss。RPN两个:match与bbox。 Detectors三个:class,bbox,mask。if mode == "training": #如果是训练,需要GT的一些输入,包含class,box,masks同时要对box坐标进...原创 2019-12-15 10:06:22 · 967 阅读 · 0 评论 -
keras Mask Rcnn代码走读(十)-train方法介绍
keras Mask Rcnn代码走读(十)-train方法介绍一,train网络介绍网络输入:输入tensor增加到了7个之多,大部分是计算Loss的标签。损失函数:添加了5个损失函数,2个用于RPN计算,2个用于最终分类回归instance,1个用于掩码损失计算。原始标签处理:推理网络中,Proposeal筛选出来的rpn_rois直接用于生成分类回归以及掩码信息,而training中...原创 2019-12-14 21:11:06 · 580 阅读 · 0 评论 -
keras Mask Rcnn代码走读(八)-demo
Mask R-CNN Demo首先:导入一些模块并定义一些路径:logs,预训练权重文件,image#%%import osimport sysimport randomimport mathimport numpy as npimport skimage.ioimport matplotlibimport matplotlib.pyplot as plt# Root d...原创 2019-12-11 19:41:56 · 168 阅读 · 0 评论 -
Anaconda安装imgaug数据增强包
Anaconda安装imgaug数据增强包:https://github.com/aleju/imgaug(base) C:\Users\admin\Anaconda3\Scripts>conda config --add channels conda-forgeconda install imgaugug可以对图像进行增强,增加样本数据量,可以用于分类,分割,检测,keypoin...原创 2019-12-08 14:37:42 · 364 阅读 · 0 评论 -
keras Mask Rcnn代码走读(五)- Proposal classifier and BBox regressor
Network HeadsProposal classifier and BBox regressor headsoutput shapes:mrcnn_class_logits: [batch, num_rois, NUM_CLASSES] classifier logits (before softmax)mrcnn_class: [batch, num_rois, NUM_CLASS...原创 2019-12-08 10:51:58 · 363 阅读 · 0 评论 -
keras Mask Rcnn代码走读(三)-RPN
keras Mask Rcnn代码走读(二)-RPNRPN-Region proposal Net,主要作用为通过得到所有anchors的score(前景概率)及box初步矫正信息,及NMS来实现对anchors的筛选。找到规定数量且满足条件的anchors。数量不足的填0处理,确保每张图的筛选anchors数量相等,便于tensor计算。1.RPN score(前景概率)及box初步矫正信...原创 2019-12-07 10:25:04 · 359 阅读 · 0 评论 -
keras Mask Rcnn代码走读(二) - anchors的产生
一,生成 anchors需要的参数self.config.BACKBONE_STRIDES = [4, 8, 16, 32, 64]特征层的下采样倍数,中心点计算使用self.config.RPN_ANCHOR_RATIOS = [0.5, 1, 2]特征层锚框生成参数self.config.RPN_ANCHOR_SCALES = [32, 64, 128, 256, 512]特征层...原创 2019-12-06 23:23:30 · 666 阅读 · 0 评论 -
keras Mask Rcnn代码走读(一)
https://github.com/matterport/Mask_RCNN主要就是model.py,其他都是辅助模块。本次先从class MaskRCNN()类的build建模函数讲起image 在特征提取网络中,进行6次特征缩小操作C1,C2,C3,C4,C5其中C1为4倍率缩小,其他为2倍率缩小,total 64倍缩小,所以网络要求输入的图像的尺寸为64的整数倍,默认输入为102...原创 2019-12-04 20:29:05 · 510 阅读 · 0 评论 -
keras动态调整学习率
keras随着epoch及loss变化情况动态调整学习率,主要利用Callback, ReduceLROnPlateau来实现import keras.backend as Kfrom keras.callbacks import Callback, TensorBoard, ReduceLROnPlateau, ModelCheckpointclass LrReducer(Call...原创 2019-12-02 20:14:12 · 1842 阅读 · 0 评论 -
Finetune时训练与冻结层选择
Finetune时训练与冻结层选择一般在基础特征提取网络上进行finetune训练时,建议冻结除BatchNormalization layers的其他layer,会比较好。def freeze_model(model): """Set all layers non trainable, excluding BatchNo...原创 2019-11-27 20:35:39 · 1247 阅读 · 0 评论 -
kwargs.pop()用法
def f(**kwargs):foo = kwargs.pop(‘foo’,None)bar = kwargs.pop(‘bar’,None)…etc…等同于def f(*, foo=None, bar=None, **kwargs):…etc…使用**kwargs,关键字不仅是可选的,而且是有条件的。有比简单默认值更复杂的规则。class ExampleClass( objec...原创 2019-11-27 20:09:05 · 6814 阅读 · 0 评论 -
经典分类网络的keras权重.h5文件下载地址
经典分类网络的keras权重.H5文件:1.resnet及其变种的权重:https://github.com/keras-team/keras-applications/releases/tag/resnet2.其他网络权重:VGG,Inception,densenet,mobilenet等https://github.com/fchollet/deep-learning-models/...原创 2019-11-26 19:44:38 · 1237 阅读 · 0 评论 -
膨胀卷积的padding公式
采用膨胀卷积后的padding计算K为膨胀的等效卷积核,r为膨胀系数K=k+(k−1)∗(r−1) 总的padding量为K-1。然后再进行两边分配。p = kernel_size+(kernel_size-1)*(dilation-1)-1p1 = p // 2p2 = p - p1x = layers.ZeroPadding2D(padding=((p1, p2), (p1,...原创 2019-11-23 10:06:06 · 1857 阅读 · 0 评论 -
图像分割后图像优化之填孔
图像分割后图像优化之填孔下面是灰阶图像的填孔处理,填孔的大小可以用过面积控制。def FillHole3(imgPath, SavePath): filename = imgPath img = cv2.imread(filename, 0) img = cv2.bitwise_not(img) print(np.shape(img)) kern...原创 2019-11-20 20:01:54 · 704 阅读 · 0 评论 -
图像的边缘检测算子roberts介绍
对图像进行滤波,可以有两种效果:一种是平滑滤波,用来抑制噪声;另一种是微分算子,可以用来检测边缘和特征提取。skimage库中通过filters模块进行检测边缘操作。from skimage.filters import robertsedges = roberts(img)...原创 2019-11-20 19:38:47 · 1326 阅读 · 0 评论 -
python [:,:,4:5]与 [:,:,4]的区别
假设一个三维数组为 [ [ [ 1,2,3,4,5,6 ] ] ],这个数组的[:,:,4:5]仍为三维数组,结果为 [ [ [ 5] ] ]这个数组的[:,:,4]为二维数组,结果为 [ [5 ] ]原创 2019-11-11 22:40:54 · 6840 阅读 · 0 评论