我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python实现明星专家系统

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python实现明星专家系统



 其实一直对电影里面的对×××进行人脸匹配然后,刷出来×××信息很感兴趣,今天晚上一时兴起,就搞了一把小的。

理论上:你可以建立一个你感兴趣的百万级的数据库,给你个照片 ,你就可以得到她是谁,哪里的,信息都可以知道,而且因为人与人之间的网状的关联,你甚至可以知道她喜欢的人是谁,男朋友长啥样子。

想信我:一切都不是虚构的,你能做的更多!

思路:

一、数据收集,可以采用爬虫对网上海里的明星信息进行有针对的爬取

二、格式化数据,存入mysq,把明星的自拍照的文件名存入数据库中

三、使用百度的api对程序进行编写,说实话,百度人脸识别做的很棒了,精确度很高

四、你上传一张图片(或者你能想象到的方式),后面的程序会对你海量的数据库中人的信息进行比对

五、输出匹配到的人的信息,和相似度的数值。


直接上代码:

# encoding:utf-8`
import base64
import urllib
import urllib2
import simplejson as json
from  os import listdir
import MySQLdb
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

def conmysql():
    conn= MySQLdb.connect(
        host='localhost',
        port = 3306,
        user='root',
        passwd='123456',
        db ='xxnlove',
    	charset='utf8'
        )
    #cur = conn.cursor()
    return conn

'''
人脸比对接口
'''

def facecompar(image01,image02):
    matchUrl = "https://aip.baidubce.com/rest/2.0/face/v2/match"
    # 二进制方式打开图文件
    f = open(image01, 'rb')
    # 参数images:图像base64编码
    img1 = base64.b64encode(f.read())
    # 二进制方式打开图文件
    f = open(image02, 'rb')
    # 参数images:图像base64编码
    img2 = base64.b64encode(f.read())
    # 参数images:图像base64编码,多张图片半角逗号分隔
    params = {
        "images": img1 + ',' + img2}
    params = urllib.urlencode(params)
    access_token = '24.1a060b87a0dfcab77317999d.25922220.1505832798.282335-10029360'
    matchUrl = matchUrl + "?access_token=" + access_token
    request = urllib2.Request(url=matchUrl, data=params)
    request.add_header('Content-Type', 'application/x-www-form-urlencoded')
    response = urllib2.urlopen(request)
    content = response.read()
    if content:
        content = json.loads(content)
        similar=content['result'][0]['score']
        return similar
        #if similar >80:
            #print "两张图片的相似度为"+str(similar)+"   很有可以能是同一个人"
        #    return similar
        #else:
        #    #print "两张图片的相似度为:"+str(content['result'][0]['score'])
        #    return similar
def compare():
    similarlist=[]
    similardict={}
    for img in listdir('./star/'):
        similarvalue=facecompar('compar.jpg','./star/'+img)
        similarlist.append(similarvalue)
        similardict[similarvalue]=img
    return similarlist,similardict

if __name__=="__main__":
    similarlist,similardict=compare()
    similarkey=sorted(similarlist)[-1]
    starname=similardict[similarkey] 
    conn = conmysql()
    cur = conn.cursor()
    sql="select * from face where iamge='%s'" % starname
    cur.execute(sql)
    results = cur.fetchall() 
    print "一共对数据库进行比对了"+str(len(similarlist))+"条信息"
    for info in results:
        print "匹配到明星的信息:"+ info[0],info[1],info[2],"相似度:"+str(similarkey)
    conn.close()

测试图片:

wKioL1mZz5yALdLMAAAibjYpu9k110.jpg-wh_50


因为她是我高中的时候喜欢过的明星,所以~~~~


明星数据库:

wKioL1mZ0CqRR28sAACaiecdnXc612.png-wh_50

因为只是先把路走通,所以数据很少。


明星的照片所在目录:

wKiom1mZ0JfgW-gxAABWMwUCWoc260.png-wh_50

明星照片:

wKioL1mZ0TaDYUgkAAEoM037WUY697.jpg-wh_50

wKiom1mZ0TyxtWekAAAYjPASZXI435.jpg-wh_50

wKiom1mZ0T3Ct4rkAABWbIy1wLY860.jpg-wh_50

wKioL1mZ0TfCrKxTAAD3DdinQxs862.jpg-wh_50

wKioL1mZ0TeyVpLGAAB_CoyoEHQ209.jpg-wh_50


程序运行效果:

wKiom1mZ0ZGiLnJrAABMWg3gOwY615.png-wh_50

一共对数据库进行比对了5条信息

匹配到明星的信息:曾轶可 27 1990年1月3日出生于湖南省常德市汉寿县,创作型女歌手,演员。 相似度:63.689125061


优化后的:

