PythonはAIフェイスチェンジ機能を実装しています

インターフェイスを使用する必要があります:

顔情報を取得するためのインターフェイス:https://api-cn.faceplusplus.com/facepp/v3/detect

顔の変更のためのインターフェースを実現します:https://api-cn.faceplusplus.com/imagepp/v1/mergeface

コードは3つのステップに分かれています

コード:

import requests
import json
import simplejson
import base64

# ステップ1:顔の要点を取得する
def find_face(imgpath):"""
 : param imgpath:写真の住所
 : return:辞書タイプの面の要点は次のとおりです。{'top':156,'left':108,'width':184,'height':184}"""
 http_url ='https://api-cn.faceplusplus.com/facepp/v3/detect' #顔情報を取得するためのインターフェース
 data ={"api_key":"x2NyKaa6vYuArYwat4x0-NpIbM9CrwGU",#URLにアクセスするために必要なパラメータ
 " api_secret":"OuHx-Xaey1QrORwdG7QetGG5JhOIC8g7",#URLにアクセスするために必要なパラメータ
 " image_url":imgpath, #地図の住所
 " return_landmark":1}

 files ={'image_file':open(imgpath,'rb')} #写真を保存する辞書のアドレスを定義する
 response = requests.post(http_url,data=data,files=files)
 res_con1 = response.content.decode('utf-8')
 res_json = simplejson.loads(res_con1)
 faces = res_json['faces']
 list = faces[0]
 rectangle = list['face_rectangle']return rectangle

# ステップ2:顔の変化を実現する
def merge_face(image_url1,image_url2,image_url,number):"""
 : param image_url1:変更された顔のイメージパス
 : param image_url2:顔の変化のための画像パス
 : param image_url:顔を変えた後、写真が保存されるパス
 : param number:顔の変化の類似性
 """
 # 最初に2つの写真の顔の要点を取得します
 face1 =find_face(image_url1)
 face2 =find_face(image_url2)
 # 顔を文字列形式に変換する
 rectangle1 =str(str(face1['top'])+","+str(face1['left'])+","+str(face1['width'])+","+str(face1['height']))
 rectangle2 =str(str(face2['top'])+","+str(face2['left'])+","+str(face2['width'])+","+str(face2['height']))
 # 2枚の写真を読む
 f1 =open(image_url1,'rb')
 f1_64 = base64.b64encode(f1.read())
 f1.close()
 f2 =open(image_url2,'rb')
 f2_64 = base64.b64encode(f2.read())
 f2.close()

 url_add ='https://api-cn.faceplusplus.com/imagepp/v1/mergeface' #顔を変えるインターフェースを実装する
 data={"api_key":"x2NyKaa6vYuArYwat4x0-NpIbM9CrwGU","api_secret":"OuHx-Xaey1QrORwdG7QetGG5JhOIC8g7","template_base64":f1_64,"template_rectangle":rectangle1,"merge_base64":f2_64,"merge_rectangle":rectangle2,"merge_rate":number
 }
 response1 = requests.post(url_add,data=data)
 res_con1 = response1.content.decode('utf-8')
 res_dict = json.JSONDecoder().decode(res_con1)
 result = res_dict['result']
 imgdata = base64.b64decode(result)
 file=open(image_url,'wb')
 file.write(imgdata)
 file.close()if __name__ =='__main__':
 image1 = r"meizi1.jpg"
 image2 = r"meizi.jpg"
 image3 = r"face1.jpg"merge_face(image1,image2,image3,100)

効果:

顔を変える前に

変化する顔:

顔を変えた後:

総括する

これまで、PythonでAIフェイスチェンジを実装するためのコードに関するこの記事を紹介しました。AIフェイスチェンジコンテンツのより関連性の高いPython実装については、ZaLou.Cnの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後もZaLouをサポートしていただければ幸いです。 .Cn!

Recommended Posts

PythonはAIフェイスチェンジ機能を実装しています
PythonがFTP機能を実装する方法
Pythonは画像スティッチング機能を実装しています
Pythonがメール機能を実装する方法
Pythonはftpファイル転送機能を実装しています
Pythonがタイマー機能を実装する方法
PythonはAI自動バージョンの貪欲なヘビを実装しています
Python enumerate()関数
Python関数バッファー
Pythonはtic-tac-toeゲームを実装しています
Pythonカスタム関数の基本
Pythonはtic-tac-toeゲームを実装しています
Pythonの結合関数
Python組み込み関数-compile()
Pythonはマンマシンゴバンを実装します
Python関数の基礎学習
PythonはTetrisゲームを実装しています
Pythonデータ分析-関数の適用
Pythonは画像スティッチングを実装しています
Pythonはminesweeperゲームを実装しています
Python3組み込み関数table.md
Pythonはスキャンツールを実装しています
Pythonプリントプリントタイマー機能
Pythonはしきい値回帰を実装します
Pythonは地雷除去ゲームを実装しています
Pythonは電子辞書を実装しています
Pythonは推測ゲームを実装しています
Pythonは関数メソッドを定義します
Pythonは単純なタンクバトルを実装します
Pythonの上位関数の使用法の概要!
Pythonはudpチャットウィンドウを実装します
PythonはWeChat飛行機ゲームを実装しています
Pythonはオンライン翻訳機能を実現します
Pythonは単語推測ゲームを実装しています
Pythonは駐車場管理システムを実現
Pythonはデジタル爆弾ゲームを実装しています
PythonはTCPファイル転送を実装します
Pythonnumpyはローリングケースを実装します
OpenCVPythonはパズルゲームを実装しています
Pythonは単純なtic-tac-toeゲームを実装しています
Pythonはパスワード強度検証を実装します
Pythonは車の管理システムを実装しています
Pythonはフェイスサインインシステムを実現します
Pythonトルネードアップロードファイル機能
Pythonはコードブロックフォールディングを実装します
Pythonはパノラマ画像スティッチングを実装しています
Pythonマジック関数eval()学習
PythonはSMTPメール送信を実装します
Pythonは多次元配列ソートを実装しています
Pythonは平均シフトクラスタリングアルゴリズムを実装しています
Pythonは検証コード認識を実装します
Pythonは勾配降下法を実装しています
Pythonはテキストバージョンのminesweeperを実装しています
Pythonの上位関数の使用法の概要!
Pythonは実店舗のゲームを実装しています