返回顶部
首页 > 资讯 > 后端开发 > Python >python实现明星专家系统
  • 721
分享到

python实现明星专家系统

专家系统明星python 2023-01-31 08:01:57 721人浏览 薄情痞子

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('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接口,感觉关键部分不是自己实现的,正在恶补数据结构算法

--结束END--

本文标题: python实现明星专家系统

本文链接: https://lsjlt.com/news/192471.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python实现明星专家系统
     其实一直对电影里面的对×××进行人脸匹配然后,刷出来×××信息很感兴趣,今天晚上一时兴起,就搞了一把小的。理论上:你可以建立一个你感兴趣的百万级的数据库,给你个照片 ,你就可以得到她是谁,哪里的,信息都可以知道,而且因为人与人之间的网状的...
    99+
    2023-01-31
    专家系统 明星 python
  • 明日之星系统开发
    明日之星APP源码开发、明日之星系统开发软件、明日之星模式系统开发、明日之星平台软件开发、明日之星APP系统开发、明日之星APP定制开发、明日之星系统开发春风轻轻地吹过南国大地,树儿长出绿叶,花儿竞相绽放,湖水泛起波纹,天空蓝蓝,白云飘飘,...
    99+
    2023-06-02
  • 操作系统性能监控:从新手到专家
    简介 操作系统性能监控是监控和管理操作系统资源利用率、响应时间和其他关键指标的过程,以确保系统正常运行并满足用户需求。对于新手来说,掌握操作系统性能监控的基础知识至关重要,而对于专家来说,了解高级技术和最佳实践也很关键。 入门指南:监控...
    99+
    2024-03-02
    操作系统、性能监控、性能指标、监控工具、优化策略
  • 操作系统性能监控:专家圆桌讨论
    选择合适的监控工具 “选择合适的监控工具至关重要。”网络性能专家艾丽丝·弗雷泽说。“它应该能够收集与您的特定操作系统和环境相关的相关指标。” 考虑以下关键特性: 指标涵盖范围:确认工具涵盖您感兴趣的关键性能指标 (KPI)。 可视化:...
    99+
    2024-03-02
    操作系统监控、性能优化、监控工具、故障排除、专家见解
  • 掌握 npm 生态系统:成为包管理专家
    在现代 JavaScript 开发中,npm(Node Package Manager)是不可或缺的工具。它提供了对海量 JavaScript 库、框架和其他模块的访问,使开发人员能够轻松地管理和使用它们。成为一名 npm 专家对于有效且...
    99+
    2024-03-11
    引言
  • C语言实现家庭理财系统
    本文实例为大家分享了C语言实现家庭理财系统的具体代码,供大家参考,具体内容如下 比较简单 直接上代码: #include <stdio.h> #include &l...
    99+
    2024-04-02
  • Python SQLAlchemy 实战秘籍:从新手到专家
    SQLAlchemy 简介 SQLAlchemy 是一款 Python 中的开源对象关系映射(ORM)工具,它可以帮助您轻松地将 Python 对象与数据库中的表进行映射,并通过简单的 Python 代码来对数据库进行操作。SQLAlc...
    99+
    2024-02-24
    Python SQLAlchemy 实战 秘籍 新手 专家
  • 操作系统文件系统恢复的终极秘籍:专家级指南
    文件系统恢复是一个至关重要的过程,它可以帮助您从操作系统故障、磁盘错误或文件损坏中恢复丢失的数据。本指南提供了适用于 Windows、macOS 和 Linux 的文件系统恢复的专家级方法,涵盖了从基本技巧到高级技术。 基本文件系统恢复...
    99+
    2024-03-04
    文件系统恢复 磁盘恢复 数据恢复 操作系统故障 磁盘错误 文件损坏
  • 专家观点:golang系统的适用场景及建议
    标题:专家观点:Golang系统的适用场景及建议 在当今高速发展的信息技术领域,选择合适的编程语言来开发系统对于软件开发者来说至关重要。Golang作为一种由Google开发的现代化编...
    99+
    2024-02-28
    系统 golang 适用 go语言 网络编程 容器化应用 标准库
  • 操作系统虚拟机 101:从初学者到专家
    操作系统虚拟机 (VM) 是一种软件,可模拟物理计算机并运行一个或多个操作系统作为独立实体。它允许在单个物理机器上同时运行多个操作系统,而无需专用硬件。 术语和概念: 主机操作系统:运行虚拟机的物理操作系统。 客户机操作系统:在虚拟机内...
    99+
    2024-04-02
  • 掌握操作系统文件操作:从新手到专家
    引言 掌握文件操作是了解操作系统核心功能的关键。无论是创建、读取、更新或删除文件,还是导航文件系统,本文都将深入浅出地指导您成为操作系统文件操作方面的专家。 创建和写入文件 在 Unix 或 Linux 系统中,您可以使用 touch 命...
    99+
    2024-02-29
    文件操作、操作系统、命令行、文件系统、Unix
  • 服务器操作系统标准化:行业专家访谈
    当谈到服务器管理时,标准化是一个经常被忽视但至关重要的方面。通过采用标准化的服务器操作系统,企业可以大幅提高效率、降低成本和加强安全性。为了进一步探讨这一主题,我们采访了行业专家约翰·史密斯,他分享了有关服务器操作系统标准化的见解和最佳实...
    99+
    2024-02-29
    服务器操作系统 标准化 效率 管理 代码
  • 操作系统文件系统缓存,从初学者到专家的进阶指南
    下面我们来详细介绍一下文件系统缓存的各个方面。 页面缓存 页面缓存是文件系统缓存中用于存储文件数据的部分。它是由一组固定大小的页面组成,每个页面大小通常为4KB。当文件被打开时,操作系统会将文件数据读入页面缓存,以便以后更快地访问。如果文...
    99+
    2024-02-27
    操作系统、文件系统、缓存、页面缓存、元数据缓存
  • Python实现绘制多角星实例
    目录一、引言二、方法三、实验结果与讨论1.三角形的绘制2.五角星的绘制3.多角星的绘制四、 结语本文转自微信公众号:算法与编程之美 一、引言 在具备一定的Python编程基础以后,...
    99+
    2024-04-02
  • python 实现选课系统
    角色:学校、学员、课程、讲师 >作业需求 - [ ] 1.创建北京、上海 2 所学校 - [ ] 2.创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开 - [ ] 3....
    99+
    2023-01-31
    系统 python
  • 家政服务预约系统设计与实现
        项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于web网页的家政服务预约系统,整个网站项目使用了B/S架构,基于java的springboot框架下开发;管理员通过后台录入信息、管理信息,设置网站信息,管理会员信息...
    99+
    2023-10-07
    java spring boot 开发语言
  • Java如何实现家政服务平台系统
    这期内容当中小编将会给大家带来有关Java如何实现家政服务平台系统,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、项目简述功能包括: 家政服务网站系统,用户注册,登录,分为家政人员,普 通用户,以及最高...
    99+
    2023-06-25
  • Python怎么实现星号菱形
    本篇内容介绍了“Python怎么实现星号菱形”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、本节案例:星号菱形菱形的组成思路:输出菱形的上...
    99+
    2023-06-20
  • 掌握网络操作系统的精髓:专家技巧和见解
    掌握TCP/IP协议栈各层的工作原理,包括以太网、IP、TCP和UDP协议。 了解常见的路由和交换协议,例如OSPF、BGP和VLAN。 彻底理解分布式系统的原理,包括分布式文件系统和分布式数据库。 2. Linux内核知识 深入了...
    99+
    2024-04-02
  • Python实现系统交互(subprocess)
    目录一、os与commands模块1. os.system()函数实例2. os.popen()函数实例3. commands.getstatusoutput()函数实例二、subprocess模块1. subpro...
    99+
    2022-06-02
    Python 系统交互
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作