# encoding:utf-8`
import base64
import urllib
import urllib2
import simplejson as json
from  os import listdir
import MySQLdb
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import requests
from bs4 import BeautifulSoup
import re


def conmysql():
    conn= MySQLdb.connect(
        host='localhost',
        port = 3306,
        user='root',
        passwd='123456',
        db ='xxnlove',
    	charset='utf8'
        )
    #cur = conn.cursor()
    return conn


def crawling(name):
    url="http://baike.baidu.com/search/word?word='%s'" % name
    response = requests.get(url)
    response.encoding = 'utf-8'
    text = response.text
    soup = BeautifulSoup(text, 'lxml')
    for infor in soup.find_all('meta')[3:4]:
        global information
        information=(infor.get('content'))
    return information

def facecrawling(name):
    url="http://baike.baidu.com/search/word?word='%s'"  % name
    response = requests.get(url)
    response.encoding = 'utf-8'
    text = response.text
    soup = BeautifulSoup(text, 'lxml')
    imgurl = soup.img.get('class="lazy" data-src')
    try:
        response = requests.get('%s' % imgurl)
        open('./star/'+name+'.jpg', 'wb').write(response.content) 
    except:
        print "继续"

'''
人脸比对接口
'''

def facecompar(image01,image02):
    matchUrl = "https://aip.baidubce.com/rest/2.0/face/v2/match"
    # 二进制方式打开图文件
    f = open(image01, 'rb')
    # 参数images:图像base64编码
    img1 = base64.b64encode(f.read())
    # 二进制方式打开图文件
    f = open(image02, 'rb')
    # 参数images:图像base64编码
    img2 = base64.b64encode(f.read())
    # 参数images:图像base64编码,多张图片半角逗号分隔
    params = {
        "images": img1 + ',' + img2}
    params = urllib.urlencode(params)
    access_token = '24.1fba688d5a060b87a0dfcab7731.2592000.1505832798.282335-100360'
    matchUrl = matchUrl + "?access_token=" + access_token
    request = urllib2.Request(url=matchUrl, data=params)
    request.add_header('Content-Type', 'application/x-www-form-urlencoded')
    response = urllib2.urlopen(request)
    content = response.read()
    if content:
        content = json.loads(content)
        try:
            similar=content['result'][0]['score']
            return similar
        except:
            print image02+"照片比对有问题"
        #if similar >80:
            #print "两张图片的相似度为"+str(similar)+"   很有可以能是同一个人"
        #    return similar
        #else:
        #    #print "两张图片的相似度为:"+str(content['result'][0]['score'])
        #    return similar
def compare():
    similarlist=[]
    similardict={}
    for img in listdir('./star/'):
        similarvalue=facecompar('compar.jpg','./star/'+img)
        similarlist.append(similarvalue)
        similardict[similarvalue]=img
    return similarlist,similardict

