[Japanese/English]
ノードエディターベースの画像処理アプリです。
処理の検証や比較検討での用途を想定しています。
ノードは作成者(高橋)が必要になった順に追加しているため、
画像処理における基本的な処理を担うノードが不足していることがあります。
opencv-python 4.5.5.64 or later
onnxruntime-gpu 1.12.0 or later
dearpygui 1.11.0 or later
mediapipe 0.8.10 or later ※mediapipeノード実行に必要
protobuf 3.20.0 or later ※mediapipeノード実行に必要
filterpy 1.4.5 or later ※motpyノード実行に必要
以下の何れかの方法で環境を準備してください。
- スクリプトを直接実行
- リポジトリをクローン
git clone https://github.com/Kazuhito00/Image-Processing-Node-Editor
- パッケージをインストール
pip install -r requirements.txt
- 「main.py」を実行
python main.py
- リポジトリをクローン
- Dockerを利用
- 実行ファイルを利用(Windowsのみ)
- ipn-editor_win_x86_64.zipをダウンロード
- 「main.exe」を実行
- pipインストールを利用
※インストールされるディレクトリ名が「node」「node_editor」となってしまうため修正予定
→pip利用時はvenv等の仮想環境でのインストールを強く推奨- ビルドツールをインストール
Windows:https://visualstudio.microsoft.com/ja/visual-cpp-build-tools/
Ubuntu:sudo apt-get install build-essential libssl-dev libffi-dev python3-dev
- Numpy、Cython、wheelをインストール
pip install Cython numpy wheel
- GitHubリポジトリを指定し、pipインストール
pip install git+https://github.com/Kazuhito00/Image-Processing-Node-Editor
- 以下コマンドでアプリケーションを起動
ipn-editor
- ビルドツールをインストール
アプリの起動方法は以下です。
python main.py
- --setting
ノードサイズやVideoWriterの設定が記載された設定ファイルパスの指定
デフォルト:node_editor/setting/setting.json - --unuse_async_draw
非同期描画を使用しない
→GUIイベントループとノードの更新処理を直列に実施
※ノード異常終了時などの原因調査用
デフォルト:指定なし
出力端子をドラッグして入力端子に接続
端子に設定された型同士のみ接続可能
メニューから「Export」を押し、ノード設定(jsonファイル)を保存
Exportで出力したノード設定(jsonファイル)を読み込む
Input Node
Process Node
Deep Learning Node
ドロップダウンリストでモデルを指定し、CPU/GPUチェックボックスで推論時のデバイスを変更可能
※モデルがGPU推論に対応していない場合はGPUにチェックを入れてもCPU推論
ノードが使用するモデルのライセンスは「node/deep_learning_node/XXXXXXXX/」の各ディレクトリを参照
Analysis Node
FPS |
ノードの処理時間(ms)を元にFPSを算出するノード 「Add Slot」で処理時間入力端子を追加可能 |
|
RGB Histgram |
入力画像のRGB各チャンネルのヒストグラムを算出して グラフに表示するノード |
|
BRISQUE |
BRISQUEを用いた画質評価を行うノード ※数値が高いほど悪い |
Draw Node
Other Node
ON/OFF Switch | 入力画像を出力するか切り替えるノード | |
Video Writer |
入力画像を動画をして書き出すノード 出力先、出力サイズ、FPSは「setting.json」にて指定 |
Preview Release Node
今後大きく仕様を変更する可能性のあるノード
MOT | Object Detectionノードを入力しMOT(Multi Object Tracking)を実行するノード | |
Exec Python Code |
Pythonコードを実行するノード 入力画像用の変数は「input_image」 出力画像用の変数は「output_image」 |
|
Screen Capture |
デスクトップ全画面をキャプチャして出力するノード |
他リポジトリで公開しているノードです。
Image-Processing-Node-Editor で使用するには、各リポジトリのインストール方法に従ってください。
Input Node
YouTube |
YouTubeを読み込み、画像を出力するノード URL欄にYouTube動画のURLを指定して「Start」ボタンを押してください 再生が始まるまでに少々時間がかかります Interval(ms)でYouTube読み込み間隔を指定します |
- RGB Histgramノードのグラフ部分が常に最前面に表示される問題の調査
- 複数ノードを接続したノードを削除した際に接続線が残る問題の調査
- Import機能がノード追加前にしか利用できない挙動の修正
高橋かずひと(https://twitter.com/KzhtTkhs)
Image-Processing-Node-Editor is under Apache-2.0 license.
Image-Processing-Node-Editorのソースコード自体はApache-2.0 licenseですが、
各アルゴリズムのソースコードは、それぞれのライセンスに従います。
詳細は各ディレクトリ同梱のLICENSEファイルをご確認ください。
サンプルで表示している画像はフリー素材ぱくたそ様、NHKクリエイティブ・ライブラリー様からお借りしています。