人工知能のプログラム実行体験と探求(Windows上)
文字認識や音声認識などの基礎的なAIプログラムを集めて、学生や技術者が学習できるようにWebサイトで公開している。Windows PCでの実行環境構築方法も用意されているため、利用者は興味関心や理解度の進展に応じて様々なAI技術を選択し、実際に動かしながら段階的に技術を習得できる。
目次
- AIアシスタント:画像理解
- 自然言語処理とコンピュータビジョンの融合:画像とテキストの類似性,画像キャプション生成,Visual Question Answering
- コンピュータビジョン:画像分類,画像タギング
- コンピュータビジョン:物体検出
- コンピュータビジョン:人物検出
- コンピュータビジョン:インスタンスセグメンテーション
- コンピュータビジョン:セマンティックセグメンテーション
- コンピュータビジョン:顔情報処理
- コンピュータビジョン:姿勢推定
- コンピュータビジョン:眼球運動
- コンピュータビジョン:画像からの特徴抽出
- コンピュータビジョン:画像処理,動画像処理
- コンピュータビジョン:画像からの深度推定
- コンピュータビジョン:トラッキングビジョン
- 画質改善
- 文字認識・音声認識
- 音声処理
- シミュレーション・応用技術
- ゲームAI
- 自然言語処理・LLM
- パワーポイントファイルの処理
- AI技術の基礎理論と解説
- 機械学習・深層学習の基礎実習
- 機械学習の最適化と評価技術
自然言語処理とコンピュータビジョンの融合
自然言語処理とコンピュータビジョンの融合
- SigLIP2による画像とテキストの類似性判定
SigLIP2(Vision Transformerベース)を用いて事前学習なしの単語等による画像分類を行うゼロショット学習。SigLIP2の4種類のモデル(base-patch16-224からso400m-patch14-384)の性能比較ができるPythonプログラム、画像とテキストの埋め込み空間や類似度計算などの解説付き。
- CLIPによる画像とテキストの類似性算出(ソースコードと実行結果)
- BLIP-2 による Visual Question Answering(ソースコードと実行結果)
- InstructBLIP による Visual Question Answering(ソースコードと実行結果)
- LLaVA-NeXTによる商業施設向けAI案内(ソースコードと実行結果)
- LLaVa による画像理解(静止画用)(ソースコードと実行結果)
- YOLOE によるオープンボキャブラリ物体検出・追跡
コンピュータビジョン:画像分類
- ConvNeXt XLargeによる動画画像の画像分類(ソースコードと実行結果)
- ConvNeXt XLargeによる静止画像の画像分類(ソースコードと実行結果)
- EfficientNetV2による画像分類
【概要】EfficientNetV2-Sを使用してリアルタイム画像分類を実行する。改良されたアーキテクチャとTraining-Aware Neural Architecture Searchにより画像全体のクラス分類を学習し、YOLO11-clsを上回る精度と効率性を実現。Windows環境での実行手順、プログラムコード、実験アイデアを含む。
- MambaOut による画像分類
【概要】MambaOutはMambaアーキテクチャからState Space Model(SSM)を除去したアーキテクチャで、除去の結果ConvNeXtと同一構造となった。この発見によりMambaの視覚タスクにおける有効性が再検討された。4ステージ階層構造と7×7深さ方向畳み込みを特徴とする。Windows環境での実行手順、プログラムコード、実験アイデアを含む。
コンピュータビジョン:物体検出
- MediaPipeによる物体検出(ソースコードと実行結果)
- YOLOv10による物体検出(ソースコードと実行結果)
- YOLO11による物体検出
【概要】YOLO11を使用してリアルタイム物体検出を実行。Enhanced Feature Extractionにより物体検出の学習を実行し、5種類のモデルサイズによる精度と速度の比較実験が可能。Windows環境での実行手順、プログラムコード、実験アイデアを含む。
- YOLO12による物体検出(ソースコードと実行結果)
- RT-DETRv2 による物体検出
【概要】RT-DETRはTransformerベースの物体検出技術。学習済みモデルにより80種類のCOCO物体を検出可能。Windows環境での実行手順、プログラムコード、実験アイデアを含む。
- YOLO11によるOBB(回転物体検出)
【概要】YOLO11-OBBを使用してリアルタイム回転物体検出を実行。Enhanced Feature Extractionにより任意の角度で回転した物体を検出し、5種類のモデルサイズによる精度と速度の比較実験が可能。Windows環境での実行手順、プログラムコード、実験アイデアを含む。
- Albumentations物体検出データ拡張
本プログラムでは、Albumentationsライブラリを使用してサンプル画像に対して複数の変換手法を組み合わせたデータ拡張を実行する。幾何学的変換(回転、スケール、平行移動)、色彩変換(明度、コントラスト調整)、ノイズ追加などの処理を適用し、バウンディングボックス座標を変換に合わせて自動調整する。拡張前後の画像とバウンディングボックスの変化を可視化することで、データ拡張の効果を確認できる。
コンピュータビジョン:人物検出
コンピュータビジョン:インスタンスセグメンテーション
- YOLOE オープンボキャブラリ物体検出・セグメンテーション(ソースコードと実行結果)
- YOLO11によるインスタンスセグメンテーション
【概要】YOLO11-segを使用してリアルタイムインスタンスセグメンテーションを実行。Enhanced Feature Extractionにより物体検出と同時にピクセルレベルのセグメンテーションを学習し、5種類のモデルサイズによる精度と速度の比較実験が可能。Windows環境での実行手順、プログラムコード、実験アイデアを含む。
- SAM2による前景背景分離(ソースコードと実行結果)
- SAMによる画像セグメンテーション
【概要】Meta AI ResearchのSAM(Segment Anything Model)は、画像内の任意物体を分割するセグメンテーションモデルである。ゼロショット転移学習により未知の物体や環境でもセグメンテーションを実現。Windows環境での実行手順、プログラムコード、実験アイデアを含む。
- SAM2による画像セグメンテーション
- YOLOv11インスタンスセグメンテーションのためのデータオーグメンテーション
【概要】YOLO11セグメンテーションモデル用のデータオーグメンテーションの実装。COCO128データセットからの元画像128枚を回転・スケーリング・色調変更等により数千パターンに拡張し学習効果を向上させる。拡張画像は保存されず学習時のみ使用される。
コンピュータビジョン:セマンティックセグメンテーション
コンピュータビジョン:顔情報処理
- YOLOv11-Face 顔検出(ソースコードと実行結果)
- InsightFaceによる顔検出
【概要】 InsightFaceフレームワークのSCRFD技術を用いた顔検出プログラムの実装と実験を行う。SCRFDはサンプル分布を再配分することを特徴とする顔検出技術である。Webカメラから顔と5点キーポイントを検出する。Windows環境での実行手順、プログラムコード、実験アイデアを含む。
- InsightFaceによる68点3Dランドマーク検出
【概要】 InsightFaceフレームワークの68点3Dランドマーク検出技術を用いた顔解析プログラムの実装と実験を行う。68点3Dランドマーク検出は顔の主要な特徴点を3次元座標で特定する技術である。Webカメラから顔と68点ランドマークを検出する。Windows環境での実行手順、プログラムコード、実験アイデアを含む。
- Vision Transormer による表情推定システム
【概要】YOLOv11ベースの顔検出とVision Transformerを組み合わせた表情推定システム。顔を検出し、Ekmanの6基本感情+中性状態(怒り、嫌悪、恐怖、幸福、悲しみ、驚き、中性)を認識。68点顔キーポイント、16x16パッチ分割によるViTの文脈理解で、顔の向きや照明に頑健な感情分析を目指す。Windows環境での実行手順、プログラムコード、実験アイデアを含む。
- MediaPipe Face Landmarker による顔の変化分析(ソースコードと実行結果)
- InsightFace による顔の変化分析(ソースコードと実行結果)

