IMX298、遅いけど一番安定していると思っていたが、問題があることが発覚、発生、発現???


ノートパソコンで、デモ準備していると、どうしてもBad判定にしかならず、Good判定が出ない。

よくよく見てみると、何か常に白と判断される検出が、一定っぽい位置に出ているみたい。

許容値外を計数できるプログラムに修正し、キャップを付けて黒く撮影してみると、平均値から100/255離れた許容値でもダメで、150/255に修正しても2箇所で計10dotも残るので、Bad判定にしかならない(-_-;)

IMX577やIMX179は、40/255か50/255の許容値設定でGood判定になるので、パソコンやプログラムの問題ではなく、IMX298カメラモジュールの問題らしい。

以前は30/255の許容設定で動作していたので、誤動作か、故障したみたい。

パソコンから外して1日置いてもダメなので、誤動作でも無さそう。


本番システムで使えないカメラモジュールが、3種揃ってしまったことになる(◎_◎;)

IMX298 モジュール異常

     (USB2.0+低消費電力なので、接続の問題が一番発生しにくかったんだが・・・)

IMX577 たまに3分割画像が出力される

     (それ以外は一番使いやすいんだが・・・)

IMX179 レンズが小さくゲインでカバーしているようでホワイトノイズが入る

     (露光時間を含めても6FPS程度でるので、初期の5回撮影+平均化のNRが使える

      といえば使えるんだが、USB3.0接続がピーキーで・・・)


加工前シート検査プログラムでは大問題だが、加工後シート検査プログラムは許容できる範囲(許容してはいけないんだが・・・)なので、取りあえず動作実演まで乗り切れるようにIMX298で問題なく動作させるため、常に異常値を出す部分をマスクすることができるかやってみた。

        # ■■■■■■■■■■欠点合成表示用■■■■■■■■■■
        pos_list = np.argwhere(mask1 | mask2).tolist() # マージ BGR

        # ■■■■■■■■■■欠点合成表示用■■■■■■■■■■
        maskMIX=mask1 | mask2
        if CT1==1:
            maskMIX0=maskMIX | maskCT
            maskMIX=maskMIX0 ^ maskCT
        pos_list = np.argwhere(maskMIX).tolist()

に修正し、画面表示も修正、

                   [sg.Text('センサー不良補正 無し:0<>1:有り')],
                   [sg.Slider(range=(0, 1), default_value=CT1, resolution=1, orientation='h', size=(5,2),
                              key='SLIDER_CT1', enable_events=True, disable_number_display=True),
                    sg.Text(str(CT1), key="-text_CT1-"),],
                   [sg.Text(' ')],
                   [sg.Text('●センサー不良補正')],[sg.Text(' カメラにキャップして[C]キーを押してください')],

更に、画面表示に応じたプログラム修正も行った。


動作させてみると、常時異常出力になる10dotには対応できるが、出たり出なかったりする異常出力もパラパラとあり、その許容設定のボーダーラインが100/255付近となるため、誤魔化し動作実演はできても、実際の検査システムとしてはかなり使い物にならないものになりそう・・・


悩んだが、数個同じカメラモジュールを購入し、問題ないものを納品、予備の問題のないカメラモジュールも付けて納品する、もしくは交換品の在庫を複数持っておく方法しかないのか。

一般販売で安易に購入できる高解像度のカメラモジュールは、中国生産品しか見つからないのだが、一般販売に流れてくるようなカメラモジュールは、問題があるような訳アリ品ばかりではないことを祈りたい。

コメント

このブログの人気の投稿