人工知能のプログラム実行体験と探求(Windows上)

AIの実装例集。 Windows環境で動作する100以上のプログラム例。機械学習・コンピュータビジョン・自然言語処理など幅広い分野をカバー。ソースコード付きで実践的学習が可能。 Windows の実行環境構築方法も用意しており、興味関心や理解度の進展に応じて様々なAI技術を選択し、実際に動かしながら段階的に技術を習得できる。

目次

実用ツール集

技術深堀り

AI支援について: 記載のプログラムや説明は AIの支援を受けて作成している.

実用ツール

実用ツール: APIキー取得支援ツール

ローカルLLM

マルチモーダルLLMの利用:Gemini による対話,翻訳,画像理解,Visual Question Answering

マルチモーダルLLMの利用:ローカルLLMによる画像理解,Visual Question Answering

マルチモーダル基盤モデル:画像とテキストの類似性,画像キャプション生成

文字認識・音声認識

自然言語処理

  • EmbeddingGemma による文書の意味的検索(ソースコードと実行結果)
  • LUKEによる日本語感情分析プログラム(ソースコードと実行結果)
    LUKEによる日本語感情分析プログラム LUKEによる日本語感情分析プログラム
    日本国憲法の分析結果
  • SucachiPy による形態素解析

    【概要】 日本語形態素解析ツール「SudachiPy」の体験を通じ、その技術と応用を学ぶ。SudachiPyは、多様な辞書と分割モードにより、日本語テキスト分析を実現する。プログラム実行で単語分割や品詞情報を確認でき、日本語処理の仕組みを理解できる。

    SucachiPy による形態素解析
    日本国憲法の分析結果
  • FastTextによる日本語文章類似度計算

    【概要】 FastTextは単語を数値ベクトルに変換する単語埋め込み技術で、部分文字列情報により未知語にも対応できる。本教材では、日本語文書を形態素解析で単語分割し、各単語のベクトルを平均して文書ベクトルを生成、コサイン類似度で文書間の意味的類似性を計算する。実行結果はヒートマップで可視化され、AIによる文書理解の仕組みを体験できる。

    FastText日本語単語ベクトル演算の結果
    FastText日本語単語ベクトル演算の結果
  • 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に分解して学習することで、学習データに含まれていない未知語に対しても、その文字構成からベクトル表現を生成。機械翻訳、感情分析、文書分類などの自然言語処理で活用される。ここでは、日本語単語ベクトルの演算を実行し、「王様-男性+女性=女王」のような意味的関係を確認する。

    FastText日本語単語ベクトル演算の結果
  • 日本語BERT文脈埋め込み分析

    【概要】 BERTは文脈を考慮した単語埋め込み技術で、同一単語でも文脈により異なるベクトル表現を生成する。日本語BERT(tohoku-nlp/bert-base-japanese-v3)を用いて「手」の多義性を分析。身体部位としての「手」と方法・手段としての「手」のベクトル類似度を計算し、文脈による意味の違いを数値化。コサイン類似度とヒートマップで可視化し、BERTの文脈理解能力を実験的に確認する。

    FastText日本語単語ベクトル演算の結果
    FastText日本語単語ベクトル演算の結果
  • 多言語対応文埋め込み技術を用いた意味的類似性による単語クラスタリング(ソースコードと実行結果)

    【概要】 単語抽出 → 埋め込み → K-means → クラスタ表示を行う.Sentence Transformers/E5の利用により,文脈を考慮した意味理解(多義語対応: 文脈により異なる意味を区別可能)が可能.日英混在テキストでも統一的に処理可能.このプログラムでは,他のモデルとも比較できるようにしている 多義語対応: 文脈により異なる意味を区別可能)が可能.日英混在テキストでも統一的に処理可能.このプログラムでは,他のモデルとも比較できるようにしている.

    多言語対応文埋め込み技術による文書分析・単語クラスタリング
  • BERTopic による日本語トピックモデリング

    【概要】 BERTopicは、Transformer埋め込みとc-TF-IDFを組み合わせた日本語対応トピックモデリング手法である。従来のLDAより意味的に一貫したトピック抽出を実現し、カスタマーフィードバック分析や学術論文の研究動向分析に活用できる。

    BERTopic による日本語トピックモデリング
    日本国憲法の分析結果
  • ModernBERT による話者帰属句検出(ソースコードと実行結果)
    ModernBERT による話者帰属句検出(ソースコードと実行結果)

コンピュータビジョン:画像分類

コンピュータビジョン:物体検出

コンピュータビジョン:人物検出

コンピュータビジョン:インスタンスセグメンテーション

コンピュータビジョン:セマンティックセグメンテーション

コンピュータビジョン:前景背景分離

コンピュータビジョン:顔情報処理

コンピュータビジョン:人物動作認識

コンピュータビジョン:手指の姿勢推定

コンピュータビジョン:頭部姿勢推定

  • 6DRepNet頭部3次元姿勢推定

    【概要】6DRepNetは人間の頭部姿勢を推定するAI技術である。従来のEuler角表現と異なり、6次元回転表現を採用することで角度の曖昧性問題を解決し、推定を実現している。パソコンカメラを使用して頭部の向きを検出し、ピッチ・ヨー・ロール角度を数値とグラフィカルな軸表示で確認できる。Windows環境での実行手順、プログラムコード、実験アイデアを含む。

    6DRepNetによる頭部姿勢推定結果 6DRepNetによる頭部姿勢推定結果
  • OpenVINO OMZ による頭部姿勢推(ソースコードと実行結果)
    OpenVINO OMZ による頭部姿勢推定
  • TRG 6DoF頭部姿勢推定(プログラム作成中 trg6dof.html)

