Giter Club home page Giter Club logo

ml-study's Introduction

機械学習の勉強に使ったコードを置くリポジトリ。
主にPython3で実装される。

画像分類

image_classification/下のコード

inception_v4.py

Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning (arXiv:1602.07261)で提案されたInception-v4のchainer実装。InceptionV4クラスを使用する。

学習データ量や使えるマシンリソースに応じてネットワークサイズを縮小できるよう、フィルタ数と層の数を初期化時にパラメータで指定できるように実装した。デフォルト設定で論文と同じ値になる。入力画像サイズは3x299x299で固定。

パラメータ名 意味 デフォルト値
dim_out 出力値の次元数(クラス数) 1000
base_filter_num convolutionのフィルタ数の多さ 32
ablocks 論文Figure 9のInception-Aの繰り返し数 4
bblocks 論文Figure 9のInception-Bの繰り返し数 7
cblocks 論文Figure 9のInception-Cの繰り返し数 3
dropout 全結合層手前で行うdropoutの割合。keep=1-dropout 0.2

inception_resnet_v2.py

(arXiv:1602.07261)で提案されたInception-ResNet-v2のchainer実装。InceptionResNetV2を使用する。 batch normalizationを行う位置を論文から正確に理解できず、想像で実装した部分がある。また、Inception-ResNet-v2で使用されたReduction-Bの構造について論文に明記されていないが、channel数からInception-ResNet-v1("wider"ではない方)と同じであると推察して実装した。
オリジナルの実装を再現できていない可能性が高い。

学習データ量や使えるマシンリソースに応じてネットワークサイズを縮小できるよう、フィルタ数と層の数を初期化時にパラメータで指定できるように実装した。デフォルト設定で論文と同じ値になる。入力画像サイズは3x299x299で固定。

パラメータ名 意味 デフォルト値
dim_out 出力値の次元数(クラス数) 1000
base_filter_num convolutionのフィルタ数の多さ 32
ablocks 論文Figure 15のInception-resnet-Aの繰り返し数 5
bblocks 論文Figure 15のInception-resnet-Bの繰り返し数 10
cblocks 論文Figure 15のInception-resnet-Cの繰り返し数 5
dropout 全結合層手前で行うdropoutの割合。keep=1-dropout 0.2
scaling Figure 20のscalingの定数 0.1

層を浅くする時はscalingの値を1に近づけるよう調整したほうが良さそうな気がする

上記CNNの性能検証レポート

オブジェクト検出

object_detection/ 以下のコード。YOLOを参考に、CNNのネットワークを差し替えて高速化を目指している。

現時点で成功しているのは、CNN部をMobileNetのフィルタ削減版に置き換えたモデル。
デモ動画を含めたプレゼンテーション資料

  • 顔の検出
    • Raspberry Pi 3 Model B + USB Webカメラ の環境で、6.5FPSで顔の検出を行える。詳しくはこちらを参照。
  • 乗り物・動物・人間の3物体の検出
    • Raspberry Pi 3 Model B + USB Webカメラ の環境で、4.4FPSで顔の検出を行える。

License

本リポジトリ内のコードとドキュメントについて、著作権と責任を完全に放棄します。

ml-study's People

Contributors

nknytk avatar

Watchers

karaage avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.