メニュー

技術ブログ

Denso IT Lab.社員による技術情報の紹介

Denso IT Laboratory researcher's blog sites

数式

RSS

ページトップへ

BMVC2016出張報告

9月19日〜22日にイギリスのYorkで開催されたコンピュータビジョンの学会BMVC2016に,我々の研究(”Fast Eigen Matching”)の発表と調査のため参加してきました.

BMVCへの参加は初めてでしたが,コンパクトにまとまった会議でした.個人的に特に気になった発表を幾つか紹介したいと思います.
※私の前提知識不足で,理解が曖昧な点や,間違った理解を理解をしている点があると思います.間違い等ございましたらご指摘いただけますと幸いです.

BMVC
BMVCは,1985年に始まったコンピュータビジョン(CV)の学会です.
学会名にはBritishがついていますが,多くの論文がイギリス国外からのもので,日本からの発表も数件ありました.
オラール発表がシングルトラックなので(理解できるかは別として)一人で行っても全部聴講することができます.ポスターも全文で100件程度です.
Microsoft AcademicランキングではCV分野では4番目で,発表数が少ない割には影響力のある論文が多いように感じます.

今年の論文はSupplemental Materialを含めて公式HPより全部閲覧できます.
気になった発表の中から幾つかピックアップして紹介します.

私の説明では触り程度しか伝わらないとおもいます.各論文毎に1ページのExtended Abstractが公開されていますので,それを眺めるのもいいと思います.


[Tutorial] Towards Affordable Self-driving Cars
トロント大のRaquel Urtasunさんによる,自動運転関連の技術の関するチュートリアルで,特に彼女たちの研究グループの研究成果について説明していました.
Raquelさんのグループは,KITTIプロジェクトなど自動運転に関する研究を1つの柱としていて,CVPR,NIPSなどのトップカンファレンスに毎年たくさんの論文を通しています.

今回のチュートリアルでは,タイトルにAffordableとあるように,ベロダインなどを用いずにカメラなど既存の車載センシングデバイスに近い構成で自動運転を実現するための研究についての発表していました.

車載単眼カメラ画像のセマンティックセグメンテーション,OpenStreetMap(OSM)のリンクデータとVisual Oddmetoryを用いた自己位置推定,OSMを用いた車載カメラ画像へのラベル付技術などが紹介されていました.

OSMとVisual Oddmetoryを用いた自己位置推定では,数キロx数キロ四方の広範囲エリアからVisual Oddmetoryの情報をOSMのリンク情報とグラフを用いてマッチングすることで,効率的に現在位置の推定を行うアルゴリズムを提案していました.問題設定や原理がとても面白いと思いました.ここにビデオが公開されています.

Adding Synchronization and Rolling Shutter in Multi-Camera Bundle Adjustment
多くのコンスーマ向けカメラは,Rolling Shutterと呼ばれる画素ごとに輝度値がシーケンシャルに読み込まれる構成になっています.
つまり,画素の左上と右下では,時間的に異なるタイミングの輝度情報が得られることになります.
彼らは,マルチカメラのBundle Adjustmentにおいて,カメラ間のRolling Shutterの同期ずれもパラメータとして加えた定式化を提案しています.
GoProカメラを4つ用いた全周カメラを制作し,それを用いたSLAMの結果を紹介していました.発表ではLoop Clousure処理なしでもドリフトが少ない結果が得られることをアピールしていました.

Event Cameraを用いた研究
今回,Event Cameraを用いた発表が3件ありました.
EMVS: Event-based Multi-View Stereo, Real-Time Intensity-Image Reconstruction for Event Cameras Using Manifold Regularisation, Event-Based Hough Transform in a Spiking Neural Network for Multiple Line Detection and Tracking Using a Dynamic Vision Sensor
Event Cameraは,通常の全画素をフレーム毎に出力カメラとは異なり,Event(輝度値の変化)があった画素の情報のみ出力するカメラです.
具体的は,(x座標,y座標,タイムスタンプ,極性)をイベント情報として伝えます.極性は,輝度が閾値より減ったか増えたを示すバイナリ値です.
時間解像度は10マイクロ秒と非常に短く,輝度変化は線形でなくLogスケールで検出されるためダイナミックレンジが非常に広く暗い場所と明るい場所が混在する環境でもちゃんと輝度変化をとらえることができます.
いわゆるbio-inspired vision sensorsというもので,生物のVisionシステムに近い構成となっています.

