hirax.net::Keywords::「映画」のブログ



2014-08-16[n年前へ]

「カリオストロの城」研究と「風立ちぬ」 

 ルパン三世「カリオストロの城」の解説動画。"The Castle of Cagliostro Analysis" Fiat500のエンジン配置とかフレーミングの工夫とか、とても面白くて作業BGMに全然ならなくて、仕事捗らない…。

 1年遅れの「風立ちぬ」。カリオストロの城の解説動画"The Castle of Cagliostro Analysis"にハマったせいか、風が流す雲の動き、逆に流れる風景や、その前で動く人物のスプライトも面白い。泣けちゃうけど。
 とてもシンプルな物語に感動した「風立ちぬ」のエンドロール、荒井由実の「今はわからない」「他の人にはわからない」という部分には、本当に端的に泣けてしまう。

2015-09-27[n年前へ]

実写 進撃の巨人 後編のYahoo!映画ユーザ・レビュー点数を「投稿時間・点数」で散布図にしてみた 

 実写映画「進撃の巨人 ATTACK ON TITAN エンド オブ ザ ワールド」のYahoo!映画ユーザ・レビューの点数が低い。ふと、ユーザー投稿時間がレビュー点数に影響を与える可能性があるだろうか?と考えて、640人分のレビューを「投稿時間・点数」で散布図にしてみました。点数は20,40,60,100点という20点おきだったので、散布点が見やすいように点数に若干のランダムノイズを加えてみました。

 結果は、単純に夜3時から朝6時くらいまでは(点数に関わらず)投稿数が少ない…という普通の結果になりました。 深夜の投稿は(気分がハイになって)点数が高くなるとか(その逆に)低くなる…といった傾向はみられませんでした。

 ちなみに、Yahoo!映画ユーザ・レビュー655人分を、日時順に並ぶ時系列で点数変化を眺めてみたのが下図になります。眺めていると、各レビュアーの行動パターンが感じられて面白いかもしれません。

実写 進撃の巨人 後編のYahoo!映画ユーザ・レビュー点数を「投稿時間・点数」で散布図にしてみた






2016-12-12[n年前へ]

「君の名は。」画風変換アプリをPython/OpenCVで書いてみよう! 〜意外に空変換は簡単? 編〜 

 先月下旬頃、映画「君の名は。」画風変換アプリEverfilterが流行っていた。軽く遊んでみた印象は、「空領域抽出処理に破綻が少なく(適切で)、その処理はおそらく普通の枯れた方法を使って、画面の4端辺から領域判定を独立にかけてる」ように感じられた。

 そこで、普通にやりそうなコードを書いてみたら、空領域抽出がどのくらいの品質が得られるか、確かめてみることにした。手っ取り早く試してみたいというわけで、Python/OpenCVコードを書いてみた。このコードは、入力画像と(入れ替え用の)空画像を読み込んで、グラフカットアルゴリズムが実装されたOpenCVのGrabCut関数を使い、(空がある程度の面積を占めていそうな)画面上半分の領域を対象として空領域を抽出し、その領域に空を合成するという処理を行うものだ。その処理例が、たとえば下に貼り付けた「バンコクの昼風景を夜空の下の街に入れ替えた画像」のようになる(上が入力画像、下が出力画像)。

 コードを書いて・試してみた印象は、OpenCVのGrabCut関数を使う程度でも、十分破綻の少ない空領域抽出を行うことができそうで、枯れた(枯れつつある)技術は便利だ!というものだ。実際のところ、「君の名は。」画風変換アプリ程度であれば、使用データ群(入れ替え用画像群)抽出処理も含めて、数日掛からず作ってしまいそうな気がする。

import cv2
import numpy as np

img = cv2.imread("bangkok1s.jpg")
mask = np.zeros(img.shape[:2],np.uint8)
skyimg = cv2.resize(cv2.imread("Starsinthesky.jpg"),
                         img.shape[1::-1]) 
