「おかやま組込みシステム・AI実践講座」 演習概要
組込み画像処理演習
組込み画像処理演習では,組込みシングルボードコンピュータの一つである Raspberry Pi を用いた画像処理について,実際に手を動かしながら学びます. Raspberry Pi に組み込まれたカメラで撮影した映像に対して,画像処理やAIを用いた物体検出を施すためのプログラミング技術について学ぶとともに,ネットワーク経由でのボード上の画像処理を行うための通信プログラミングや,GUIを備えた画像処理アプリケーションの開発技術を身につけることを目的とします.
組込み画像処理演習は,以下の4つの演習によって構成されます.
- 組込みカメラを用いた画像処理
- AIによる物体検出①(分類器の実装)
- AIによる物体検出②(YOLOの利用)
- ネットワークを介したボード上の画像処理
この一連の演習を受講することで,監視カメラやマシンビジョンといった組込み画像処理システムを実現するための実践的なスキルを身につけることができます.
組込みカメラを用いた画像処理
演習「組込みカメラを用いた画像処理」では,組込みシステムにおける画像処理とその実装手法について学びます. この演習では以下の内容を扱っており,Raspberry Piの組込みカメラで撮影した映像に対して,様々な画像処理を施すためのプログラミングを行います.
- Raspberry Pi上でのプログラミング
- 画像入出力・フィルタの実装
- Raspberry Piでのカメラ入出力
- Haar-like 特徴を用いた物体検出
AIによる物体検出①(分類器の実装)
演習「AIによる物体検出①(分類器の実装)」では,AIによって物体検出を行うための学習データの生成手法とその実装について学びます. この演習では,Haar-Like特徴とカスケード分類器を用いて識別を行うプログラムを作成します. さらに,正解データの水増しや不正解データの作成など,学習データの生成についても学びます.
この演習では,以下の内容を扱います.
- カスケード分類器の実装
- 検出対象の変更
- 学習データ生成フローの実装
AIによる物体検出②(YOLOの利用)
演習「AIによる物体検出②(YOLOの利用)」では,機械学習ライブラリを用いて物体検出を行うための手法について学びます. この演習では以下の内容を扱っており,機械学習技術が発展してきた背景について解説するとともに,OpenCVのDNNモジュールを用いて,YOLOを用いた物体検出を行うプログラムを作成します.
- モデル読み込みと前処理
- YOLOによる推論と結果の描画
- パラメータチューニングと精度の評価
ネットワークを介したボード上の画像処理
演習「ネットワークを介したボード上の画像処理」では,ネットワークを介した画像通信プログラミングについて学びます. この演習では以下の内容を扱っており,クライアントであるPCからネットワークを経由してサーバであるRaspberry Piボードと通信を行い,組込みカメラで物体検出を行った結果を取得します. また,クライアントで画像解析を行うGUIアプリの開発も併せて行います.
- Pythonでのソケットサーバ実装
- TCP受信と画像デコードの実装
- WinForms GUI アプリの作成
- マルチスレッド対応とライブストリーミング
組込みAIプログラミング演習
組込みAIプログラミング演習は以下の3つの演習によって構成されており,Pythonと機械学習ライブラリを使って,機械学習プログラミングの入門から自然言語処理や画像処理への応用までをハンズオンで学びます.
- 機械学習プログラミング
- AIによる自然言語処理
- AIによる画像処理
まず,機械学習ライブラリを用いたプログラムの実装や,識別器の性能評価手法について学びます. また,自然言語処理に関しては,テキストの形態素解析,TF-IDFなどのベクトル化,クラスタリング,そして分類といった基礎的な技術を習得します. 画像処理に関しては,TensorFlowを用いたモデルの作成および学習,畳み込みニューラルネットワークの理論と実践,そして画像分類への適用について学びます.
機械学習プログラミング
演習「機械学習プログラミング」では,機械学習プログラミングの基礎について学びます. この演習では以下の内容を扱っており,機械学習ライブラリである scikit-learn を用いたモデルの構築や学習,そして得られたモデルの性能評価手法について学びます.
- 解析解・数値解による線形回帰の実装
- scikit-learn を用いたモデル構築と学習
- k-fold 交差検証や F1-スコアによる性能評価
AIによる自然言語処理
演習「AIによる自然言語処理」では,機械学習を用いた自然言語処理について学びます. この演習では以下の内容を扱っており,ライブラリを用いたテキストの形態素解析や,テキストのベクトル化手法について学ぶとともに,テキストのクラスタリングやロジスティック回帰による分類を行います.
- 形態素解析ライブラリによる日本語テキストの分割
- Bag-of-Words/TF-IDF,Word2Vecによるテキストのベクトル化
- 教師なしクラスタリングと教師あり分類によるテキスト解析
AIによる画像処理
演習「AIによる画像処理」では,機械学習を用いた画像処理について学びます. この演習では以下の内容を扱っており,TensorFlowによるモデルの構築と学習や,畳み込みニューラルネットワークについて学ぶとともに,画像処理への応用について学びます.
- TensorFlowによるニューラルネットワークの構築と学習
- 畳み込みニューラルネットワーク (CNN) の理論および実装
- 画像分類タスクでのモデル性能の比較
組込みAI開発実践技術演習
組込みAI開発実践技術演習では,形式的検証技術の一つであるモデル検査を用いた組込みシステムの検証技術について,事例をもとに作成した課題を用いて学びます.
組込みAI開発実践技術演習は,以下の2つの演習によって構成されます.
- モデル検査によるシステム検証入門
- モデル検査によるシステム検証実践
この演習を受講することで,モデル検査ツールを利用するための知識・スキルを身につけるとともに,組込みシステムの不具合解析のための技術を習得することができます.
組込みシステム開発実践演習
組込みシステム開発実践演習では,機械学習タスクを題材とした,グループワークによる課題解決型演習を実施します. この演習では,CGを用いて学習データを自動生成し,それを用いて機械学習を行うための手順について説明します. さらに,机上のナットの個数検出を題材として,グループワークによって問題解決のための手段の検討および実装を行います.
この演習を受講することで,機械学習による組込み画像処理システムを実装するための技術を習得するとともに,精度向上のための様々なアプローチについても実践的に学ぶことができます.