1. 研究の背景
- Pythonで一般的に提供されているモジュール(さまざな機能を簡単につかえるようにしたもの)の性能の向上
- 近年の情報技術の進歩と、デジタル化による仕事の効率化、コスト削減
- 化学の実験で色を目で見て判断するものは個人差が生まれてしまう(下図)
(この液色は実験の終点となるが、はっきりと色が表れないため個人によって終点の感覚が異なる)
2. 仮説とねらい
- 画像データは 赤、緑、青の3色で構成されているため “色彩の変化” という目視による曖昧性のある情報を 数値 として管理することができれば、より正確な変化を捉えることができるのではないかと考えた。
- 色彩の変化を数値として管理する上で、化学の実験のような変化のデータをもとに考察を行うものに対して有効的に用いることができそうだと考えた。
- 色彩などの数値情報をコンピュータで扱うことによって、今までは全て人手でやっていたものが、より正確に、より早くデータをまとめることができると考えた。
3. 研究内容
共同研究者:ei2005 大場 樹
システム化学科3年の方々
< 研究 >
キレート滴定という実験を行う中で、カメラモジュールと小型コンピュータ(Raspberry Pi)を
用いて、正確な実測値を得る。
< 情報技術科での取り組み >
- 色彩の微量な変化をコンピュータで処理し、正確性のある実験を提供する。
- Pythonの画像処理モジュールを用いて色彩情報を取得する。
- 色彩情報をもとにグラフ、表の作成に繋げる。
- 機能を集約した扱いやすい簡単なウィンドウアプリを作成する。
4. 技術的知識
- pythonでのプログラミング
Pythonとは…
オープンソースで運営されているプログラミング言語であり、組み込み開発や、
Webアプリケーション、デスクトップアプリケーション、さらには人工知能開発、
ビッグデータ解析などと多岐な用途に使われる。大きな特徴としては、少ないコードで簡潔に
プログラムを書けること、専門的なライブラリが豊富にあることが挙げられる。
- pythonで提供されているモジュール(Opencv,Tkinterなど)の活用方法
OpenCVとは…
画像・動画に関する処理機能をまとめたオープンソースのライブラリ。
物体検出・画像の編集、認識などの機能が提供されている。WindowsやMac、Android、iOSなど
幅広いOSに対応。ライブラリ自体はJava、C++でも利用が可能。
Tkinterとは…
主要なOS(Windows、Mac、Linux)に対応しているPython標準搭載のGUIライブラリ。
シンプルな文法で起動速度が速く、基本的なGUIライブラリとして広く使用されている。
- Raspberry Piでのプログラミング、カメラモジュールの使用
Raspberry Piという小型コンピュータと、カメラモジュールを接続し、カメラの映像を
コンピュータ内で処理する。
- コンピュータ内での色の扱い→RGBの3色で1色0~255の値
コンピュータでは、色を光の三原色(R:赤, G:緑, B:⻘)を組み合わせて色を作っている。
pythonではそれぞれを0〜255の数値で再現している。
例)・R:255,G:255,B:255 -> 真っ白 ・R:0,G:0,B:0 -> 真っ黒
5. これからの取り組み
これまでやってきたこと
- PythonのOpenCVモジュールによるリアルタイム映像の取得
– OpenCVによりカメラを操作、15ミリ秒間隔で写真を撮影・表示を行うことで
疑似的にリアルタイム画像を映像化した - マウスイベントによる色情報を取得する範囲指定
– ユーザーの操作に対し何かしらのアクションを行うTkinterのbindメソッドを用いて
表示された映像をマウスのクリック長押し&ドラッグで範囲を指定できるようにした。 - OpenCVによる画像からの色情報の取得
– マウスイベントによって指定された範囲内の色情報の平均値を
flattenで色情報の配列を一次元化しmeanで平均を取得した。 - Tkinterモジュール内のウィジェット「Treeview」による表作成
– Tkinter上で表を作成できるTreeviewを用いて、”回数” “現状の色” “変化量” の3要素を
ボタンクリックで更新(追加)していく。 - PythonのTkinterモジュールによる簡易的なウィンドウアプリ
– Pythonに標準付属されているTkinterモジュールを用いてカメラ映像の表示、
テーブル(表)、平均化した色情報を表示を行った。
▼ 取り組み内容をまとめた動画です
これからやっていくこと
- カメラ映像の加工
– 溶液の画像の変化がより顕著に出るようカメラ映像の彩度をプログラムで調整する。
また、反射や影の影響を加工によって小さくできないかと考えている。 - 表データをもとにグラフ化
– 表データからの応用性がまだ無いため、折れ線グラフを配置することで視覚的に変化を
捉えやすい形に変換していく。 - 計測結果の保存、および共有
– 現在、表データを保存する形式が作れていない。その上、共同研究者の大場氏とは別の
Raspberry Piを使用しているためデータの照合が行えない。
そのため2つのRaspberry Pi間で同期をとり、データベースに互いに書き込むなど
データを保存する仕組みを作っていく。
6. まとめ
現状、影や周囲の状況を強く受けるため固定された環境下でしか扱えない。また水溶液を対象とした実験である場合、液色が薄く変化を捉えにくい。研究機関で利用される溶液の変化を検出する機材はどのような環境下でも使えるが非常に高価で、溶液につけながら計測をする。
しかしウィンドウアプリであればお金もいらず、液につける必要がないため劣化の心配もないため
問題点を取り除くことができればかなり有効的に扱うことができるかもしれない。