人工智能

人工智能 · 圈子

648 位酷友已加入

本圈子收集关于人工智能的各种技术资料,加入圈子可以上传、下载资料,也可以使用提问来寻求资料或分享你认为有价值的站外链接~

关注推荐最新

热门标签

计算机

计算机·圈子   首发

阿托 更新了
资源

【Demo】Attention Gate网络(图像分类和分割)

Attention Gate网络(图像分类和分割) U-Net和VGG-16模型中使用Attention Gate的Pytorch实现。 该框架可用于医学图像分类和分割任务。 Attention Gate网络结构的示意图 附加Attention Gate的示意图 参考 1."Attention-Gated Networks for Improving Ultrasound Scan Plane Detection", MIDL'18, Amsterdam 会议论文 会议海报 2."Attention U-Net: Learning Where to Look for the Pancreas", MIDL'18, Amsterdam 会议论文 会议海报 安装 来源https://github.com/ozan-oktay/Attention-Gated-Networks

计算机

计算机·圈子   首发

阿托 更新了
资源

【Demo】基于Python、Keras和CASIA-HWDB1.1实现卷积神经网络

CASIA-HWDB1.1-cnn 该存储库是包含深度学习库Keras和CASIA-HWDB1.1数据集的子集进行的实验。 此处提供的代码实现了卷积神经网络,其测试集准确性有时大于95%。 该网络配置是Zhang Yuhao在《 Deep Convolutional Network for Handwritten Chinese Character Recognition》中描述的配置的简化版本; 由于我们只想使用卷积网络和深度学习库,因此没有进行任何改进模型的尝试。 环境依赖 假设你已经安装了Keras及其后端,并对其进行了配置。 使用以下命令安装其他必需的依赖项: 该代码最后在Keras 2.1.5上进行了测试,使用TensorFlow 1.8.0作为后端,以及h5py 2.7.1,numpy 1.14.2,Pillow 5.1.0,scikit-image 0.14.0和scipy 1.0.0。 测试在单个GeForce GTX 970下运行。 用法 在发布的部分中,我们上传了CASIA-HWDB1.1数据集的(压缩)子集,经过训练的模型和一些分类,所有这些均按照以下步骤生成。 如果你使用我们的子集,请从步骤3开始。 0.从官方地址下载CASIA-HWDB1.1数据集(HWDB1.1trn_gnt.zip(1873 MB)和HWDB1.1tst_gnt.zip(471 MB))并将其解压缩(需要以ALZ格式解压缩档案): 1.将数据集转换为HDF5二进制数据格式: 2.从HDF5数据集中提取200个字符类别的子集: 3.在子集中训练网络: 4.(可选)生成一些分类的报告: 来源https://github.com/integeruser/CASIA-HWDB1.1-cnn

电子

电子·圈子   首发

侧卫 更新了
资源

自动驾驶应用场景与商业化路径-电动汽车百人会-2020

