YOLOv2を動かしてみた。
以前YOLOv2を動かす機会があったので、そのことについてまとめます。
YOLOv2とは
YOLOv2はリアルタイム物体検出手法の一つで、非常に精度が高いです。以下の動画には度肝を抜かれました。
これを実際に動かすには訓練済みのモデルがすでに置いてあるので、https://github.com/leetenki/YOLOv2/blob/master/YOLOv2_execute.md に従ってやれば良いのですが、微妙にうまく行かないところがあったので、その修正方法についてまとめました。
git cloneする
git clone https://github.com/leetenki/YOLOv2.git
cd YOLOv2
yolov2学習済みweightsファイルをダウンロードする。
これでwget http://pjreddie.com/media/files/yolo.weights
を実行しても次のパースのところがうまくいきませんでした。次のファイルを代わりにダウンロードすることでうまくいきました。
参考: github.com
以下のコマンドでweightsファイルをchainer用にパースする。
python yolov2_darknet_parser.py yolo.weights
(chainerのバージョンが2以上の人向け)
chainerのバージョンが2以上の人は次のコマンドが動かないと思います。原因はyolov2.py
にあります。具体的にはyolov2.py
内の94行目から123行目において、F.leaky_relu
の引数にtest=not self.train
を取っていますが、これはバージョンが2以上の人は不要です。消しましょう。
参考:
以下のコマンドで好きな画像ファイルを指定して物体検出を行う。
python yolov2_darknet_predict.py data/people.png
検出結果はyolov2_result.jpg
に保存されます。例えば猫の画像で実際に物体検出をしてくれるのかを見てましょう。~/hoge/hoge/
フォルダ内のcat.png
を入力すると、、、
python yolov2_darknet_predict.py ~/hoge/hoge/cat.png
このように猫であることをきちんと認識してくれました!ちなみにこの猫はたまゆらんにいる欅ちゃんです。
以下のコマンドで、カメラを起動しリアルタイム物体検出を行う。
python yolov2_darknet_camera.py
以上です。何かあればコメントお願いします。
有界列が収束すること
とある仕事で採点してるときに"収束列が有界であること"の証明の出来が壊滅的に悪く、非常に厳しい気持ちになりました。ここにその証明を書くことでその厳しい気持ちを昇華させておきます。
久しぶりに書く
久しぶりにブログを書きます、よねすけです。大学院生になって思ったよりも忙しいことがわかったので、いろんなことを要領よくこなしていかないとだめだな〜と痛感する最近です。
さっきこんなことを知って面白かったのでブログにでも書いて見る。
はじめに床関数というものを導入します。床関数は与えられた実数に対してそれ以下の最大の整数を返す関数です。例えば
となります。このとき、次のような面白いこと知られているらしいです。
- ...
こんな感じでどんどん続いていくらしいです。本当にそうなっているのか、証明してみましょう。
証明
一般に示すべきことは、
とした時に
となります。このとき、
がわかるので、上の不等式は常に成り立つことがわかります。よって証明されました。
まあ、こんな感じで証明はできるけど、できるだけ、という感じが否めないですね。。。この式が成り立つことの背後にはなにかすごい法則があったりするんですかね。。。何か知ってる人がいらっしゃればぜひ教えてください。
それでは。
フーリエ級数の一様収束性
こんにちは、よねすけです。
院試勉強してると色々気づきがあって面白いです。大半は面白くないですが。
周期的な可積分関数のフーリエ級数がどのようなときに元の関数に収束するかについては色々な議論がなされています。例えば周期的連続関数でフーリエ級数が絶対収束する関数についてはフーリエ級数はもとの関数に一様収束することが知られています。一方で連続関数でもそのフーリエ級数が発散する場合もあり、非常に複雑な世界となっています。これだけでは連続関数はフーリエ級数を扱う上ではあまり良い性質を持っていないように思えますが、ここで収束の意味を拡張することによって連続関数を常に一様収束させることができるようになるのです!!!前置きが長くなりましたが今回はこの話について書こうと思います。
はじめにフーリエ級数の部分和を定義します。周期的な可積分関数についてその複素フーリエ係数をと書きます。すなわち、
実はこのフェイエール核は良い核(good kernel)となっています。周期的な関数の列が良い核というのは、
を満たすものようなことを言います。フェイエール核が良い核であることは実際に確かめられます。良い核については次の定理が知られています。この意味において「良い」という名前がついています。
を良い核の列とし、を周期的可積分関数とします。がで連続ならば、この定理より、連続関数についてはがわかるのです。よって連続関数はチェザロ総和の意味では常に一様収束するのです。である。特にが連続ならこれは一様収束である。
それでは。
「あなたの一票で変わる」ような国は終わっているという話
こんにちは。ざるご(@zalgo3)です。
選挙シーズンでも何でもないですが、選挙について書きたくなったので書きます。
突然ですが、システム制御には、「安定性」という概念があります。
ざっくりと説明すると、安定性とは「入力の変数に微小な変化を与えたとき、出力の変化もまた微小である」という性質のことです。
入力に誤差が生じることなんてよくあることなので、一般的にシステムは安定である方が望ましいです。
これを選挙について当てはめて考えてみましょう。
入力は「国民の票の分布」であるとしましょう。
出力は「選挙が終わった後の政治動向」とでもしましょうか。
日本の場合、国政選挙の有効投票数は、ざっと5000万票くらいありますので、国民一人の一票が変わったというのは、「入力の微小な変化」であると言えるでしょう。
もうお分かりいただけたと思いますが、「あなたの一票で政治が変わる」ような選挙システムは、非常に「不安定」です。
「あなたの一票で政治が変わる」というのは、酒に酔った勢いで誰かが誤った投票をしただけで、とんでもない方向に国が動いてしまう可能性があるということです。
そんなシステムは使い物になりません。
「誰がねえ!誰に投票しても!おんなじやおんなじ」であるということは、システムとして非常に望ましかったということですね。
それでは、また。
メルカトル級数とライプニッツ級数
こんにちは、よねすけです。
TOEICの点数が返ってきました。なななんと!!!945点!!!とても嬉しい点数でした!!!ちなみに『なななんと』は『ララランド』を意識しました。
メルカトル級数やライプニッツ級数を導出する方法はいろいろと知られていますが、今回は高木貞治の『解析概論』に載っていたある公式から導出することが出来たので紹介したいと思います。
- 作者: 高木貞治
- 出版社/メーカー: 岩波書店
- 発売日: 2010/09/16
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 49回
- この商品を含むブログ (14件) を見る
とすれば、
はじめにこの証明に取り掛かろう(章末問題に載っていて証明が載っていない!!)としたんですが若干厄介でした。上式の左辺を次のように変形します。
このように書くのには訳があって、被積分関数の分母部分をべき展開する際に収束半径が問題になってくるからです。いまの区間では
としたいところなんですが、途中で出てきた極限の交換については言及しておかなければなりません。ここの極限操作を交換できることはAbelの定理と同様の証明を行うことで示されます。なのでこれは収束が確かめられるので極限の交換は正当化されます。これよりはじめの式が示されました。
の場合、左辺は
の場合、左辺は
このようにしてメルカトル級数、ライプニッツ級数が得られました。今回はAbelの定理を用いたのでAbelの定理の紹介もいつかしたいと思います。また、メルカトル級数、ライプニッツ級数の別の証明も紹介したいと思います。
それでは。