0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

不幸にして、画像認識の推論がおかしい時には、まず次の内容を疑ってみよう。

  • 画像がとれていない
    • 例:cv_image の値がNoneになっている
      • カメラを別のアプリケーションが既に接続してしまっていて、そのアプリの中で接続できないときも生じる。
      • 前回の終了時点で、デバイスがきれいに解放されていないことで、新規に接続できないことがある。
  • 画像のチャンネル数が、想定しているものと違っている
    • 例:cv_image.shape[2] == 4 となっている。
    • 透過型pngファイルだとチャネル数が4になる。
    • ライブラリによっては、画像のチャネル数を4にしていることがある。
    • int8 * 4 = 32 bit とするため。
  • 画像の型が、想定しているものと違っている
    • 例:cv_image.dtype が np.uint8 になっているか。
    • 例:np.float32 などfloat の値になっていないか。
    • ライブラリによっては画像の値を[0.0, 1.0]の間のfloat の値にしていることがある。
  • 画像の大きさが、推論の入力側で想定している大きさと異なる。
    • 推論の入力画像を与える時のメソッドで、所定サイズにresize後の画像を要求しているライブラリもある。
  • 画像の値の範囲が[0, 255]の範囲を超えている。
    • 例: rawデータで読み込んだデータは12 bit depthを持つことがある。
  • 与えた画像が部分行列になっている。
    • 一般に機械学習のライブラリは、部分行列を受け付けないことが多い。
  • 画像の値が全て0などの変な値が入っている。
  • RGBとGBRで色の順序が違う
    • 計算自体はされるが、検出率が低くなる。
  • np.ndarray型(numpy, opencv) での画像型を想定していないかもしれない。
    • 例: PIL.Image型
    • 例:その機械学習ライブラリ固有の画像データ形式(特に商用ライブラリではありがち)
  • 画像データの記述の順番の違い
    • 添字の順番がHWC(高さ、幅、チャネル)と全てがなっているわけではない。

画像以外に原因がある場合

  • GPUを使用するライブラリが複数あって、それらの間でGPUリソースの奪いあいをしている状況
    • Jetson の場合はjtopコマンドを使って、動作状況を確認しよう。
    • jetson-stats入門
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?