人物検出を行う際に、一番おすすめの方法は何でしょうか?
HOG特徴量を用いた人物検出やカスケード分類器作成しても人物検出できない写真が何枚かあります...
どのようにやっていけばいいのか分からなくて行き詰っています。
よろしければおすすめの参考サイトなども教えていただけると有り難いです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
HOG特徴量を用いた人物検出やカスケード分類器作成しても人物検出できない写真が何枚かあります...
HOG 特徴量ベースの検出器より精度がよい検出器を求めるのであれば、CNN ベースの検出器になります。
「CNN 物体検出」のキーワードでググるか、Qiita で調べると情報が出てきます。
ラベル「人」は大抵のデータセットに含まれているので、自分で学習しなくても学習済みモデルを持ってくるだけで検出できます。
Pytorch を使った検出の例
torchvision.models — PyTorch 1.6.0 documentation
前提知識がいろいろと必要のため、コードの詳細な説明は省略しますが、例えば、Pytorch を使うと以下のようにできます。
python
1import torch 2import torchvision 3from PIL import Image, ImageDraw 4from torchvision import models as models 5from torchvision import transforms as transforms 6 7device = torch.device("cuda" if torch.cuda.is_available() else "cpu") 8 9 10# モデルを作成する。 11model = models.detection.fasterrcnn_resnet50_fpn(pretrained=True).to(device) 12model.eval() 13 14# 画像を読み込む。 15img = Image.open("sample.jpg") 16img_tensor = transforms.functional.to_tensor(img).to(device) 17 18# 推論する。 19output = model([img_tensor])[0] 20 21# ラベル「人」かつスコアが 0.8 以上の矩形を取り出す。 22PERSON_ID = 1 23cond = (output["labels"] == PERSON_ID) & (output["scores"] >= 0.8) 24person_boxes = output["boxes"][cond].detach().cpu().numpy() 25 26 27draw = ImageDraw.Draw(img, mode="RGBA") 28 29for box in person_boxes: 30 print(box) 31 draw.rectangle(box, outline="red", width=3) 32 33img
投稿2020/08/02 15:35
編集2020/08/02 15:40総合スコア21956
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/03 12:50
2020/08/03 13:05 編集
2020/08/03 13:07
2020/08/04 02:18 編集
2020/08/04 08:51