内容 自动驾驶是汽车产业与人工智能、高性能计算、大数据、物联网等新一代信息技术以及交通出行、城市管理等多领域深度融合的产物,对降低交通拥堵、事故率,帮助城市构建安全、高效的未来出行结构,对汽车产业变革,以及城市交通规划具有深远的影响。 随着环境感知、多传感器融合、智能决策、控制与执行系统、高精度地图与定位等核心技术的快速发展与成熟,自动驾驶汽车已经从实验室走向公开道路实地测试及商业化示范的阶段。 围绕自动驾驶在出行服务、干线物流、封闭园区物流、公交巴士、末端配送、市政环卫、自动泊车等场景的测试、示范及进一步商业化应用也存在着一些值得思考的问题:自动驾驶到底哪些场景先落地;监管部门如何实施开展相关的管理监督,才能让自动驾驶在应用中更加安全、高效;自动驾驶商业化发展的方向如何;未来自动驾驶将会带来哪些社会性影响,大规模商业化应用需要哪些条件;对法律法规带来的什么样的挑战等。 基于上述问题,课题组通过多方调研、咨询、讨论,从不同场景角度对国内外产业发展现状、面临的问题及政策建议进行分析研究,主要包括三个部分的内容: 第一部分,介绍国内外已经开展了不同程度的自动驾驶商业化示范,掌握有核心技术的企业,选择在特定领域展开试运营服务。 第二部分,对无人出租车、干线物流、无人公交、封闭园区物流、无人环卫、无人配送、自主代客泊车等场景的应用现在进行分析,结合国外监管,对国内各场景商业化面临的挑战进行分析,并给出相关建议。 第三部分,对自动驾驶场景落地进行总结,阐述了未来自动驾驶的到来对汽车产业变化进行展望。 目录 第一章 自动驾驶商业化已提上日程 第二章 无人出租车 一、无人出租车场景 (一)出租车场景特点 (二)自动驾驶带来价值 二、全球应用现状 (一)重点企业应用现状 (二)重点国家管理模式 三、国内产业发展 (一)国内产业基础 (二)国内商业化进程 (三)国内商业化趋势 四、挑战及建议 (一)挑战 (二)建议 第三章 干线物流 一、 无人干线物流场景 (一) 干线物流场景特点 (二) 自动驾驶带来价值 二、 全球应用现状 (一) 重点企业应用现状 (二) 重点国家管理模式 三、 国内产业发展 (一) 国内产业基础 (二) 国内商业化进程 (三) 国内商业化趋势 四、 挑战及建议 (一) 挑战 (二)建议 第四章 末端物流 一、无人末端物流场景 (一)末端物流场景特点 (二)自动驾驶带来价值 二、全球应用现状 (一)重点企业应用现状 (二)重点国家管理模式 三、国内产业发展 (一)国内产业基础 (二)国内商业化进程 (三)国内商业化趋势 四、挑战及建议 (一)挑战 (二) 建议 第五章 无人公交 一、 无人公交场景 (一)公交场景特点 (二)自动驾驶带来价值 二、 全球应用现状 (一) 重点企业应用现状 (二)重点国家管理模式 三、国内产业发展 (一)国内产业基础 (二)国内商业化进程 (三)国内商业化趋势 四、挑战及建议 (一)挑战 (二)建议 第六章 封闭园区物流 一、封闭园区物流场景 (一)园区物流场景特点 (二)自动驾驶带来价值 二、全球应用现状 (一)重点企业应用现状 (二)重点国家管理模式 三、国内产业发展 (一) 国内产业基础 (二) 国内商业化进程 (三)国内商业化趋势 四、挑战及建议 (一)挑战 (二)建议 第七章 无人环卫 一、无人环卫场景 (一)无人环卫场景特点 (二)自动驾驶带来价值 二、全球应用现状 (一)国外应用现状 (二)国内应用现状 三、国内产业发展 (一)国内产业基础 (二)国内量产的规模效益 (三)国内商业模式化趋势 四、挑战及建议 (一)挑战 (二)建议 第八章 自主代客泊车 一、自主代客泊车发展背景 (一)国家推进智慧停车场建设 (二)城市停车困难依然普遍 二、自主代客泊车场景价值 (一)自动驾驶与智慧停车协同 (二)自主代客泊车落地价值 三、国内产业发展 (一)国内发展基础 (二)国内商业化现状 (三)国内商业化趋势 四、挑战及建议 (一)挑战 (二)建议 第九章 总结与展望 一、总结 (一)无人出租车 (二)干线物流 (三)末端配送 (四)无人环卫 (五)无人公交 (六)封闭场景物流 (七)自主代客泊车 二、展望 (一)汽车成为智能移动终端 (二)汽车产业生态迎来重构 (三)生产方式向智能制造转变 (四)未来出行以共享方式为主 (五)产业生态位将发生变化 报告来源:电动汽车百人会 发布时间:2020

资源

交通标志的识别分类(基于GTSBR数据)

项目介绍 完成交通标志的识别分类(基于GTSBR数据),测试数据集上达到98.84%的准确率 检测部分的特征提取层包含YoloV2,yoloV2Tiny,yoloV3,MobileNet,SqueezeNet,ShuffleNet和由项目作者设计的结构:S-MobileNet 训练 : python main.py train 测试 : python main.py test 结果展示 权重模型参见:https://github.com/jacobssy/Traffic_Sign_detection/issues/4 转载自:https://github.com/jacobssy/Traffic_Sign_detection

