# [Yolov3](https://pjreddie.com/media/files/papers/YOLOv3.pdf) YoloはYou Look Only Onceの略。一度しか画像見なくていいよと言っていて、単一モデルで検出できることを表しています。 Yolov3はSSDと同じくらいの精度で速度は3倍早いです。 著者はTwitterやGANを触っていたため、あまり研究が進んでいなかったそうで、本人曰く、v2からすごく進化しているわけではなく、小さな改善の積み重ねだそう(十分すごい進化に感じてしまうが。。) 下記はYolov3の性能グラフ  ## モデル構造 * 106層の畳み込み層(ダウンスケール->アップスケール) * 3つの異なるスケールで検出(82層、94層、106層)を行うことによって、細かい物体も検出できるようになった。 * 特徴的なスキップ構造。最初の方のfeaturemapから画像の細かい情報を取得できる。 例) 入力画像 416 x 416の場合: 検出器1(feature size):13 x 13 検出器2(feature size):26 x 26 検出器3(feature size):52 x 52 13x13が大きなオブジェクト検出を担当し、52x52が小さなオブジェクト検出を担当する。  ## 検出概要  Bはfeatureマップ上のセルが予測できるboundingboxの数:各検出器あたり3  ## AnchorBox Yolov3は各検出器のセルあたり3つのアンカーボックスを使用する。このAnchorboxは事前に生成する必要があります。 なので、予測する総BoundingBox数は ``` (13 x 13 + 26 x 26 + 52 x 52) * 3 ``` この検出結果から最もらしいBoundingBoxを取り出す方法として、Non-maximum Suppressionを利用しています。 ## 損失関数 ref:[Pytorch-Yolov2](https://github.com/eriklindernoren/PyTorch-YOLOv3) ```python # Loss : Mask outputs to ignore non-existing objects (except with conf. loss) loss_x = self.mse_loss(x[obj_mask], tx[obj_mask]) loss_y = self.mse_loss(y[obj_mask], ty[obj_mask]) loss_w = self.mse_loss(w[obj_mask], tw[obj_mask]) loss_h = self.mse_loss(h[obj_mask], th[obj_mask]) loss_conf_obj = self.bce_loss(pred_conf[obj_mask], tconf[obj_mask]) loss_conf_noobj = self.bce_loss(pred_conf[noobj_mask], tconf[noobj_mask]) loss_conf = self.obj_scale * loss_conf_obj + self.noobj_scale * loss_conf_noobj loss_cls = self.bce_loss(pred_cls[obj_mask], tcls[obj_mask]) total_loss = loss_x + loss_y + loss_w + loss_h + loss_conf + loss_cls ``` [link](https://github.com/eriklindernoren/PyTorch-YOLOv3/blob/47b7c912877ca69db35b8af3a38d6522681b3bb3/models.py#L191) ## Softmaxを使用しない(マルチラベル対応) Softmaxは各ラベルが排他である前提となっています。 つまりオブジェクトが1つのクラスに属している場合、そのオブジェクトは他のクラスに属することができない。 例えばクラスにPerson, Womanのような要素がある場合に対応できます。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.