コンピュータビジョン:姿勢推定
- MediaPipe Hands による手指ジェスチャー分析システム(ソースコードと実行結果)
- MediaPipe Hands による3次元手指ランドマーク検出と指接触判定
【概要】MediaPipe Handsは、カメラの映像から手の21点の3次元座標を推定する技術である。機械学習モデルにより単一のRGB画像から手の位置を検出し、各指の関節位置を3次元座標として出力する。手の姿勢を可視化し、関節角度の計算や手のスケール測定などの実験を通じて、コンピュータビジョンとジェスチャー認識の基礎を確認するWindows環境での実行手順、プログラムコード、実験アイデアを含む。
- MediaPipe Hands による3次元手指ランドマーク検出
- mediapipe pose landmarker による3次元姿勢推定
【概要】MediaPipe Pose Landmarkerは単一カメラから33個の人体ランドマーク点を2D/3D座標で推定するGoogleの機械学習技術である。BlazePose GHUMアーキテクチャを採用し、リアルタイム処理(10-30ms)が特徴である。正規化画像座標と世界座標を出力する。関節角度計算が可能で、フィットネス、姿勢分析、モーション解析に応用可能である。
- MediaPipe BlazePose による人間の無意識の姿勢からの感情予測(ソースコードと実行結果)
- MediaPipeによるしぐさ検出(ソースコードと実行結果)
- YOLOv11による2次元姿勢推定
【概要】YOLO11-poseを使用して、カメラから人体17箇所のキーポイント(鼻、目、耳、肩、肘、手首、腰、膝、足首)をリアルタイム検出。Nano・Small・Medium・Large・Extra-Largeの5種類のモデルサイズで精度と処理速度のトレードオフを比較実験可能。Windows環境での実行手順、プログラムコード、実験アイデアを含む。
- YOLOv8による2次元姿勢推定
【概要】YOLOv8-poseを使用してリアルタイム姿勢推定を実行。人体17箇所のキーポイント検出技術を学習し、5種類のモデルサイズによる精度と速度の比較実験が可能。Windows環境での実行手順、プログラムコード、実験アイデアを含む。
- 6DRepNet頭部3次元姿勢推定
【概要】6DRepNetは人間の頭部姿勢を推定するAI技術である。従来のEuler角表現と異なり、6次元回転表現を採用することで角度の曖昧性問題を解決し、推定を実現している。パソコンカメラを使用して頭部の向きを検出し、ピッチ・ヨー・ロール角度を数値とグラフィカルな軸表示で確認できる。Windows環境での実行手順、プログラムコード、実験アイデアを含む。
- TRG 6DoF頭部姿勢推定(プログラム作成中 trg6dof.html)
コンピュータビジョン:眼球運動
- MediaPipe Face Landmarkerによる瞳孔と虹彩追跡(ソースコードと実行結果)
- vaseye.html
コンピュータビジョン:画像からの特徴抽出
画像処理,動画像処理
- lcnn 記事作成中(内容確認中)
- LSD-VP消失点検出【概要】LSD(Line Segment Detector)は画像から線分を検出するアルゴリズムである。Hough変換より計算効率が高く、パラメータ調整不要という特徴を持つ。消失点は3次元空間の平行線が2次元画像上で収束する点である。処理は以下の手順で行われる。まず、LSDで画像から線分を検出する。次に、検出された線分の延長線の交点を計算する。そして、DBSCANで近接する交点をクラスタリングし、最後に各クラスタの中心を消失点として推定する。
- ResNet18特徴抽出による画像異常検知(ソースコードと実行結果)
- U-2-Net (U Square Net) による動画用オブジェクト顕著性検出(ソースコードと実行結果)
- vidstabによる動画手ぶれ補正
- ORB特徴点検出カメラキャプチャプログラム
Webカメラから映像を取得し、ORB特徴点検出により画像間の重なり面積を計算、設定した閾値(80%)以下になった時点で新しい視点のフレームとして保存するカメラキャプチャプログラム
コンピュータビジョン:画像からの深度推定
- MiDaSによる深度推定
【概要】MiDaSは単眼カメラから深度情報を推定するAI技術である。Webカメラを用いたリアルタイム深度推定プログラムにより、深度マップの可視化と単眼深度推定を確認する。Windows環境での実行手順、プログラムコード、実験アイデアを含む。
- DPT による床面段差検出(ソースコードと実行結果)
コンピュータビジョン:トラッキングビジョン
画質改善
- Real-ESRGANによる動画品質改善、顔復元(ソースコードと実行結果)
画質改善前
画質改善後 - InvSR による動画品質改善(ソースコードと実行結果)
画質改善前
画質改善後 - Zero-DCE++ による夜間・暗所動画画質改善(ソースコードと実行結果)
画質改善前
画質改善後
文字認識・音声認識
- YomiTokuによる印刷・手書き文字認識
【概要】Yomitokuを用いた文字認識を行う。7000文字超の日本語文字認識と縦書き・手書き文字に対応する。
- EasyOCR によるシーンテキスト検出・認識(英語・日本語対応)(ソースコードと実行結果)
- Whisper による文字起こし
【概要】OpenAI Whisperを使用して音声・動画ファイルをテキストに変換する。Windows環境での実行手順、プログラムコード、実験アイデアを含む。
音声処理
シミュレーション・応用技術
- 地形侵食シミュレーション
【概要】Python + NumPyによる物理ベースの水力侵食シミュレーション。fBmノイズで初期地形を生成し、降雨・水流・土砂運搬・堆積の物理プロセスを統合計算。128×128グリッドで100m×100mスケールの地形を数百年の侵食過程で変化させ、自然な河川パターンと谷地形を生成する。
ゲームAI
- Blender に3Dアセット(obj,mtl)の配置(ソースコードと実行結果)
- TripoSR による単一画像からの3次元モデル推定
- ゲーム画面でのアイテム認識と戦略決定
【概要】 物体検出AI「YOLO11」を用いたゲームAI実装を体験する。YOLO11を活用し、ゲーム画面内の物体をリアルタイムで検出・分析するシステムを構築する。プレイヤー、敵、アイテムの認識から戦略決定まで、AIがゲーム状況を理解する過程を実際のコードで学習する。Windows環境での実行手順、プログラムコード、実験アイデアを含む。
- Decision TransformerによるゲームAI
【概要】 Decision Transformerは強化学習を条件付きシーケンス生成問題として定式化する手法である。目標リターン(将来の累積報酬)を条件として与えることで、その目標を達成する行動系列を生成する。ここでは、5×5グリッドワールドゲームを題材に、AIが目標に応じて異なる戦略を選択する様子を実際に確認できる。