资源

【Demo】基于mtcnn与facenet实现人脸登录系统

基于mtcnn与facenet实现人脸登录系统 本文主要介绍了系统涉及的人脸检测与识别的详细方法,该系统基于python2.7.10/opencv2/tensorflow1.7.0环境,实现了从摄像头读取视频,检测人脸,识别人脸的功能 由于模型文件过大,git无法上传,整个项目放在百度云盘,地址:https://pan.baidu.com/s/1TaalpwQwPTqlCIfXInS_LA 人脸识别是计算机视觉研究领域的一个热点。目前,在实验室环境下,许多人脸识别已经赶上(超过)人工识别精度(准确率:0.9427~0.9920),比如face++,DeepID3,FaceNet等(详情可以参考:基于深度学习的人脸识别技术综述)。但是,由于光线,角度,表情,年龄等多种因素,导致人脸识别技术无法在现实生活中广泛应用。 本文基于python/opencv/tensorflow环境,采用FaceNet(LFW:0.9963 )为基础来构建实时人脸检测与识别系统,探索人脸识别系统在现实应用中的难点。下文主要内容如下 : 利用htm5 video标签打开摄像头采集头像并使用jquery.faceDeaction组件来粗略检测人脸 将人脸图像上传到服务器,采用mtcnn检测人脸 利用opencv的仿射变换对人脸进行对齐,保存对齐后的人脸 采用预训练的facenet对检测的人脸进行embedding,embedding成512维度的特征; 对人脸embedding特征创建高效的annoy索引进行人脸检测 人脸采集 采用html5 video标签可以很方便的实现从摄像头读取视频帧,下文代码实现了从摄像头读取视频帧,faceDection识别人脸后截取图像上传到服务器功能 在html文件中添加video,canvas标签 打开网络摄像头 利用jquery的facetDection组件检测人脸 $('#canvas').faceDetection() 检测出人连脸的话截图,并把图片转换为base64的格式,方便上传 将base64格式的图片上传到服务器 图片服务器接受代码,php语言实现 人脸检测 人脸检测方法有许多,比如opencv自带的人脸Haar特征分类器和dlib人脸检测方法等。 对于opencv的人脸检测方法,有点是简单,快速;存在的问题是人脸检测效果不好。正面/垂直/光线较好的人脸,该方法可以检测出来,而侧面/歪斜/光线不好的人脸,无法检测。因此,该方法不适合现场应用。对于dlib人脸检测方法 ,效果好于opencv的方法,但是检测力度也难以达到现场应用标准。 本文中,我们采用了基于深度学习方法的mtcnn人脸检测系统(mtcnn:Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Neural Networks)。mtcnn人脸检测方法对自然环境中光线,角度和人脸表情变化更具有鲁棒性,人脸检测效果更好;同时,内存消耗不大,可以实现实时人脸检测。 本文中采用mtcnn是基于python和tensorflow的实现(代码来自于davidsandberg,caffe实现代码参见:kpzhang93) 具体代码参考fcce_detect.py 人脸对齐 有时候我们截取的人脸了头像可能是歪的,为了提升检测的质量,需要把人脸校正到同一个标准位置,这个位置是我们定义的,假设我们设定的标准检测头像是这样的 假设眼睛,鼻子三个点的坐标分别是a(10,30) b(20,30) c(15,45),具体设置可参看config.ini文件alignment块配置项 采用opencv仿射变换进行对齐,获取仿射变换矩阵 仿射变换: img_new = cv2.warpAffine(img, tranform, imagesize) 具体代码参考face_alignment.py文件 产生特征 对齐得到后的头像,放入采用预训练的facenet对检测的人脸进行embedding,embedding成512维度的特征,以(id,vector)的形式保存在lmdb文件中 具体代码可参看face_encoder.py 人脸特征索引: 人脸识别的时候不能对每一个人脸都进行比较,太慢了,相同的人得到的特征索引都是比较类似,可以采用KNN分类算法去识别,这里采用是更高效annoy算法对人脸特征创建索引,annoy索引算法的有个假设就是,每个人脸特征可以看做是在高维空间的一个点,如果两个很接近(相识),任何超平面都无法把他们分开,也就是说如果空间的点很接近,用超平面去分隔,相似的点一定会分在同一个平面空间(具体参看:https://github.com/spotify/annoy) 具体代码可参看face_annoy.py 人脸识别 经过上面三个步骤后,得到人脸特征,在索引中查询最近几个点并就按欧式距离,如果距离小于0.6(更据实际情况设置的阈值)则认为是同一个人,然后根据id在数据库查找到对应人的信息即可 具体代码可参看face_annoy.py 安装部署 建表,用于存在用户注册信息,并在web/DqMysql.php 中配置数据库信息 系统采用有两个模块组成: face_web:提供用户注册登录,人脸采集,php语言实现 face_server: 提供人脸检测,裁剪,对齐,识别功能,python语言实现 模块间采用socket方式通信通信格式为: length+content face_server相关的配置在config.ini文件中 使用镜像 face_serverdocker镜像: shareclz/python2.7.10-face-image face_web镜像: skiychan/nginx-php7 假设项目路径为/data1/face-login 安装face_server容器 3.安装face_web容器 最终效果: face_server加载mtcnn模型和facenet模型后等待人脸请求 未注册识别失败 人脸注册 注册后登录成功 参考 https://zhuanlan.zhihu.com/p/25025596 https://github.com/spotify/annoy https://blog.csdn.net/just_sort/article/details/79337526 https://blog.csdn.net/oTengYue/article/details/79278572 来源https://github.com/chenlinzhong/face-login

