研究室「2018年4月卒論配属」サポートページ
このページは、2018年4月に卒論配属された学生の研究活動を円滑に進めるためのサポート資料集である。各自の研究テーマや進捗に合わせて、関連する資料を参照し、計画的に研究を進めること。不明な点や困難に直面した場合は、自身で調査・試行錯誤することに加え、早めに指導教員や研究室の先輩に相談することが推奨される。
開発環境の構築
研究活動に必要な開発環境の構築手順をまとめている。
Windows開発環境
Visual Studio と Windows SDK
パソコン実習資料(金子研): Windows 10 で Visual Studio Community 2017 C++ と Windows Standalone SDK for Windows 10 のインストール
cmake
パソコン実習資料(金子研): Windows で cmake のインストール
MSYS2 と GNU ツールチェーン
MSYS2 と GNU ツールチェーン類 (gcc, g++, gfortran, findutils, openssh, make, gdb, boost 等) のインストール
Python環境の構築
パソコン実習資料: Windows で、Anaconda をインストールし、Python の仮想環境 + Keras + TensorFlow + OpenCV + spyder + Dlib 環境を作る(Chocolatey を利用)
人工知能のソフトウェア dlib, Keras, TensorFlow のインストールなど。
- 「Windows で、Python の仮想環境 + Keras + TensorFlow + OpenCV + spyder + Dlib 環境を作る(Anaconda を利用)」
GPU環境の構築
NVIDIA CUDA ツールキット
資料(金子研): Windows で NVIDIA CUDA ツールキットのインストール
NVIDIA cuDNN
資料(金子研): Windows で NVIDIA cuDNN のインストール
pycuda
資料(金子研): Windows で pycuda のインストール
Dlib のインストールとビルド
パソコン実習資料(金子研): Windows で Dlib 19.13 のビルドとインストール
dlib の付属ツールのビルド作業、および dlib を NVIDIA cuDNN 対応にする作業についても上記資料を参照すること。
Docker Compose
Docker Compose は Docker コンテナを簡単に扱えるようにするソフトウェアである。
テキストエディタ
Windows で Visual Studio Code のインストール
TensorFlow のインストール
パソコン実習資料(金子研): Windows で、データベース、人工知能、ビジュアライゼーション関係の種々のソフトウェアをインストール(Chocolatey を利用)
スマホカメラを用いた実習環境
パソコン実習資料: https://www.kkaneko.jp/tools/win/tools.html
プログラミング基礎
Python入門(Google Colaboratory)
Python と Google Colaboratory: Python 入門(全14回、Python Tutor と CodeCombat を使用): 別ページ »で説明してある。
Python入門(データマネジメント)
Python プログラムの実行、Python でのデータマネジメント: [PDF], [パワーポイント]
Linux演習
Linux で、Keras, TensorFlow, Dlib, その他画像処理環境を整える手順である。
パソコン実習資料(金子研): Raspberry Pi で Keras, TensorFlow, Dlib, その他画像処理環境を整える
Windows上でLinuxシステムを動かす
「エミュレータ」、「Linux の起動」、「Linuxシステムへのログイン」を学ぶ。Linux としては Raspbian を使用する。
JSON
プログラミング演習
画像処理・動画処理
OpenCVによるビデオ処理
※ その後、「OpenCV で顔検出(OpenCV、Python を使用)」と組み合わせて動くように書き換えること。
※ 表情判定については、次の資料を参考にすること。カメラに映った顔の表情のリアルタイム判定についての実習も記述してある。
ezgiakcora/Facial-Expression-Keras のインストールと動作確認(表情推定)(Dlib、Python を使用)(Windows 上)
OpenCVによる画像処理
Python + OpenCV 4 で前景分離、ステレオマッチング、点や線の描画
セグメンテーション
keras-deeplab-v3-plus によるセグメンテーション
顔認識・人物検出
顔検出
Dlibによる顔検出
資料(金子研): Dlib を使ってみる
パソコン実習資料(金子研): Dlib による顔検出を行う Python プログラム(Dlib, Python を使用)(Windows 上)
MTCNNによる顔検出
パソコン実習資料: ipazc/MTCNN のインストールと動作確認(顔検出)(Python を使用)(Windows 上) を最初から行うこと。
顔のランドマーク検出
アラインメント・顔データの拡張・ランドマーク
資料(金子研): Dlib による顔のアラインメント、顔データの増量、顔のランドマーク、顔のコード化(Dlib、Python を使用)(Windows 上)
顔識別・顔認証
顔検出、顔識別の機能(Python の ageitgey/face_recognition パッケージ)を使ってみる
ディープラーニングによる顔識別 (Keras, DeepFace, VGG16 + Siamese を用いるものである)
表情推定
頭部姿勢推定
- 頭部の姿勢推定を行う
- mpatacchiola/DeepGaze のインストールと動作確認(頭部の姿勢推定)(Python 3.7, TensorFlow 1.15.5 を使用)(Windows 上)
瞳孔検出
肌色領域の検出(DeepGaze / SkinDetector)
USBカメラでの動作、動画ファイル(sample1.mp4)での動作についても上記資料を参照すること。
顔画像に関する実習
imglabの使用
資料(金子研): Windows で Dlib 19.13 同封の imglab を使ってみる
機械学習・ディープラーニング
人工知能(AI)の基礎
人工知能(AI)が注目される理由・背景知識 [PDFファイル]を作成したので、一読されたい。
人工知能プログラム開発用のツール DeepForge を使って、いくつかの人工知能(AI)を動作させる。
説明資料: DeepForge を使ってみる
TensorFlowとKeras
ディープラーニング用語辞書の中の「モデルのコンパイル」、「Iris データセット」。
Keras2 のインストール、動作確認。Keras2に付属の MNIST データセット。
説明資料
DeepForge
DeepForge のインストール、インポート、エディタ画面
教師あり学習とニューラルネットワーク
TensorFlowで可能なこと
限定的な情報(スケッチ、赤緑青の塗り絵)から、実景に近い画像(猫、建物など)を合成すること、あるいは、種類を判別することなどである。
画像識別(VGG16)
パソコン実習資料: VGG16 を用いた画像識別(画像から、オブジェクトの種類を求めるものである)
物体認識(COCOデータセット)
パソコン実習資料: マイクロソフトCOCO のデータとモデルを使ってみる
物体認識
時系列予測(LSTM)
パソコン実習資料: ディープラーニング LSTM 法を用いた渋滞予測の「応用してみる」をもう一度(グラフのプロットまで試みること)。
文字認識
フォント作成
成果物
Tesseract
学習(訓練)に使用するフォントを変えると、Tesseract の文字認識の精度が変わる
Windows での文字認識ソフトウェアの紹介
- Windows での Java 8 (Java Runtime Environment 8) のインストール: 別ページ »で説明してある。
- ImageMagick バージョン 7 のインストール
- Windows で Tesseract を使ってみる
OpenALPR(ナンバープレート認識)
- https://github.com/openalpr/openalpr/releases
- openalpr-2.3.0-win-64bit.zip をダウンロード、展開(解凍)する。
- 各自が準備した車のナンバープレート画像と、正解データを全員で共有する。
- コマンドプロンプトで実行する。
cd <openalpr-2.3.0-win-64bit.zip を展開(解凍)したディレクトリ> alpr -c us <画像ファイル名>
OpenALPR の公式ページ: https://www.openalpr.com/
話題提供
スマート道路
AIカメラ(Raspberry Pi)
3次元グラフィックス・ゲームエンジン
Blender
インストールと機能紹介
- 説明資料: blender の機能紹介 [パワーポイント], [PDF]
- 説明資料: 3次元コンピュータグラフィックスのソフト Blender 2.79b のインストール(Windows 上)
- 説明ビデオ: Windows で Blender のインストール (4分14秒, 説明音声つき) [mp4 版], [パワーポイント]
3次元ゲームエンジン
ロジックエディタ
剛体シミュレーション
- パソコン実習資料: 剛体 (rigid body) の落下や衝突のシミュレーション
- 説明ビデオ: Blender で剛体シミュレーションの作成 (2分42秒, 説明音声つき) [mp4 版]
- 説明ビデオ: Blender での剛体シミュレーションの再生 (2分40秒, 説明音声つき) [mp4 版]
パーティクルアニメーション
「パーティクル」と呼ばれるたくさんの粒を用いるシミュレーションである。
- パソコン実習資料: Blenderでパーティクルアニメーション
- 説明ビデオ: Blender でパーティクルアニメーション (2分42秒, 説明音声つき) [mp4 版]
- 説明ビデオ: Blender でパーティクルアニメーションの設定 (4分24秒, 説明音声つき) [mp4 版]
オブジェクトの表示・非表示
Blender のゲームエンジンを用いて、オブジェクトの表示・非表示
Blenderの自動操作(Python)
Panda3D
複数のオブジェクトの配置、衝突判定、プログラム作成と実行についても上記資料を参照すること。
Unity
(すでに、各自、インストール済みである)
Cocos2d
基本概念とインストール
※ 自宅などで Cocos2d を練習したい人のために、次の資料にインストール手順も記述してある。一定の条件下で無料で使えるソフトウェアである。
イベントとアクション
Cocos2d のイベント、キーコード、イベントハンドラ、アクション
乱数と動きのシミュレーション
Label クラス、Line クラスの属性、同じ種類(クラス)のオブジェクトを簡単に増やす方法についても上記資料を参照すること。
ゲームの例
Cocos2d-x
C++でプログラムを書くことができるゲームエンジンである。学校や自宅で試してみたいという学生諸君のために資料を作成した。
Windows 10 で Visual Studio Community 2017 C++ と Windows Standalone SDK for Windows 10 のインストール
pygame
Android Studio
Windows で Android Studio 3.1.2 のインストール
地図・空間情報システム
OpenStreetMap
地図の編集
パソコン実習資料(金子研): OpenStreetMap のエディタを使って地図を編集
データのダウンロード
パソコン実習資料(金子研): Python の overpy を用いて OpenStreetMap のデータをダウンロード
3次元地図
OSMBuilding
パソコン実習資料(金子研): OSMBuilding を用いて、OpenStreetMap の福山大学周辺など、いろいろな場所の3次元地図を見てみる
Cesium
3次元地図システム Cesium の体験
foliumによる地図生成
マーカー付き地図
パソコン実習資料(金子研): マーカー付きの OpenStreetMap 地図(Python + leaflet.js + folium を使用)
イメージポップアップ付き地図
パソコン実習資料(金子研): マーカーとイメージポップアップ付きの OpenStreetMap 地図(Python + leaflet.js + folium を使用)
使用するデータ: photo-2017-12-03/index.html
データファイルからの地図生成
パソコン実習資料(金子研): 緯度経度などのデータファイルから、マーカーとイメージポップアップ付きの OpenStreetMap 地図を生成
パソコン実習資料(金子研): その2
サービスイメージ
クリックすると写真が表示される 地図上の写真表示サービス
データベース・クラウドサービス
Google Firebase
Cloud Firestore
パソコン実習資料: Google Firebase の Cloud Firestore を使ってみる
Firebase Storage
次の資料を全員動かして、Google Firebase Storage に慣れること。ファイルのアップロード、ダウンロードである。
リレーショナルデータベースとSQL
基本概念
SQLite 3 の操作
- SQLite 3 のデータベース新規作成、テーブル定義、テーブルの削除
- SQLite 3 でテーブルの作成
- SQLiteman のインストール。データベースの新規作成。テーブル定義。
テーブルの結合
演習問題
リレーショナルデータベースの基本概念 の末尾にある演習問題を試すこと。