def stardb():
    starstr="邢佳栋 李学庆 高昊 潘粤明 戴军 薛之谦 贾宏声 于波 李连杰 王斑 蓝雨 刘恩佑 任泉 李光洁 姜文 黑龙 张殿菲 邓超 张杰 杨坤 沙溢 李茂 黄磊 于小伟 刘冠翔 秦俊杰 张琳 陈坤 黄觉 邵峰 陈旭 马天宇 杨子 邓安奇 赵鸿飞 马可 黄海波 黄志忠 李晨 后弦 王挺 何炅 朱亚文 胡军 许亚军 张涵予 贾乃亮 陆虎 印小天 于和伟 田亮 夏雨 李亚鹏 胡兵 王睿 保剑锋 于震 苏醒 胡夏 张丰毅 刘翔 李玉刚 林依轮 袁弘 朱雨辰 丁志诚 黄征 张子健 许嵩 向鼎 陆毅 乔振宇 闫肃 李健 王啸坤 胡歌 吉杰 吴俊余 韩寒 黄海冰 魏晨 郭敬明 何晟铭 巫迪文 谢苗 郑源 欢子 文章 陈翔 井柏然 左小祖咒 含笑 李咏 徐誉滕 段奕宏 李炜 罗中旭 张远 李立 释小龙 大左 君君 毛宁 樊凡 周一围 于荣光 汤潮 张晓晨 吴京 山野 陈龙 侯勇 张国强 玉米提 周觅 张丹峰 俞思远 姚明 冯绍峰 陈玉建 吴建飞 郑钧 胡彦斌 李智楠 钱枫 高曙光 谢和弦 陈道明 柳云龙 汪峰 陈楚生 陈思成 魏晨 马雪阳 袁成杰 崔健 杜淳 林申 刘洲成 黄晓明 刘烨 张翰 杨洋 宋晓波 解小东 窦唯 姜武 陈泽宇 彭坦 张一山 李易峰 严宽 东来东往 张国立 王志文 佟大为 柏栩栩 蒲巴甲 凌潇肃 李行亮 毛方圆 张嘉译 大张伟 师洋 李幼斌 张磊 朱梓骁 武艺 杨俊毅 耿乐 钱泳辰 撒贝宁 徐峥 谭杰希 黄晟晟 海鸣威 汪涵 王学兵 贾一平 孙红雷 袁文康 蔡国庆 吴秀波 王栎鑫 安琥 刘心 俞灏明 张超 于小彤 张峻宁 乔任梁 朴树 赵帆 张译 聂远 张敬轩 付辛博 黄明 杜海涛 李宇春 张靓颖 周笔畅 何洁 刘亦菲 张含韵 陈好 尚雯婕 汤唯 张筱雨 韩雪 孙菲菲 张嘉倪 霍思燕 陈紫函 朱雅琼 江一燕 厉娜 许飞 胡灵 郝菲尔 刘力扬 reborn 章子怡 谭维维 魏佳庆 张亚飞 李旭丹 孙艺心 巩贺 艾梦萌 闰妮 王蓉 汤加丽 汤芳 牛萌萌 范冰冰 赵薇 周迅 金莎 纪敏佳 黄雅莉 叶一茜 马苏 阿桑 董卿 金铭 徐行 姚笛 朱妍 夏颖 陈西贝 冯家妹 高娅媛 林爽 郑靖文 陶虹 徐静蕾 黄奕 董洁 巩俐 高圆圆 于娜 孟广美 Gameapple  美女奉奉 小龙女彤彤 张子萱  果子 丁贝莉 吸血芭比 公交MM 香香 段思思 二月丫头 刘羽琦 dodolook 拉拉公主 沈丽君 周璟馨 丁叮 谢雅雯 陈嘉琪 宋琳 郭慧敏 卢洁云 佘曼妮 黄景 马艳丽 蒋雯丽 宁静 许晴 张静初 瞿颖 张延 孙俪 闵春晓 蔡飞雨 吴卓羲 游鸿明 胡宇崴 张震岳 汤镇业 黄立行 苗侨伟 周星驰 温升豪 萧敬腾 窦智孔 陈汉典 郑伊健 陈国坤 张信哲 范逸臣 王绍伟 辰亦儒 张卫健 周汤豪 成龙 林志颖 苏有朋 温兆伦 吴建豪 黄家驹 卢广仲 林文龙 赵又廷 刘德华 周传雄 李治廷 周华健 钟镇涛 周渝民 陈柏霖 邱心志 陈百强 郑元畅 王杰 狄龙 郭富城 光良 黄浩然 彭于晏 马浚伟 蓝正龙 林佑威 杜德伟 费翔 许志安 黄义达 黄耀明 陈键锋 王喜 黄贯中 江华 贺一航 郑少秋 蔡康永 陈伟霆 黄宗泽 刘畊宏 梁家辉 林志炫 赵文卓 樊少皇 连凯 吴镇宇 哈狗帮 吴尊 张国荣 方大同 刘松仁 郑嘉颖 周柏豪 王祖蓝 古巨基 萧正楠 邹兆龙 李铭顺 吴奇隆 金城武 李圣杰 陈建州 余文乐 罗志祥 吴启华 李克勤 秦汉 单立文 汪东城 莫少聪 陈冠希 黄秋生 罗嘉良 欧弟 马国明 范植伟 阮经天 郑中基 张智霖 麦浚龙 蔡依林 张韶涵 王心凌 徐若瑄 林志玲 王菲 S.H.E Twins 徐熙媛 桂纶镁 林依晨 陈乔恩 梁静茹 蔡诗芸 范玮琪 廖碧儿 张柏芝 李嘉欣 容祖儿 李玟 贾静雯 MaggieQ 林心如 朱茵 叶璇 唐宁 曾之乔 安以轩 杨丞琳  侯佩岑 同恩 陈松伶 文颂娴 梁凯蒂 林韦君 陈思璇 曹敏莉 乐基儿 郑雪儿 佘诗曼 郑秀文 萧蔷  温碧霞 刘嘉玲 刘玉玲 林熙蕾 李若彤 张曼玉 关之琳 陈慧琳 萧淑慎 蔡少芬 萧亚轩 田丽 杨采妮 李丽珍 琦琦 天心 任港秀 杨思敏 郭静纯 钟丽缇 孙燕姿 叶玉卿 翁红 邱淑贞 蔡淑臻 梁咏琪 季芹 舒淇 莫文蔚 戴佩妮 刘若英 杨千桦 范伟琪 徐熙娣 陈宝莲 吴辰君 张庭 林嘉欣 俞飞鸿 叶子楣 周海媚 伊能静 蜜雪薇琪  侯湘婷 Hebe 应采儿 许茹芸 吴佩慈 郑希怡 范文芳 李彩桦 蔡淳佳 本多RuRu 范晓萱 张惠妹 林忆莲 关心妍 卓依婷 杨恭如 陈文媛 吴小莉 梅艳芳 林青霞 赵雅芝 孟庭苇 吴倩莲 陈慧珊 许慧欣 黎姿 周慧敏 钟楚红 蔡琴 齐豫 邓丽君 林凤娇 陈玉莲 周冰倩 杨惠姗 金素梅 翁美玲 高胜美 甄妮 胡慧中 邝美云 俞小凡 吕秀菱 萧芳芳 刘雪华 潘迎紫 梁雁翎 汪明荃 苏芮 冯宝宝 利智 张艾嘉 叶倩文 陈淑桦 郑裕玲 潘越云 凤飞飞 喻可欣"
    starslist=starstr.split()
    for star in starslist:
        inform=crawling(star)
        facecrawling(star)
        try:
            conn = conmysql()
            cur = conn.cursor()
            image=star+'.jpg'
            sql="insert into star values(%s,%s,%s)"
            cur.execute(sql,(star,inform,image))
            cur.close()
            conn.commit()
            conn.close()
        finally:
            print "connitue"
        import time
        time.sleep(1.5)