资源

【Demo】人脸反欺骗攻击检测挑战的代码

代码和数据集存放 获取数据集,即CASIA-SURF文件夹,里面包含phase1和phase2两个文件夹,进入phase1,解压train.zip和valid.zip文件,得到Training文件夹,train_list.txt文件、Val文件夹、val_public_list.txt文件; 将本项目整个文件夹casia-surf-2019-codes拷贝到CASIA-SURF目录里面,保证和phase1同目录; 获得phase2阶段的测试数据集,Testing文件夹和test_public_list.txt文件放在phase2目录下; 最终目录结构如下: 环境安装(ubuntu 16.04): 打开命令终端,cd到casia-surf-2019-codes目录,执行: 数据集预处理: 打开命令终端,cd到casia-surf-2019-codes目录,依次执行: 模型训练 打开命令终端,cd到casia-surf-2019-codes目录: 第一步:使用29266的训练数据集进行训练, 第二步:使用29266的训练数据集进行训练, 第三步:使用15460和38208两种样本均衡的数据集分别尝试进行微调训练, 测试 按我提供的百度网盘链接,下载训练好的模型,解压后放入casia-surf-2019-codes目录; 打开命令终端,cd到casia-surf-2019-codes目录,执行: 第一阶段预测: 注: 程序执行完后,会在当前目录下生成 commit_phase1_depth_%Y-%m-%d_server_{load-epoch}.txt 格式的结果文件 commit.py 第一个参数为待提交成绩的list文件,第二个参数load-epoch:表示加载第load-epoch数的模型进行预测。 第二阶段预测: 注: 程序执行完后,会在当前目录下生成 commit_phase2_depth_%Y-%m-%d_server_{load-epoch}.txt 格式的结果文件 commit.py 第一个参数为待提交成绩的list文件,第二个参数load-epoch:表示加载第load-epoch数的模型进行预测。 来源https://github.com/zzzkk2009/casia-surf-2019-codes

资源

【Demo】基于Bert进行知识蒸馏的预训练语言模型

