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

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

コード及び説明文の作成ではAIを使用している。

Colabを用いた実行(Ubuntu上、インストール操作不要)については、Google Colaboratoryで動く人工知能のページを参照されたい。

目次

実用ツール集

技術深堀り

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

実用ツール

プロンプト例

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

ローカルLLM

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

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

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

文字認識・音声認識

自然言語処理

画像処理,動画像処理

コンピュータビジョン:画像分類,画像タギング(入力:動画像)

コンピュータビジョン:画像分類,画像タギング(入力:静止画像)

コンピュータビジョン:物体検出(ByteTrackによる追跡とTTAの機能付き)

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

コンピュータビジョン:人物検出(ByteTrackによる追跡とTTAの機能付き)

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

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

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

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

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

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

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

  • 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形式のファイル内部構造を直接操作し、フォント書式を保持しながら一括置換を実現する。プレゼンテーション資料の更新作業を効率化できるツールである。