【スマートものづくりエキスパート育成スクール取組】(2) 撮影環境の準備
はじめに
前回の記事【ものづくりエキスパート育成スクール取組】(1) 文字認識やってみるより、今回は撮影の環境を準備します。
人の目でも文字が見える画像でなければ、正しい文字認識を行うことができません。
また、外光に影響されると安定した画像を撮影することができず、判定結果が不確実です。
そこで、安定した画像を撮影するための環境が必要です。
3Dプリンタを利用して、オリジナルの撮影環境を作成します。
構想
一定品質の写真を撮影するために考えられる必要なものは以下の4つです。
(1)撮影対象であるカードをセットできるカードホルダ
(2)撮影するカメラ
(3)照明
(4)外光の影響を受けないようにすること
これより、順に考えていきます。
(1)カードホルダ
撮影対象であるカードです。これをセットできるようなものを考えます。
市販されている名札ケースのようなものだと、照明の反射の影響を受けてしまうことが考えられます。
そこで、3Dプリンタを使用してカードホルダを作成することにしました。
カードのサイズに合わせて社内で設計・作成し、カードホルダが完成しました。
次に、完成したカードホルダをセットできるものが必要です。
100円ショップでちょうどよい箱を見つけました。
箱を少し改造します。
カードホルダを取り付けられるように、端を切ります。
カードホルダをセットしてみます。ピッタリです。
カードの出し入れがしやすい設計になっています。
実際にカードを入れてみると、このような感じになります。
カードの印刷面も見えるように工夫してあります。
これでカードをセットすることができます。
(2)カメラ
USBカメラを使用します。
箱の中にUSBカメラをセットします。
カメラを固定する台も、3Dプリンタで作成しました。
箱のサイズに合わせた幅に設計してあります。
これにより、カメラの位置と角度を安定して調整することができます。
(3)照明
照明は、上方向からLEDを当てるようにします。
LEDを取り付けることができるようなものを、3Dプリンタで作成しました。
LEDは3つ取り付けました。
LEDの制御は、バッテリー駆動できることからM5Stackを使用します。
以前の記事【初心者向け】初めてのM5Stack 導入~液晶表示までよりご紹介したものを利用して、プログラムソースを追加します。
LEDはG26に繋げています。
// ライブラリの呼び出し
#include <M5StickCPlus.h>
// 最初に1度だけ設定される
void setup(){
M5.begin(); // 初期化
M5.Lcd.setTextSize(3); // 文字サイズを設定
M5.Lcd.setRotation(3); // 画面の向きを設定(0~3)
M5.Lcd.print("Hello World"); // 表示する文字列
// ★追加 ピンの設定
pinMode(26, OUTPUT); // G26を出力に設定
}
// 繰り返し実行される
void loop(){
// ★追加 LED点灯
digitalWrite(26, HIGH); // G26の出力をHIGHにする
}
プログラムを書き込みます。LEDが点灯しました。
照明なしの場合
照明ありの場合
これで照明の準備ができました。
(4)外光の影響を受けないような仕組み
照明の準備ができたので、外光の影響を受けない仕組みを考えます。
3Dプリンタで、箱の蓋を作成しました。
嵌合するようになっており、隙間が空かないような設計になっています。
1つが2cm幅になっており、一定間隔で照明の位置を移動させることが可能です。
これで、外光の影響を受けないとともに、照明の位置を検討することもできます。
以上で、撮影ボックスが完成しました。
まとめ
今回は撮影環境を準備するということで、オリジナルの撮影ボックスを作成しました。
今後、この撮影ボックスを使用して進めていきます。
次回はopenCVとよばれるオープンソースのライブラリを使用して、
カメラから映像を取得したいと思います。