2012年6月28日木曜日

変換行列についての考察


さて、敬愛するタモさんは「おっぱい星人」です

他にもネット上ではやれ巨乳が良いだの、ちょいぽちゃが好きだだの、くびれ命だの、女性の体型に関する議論(というか単なるカミングアウト)は枚挙に暇がありません

ちょいブス萌え、とか言われても知らんがな

今回はこの事について考えてみたいと思います

まず、女性の体型は多くのパラメータで表現されるとします。つまり、女性の体型は多次元行列で表現する事ができると考えます
つまり「おっぱいのサイズ」や「くびれの程度」「おしりのサイズ」「身長」「体重」…という直行するいくつかの1次元パラメータを集めた多次元の行列、と定義するわけです

そして、見る側の「萌え」だの「好き」だのは女性の体型を表わすそれぞれのパラメータに対して、どのパラメータをどれだけ重視するか、という情報を集めたものと考えられます。
ここでは女性の体型の各パラメータをどれだけ重視するかを1次元のスカラー値で表現する事を考えます
そしてこの1次元のスカラー値を並べたものが、まさに見る側の「個人の好み」を表現する変換行列となる、というわけです

つまり、ここではある女性の体型を表わす多次元行列を、見る側の好みを基準としたスコアにする事ができる変換行列こそが、「個人の好み」や「~星人」と定義できる、と考えるわけです

行列、というと難しいものを想像されてしまうかもしれませんが、今回は出力は点数、スコアという1次元のスカラー値です。よってこの「個人の好み」を表わす行列というのは、女性の体型を表わす各パラメータそれぞれについて、その個人がどれだけそれぞれのパラメータを重視するか、という重み付けの係数を並べただけのものとなるはずです。

まだ分かりづらいと思いますので詳しく見ていきましょう。入力となる女性の体型パラメータ列($W$)を例として下記のように定義します

$W_0 = $ おっぱいのサイズ
$W_1 = $ くびれ具合
$W_2 = $ おしりのサイズ
$W_3 = $ 身長
$W_4 = $ 太さ
$W_5 = $ 顔のレベル
$W_6 = $ 肌の色

\begin{eqnarray}
W = \left(
\begin{array}{c}
W_0\\
W_1\\
W_2\\
W_3\\
W_4\\
W_5\\
W_6\\
\end{array}
\right)
\end{eqnarray}

実際は乳首の形、等もっと多くのパラメータが存在するはずですが、ここでは簡略化のため上記の7つに絞ります

これに対し「個人の好み」を表わす変換行列$F$は、上記の$W_0$~$W_6$それぞれをどれだけ重視するかを当てはめていけば作る事ができます。例えば自分の場合

$F_0 = -0.2$
$F_1 = 0.8$
$F_2 = 0.1$
$F_3 = -1.0$
$F_4 = -0.6$
$F_5 = 1.0$
$F_6 = 0.8$

\begin{eqnarray}
F = \left[
\begin{array}{ccccccc}
F_0 & F_1 & F_2 & F_3 & F_4 & F_5 & F_6 \\
\end{array}
\right]
\end{eqnarray}

と表現できます

この結果

\begin{equation}
FW = S
\end{equation}

という形でスコア$S$が算出できる、という事になるわけです

詳しく見ていきましょう

まず、$F_0$ですがおっぱいのサイズをどれだけ重視するかです。ここでは-(マイナス)の係数となっています。つまりこれは「おっぱいが大きい方がスコア下がる」「重みは0.2なので大きくても問題ない」という事です

ただ、ここは難しい問題を含んでいます。

かの有名な「バスト占いのうた」でもCカップこそが「最も限りなく正解に近い」とされています。



また、エロ男爵こと沢村一樹さんはおっぱいで重視するポイントとして「味」と回答されています(出展)

よって上記例を考えると、本来は単純にサイズが大きければ$W_0$が大きい、という関係にはなりません
ですが、本考察上は$W_0$は小さい程微乳、大きい程巨乳、という単純なマッピングとします。
(規格外の巨乳を考慮し、大きい方に対してレンジは規定しません)

