2020年度卒業論文配属サポートページ

トピックス

人工知能(AI、人間の知能を模倣する技術)、ディープニューラルネットワーク(DNN、深層学習の中核技術)、データベース(DB、構造化された情報の集まり)によるリアルタイムデータ収集、データ分析に関する実習を予定する。

3次元地図制作実習など

人工知能による画像認識・処理

1. 画像分類(4月13日)

  • AIで画像分類を行うデモサイト紹介(clarifai.com(AI画像認識サービス提供企業))

    2019年4月、6月に「情報工学演習II」で行ったことを再び。各自で確認すること。

    https://clarifai.com/demo

    言語 (LANGUAGE)を「日本語 (Japanese)」に切り替えて使用する。

    画面の右の方に「LANGUAGE」があるので探すこと。

    AIにより、画像分類を行い、「キーワード」を表示するものである。それぞれのキーワードの横の数字は「確率」になっている。

    インターネットで画像ファイルを集め「TRY YOUR OWN IMAGE OR VIDEO」→「BROWSE FILE」で試してみること。

2. 画像分類(4月20日)

自宅にパソコン+インターネットがある者向けの演習である。

3. 物体認識(4月27日)

自宅にパソコン+インターネットがある者向けの演習である。

事前準備:各自、Googleアカウントの作成済み、Google Colab.の操作法を体験したことがあること(以上は4月20日に演習済み)。

案内:卒業研究中間発表

次のように準備を開始してみること(5月に、各自の考えを聴いたり、簡単なレポートを提出してもらう予定である)。

  • このページの上部に分野が記載されているので、1つ選ぶこと。
    複数名が同じ分野を選んでも良い。
  • 実験計画を立ててみること。

4. イメージ・セグメンテーション(6月8日)

案内:卒業論文では、各自自身で「自立して行う」ことを通して学ぶこととする。いままでの内容を読み返しておき、取り組んでみたい分野、キーワードを1つか複数選んでみること。グループワークを歓迎する。6月下旬を目安に選んでいただき、その後、しばらくの間行う実験計画(目安として7月の1か月間の実験計画)を立て、各自自身で実験などの活動に自立して取り組んでいただく。テーマは途中で変更しても構わない。

7月
ミニ実験、結果まとめ(教員からは「実験」について、実験が成功するための条件を提示する)
8月
深い学び(成功には何が必要かを考え抜くこと)、卒論下書き、実験の繰り返し、学会発表申し込み
9月、10月
さらに深い学び
11月
学会発表(10月下旬のこともあり)(数分間のプレゼン)。実験の繰り返し(実験の足りないところを考え抜くこと)
12月
卒業論文(10から20ページ)、プレゼン(数分間のプレゼン)、学会発表申し込み
1月
追加実験(実験に間違いや足りないことがあった場合に限る)
3月
学会発表(ポスター1枚)

イメージ・セグメンテーション(画像を意味領域に分割する技術)である。

5. 画像分類のミニ実演(6月15日)

案内1.健康状況調査。忘れていた者は今日からでも回答を再開すること。

案内2.卒論テーマ。卒論テーマを決めるため、次のWebページの「1.人工知能応用」や「5.3次元地図、3次元データ」などから、2、3個程度、自分の興味のある分野を選んでおくこと。各自の希望を尊重して、卒論テーマを決定する。このことについて、友達と相談する可能性もあるが、同じ分野になることは問題ない。

https://www.kkaneko.jp/db/index.html

案内3.7月から、登校して卒業研究活動を行うことについて、全員と6月22日に相談する予定である。

今日のトピックスである。

  • Python開発環境で、画像分類のプログラムを動かすことを実演する(WebブラウザでのPythonの動作ではない)。

    ImageNet(大規模画像認識用データセット)で事前学習済みの畳み込みニューラルネットワーク(CNN、画像認識に強いDNN)を用いた画像分類(MobileNetV2(軽量CNNモデル)、ResNet50(深層残差学習CNNモデル)、DenseNet(密結合型CNNモデル)121、DenseNet 169、NASNet(自動探索された高精度CNNモデル)を使用)(Google Colaboratory(Colab、ブラウザ実行可能なPython環境)へのリンク有り): 別ページ »で説明する。

6. 超解像度(6月29日)

  • 健康状況調査。忘れていた者は今日からでも回答を再開すること。

問題がなければ、来週より学校に集まって活動するか、遠隔での実施を継続とする。

  • 超解像、画像の修復(alexjc/neural-enhance、Python 3.7、Theano(数値計算Pythonライブラリ)、Lasagne(Theano上のDNNライブラリ)、scipy(科学技術計算Pythonライブラリ)1.1.0、pillow(Python画像処理ライブラリPILフォーク)を使用)(Ubuntu(Linuxディストリビューションの一つ)上): 別ページ »で説明する。

7. 顔検出

説明資料: Dlib(C++/Pythonの機械学習ライブラリ)の機能概要 [PDF], [パワーポイント]