自然言語処理・LLM
- LUKEによる日本語感情分析プログラム(ソースコードと実行結果)
日本国憲法の分析結果 - SucachiPy による形態素解析
【概要】 日本語形態素解析ツール「SudachiPy」の体験を通じ、その技術と応用を学ぶ。SudachiPyは、多様な辞書と分割モードにより、日本語テキスト分析を実現する。プログラム実行で単語分割や品詞情報を確認でき、日本語処理の仕組みを理解できる。
日本国憲法の分析結果 - FastTextによる日本語文章類似度計算
【概要】 FastTextは単語を数値ベクトルに変換する単語埋め込み技術で、部分文字列情報により未知語にも対応できる。本教材では、日本語文書を形態素解析で単語分割し、各単語のベクトルを平均して文書ベクトルを生成、コサイン類似度で文書間の意味的類似性を計算する。実行結果はヒートマップで可視化され、AIによる文書理解の仕組みを体験できる。
- FastText日本語単語ベクトル演算
【概要】FastText技術を確認する。FastTextは、Bojanowski, P., Grave, E., Joulin, A., & Mikolov, T. (2017). Enriching Word Vectors with Subword Information. Transactions of the Association for Computational Linguistics, 5, 135-146.で提案された単語埋め込み手法である。この技術は単語を文字n-gramに分解して学習することで、学習データに含まれていない未知語に対しても、その文字構成からベクトル表現を生成。機械翻訳、感情分析、文書分類などの自然言語処理で活用される。ここでは、日本語単語ベクトルの演算を実行し、「王様-男性+女性=女王」のような意味的関係を確認する。
- 日本語BERT文脈埋め込み分析
【概要】 BERTは文脈を考慮した単語埋め込み技術で、同一単語でも文脈により異なるベクトル表現を生成する。日本語BERT(tohoku-nlp/bert-base-japanese-v3)を用いて「手」の多義性を分析。身体部位としての「手」と方法・手段としての「手」のベクトル類似度を計算し、文脈による意味の違いを数値化。コサイン類似度とヒートマップで可視化し、BERTの文脈理解能力を実験的に確認する。
- 多言語対応文埋め込み技術を用いた意味的類似性による単語クラスタリング(ソースコードと実行結果)
【概要】 単語抽出 → 埋め込み → K-means → クラスタ表示を行う.Sentence Transformers/E5の利用により,文脈を考慮した意味理解(多義語対応: 文脈により異なる意味を区別可能)が可能.日英混在テキストでも統一的に処理可能.このプログラムでは,他のモデルとも比較できるようにしている 多義語対応: 文脈により異なる意味を区別可能)が可能.日英混在テキストでも統一的に処理可能.このプログラムでは,他のモデルとも比較できるようにしている.
- BERTopic による日本語トピックモデリング
【概要】 BERTopicは、Transformer埋め込みとc-TF-IDFを組み合わせた日本語対応トピックモデリング手法である。従来のLDAより意味的に一貫したトピック抽出を実現し、カスタマーフィードバック分析や学術論文の研究動向分析に活用できる。
日本国憲法の分析結果 - ModernBERT による話者帰属句検出(ソースコードと実行結果)
パワーポイントファイルの処理
- PowerPoint差分検出
【概要】2つのPowerPointファイル間の変更を自動検出するPythonプログラム。python-pptxライブラリとMD5ハッシュを使用して、テキスト変更・位置変更・サイズ変更・書式変更を検出し、レポートを生成する。
AI技術の基礎理論と解説
- 深層学習による画像分類・タギングのテキスト
【概要】深層学習による画像分類では、CNN(例:ResNet)の畳み込み演算で局所特徴を抽出する。Vision Transformer(ViT)は画像パッチ間の関係性を計算する。ViTの一種であるEVA-02は、自己教師あり学習で精度の改善を達成している。用途に応じてモデル選択が重要で、高精度用途にはEVA-02、リアルタイム処理にはResNetを選択する。
- InsightFace顔情報処理のテキスト
【概要】InsightFaceは、オープンソースの2D&3D顔解析フレームワーク。顔検出(RetinaFace・SCRFD),顔認識(ArcFace)の機能を持つ。512次元の特徴ベクトルで顔を数値化してコサイン類似度により類似判定を行う。
機械学習・深層学習の基礎実習
- XGBoost機械学習体験
【概要】XGBoostによるIrisデータセットの分類。決定木の数を変更して予測精度の変化を観察。機械学習の弱学習器組み合わせ概念を体験する。
- データ前処理の例:欠損値補完とMinMaxスケーリング
【概要】scikit-learnを使用。データ前処理として、欠損値補完とMinMaxスケーリングを実行し、データの変化を観察。機械学習での前処理の重要性を確認する。
- ロジスティック回帰による分類性能の確認
【概要】ロジスティック回帰による二値分類の性能評価を確認する。混同行列、AUC-ROC、分類レポートによる評価手法。Irisデータセット(特徴量が明確で分類境界が適度に複雑な標準的二値分類問題)を使用し、異なる評価指標の意味と解釈方法を確認する。
- Self-Attentionメカニズムの確認
【概要】PyTorchによるSelf-Attentionの基本動作を体験する。TransformerのQuery・Key・Valueによる重み付き平均計算を実習し、アテンション重みの変化を数値で確認する。
機械学習の最適化と評価技術
- Optunaによるハイパーパラメータ最適化
【概要】TPEアルゴリズムによるハイパーパラメータ最適化技術を体験。従来手法との比較実験により最適化を確認でき、機械学習モデルの性能向上手法を確認できる。
- ONNX機械学習モデル変換・推論
【概要】scikit-learnモデルをONNX形式に変換し推論性能を比較する。ONNXの相互運用性と効果を確認。RandomForestClassifierでの変換精度と速度変化を確認。
- SHAP説明可能性
【概要】SHAPはゲーム理論のシャプレイ値を用いて機械学習モデルの各特徴量の貢献度を定量化する手法である。医療診断支援や金融審査などで活用される。