首页 文章 精选 留言 我的

精选列表

搜索[图像识别],共1955篇文章
优秀的个人博客,低调大师

Python黑科技:50行代码运用Python+OpenCV实现人脸追踪+详细教程+快速入门+图像识别+人脸识别+大神讲解

嗨,我最亲爱的伙计们,很高兴我们又见面了。 首先先感谢朋友们的关注。当然我更希望认识与计算机相关的领域的朋友咱们一起探讨交流。重点说一下,我是真人,不是那些扒文章的自媒体组织,大家可以相互交流的! 本篇文章我们来讲一下关于AI相关的人脸追踪,人脸识别相关的一些知识。当然本篇教程为(上)部分,讲一下利用python+opencv来实现人脸识别与追踪,明后天出(下)部分,用python来通过指纹对比实现人脸验证、人脸解锁(大家感兴趣的可以提前关注哦)。 这两节课呢,代码量都不是很多,鄙人尽量多注释点,便于大家理解。那我们就不多啰嗦废话了,直接上干货! OpenCV: opencv目前来讲是十分流行的视觉库,而且可以支持多语言。说到opencv就不得不说它的cascades分类器。 如果我们要判断一张图片是不是有一张脸,早期方式是通过成千上万的分类器去从头匹配到尾,这样看并没有什么什么毛病,但判断的图片多了呢?那可能需要猴年马月。opencv的cascades呢,就把这些用来判断人脸特征的容器划分成多块层层匹配,到一层不匹配就被丢弃。 这好比一群人去公司面试,公司第一个要求是只要男人,那一批女人就走了,公司说只要本科,一批专科走了,公司说要两年工作经验的,又会走一批,直到最后。这样的工作量比每个人面试不管男女都过一遍流程轻松的多。 环境拓扑: 操作系统:windows7 python版本:2.7.14 opencv版本:3.x 环境配置: 1.安装python(额...这个当我没说) 2.安装Opencv 这个从官网下载就OK啦 下载完之后直接解压就行,推荐解压到跟你的python安装的父路径。 3.使用pip安装numpy 打开cmd输入: pip install numpy 进行安装,安装完毕后会给提示。 4.找到你的opencv安装路径(比如我的是D盘) 复制D:opencvopencv3.x

优秀的个人博客,低调大师

CNN tflearn处理mnist图像识别代码解说——conv_2d参数解释,整个网络的训练,主要就是为了学那个卷积核啊。

