# iinfer (Image Inference Application)
- onnx又はmmlabフォーマットのAIモデルファイルを実行するアプリケーションです。
- ドキュメントは[こちら](https://hamacom2004jp.github.io/iinfer/)。
- iinferを使用することで、AIモデルを簡単に実行することが出来ます。
- 動作確認したモデルは[動作確認済みモデル](https://hamacom2004jp.github.io/iinfer/docs/models.html)に記載しています。
- 主なAIタスクは、画像分類、物体検知、領域検知、顔検知、顔認識です。
- 複数の `iinfer` コマンドの入出力をつなげる、パイプライン処理を行うことが出来ます。
- GUIモードを使用することで、 `iinfer` コマンド操作を簡単に行うことが出来ます。
## iinferの動作イメージ
![iinferの動作イメージ](https://github.com/hamacom2004jp/iinfer/raw/main/docs_src/static/orverview.drawio.png)
1. **iinfer client** は **imageファイル** や **camera** から画像を取得し、 **推論結果 predict.json** を出力します。
2. **iinfer server** は推論を行うサーバーです。 **iinfer client** からの要求に応えて、推論結果を **iinfer client** に返します。
3. **iinfer server** は予め **ai model** をロードしておくことで、推論を高速化します。
4. **iinfer client** と **iinfer server** は **Redis** 経由で通信します。
5. **iinfer server** と **Redis** は **dockerコンテナ** を使用して起動させることが出来ます。
## インストール方法
インストール方法は [こちら](https://hamacom2004jp.github.io/iinfer/docs/install.html) を参照してください。
## iinferの使用方法
iinferを使用するには、次のコマンドを実行します:
1. guiモードで利用する場合:
![guiモードのイメージ](https://github.com/hamacom2004jp/iinfer/raw/main/docs_src/static/ss/00242_cmd_predict.jpg)
```bash
iinfer -m gui -c start
```
2. コマンドモードで利用する場合
1. AIモデルのデプロイ:
```bash
# 画像AIモデルのデプロイ
# 推論タイプはモデルのAIタスクやアルゴリズムに合わせて指定する。指定可能なキーワードは"iinfer -m client -c predict_type_list"コマンド参照。
iinfer -m client -c deploy -n <任意のモデル名> -f \
--model_file <モデルファイル> \
--model_conf_file <モデル設定ファイル> \
--predict_type <推論タイプ> \
--label_file <ラベルファイル>
# デプロイされている画像AIモデルの一覧
iinfer -m client -c deploy_list -f
```
2. AIモデルのセッションを開始:
```bash
# 画像AIモデルを起動させて推論可能な状態に(セッションを確保)する
# use_trackを指定するとObjectDetectionタスクの結果に対して、MOT(Multi Object Tracking)を実行しトラッキングIDを出力する。
iinfer -m client -c start -n <モデル名> -f \
--use_track
```
3. 推論を実行:
```bash
# 推論を実行する
# output_previewを指定するとimshowで推論結果画像を表示する(GUI必要)
iinfer -m client -c predict -n <モデル名> -f \
-i <推論させる画像ファイル> \
-o <推論結果の画像ファイル> \
--output_preview
# カメラキャプチャー画像を元に推論を実行し、クラススコアが0.8以上の物体のみを検出する
# --stdin --image_type capture で標準入力のキャプチャー画像を推論する
iinfer -m client -c capture | \
iinfer -m client -c predict -n <モデル名> \
--stdin \
--image_type capture \
--nodraw | \
iinfer -m postprocess -c det_filter -f -P \
--stdin \
--score_th 0.8
```
4. AIモデルのセッションを開放:
```bash
# 画像AIモデルを停止させてセッションを開放
iinfer -m client -c stop -n <モデル名> -f
```
## Lisence
This project is licensed under the MIT License, see the LICENSE file for details
Raw data
{
"_id": null,
"home_page": "https://github.com/hamacom2004jp/iinfer",
"name": "iinfer",
"maintainer": "hamacom2004jp",
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "hamacom2004jp@gmail.com",
"keywords": "onnxruntime predict inference image ai model",
"author": "hamacom2004jp",
"author_email": "hamacom2004jp@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/92/67/84522f1cb8f93f9fb92b566feb2223df109b721811a69e2ac80c49f83465/iinfer-0.10.2.2.tar.gz",
"platform": null,
"description": "# iinfer (Image Inference Application)\r\n\r\n- onnx\u53c8\u306fmmlab\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306eAI\u30e2\u30c7\u30eb\u30d5\u30a1\u30a4\u30eb\u3092\u5b9f\u884c\u3059\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u3059\u3002\r\n- \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306f[\u3053\u3061\u3089](https://hamacom2004jp.github.io/iinfer/)\u3002\r\n- iinfer\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001AI\u30e2\u30c7\u30eb\u3092\u7c21\u5358\u306b\u5b9f\u884c\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3059\u3002\r\n- \u52d5\u4f5c\u78ba\u8a8d\u3057\u305f\u30e2\u30c7\u30eb\u306f[\u52d5\u4f5c\u78ba\u8a8d\u6e08\u307f\u30e2\u30c7\u30eb](https://hamacom2004jp.github.io/iinfer/docs/models.html)\u306b\u8a18\u8f09\u3057\u3066\u3044\u307e\u3059\u3002\r\n- \u4e3b\u306aAI\u30bf\u30b9\u30af\u306f\u3001\u753b\u50cf\u5206\u985e\u3001\u7269\u4f53\u691c\u77e5\u3001\u9818\u57df\u691c\u77e5\u3001\u9854\u691c\u77e5\u3001\u9854\u8a8d\u8b58\u3067\u3059\u3002\r\n- \u8907\u6570\u306e `iinfer` \u30b3\u30de\u30f3\u30c9\u306e\u5165\u51fa\u529b\u3092\u3064\u306a\u3052\u308b\u3001\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u51e6\u7406\u3092\u884c\u3046\u3053\u3068\u304c\u51fa\u6765\u307e\u3059\u3002\r\n- GUI\u30e2\u30fc\u30c9\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001 `iinfer` \u30b3\u30de\u30f3\u30c9\u64cd\u4f5c\u3092\u7c21\u5358\u306b\u884c\u3046\u3053\u3068\u304c\u51fa\u6765\u307e\u3059\u3002\r\n\r\n\r\n## iinfer\u306e\u52d5\u4f5c\u30a4\u30e1\u30fc\u30b8\r\n\r\n![iinfer\u306e\u52d5\u4f5c\u30a4\u30e1\u30fc\u30b8](https://github.com/hamacom2004jp/iinfer/raw/main/docs_src/static/orverview.drawio.png)\r\n\r\n1. **iinfer client** \u306f **image\u30d5\u30a1\u30a4\u30eb** \u3084 **camera** \u304b\u3089\u753b\u50cf\u3092\u53d6\u5f97\u3057\u3001 **\u63a8\u8ad6\u7d50\u679c predict.json** \u3092\u51fa\u529b\u3057\u307e\u3059\u3002\r\n2. **iinfer server** \u306f\u63a8\u8ad6\u3092\u884c\u3046\u30b5\u30fc\u30d0\u30fc\u3067\u3059\u3002 **iinfer client** \u304b\u3089\u306e\u8981\u6c42\u306b\u5fdc\u3048\u3066\u3001\u63a8\u8ad6\u7d50\u679c\u3092 **iinfer client** \u306b\u8fd4\u3057\u307e\u3059\u3002\r\n3. **iinfer server** \u306f\u4e88\u3081 **ai model** \u3092\u30ed\u30fc\u30c9\u3057\u3066\u304a\u304f\u3053\u3068\u3067\u3001\u63a8\u8ad6\u3092\u9ad8\u901f\u5316\u3057\u307e\u3059\u3002\r\n4. **iinfer client** \u3068 **iinfer server** \u306f **Redis** \u7d4c\u7531\u3067\u901a\u4fe1\u3057\u307e\u3059\u3002\r\n5. **iinfer server** \u3068 **Redis** \u306f **docker\u30b3\u30f3\u30c6\u30ca** \u3092\u4f7f\u7528\u3057\u3066\u8d77\u52d5\u3055\u305b\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3059\u3002\r\n\r\n## \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u65b9\u6cd5\r\n\r\n\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u65b9\u6cd5\u306f [\u3053\u3061\u3089](https://hamacom2004jp.github.io/iinfer/docs/install.html) \u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\r\n\r\n## iinfer\u306e\u4f7f\u7528\u65b9\u6cd5\r\n\r\niinfer\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001\u6b21\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u307e\u3059:\r\n\r\n1. gui\u30e2\u30fc\u30c9\u3067\u5229\u7528\u3059\u308b\u5834\u5408:\r\n\r\n![gui\u30e2\u30fc\u30c9\u306e\u30a4\u30e1\u30fc\u30b8](https://github.com/hamacom2004jp/iinfer/raw/main/docs_src/static/ss/00242_cmd_predict.jpg)\r\n\r\n```bash\r\niinfer -m gui -c start\r\n```\r\n\r\n2. \u30b3\u30de\u30f3\u30c9\u30e2\u30fc\u30c9\u3067\u5229\u7528\u3059\u308b\u5834\u5408\r\n\r\n 1. AI\u30e2\u30c7\u30eb\u306e\u30c7\u30d7\u30ed\u30a4:\r\n\r\n ```bash\r\n # \u753b\u50cfAI\u30e2\u30c7\u30eb\u306e\u30c7\u30d7\u30ed\u30a4\r\n # \u63a8\u8ad6\u30bf\u30a4\u30d7\u306f\u30e2\u30c7\u30eb\u306eAI\u30bf\u30b9\u30af\u3084\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306b\u5408\u308f\u305b\u3066\u6307\u5b9a\u3059\u308b\u3002\u6307\u5b9a\u53ef\u80fd\u306a\u30ad\u30fc\u30ef\u30fc\u30c9\u306f\"iinfer -m client -c predict_type_list\"\u30b3\u30de\u30f3\u30c9\u53c2\u7167\u3002\r\n iinfer -m client -c deploy -n <\u4efb\u610f\u306e\u30e2\u30c7\u30eb\u540d> -f \\\r\n --model_file <\u30e2\u30c7\u30eb\u30d5\u30a1\u30a4\u30eb> \\\r\n --model_conf_file <\u30e2\u30c7\u30eb\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb> \\\r\n --predict_type <\u63a8\u8ad6\u30bf\u30a4\u30d7> \\\r\n --label_file <\u30e9\u30d9\u30eb\u30d5\u30a1\u30a4\u30eb>\r\n\r\n # \u30c7\u30d7\u30ed\u30a4\u3055\u308c\u3066\u3044\u308b\u753b\u50cfAI\u30e2\u30c7\u30eb\u306e\u4e00\u89a7\r\n iinfer -m client -c deploy_list -f\r\n ```\r\n\r\n 2. AI\u30e2\u30c7\u30eb\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u958b\u59cb:\r\n\r\n ```bash\r\n\r\n # \u753b\u50cfAI\u30e2\u30c7\u30eb\u3092\u8d77\u52d5\u3055\u305b\u3066\u63a8\u8ad6\u53ef\u80fd\u306a\u72b6\u614b\u306b(\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u78ba\u4fdd)\u3059\u308b\r\n # use_track\u3092\u6307\u5b9a\u3059\u308b\u3068ObjectDetection\u30bf\u30b9\u30af\u306e\u7d50\u679c\u306b\u5bfe\u3057\u3066\u3001MOT\uff08Multi Object Tracking\uff09\u3092\u5b9f\u884c\u3057\u30c8\u30e9\u30c3\u30ad\u30f3\u30b0ID\u3092\u51fa\u529b\u3059\u308b\u3002\r\n iinfer -m client -c start -n <\u30e2\u30c7\u30eb\u540d> -f \\\r\n --use_track\r\n ```\r\n\r\n 3. \u63a8\u8ad6\u3092\u5b9f\u884c:\r\n\r\n ```bash\r\n # \u63a8\u8ad6\u3092\u5b9f\u884c\u3059\u308b\r\n # output_preview\u3092\u6307\u5b9a\u3059\u308b\u3068imshow\u3067\u63a8\u8ad6\u7d50\u679c\u753b\u50cf\u3092\u8868\u793a\u3059\u308b\uff08GUI\u5fc5\u8981\uff09\r\n iinfer -m client -c predict -n <\u30e2\u30c7\u30eb\u540d> -f \\\r\n -i <\u63a8\u8ad6\u3055\u305b\u308b\u753b\u50cf\u30d5\u30a1\u30a4\u30eb> \\\r\n -o <\u63a8\u8ad6\u7d50\u679c\u306e\u753b\u50cf\u30d5\u30a1\u30a4\u30eb> \\\r\n --output_preview\r\n\r\n # \u30ab\u30e1\u30e9\u30ad\u30e3\u30d7\u30c1\u30e3\u30fc\u753b\u50cf\u3092\u5143\u306b\u63a8\u8ad6\u3092\u5b9f\u884c\u3057\u3001\u30af\u30e9\u30b9\u30b9\u30b3\u30a2\u304c0.8\u4ee5\u4e0a\u306e\u7269\u4f53\u306e\u307f\u3092\u691c\u51fa\u3059\u308b\r\n # --stdin --image_type capture \u3067\u6a19\u6e96\u5165\u529b\u306e\u30ad\u30e3\u30d7\u30c1\u30e3\u30fc\u753b\u50cf\u3092\u63a8\u8ad6\u3059\u308b\r\n iinfer -m client -c capture | \\\r\n iinfer -m client -c predict -n <\u30e2\u30c7\u30eb\u540d> \\\r\n --stdin \\\r\n --image_type capture \\\r\n --nodraw | \\\r\n iinfer -m postprocess -c det_filter -f -P \\\r\n --stdin \\\r\n --score_th 0.8\r\n ```\r\n\r\n 4. AI\u30e2\u30c7\u30eb\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u958b\u653e:\r\n\r\n ```bash\r\n # \u753b\u50cfAI\u30e2\u30c7\u30eb\u3092\u505c\u6b62\u3055\u305b\u3066\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u958b\u653e\r\n iinfer -m client -c stop -n <\u30e2\u30c7\u30eb\u540d> -f\r\n ```\r\n\r\n## Lisence\r\n\r\nThis project is licensed under the MIT License, see the LICENSE file for details\r\n\r\n\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "iinfer: An application that executes AI model files in onnx or mmlab format.",
"version": "0.10.2.2",
"project_urls": {
"Download": "https://github.com/hamacom2004jp/iinfer",
"Homepage": "https://github.com/hamacom2004jp/iinfer"
},
"split_keywords": [
"onnxruntime",
"predict",
"inference",
"image",
"ai",
"model"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "19fa4e030d5b060ecff75b7e832f1bec2273110678b37842645497cbb05bf531",
"md5": "d4cfe49b0ceba1b770cfd940ea80c5ba",
"sha256": "4dbcef524140d42938893b9b1ade26976b1fecdffec6be8cca992ce10121ea79"
},
"downloads": -1,
"filename": "iinfer-0.10.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d4cfe49b0ceba1b770cfd940ea80c5ba",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 645087,
"upload_time": "2024-12-17T13:25:06",
"upload_time_iso_8601": "2024-12-17T13:25:06.534667Z",
"url": "https://files.pythonhosted.org/packages/19/fa/4e030d5b060ecff75b7e832f1bec2273110678b37842645497cbb05bf531/iinfer-0.10.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "926784522f1cb8f93f9fb92b566feb2223df109b721811a69e2ac80c49f83465",
"md5": "3d43e18bcd65526b78c3a26b1f2721ef",
"sha256": "8951eb0048baf909b0aa0556a89fe78c85c5b8cb1219637b8056165cab199e66"
},
"downloads": -1,
"filename": "iinfer-0.10.2.2.tar.gz",
"has_sig": false,
"md5_digest": "3d43e18bcd65526b78c3a26b1f2721ef",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 443045,
"upload_time": "2024-12-17T13:25:11",
"upload_time_iso_8601": "2024-12-17T13:25:11.124093Z",
"url": "https://files.pythonhosted.org/packages/92/67/84522f1cb8f93f9fb92b566feb2223df109b721811a69e2ac80c49f83465/iinfer-0.10.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-17 13:25:11",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "hamacom2004jp",
"github_project": "iinfer",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "collectlicense",
"specs": []
},
{
"name": "cmdbox",
"specs": []
},
{
"name": "motpy",
"specs": []
},
{
"name": "opencv-python",
"specs": []
},
{
"name": "pytest",
"specs": []
},
{
"name": "pytest-order",
"specs": []
},
{
"name": "requests",
"specs": []
},
{
"name": "requests_mock",
"specs": []
},
{
"name": "twine",
"specs": []
},
{
"name": "six",
"specs": []
},
{
"name": "sphinx",
"specs": []
},
{
"name": "sphinx-rtd-theme",
"specs": []
},
{
"name": "sphinx_fontawesome",
"specs": []
},
{
"name": "sphinx-intl",
"specs": []
},
{
"name": "sphinx-sitemap",
"specs": []
}
],
"lcname": "iinfer"
}