2021年度卒業論文配属サポートページ
担当者: 金子邦彦
活動記録と活動予定
- 11/26, 金曜日:配信予定
セマンティックセグメンテーションは, コンピュータが画像を読み取り, 画像の中の画素を,種類ごとに分類すること.
Unified Perceptual Parsing
2018年発表.さまざまな種類の画像について,精度良くセグメンテーションができるとされる手法.
- 11/22 登校しての活動
- 11/22 卒業論文提出について
-
卒論で求めること.
実験データ,考察,丁寧な説明,元気なプレゼン
- 実験データの説明: 計測方法,得られた分量,そのときに失敗してしまったこと,もう一度やりなおすとしたら.
- 考察: 成功なのか失敗なのか.改良するとしたらどうなるか.比較した結果どうなったか.自分なりの工夫.従来の同様の研究の調査結果
- 丁寧な説明を書いていきます. ぜひ練習してください.根拠を付ける.手順の説明を丁寧に書く.グラフや表で示すといった工夫
- 大学に来たら試してみて欲しいこと.研究室のパソコンから,次のページにアクセスできるようにしています (無線LANからはアクセスできません)
https://www.kkaneko.jp/lab/sotu2020/s/
先輩の資料です.大いに参考にしてください.(コピー&ペーストは不可です)
- 締め切りの前(3日前くらいまで)にください.読み返して返答します
-
卒論で求めること.
- 11/21 ZOOM 配信
関連ページ: https://www.kkaneko.jp/sample/index.html
3D都市モデル(Project PLATEAU)福山市(2020年度)(https://www.geospatial.jp/ckan/dataset/plateau-34207-fukuyama-shi-2020) の CityGML 形式ファイルのうち,建物のデータ,地形のデータを加工して作成.Project PLATEAUのサイトポリシー(https://www.mlit.go.jp/plateau/site-policy/)により,変形,公衆送信を行っている.
ここのデータは,テクスチャ画像のデータを含まない.
3D都市モデル(Project PLATEAU)福山市(2020年度)
- 建物のデータ
頂点数: 8,697,252, 三角形ポリゴン数: 7,325,893
- 地形データ (dem)
頂点数: 23,684,818, 三角形ポリゴン数: 47,272,932
- 建物と地形 (dem) の重ね合わせ例
重ね合わせは手作業で行っている.重ね合わせ結果では,建物と道路がずれている.
- 建物のデータ
- 11/16 ZOOM 配信
GAN (Generative Adversarial Network) では, 生成器 (generator) でデータを生成し, 識別機 (discriminator) で,生成されたデータが正当か正当でないかを識別する.
TensorFlow Hub の GAN のデモページ
ttps://www.tensorflow.org/hub/tutorials/tf_hub_generative_image_module
StyleGAN は, Mapping networkとSynthesis networkの2つのネットワークで構成され,従来の GAN よりも高精細な画像を生成できるとされている.
StyleGAN の Synthesis の AdaIN に, 画像を与えることで,生成される画像の特徴を転移 (transfer) することができる. そして,AdaIN には,解像度の違うものが複数あり, 低い解像度の AdaIN に画像を与えると, 大きく特徴が変化するように特徴を転移する. 高いい解像度の AdaIN に画像を与えると, 小さく特徴が変化する.
StyleGAN の文献: https://arxiv.org/pdf/1812.04948.pdf
従来の StyleGAN では,用途に応じて,アーキテクチャを変えたり,学習法を変える必要があるとされてきた.
次の文献では,単一のアーキテクチャ,単一の学習法でも, StyleGAN をさまざまな用途に利用できることが示されている.
StyleGAN of All Trades: Image Manipulation with Only Pretrained StyleGAN Min Jin Chong, Hsin-Ying Lee, David Forsyth
この文献の作者らによる 次の Google Colaboratory のページでは, 次のことを行っている.
https://colab.research.google.com/github/mchong6/SOAT/blob/main/infinity.ipynb#scrollTo=HSaAxHVcDKRv
- パノラマ画像の生成 (panorama generation)
- アニメ風の画像の生成 (Toonification)
- 画像の拡張
- 2画像のマージ (merging 2 images)
- 範囲を選択して,特徴を転移
- 11/12 ZOOM 配信
- 福山大学のビデオ,3次元化(SfM, MVS)
現時点の成果物
URL: https://www.kkaneko.jp/sample/index.html#3
Meshroom での処理結果(1秒あたり4コマの画像に変換ののち Meshroom で処理)
texturedMesh.obj, texturedMesh.mtl
3DFFA, 顔写真からの3次元再構成
3DFFA のデモページの URL: https://colab.research.google.com/drive/1OKciI0ETCpWdRjP-VOGpBulDJojYfgWv#scrollTo=WLlzr74u9a4d
画像ファイルをアップロード.コードセルに次のように追加
img_fp = '/content/127.png' img = cv2.imread(img_fp) plt.imshow(img[..., ::-1])
結果は次の通り.
- 11/10 活動日
- 11/9 ZOOM 配信
MMDetection のデモページ.MMDetection は2021年発表. デモページ (Google Colaboratory) は,次の URL である.
次の機能を試すことができる.
- 物体検出の機能がある.
画像の中のオブジェクトを検出し,四角で囲み(場所と大きさ),種類を判別.
- セグメンテーションの機能がある
画素単位でオブジェクトを切り出す
- COCOデータセットで事前学習済み(COCO データセットは,オブジェクトのカテゴリ数:80)を利用しての物体検出とセグメンテーション
- 自分の画像を追加しての学習も行っている.
- 物体検出の機能がある.
- 11/5 ZOOM 配信なし
顔からの性別,年齢等の推定
FairFace(Karkkainen, Kimmo and Joo, Jungseock, FairFace, 2021年発表)では,bias (偏り) のない顔データセットの利用で,性別,年齢等の推定の精度向上ができたとされる. 試してみた(公式ページの手順を少し変える必要あり)
手順は: 別ページで説明
- 11/3 この日に学校に集合することはありません.
- 11/2 火曜日 13:30
Salient Object Detection (顕著なオブジェクトの検出)
視覚特性の異なるオブジェクトを,画素単位で切り出す. 前景と背景の分離に役立つ場合がある.人間がマスクの指定や塗り分け(Trimap など)を行うことはない.
BASNet は, ディープラーニングにより,Salient Object Detection (顕著なオブジェクトの検出)を行う一手法.2019年発表.
Qin, Xuebin and Zhang, Zichen and Huang, Chenyang and Gao, Chao and Dehghan, Masood and Jagersand, Martin, BASNet: Boundary-Aware Salient Object Detection, The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2019
元画像
BASNet 法の結果
- BASNet プログラムなどのダウンロード**
git clone https://github.com/NathanUA/BASNet.git
- 学習済みモデルのダウンロード
公式ページ https://github.com/xuebinqin/BASNet の指示による. 学習済みモデル(ファイル名 basenet.pth)は,次で公開されている. ダウンロードし,saved_models/basnet_bsi の下に置く
https://drive.google.com/open?id=1s52ek_4YTDRt_EOkx1FS53u-vJa0c4nu
- BASNet の実行
cd BASNet python basnet_test.py
- 元画像の表示
from IPython.display import Image,display_jpeg display_jpeg(Image('test_data/test_images/0003.jpg')) display_jpeg(Image('test_data/test_images/0005.jpg')) display_jpeg(Image('test_data/test_images/0010.jpg')) display_jpeg(Image('test_data/test_images/0012.jpg')) display_jpeg(Image('test_data/test_images/BKN06Z000006_W_big.jpg'))
- BASNet の結果の表示**
from IPython.display import Image,display_png display_png(Image('test_data/test_results/0003.png')) display_png(Image('test_data/test_results/0005.png')) display_png(Image('test_data/test_results/0010.png')) display_png(Image('test_data/test_results/0012.png')) display_png(Image('test_data/test_results/BKN06Z000006_W_big.png'))
- BASNet プログラムなどのダウンロード**
- 10/29 金曜日 13:30
Trimap からの前景の推定
trimap では,次の 3つを考える. 前景である画素は白,背景である画素は黒,transaction である画素は灰色の 3通りに 塗り分けた画像を trimap という.
- 前景 (foregdound)
- 背景 (background)
- transition: どちらであるか判断できないか,細かすぎて,塗分けが困難な領域
元画像と,その trimap を用いて,前景の推定を行う.
元画像
trimap(これは手作業で作成されたもの)と,前景の推定結果(コンピュータが生成)
pymatting 法
- Thomas Germer, Tobias Uelwer, Stefan Conrad, Stefan Harmeling, Fast Multi-Level Foreground Estimation, CoRR, abs/2006.14970v1, 2020.
- ドキュメント, https://pymatting.github.io
- GitHub のページ, https://github.com/pymatting/pymatting
Google Colaboratory でのインストールと確認.
git clone https://github.com/pymatting/pymatting cd pymatting pip3 uninstall -y folium pip3 install . python3 tests/download_images.py pip3 install -r requirements_tests.txt pytest
Google Colaboratory で動かしてみる. コードセルで次を実行.このプログラムは, 公式のドキュメント(https://pymatting.github.io)を使用.
from pymatting import cutout cutout( # input image path "../data/lemur/lemur.png", # input trimap path "../data/lemur/lemur_trimap.png", # output cutout path "lemur_cutout.png") from IPython.display import Image,display_png display_png(Image('./data/lemur/lemur.png')) display_png(Image('./data/lemur/lemur_trimap.png')) display_png(Image('./data/lemur/lemur_cutout.png'))
- 10/26 火曜日 15:00
Image Inpainting (イメージ・インペインティング)
画像の欠落部分を補う技術.画像の中の不要な部分を消すときにも役立つ.
LaMa (2021年発表)のデモページ
- 10/23 土曜日
中国支部連合大会での学会発表
- 10/19 火曜日
TecoGAN を用いた超解像.
次を Google Colab で実行する. TecoGAN のインストール,学習済みモデルのダウンロード, TecoGAN の実行と確認を行っている.
!pip3 install tensorflow==1.15 !pip3 install -U keras==2.3.1 !pip3 install git+https://www.github.com/keras-team/keras-contrib.git !git clone https://github.com/thunil/TecoGAN %cd TecoGAN !pip3 install -U -r requirements.txt !python3 runGan.py 0 !python3 runGan.py 1 from IPython.display import Image, display_png display_png(Image('LR/calendar/0001.png')) display_png(Image('results/calendar/output_0001.png'))
実行結果のスクリーンショットを原寸で表示.
- 10/18 月曜日
自主的な活動
- 10/13 水曜日
自主的な活動
- 10/12 (火曜日)
顔のモデル.
声にあわせて,2次元の顔のモデルを変形させる技術が出てきた. このとき,入力としてシステムに与えられるのは音声のファイルである.
LiveSpeechPortraits
- 公式ページ: https://github.com/YuanxunLu/LiveSpeechPortraits
- 学習済みモデルのダウンロード: https://drive.google.com/drive/folders/1sHc2xEEGwnb0h2rkUhG9sPmOxvRvPVpJ
- 使用法(Google Colaboratory)
- 音声ファイル (wav 形式)を準備
- Google Colaboratory で,「ランタイム」,「ランタイムのタイプの変更」と操作し,「GPU」を選ぶ
- Google Colaboratory で次を実行
インストールを行う.
!git clone https://github.com/YuanxunLu/LiveSpeechPortraits.git %cd LiveSpeechPortraits !apt install -y ffmpeg !pip3 install -r requirements.txt !pip3 install -U numba==0.49.1 librosa==0.7.0 !pip3 install -U opencv-python==4.4.0.46 albumentations==0.5.2
- 学習済みモデル
https://drive.google.com/drive/folders/1sHc2xEEGwnb0h2rkUhG9sPmOxvRvPVpJ からダウンロードし,LiveSpeechPortraits\data 下に置く
- デモの実行
結果は results の下に,ファイルとして残る.
%cd /content/LiveSpeechPortraits !python3 demo.py --id McStay --driving_audio ./data/Input/1.wav --device cuda
このデモプログラムでは,動画ファイルの生成までが行われる.
- 10/8 (金曜日)
人のカウント,車のカウントに私は興味があります.数を数えたり,全体の流れを見たりです. そのとき,プライバシには十分に配慮します.顔画像からの年齢や性別の推定は別の技術になります.車種の推定も別の技術になります.
画像からの,人体の姿勢推定(pose estimation).人物追跡(person tracking)の技術は, 従来からありました. 姿勢推定には2次元のものと3次元のものがありますが,今回の紹介は2次元です.
(2021年発表)を紹介します.
- OpenPifPaf の公式ページ(GitHub のページ)
- OpenPifPaf のチュートリアルの「WholeBody」のページ
人体の姿勢推定について
Google Colaboratory で動かすには,次のコマンドをコードセルに書いて動かす.
pip の行はインストール.wget の行は画像ファイルのダウンロード. python の行は処理の実行.
!pip3 install openpifpaf !wget https://upload.wikimedia.org/wikipedia/commons/0/06/Kamil_Vacek_20200627.jpg !python3 -m openpifpaf.predict Kamil_Vacek_20200627.jpg \ --checkpoint=shufflenetv2k30-wholebody --line-width=2 --image-output
- OpenPifPaf のチュートリアルの「CarkeyPoints」のページ
乗用車の姿勢推定について
Google Colaboratory で動かすには,次のコマンドをコードセルに書いて動かす.
pip の行はインストール.wget の行は画像ファイルのダウンロード. python の行は処理の実行.
!pip3 install openpifpaf !curl -O https://upload.wikimedia.org/wikipedia/commons/7/71/Streets_of_Saint_Petersburg%2C_Russia.jpg !python3 -m openpifpaf.predict /content/Streets_of_Saint_Petersburg%2C_Russia.jpg \ --checkpoint=shufflenetv2k16-apollo-24 -o images \ --instance-threshold 0.05 --seed-threshold 0.05 \ --line-width 4 --font-size 0
- 「Fall Detection using Pose Estimation」の記事
人物追跡,転倒検知などについて
https://towardsdatascience.com/fall-detection-using-pose-estimation-a8f7fd77081d
- openpifpad の Google Colaboratory のデモ
人物の姿勢推定を行う Python プログラム
https://colab.research.google.com/drive/1H8T4ZE6wc0A9xJE4oGnhgHpUpAH5HL7W
これらの技術等をベースとして, 人間の動きだけでなく,車両の動き(車両のドアなどのパーツの細かな構造を見るので,車が前向きなのか,後ろ向きなのか,右横向きなのか,傾いているのかの情報をとることができる) の分析も始まっています
- 10/5 (火曜日)
3次元の姿勢推定 (Pose Estimation) 画像から,オブジェクトを検出するとともに,その向きの推定も行う.
Objectron は,公式ページで,プログラムとデータセットが配布されている.
https://github.com/google-research-datasets/Objectron
Objectron の動作画面.
Objectron は,Google Colaboratory で動かすことができる. Google Colaboratory で動かすときは,コードセルに,次の3行を張り付けて実行. あとは,公式ページのプログラムのコピー&ペーストで動きます.
!pip3 install frozendict !git clone --recursive https://github.com/google-research-datasets/Objectron %cd Objectron
- 10/1 (金曜日)
オブジェクトの周囲から撮影して,3次元化する立体再構成について.
従来技術(SfM, MVS と言われる)は完成の域にあり, Meshroom というソフトもあります. そのとき,オブジェクトは動いていけないのとなっていました.
2020年発表の技術は,オブジェクトは動いていても大丈夫,スマホで撮影,3次元を推定という技術が登場しています. 次のページに,実際に作成された動画が公開されているので紹介します. なめらかです.なお.1秒のビデオを処理するのに10分かかるのが目安になるようです.
https://roxanneluo.github.io/Consistent-Video-Depth-Estimation/
- 9/28(火曜日)
単一のカメラでの画像から depth image を推定する方法としては,ディープラーニングを用いる monodepth2 法 (2019 年発表) が知られる. 実行結果は次のようになる.
depth image は,距離を画像化したもの.
monodepth2 法は,普通の画像を距離画像に自動変換する研究である
monodepth2 法の実行手順は別ページで説明:https://www.kkaneko.jp/tools/man/man.html#depthimage
なお,以前紹介した Meshroom などを使っても距離画像を作ることができる
- 9/24 (金曜日)
物体検出と fine tuning. 2020年発表の DETR. Google Colaboratory でのオンライン実行を行う. woctezuma の Google Colaboratory のページを使用
資料: 資料
- 9/17 (金曜日)
物体検出. 2021年発表の YOLOX.高速で動き,精度も良好である. Google Colaboratory でのオンライン実行を行う.
資料: 資料
- 9/14 (火曜日)
3次元の顔の再構成 (3D face reconstruction) は, 顔の写った画像から,元の顔の3次元の形を構成すること.
3次元の顔の再構成は,次の2つの種類がある.
- 3次元の変形可能な顔のモデル (3D Morphable Model) について,そのパラメータを,画像を使って推定すること.
- dense vertices regression: dense は「密な」,vertices は「頂点」,regression は「回帰」.画像から,顔の3次元データであるポリゴンメッシュを推定する
3DDFA_V2 は,3次元の顔を再構成する dense vertices regression の一手法.論文は,2020年発表.
- 論文
Jianzhu Guo, Xiangyu Zhu, Yang Yang, Fan Yang, Zhen Lei, Stan Z. Li, Towards Fast, Accurate and Stable 3D Dense Face Alignment, ECCV 2020.
- GitHub のページ: https://github.com/cleardusk/3DDFA_V2
Gradio での 3DDFA_V2 のオンライン実行
URL: https://github.com/cleardusk/3DDFA_V2
Google Colab でのインストールとオンライン実行
URL: https://colab.research.google.com/drive/1OKciI0ETCpWdRjP-VOGpBulDJojYfgWv
結果は /content/3DDFA_V2/examples/results/ にできる. ここには,顔の3次元データであるポリゴンメッシュ(.obj ファイル)もある.
.obj ファイルをダウンロードし Blender で表示してみる.
- 9/10 (金曜日)
DeepFace は,ArcFace 法による顔認識の機能や,顔検出,年齢や性別や表情の推定の機能などを持つ.使い方を説明する.Google Colab を使うが, パソコン(Windows, Linux)でも動く.使い方は,1つのフォルダに認識させたい顔画像をすべて入れ,所定のコマンドを実行.
ArcFace 法は,距離学習の技術の1つである. 画像分類において,種類が不定個であるような画像分類に使うことができる技術である. 顔のみで動くということではないし, 顔の特徴を捉えて工夫されているということもない.
DeepFace の URL: https://github.com/serengil/deepface
ArcFace の概要は次の通り
- 顔のコード化:顔画像を,数値ベクトル(数値の並び)に変換する.
- 顔のコードについて,同一人物の顔のコードは近くになるように,違う人物の顔のコードは遠くなるように,顔のコードを作り直す.そのときディープラーニングを使う.これを「距離学習」という.
- 距離学習の学習済みモデルを使う.距離学習がなかったときと比べて,顔認識の精度の向上が期待できる.
実験するときは,顔の部分だけを切り出す作業をペイントソフトなどで行い,その後実験に進むと良いと思います.
次のプログラムは Google Colaboratory で動く(コードセルを作り,実行してください).
!pip3 install deepface !git clone --recursive https://github.com/serengil/deepface from deepface import DeepFace import pandas as pd from deepface import DeepFace import pandas as pd pd.set_option('display.max_rows', None) print(pd.get_option('display.max_rows')) df = DeepFace.find(img_path="./deepface/tests/dataset/img38.jpg", db_path="./deepface/tests/dataset", distance_metric='euclidean') a = df.sort_values('VGG-Face_euclidean') print(a) obj = DeepFace.analyze(img_path = "./deepface/tests/dataset/img38.jpg", actions = ['age', 'gender', 'emotion']) print(obj)
ディレクトリ内の全画像ファイルとの顔識別を行い,それぞれの顔画像ファイルとの距離を表示.
年齢,性別,表情の推定.
- 9/7 (火曜日)
SCRFD (Sample and Computation Redistribution for Face Detection) 法によるマスク有り顔画像での顔検知.
ResNet (ディープニューラルネットワーク,画像分類や物体検知等に利用されている)の改良である. ResNet をベースとしているので,オブジェクトが大きく隠れていても,精度よく物体検出できる. さまざまな大きさの顔を精度良く検知できる工夫, 小さな顔についても精度よく検知できる工夫が行われている.
性別と年齢の推定.
CCRFD の説明:別ページ で説明を行っている.
Google Colaboratory やパソコンでの試用:別ページ で説明を行っている.
- 9/3 (金曜日)
Chandrika Deb の顔マスク検出 (Chandrika Deb's Face Mask Detection) および顔のデータセット: 別ページ »で説明
- 9/2 (水曜日)
(対面での活動は中止しました).
次のことをメールでお伝えしました.
- 総括
テーマ決め(興味関心のあるテーマを自分で定める)
目的の設定(課題発見),調査,実験,結論,考察
分かりやすい説明(ワード,パワーポイント,ポスター)
質疑を通して,自分を高める(他の人の揚げ足を撮ったり,他の人の指摘をすることではない)
データなどの根拠を使って説明する
- 研究室の9月以降の考え方
- 「毎日学校に来て、自由に自主的に活動する(活動したい)」という考え方について
コロナ対策のため,今年は次のようにしたい
レベル1では,週1回または2回または3回の集合日を定め、仲間同士で自由な情報交換(研究のことも、研究以外のことも)。 集合日以外のときに研究室に来るのは問題ないこととする(健康状況調査を各自応じること)
- 自主的に学び向上するもの
- 先生が「正解」を与えて、それを作業してもらうものではない
- それぞれ形態が違う.
ある人は、調査したり、私の研究室のホームページを見たりして学ぶ。ある人は、写真を撮影したりなどの活動を行う。 ある人はプログラムを作ったり、改良したり、他の人が作ったプログラムで学ぶ。ある人は、アイデアを考える
- 新しい発見を目指していただきます。
- 新しい発見を目指せているかどうかについては、各自、自分で点検したり、仲間からの意見を聞いたり、指導教員に自主的に相談ください
- とても大切なことは、データや根拠を自分で示すことです。
根拠の無い例:データや根拠なしで、意見やアイデアのみ
例えば「1000枚の画像があればうまく行きそう」というとき、実際に1000枚近い画像を自分で集めてチャレンジするか、 あるいは、1000枚も画像を集めずに済む別の研究テーマを考えていただくことになります。 研究では、データや根拠を大事にします。
- 失敗は問題としません。質疑で「知らない」と正直に答えることは、関係ないことを答えるよりも良いことです。
- 困っていることがあるとき、先生や他の仲間に聞いてみることは良いことです。勉強の効率が良くなる可能性があります。
- 学校に来て、自分が何を活動するかは、自分自身で決めていただくことになります。
自宅での活動も、行っていただいている(自宅の方が活動しやすいときがある)ことはありましょうが、 学校に来ての活動は、その良さがあります。集合日を定め、お集まりいただくことは続けます。
- 「毎日学校に来て、自由に自主的に活動する(活動したい)」という考え方について
- 総括
- 9/1 (火曜日)
Chandrika Deb の顔マスク検出 (Chandrika Deb's Face Mask Detection) および顔のデータセット: 別ページ »で説明
- 8/27 (金曜日) Zoom で,法政大学との遠隔セミナー
- 全員研究発表を行った.
- 1人あたり,最大20分程度(質疑込み).
- ZOOM を用いた実施
本学からの発表
小寺裕也(コデラ ユウヤ,福山) 福山大学の三次元地図作成 佐藤彰紘(サトウ アキヒロ) (福山) 人物挙動分析のための屋内三次元地図の作成実験 新川涼太(シンカワ リョウタ,福山) 複数顔写真からの3次元モデル構成による3次元アバターの実現 石丸弘樹(イシマル ヒロキ) (福山) 部分隠蔽された顔画像での顔識別とランドマーク検出実験 寺田みのり(テラダ ミノリ,福山) 人工知能による顔情報処理システムと顔分析
- 8/25, 登校日
13:30 集合、各自作業開始 14:00ごろ 金子から、簡単な説明(添付のPDFファイル2つと、パワーポイントファイルを使用) その後、各自、卒研を進め、パワーポイントを金子にメール提出(電子メールで)、解散 添付のパワーポイントは、先輩が作ったものです、見本として活用できます。 今日、登校できない人でも、パワーポイントを金子にメール提出(電子メールで)することを、各自で行っていただきます <説明内容> ・今後のスケジュール 週1回の登校、週2回の配信を再開する 27日のZOOMセミナー(他大学合同)は予定通り行う ・8月25日の進行 予定通り、各自、パワーポイントの準備。楽しんで行ってください チェックリスト 1.楽しむ 2.パワーポイントの見本を使う 3.たっぷり、ゆっくり説明する気持ちを持つ ・すべてを説明する気持ちをもつ ・能力向上のため、次を気を付ける 分かりやすい説明になっているか? を自己チェックする。 自分が行いたいこと、実験手順、実験結果、考察について、なるべく詳しく説明を書く。 「添付のワードファイル」の内容を、丸ごと、パワーポイントに載せるのは良いアイデアである。 中間発表のときに自分で答えた内容を、コピーして、整えるのは良いアイデアである。 語りかけるように、「相手が知らないだろう」と思われる難しい言葉などは、丁寧に説明する(語ってもよいし、資料に説明してもい) 4.パワーポイントをメール提出。明日の夜までにフォードバックする可能性があります(パワーポイントファイルを書き換えて返す場合があります)
- 8/11, 登校日,追加実験,ワードの原稿書き
追加実験の上,ワードの原稿を提出すること
- 追加実験をお考えいただくのはマスト
- さらなる考察,根拠となるデータや調査結果を自分で説明することを意識
- ワードファイルの原稿のテンプレート:
https://rentai-chugoku.org/guideline.html で公開されている「Word 版」を使用.
- 1ページでもよいし,2ページでもよいです
- 8/11 に金子に提出(早めに終わるのが楽ですが,間に合わない人は事前に連絡ください)
- 中間発表でみなさん自身が考えた回答を,ここに含めたり,卒論に含めるのは歓迎です.
- 8/6
中間発表で,再発表対象者は,連絡が行われました.
- 8/6 顔のアラインメント,顔の大部分が隠蔽されていても頑健なもの.
当初 Dlib で顔情報処理を実験していた. その結果を受けて,「部分隠蔽された顔画像を扱いたい」と仮に目的を定めたとする. その結果,Dlib でなく,部分隠蔽された顔画像に適する他の方法で実験する(そして,他の方法について,自分なりに調査する)ことがありえる.これは,研究テーマの正常な進化である(決して変更や失敗ではない).
以上を踏まえながら,部分隠蔽された顔画像に適する他の方法を実演する.
出典: How far are we from solving the 2D & 3D Face Alignment problem? (and a dataset of 230,000 3D facial landmarks), Adrian Bulat, Georgios Tzimiropoulos, https://arxiv.org/abs/1703.07332
特徴: Face Alignemnt Netword(FAN), LS3D-W デーセット(サイズ:230,000, ポーズ[-90, 90], 3D)を特徴とする。 なお,Dlib は,VGG データセット,scrub データセット,その他作者がインターネットから収集した顔画像合計約 3,000,000 を使用.
https://openaccess.thecvf.com/content_ICCV_2017/papers/Bulat_How_Far_Are_ICCV_2017_paper.pdf
次の Google Colaboratory のページを公開している.これで実演する.使用するときは, ランタイムのタイプを「GPU」にして実行してください.
https://colab.research.google.com/drive/1vDHvPQ1O52rdlmczrxBopK1Ke1yFvjBJ?usp=sharing
こうした積み重ねが,新しい考察の発見にもつながっていくものである. 考察は自由に考えるものであるが,研究は,どういう用途がありそうか? いままでの実験結果を踏まえ,さらに確認しないといけないことがありそうか? そして,別の方法も調査し,試すべきか? などを自由に考えるものである.
- 8/4, 登校日
中間発表の総括,今後のスケジュールなど
次を説明: [PDF ファイル], [パワーポイントファイル]
- 7/30 金曜日
写真のテクスチャマッピングを行う. 写真,Blender のシェーダーの設定,できた画像は次の通りである.
【サイト内の関連ページ】
- 7/27
全員が e ラーニングの受講を終えました.ありがとうございました.
- 7/27
全員が中間発表を開始しました.
- 7/16 金曜日
3次元データベース,写真からの3次元再構成(写真測量)(Meshroom を使用)についての参考資料です(以前,案内したものと同じです).興味のある人は,再びでも,視聴ください.
- 7/13 火曜日
3次元点群の表示,ダウンサンプリング,Convex hull, DBSCAN クラスタリング,平面のセグメンテーションの例
- 7/7 水曜日
中間発表ポスターの書式: https://cerezo.fukuyama-u.ac.jp/ct/course_688085_rptadmpreview_762520
- 6/25 金曜日
人工知能の代表機能として, 画像関係では,画像分類,物体検出,顔検出,トラッキング・ビジョン,顔のランドマーク検出などがあります.
次のページを見てください.
https://www.kkaneko.jp/ai/win/pythondlib.html
Dlibを使っています. Windows のパソコンでも,少しの準備で動かすことができるものです(準備は,このページの中に書いています). このページに実行結果を載せています.
画像分類,物体検出,顔検出,トラッキング・ビジョン,顔のランドマーク検出 がどういうものだったかを再確認できると思います.
顔検出,顔のランドマーク検出には,今回の Dlib を,私はお勧めします.別のソフトウェアと組み合わせて,顔識別(2つの顔写真が同一人物かの判定)もできます.
画像分類は,以前見せた MobineNetV2 などの方が,私は,お勧め したいと思います.(人によって判断が分かれると思います). https://www.kkaneko.jp/ai/imclassify/cnncifar10.html
物体検出は,他の手法などがあります.別の機会に,可能だったら紹介します.
- 6/22 火曜日
ソースコード
https://colab.research.google.com/drive/1epOlnH3HW8nq3A2Oek4FyFnhgaD_cqWP#scrollTo=B8PZTOpcYXwF
- 6/17 金曜日
資料の URL: https://www.kkaneko.jp/pro/colab/colabwebcam.html
- Google Colaboratory では、Python のブログラムが動く。Webブラウザで、Google Colaboratory のサイトを開き, ソースコードを確認、編集しながら、プログラムを動かすことができる。 ブラウザのみで動く。 メモをつけたり、他の人とシェアもできる。
- ノートパソコンなどには,カメラが付くようになった. Google Colaboratory で,パソコンのカメラを使うことができる.
- 準備は, Google Colaboratory の画面で、スニップレットをクリック、メニューで「Camera Capture」を選び,「挿入」をクリック.
- 実行すると,Google Colaboratory で
手元のパソコンのビデオカメラが表示される.
この時点では,手元のパソコンの Web ブラウザで,実質 JavaScript のプログラムが動いている.
- 6/15 火曜日
顔のランドマークと顔識別. dlib, GitHub の ageitgey/face_recognition を使用
https://colab.research.google.com/drive/1epOlnH3HW8nq3A2Oek4FyFnhgaD_cqWP?usp=sharing
- 6/11 金曜日
添加学習について.
ニューラルネットワークを分類に使うとき,最終層のニューロンの数は,分類数に等しい. 学習済みのニューラルネットワークを使うとき,分類数が違うなどの理由で,最終層を取り除いて使うことがある.最終層を取り除いた残りが,「自分が分類したい画像でうまく動くか」の事前確認は簡単なプログラムですばやく行うことができる.
- 6/8 火曜日
画像データの増量
ニューラルネットワークで画像分類を行う.画像データの増量がどういうものか, 画像データの増量により分類精度が改善,過学習が改善することを見てもらう
https://www.kkaneko.jp/ai/imclassify/augment.html
画像分類での,学習済みモデルのダウンロードと使用
ImageNet (1000万枚以上の画像データ,約20,000種類の分類済み) で学習済みの学習済みモデルのダウンロード使用する
- 6/4 金曜日
ニューラルネットワークの用途は
- 分類
- 予測
- 合成(翻訳や、フェイクビデオの合成など)
- 認識(顔認識、物体認識、ポーズの認識など。)。
分類は、いろいろ種類があるが、「画像分類」について、一連の流れを説明する。
流れ:ニューラルネットワークの作成 ー> 学習 ー> 検証
この流れは、ニューラルネットワークを使い学習するというときは、だいたい同じである。
画像分離のニューラルネットワークは、既存の研究として CNN がある。CNN にも様々種類がある。
さまざまある CNN は、インターネットでダウンロードして使うことができる。
学習済みの CNN を、インターネットでダウンロードして使うこともできる。
中間発表 各自の活動 ・テーマを決める ・仮説、実験、検証 ・自分の研究の「基礎」は自分で理解し、「基礎」が何なのか、自分なりに調べたことも発表に含めてよい ・Google Colab 等を用いて実験にチャレンジ。「うまくいかないこと」に直面したら、それがどういう問題で、どう解決できそうか、という考察が大事。仲間や先生に助けを求めてみることも。 ・ポスターを作り、セレッソでアップロード(予定) ・先生から質問が来るので答える(予定) 学会発表 各自の活動 ・仮説、実験、検証 ・発表持ち時間の範囲で、自分の研究について発表する
- 6/1 火曜日
ニューラルネットワークの学習の基礎
エポック: 同一の教師データを繰り返し使用して学習.1回しか使わない場合は学習不足の問題がありえる.そのことを解決.
過学習(オーバーフィットともいう): 教師データの繰り返し使用により,精度は向上するが,検証データでの精度は向上しないか低下.
過学習の可能性があるため,必ず,検証データでの精度の検証を行う
過学習の解決
- 5/25 火曜日 13:30 (遠隔)
研究の基礎
研究室の諸君による提案とフィードバック
皆さんの検討を誇らしく思います。
皆さんの提案は、それぞれ、個性あり、特色のあるものでした。 各人の提案の個性を尊重したいため、私が、そのままコピー&ペーストすることは避けます。どのような提案がなされたかの内容を、次のようにまとめ、皆さんとシェアしたいと思います。
人工知能の良さ: コンピュータに学習能力等を持たせる技術。人間の想定を超えた学習がありえる。人工知能の学習のためには、大量のデータが必要であるし、学習に適した優れたデータを必要とする。
- 人工知能、そして、画像処理の基礎となる技術
- ディープニューラルネットワークのモデル
- ディープニューラルネットワークの学習
- ディープニューラルネットワークの学習のためのデータセット
- 機械学習(最近傍、決定木などで、データの自動分類を行う技術)
- 3次元世界のデジタル化
- レーザーレンジファインダ等による計測技術、機器の精度や機器の解像度や機器の計測範囲にも注意を要する。
- 複数画像からの立体再構成(Structure from Motion など)
- 立体再構成の結果を使った自己位置推定(自分のカメラの位置と向きの推定)、それによる測量
- 質感の再現(画像処理、CGのテクスチャマッピングなど)
- 顔認証、顔識別、画像認識の技術
- 顔識別のための、前処理として、顔のアラインメント
- 顔のランドマーク(眉毛、目、鼻、口、顔の輪郭など)
- 顔のランドマークからの表情判定
- まばたきの識別
- 顔のランドマークや、顔の姿勢を、3次元モデルにリアルタイムに反映させて、3次元モデルを動かしたり、変形する技術
- 人工知能、そして、画像処理の基礎となる技術
- 5/21, 宿題について,電子メールでアナウンスしました.
宿題について
各自「研究したいこと」を行うには、何の技術を使いますか。そして、その技術がうまく動く「基礎」は何でしょうか?
- 5/18 火曜日 13:30 (遠隔)
次の問いを、金曜日13時30分までの宿題とします。
各自「研究したいこと」を行うには、何の技術を使いますか。そして、その技術がうまく動く「基礎」は何でしょうか?
- 基礎も大事にする。
- 中間発表の材料にもなる。
- 自分が調べたことを、他の人とシェアする体験を行っておく。
- 今後、各自、調査、実験計画、実験準備、考察、目標決めなどの活動を自主的に 行っていただくことに変わりありません。
各自の研究テーマの確認を行いました.
人工知能応用,3次元データベースの分野でした.
各自が自己考察を開始するきっかけとなることも願っています.
- 5/14 金曜日 13:30 (遠隔)
皆さんの不安がないこと.楽しく(無用なストレスなく)実験や調査などの取り組みができること.コロナ禍に正しく対応すること.年間スケジュールを再確認すること.卒論のテーマについて,各自で考察すること.
- 5/11 火曜日 13:30 (遠隔)
連絡事項.本学は当面の間,レベル2が継続します. 卒業研究での学びが最大限できますよう,次のように措置します.
- 5 月中は、遠隔を継続します。
- 週2回に増やします.火曜の13:30開始と,金曜日の13:30開始
- 次回は 5/14 13:30 とします.
- 5/14 13:30 の回では,卒業論文テーマ説明を行います(3月にも行いました.一部同じ内容ですが,より詳しく話したいと思います)
- ノートパソコンの貸し出しなどできます.自宅で,実際の作業,実験を開始できるかの相談です(6月も遠隔になる可能性を想定します)
オープンな世界地図 OpenStreetMapを Blender で利用し,3次元地図を作る.
OpenStreetMap のURL: https://openstreetmap.jp#zoom=7&lat=38.06539&lon=139.04297&layers=B0FF
- 5/7 金曜日 13:30 予定 (遠隔)
資料:https://www.kkaneko.jp/cc/dbenshu/db1.pdf
大量データの管理.
数十万行のデータを扱うという機会は,よくあります.Excel で数十万行のデータを扱おうとすると,ちょっとした処理で1時間近くかかった,ということもありえます.
そこで,リレーショナルデータベースが役に立ちます.
リレーショナルデータベースは授業で学んだ,SQL は独特,と思っている人もいるかもしれません.
Python と SQL の組み合わせを教えます. これで,数十万行のデータが入ったファイルを Python で読み込んで,SQL で簡単に高速処理が簡単にできるスキルが身につきます. 実演では,150行のCSV ファイル(カンマ区切りファイル)を,リレーショナルデータベースに取り込むことがとても簡単にできることを示します(将来,大量データを扱うことになったときに役に立つスキルです).
- SQL (テーブル定義,行の挿入,問い合わせ)
- Python との連携(Python の中で SQL を使う)
- CSV ファイル(カンマ区切りファイル)を Python で読み込み,そして,リレーショナルデータベースを作り,使う.
- 4/27 火曜日 13:30, 次元削減
その資料
- 4/20 火曜日 13:30, Python 入門
Python について.Python は簡単に使うことができるプログラミング言語.卒業研究でも便利に使っていきたい.
Python と Google Colaboratory: Python 入門(全14回,Python Tutor と CodeCombat を使用): 別ページ »で説明ている
【サイト内の関連ページ】
- Python 入門: 別ページに準備している
- Windows でのセットアップ(Python や Python 開発環境のインストールを含む):別ページ »で説明
- Windows での Python のインストール: 別ページ »で説明:別ページ »で説明
- その他,
Python については,Pythonのページに資料を置いている
- 4/13 火曜日, 人工知能を用いた一般物体検出
人工知能でできることとして,今まで見ていただいた「分類」のほかに,「一般物体検出」があることを見ていただきます.
TensorFlow 2 Object Detection API (オブジェクト検出 API),TensorFlow のチュートリアルのプログラムを使用
このプログラムでは,CenterNet HourGlass104 1024x1024 を用いている. そして,COCO データセットを用いて事前学習済みのものを用いている.
- 4/6 火曜日, 人工知能を用いた画像分類,データのデータ拡張 (data augmentation) の効果
人工知能の学習では「データのデータ拡張」が必須である(教師データを数万以上に増量する必要がある) ことを見ていただきます
増量前
増量後
- 3/30, 文章の2クラス分類(ニューラルネットワークを利用)
2クラス分類,モデルの作成と学習と検証(TensorFlow,Keras,IMDb データセットを使用)
- 3/23, 3次元地図の制作
オープンデータ(建物や地形のオープンデータ)を活用して,3次元地図を作成する. (データの著作権は製作者にあり,適切な利用を心がけること)
- 3/16, TensorFlow データセットの利用,モデルの作成,モデルのコンパイル、モデルの学習,モデルの検証(ニューラルネットワークを使用)
ニューラルネットワークの学習を行うときのポイント:データセットを準備する.そして,検証を行う(学習不足や過学習がないことを確認する).
- モデルの作成と学習と検証(学習では TensorFlow データセットのMNIST データセットを使用)(TensorFlow を使用)
- 3/9, OpenCV を用いた文字検知(人工知能の機能を一部紹介)(ニューラルネットワークを使用)
簡単なプログラムで動くことを見てもらう.他のプログラムの中に組み込んで使うことも簡単にできるということはお伝えしておく.
- 3/2, 人工知能による画像分類(ニューラルネットワークを使用)
Google Colaboratory でのオンラインでの実行など
活動記録
- 12/8
OpenPose: 人体のポーズ,指の形などをコンピュータが読み取る. 様態や人間の意図をコンピュータが判断できる技術の基礎になりえる.
- 人工知能でできること:人体のポーズの認識、指の動き等の認識
- OpenPose のセットアップ
自分のパソコンでもインストールできます
(研究室のパソコンでインストール済みであれば,そのまま使う.インストールがまだであれば,インストールする)
- OpenPose の諸機能確認 : 動作不具合があれば対処します
人体のポーズの認識、指の動き等の認識
資料:OpenPose による姿勢推定(Windows 上)
資料の「CPU 版を使う場合」は行わない(資料のその部分は飛ばしてください)
- カメラで各自体験 (ここまで終えたら小休止とする)
- OpenPose のセットアップ
- 実験、研究のプロセスや実験データの整備について体験的に学ぶ
- 手や顔の匿名化ができる技術の紹介
手や顔にモザイクをかける
- JSONデータファイル, OpenPose での JSON データファイル
- OpenPose を用いた実験テーマを各グループで定めること。この実験テーマは、今回の授業で使う(次回以降は別のことを行う)
例1:コンピュータが人数カウント 例2:コンピュータがポーズを読み取り、人間の意図を推定 例3:コンピュータが指の動きを読みとり、人間の意図を推定
- 実験データ収集(グループワーク)
上で定めた「実験テーマ」で実験できるだけのデータを、どのようにして集めますか? 実際に集め、そして、考察を行う。考察とは、次のことを考えるプロセスである
- 実際に集めて発見したこと
- もう一度集めなおすとしたら何を改良できるか
- 実際に集めたデータにどのような誤差があるか
- 別のやり方があるか
- 集めたデータが今後何に使えそうかを自分なりに考える
- 実験データ提出,実験データ公開
同意できる場合には、実験データを学内もしくは世界に公開します
- 手や顔の匿名化ができる技術の紹介
- 人工知能でできること:人体のポーズの認識、指の動き等の認識
- 12/1
説明資料: Dlib の機能概要 [PDF], [パワーポイント]
顔検出、顔のアラインメント、顔認識、表情や顔の向きの観測
認証、人数カウント、人流計測、集団様態分析のベースとなる技術
- 顔認識の例
- Dlibを用いた画像分類、物体検出、ランドマーク検出
Dlibは、上で示した「顔認識」の基礎でもある
- Dlib による顔検出を行う Python プログラム(Dlib, Python を使用)(Windows 上)
- Dlib による顔のアラインメント,顔データの増量,顔のランドマーク,顔のコード化(Dlib,Python を使用)(Windows 上)
- 1adrianb/face-alignment のインストールと動作確認(顔の2次元,3次元のランドマーク)(PyTorch,Python 3.7 を使用)(Windows 上)
- 表情判定
ezgiakcora/Facial-Expression-Keras のインストールと動作確認(表情推定)(Dlib,Python を使用)(Windows 上)
https://github.com/ezgiakcora/Facial-Expression-Keras で公開されている成果物を使用 - 顔識別
face_recognition による顔検出,顔識別(Dlib,ageitgey/face_recognition,Python を使用)(Windows 上)
https://github.com/ageitgey/face_recognition で公開されている成果物を使用 - 頭部の姿勢推定
- 頭部の姿勢推定を行ってみる
このページで,前半部分(準備の部分)は終えている.スクロールして,「lincolnhard/head-pose-estimation による頭部の姿勢推定」のところから取り組む. (プログラムの書き換えの作業があります)
- 頭部の姿勢推定を行ってみる
- 瞳孔の検出
- TobiasRoeddiger/PupilTracker のインストールと動作確認(瞳孔の検出)(Dlib,Python を使用)(Windows 上)
このページで,前半部分(準備の部分)は終えている.スクロールして,「TobiasRoeddiger/PupilTracker による瞳孔の検知」のところから取り組む. (プログラムの書き換えの作業があります)なお,表示結果では,赤いマークは目の下の中央、緑のマークが瞳孔
- TobiasRoeddiger/PupilTracker のインストールと動作確認(瞳孔の検出)(Dlib,Python を使用)(Windows 上)
- 11/24
ガイダンス
- 教員自己紹介 金子邦彦
- 卒論テーマ
人工知能応用、データベース応用、データベース高速処理、3次元データベース、ビッグデータ処理(センサーによる車両や人流の観測と把握)に関する分野
- 実績:
科研費多数、研究費のべ1億円以上、論文等数十、教科書3冊、授業担当のべ約20以上、学会や国レベルの委員等の実績、卒論・修論・博士論文実績数十名以上、Webページでの広報等: https://www.kkaneko.jp、YouTubeチャンネルでの広報等
- 研究を効率よく、やる気を維持し行うには
- 楽しく、仲間によい影響を与える
- 原理原則、基礎、ものごとの本質をとらえる
- 仮説 ⇒ 実験 ⇒ 考察の手順を踏む、記録が大事、伝えることも大事、グループワークも大事
- 行事予定
- 7月:中間発表、学会活動(原稿)、11月:学会プレゼン、12月:卒論、卒論プレゼン、3月:学会プレゼン (学会は希望者のみ)
- 3次元データベース,写真からの3次元再構成(写真測量)(Meshroom を使用)
3次元データベース,写真からの3次元再構成(写真測量)(Meshroom を使用) [PDF], [パワーポイント]
- テーマ名:3次元データベース,写真からの3次元再構成(写真測量)
- 内容:写真をもとに、立体再構成(写真測量)を行う。
- 事前準備:NVIDIA GPU 搭載のパソコンが必要である
- 基礎:画像の特徴点、Structure from Motion 技術
- 実習で行うこと:写真をもとに、立体再構成(写真測量)を行う。
- 実習手順
公開されている次のソフトウェアを使用(利用条件等は,利用者で確認すること)
- 宿題あり(授業時間中に実施) 2グループ(または3グループ)でのグループワーク。 計画を立てる(何を撮影するか。現地で決めてもよい)。撮影する。撮影結果を提出する(その確認は、次回授業で行うこととする)。 撮影枚数は、各グループで50から100枚程度。提出するのは来週火曜日の授業のときとする。
- 福山大学のビデオ,3次元化(SfM, MVS)