基于Bert进行知识蒸馏的预训练语言模型 本项目是基于华为的TinyBert进行修改的,简化了数据读取的过程,方便我们利用自己的数据进行读取操作。 TinyBert的训练过程: 用通用的Bert base进行蒸馏,得到一个通用的student model base版本; 用相关任务的数据对Bert进行fine-tune得到fine-tune的Bert base模型; 用2得到的模型再继续蒸馏得到fine-tune的student model base,注意这一步的student model base要用1中通用的student model base去初始化;(词向量loss + 隐层loss + attention loss) 重复第3步,但student model base模型初始化用的是3得到的student模型。(任务的预测label loss) General Distillation (通用版预训练语言模型蒸馏) 预训练 Task Distillation (fine-tune版预训练语言模型蒸馏) 预训练 数据格式 数据增强 参数说明: python data_augmentation.py \ --pretrained_bert_model /nas/pretrain-bert/pretrain-pytorch/bert-base-uncased \ # bert预训练模型 --data_path data/en_data.txt \ # 需要增强的数据路径 --glove_embs /nas/lishengping/datas/glove.6B.300d.txt \ # glove词向量文件 --M 15 \ # 从文本中选择M个词可能被替换 --N 30 \ # 通过bert mask预测的概率前N个词去替换 --p 0.4 \ # 某个词被替换的概率 3>&2 2>&1 1>&3 | tee logs/data_augmentation.log 论文在fine-tune阶段采用了数据增强的策略,从后面的实验中可以看出,数据增强起到了很重要的作用。 数据扩充的过程如下: 对于特定任务的数据中每一条文本,首先使用bert自带的方式进行bpe分词,bpe分词之后是完整单词(single-piece word),用[MASK]符号代替,然后使用bert进行预测并选择其对应的候选词N个;如果bpe(就是BertTokenizer)分词之后不是完整单词,则使用Glove词向量以及余弦相似度来选择对应的N个候选词,最后以概率p选择是否替换这个单词,从而产生更多的文本数据。 数据 因为懒得找中文的词向量下载,暂时用英文的glove文件和英文原始数据。中文的话只需要把预训练模型改为中文bert,glove改为中文的词向量文件即可。原始数据样式和增强后的数据样式在data/en_data.txt和data/aug_en_data.txt 官方版本 =====1st version to reproduce our results in the paper ====== General_TinyBERT(4layer-312dim) General_TinyBERT(6layer-768dim) =====2nd version (2019/11/18) trained with more (book+wiki) and no [MASK] corpus ===== General_TinyBERT_v2(4layer-312dim) General_TinyBERT_v2(6layer-768dim) We here also provide the distilled TinyBERT(both 4layer-312dim and 6layer-768dim) of all GLUE tasks for evaluation. Every task has its own folder where the corresponding model has been saved. TinyBERT(4layer-312dim) TinyBERT(6layer-768dim) 来源https://github.com/Lisennlp/TinyBert

资源

【Demo】基于深度学习的中文语音识别系统

