大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

「何色?」アプリのバージョンアップに向けて

著者:高木信尚
公開日:2019/07/07
最終更新日:2019/07/07
カテゴリー:技術情報
タグ:

高木です。こんばんは。

土曜日はスーツを買いに出かけました。
私はいつも安物しか着ないので、オーダーメイドとかではなく、その辺の店で既製品を買います。
今回もそうでした。

店員さんに「どんな色がいいですか?」などと聞かれるのですが、私は残念ながら強度の色覚異常で、微妙な色合いなんかわかるはずがありません。
結局いつも似たような色を買うことになります。
着るものにはとくにこだわりがないので、早い話が何でもいいのです。

こんな強度の色覚異常の私にとっては、「何色?」のようなアプリが必要になります。

最近は学校で色覚検査をしないようですね。
私にいわせれば余計な配慮で、どんなことでも現状を正確に把握した上で「じゃあ、どうしようか?」という話に持っていくべきだと思うのです。
なのに現状から目を背けても、何ひとついいことがありません。

私は大学は電子工学科でした。
進学にあたって、高校の先生は何もいってくれませんし、入学時に検査もなかったと思います。
就職にあたり、研究室の教授にも相談したのですが「何も問題ない」といわれました。

確かに進学や就職時の「選考に限って」は問題なかったと思います。
でも、就職したあと、抵抗のカラーコードもまるで読めない私が、そっち方面でまともに仕事ができるはずがないじゃないですか。
「それなら最初からそういえよ」と思ってしまいます。
まあ、他責してみてもどうなるものでもなく、うすうす気付いていたのに都合のよい情報だけを信じてしまった自分の責任なんですけどね。

色覚異常は圧倒的に男性に多く、日本人男性の20人に1人、白人男性の10人に1人が該当します。
少数派といえば少数派ですが決して珍しくはない程度の比率で、学校のクラスに1人ぐらいはいるという感じでしょうか。
自分自身も当事者なので、広く役立てていただこうということでアプリを作って公開しています。

さて、前置きが長くなりました。

「何色?」はiPhone用のアプリですが、現在Android版も開発を進めており、おおよそ完成に向かっています。
近日中にはAndroid版が公開できると思います。

その次にiPhone版、Android版ともにバージョンアップすることを考えています。
具体的にどんな変更を加えるかはまだ検討段階で、あまりプラットフォームに特化した機能を使うと、iPhone版とAndroid版の差が広がってしまいます。
そのあたりも含めて落とし所を探らないといけないと思います。

以下、私が勝手に考えた「こんな機能を盛り込みたい」という内容を挙げてみることにします。

環境光での補正

輝度センサーを使って、色名を引き当てる際の補正ができないかを検討しています。
ただ、色覚異常の人は普通の人より明るさに対する感度は高い傾向にあると思うんです。
なので、この機能は工数を増やすだけで余計かもしれません。

それより、太陽光と蛍光灯では色味が変わるので、ホワイトバランスの調整が必要になるかもしれません。
自動で調整できればいいのですが、ユーザーに調整させるのは無理があります。
そんな調整を行うには、微妙な色味を区別できないといけませんが、それができないから困っているんですから。

本来であれば、コピー用紙などはっきり「白」とわかっているものをカメラで撮ってみて、そのRGB値を使ってキャリブレーションしたほうがいいんだと思います。
面倒ですけどね。
普段はそこまでしなくてもよくて、より精度を上げたいときだけキャリブレーションするというのもアリだと思います。

色名やRGB値の表示

手ぶれするのが当たり前なので、素直に作ると今のように頻繁に表示が切り替わって読み取れなくなります。
これに対して何らかの工夫をしたいと考えています。

単純に更新頻度を下げるだけでもかまわないでしょうし、頻度をユーザーが調整できるようにしてもよいかと思います。

まったく別のアプローチとして、RGB値を取得する範囲を単一の画素ではなくもう少し拡大して、その範囲内の平均(加重平均かも?)の値を採用することも考えています。
これなら多少手ぶれしても値が大きく変化することはないでしょう。
RGB値に関しては、24ビットもいらないので12ビットでも十分かもしれませんね(実際、内部で色名を引き当てる際には12ビット値で処理しています)。

加速度センサーを使って手ぶれの影響を吸収することも考えました。
ただ、これはちょっと難しいでしょうし、思ったほどの効果が得られないことも考えられます。

色名の調整

現在の「何色?」がどのように色名を引き当てているかというと、カメラが撮った映像から取得したRGB値をいったんHSL値に変換し、色相、彩度、明度から単純に色名を合成しています。
ただ、この方法はイマイチいけてません。

HSLにせよHSVにせよ、明度を求める際にはRGBの3要素、すなわちRed、Green、Blueを平等に扱っています。
しかし、実際にはGreenがもっとも明るく、次いでRed、そしてBlueがもっとも暗くなります。
グレースケールを求める際には、そうした事情を考慮し、RGBそれぞれに重みを付けて加算しますが、明度はあくまでもグレースケールを基準に決定したいのです。

今回挙げた以外にも、アイデアレベルではいろいろ考えています。
あまり欲張りすぎると、いつまで経ってもリリースできなくなってしまいますので、できるところから少しずつ対応していきたいと思います。

    次の記事 :
    上に戻る