{"cells":[{"metadata":{"trusted":true},"cell_type":"code","source":"import os, sys, time\nimport cv2\nimport numpy as np\nimport pandas as pd\n\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\n%matplotlib inline\nimport matplotlib.pyplot as plt","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"import sys\nsys.path.insert(0, \"/kaggle/input/retinaface/RetinaFace_Dataset/\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from retinaface_faceextraction import RetinaFacesFaceExtractor\nfrom retinaface_loadmodel import RetinaFaceLoadModel\nfrom RetinaFace.retinaface import RetinaFace","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"RETINA_PATH = \"/kaggle/input/retinaface/RetinaFace_Dataset/\"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n\ntrained_model_path = RETINA_PATH+\"RetinaFace/weights/Final_Retinaface.pth\"\nmodel_best_path = RETINA_PATH+\"RetinaFace/model_best.pth.tar\"\n\nRM = RetinaFaceLoadModel()\n\ntorch.set_grad_enabled(False)\n\n#net and model\nnet = RetinaFace(model_best_path, phase=\"test\")\nnet = RM.load_model(net , trained_model_path, device)\nnet.eval()\nprint(\"Finished loading model!\")\nnet = net.to(device)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from read_video import VideoReader","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"frames_per_video = 16\n\nvideo_reader = VideoReader()\nvideo_read_fn = lambda x: video_reader.read_frames(x, num_frames=frames_per_video)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"vis_threshold = 0.9\ndim = (200, 200)\n\nrf = RetinaFacesFaceExtractor(video_read_fn, frames_per_video, net, vis_threshold,dim, device)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"%%time\nfaces_list, faces_landms_list = rf.process_video(\"/kaggle/input/deepfake-detection-challenge/test_videos/nymodlmxni.mp4\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for i in range(len(faces_list)):\n    plt.imshow(faces_list[i])\n    plt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"%%time\nfaces_list, faces_landms_list = rf.process_video(\"/kaggle/input/deepfake-detection-challenge/test_videos/pxjkzvqomp.mp4\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for i in range(len(faces_list)):\n    plt.imshow(faces_list[i])\n    plt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":1}