基于深度学习的中文语音识别系统 包括基于深度学习的声学模型和基于深度学习的语言模型 1. Introduction 该系统实现了基于深度框架的语音识别中的声学模型和语言模型建模,其中声学模型包括CNN-CTC、GRU-CTC、CNN-RNN-CTC,语言模型包含transformer、CBHG,数据集包含stc、primewords、Aishell、thchs30四个数据集。 本系统更整体介绍:https://blog.csdn.net/chinatelecom08/article/details/82557715 本项目现已训练一个迷你的语音识别系统,将项目下载到本地上,下载thchs数据集并解压至data,运行test.py,不出意外能够进行识别,结果如下: 若自己建立模型则需要删除现有模型,重新配置参数训练,具体实现流程参考本页最后。 2. 声学模型 声学模型采用CTC进行建模,采用CNN-CTC、GRU-CTC、FSMN等模型model_speech,采用keras作为编写框架。 论文地址:http://www.infocomm-journal.com/dxkx/CN/article/openArticlePDFabs.jsp?id=166970 tutorial:https://blog.csdn.net/chinatelecom08/article/details/85013535 3. 语言模型 新增基于self-attention结构的语言模型model_language\transformer.py,该模型已经被证明有强于其他框架的语言表达能力。 论文地址:https://arxiv.org/abs/1706.03762。 tutorial:https://blog.csdn.net/chinatelecom08/article/details/85051817 基于CBHG结构的语言模型model_language\cbhg.py,该模型之前用于谷歌声音合成,移植到该项目中作为基于神经网络的语言模型。 原理地址:https://github.com/crownpku/Somiao-Pinyin tutorial:https://blog.csdn.net/chinatelecom08/article/details/85048019 4. 数据集 包括stc、primewords、Aishell、thchs30四个数据集,共计约430小时, 相关链接:http://www.openslr.org/resources.php Name train dev test aishell 120098 14326 7176 primewords 40783 5046 5073 thchs-30 10000 893 2495 st-cmd 10000 600 2000 数据标签整理在data路径下,其中primewords、st-cmd目前未区分训练集测试集。 若需要使用所有数据集,只需解压到统一路径下,然后设置utils.py中datapath的路径即可。 与数据相关参数在utils.py中: data_type: train, test, dev data_path: 对应解压数据的路径 thchs30, aishell, prime, stcmd: 是否使用该数据集 batch_size: batch_size data_length: 我自己做实验时写小一些看效果用的,正常使用设为None即可 shuffle:正常训练设为True,是否打乱训练顺序 5. 配置 使用train.py文件进行模型的训练。 声学模型可选cnn-ctc、gru-ctc,只需修改导入路径即可: 语言模型可选transformer和cbhg: 模型识别 使用test.py检查模型识别效果。 模型选择需和训练一致。 一个简单的例子 1. 声学模型训练 train.py文件 2.语言模型训练 3. 模型测试 整合声学模型和语言模型 test.py文件 定义解码器 准备测试数据 加载声学模型和语言模型 使用语音识别系统 来源:https://github.com/audier/DeepSpeechRecognition

资源

【Demo】PaddleGAN——飞桨生成对抗网络开发套件

PaddleGAN——飞桨生成对抗网络开发套件 Paddle GAN库,包括许多有趣的应用程序,例如DeepFake First-Order运动传递,Mai-ha-hi(蚂蚁呀嘿),facesap wav2lip,图片修复,图像编辑,photo2cartoon,图像样式传递等。 介绍 飞桨生成对抗网络开发套件--PaddleGAN,为开发者提供经典及前沿的生成对抗网络高性能实现,并支撑开发者快速构建、训练及部署生成对抗网络,以供学术、娱乐及产业应用。 GAN--生成对抗网络,被“卷积网络之父”Yann LeCun(杨立昆)誉为「过去十年计算机科学领域最有趣的想法之一」,是近年来火遍全网,AI研究者最为关注的深度学习技术方向之一。 快速开始 请确保您按照安装文档的说明正确安装了PaddlePaddle和PaddleGAN 通过ppgan.apps接口直接使用应用: 更多应用的使用请参考ppgan.apps API 更多训练、评估教程: 数据准备 训练/评估/推理教程 经典模型实现 Pixel2Pixel CycleGAN PSGAN First Order Motion Model: 「蚂蚁呀嘿 」 换脸视频核心技术 FaceParsing AnimeGANv2 U-GAT-IT Photo2Cartoon Wav2Lip Super_Resolution StyleGAN2 复合应用 视频修复 在线教程 可以通过人工智能学习与实训社区AI Studio 的示例工程在线体验PaddleGAN的部分能力: 在线教程 链接 表情动作迁移-一键实现多人版「蚂蚁呀嘿」 点击体验 表情动作迁移-全网爆火的「蚂蚁呀嘿」实现 点击体验 老北京视频修复 点击体验 表情动作迁移-当苏大强唱起unravel 点击体验 效果展示 蚂蚁呀嘿 图片变换 老视频修复 动作迁移 超分辨率 妆容迁移 人物动漫化 写实人像卡通化 照片动漫化 唇形同步 版本更新 v0.1.0 (2020.11.02) 初版发布,支持Pixel2Pixel、CycleGAN、PSGAN模型,支持视频插针、超分、老照片/视频上色、视频动作生成等应用。 模块化设计,接口简单易用。 来源:https://github.com/PaddlePaddle/PaddleGAN

