Skip to content

Latest commit

 

History

History
77 lines (62 loc) · 3.35 KB

8_8_develop_etc.md

File metadata and controls

77 lines (62 loc) · 3.35 KB

開発に関わる細々したこと

OpenCVは、どのような条件でビルドされていますか

  • CUDAはどうなっていますか
  • OpenCLはどうなっていますか
  • FFMPEG
  • GStreamer
>>> import cv2
>>> print(cv2.getBuildInformation())

NVIDIA Vision Programming Interface (VPI)入門 Python API編

このようなインタフェースも考察に加えたい。

python coding style

  • 多くの引数を持つ場合には、キーワード引数で指定する。順序引数にすると間違いを生じる。

画像の保存

  • [0, 1]のfloat画像を保存するには、skimaie.io.imsave() を使おう。
  • [0, 1]のfloat画像をuint8 にするには、skimage.img_as_ubyte()を使おう。

Unicode文字列を画像に書き加えるには

Calltree で判明したこと

scikit-image はimage-io に依存 image-ioはPillow に依存。

エラーログの一部

/usr/local/lib/python3.8/dist-packages/skimage/io/_io.py:143: in imsave
    return call_plugin('imsave', fname, arr, plugin=plugin, **plugin_args)
/usr/local/lib/python3.8/dist-packages/skimage/io/manage_plugins.py:205: in call_plugin
    return func(*args, **kwargs)
/usr/local/lib/python3.8/dist-packages/imageio/v3.py:147: in imwrite
    encoded = img_file.write(image, **kwargs)
/usr/local/lib/python3.8/dist-packages/imageio/plugins/pillow.py:444: in write
    pil_frame = Image.fromarray(frame, mode=mode)

勝手に壊れていく実装

  • 以下のような場合に、移植した実装は勝手に壊れていく

利用停止になるダウンロード先

  • Google Driveにおいてあったpre-trainedモデルが提供停止になっていた。

モジュールの破壊的な仕様の変更

OSのサポートのEOL

Ubuntuの場合

https://ubuntu.com/about/release-cycle End of Standard Support 5年 End of Ubuntu Pro Support 10年

ボードやセンサ類での対応OSの問題にも直結する。

その言語のそのバージョンのEOL

壊れるときは、1週間後だろうが壊れている。

  • エラーメッセージの内容は、既存のドキュメンテーションには書かれていない。

勝手に壊れていくのを防止する。

  • 自動化テストで、壊れていたらすぐに検出できるようにすること。
    • 同じバージョンのままでも、別のマシンで新規にinstallとテストを実行してみよう。
    • apt install や pip install でライブラリのバージョンが違ってくる。

対策

  • 必要なライブラリ・モデルファイルなどのデータを、自社のサーバに保存しておく。
  • Dockerなどの仮想環境上で、システムを構築し、固定したバージョンを運用する。
  • 運用先でのネットワークへの接続をさせない。
  • 自動更新を無効化する。