このように単純化する理由ですが、まず係数が0.2である事からご想像いただけるかもしれませんが、正直おっぱいのサイズあまり気にしてないからです

でも大きいのはちょっと怖い
自分に自信が無い証拠です

次の$F_1$は0.8とそれなりに大きな値となっています
「くびれは無いとイヤだなー」という感覚ですね

ただ、後述の$W_3$、$W_5$、$W_6$とは同程度もしくは低い重み付けですので、例えば「くびれの女王」とかいう中吊りにつられて雑誌買って見たら、顔とかが好みじゃなくてがっかり、とかは有り得るという意味です

がっかりした事がある、とは言っていません

ここ重要です

次の$F_2$は0.1です。これは正直どうでも良い、というレベルですね。ここで注意していただきたいのは、この0.1という数字は「小さい方が良い」ではありません。実際に計算していただくと分かるのですが、この$F_2$の小ささは最終的に算出されるスコアに対する$W_2$の影響度が低い、という事を意味しています。
よって大小があまり気にならない、という意味になるわけです

でもデカいとミニワンピとかがかわいく見えるのは否定しません

ここも重要です

で、$F_3$はマイナス-1.0です。$F$行列全体の中では$F_5$と並んで一番大きな絶対値を持っています。つまり重視する、という事です

しかし値は-(マイナス)です。これは重視の方向が逆、つまり身長が高い程スコアが下がる、という事を意味しています

いわゆるミニ萌え
具体的には矢口


次の$F_4$ですが、0.6と低くもなく高くもなく、という感じですね。これはごく平均的な感覚とお考えください。つまり「普通にデブはイヤ」というレベルです

だとこれは-1.0じゃないのか?と思われるかもしれませんが、前述の通り値の大きさは$F$の中で相対的にどれだけ重視するか、という事を意味しています。つまりちょっと太めでも、$W_1$、$W_3$、$W_5$、$W_6$が高い(もしくは低い)ならばスコアに対して「太さ」が与える影響は相対的に低くなるわけです

なのでそんなにダイエットダイエットって言わなくて良いです

普通が一番

そしてついに$F_5$で1.0が出ました

これも$W_0$と同様、難しい問題を含んでいます。そもそも人間の顔の作りは多くのパラメータを含んでいます。目、鼻、口各パーツの位置、大きさ、形、また顔全体のサイズ、形・・・

詳細は改めてまた考察したいと思いますが、今回は例えば1万人に点数付けをしてもらった平均点、くらいに考えてください。一般論としての美人、ブス、というパラメータという感覚です。ここでは単純に美人ほど$W_5$の値は高くなる、と定義しています

というわけで顔、大事

体型良くても顔でがっかりというのはグラビアの世界では良くある罠です
特に巨乳ブーム以降、その傾向が顕著になってきた気がします
気をつけましょう

最後に$F_6$ですが、これも意外と単純ではありません
ここでの$F_6=0.8$というのは、「なるべく色白が良いなー」というニュアンスです
この場合、$W_6$が大きい程、肌の色は白い、という意味です
んじゃ焼けた肌が好き、というのはどう表現するか?がポイントになります

$W_6=0$が真っ黒と定義するとどうなるでしょうか?

ちょっと計算していただくと分かりますが、この場合$W_6=0$の真っ黒ギャルに対しては$F_6$をどういじろうがスコアに対して影響を与える事ができないという事になってしまう事が分かります
これは俺はどーでも良い事ですが黒ギャル好きは納得しないでしょう。

よって、この$W_6$は例外的に$W_6=0$を平均的な薄ピンクとし、マイナス方向を色黒、プラス方向を色白、と定義します。これによりギャル好きはマイナス値の$F_6$を持つ事で表現できます

まあでもやっぱ色白だよねー


上記はシンプルな例ですが、これで好みを表わす行列$F$ができました

文中で触れている通り、特におっぱいと顔については課題が残るものの、女性の体型およびそれに対応した個人の好みを行列で表現し、女性の体型に対する見る側のスコアを算出するという理論の可能性が示されたと思います

・・・なんの話でしたっけ?