资源

【Demo】基于OpenCV的视频人脸识别

基于OpenCV的视频人脸识别 介绍 本项目基于OpenCV使用Haar级联与dlib库进行人脸检测及实时跟踪,应用LBPH算法开发了一个功能相对完整的人脸识别系统。系统采用sqlite3进行序列化数据存储,能够对陌生人脸闯入进行报警,并拥有基于PyQt5设计的GUI实现。 系统管理 核心框架 人脸采集 数据管理 如何运行? 以下操作基于Anaconda3环境,并在Windows10 x64上测试。 环境配置 numpy==1.14.2 PyQt5==5.9.2 PySocks==1.6.8 python-telegram-bot==10.0.1 克隆代码 创建Python虚拟环境 安装OpenCV 安装dlib 安装其它依赖包 运行核心框架 运行人脸采集系统 运行数据管理系统 更新 退出虚拟环境 来源https://github.com/winterssy/face_recognition_py

资源

MASR 中文语音识别

MASR 中文语音识别 MASR是一个基于端到端的深度神经网络的中文普通话语音识别项目。 原理 MASR使用的是门控卷积神经网络(Gated Convolutional Network),网络结构类似于Facebook在2016年提出的Wav2letter。但是使用的激活函数不是ReLU或者是HardTanh,而是GLU(门控线性单元)。因此称作门控卷积网络。根据我的实验,使用GLU的收敛速度比HardTanh要快。如果你想要研究卷积网络用于语音识别的效果,这个项目可以作为一个参考。 以下用字错误率CER来衡量模型的表现,CER = 编辑距离 / 句子长度,越低越好* 大致可以理解为 1 - CER 就是识别准确率。 模型使用AISHELL-1数据集训练,共150小时的录音,覆盖了4000多个汉字。工业界使用的语音识别系统通常使用至少10倍于本项目的录音数据来训练,同时使用特定场景的语料来训练语言模型,所以,不要期待本项目可以和工业界的识别效果媲美。这对于Github上任何个人项目来说都不现实,除非有更先进的技术诞生。 什么叫特定场景的语料训练的语言模型?比如你使用游戏中的语音识别,它更倾向于将你的话识别成你在玩游戏时可能说的话,比如「貂蝉被蓝打死了」。而在其他场景下,「貂蝉被蓝打死了」根本就不是一句通顺的话。不信你和一个只读过三国演义没玩过王者荣耀的人说「貂蝉被蓝打死了」,你确定ta不会反问你:「啥?貂蝉被谁打死了?lan是谁?」 在单卡GTX 1080Ti上,模型每迭代一个epoch大约需要20分钟。(实验室的CUDA版本较低,不排除更新CUDA版本后会快一些的可能。) 上图为验证集的CER随epoch的训练曲线。可以看到,目前验证集CER已经下降到11%。 图中没有显示测试集的表现。测试集的CER稍高一些,在14%。 通过外接语言模型可以将测试集的CER降低到8%。 项目目前提供的预训练模型训练了大约是100个epoch时候的,已经接近最好了。 训练MASR模型 MASR基于pytorch,MASRModel是torch.nn.Module的子类。这将给熟悉pytorch的用户带来极大的方便。 使用MASR的训练功能需要安装以下额外的依赖,既然你浏览到了这里,这些依赖你一定能自行搞定! levenshtein-python 计算CER中的编辑距离 warpctc_pytorch 百度的高性能CTC正反向传播实现的pytorch接口 tqdm 进度显示 tensorboardX 为pytorch提供tensorboard支持 tensorboard 实时查看训练曲线 当然,相信你也有GPU,否则训练将会变得很慢。 通常,神经网络的训练比搭建要困难得多,然而MASR为你搞定了所有复杂的东西,使用MASR进行训练非常方便。 如果你只想要使用MASR内置的门卷积网络GatedConv的话,首先初始化一个GatedConv对象。 你需要传入向它vocabulary,这是一个字符串,包含你的数据集中所有的汉字。但是注意,vocabulary[0]应该被设置成一个无效字符,用于表示CTC中的空标记。 之后,使用to_train方法将model转化成一个可以训练的对象。 此时model则变成可训练的了,使用fit方法来进行训练。 epoch表示你想要训练几次,而train.index和dev.index应该分别为训练数据集和开发数据集(验证集或测试集)的索引文件。 索引文件应具有如下的简单格式: 左边是音频文件路径,右边是对应的标注,用逗号(英文逗号)分隔。 model.fit方法还包含学习率、batch size、梯度裁剪等等参数,可以根据需要调整,建议使用默认参数。 完整的训练流程参见train.py。 来源https://github.com/nobody132/masr

