|
教員名 : 田村 仁
|
授業コード
510450
オムニバス
科目名
画像・視覚システム
科目名(英語)
Image processing and computer vision system
配当学年
3年
単位数
2単位
年度学期
2025年度春学期
曜日時限
金曜1限
対象学科
先_ロボ
コース
科目区分
専門科目
必選の別
選択科目
担当者
田村 仁
教室
3-323
実務家教員担当授業
授業の目的と進め方
人間と共生するロボット等の自動機械では、人間同等の視覚システムが望まれる。この授業では画像視覚システムを構築するために必要な知識として、画像視覚システムの基礎となる要素技術や画像視覚システム例などを修得する。毎回講義での説明と演習による画像処理プログラムの作成演習を行い、実際の処理手続きを理解する。2つ以上の課題レポートをポータルに提出し、各自に評価を公開する。
達成目標1
デジタル画像表現について解像度・階調数・周波数など基本要素を説明2きる。【20%】
達成目標2
階調変換・画像圧縮など基本的な画像処理について説明できる。【20%】
達成目標3
コンピュータビジョンシステムやロボットビジョンシステムについて説明できる。【20%】
達成目標4
OpenCVライブラリを使用したプログラムを作成できる。【40%】
達成目標5
達成目標6
達成目標7
アクティブラーニング
ディスカッション
ディベート
グループワーク
プレゼンテーション
実習
○
フィールドワーク
その他課題解決型学習
授業計画
授業時間外課題(予習および復習を含む)
第1回
ガイダンス・コンピュータビジョンとは
画像処理の概要とOpenCVについて学修する。画像処理とコンピュータビジョンの説明をし、OpenCVを紹介する。最後にこの授業の各回の内容を概説する。 (予習)OpenvCVについて調べておくこと(1時間)。
(復習)自分が所有するスマートフォン、に様々なカメラアプリをインストールしてどのような機能があるのか確認してみる(1時間)。 第2回
画像入力装置
カメラやスキャナの仕組みなど画像入力装置について学修する。カメラの構造とカラー画像のRAWフォーマットの記録方式や、スキャナの構造などを説明する。さらに自分のPCでPythonからOpenCVを利用するための設定方法について演習する。 (予習)デジタルカメラのCCD素子とCMOS素子、赤外線カメラについて調べておく(1時間)。
(復習)OpenCVのインストールを完了しておく(1時間)。 第3回
デジタル画像の仕組み
デジタル画像の仕組みについて学修する。デジタル画像と等価なデータをExcel上で表現してみて、簡単な画像処理の原理について演習する。またテキストエディタを使って手作業で画像データをいちから作成する演習を行う。最後にOpenCVにおける画像表現について学修しどのように画像変数を宣言、初期化するか理解する。 (予習)サンプリング定理とデジタル画像の基本要素について調べておく(1時間)。
(復習)Excelを使った画像処理演習を行った結果を報告する(1時間)。 第4回
表色系と静止画の規格
カラーの表現と静止画のフォーマットについて学修する。BMP、JPG、GIF、PNGなどの画像フォーマットの特徴と、代表的な色空間であるRGB、YUV、HSV、CIELabの構成について学修する。また、基本的な画像処理プログラムの雛形を動作させ、カラー画像をグレースケール画像に変換するプログラムを作成する演習を行う。 (予習)色の表現にはどのようなものがあるのか、RGB、CIELab、HSL、XYZなど調べておく(1時間)。
(復習)RGB画像からモノクロ画像を生成するプログラムを作成し結果を報告する(1時間)。 第5回
画像の濃淡変換
画像の階調変換について学修する。まず濃淡画像(グレースケール画像)の処理について概説し、画像のヒストグラムを使ったヒストグラム均一化処理、トーンカーブを使った階調変換処理、ガンマ変換、S字カーブ変換、ハーフトーン処理について修得する。 (予習)S字カーブ変換、ガンマ変換、ヒストグラム均一化について調べておくこと(1時間)。
(復習)画像のS字カーブ変換のプログラムを作成する(1時間)。 第6回
デジタルフィルタ処理
デジタルフィルタ処理について学修する。まずデジタルフィルタの基礎となるフーリエ変換と周波数成分について説明を受け、2次元(空間)フィルタの基本を理解する。そして代表的な平滑化フィルタやメディアンフィルタ、Sobelフィルタ、laplacianフィルタを、Excel上で実際に計算したり、OpenCVでプログラミングする演習を行う。 (予習)デジタル画像のぼかし処理、鮮明化処理、輪郭線抽出はどのように行われるか調べておく(1時間)。
(復習)実際にこれらのフィルタをExcel上で計算した結果を報告する(1時間)。 第7回
二値画像処理とマスク処理
二値画像処理について学修する。単純な明度による2値化処理、特定色抽出による2値化画像について理解し、膨張・収縮によるノイズ(孤立点と孔)を処理する演習を行う。また2値画像を用いたマスク処理と合わせて最終的にクロマキー合成を演習する。 (予習)画像の二値化手法について調べておく。マスク処理や画像のアルファとは何か(1時間)。
(復習)クロマキー合成プログラムを完成させて報告する(1時間)。 第8回
ラベリングと形状特徴
80年代の古典的な画像認識手法について学修する。画像を認識をするためにまず2値画像のラベリング処理と2値画像の形状特徴について理解する。輪郭線追跡を使ったラベリングと、面積・周囲長・円形度・重心・慣性主軸などの形状特徴を実際に求めてみる。 (予習)二次元形状の重心の計算方法や、主軸の求め方などを調べておくこと(1時間)。
(復習)ラベリング処理を行い、最大面積のブロブを抽出し、ブロブの重心と主軸、円形度を求めるプログラムと、外接長方形、凸包を生成するプログラムを作成し報告すること(1時間)。 第9回
複数画像の処理
複数画像を使った画像処理、第7回のクロマキー合成とアルファブレンディングなどの画像合成、背景差分とフレーム間差分処理、動画像処理について学修する。また、この段階で今までの総合課題としてじゃんけんの手を判定するプログラム課題に挑戦する。 (予習)背景差分処理、フレーム間差分処理とは何か調べておくこと(1時間)。
(復習)カメラ映像や動画ファイルを使った動画像処理プログラムの例としてじゃんけん判定プログラムを作成すること(1時間)。 第10回
幾何変換
画像の幾何学変換について学修する。基本となる線形変換とアフィン変換について理解し、これらの変換によって画像を生成するための補間法について学ぶ。実際に変換プログラムを作成する演習を行う。 (予習)補間法、アフィン変換、透視変換について調べておく(1時間)。
(復習)斜めから写っている看板画像を、正面から撮影したかのような画像に射影変換するプログラムを作成し報告する(1時間)。 第11回
画像の特徴点と特徴量
画像の特徴点について学修する。古くから用いられてるエッジ・コーナ特徴やHough変換について紹介し、現代的な特徴点の考え方である特徴量記述について説明する。その上で現在多用されているSHIFT特徴量、AKAZE特徴量、ORB特徴量の説明と、それを利用した画像レジストレーションを行う演習を行う。複数の撮影点が少しずれた画像から特徴量を抽出し、うまく重ね合わせるように射影変換を行い、パノラマ画像を合成する。 (予習)画像レジストレーションとは何か、そこに使用される技術は何か調べておく(1時間)。
(復習)撮影位置が少しずれた二枚の画像を画像レジストレーションするプログラムを作成する(1時間)。 第12回
物体追跡手法
動画からの物体追跡手法について学修する。まず古典的な運動復元手法であるオプティカルフローについて理解し、そこで用いられる基本的な技法画像ピラミッドや、オプティカルフローを用いた手ブレ補正を行う演習を行う。そして、古典的な物体追跡手法であるテンプレートマッチング、maeanshift、CAMshift、カルマンフィルタ、パーティクルフィルタについて学修する。 (予習)meanshit、camshift、カルマンフィルタ、パーティクルフィルタなど物体追跡の各手法の特徴を調べておく(1時間)。
(復習)前回の特徴点と組み合わせた物体追跡プログラムを作成する(1時間)。 第13回
機械学習
画像処理分野での機械学習について学修する。まず機械学習の定義について理解し、代表的な機械学習手法として、主成分分析、K-means法、k最近傍法、ベイズ識別、サポートベクトルマシン、決定木、ブースティング、ニューラルネットワークについて学修する。 (予習)機械学習の定義や機械学習の手法について調べておく(1時間)。
(復習)各機械学習手法の特徴と利用目的についてまとめる(1時間)。 第14回
深層学習
深層学習と今後の課題について学修する。ニューラルネットワークの古典である多層パーセプトロンとそれを拡張した深層学習(ディープラーニング)について理解する。深層学習の基礎となる確率的勾配降下法と誤差逆伝播法について学修し、深層学習の応用であるジェネレータによる画像合成による深層学習の応用先の拡張と限界について議論する。 (予習)これまでの授業に対する質問をあらかじめ用意しておく(1時間)。
(復習)これまでの講義内容をすべてまとめてみること(1時間)。 課題等に対するフィードバック
サポータルの小テストで正答率が低かった問題に対しては授業内で解説の時間を設ける。
サポータルの課題では評価やコメントを返却する。 評価方法と基準
(1)各回のキーワードに関する小テスト60%
(2)各回のサンプルプログラムを使って自分の用意した画像を実際に処理させる当日課題30% (3)OpenCVを使用したプログラム作成の総合課題10% プログラムリスト、入力画像例と出力画像例(自分で撮影したものに限る)などを記述したレポートをポータルへ提出されたものを評価する。 合計点数で60点以上をC評価とする。 テキスト
小枝正直・上田悦子・中村恭之『OpenCVによる画像処理入門 改訂第3版』講談社(2022)[ISBN:978-4-06-530117-3]
参考図書
小枝正直・上田悦子・中村恭之『OpenCVによるコンピュータビジョン・機械学習入門』講談社(2017)[ISBN:978-4-06-153830-6]
科目の位置づけ(学習・教育目標との対応)
ロボティクス学科の専門科目であり、情報系科目のひとつである。ロボットの専門知識のひとつである画像処理について学ぶ。また、総合課題を通じて実践的技術力を身に着ける。3年生向けに配置されており、1年、2年で学んだプログラミングや情報処理に関しての知識を元に、応用的な情報処理システムとしてコンピュータビジョンシステムの構築について学ぶ。
履修登録前の準備
ノートPCで学内LANに接続し、サポータルやその他のWebサイトにアクセスできるようにしておくこと。プログラミング作業するのにノートPCが必要なため、スマートフォンでは代用できない。
プログラミングの知識・技能を身につけておくこと。1年の「プログラミング言語」を修得相当のプログラミングの知識・技能が必要となる。 |