上記の3つの発表はいずれもinilabsという会社のDVS128というカメラを用いていまいた.

EMVS: Event-based Multi-View Stereoでは,カメラモーションが既知の前提で,Event Cameraから得られるエッジ情報を3次元ボクセル上にVotingすることで対応点探索なしに,3次元復元を行うものです.数行で実装できるとてもシンプルなアルゴリズムですが,復元結果はけっこうキレイで面白いアイディアだと感じました.

Real-Time Intensity-Image Reconstruction for Event Cameras Using Manifold Regularisationは,スパースかつバイナリのEvent情報から,デンスで階調を持った輝度画像を復元する技術を提案しています.

Event-Based Hough Transform in a Spiking Neural Network for Multiple Line Detection and Tracking Using a Dynamic Vision Sensorは,Hought空間に射影したEvent情報からSpiking Neural Networkを用いて直線検出とトラッキングを行っていて,全処理をFPGA上で実装しているようです.

Global Deconvolutional Networks for Semantic Segmentation
Fully Convolutional Network(FCN)を用いたSemantic Segmentationの改良アルゴです.FCNではエンコードされた小さな画像$x$から,近傍のピクセルの補間(拡大)により最終的なSemanticSegmentationの結果を出力しています.本研究ではこの$x$の拡大処理を,$K_hxK^{\top}_w$のようにグローバルな相関を考慮した拡大パラメータを学習することで性能を向上しています.

Graph Based Convolutional Neural Network
グラフ信号処理の原理を用いたグラフ上で定義されるNeural Net(NN)です.グラフ上の畳み込みやプーリング,これらの演算に対する誤差の逆伝搬手法を提案しています.
mnistデータをirregularグリッドに変換したデータを用いて提案法の有用性を評価していました.

Improving Weakly-Supervised Object Localization By Micro-Annotation
画像全体へのラベル情報だけが付与されたデータセットを用いて,物体のセグメンテーションを行うWeakly-Supervised Object Localizationの性能向上に関する研究です.
例えば,ミツバチと花など同時に発生し易いオブジェクトの場合,Weakly-Supervisedデータからはそれらを分離する情報がないので,性能が悪くなってしまいます.
彼らは,物体認識の学習を行ったネットワークの中間層から得られるLocalization Socre mapが画面に表示されているラベルに対応する領域を示しているか/否かというMicro-Annotation情報を追加することで,Object Localizationの性能を向上する手法を提案しています.
Micro-Annotationは,バイナリのラベル付なので作業負荷が低く,少ない追加作業で性能を向上することができることをアピールしていました.

Learning Neural Network Architectures using Backpropagation
NNネットワーク構成(各層のWidhtとネットワークの深さ)自体をNNで学習しようという研究です.
重みパラメータの有効・無効を決めるバイナリ重みの導入によりWidhtを表現し,パラメータによっては線形変換を表現可能なNonlinearity(tsReLU)を導入することで深さを表現しています.
これらのパラメータを誤差逆伝搬により最適化することで,適切なネットワーク構成を計算します.

OnionNet: Sharing Features in Cascaded Deep Classifiers
複数のCNNをカスケード接続することで識別性能を向上した手法です.
個々のCNNは独立に学習するのではなく,パラメータを共有するようにすることでパラメータ数を削減しています.

Wide Residual Networks
今年のBMVCで一番話題になった論文かもしれません.
非常にDeepなResNetと比べて,実はWideでShallowなネットワークの方が性能が良いという結果を示した論文です.
通常ResNetでは,3×3の畳み込み層の前に1×1の次元圧縮を行う層を導入することで,多層にしたときのChannel数を抑制し,非常にDeepな構成を実現しています.
Wide Residual Networksでは,この次元圧縮を行わずに中間層のチャネルは比較的Wideにしてその代わりにネットワークの深さをModelateな深さにしています.そして,この構成の方が性能が良いという実験結果を示しています.
今年のImage Netコンペでもこれに類似した構成が高い性能を示しているようです.