资源

【Demo】人脸表情识别

人脸表情识别 简介 使用卷积神经网络构建整个系统,在尝试了Gabor、LBP等传统人脸特征提取方式基础上,深度模型效果显著。在FER2013、JAFFE和CK+三个表情识别数据集上进行模型评估。 环境部署 基于Python3和Keras2(TensorFlow后端),具体依赖安装如下(推荐使用conda虚拟环境)。 如果你是Linux用户,直接执行根目录下的env.sh即可一键配置环境,执行命令为bash env.sh。 数据准备 数据集和预训练模型均已经上传到百度网盘,链接给出,提取密码为2pmd。下载后将model.zip移动到根目录下的models文件夹下并解压得到一个*.h5的模型参数文件,将data.zip移动到根目录下的dataset文件夹下并解压得到包含多个数据集压缩文件,均解压即可得到包含图像的数据集(其中rar后缀的为原始jaffe数据集,这里建议使用我处理好的)。 项目说明 传统方法 数据预处理 图片降噪 人脸检测(HAAR分类器检测(opencv)) 特征工程 人脸特征提取 LBP Gabor 分类器 SVM 深度方法 人脸检测 HAAR分类器 MTCNN(效果更好) 卷积神经网络 用于特征提取+分类 网络设计 使用经典的卷积神经网络,模型的构建主要参考2018年CVPR几篇论文以及谷歌的Going Deeper设计如下网络结构,输入层后加入(1,1)卷积层增加非线性表示且模型层次较浅,参数较少(大量参数集中在全连接层)。 模型训练 主要在FER2013、JAFFE、CK+上进行训练,JAFFE给出的是半身图因此做了人脸检测。最后在FER2013上Pub Test和Pri Test均达到67%左右准确率(该数据集爬虫采集存在标签错误、水印、动画图片等问题),JAFFE和CK+5折交叉验证均达到99%左右准确率(这两个数据集为实验室采集,较为准确标准)。 执行下面的命令将在指定的数据集(fer2013或jaffe或ck+)上按照指定的batch_size训练指定的轮次。训练会生成对应的可视化训练过程,下图为在三个数据集上训练过程的共同绘图。 模型应用 与传统方法相比,卷积神经网络表现更好,使用该模型构建识别系统,提供GUI界面和摄像头实时检测(摄像必须保证补光足够)。预测时对一张图片进行水平翻转、偏转15度、平移等增广得到多个概率分布,将这些概率分布加权求和得到最后的概率分布,此时概率最大的作为标签(也就是使用了推理数据增强)。 GUI界面 注意,GUI界面预测只显示最可能是人脸的那个脸表情,但是对所有检测到的人脸都会框定预测结果并在图片上标记,标记后的图片在output目录下。 执行下面的命令即可打开GUI程序,该程序依赖PyQT设计,在一个测试图片(来源于网络)上进行测试效果如下图。 上图的GUI反馈的同时,会对图片上每个人脸进行检测并表情识别,处理后如下图。 实时检测 实时检测基于Opencv进行设计,旨在用摄像头对实时视频流进行预测,同时考虑到有些人的反馈,当没有摄像头想通过视频进行测试则修改命令行参数即可。 使用下面的命令会打开摄像头进行实时检测(ESC键退出),若要指定视频进行进行检测,则使用下面的第二个命令。 来源https://github.com/luanshiyinyang/FacialExpressionRecognition

  • 1
  • 24
  • 25
  • 26
  • 46
前往