資源簡介
在本工程中我們開源了活體模型訓練架構,數據預處理方法,模型訓練和測試腳本以及開源的APK供大家測試使用。 活體檢測技術主要是判別機器前出現的人臉是真實還是偽造的,其中借助其他媒介呈現的人臉都可以定義為虛假的人臉,包括打印的紙質照片、電子產品的顯示屏幕、硅膠面具、立體的3D人像等。目前主流的活體解決方案分為配合式活體檢測和非配合式活體檢測(靜默活體檢測)。配合式活體檢測需要用戶根據提示完成指定的動作,然后再進行活體校驗,靜默活體則在用戶無感的情況下直接進行活體校驗。
因傅里葉頻譜圖一定程度上能夠反應真假臉在頻域的差異,因此我們采用了一種基于傅里葉頻譜圖輔助監督的靜默活體檢測方法, 模型架構由分類主分支和傅里葉頻譜圖輔助監督分支構成
代碼片段和文件信息
#?-*-?coding:?utf-8?-*-
#?@Time?:?20-6-9?下午3:06
#?@Author?:?zhuying
#?@Company?:?Minivision
#?@File?:?test.py
#?@Software?:?PyCharm
import?os
import?cv2
import?numpy?as?np
import?argparse
import?warnings
import?time
from?src.anti_spoof_predict?import?AntiSpoofPredict
from?src.generate_patches?import?CropImage
from?src.utility?import?parse_model_name
warnings.filterwarnings(‘ignore‘)
SAMPLE_IMAGE_PATH?=?“./images/sample/“
#?因為安卓端APK獲取的視頻流寬高比為3:4為了與之一致,所以將寬高比限制為3:4
def?check_image(image):
????height?width?channel?=?image.shape
????if?width/height?!=?3/4:
????????print(“Image?is?not?appropriate!!!\nHeight/Width?should?be?4/3.“)
????????return?False
????else:
????????return?True
def?test(image_name?model_dir?device_id):
????model_test?=?AntiSpoofPredict(device_id)
????image_cropper?=?CropImage()
????image?=?cv2.imread(SAMPLE_IMAGE_PATH?+?image_name)
????result?=?check_image(image)
????if?result?is?False:
????????return
????image_bbox?=?model_test.get_bbox(image)
????prediction?=?np.zeros((1?3))
????test_speed?=?0
????#?sum?the?prediction?from?single?model‘s?result
????for?model_name?in?os.listdir(model_dir):
????????h_input?w_input?model_type?scale?=?parse_model_name(model_name)
????????param?=?{
????????????“org_img“:?image
????????????“bbox“:?image_bbox
????????????“scale“:?scale
????????????“out_w“:?w_input
????????????“out_h“:?h_input
????????????“crop“:?True
????????}
????????if?scale?is?None:
????????????param[“crop“]?=?False
????????img?=?image_cropper.crop(**param)
????????start?=?time.time()
????????prediction?+=?model_test.predict(img?os.path.join(model_dir?model_name))
????????test_speed?+=?time.time()-start
????#?draw?result?of?prediction
????label?=?np.argmax(prediction)
????value?=?prediction[0][label]/2
????if?label?==?1:
????????print(“Image?‘{}‘?is?Real?Face.?Score:?{:.2f}.“.format(image_name?value))
????????result_text?=?“RealFace?Score:?{:.2f}“.format(value)
????????color?=?(255?0?0)
????else:
????????print(“Image?‘{}‘?is?Fake?Face.?Score:?{:.2f}.“.format(image_name?value))
????????result_text?=?“FakeFace?Score:?{:.2f}“.format(value)
????????color?=?(0?0?255)
????print(“Prediction?cost?{:.2f}?s“.format(test_speed))
????cv2.rectangle(
????????image
????????(image_bbox[0]?image_bbox[1])
????????(image_bbox[0]?+?image_bbox[2]?image_bbox[1]?+?image_bbox[3])
????????color?2)
????cv2.putText(
????????image
????????result_text
????????(image_bbox[0]?image_bbox[1]?-?5)
????????cv2.FONT_HERSHEY_COMPLEX?0.5*image.shape[0]/1024?color)
????format_?=?os.path.splitext(image_name)[-1]
????result_image_name?=?image_name.replace(format_?“_result“?+?format_)
????cv2.imwrite(SAMPLE_IMAGE_PATH?+?result_image_name?image)
if?__name__?==?“__main__“:
????desc?=?“test“
????parser?=?argparse.ArgumentParser(description=desc)
????parser.add_argument(
????????“--device_id“
????????type=int
????????default=0
????????help=“which?gpu?id?[0/1/2/3]“)
????parser.add_argument(
????????“--model_dir“
????????type=st
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\
?????文件???????????5??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\.gitignore
?????文件???????11340??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\LICENSE
?????文件????????5997??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\README.md
?????文件????????6642??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\README_EN.md
?????目錄???????????0??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\datasets\
?????文件?????????370??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\datasets\README.md
?????目錄???????????0??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\images\
?????文件?????1440225??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\images\demo.gif
?????文件???????35893??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\images\fr
?????文件??????131303??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\images\logo.jpg
?????文件???????49391??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\images\patch_demo.png
?????目錄???????????0??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\images\sample\
?????文件???????64962??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\images\sample\image_F1.jpg
?????文件???????66169??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\images\sample\image_F1_result.jpg
?????文件???????86332??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\images\sample\image_F2.jpg
?????文件???????87519??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\images\sample\image_F2_result.jpg
?????文件???????74168??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\images\sample\image_T1.jpg
?????文件???????75109??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\images\sample\image_T1_result.jpg
?????文件???????40753??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\images\設置閾值.png
?????文件???????26471??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\images\靜默活體APK.jpeg
?????文件?????????129??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\requirements.txt
?????目錄???????????0??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\resources\
?????目錄???????????0??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\resources\anti_spoof_models\
?????文件?????1849453??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\resources\anti_spoof_models\2.7_80x80_MiniFASNetV2.pth
?????文件?????1856130??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\resources\anti_spoof_models\4_0_0_80x80_MiniFASNetV1SE.pth
?????目錄???????????0??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\resources\detection_model\
?????文件?????1866013??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\resources\detection_model\Widerface-RetinaFace.caffemodel
?????文件???????40787??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\resources\detection_model\deploy.prototxt
?????目錄???????????0??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\saved_logs\
?????目錄???????????0??2020-08-05?05:53??Silent-Face-Anti-Spoofing-master\saved_logs\jobs\
............此處省略19個文件信息
- 上一篇:網易云課堂視頻(python腳本)
- 下一篇:Python爬蟲數據分析可視化
評論
共有 條評論