MTCNNの顔検出に非常に時間がかかる
** 困っていること **
顔検出のライブラリのMTCNNを使って、動画から顔のパーツの座標を特徴としてデータフレームを作っていたのですが、1時間50分で画像の197ファイルの検出しかできず、約120000ファイル(全データ)では1ヶ月半ぐらいかかりそうです。処理時間は2,3日以内を目処に考えています。
そこで時間を節約するために、以下に関して知識があれば、アドバイスをいただきたいです。
- 処理速度を高める手段の提案(計算リソースの追加など)
- MTCNNより、顔検出速度が早いライブラリ(約120000ファイルを1週間以内)
- マルチプロセスなどのコード上の工夫の余地
- その他の代案
** 現在使用しているGCPのVMスペック **
vCPU x 2、メモリ 13 GB
NVIDIA K80 GPUs x 2
** 該当コード**
python
1import cv2 as cv 2from tqdm.notebook import tqdm 3from collections import defaultdict 4import glob 5import pandas as pd 6from mtcnn.mtcnn import MTCNN 7 8filenames = glob.glob('video_folder/*.mp4') 9 10data_dict = defaultdict() 11for filename in tqdm(filenames): 12 fn = filename.split('/')[-1] 13 capture_image = cv.VideoCapture(filename) 14 if not capture_image.isOpened(): 15 print("Something Wrong!!") 16 break 17 ret, frame = capture_image.read() 18 detector = MTCNN() 19 result = detector.detect_faces(frame) 20# result is empty array when anything detect 21 data_dict[fn] = result[0] if len(result)!=0 else None 22 23df_data = pd.DataFrame.from_dict(data_dict) 24df_data = df_data.T 25display(df_data.head()) 26... 27
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/14 13:15