if __name__=="__main__":
    similarlist,similardict=compare()
    similarkey=sorted(similarlist)[-1]
    starname=similardict[similarkey] 
    conn = conmysql()
    cur = conn.cursor()
    sql="select * from face where iamge='%s'" % starname
    cur.execute(sql)
    results = cur.fetchall() 
    print "一共对数据库进行比对了"+str(len(similarlist))+"条信息"
    for info in results:
        print "匹配到明星的信息:"+ info[0],info[1],info[2],"相似度:"+str(similarkey)
    conn.close()


数据库:

wKiom1ma3BPAxiQoAAMPtHNehzg309.png-wh_50


目录:

wKiom1ma3Gyi4HfeAAVVwINw1ng320.png-wh_50


项目总结:人脸比对对照片的有一定要求,因为我爬取的照片大小不规则,所以比对的时候,会有问题,人脸比对用的百度的api接口,感觉关键部分不是自己实现的,正在恶补数据结构和算法。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python实现明星专家系统

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python实现明星专家系统

其实一直对电影里面的对×××进行人脸匹配然后,刷出来×××信息很感兴趣,今天晚上一时兴起,就搞了一把小的。理论上:你可以建立一个你感兴趣的百万级的数据库,给你个照片 ,你就可以得到她是谁,哪里的,信息都可以知道,而且因为人与人之间的网状的关
2023-01-31

python 实现选课系统

角色:学校、学员、课程、讲师>作业需求 - [ ] 1.创建北京、上海 2 所学校- [ ] 2.创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开- [ ] 3.课程包含,周期,价
2023-01-31

Java如何实现家政服务平台系统

这期内容当中小编将会给大家带来有关Java如何实现家政服务平台系统,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、项目简述功能包括: 家政服务网站系统,用户注册,登录,分为家政人员,普 通用户,以及最高
2023-06-25

Windows系统中Python实现每

之前说要每周写的。。然后最近忙着毕业就一直没动。>.<感觉月更都困难了。问题描述在每天比如10点到11点之间定时自动登陆网站,签到实现思路使用fiddler抓包工具先登陆一遍,把请求的地址,header等信息都拿到。使用python写一个脚
2023-01-31

Python实现系统交互(subprocess)

目录一、os与commands模块1. os.system()函数实例2. os.popen()函数实例3. commands.getstatusoutput()函数实例二、subprocess模块1. subprocess模块中的常用函数
2022-06-02

python实现用户登录系统

本文实例为大家分享了用户登录系统python实现代码,供大家参考,具体内容如下 注意事项: 1、使用python3执行程序。按提示输入1或2,登录或退出程序 2、输入用户名后,如果用户名被锁定及无效用户名,程序会退出,请确保输入正确。
2022-06-04

python实现的web监控系统

完整项目地址: https://github.com/zsjtoby/DevOpsCloud 欢迎使用极云监控系统 极云监控系统实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。 支持常见系统:CentOS, RedH
2022-06-02

Python实现系统桌面时钟

用Python + PyQT写的一个系统桌面时钟,刚学习Python,写的比较简陋,但是基本的功能还可以。功能:①窗体在应用程序最上层,不用但是打开其他应用后看不到时间②左键双击全屏,可以做小屏保使用,再次双击退出全屏。③系统托盘图标,主要
2023-01-31

Python怎么实现抽奖系统

今天小编给大家分享一下Python怎么实现抽奖系统的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、文章主题在看到相关的抽奖
2023-07-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录