![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
AI
AI剑客
计算机视觉方向:图像及视频处理
展开
-
cl: error: no such option: -I error: cl.exe‘ failed with exit status 2
这个error如何解python setup.py build_ext --inplacerunning build_extbuilding 'toolkit.utils.region' extensionC:\Users\admin\Anaconda3\Scripts\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -I.\toolkit\utils -IC:/Users/admin/PycharmProjects/pysot/toolkit/utils/sr原创 2020-11-09 21:34:44 · 1090 阅读 · 2 评论 -
Pytorch RuntimeError: couldn‘t find libcudart. Make sure CUDA libraries are installed in a default
#Pytorch RuntimeError: couldn’t find libcudart. Make sure CUDA libraries are installed in a default location, or that they’re in LD_LIBRARY_PATH ,怎么解## confirm PyTorch sees the GPUfrom torch import cudaassert cuda.is_available()assert cuda.device_count原创 2020-10-24 11:36:39 · 790 阅读 · 0 评论 -
tensorflow loss定义添加与获取tf.losses.add_loss tf.losses.get_total_loss
tf.losses.add_loss 将外部定义的损失添加到损失集合中。原创 2020-06-10 21:28:46 · 2943 阅读 · 0 评论 -
matlab 模型mat文件转tensorflow ckpt
第一步:Build the model,在tensorflow中完成model的搭建。第二步:Sets up the function to restore embedding variables from .mat model files1.Get parameter from .mat file into parms(dict)2.tf.get_collection()收集变量3.op=tf.assign(),一个操作把 parms赋值给tf变量,4.initialize = tf.group原创 2020-06-10 20:43:34 · 758 阅读 · 0 评论 -
Multi Object Tracking 高级之孪生网络siamese-fc
一,孪生网络siamese-fc,两个相同的全卷积网络,共享权重。reference image为参考图像,一般为视频的初始帧,包含Tracking Object,透过孪生网络,生成Object特征图。search image可以是视频帧图的ROI,也透过孪生网络,生成search image特征图,再使用Object特征图在search image特征图上进行卷积,相当于滑动比较相似度,生成一个相似度map,相似度最高的地方,就是Object的位置,实现对Object的定位及跟踪了。网络只要训练好了,只原创 2020-06-03 21:31:31 · 694 阅读 · 0 评论 -
Multi Object Tracking 初级之卡尔曼滤波与匈牙利算法
Kalman Filter & Hungarian Algorithm:卡尔曼滤波与匈牙利算法一,Object Tracking Design:二,Pipeline Output三,KalmanFilter Algorithm原创 2020-05-26 20:37:15 · 997 阅读 · 0 评论 -
tf.py_func灵活操作tensor
一,tensorflow中所有的tensor只是占位符,在没有用tf.Session().run接口feeddisk填充值之前是没有实际值的,不能对其进行判值操作,如if … else…等,在实际问题中,我们可能需要将一个tensor转换成numpy array 然后进行一些 np.的运算,然后返回tensor. 这样可以加强tensorflow的灵活性。二,tf.py_func1.func函数:以numpy arrays 作为输入(或placeholder 需要feed),并以numpy array原创 2020-05-16 20:02:11 · 269 阅读 · 0 评论 -
tensorflow网络输入数据迭代生成器tf.data.Dataset
tensorflow网络输入数据生成器tf.data.Dataset使用一,准备要加载的numpy数据,可以是图片的全路径名。tf_fns = tf.constant(filenames, dtype=tf.string)二,使用 tf.data.Dataset.from_tensor_slices()函数加载dataset = tf.data.Dataset.from_tensor_slices(tf_fns)三,使用 shuffle() 打乱数据。dataset = dataset.shuf原创 2020-05-14 21:40:56 · 1278 阅读 · 0 评论 -
视频中人脸检测+人脸识别+人脸追踪+人脸更换
原创 2020-05-10 15:47:31 · 1838 阅读 · 4 评论 -
keras如何自定义损失函数(进阶版,not of the form of f(x_true, x_pred))
一,keras如何自定义损失函数(进阶版,not of the form of f(x_true, x_pred))1.define your model (typically using the functional API)采用函数式定义模型,之前说过,keras定义模型有model与K.function两种。一般两者结合使用。2.define your custom cost,定义自己的损失函数3.instantiate an optimizer, get weights updates vi原创 2020-05-10 13:45:00 · 533 阅读 · 0 评论 -
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 · 1547 阅读 · 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 · 6839 阅读 · 0 评论 -
faceswap-GAN之reconstruction_loss(重建loss)
一,faceswap-GAN之reconstruction_loss(重建loss),也叫生成loss,确认生成网络的输出图像与真实图像的差异。二.reconstruction_loss采用的是L1,所以也称为MAE loss(均差)reconstruction_loss = normal L1 loss + mask_eyes loss+ other outputs lossnormal L1 loss为Gan生成网络的输出与真实图像的L1 lossmask_eyes loss为Gan生成网络的原创 2020-05-09 23:19:24 · 7815 阅读 · 0 评论 -
faceswap-GAN
一,https://github.com/shaoanlu/faceswap-GAN二,GAN网络架构auto encoder网络结构辨别网络结构三,训练与推断1.训练阶段,从人的图片上获取人脸并对齐作业,为了提升模型能力,并对人脸进行warp操作(变形,旋转,扭曲,反转等),通过自编码网络进行脸部重建,并通过mask获取重建的眼睛,鼻子,嘴巴,再与原脸部融合。2.不同人脸需要训练...原创 2020-05-04 22:27:19 · 1146 阅读 · 0 评论 -
Keras自定义layer
方法一:编写Layer继承类keras.engine中包含了Layer的父类,我们可以通过继承来实现自己的层。要定制自己的层,需要实现下面三个方法build(input_shape):这是定义权重的方法,可训练的权应该在这里被加入列表self.trainable_weights中。其他的属性还包括self.non_trainabe_weights(列表)和self.updates(需要更新...原创 2020-05-03 23:17:00 · 1215 阅读 · 0 评论 -
keras K.function
一,keras.backend.function(inputs, outputs, updates=None)参数inputs: 占位符张量列表。outputs: 输出张量列表。updates: 更新操作列表。**kwargs: 需要传递给 tf.Session.run 的参数。返回输出值为 Numpy 数组。异常ValueError: 如果无效的 kwargs 被传入。作用:...原创 2020-05-03 12:20:52 · 899 阅读 · 0 评论 -
损失函数及对应的任务(待续)
神经网络逼近特性的好坏,损失函数承担着十分重要的作用。对于神经网络构建人员来说,针对具体任务去理解和选择恰当的损失函数是最重要的技能。深度学习=网络+loss+数据一,L1 损失(绝对误差):用于回归任务 ,检测任务。二,L2 损失(平方误差):与 L1 类似,但对于异常值更加敏感 。三,交叉熵误差:通常用于分类任务 。四,Dice 损失 (IoU) :用于分割任务 (语义或实体分割)...原创 2020-04-27 22:42:05 · 967 阅读 · 0 评论 -
Dual Attention机制
一,Dual Attention机制首次出现于Dual Attention Network for Scene Segmentation(DANet),是一个很优秀的语义分割网络。https://github.com/junfu1115/DANet二,Dual Attention机制...原创 2020-04-26 17:42:18 · 8219 阅读 · 0 评论 -
ICNR initialization for Sub-pixel convolution
一,Sub-pixel convolution can be interpreted as convolution + shuffling(卷积+洗牌),一般用于超高分辨率图像生成的上采样。二,ICNR initialization for Sub-pixel convolution三,ICNR initialization代码from __future__ import divisio...原创 2020-04-26 11:41:26 · 830 阅读 · 0 评论 -
深度网络中的的权重初始化与正则化(初始化与激活函数搭配问题)
一,kernel_initializer&bias_initializer:建网络层时内核或者偏差权重的初始化方案。此参数是名称或可调用对象。二,kernel_regularizer&bias_regularizer:设置应用于网络层中内核或者偏差权重的正则化方案,例如L1或L2正则化。默认情况下,不应用正则化。三,初始化及正则化的作用在设计深度学习模型的时候,我们经常需...原创 2020-04-25 21:40:11 · 2466 阅读 · 0 评论 -
Normalization 之AdaIN Normalization
一,Adaptive Instance Normalization (AdaIN Normalization)自适应实例归一化(AdaIN)层。主要用于图像风格转换的自编码结构网络。二,AdaIN 输入为内容编码(content input x )与风格编码 (style input y), 对于每个channel,将x的通道级(channel-wise)均值和标准差匹配到y的通道级均值和标准...原创 2020-04-25 14:31:26 · 2230 阅读 · 0 评论 -
MUNIT-多模态无监督图像到图像的转换
一,github地址https://github.com/NVlabs/MUNIT二,MUNIT认为能够共享的这个空间叫做内容空间(content),而同时他们应该存在着一种彼此差异的空间,他将这个称作风格空间(style)。从第一个数据域当中采集到一个样本为豹,它实际上可以被分解为两个部分:内容部分C以及风格S部分。如果我比较完美的完成了上述的分解,那么,从上述结果的内容空间当中采样,同时...原创 2020-04-25 11:05:21 · 4558 阅读 · 2 评论 -
Numpy数组array和矩阵matrix区别及转换(np.array,np.matrix)
一,两者的定义matrix 只能表示二维数据,而 nparray 可以表示 N 维数据。matA = np.mat([[1, 2],[3, 4]])arrB = np.array([[1, 2], [3, 4]])二,两者的点积表达ndarray的点积a =np.array([[1,4,5],...[1,4,5]])b =np.array([[2,3],[2,3],[2,3]])...原创 2020-04-18 20:09:19 · 3573 阅读 · 0 评论 -
ffmpeg将视频转换为gif格式
ffmpeg 是一个自由软件,认为是视频界的手术刀,可以运行音频和视频多种格式的录影、转换、流功能,包含了libavcodec——这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库。 “FFmpeg”这个单词中的“FF”指的是“Fast Forward”1.将视频 MP4 转化为 GIFffmpeg -i OUTPUT_VIDEO.mp4 OUT...原创 2020-04-12 09:37:55 · 1338 阅读 · 0 评论 -
face recognition使用
https://github.com/ageitgey/face_recognition一,检测人脸Find faces in picturesimport face_recognitionimage = face_recognition.load_image_file("your_file.jpg")face_locations = face_recognition.face_loca...原创 2020-04-06 12:01:47 · 169 阅读 · 0 评论 -
python+opencv+摄像头录制视频文件
# coding:utf-8import cv2import numpy as np"""函数名:cv2.VideoCapture()功 能:通过摄像头捕获实时图像数据返回值:有参数一:摄像头代号,0为默认摄像头,笔记本内建摄像头一般为 0 或者填写视频名称直接加载本地视频文件"""cap = cv2.VideoCapture(0) # 创建一个 VideoC...原创 2020-04-06 11:19:20 · 1089 阅读 · 0 评论 -
face recognition安装
pip install face_recognition_modelspip install face_recognition如果还是安装失败(主要为下载过慢),下载本地包安装。下载网址https://pypi.org/project/face_recognition_models/#files本地编译及安装(1)执行命令:python setup.py build,进行编译。...原创 2020-04-05 17:42:29 · 683 阅读 · 0 评论 -
MTCNN(Multi-task Cascaded Convolutional Neural Networks)
一,MTCNN(Multi-task Cascaded Convolutional Neural Networks)(多任务卷积神经网络),将人脸分类,区域检测与人脸关键点检测放在了一起,它的主题框架类似于cascade。总体可分为P-Net、R-Net、和O-Net三层网络结构。它是2016年中国科学院深圳研究院提出的用于人脸检测任务的多任务神经网络模型,该模型主要采用了三个级联的网络,采用候...原创 2020-04-05 09:28:21 · 1636 阅读 · 0 评论 -
K.function用法(keras提取中间层的输出)
from keras import backend as K1.获取名为layer_name的层的输出#指定输出层的名称layer_1 = K.function([model.get_input_at(0)], [model.get_layer('layer_name').output])f1 = layer_1([image_arr])[0]2.获取第n层的输出#指定输出层的序号(层...原创 2020-04-04 19:41:47 · 2319 阅读 · 3 评论 -
faceswap之Autoencoder(深度学习版)
一,https://github.com/deepfakes/faceswap相对之前的Dlib+opencv实现的简易换脸(简单的复制粘贴),深度学习换脸,优点是会更真实,表情更自然,实现形神兼备。缺点就是,转换时间长,需要训练。二,Autoencoder使用的模型是 Autoencoder。有趣的是,这个模型所做的是基于原始的图片再次生成原始的图片。Autoencoder 的编码器把图片...原创 2020-04-04 11:59:43 · 1065 阅读 · 1 评论 -
faceswap之Dlib+opencv+泊松融合(简易版)
利用Dlib库与opencv+泊松融合实现faceswap第一步:检测人脸,使用 dlib.get_frontal_face_detector()检测器第二步:提取人脸特征点,使用dlib.shape_predictor(self.predictor_path)特征提取器,可以使用68 or 5点模型。shape_predictor_68_face_landmarks.datshape...原创 2020-04-20 18:57:35 · 657 阅读 · 0 评论 -
各种Normalization(BN,LN,GN,IN,SN,Spectral Normalization)
一,归一化层,目前主要有几种,Batch Normalization(2015年)、Layer Normalization(2016年)、Instance Normalization(2017年)、Group Normalization(2018年)、Switchable Normalization(2018年);Spectral Normalization(2018)...原创 2020-04-04 11:01:25 · 1746 阅读 · 1 评论 -
GAN-tricks之Self-Attention
一,Self-Attention-Gan将注意力机制运用到GAN中,解决GAN在生成图像时无法关注到长距离相关结构的问题。https://github.com/taki0112/Self-Attention-GAN-Tensorflow二,Self-Attention作用是能够更好地学习到全局特征之间的依赖关系。因为传统的 GAN 模型很容易学习到纹理特征:如皮毛,天空,草地等,不容易学习到特...原创 2020-04-02 21:12:05 · 390 阅读 · 0 评论 -
PixelShuffler实现上采样的原理
一,普通的上采样采用的临近像素填充算法,主要考虑空间因素,没有考虑channel因素,上采样的特征图人为修改痕迹明显,图像分割与GAN生成图像中效果不好。二,PixelShuffler结合channel维度的信息来填充像素,可以实现超高分辨率,生成的图像更逼真,更完美。三,PixelShuffler实际原理pixelshuffle算法的实现流程如上图,其实现的功能是:将一个H × W的低分...原创 2020-04-02 20:06:27 · 3427 阅读 · 3 评论 -
faceswap-GAN的原理(一)
一,faceswap-GAN的原理训练阶段:faceA编码,再通过A解码还原。faceB编码,再通过B解码还原。A/B一个编码器,A/B使用不同的解码器。可以理解为,编码是提取脸部的共性特征。解码是还原脸部的个性特征,所以A/B使用不同的解码器。测试阶段:B的脸通过编码器后,由A的解码器还原,结果就是B的脸看起来像A,实现换脸动作。二,faceswap-GAN的算法编码器:五次卷积部分...原创 2020-03-31 23:07:15 · 4356 阅读 · 1 评论 -
pip&conda安装本地包
pip 安装本地包pip install ~/Dowloads/torch-0.2.0.post3-cp35-cp35m-manylinux1_x86_64.whlconda 安装本地包conda install --use-local pytorch-0.4.0-py35_cuda8.0.61_cudnn7.1.2_1.tar.bz2原创 2020-03-31 21:22:01 · 847 阅读 · 0 评论 -
tensorflow-gpu版本与CUDA,cuDNN对应关系
CUDA下载地址cuDNN下载地址原创 2020-03-31 19:25:40 · 357 阅读 · 0 评论 -
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 · 1327 阅读 · 1 评论 -
人脸识别的三部曲
人脸识别三部曲:一,人脸检测-确认图片及影像是否包含人脸实现:传统的算法,深度学习算法二,人脸特征点检测(也称为人脸对齐操作)最关的一步,不同的公司有不同的特征点集合,有68点,也有100多点的,越多越精细,人脸识别的准确度越高,错误识别率越低。三,人脸识别根据人脸特征检测,建立人脸特征数据库。人脸识别其实就是人脸特征比对,找到最相似的(透过欧氏距离等),且相似度大于设定阈值的。...原创 2020-03-29 19:51:28 · 176 阅读 · 0 评论 -
face_alignment安装及使用(facial landmarks 2D or 3D)
https://github.com/1adrianb/face-alignment一,可以获取人脸的2D or 3D坐标Detect facial landmarks from Python using the world’s most accurate face alignment network, capable of detecting points in both 2D and 3D...原创 2020-03-29 13:54:38 · 8450 阅读 · 2 评论