A Deep Primal-Dual Network for Guided Depth Super-Resolution
低解像度デプスと高解像度RGB画像を入力として高解像度デプスを出力するCNNの後段に,CNNの出力である高解像度デプスをTotal Valiation(TV)正則化を用いてデノイジングするネットワーク(primal-dual network(PDN))が挿入された2つのネットワークからなる超解像ネットワークです.
後段のPDNによる最適化を適当なItereration回数分だけUnlollingすることで,最終的なエラーをCNNの層まで逆伝搬する手法を提案しています.
そのままでは,誤差逆伝搬を使ってCNNと同時に最適化できない層(PDN)を,Unrollingにより展開し,End-to-Endで誤差逆伝搬による最適化ができるようにしている点が非常に興味深いです.
Unlollingを用いた基本的なアイディアは2016 ECCVのATGV-Net(同著者による本研究の元論文)で解説されています.

Measuring the effect of nuisance variables on classifiers
多クラス識別を行うNNの外乱に対するロバスト性を評価する手法を提案した研究です.
入力データに対して$\theta$を事前分布とする変形$\tau$を行ったときに,条件付きConfidence $p(l(x)|\theta)$をサンプルリングにより計算し,これを用いて外乱$\tau$に対するロバスト性$\hat{\rho_{\tau}}$を評価します.
論文には様々な既存ネットワークの外乱(部分的なAffine変形)に対する影響を提案法で評価した結果が示されています.
この研究以外にも,DNNの性能評価に関する研究がいくつか発表されていました.


Yorkについて
Yorkはもともとバイキングの街だったようでその名残で,城壁や城の後があり,飲食店やお土産屋さんがある街の中心部も古いレンガ造りで中世の雰囲気です.
また駅の近くに国立鉄道博物館があり,新幹線(ひかり?)がありました.

このエントリーをはてなブックマークに追加

try! Swift 2017 ハッカソンで賞をもらいました

sonsonこと,Yuichi Yoshidaです.
学会も,言語系のカンファレンスも,ハッカソンも,WWDCも色々出没する自由人です.

先日,開催されたtry!Swift 2017 ハッカソンで3つも賞をいただきました.
48チーム中2位の賞と,スポンサー賞である,SanSan賞,Yahoo!賞をいただきました.

開発したのは,Swift Playgroundsで動作する,Jupyter notebookみたいな環境です.実装できた機能は,基本的な行列演算,plotとscatterでグラフを描画できるビューです.行列演算のバックエンドは,Accelerate.frameworkに内包されるBLAS, LAPACK, vvLibを使っているので,計算結果は,安心できると思います.多分.

https://github.com/sonsongithub/numsw

すべてのソースコードは,上記リポジトリに置いてあります.

ビルドした(コピーしてるだけですが)PlaygroundbookをiPadにAirDropで転送したりすると,Playgrounds.appでコーディングすることができます.上のスクリーンショットがPlaygrounds.appでbookを開いたところです.左ペインに計算コードを書いて実行すると,右ペインでplotやscatterの実行結果としてグラフがレンダリングされます.まだまだ生煮えのプロジェクトですが,開発は続けていこうと思っていますので,興味がある方は開発にご参加ください.

このエントリーをはてなブックマークに追加

Demitasse〜DNN高速化ライブラリを公開しました

どうも吉田悠一です.
弊社の近藤がNIPS2016のWorkshopで発表したDemitasseをオープンソースで公開します.

“Satoshi Kondo, “Demitasse: SPMD Programing Implementation of Deep Neural Network Library for Mobile Devices”, ML Systems Workshop NIPS 2016 PDF

https://github.com/DensoITLab/Demitasse

llvmとispcを使い,Deep Learningの計算を高速化します.
Demitasseによれば,iOSデバイス上でもGPUを使わずに数百msecの時間で,Caffe Model Zooによる画像認識を実行することができます.

ビルド方法は,githubのリポジトリのドキュメントに書いてあります.
また,Linuxで使いたい方は,dockerを使って,簡単に環境を構築できます.

簡単に処理性能を確認したいという方向けに、iOS限定ですが、デモアプリも公開しておりますので、お試しください。(アプリインストール後、アプリ内で事前学習済みデータのダウンロードを行う必要がありますが、データサイズが数百MBと大きいため、学習済みデータのダウンロードはWiFi環境などで行うことをお勧めいたします)

AppStore

このエントリーをはてなブックマークに追加