Pythonシート検査プログラムの、欠点部分に四角枠描画のNumpy中心処理での高速化、AIに質問して3種類ほど返答を得たが、仕事で疲れて早々に寝てしまい、動作できるまでの適用検証が進まない。

for pos in pos_list:

こんな感じの部分が残ってしまうと高速化が進んでも限定的だし、

実際セットミスへの対応だし、

高速化なんてする必要ないんじゃない?と思い直し、

欠点の数を制限して、それ以上はセットミスと判断し、セットミス表示を追加して、対応する方向に変更した。

        pos_list = np.argwhere(mask1 | mask2).tolist() # マージ BGR
        if len(pos_list) > 10000:
            pos_list = pos_list[:10000] # 10000個以下にカット

欠点10000dot以上は10000dotにカットを追加し、

        if pos_list == []:
            image_push.update(filename=image_path_good)
        elif len(pos_list) == 10000:
            image_push.update(filename=image_path_re)
        else:
            image_push.update(filename=image_path_bad)
        window.Refresh()

elif追加で、10000dotの場合は、セットミス画像を表示。

検査時間(i5-7400)

通常約9秒(変化無し)

セットミス時最大約16秒(最大40~60秒/トリミング範囲に依存)

と大幅に短縮化。

判定表示までに、検査開始受け付け音0.5秒と、撮影+LED安定化待ち+撮影=計6秒を含むことを思うと、まずまず。

検査受け付け音を停止できるオプションを付ける方が、0.5秒早くなるし、いいかな。


これでほぼ完成とし、

・仕様書作成

・用途例作成

・使い方作成

・検査デモBOXの、下LED透過光アップへのアルミ箔貼り

を行いつつ、検査受け付け音を停止できるオプションを付け、i5-480M等での検査時間を測定ていく。


Python学習を開始当初に目標とした、6か月以内での完成を少し越えるかな。

このシートサイズ用が完成したら、8MPカメラで半分のシートサイズ用にも取り掛かかろうかとも思っていたが、トリミング範囲を広げて設定しやすいマイナーバージョンでもいいかなと思えてきた。

土曜日が仕事になると、プログラミング開発時間の確保が難しい上に、仕事の疲れが取れず根気が続かない。

コメント

このブログの人気の投稿