Dlibのインストール

ダウンロードで少し時間がかかる。

  • Dlibのインストール

    この手順で、Dlib 19.19.99をインストールする。

    「python -c "import dlib; print(dlib.__version__)"」までを実施する。

    その後の「Dlib付属のツール類のインストール」は行わない。

顔検出、顔のランドマーク検出、表情判定

Dlibの応用例

9. モーションキャプチャ,頭部の向きの推定,瞳孔の検出

  • モーションキャプチャ(人や物の動きをデジタル記録する技術)

    学ぶトピックス:マーカーレス(センサー等を対象に装着しない方式)のモーションキャプチャ

  • 頭部の向きの推定

    • 頭部の向きの推定を行ってみる

      このページで、前半部分(準備の部分)は完了している。スクロールして、「lincolnhard/head-pose-estimationによる頭部の向きの推定」のところから取り組む。(プログラムの書き換えの作業がある。)

  • 瞳孔の検出

    • 瞳孔の検出(TobiasRoeddiger/PupilTracker、Pythonを使用)

      このページで、前半部分(準備の部分)は完了している。スクロールして、「TobiasRoeddiger/PupilTrackerによる瞳孔の検知」のところから取り組む。(プログラムの書き換えの作業がある。)

      なお、表示結果では、赤いマークは目の下の中央、緑のマークが瞳孔である。

10. 顔検出、顔認識システム(11月9日, 12日)

顔検出(画像から顔領域を特定する技術)、顔認識(特定の個人を識別するAI技術)システム(人工知能)の学習についての説明、実演などである。

https://www.kkaneko.jp/ai/dlib/knn.html

12. 超解像(11月26日, 30日)

超解像(super resolution、低解像度画像を高解像度化する技術)に関する情報提供である。

生成AI・スタイル変換

1. スタイル変換,DCGAN(5月11日)

実演動画である。

自然言語処理・文字認識

1. 文字認識,ナンバープレート読み取り

文字認識ソフトウェアのインストールと実行

ナンバープレート認識ソフトウェアのインストール

  • OpenALPR(ナンバープレート自動認識ライブラリ)2.3.0のインストールと動作確認(ナンバープレート認識)(Windows上): 別ページ »で説明する。
    ※ 欧米の自動車は精度良く読み取ることができる(日本語が認識できるようには調整されていない)。

インターネットで画像を探し、それぞれのソフトで読み取ってみること。

2. 自然言語処理(7月6日)

各自、実験を行ってみる。7月6日に実験開始。7月31日にいったん実験終了(実験データ、実験手順をWordファイルなどに記録するところまで)。

話題提供である。

自然言語処理:

3. 自然言語処理(7月13日)

自然言語処理(NLP、人間言語を計算機処理する技術)(日本語の処理、類似検索)についての話題提供も検討する:別ページ

4. 文字認識システム(11月2日, 5日)

文字認識(OCR、画像内の文字をテキスト化)システム(人工知能)の学習についての説明、実演などである。

3次元コンピュータグラフィックス

1. Blenderのインストールと基本操作

Blenderの最新版について説明する。ノートパソコン保有者にはインストールを案内する。

WindowsでBlenderのインストール

3次元コンピュータグラフィックスソフトウェアblenderを使ってみる

画面構成、基本操作

オブジェクトを配置

2. 剛体シミュレーション,パーティクル

剛体(変形しない物体の物理シミュレーション)の落下や衝突のシミュレーション、パーティクル(多数の微粒子によるCG表現手法)、各種のオブジェクト(草、波、炎、煙など)、シミュレーション、オブジェクトのモデリング(造形)である。

3. MakeHumanと人体モデル

注意:人体のデータが登場する。

オブジェクトの移動はオブジェクトモードで行う。リグ(3Dキャラを動かすための骨格構造)を用いた変形はポーズモードで行う。

8. 写真からの立体データの合成(10月26日, 29日)

写真からの立体データの合成(立体測量、写真等から3D形状を復元する技術)の説明、実演などである。

9. 3次元インペインティング(7月9日)

3次元インペインティング(3D inpainting、3Dモデルの欠損部修復技術)の紹介である。

3Dインペインティング適用例(月)JPEG
3Dインペインティング適用例(月)PNG

ゲームエンジン・AR・VR

1. ARアプリ(5月25日)

案内:卒業論文の科目は、ゼルコバの「集中講義」の画面で履修登録できると考えられる。(こちらで、学生の画面を確認できないため、このような回答となる。)

パソコン、カメラ、エディタ(メモ帳)、Webブラウザを使い、ARアプリ(拡張現実を利用したアプリケーション)を作成する。

2. ゲームエンジン

データ分析・データベース

1. データのグラフ化によるデータの把握

データの取り扱い、散布図、記述統計量、ヒストグラムである。

