GitHub动漫人脸检测项目lbpcascade animeface

管理员 2019/12/26 22:49:09

GitHub开源项目https://github.com/nagadomi/lbpcascade_animeface动漫人脸检测此项目对日系动漫人脸检测效果很好,非日系漫画如cartoonset10k数据集几乎无效环境需求我使用python3.6opencv2 4.1.2使用说明mkdir facedetectcd facedetectwget https://raw.githubusercont…


GitHub开源项目

https://github.com/nagadomi/lbpcascade_animeface

动漫人脸检测

此项目对日系动漫人脸检测效果很好,非日系漫画如cartoonset10k数据集几乎无效

环境需求

我使用
python3.6
opencv2 4.1.2

使用说明

mkdir facedetectcd facedetectwget https://raw.githubusercontent.com/nagadomi/lbpcascade_animeface/master/lbpcascade_animeface.xml
vim animeface.py123

然后在animeface.py中加入代码

import cv2import sysimport os.pathdef detect(filepath, files,outputpath,cascade_file = "lbpcascade_animeface.xml"):    if not os.path.isfile(cascade_file):        raise RuntimeError("%s: not found" % cascade_file)
    cascade = cv2.CascadeClassifier(cascade_file)    
    image = cv2.imread(filepath, cv2.IMREAD_COLOR)    
    print('Processing: ',files)    
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)    
    gray = cv2.equalizeHist(gray)        
    faces = cascade.detectMultiScale(gray,                                     
    # detector options                                     
    scaleFactor = 1.1,                                     
    minNeighbors = 5,                                     
    minSize = (24, 24))
    count=0    for (x, y, w, h) in faces:
        count+=1    
        cv2.imwrite("{}/{}_{}.png".format(outputpath,files,count), image[x:x+w,y:y+h]) 
        if len(sys.argv) != 3:
    sys.stderr.write("usage: animeface.py PATH/TO/DATASET/FOLDER PATH/TO/OUTPUT/FOLDER\n")    
    sys.exit(-1)
    count=0total=0not_image=[]fail=[]if os.path.exists(sys.argv[2]):    print('WARNING: folder {} exist'.format(sys.argv[2]))else:
    os.makedirs(sys.argv[2])    for files in os.listdir('{}'.format(sys.argv[1])):    if files[-3:]=='png' or files[-3:]=='jpg':    
  	total+=1 
        try:            
            detect('{}/{}'.format(sys.argv[1],files),files,sys.argv[2])            
        except:            
            count+=1            
            print('Failed to process, {} failed processing existed'.format(count))            
            fail.append(files)    else :
        not_image.append(files)        print('Failed to load {}'.format(files))            print('The files which are not images :\n',not_image)            print('The files failed to be processed are:\n',fail)print('{} images detected, {} images processed, {} images failed to be processed'.format(total,total-count,count))1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950

保存退出
然后

python animeface.py PATH/TO/DATASET/FOLDER PATH/TO/OUTPUT/FOLDER

就好啦

欢迎指正

随时随地学软件编程-关注百度小程序和微信小程序
关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[GitHub动漫人脸检测项目lbpcascade animeface]http://www.zyiz.net/tech/detail-97608.html

上一篇:Python列表、元组、字典、集合的比较总结

下一篇:数据分析 第五篇:离群点检测

赞(0)

共有 条评论 网友评论

验证码: 看不清楚?
    关注微信小程序
    程序员编程王-随时随地学编程

    扫描二维码或查找【程序员编程王】

    可以随时随地学编程啦!

    技术文章导航 更多>
    扫一扫关注最新编程教程