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カメラで半分のシートサイズ用にも取り掛かかろうかとも思っていたが、トリミング範囲を広げて設定しやすいマイナーバージョンでもいいかなと思えてきた。
土曜日が仕事になると、プログラミング開発時間の確保が難しい上に、仕事の疲れが取れず根気が続かない。
コメント
コメントを投稿