bgdModel = np.zeros((1,65),np.float64)
fgdModel = np.zeros((1,65),np.float64)
rect = (0,0,img.shape[1],round(img.shape[0]*0.7))
cv2.grabCut(img,mask,rect,bgdModel,fgdModel,
                      50,cv2.GC_INIT_WITH_RECT)
mask2 = np.where((mask==2)|(mask==0),0,1).astype('uint8')
mask2 = cv2.blur(mask2,(5,5))
img2 = img*(1-mask2[:,:,np.newaxis])
skyimg = skyimg*mask2[:,:,np.newaxis]
img3 = cv2.addWeighted(skyimg, 1, img2, 1, 2.5)
cv2.imwrite("out.jpg",img3)
cv2.imshow("preview",img3)
cv2.waitKey()

「君の名は。」画風変換アプリをPython/OpenCVで書いてみよう! 〜意外に空変換は簡単? 編〜「君の名は。」画風変換アプリをPython/OpenCVで書いてみよう! 〜意外に空変換は簡単? 編〜






2019-06-23[n年前へ]

2012年公開の「メン・イン・ブラック3」にハマるの巻 

 7年前に公開の「Men in Black 3」を、金曜ロードSHOW!で観たことをきっかけに、気になった箇所を知りたくて、ノーカット版で観直した。…すると、その台詞回しに感動して、思わずメモをとってしまった。

まず、10:30辺りから始終繰り返される(このエピソードに至るまでのコンテキストと矛盾せず・むしろその説明を与えてくれる)リフレイン。「過去の何が、今の現在を作ったか。なぜ、そういう現在に至ったか。」というのが、この映画のテーマだ。

How did you get to be like you?
Something happened, K.
What happened?
あと、もうひとつ。これも、何度も出てくるリフレインだ。非常に似たフレーズで、"truth or lies?"というフレーズも、何度も出てくる。それらのフレーズは、このエピソードに至るまでのコンテキストに対して、納得感与える理由の説明を与えてくれる。過去や現在を作る、そこに至る行動に迷う理由を与えてくれる。
I don't ask questions that 
I don't want to know the answer to.

 ちなみに、タイムトラベルもので、気に掛かる「タイムパラドクス」…それの懸念に答えるフレーズが、35:20のこれだろう。

Oh, wait. How come I remember K,
but nobody else does?

That means you were there!

I was there?
 このフレーズは、プロット的に実に「上手い」ように思う。つまり、世界線は結局のところ変わっていなかったし、だから、その世界で生きる登場人物の今の行動を作り出していたのだろう…と感じさせてもくれる。

 もうひとつ、忘れられないフレーズが、付け足しのように言う”You and your partner.”という台詞だ。この言葉で、主人公のうちの1人に重きをおいた"you"だとわかるので、その前に眺めた映像が「地球が破滅するシーン」ではなく、(別脚本では)it was my son. All grown up.と書かれた内容であることが、自然にわかる。

What did Griff show you back there?
How important you are.
You and your partner.
JAY:
Can I ask you -- what did the Lama(Griffin)
show you in there that made you
help us? Was it the Earth being destroyed?

COLONEL:
No -- it was my son. All grown up.
As a matter of fact, I'm late to see him
 -- I promised I'd watch the launch with him.

JAY:
Oh. Thanks. He's a lucky kid.

COLONEL
I'm a lucky dad. Take care.
(Jayが差し出した手に握り、そして、
COLONELはJayを抱きしめる)

 映画館を出るときに、絶対気持ち良くなるはずのフレーズが1:24:00の”Anything's possible"だ。ありふれて・使い古されたフレーズだけれど、過去や現在は変えられないけれど、未来だけは未だ可能性が限定されていないという、こういうフレーズは大好きだ。

 結局のところ、数限りない可能性の中から、迷いの末に選べなかった選択肢を取り除いたものが、今この瞬間を作っているのだろう。

 …7年前に公開の映画を観て、とても興味深かったので、思わずメモしてしまった。



■Powered by yagm.net