本文是:《Python 超简单实现人类面部情绪的识别》文章的代码模型下载地址:
分类目录归档:下载
语音转文字神器 openai-whisper 模型下载 (Large-V2)
实测这个模型的表现优于市面上其他所有开源的模型。
在某些文字转换的场景中,它的表现甚至优于腾讯云、阿里云。
模型大小:2.9G, 模型下载:
A股网格自动交易策略源代码
网格交易策略,源代码,打包程序,支持股票,ETF,可转债,实盘模拟盘一体化,支持自己设定网格,程序自动设定网格等,支持多标的组合。
基于Easytrader开发。
faceswap — Python 换脸安装方法及源代码
1.先决条件
机器学习本质上涉及大量的反复试验。您要让程序尝试数百万种不同的设置,以采用一种可以执行您想要执行的算法的算法。除非您具有加快此过程所需的硬件,否则此过程确实非常缓慢。
该过程执行的计算类型非常适合于图形卡,而不是常规处理器。非常需要您在支持台式机或服务器的GPU上运行训练过程。在CPU上运行此代码意味着需要花费数周的时间来训练模型,而在GPU上要花费几个小时。
2.硬件要求
您至少需要以下之一:
- 强大的CPU
- 笔记本电脑的CPU通常可以运行该软件,但其速度不足以以合理的速度进行训练
- 强大的GPU
- 当前,完全支持Nvidia GPU。plaidML部分支持AMD和AMD显卡。
- 如果使用Nvidia GPU,则它至少需要支持CUDA Compute Capability 3.5。(1.0版将在Compute Capability 3.0上运行)要查看您的GPU支持的版本,请查阅以下列表:https : //developer.nvidia.com/cuda-gpus 最有可能支持7xx系列之后的台式机卡。
- 非常耐心
3.支持的操作系统
- Windows 10 Windows 7和8可能会起作用。你的旅费可能会改变。Windows有一个安装程序,它将设置您需要的所有内容。参见:https : //github.com/deepfakes/faceswap/releases
- Linux 大多数基于Ubuntu / Debian或CentOS的Linux发行版都可以使用。
- 由于缺少Nvidia的驱动程序/库,因此macOS上的macOS GPU支持受到限制。
- 所有操作系统都必须是64位才能运行Tensorflow。
4.在继续之前很重要
在当前的迭代中,尽管可以使用gui,但是该项目在很大程度上依赖于命令行的使用。如果您不熟悉命令行工具,则可能难以设置环境,并且也许不应该尝试执行本指南中描述的任何步骤。本指南假定您具有命令行的中级知识。
对于您可能对自己的计算机造成的任何损害,开发人员也不承担任何责任。
5.Linux和Windows安装指南
5.1 自动安装
Windows和Linux现在都有安装程序,可以为您安装所有内容并创建桌面快捷方式以直接启动到GUI。您可以从https://github.com/deepfakes/faceswap/releases下载安装程序。
如果您对安装程序有疑问,请继续阅读有关在Windows上安装FacesWap的更多手动安装方法。
5.2手动安装
设置faceswap似乎对新用户来说有点吓人,但这并不复杂,尽管很耗时。建议尽可能使用Linux,因为Windows会占用大约20%的GPU内存,使Faceswap运行速度稍慢,但是使用Windows完全可以,并且100%支持Windows。
5.3先决条件
Python
从https://www.anaconda.com/cn/download/下载并安装最新的Python 3 Anaconda 。除非您知道自己在做什么,否则可以将所有选项保留为默认值。
Git
下载并安装Windows版Git:https : //git-scm.com/download/win。除非您知道自己在做什么,否则可以将所有选项保留为默认值。
6.设定
重新启动您的PC,以便您刚安装的所有内容都被注册。您可以使用Anaconda创建一个虚拟环境来运行Faceswap:Python 数据分析与挖掘好帮手—Anaconda
FaceSwap
- 如果您还不在虚拟环境中,请 activate xxx 进入该虚拟环境。
- 解压在本站中下载的 Faceswap.zip
- 输入faceswap文件夹:
cd faceswap
简易安装
- 输入命令
python setup.py
并按照提示进行操作: - 如果您有问题/错误,请遵循以下“手动安装”步骤。
手动安装
如果以上“简易安装”成功完成,请不要执行这些步骤。如果您使用的是Nvidia卡,请确保已为所需版本的Tensorflow安装了正确的Cuda / cuDNN版本
- 通过输入以下命令安装tkinter(GUI必需):
conda install tk
- 安装要求:
- 对于Nvidia GPU用户:
pip install -r requirements_nvidia.txt
- 对于AMD GPU用户:
pip install -r requirements_amd.txt
- 对于CPU用户:
pip install -r requirements_cpu.txt
- 对于Nvidia GPU用户:
7.使用Faceswap
- 如果您还不在虚拟环境中,请 activate xxx 进入该虚拟环境。
- 输入faceswap文件夹:
cd faceswap
- 输入以下内容以查看命令列表:
python faceswap.py -h
或输入python faceswap.py gui
以启动GUI
8.创建桌面快捷方式
可以添加桌面快捷方式,以轻松直接启动到faceswap GUI中:
- 打开记事本
- 粘贴以下内容:
%USERPROFILE%\Anaconda3\envs\faceswap\python.exe %USERPROFILE%/faceswap/faceswap.py gui
- 将文件另存为“ faceswap.bat”到桌面
9.更新Faceswap
随着新功能的添加和错误的修复,使faceswap保持最新是很好的。为此:
- 如果使用GUI,则可以转到“帮助”菜单,然后选择“检查更新…”。如果有可用更新,请转到“帮助”菜单,然后选择“更新Faceswap”。重新启动Faceswap以完成更新。
- 如果您还不在虚拟环境中,请执行以下步骤
- 输入faceswap文件夹:
cd faceswap
- 输入以下内容
git pull --all
- 下载最新版本后,请确保您的依赖项是最新的。有一个脚本可以帮助您:
python update_deps.py
Python 如何使用Python预测机票价格 源代码
Python 批量渲染并发送元旦祝福邮件 源代码
Python源代码 网易云音乐歌曲批量下载,免VIP,仅供测试
Python推特机器人分类(2017 Kaggle NYU) 准确率94%源代码下载
Python推特机器人分类(2017 Kaggle NYU) 准确率94%源代码下载
[download_code]
这是一个python机器学习比赛的源代码。
来自于kaggle的NYU Tandon Spring 2017 Machine Learning Competition: Twitter Bot classification赛事,原网站访问此处。
准确率:
若参加比赛可排27名:
Python 世界上最简单的面部识别api 源代码下载
[download_code]
Face Recognition 世界上最简单的Python面部识别api
译者注:
本项目face_recognition是一个强大、简单、易上手的人脸识别开源项目,并且配备了完整的开发文档和应用案例,特别是兼容树莓派系统。
为了便于中国开发者研究学习人脸识别、贡献代码,我将本项目README文件翻译成中文。
向本项目的所有贡献者致敬。
英译汉:同济大学开源软件协会 子豪兄Tommy
Translator’s note:
face_recognition is a powerful, simple and easy-to-use face recognition open source project with complete development documents and application cases, especially it is compatible with Raspberry Pi.
In order to facilitate Chinese software developers to learn, make progress in face recognition development and source code contributions, I translated README file into simplified Chinese.
Salute to all contributors to this project.
Translator: Tommy in Tongji Univerisity Opensource Association 子豪兄Tommy
本项目是世界上最简洁的人脸识别库,你可以使用Python和命令行工具提取、识别、操作人脸。
本项目的人脸识别是基于业内领先的C++开源库 dlib中的深度学习模型,用Labeled Faces in the Wild人脸数据集进行测试,有高达99.38%的准确率。但对小孩和亚洲人脸的识别准确率尚待提升。
Labeled Faces in the Wild是美国麻省大学安姆斯特分校(University of Massachusetts Amherst)制作的人脸数据集,该数据集包含了从网络收集的13,000多张面部图像。
本项目提供了简易的face_recognition
命令行工具,你可以用它处理整个文件夹里的图片。
特性
从图片里找到人脸
定位图片中的所有人脸:
import face_recognition
image = face_recognition.load_image_file("your_file.jpg")
face_locations = face_recognition.face_locations(image)
识别人脸关键点
识别人脸关键点,包括眼睛、鼻子、嘴和下巴。
import face_recognition
image = face_recognition.load_image_file("your_file.jpg")
face_landmarks_list = face_recognition.face_landmarks(image)
识别人脸关键点在很多领域都有用处,但同样你也可以把这个功能玩坏,比如本项目的 digital make-up自动化妆案例(就像美图秀秀一样)。
识别图片中的人是谁
import face_recognition
known_image = face_recognition.load_image_file("biden.jpg")
unknown_image = face_recognition.load_image_file("unknown.jpg")
biden_encoding = face_recognition.face_encodings(known_image)[0]
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]
results = face_recognition.compare_faces([biden_encoding], unknown_encoding)
你也可以配合其它的Python库(比如opencv)实现实时人脸检测:
看这个案例 实时人脸检测 。
安装
环境配置
- Python 3.3+ or Python 2.7
- macOS or Linux
- Windows并不是我们官方支持的,但也许也能用
不同操作系统的安装方法
在 Mac 或者 Linux上安装本项目
First, make sure you have dlib already installed with Python bindings:
第一步,安装dlib和相关Python依赖:
Then, install this module from pypi using pip3
(or pip2
for Python 2):
pip3 install face_recognition
如果你遇到了幺蛾子,可以用Ubuntu虚拟机安装本项目,看下面这个教程。 如何使用Adam Geitgey大神提供的Ubuntu虚拟机镜像文件安装配置虚拟机,本项目已经包含在镜像中.
在 Mac 或者 Linux上安装本项目 2
修改你的pip镜像源为清华镜像,然后使用pip install face_recognition
,可以自动帮你安装各种依赖,包括dlib。只是在安装dlib的时候可能会出问题,因为dlib需要编译,出现的问题一般是gcc
或者g++
版本的问题,所以在pip install face_recognition
之前,可以通过在命令行键入
export CC=/usr/local/bin/gcc
export CXX=/usr/local/bin/g++
来指定你gcc和g++对应的位置,(这两句话会临时修改当前终端的环境变量/usr/local/bin/gcc对应你自己gcc或者g++所在目录)。
在树莓派上安装
在Windows上安装
虽然本项目官方并不支持Windows,但一些大神们摸索出了在Windows上运行本项目的方法:
使用Ubuntu虚拟机镜像文件安装配置虚拟机,本项目已经包含在这个镜像中
- 如何使用Adam Geitgey大神提供的Ubuntu虚拟机镜像文件安装配置虚拟机,本项目已经包含在镜像中(需要电脑中安装VMWare Player 或者 VirtualBox)
使用方法
命令行界面
当你安装好了本项目,你可以使用两种命令行工具:
face_recognition
– 在单张图片或一个图片文件夹中认出是谁的脸。face_detection
– 在单张图片或一个图片文件夹中定位人脸位置。
face_recognition
命令行工具
face_recognition
命令行工具可以在单张图片或一个图片文件夹中认出是谁的脸。
首先,你得有一个你已经知道名字的人脸图片文件夹,一个人一张图,图片的文件名即为对应的人的名字:
然后,你需要第二个图片文件夹,文件夹里面是你希望识别的图片:
然后,你在命令行中切换到这两个文件夹所在路径,然后使用face_recognition
命令行,传入这两个图片文件夹,然后就会输出未知图片中人的名字:
$ face_recognition ./pictures_of_people_i_know/ ./unknown_pictures/
/unknown_pictures/unknown.jpg,Barack Obama
/face_recognition_test/unknown_pictures/unknown.jpg,unknown_person
输出结果的每一行对应着图片中的一张脸,图片名字和对应人脸识别结果用逗号分开。
如果结果输出了unknown_person
,那么代表这张脸没有对应上已知人脸图片文件夹中的任何一个人。
face_detection
命令行工具
face_detection
命令行工具可以在单张图片或一个图片文件夹中定位人脸位置(输出像素点坐标)。
在命令行中使用face_detection
,传入一个图片文件夹或单张图片文件来进行人脸位置检测:
$ face_detection ./folder_with_pictures/
examples/image1.jpg,65,215,169,112
examples/image2.jpg,62,394,211,244
examples/image2.jpg,95,941,244,792
输出结果的每一行都对应图片中的一张脸,输出坐标代表着这张脸的上、右、下、左像素点坐标。
调整人脸识别的容错率和敏感度
如果一张脸识别出不止一个结果,那么这意味着他和其他人长的太像了(本项目对于小孩和亚洲人的人脸识别准确率有待提升)。你可以把容错率调低一些,使识别结果更加严格。
通过传入参数 --tolerance
来实现这个功能,默认的容错率是0.6,容错率越低,识别越严格准确。
$ face_recognition --tolerance 0.54 ./pictures_of_people_i_know/ ./unknown_pictures/
/unknown_pictures/unknown.jpg,Barack Obama
/face_recognition_test/unknown_pictures/unknown.jpg,unknown_person
如果你想看人脸匹配的具体数值,可以传入参数 --show-distance true
:
$ face_recognition --show-distance true ./pictures_of_people_i_know/ ./unknown_pictures/
/unknown_pictures/unknown.jpg,Barack Obama,0.378542298956785
/face_recognition_test/unknown_pictures/unknown.jpg,unknown_person,None
更多的例子
如果你并不在乎图片的文件名,只想知道文件夹中的图片里有谁,可以用这个管道命令:
$ face_recognition ./pictures_of_people_i_know/ ./unknown_pictures/ | cut -d ',' -f2
Barack Obama
unknown_person
加速人脸识别运算
如果你的CPU是多核的,你可以通过并行运算加速人脸识别。例如,如果你的CPU有四个核心,那么你可以通过并行运算提升大概四倍的运算速度。
如果你使用Python3.4或更新的版本,可以传入 --cpus <number_of_cpu_cores_to_use>
参数:
$ face_recognition --cpus 4 ./pictures_of_people_i_know/ ./unknown_pictures/
你可以传入 --cpus -1
参数来调用cpu的所有核心。
子豪兄批注:树莓派3B有4个CPU核心,传入多核参数可以显著提升图片识别的速度(亲测)。
face_recognition
Python 模块:在Python中,你可以导入face_recognition
模块,调用我们提供的丰富的API接口,用几行代码就可以轻松玩转各种人脸识别功能!
API 接口文档: https://face-recognition.readthedocs.io
在图片中定位人脸的位置
import face_recognition
image = face_recognition.load_image_file("my_picture.jpg")
face_locations = face_recognition.face_locations(image)
# face_locations is now an array listing the co-ordinates of each face!
你也可以使用深度学习模型达到更加精准的人脸定位。
注意:这种方法需要GPU加速(通过英伟达显卡的CUDA库驱动),你在编译安装dlib
的时候也需要开启CUDA支持。
import face_recognition
image = face_recognition.load_image_file("my_picture.jpg")
face_locations = face_recognition.face_locations(image, model="cnn")
# face_locations is now an array listing the co-ordinates of each face!
如果你有很多图片需要识别,同时又有GPU,那么你可以参考这个例子:案例:使用卷积神经网络深度学习模型批量识别图片中的人脸.
识别单张图片中人脸的关键点
import face_recognition
image = face_recognition.load_image_file("my_picture.jpg")
face_landmarks_list = face_recognition.face_landmarks(image)
# face_landmarks_list is now an array with the locations of each facial feature in each face.
# face_landmarks_list[0]['left_eye'] would be the location and outline of the first person's left eye.
看这个案例 案例:提取奥巴马和拜登的面部关键点
识别图片中的人是谁
import face_recognition
picture_of_me = face_recognition.load_image_file("me.jpg")
my_face_encoding = face_recognition.face_encodings(picture_of_me)[0]
# my_face_encoding now contains a universal 'encoding' of my facial features that can be compared to any other picture of a face!
unknown_picture = face_recognition.load_image_file("unknown.jpg")
unknown_face_encoding = face_recognition.face_encodings(unknown_picture)[0]
# Now we can see the two face encodings are of the same person with `compare_faces`!
results = face_recognition.compare_faces([my_face_encoding], unknown_face_encoding)
if results[0] == True:
print("It's a picture of me!")
else:
print("It's not a picture of me!")
看这个案例 案例:是奥巴马还是拜登?
Python 案例
所有案例都在这个链接中 也就是examples文件夹.
人脸定位
人脸关键点识别
人脸识别
- 案例:是奥巴马还是拜登?
- 案例:人脸识别之后在原图上画框框并标注姓名
- 案例:在不同精度上比较两个人脸是否属于一个人
- 案例:从摄像头获取视频进行人脸识别-较慢版(需要安装OpenCV)
- 案例:从摄像头获取视频进行人脸识别-较快版(需要安装OpenCV)
- 案例:从视频文件中识别人脸并把识别结果输出为新的视频文件(需要安装OpenCV)
- 案例:通过树莓派摄像头进行人脸个数统计及人脸身份识别
- 案例:通过浏览器HTTP访问网络服务器进行人脸识别(需要安装Flask后端开发框架))
- 案例:基于K最近邻KNN分类算法进行人脸识别
face_recognition
的文章和教程
关于 - 本项目作者写的一篇文章 Modern Face Recognition with Deep Learning
- 主要内容:基本算法和原理
- Face recognition with OpenCV, Python, and deep learning by Adrian Rosebrock
- 主要内容:如何实际使用本项目
- Raspberry Pi Face Recognition by Adrian Rosebrock
- 主要内容:如何在树莓派上使用本项目
- Face clustering with Python by Adrian Rosebrock
- 主要内容:使用非监督学习算法实现把图片中的人脸高斯模糊
人脸识别的原理
如果你想更深入了解人脸识别这个黑箱的原理 读这篇文章。
子豪兄批注:一定要看这篇文章,讲的既有趣又有料。
警告说明
- 本项目的人脸识别模型是基于成年人的,在孩子身上效果可能一般。如果图片中有孩子的话,建议把临界值设为0.6.
- 不同人种的识别结果可能不同, 看wiki百科页面 查看更多细节。
把本项目部署在云服务器上 (Heroku, AWS等)
本项目是基于C++库dlib
的,所以把本项目部署在Heroku或者AWS的云端服务器上是很明智的。
为了简化这个过程,有一个Dockerfile案例,教你怎么把face_recognition
开发的app封装成Docker 容器文件,你可以把它部署在所以支持Docker镜像文件的云服务上。
出了幺蛾子?
如果出了问题,请在Github提交Issue之前查看 常见错误 。
鸣谢
- 非常感谢 Davis King (@nulhom)创建了
dlib
库,提供了响应的人脸关键点检测和人脸编码相关的模型,你可以查看 blog post这个网页获取更多有关ResNet的信息。 - 感谢每一个相关Python模块(包括numpy,scipy,scikit-image,pillow等)的贡献者。
- 感谢 Cookiecutter 和audreyr/cookiecutter-pypackage 项目模板,使得Python的打包方式更容易接受。
Python 深度学习图像风格迁移 源代码下载
[download_code]
准备
此代码基于pytorch。它已经在Ubuntu 14.04 LTS上进行了测试。
依赖关系:
CUDA后端:
下载VGG-19:
sh models/download_models.sh
编译cuda_utils.cu
(makefile
为您的机器调整PREFIX
以及NVCC_PREFIX
):
make clean && make
用法
快速开始
使用提供的脚本生成所有(examples/
)结果,只需在Matlab或Octave运行
run('gen_laplacian/gen_laplacian.m')
然后在Python中:
python gen_all.py
最终输出在examples/final_results/
。
基本用法
- 给定具有语义分割掩码的输入和样式图像,以下文件名格式分别将它们放入
examples/
:examples/input/in<id>.png
,examples/style/tar<id>.png
和examples/segmentation/in<id>.png
,examples/segmentation/tar<id>.png
; - 使用
gen_laplacian/gen_laplacian.m
Matlab 计算消光拉普拉斯矩阵。输出矩阵将具有以下文件名形式:gen_laplacian/Input_Laplacian_3x3_1e-7_CSR<id>.mat
;
注意:请确保内容图像分辨率与Matlab中的Matting Laplacian计算和Torch中的样式传输一致,否则结果将不正确。
- 运行以下脚本以生成分段中间结果:
th neuralstyle_seg.lua -content_image <input> -style_image <style> -content_seg <inputMask> -style_seg <styleMask> -index <id> -serial <intermediate_folder>
- 运行以下脚本以生成最终结果:
th deepmatting_seg.lua -content_image <input> -style_image <style> -content_seg <inputMask> -style_seg <styleMask> -index <id> -init_image <intermediate_folder/out<id>_t_1000.png> -serial <final_folder> -f_radius 15 -f_edge 0.01
可以传递-backend cudnn
和-cudnn_autotune
两者Lua脚本(步骤3和4),以潜在地提高速度和内存使用情况。libcudnn.so
必须在你的LD_LIBRARY_PATH
。这需要cudnn.torch。
图像分割
注意:在论文中,我们使用从DilatedNet修改的自动场景分割算法生成所有比较结果。手动分割可以实现更多样化的任务,因此我们提供了掩模examples/segmentation/
。
我们使用的蒙版颜色(您可以ExtractMask
在两个*.lua
文件中添加更多颜色):
颜色变量 | RGB值 | 十六进制值 |
---|---|---|
blue |
0 0 255 |
0000ff |
green |
0 255 0 |
00ff00 |
black |
0 0 0 |
000000 |
white |
255 255 255 |
ffffff |
red |
255 0 0 |
ff0000 |
yellow |
255 255 0 |
ffff00 |
grey |
128 128 128 |
808080 |
lightblue |
0 255 255 |
00ffff |
purple |
255 0 255 |
ff00ff |
例子
以下是算法的一些结果(从左到右分别是输入,样式和输出):