空飛ぶロボットのつくりかた

ロボットをつくるために必要な技術をまとめます。ロボットの未来についても考えたりします。

機械学習のお勉強(SVM,ニューラルネット、CNN、FCN,YOLO,SegNet etc ...)~参考まとめ~

keras2とchainerが使いやすそう

SVM

SVM、ニューラルネットなどに共通する分類問題における考え方 - HELLO CYBERNETICS

http://home.hiroshima-u.ac.jp/tkurita/lecture/svm.pdf

http://www.ism.ac.jp/~fukumizu/ISM_lecture_2006/svm-ism.pdf

NN

chainerでニューラルネットワーク構築 - Qiita

PFN発のディープラーニングフレームワークchainerで画像分類をするよ(chainerでニューラルネット1) - 人工言語処理入門

chainerでニューラルネットを学んでみるよ(chainerでニューラルネット2) - 人工言語処理入門

CNN

Convolutional Neural Networkを実装する - Qiita

AlexNet

【深層学習】畳み込みニューラルネットで画像分類 [DW 4日目] - Qiita

VGG

ディープラーニングの様々なモデルを使ってCIFAR-10画像データセットの分類を行う - Qiita

FCN

memo: Fully Convolutional Networks 〜 Chainerによる実装 〜

chainerに復帰したくてFCN実装した - MATHGRAM

GitHub - wkentaro/fcn: Chainer Implementation of Fully Convolutional Networks.

memo: Fully Convolutional Networks 〜 Chainerによる実装 再考1 〜

YOLO

ペンパイナッポーとアッポーペンを識別する(ChainerでYOLO ver2) - Qiita

GitHub - ashitani/YOLO_chainer: chainer implementation of YOLO

GitHub - leetenki/YOLOtiny_v2_chainer: YOLOtiny v2をchainerに移植したもの

GitHub - leetenki/YOLOv2: YOLOv2のchainerの再現実装です(darknetのchainerローダと、完全なchainer上での訓練コードを含みます)

SegNet

GitHub - pfnet-research/chainer-segnet: SegNet implementation & experiments in Chainer

SegNetのモデルは簡単だがエラーが出て動かず - mabonki0725の日記

[Survey]Learning to Segment Object Candidates - Qiita

keras-segnet/model.png at master · imlab-uiip/keras-segnet · GitHub

segnet/segnet.py at master · preddy5/segnet · GitHub

GitHub - 0bserver07/Keras-SegNet-Basic: SegNet-Basic with Keras

GitHub - legokichi/keras-segnet

3D-CNN

VoxcelChain 3次元畳み込みニューラルネットワークを使ったディープラーニング (深層学習)|Chainerによる3次元形状の認識 ~ BRILLIANTSERVICE TECHNICAL BLOG

chainer sample

Chainerのサンプルコードを集めてみた(メモ) - あおのたすのブログ

Fine-tuning

リバストのブログ Deep Learningの概要

Chainerでfine-tuningを行う - Qiita

Chainerでファインチューニングするときの個人的ベストプラクティス - Qiita

【機械学習】ChainerでGoogLeNetから画像をファインチューニングでお手軽学習【わずか22行で】:電脳ヒッチハイクガイド:電脳空間カウボーイズZZ(電脳空間カウボーイズ) - ニコニコチャンネル:生活

VGG16のFine-tuningによる犬猫認識 (1) - 人工知能に関する断創録

インデックスカラー

The PASCAL Visual Object Classes Challenge 2012 (VOC2012)

PASCALのセグメンテーションデータはインデックスカラー(.png)で作られている。

なので、以下のように呼びだせば、例えば人ならば15という値で取り出すことができる。

f:id:robonchu:20170618120932p:plain

import numpy as np
from PIL import Image
import csv

path = '2007_000129.png'
img = Image.open(path)
 
img_array = np.asarray(img, dtype=np.int32)
mask = img_array == 255
img_array[mask] = -1

with open('file.csv', 'wt') as f:
    writer = csv.writer(f)
    writer.writerows(img_array)

左上の配列はこのようになっている。-1はchainerではクラスから無視されるため境界の白色は-1に変換している。

f:id:robonchu:20170618121047p:plain

ImageMagick で PNG の形式を変換 - awm-Tech

インデックスカラー - Wikipedia

「画像変換101」#2: ダイレクトカラー画像とインデックスカラー画像 | OPTPiX Labs Blog

chainerに復帰したくてFCN実装した - MATHGRAM

画像のセグメンテーション

K-Means クラスタリングを使った色ベースのセグメンテーション - MATLAB & Simulink Example - MathWorks 日本

kmeans を使った画像のセグメンテーション - Qiita

参考:

【機械学習】ディープラーニング フレームワークChainerを試しながら解説してみる。 - Qiita

機械学習によるデータ分析まわりのお話

http://www.vision.cs.chubu.ac.jp/flabresearcharchive/bachelor/B13/Paper/fukui.pdf

https://www.morikita.co.jp/data/mkj/084921mkj.pdf

サルでもわかるディープラーニング入門 (2017年) (In Japanese)

Chainerによる畳み込みニューラルネットワークの実装 - 人工知能に関する断創録

chainerの畳み込みニューラルネットワークで10種類の画像を識別(CIFAR-10) - AI-Programming

chainer初心者が畳み込みニューラルネット試してみた - 技術系メモ

http://static.googleusercontent.com/media/research.google.com/ja//pubs/archive/42237.pdf

【初めて使う人向け】Chainerでニューラルネットを学習する手順を整理してみた | 自調自考の旅

Chainer 1.11.0 で畳み込みニューラルネットワークを試してみる - Gunosyデータ分析ブログ

Convolutional Neural Networkを実装する - Qiita

Chainerによる畳み込みニューラルネットワークの実装 - 人工知能に関する断創録

numpyだけでCNN実装 - Qiita

chainerのサンプルコードを集めてみた(チュートリアルも追加) - studylog/北の雲

CNNの学習に最高の性能を示す最適化手法はどれか - 俺とプログラミング

Chainerを使って畳み込みを実装する | JProgramer

怪我をしても歩ける6足歩行ロボットの学習 | Preferred Research

深層強化学習ライブラリChainerRL | Preferred Research

Convolutional Neural Networkとは何なのか - Qiita

定番のConvolutional Neural Networkをゼロから理解する - DeepAge

http://www.nlab.ci.i.u-tokyo.ac.jp/pdf/20150717SP.pdf

http://www.nlab.ci.i.u-tokyo.ac.jp/pdf/CNN_survey.pdf

【深層学習】畳み込みニューラルネットで画像分類 [DW 4日目] - Qiita

Chainerのサンプルコードを集めてみた(メモ) - あおのたすのブログ