コンピュータビジョン:人体姿勢推定

コンピュータビジョン:眼球運動

コンピュータビジョン:エッジ検出

コンピュータビジョン:異常検知,微細変化検出

コンピュータビジョン:画像からの深度推定

  • MiDaSによる深度推定

    【概要】MiDaSは単眼カメラから深度情報を推定するAI技術である。Webカメラを用いたリアルタイム深度推定プログラムにより、深度マップの可視化と単眼深度推定を確認する。Windows環境での実行手順、プログラムコード、実験アイデアを含む。

    MiDaSによる深度推定 MiDaSによる深度推定
  • 深度画像からのステレオペア画像生成

コンピュータビジョン:動画像のトラッキングビジョン

コンピュータビジョン:人物再識別

コンピュータビジョン:線分検出,消失点推定

画像処理,動画像処理

合成: Text-to-Image

画質改善

音声処理

シミュレーション・応用技術

  • 地形侵食シミュレーション

    【概要】Python + NumPyによる物理ベースの水力侵食シミュレーション。fBmノイズで初期地形を生成し、降雨・水流・土砂運搬・堆積の物理プロセスを統合計算。128×128グリッドで100m×100mスケールの地形を数百年の侵食過程で変化させ、自然な河川パターンと谷地形を生成する。

    地形侵食シミュレーション結果

ゲームAI

クラスタリング

機械学習・深層学習の基礎実習

  • XGBoost機械学習体験

    【概要】XGBoostによるIrisデータセットの分類。決定木の数を変更して予測精度の変化を観察。機械学習の弱学習器組み合わせ概念を体験する。

    XGBoost分類結果の可視化
    XGBoost決定木の数による精度変化
  • データ前処理の例:欠損値補完とMinMaxスケーリング

    【概要】scikit-learnを使用。データ前処理として、欠損値補完とMinMaxスケーリングを実行し、データの変化を観察。機械学習での前処理の重要性を確認する。

    データ前処理の結果比較
  • ロジスティック回帰による分類性能の確認

    【概要】ロジスティック回帰による二値分類の性能評価を確認する。混同行列、AUC-ROC、分類レポートによる評価手法。Irisデータセット(特徴量が明確で分類境界が適度に複雑な標準的二値分類問題)を使用し、異なる評価指標の意味と解釈方法を確認する。

    ロジスティック回帰による分類結果
    混同行列の可視化
  • Self-Attentionメカニズムの確認

    【概要】PyTorchによるSelf-Attentionの基本動作を体験する。TransformerのQuery・Key・Valueによる重み付き平均計算を実習し、アテンション重みの変化を数値で確認する。

    Self-Attentionの重み計算過程
    アテンション重みの可視化

機械学習の最適化と評価技術

  • Optunaによるハイパーパラメータ最適化

    【概要】TPEアルゴリズムによるハイパーパラメータ最適化技術を体験。従来手法との比較実験により最適化を確認でき、機械学習モデルの性能向上手法を確認できる。

    Optunaによる最適化過程
    ハイパーパラメータの最適化結果
  • ONNX機械学習モデル変換・推論

    【概要】scikit-learnモデルをONNX形式に変換し推論性能を比較する。ONNXの相互運用性と効果を確認。RandomForestClassifierでの変換精度と速度変化を確認。

    ONNX変換の実行結果
    推論速度の比較結果
  • SHAP説明可能性

    【概要】SHAPはゲーム理論のシャプレイ値を用いて機械学習モデルの各特徴量の貢献度を定量化する手法である。医療診断支援や金融審査などで活用される。

    SHAP値による特徴量の貢献度可視化
    SHAP値による特徴量の貢献度可視化

オープンデータ:標高データとDepthMap

AI技術の基礎理論と解説

  • 深層学習による画像分類・タギングのテキスト

    【概要】深層学習による画像分類では、CNN(例:ResNet)の畳み込み演算で局所特徴を抽出する。Vision Transformer(ViT)は画像パッチ間の関係性を計算する。ViTの一種であるEVA-02は、自己教師あり学習で精度の改善を達成している。用途に応じてモデル選択が重要で、高精度用途にはEVA-02、リアルタイム処理にはResNetを選択する。

  • InsightFace顔情報処理のテキスト
  • 【概要】InsightFaceは、オープンソースの2D&3D顔解析フレームワーク。顔検出(RetinaFace・SCRFD),顔認識(ArcFace)の機能を持つ。512次元の特徴ベクトルで顔を数値化してコサイン類似度により類似判定を行う。

パワーポイントファイルの処理

    • PowerPointファイルビューワ・Windows用(動作にPowerPointが必要)

      【概要】PowerPoint、PDF文書を画像変換してスライド表示するWindowsデスクトップアプリケーション。スライド表示中にマウスで赤い線を描画でき、案内表示モードやメモ帳モードを搭載。全画面対応、プレゼンテーションタイマー付き。

      PowerPoint差分検出
    • PowerPoint差分検出

      【概要】2つのPowerPointファイル間の変更を自動検出するPythonプログラム。python-pptxライブラリとMD5ハッシュを使用して、テキスト変更・位置変更・サイズ変更・書式変更を検出し、レポートを生成する。

      PowerPoint差分検出
    • PowerPointテキスト置換ツール

      【概要】python-pptxライブラリを使用したPowerPointファイルのテキスト置換ツールを体験する。本ツールは、Office Open XML形式のファイル内部構造を直接操作し、フォント書式を保持しながら一括置換を実現する。プレゼンテーション資料の更新作業を効率化できるツールである。