・・・まあ、要は色白ミニでクビレもちゃんとある美人が好きって言いたかっただけだわ

1行で済んだわチキショウ


2012年6月23日土曜日

Androidアプリ開発小ネタ




(絵と本文に関係はありません)
ちなみに「これ、羊なの」だ、そうです


さて、Androidアプリの世界では
  • 無償版。Free。機能制限 and 広告有り
  • 有償版。Full機能 and 広告無し
というのは結構定番ですよね

今回は、アプリ開発の観点から、上記をスマートに実現する方法を考えます
(ググっても良いやり方が買いてあるブログ、サイトが見つけられなかったので・・・)

通常、これらのアプリは別アプリとしてMarketに置かれています
よってPackageとしては別になります
そのため物理的に一つのソースコード(.javaファイル)を共通して持つ事はできません。Javaは実装毎に自分がどのパッケージに含まれるのか明記が必要だからです(という理解です)

一方、有償、無償、双方に共通の機能は共通の(ひとつの)実装にしたいと普通は考えます
Java、Android開発の経験が浅かった事もあり、また実質開発終了していたため、以前は真面目に考えずコピーして済ませてしまいました

今回はまだ公開前という事あり、ちゃんと考えてみました

ちなみに現時点ではまだ机上検討レベルで未確認です
実装してみて課題や解法見えたら、またここに追記したいと思っています

ポイントは継承です(今考えるとすげー普通)

その1
  1. 有償版(広告無し)を実装
  2. 無償版は有償版のMainActivityを継承 (importで有償版のパッケージを指定する事で可能になるはず)
  3. 無償版Activityで広告viewの追加およびlistener回りの処理を追加。また機能制限されているものは蓋をする(この仕組みは有償版に入れておく必要あり)
その2
  1. 無償版(広告有り)を実装
  2. その1同様、有償版は無償版のActivityを継承する
  3. 有償版のActivityでは広告表示を停止する。また必要な追加機能等をactivateする(同じく無償版は有償版限定機能も実装しておき、蓋をしておく必要がある)
ただし上記その1、その2では親クラスとなるActivity(およびパッケージ)が、本来そのパッケージには関係の無い機能を(蓋をするなりして)有しているという事になり、デザイン上はあまり好ましく無さそうです(まあ、個人開発のレベルでは問題にならないと思いますが)

よって、理想的には
  1. 無償、有償で共通な機能をcommon packageで実装する
  2. 無償、有償それぞれがcommon packageを継承したactivityを作成
  3. 無償、有償それぞれにそれぞれ必要な機能を追加する
ですね。common packageはいわゆる.apkを生成する必要はなく、未公開という事になります。

まずはこれで今作ってるやつ実装してみます



2012年6月20日水曜日

怒涛の英語

と言えばみすず学苑
一時期トラウマレベルのTV CMをやってましたね

ツッコみ所が多すぎて、正直不安になるレベル
塾としてこのスタイルは集客力があるのだろうか・・・おれならかわいいおにゃの子がCM出てる塾選ぶなぁとか(早○田塾とか)

というわけで自分はこの広告、CMを目にした時に冷静さを保つ事ができないのですが、ちょっと前に読んだどこかの記事に「色んな人が出てくるが、怒涛の英語と言っておきながら英語を母国語にしている人が全然出てこない」的なすげー冷静な分析があって、その発言をされた方の冷静さに感服した記憶があります。おれヤマトタケルが毎回居る事くらいしか分からん


さすがにTV CMは見なくなってしまいましたが、車内広告はまだ健在ですね

仕事が終わり、とぼとぼと駅に向かう。ホームに立つと、しばらくして同じように疲れきった人々を乗せた電車が到着する。無表情で降車する他の乗客達。そして自らも電車に乗り込む。運よくドア際には人が立っていない。そこに立とう。壁にもたれかかりぐったりする。スマホをいじる気力もない。そして発車音が鳴りしばらくしてドアが閉まる---

みすず学苑新しいのキターーーー


今や癒しです。

ってみすず学苑なんて他のブログでも触れてる人多そうだな(怖いから検索しないけど)