4. Rシステム,機械学習入門

  • 次の資料を一読し、Rシステム(統計解析向けプログラミング言語・環境)について知ること。(ソフトのインストールは完了している。行う必要はない。)

    説明資料: Rシステムとは [パワーポイント], [PDF]

  • 次の資料を一読すること。そして、資料の中の「実習」はグループで取り組むこと。機械学習(ML、データからパターンを学習するAI分野)について知ること。

    説明資料: 機械学習の例 [パワーポイント], [PDF]

5. 外れ値の自動判定(7月30日)

Zoom(ビデオ会議サービス)での遠隔会議(12時30分頃にURLを案内する)

外れ値(他の値から大きく外れたデータ点)の自動判定についての説明を予定する。

8月3日以降の登校再開にあたって、「健康状況調査」の継続を改めて案内する。

プログラミング環境と基礎

2. TensorFlow実習

ニューラルネットワークの仕組み [PDF], [パワーポイント]

Pythonの主な機能(Google Colaboratoryを使用)

Google Colab上

Windowsパソコンを利用

3. OpenCVによるコンピュータビジョン

OpenCV(オープンソースのコンピュータビジョンライブラリ)を用いた種々の処理である。

前準備

Python 3用opencv-python、matplotlib(Pythonのグラフ描画ライブラリ)、numpy(Pythonの数値計算用コアライブラリ)パッケージのインストールを行う。

Windowsパソコンで、コマンドプロンプトを開き、次のように操作する。

python -m pip install -U opencv-python matplotlib numpy

濃淡画像処理

Python + OpenCVで濃淡画像を使う。

トピックス:カラー画像から濃淡画像への変換、イメージヒストグラム(画像の輝度値分布グラフ)、ヒストグラム平坦化(画像コントラスト強調手法)、濃淡画像のノイズを加える、ノイズを除去する、OTSUの方法(大津の二値化、自動閾値決定法)による2値化、輪郭抽出(画像の物体境界線を見つける処理)。

説明資料: Python + OpenCVで濃淡画像を使う

点や線の描画

Python + OpenCVで点や線の描画を行う。

説明資料: OpenCVで点や線の描画(OpenCV 4.5対応)(Pythonを使用)

マウスイベント

説明資料:マウスイベント

ビデオカメラ画像処理

Python + OpenCVでビデオカメラ画像の表示、ファイル書き出し、濃淡画像処理を行う。

説明資料: Python + OpenCVでビデオカメラ画像の表示、ファイル書き出し、濃淡画像処理

フレーム間差分、トラッキングビジョン、オプティカルフロー

Python + OpenCVでビデオのフレーム間差分、トラッキングビジョン、オプティカルフロー(動画内の物体の見かけ上の動き)などを行う。

説明資料: Python + OpenCVでビデオのフレーム間差分、トラッキングビジョン、オプティカルフローなど

4. Python開発環境の更新と動作確認(7月9日)

次のことについてである。

  1. pip(Pythonのパッケージ管理システム)の更新、Python開発環境を最新版に更新する。

    各自、コマンドプロンプト(WindowsのCUI環境)管理者として実行し、次のコマンドを実行する。

    python -m pip install -U pip setuptools jupyterlab jupyter jupyter-console jupytext nteract_on_jupyter spyder
    
    コマンドプロンプト実行画面のスクリーンショット
  2. Python動作確認

    今度は、再び、コマンドプロンプトを開き、次のコマンドを実行する。これはJupyter Qt Console(対話型Python実行環境)を開くコマンドである。

    jupyter qtconsole
    
  3. 試してみる。

    print(1 + 2)
    exit()
    

活動スケジュール・運営

1. ガイダンス

ガイダンスである。

2. 進路等に関する説明会

進路等に関する説明会である。

3. 一般物体検出・顔の特徴点(7月27日)

Zoomでの遠隔会議

連絡:7月にポスター作成といっていたのは延期する。8月の早い段階に登校再開できるのか、そうでないのかで、内容やスケジュールが変わりそうである。登校再開の見通しが分かり次第、内容やスケジュールを相談する。

4. 登校再開・スケジュール相談(8月3日)

この日より、登校しての活動再開

13時集合

スケジュールについて最低限の変更を相談する

各自の実験着手(テーマ仮決め、調査を含む): 7/31締め切り → 延期、8月上旬に。

実験結果と考察: 7/31締め切り → 延期、改めて相談する。

中間発表(ポスター1枚): 7/31締め切り → 延期、9月に。オンライン形式(セレッソ等で連絡が行われている)。

10月の学会発表: 希望者のみ3月に実施とする(オンラインの可能性あり、改めて相談する)。

卒論締め切り:12月末として計画 → このまま(状況次第では、少し延期の可能性あり)。

5. 中間発表(8月11日)

8月、9月:中間発表(各自で実験計画を立て、実験を実施。今後の目標等を定めるなども)。

火曜日である(月曜日には行わない)。

この後は、卒業研究活動は、2週間ほど休みとし、8月下旬に再開する。