[Japanese/English]
Image-Processing-Node-Editor
ノードエディターベースの画像処理アプリです。
処理の検証や比較検討での用途を想定しています。
Note
ノードは作成者(高橋)が必要になった順に追加しているため、
画像処理における基本的な処理を担うノードが不足していることがあります。
Requirement
Warning
2023/5/22時点:dearpygui
を1.9.1
にアップデートするとノード接続が出来ないため1.9.0
以下をインストールしてください ※原因調査中
opencv-python 4.5.5.64 or later
onnxruntime-gpu 1.12.0 or later
dearpygui 1.6.2 or later
mediapipe 0.8.10 or later ※mediapipeノード実行に必要
protobuf 3.20.0 or later ※mediapipeノード実行に必要
filterpy 1.4.5 or later ※motpyノード実行に必要
lap 0.4.0 or later ※ByteTrackノード実行に必要
Cython 0.29.30 or later ※ByteTrackノード実行に必要
cython-bbox 0.1.3 or later ※ByteTrackノード実行に必要
rich 12.4.4 or later ※Norfairノード実行に必要
※Windowsでcython_bbox のインストールが失敗する場合は、numpy、Cythonをインストールしてから
cython-bboxはGitHubからのインストールをお試しください(2022/06/05時点)
pip install numpy
pip install Cython
pip install -e git+https://github.com/samson-wang/cython_bbox.git#egg=cython-bbox
Installation
以下の何れかの方法で環境を準備してください。
- スクリプトを直接実行
- リポジトリをクローン
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
- ビルドツールをインストール
Usage
アプリの起動方法は以下です。
python main.py
- --setting
ノードサイズやVideoWriterの設定が記載された設定ファイルパスの指定
デフォルト:node_editor/setting/setting.json - --unuse_async_draw
非同期描画を使用しない
→GUIイベントループとノードの更新処理を直列に実施
※ノード異常終了時などの原因調査用
デフォルト:指定なし
Create Node
Connect Node
出力端子をドラッグして入力端子に接続
端子に設定された型同士のみ接続可能
Delete Node
Export
メニューから「Export」を押し、ノード設定(jsonファイル)を保存
Import
Exportで出力したノード設定(jsonファイル)を読み込む
Node
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 |
デスクトップ全画面をキャプチャして出力するノード |
Node(Another repository)
他リポジトリで公開しているノードです。
Image-Processing-Node-Editor で使用するには、各リポジトリのインストール方法に従ってください。
Input Node
YouTube |
YouTubeを読み込み、画像を出力するノード URL欄にYouTube動画のURLを指定して「Start」ボタンを押してください 再生が始まるまでに少々時間がかかります Interval(ms)でYouTube読み込み間隔を指定します |
ToDo
- RGB Histgramノードのグラフ部分が常に最前面に表示される問題の調査
- 複数ノードを接続したノードを削除した際に接続線が残る問題の調査
- Import機能がノード追加前にしか利用できない挙動の修正
-
dearpygui
を1.9.1
にアップデートするとノード接続が出来ない問題の調査
Author
高橋かずひと(https://twitter.com/KzhtTkhs)
License
Image-Processing-Node-Editor is under Apache-2.0 license.
Image-Processing-Node-Editorのソースコード自体はApache-2.0 licenseですが、
各アルゴリズムのソースコードは、それぞれのライセンスに従います。
詳細は各ディレクトリ同梱のLICENSEファイルをご確認ください。
License(Image)
サンプルで表示している画像はフリー素材ぱくたそ様、NHKクリエイティブ・ライブラリー様からお借りしています。