2012年6月19日火曜日

改竄



というわけで早速、前回の絵を加工してみた

と、言ってもスキャナで取り込んだ際に裏のページがうっすら入り込んじゃっているのが気になったので、消してみただけ

編集はGIMPです
あらかじめ宣言しておきますが、GIMPなんてド素人です。インストールして一ヶ月経ったかそこらです。勉強中です
もっといい方法、定番のやり方があるかもしれませんね

1. [ツール]>[色域を選択]で背景色(ノートの白の部分)を選択、[しきい値]を変えて写り混んだ色は選択され、絵の部分は丸々非選択になる(線の中に選択領域が入り込まない)、という辺りをさぐる
2. [選択]>[選択領域を反転]してから[選択]>[クイックマスクモード]でモード変更、背景部分(絵じゃない部分)をピンクに塗っていく
3. 納得いくクイックマスクが作成できたら、[選択]>[クイックマスクモード]でクイックマスクモードを終了し、ここで[選択]>[チャンネルに保存]しておく(念のため)
4. 再び[選択]>[選択領域を反転]、[編集]>[切り抜き] (or [コピー])、[編集]>[貼り付け]として絵をフローティングレイヤ化。そしてレイヤーダイアログで[新規レイヤーの作成]を実行、フローティングレイヤ化した絵を別のレイヤーに移す
5. レイヤーダイアログでオリジナルの絵があったレイヤの左側の目のマークを消し、レイヤを不可視化。これで編集画面上は元の絵が透明領域の中に書かれている状態になる
6. レイヤーダイアログ上で、別レイヤー化した絵の直下で[新規レイヤーの作成]を実行し「背景」と名前付ける。一旦全面透明で作成。
7. レイヤーダイアログでオリジナルの絵を一時的に可視状態にし、[ツール]>[スポイト]で背景色としたい色(裏のページの色が入り込んでない部分)の色を吸い出す。でオリジナルの絵はまた不可視に戻す
8. [ツール]>[塗りつぶし]を使い、吸い出した色で「背景」レイヤを全部塗りつぶし

で、裏のページの映り込みは消せました。
手順で書くと一見複雑に見えますが、やってる事は結構シンプルです。

もうちょっと自然にやるには、8で背景レイヤを単色塗り潰しにせずに、再度写り込みが無いようにまっしろの紙をスキャンしてその画像を背景レイヤに使用する、という手もありますね。

っていうかそもそも、もっと良い方法ないのか???

2012年6月17日日曜日

子供の絵





ブログを始めようと思ったきっかけの一つがこれ

3歳なりたてのうちの長男はらくがきちょうでお絵描きするのが好きです
ちょっと前までただのぐちゃぐちゃだったのが、最近はけっこう印象的で面白い絵を書くようになってきました

でもらくがきちょうがいっぱいになるとママはけっこうあっさり捨てちゃうんですよね
ちょっと思い出的にもったいないなぁと

で、キャプる事を思い付きました
だったらいっそネットに上げちゃおうと考えた結果、一番良い形式はブログかなぁという事でブログを立ち上げる事を考え始めました
(冷静に考えるとキャプチャ作業かったるいし、モチベーションにもなるかなと)

GIMPの加工素材にも使えそうだな


はじまりはじまり


2012年は人生の事を考えざるを得ない出来事が色々ありまして、唐突ですがブログを始める事にしました
どういう論理の展開でブログ開設となったのかは今後の記事で少しづつ明らかになります(予定)

・・・テーマは特に考えていません。自分の興味ある事、思ってる事なんかをつらつらと書いていくスタイルを考えています
ざっと挙げると
  • ソフト開発。アンドロイドアプリとか
  • お絵描き。GIMPとか
  • 単に気になっているモノとか
  • まじめな話。どういったスキルをどのように磨くべきか・・・
  • おもしろネタ
  • シモ。ソフトエッチ、セクシーまで。ドエロは禁止
あとはこのブログがどういうわけか多くの方から注目され、副収入がっぽりになればみなさまの心を豊かにする事ができれば幸いです

ではまた