【スマートものづくりエキスパート育成スクール取組】(7)処理時間の検討

はじめに

前回の記事 【スマートものづくりエキスパート育成スクール取組】(6)文字認識の処理時間 より、

取得した画像からOCRを行い、文字列を取得するまでにかかる時間を計測することにしました。

今回は処理時間を短縮できる条件を選定していきます。


検討

次の2つの条件から検討を行いました。


(1)解像度

解像度が高いほど画質が良いため文字認識の認識率は高くなりますが、

画素数が多いことから、その分画像処理に時間がかかってしまうと思われます。

解像度が低くなると認識率は悪くなると思われますが、処理時間は短縮することができるはずです。

そこで、認識率を下げないまま解像度をどこまで落とすことができるか検討を行います。


(2)CPU

現在工程で実際に使用しているのはラズパイ3なので、ラズパイ3を使用して実験を行っていましたが、

ラズパイ4が登場しており、ラズパイ3よりも処理速度が速くなりより高性能になっています。

ラズパイ4の方が処理が速いはずです。

そこで、ラズパイ3とラズパイ4で比較を行い、どのくらい異なるのか検証します。


(1)解像度の違い

解像度1920×1080と800×480の画像で検出を行い、スコアと処理時間を比較しました。

1920×1080で撮影した画像を、800×480にリサイズします。


・解像度の設定

1920×1080に設定しておく

cap.set(cv2.CAP_PROP_FRAME_WIDTH,1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT,1080)



・リサイズ

取得した画像800×480にリサイズして取得する(img:リサイズする画像を指定 img2:リサイズ後)

img2 = cv2.resize(img, (800, 480))


ラズパイ3を使用し、識別番号が異なる42枚のカードに対して実験を行いました。

スコアはほぼ変わらず、処理時間を14.36秒から9.55秒に短縮することができました。

文字認識 python OCR 処理時間 ラズパイ


(2)CPUの違い

処理時間の目標は5秒以下ですが、解像度を800×480に落としてみてもまだ処理時間に10秒近くかかっています。

ラズパイ4を使用して上記と同条件で実験を行いました。

スコアに大きな差はなく、解像度800×480で処理時間は2.27秒となりました。

文字認識 OCR python ラズパイ 処理時間


まとめ

実際の工程に投入した際にOCRの処理に時間がかかることによって作業効率を下げたくないため、

5秒以下を目標に、処理時間を短縮できる条件の検討を行いました。

15秒近くかかっていたところ、

解像度を1920×1080から800×480に落とし、ラズパイ3からラズパイ4に変えることで

スコアはほぼ変わらないまま2.23秒に短縮することができました。

次回からは、スコアを上げる方法を検討していきます。