官方参数解释: Convolution 2D tflearn.layers.conv.conv_2d(incoming, nb_filter, filter_size, strides=1, padding='same', activation='linear', bias=True, weights_init='uniform_scaling', bias_init='zeros', regularizer=None, weight_decay=0.001, trainable=True, restore=True, reuse=False, scope=None, name='Conv2D') Input 4-D Tensor [batch, height, width, in_channels]. Output 4-D Tensor [batch, new height, new width, nb_filter]. Arguments incoming:Tensor. Incoming 4-D Tensor. nb_filter:int. The number of convolutional filters. filter_size:intorlist of int. Size of filters. strides: 'intor list ofint`. Strides of conv operation. Default: [1 1 1 1]. padding:strfrom"same", "valid". Padding algo to use. Default: 'same'. activation:str(name) orfunction(returning aTensor) or None. Activation applied to this layer (see tflearn.activations). Default: 'linear'. bias:bool. If True, a bias is used. weights_init:str(name) orTensor. Weights initialization. (see tflearn.initializations) Default: 'truncated_normal'. bias_init:str(name) orTensor. Bias initialization. (see tflearn.initializations) Default: 'zeros'. regularizer:str(name) orTensor. Add a regularizer to this layer weights (see tflearn.regularizers). Default: None. weight_decay:float. Regularizer decay parameter. Default: 0.001. trainable:bool. If True, weights will be trainable. restore:bool. If True, this layer weights will be restored when loading a model. reuse:bool. If True and 'scope' is provided, this layer variables will be reused (shared). scope:str. Define this layer scope (optional). A scope can be used to share variables between layers. Note that scope will override name. name: A name for this layer (optional). Default: 'Conv2D'. 代码: # 64 filters net = tflearn.conv_2d(net, 64 , 3 , activation = 'relu' ) 按照我的理解: 其中的filter(卷积核)就是 [1 0 1 0 1 0 1 0 1],size=3 因为设置了64个filter,那么卷积操作后有64个卷积结果作为输入的特征(feature map)。难道后面激活函数就是因为选择部分激活??? 图的原文:http://cs231n.github.io/convolutional-networks/ 如果一个卷积层有4个feature map,那是不是就有4个卷积核?是的。 这4个卷积核如何定义? 通常是随机初始化再用BP算梯度做训练。如果数据少或者没有labeled data的话也可以考虑用K-means的K个中心点,逐层做初始化。 卷积核是学习的。卷积核是因为权重的作用方式跟卷积一样,所以叫卷积层,其实你还是可以把它看成是一个parameter layer,需要更新的。 这四个卷积核就属于网络的参数,然后通过BP进行训练 整个网络的训练,主要就是为了学那个卷积核啊。 先初始化一个,之后BP调整,你可以去看看caffe的源码。 -------------------------------------------------------------------------------------------------- 下面内容摘自:http://blog.csdn.net/bugcreater/article/details/53293075 from__future__importdivision,print_function,absolute_import importtflearn fromtflearn.layers.coreimportinput_data,dropout,fully_connected fromtflearn.layers.convimportconv_2d,max_pool_2d fromtflearn.layers.normalizationimportlocal_response_normalization fromtflearn.layers.estimatorimportregression #加载大名顶顶的mnist数据集(http://yann.lecun.com/exdb/mnist/) importtflearn.datasets.mnistasmnist X,Y,testX,testY=mnist.load_data(one_hot=True) X=X.reshape([-1,28,28,1]) testX=testX.reshape([-1,28,28,1]) network=input_data(shape=[None,28,28,1],name='input') #CNN中的卷积操作,下面会有详细解释 network=conv_2d(network,32,3,activation='relu',regularizer="L2") #最大池化操作 network=max_pool_2d(network,2) #局部响应归一化操作 network=local_response_normalization(network) network=conv_2d(network,64,3,activation='relu',regularizer="L2") network=max_pool_2d(network,2) network=local_response_normalization(network) #全连接操作 network=fully_connected(network,128,activation='tanh') #dropout操作 network=dropout(network,0.8) network=fully_connected(network,256,activation='tanh') network=dropout(network,0.8) network=fully_connected(network,10,activation='softmax') #回归操作 network=regression(network,optimizer='adam',learning_rate=0.01, loss='categorical_crossentropy',name='target') #Training #DNN操作,构建深度神经网络 model=tflearn.DNN(network,tensorboard_verbose=0) model.fit({'input':X},{'target':Y},n_epoch=20, validation_set=({'input':testX},{'target':testY}), snapshot_step=100,show_metric=True,run_id='convnet_mnist') 关于conv_2d函数,在源码里是可以看到总共有14个参数,分别如下: 1.incoming: 输入的张量,形式是[batch, height, width, in_channels] 2.nb_filter: filter的个数 3.filter_size: filter的尺寸,是int类型 4.strides: 卷积操作的步长,默认是[1,1,1,1] 5.padding: padding操作时标志位,"same"或者"valid",默认是“same” 6.activation: 激活函数(ps:这里需要了解的知识很多,会单独讲) 7.bias: bool量,如果True,就是使用bias 8.weights_init: 权重的初始化 9.bias_init: bias的初始化,默认是0,比如众所周知的线性函数y=wx+b,其中的w就相当于weights,b就是bias 10.regularizer: 正则项(这里需要讲解的东西非常多,会单独讲) 11.weight_decay: 权重下降的学习率 12.trainable: bool量,是否可以被训练 13.restore: bool量,训练的模型是否被保存 14.name: 卷积层的名称,默认是"Conv2D" 关于max_pool_2d函数,在源码里有5个参数,分别如下: 1.incoming ,类似于conv_2d里的incoming 2.kernel_size:池化时核的大小,相当于conv_2d时的filter的尺寸 3.strides:类似于conv_2d里的strides 4.padding:同上 5.name:同上 看了这么多参数,好像有些迷糊,我先用一张图解释下每个参数的意义。 其中的filter就是 [1 0 1 0 1 0 1 0 1],size=3,由于每次移动filter都是一个格子,所以strides=1. 关于最大池化可以看看下面这张图,这里面 strides=1,kernel_size =2(就是每个颜色块的大小),图中示意的最大池化(可以提取出显著信息,比如在进行文本分析时可以提取一句话里的关键字,以及图像处理中显著颜色,纹理等),关于池化这里多说一句,有时需要平均池化,有时需要最小池化。 下面说说其中的padding操作,做图像处理的人对于这个操作应该不会陌生,说白了,就是填充。比如你对图像做卷积操作,比如你用的3×3的卷积核,在进行边上操作时,会发现卷积核已经超过原图像,这时需要把原图像进行扩大,扩大出来的就是填充,基本都填充0。Convolution Demo. Below is a running demo of a CONV layer. Since 3D volumes are hard to visualize, all the volumes (the input volume (in blue), the weight volumes (in red), the output volume (in green)) are visualized with each depth slice stacked in rows. The input volume is of size W1=5,H1=5,D1=3, and the CONV layer parameters are K=2,F=3,S=2,P=1. That is, we have two filters of size 3×3, and they are applied with a stride of 2. Therefore, the output volume size has spatial size (5 - 3 + 2)/2 + 1 = 3. Moreover, notice that a padding of P=1 General pooling. In addition to max pooling, the pooling units can also perform other functions, such asaverage poolingor evenL2-norm pooling. Average pooling was often used historically but has recently fallen out of favor compared to the max pooling operation, which has been shown to work better in practice. Pooling layer downsamples the volume spatially, independently in each depth slice of the input volume. Left:In this example, the input volume of size [224x224x64] is pooled with filter size 2, stride 2 into output volume of size [112x112x64]. Notice that the volume depth is preserved. Right:The most common downsampling operation is max, giving rise to max pooling, here shown with a stride of 2. That is, each max is taken over 4 numbers (little 2x2 square). 本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/7908217.html,如需转载请自行联系原作者

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册