CV

論文メモ: An intriguing failing of convolutional neural networks and the CoordConv solution

畳み込みニューラルネットワークが持つ座標変換の問題に着目してCoordConvを提案したAn intriguing failing of convolutional neural networks and the CoordConv solution (NeurIPS'18, arXiv) について紹介します。 @incollection{NIPS2018_8169, title = …

論文メモ: LUVLi Face Alignment: Estimating Landmarks’ Location, Uncertainty, and Visibility Likelihood

先週に引き続き顔ランドマーク推定に関わる論文として、CVPR2020で提案された LUVLi Face Alignment: Estimating Landmarks’ Location, Uncertainty, and Visibility Likelihood (arXiv) を紹介します。 LUVLi Face Alignment: Estimating Landmarks’ Locati…

論文メモ: Adaptive Wing Loss for Robust Face Alignment via Heatmap Regression

今回は顔ランドマーク推定に関係する論文を取り上げます。 Adaptive Wing Loss for Robust Face Alignment via Heatmap Regression ヒートマップ回帰 損失関数にMSEを用いた場合の問題点 提案 Adaptive Wing Loss Weighted loss mapで前景画素を強調 実験 考…

複数の画像を組み合わせるオーグメンテーション (mixup, CutMix)

CV

複数の画像を組み合わせたオーグメンテーションであるmixupとCutMixについてまとめます。 mixup CutMix mixup 2枚の画像をラベルともどもブレンドするのがmixup1です。次に紹介するCutMixの論文の図がわかりやすいです。 [2] Table 1 抜粋 入力 と を重みλで…

画像の一部をマスクするオーグメンテーションのまとめ (Random Erasing, Cutout, Hide-and-Seek, GridMask)

CV

画像の一部をマスクすることでオーグメンテーションする手法について代表的なものをまとめました。 そもそも: なぜ画像の一部をマスクするのか? Random erasing Cutout Hide-and-Seek GridMask まとめ そもそも: なぜ画像の一部をマスクするのか? オーグメ…

物体検出で重なったバウンディングボックスを除去・集約するアルゴリズムのまとめ (NMS, Soft-NMS, NMW, WBF)

物体検出の分野では、検出した物体をバウンディングボックス (BBox) で囲んで、それぞれに信頼度 (スコア) を算出します。 このとき重複したBBoxを除去あるいは集約するアルゴリズムにはバリエーションがあります。物体検出モデルの後処理やコンペなどでよく…

論文メモ: High-Resolution Representations for Labeling Pixels and Regions

姿勢推定の分野でブレイクスルーとなったHRNetを、顔ランドマーク推定タスクなどに適用した High-Resolution Representations for Labeling Pixels and Regions (arXiv) についてのメモです。 @misc{sun2019highresolution, title={High-Resolution Represen…

論文メモ: Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks

今回はCVPR'18で提案されたWing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks1 (arXiv) という論文を紹介します。 ポイント 顔ランドマーク検出の損失関数として新たにWing Lossを定義 正面向き以外の画像をオーバサン…

顔ランドマークデータセットまとめ (AFLW, LFPW, COFW, 300-W, WFLW)

仕事で顔ランドマーク推定について調査・検証などを行い始めているのですが、各手法の学習・評価で使われているデータセットについてかなり混乱しました。 元々は何を目的として (= 評価したくて) 作られたデータセットなのか? ランドマークの点数や位置、…

論文メモ: Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

物体検出の分野でブレイクスルーとなったFaster R-CNNの提案論文 Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks (arXiv) についての備忘録として整理します。 ポイント 先発のFast R-CNNで時間を要していた物体領域候補…

論文メモ: MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

今回は軽量・高速なCNNの紹介です。 最新のいかついモデルを、GPUフル回転で学習し、目標の精度を達成したとしても、いざ実際にシステムに組み込む段階になると推論の遅さが足かせになって導入できない、というケースはしばしばあるのかなと思います。そうい…

OpenCV: ラベリング

今回はOpenCVを使って画像のラベリングを行います。いらすとやさんの画像を使わせていただきました。 ラベリングは画像を連続する領域ごとにラベルを付けることです。上の画像であれば、左の棒人形と右の棒人形が分離しているので、別々のラベルになります。…

OpenCV: 2値化

前回・前々回と引き続き、OpenCVを触っていきます。 2値化 画像はチャネル (グレー画像であれば1チャネル, RGB画像であれば3チャネル) ごとに階調を持っており、一般的に256階調になります。 これを2階調、つまり白・黒に変換する処理のことを2値化と言いま…

OpenCV: Optical Flowで物体の動きをトラックする

先週に引き続き、OpenCVを使っていきます。 Optical Flow Optical Flowを使って、物体の動きを検出していきます。OpenCVのチュートリアルと↓の記事を参考にしました。 OpenCVでとらえる画像の躍動、Optical Flow - Qiita OpenCVでオプティカルフローをリアル…

OpenCV: 特徴点抽出とマッチング

お仕事で初めて画像処理システムの開発に携わってます。 基本的なツールとしてOpenCVについて知っておいた方が良さそうですので、自分用のメモとしてトピックごとに整理していこうと思います。 OpenCV 言わずと知れたコンピュータビジョンのOSSライブラリで…

ResNetでCIFAR-10を分類する

KerasでResNetを作ってCIFAR-10を分類し、通常のCNNモデルと比較します。 ResNet ResNetはCNNのモデルの1つです。 Microsoft ResearchのKaiming Heらが2015年に提案1し、その年のILSVRCではResNetで学習したモデルが優勝しました。 VGGやGoogLeNetにて、畳み…

学習してないランダムなCNNでも特徴抽出の役に立つ

先月からディープラーニングを教えてくれる講座を受講しています。 今週からCNNに入ったのですが、先生が「CNNは特徴抽出器としてかなり優秀で、学習していないランダムなCNNでも高い精度が出せる」と教えてくれました。 「え、そうなの!?」とびっくりしま…

KerasでDCGANを作ってKMNISTのくずし字を生成する

KMNISTのくずし字をDCGANで生成する、というモデルをKerasで作ります。 DCGAN DCGAN (Deep Convolutional GAN) はGAN (Generative Adversarial Network) の生成モデルの一種で、画像を生成するものです (提案論文) 。 GANは2つのモデルを学習によって獲得し…

Keras: Fashion-MNISTを使ってCNNを可視化する

Fahion-MNISTのデータを使って学習したニューラルネットワークの畳み込み層を可視化します。 Fashion-MNIST Fashion-MNISTは衣料品の画像を10クラス (Coat, Shirtなど) に分類するデータセットです。MNISTと同じく、学習サンプル数60,000・テストサンプル数1…

Keras: ImageNetで学習済みのVGG16をPlaces365へ転移学習する

Kerasを使って、ImageNetで学習済みモデル (VGG16) をPlaces365の分類タスクへ転移学習する、ということに取り組みます。 今回使用するパッケージたちです。 import numpy as np import pandas as pd import os import shutil from keras.applications.vgg16…

KerasでLeNet-5を実装してKuzushiji-MNISTを分類する

仕事でそろそろコンピュータビジョン系の力が必要になるかも、となってきましたので、チクタク勉強を始めてます。 今回はKerasを使ってKuzushiji-MNISTの文字を分類するネットワークをLeNet-5で実装する、ということに取り組みます。 Kuzushiji-MNIST 日本の…