アルゴリズム・サイエンス:入口からの超入門 (アルゴリズム・サイエンスシリーズ 1―超入門編)
アルゴリズム・サイエンス:入口からの超入門 (アルゴリズム・サイエンスシリーズ 1―超入門編)を読みました。途中まで。
学生さんに、なぜコンピュータが役立つのかのとっかかりとなる説明に始まって、コンピュータとプログラミング言語、技術の要素にまで、理解しやすいようにつなげて説明してくれている。
はじめに電卓とパソコン(CPU、メモリ)の比較を例に挙げて、複数の値を変数にとっておけること、カッコを使った演算がMCとかM+とかよくわからないボタンになっているのを、人間が読める形(プログラム)で、マシン語ではなく、扱えるようになっていて、繰り返し処理が得意とかとか。
画像処理や、数値データの活用の案件にむけて、知識増強したくて、このシリーズを読んでみようと思って手にとりました。
次を読むかは未定(今現在の案件には直結してこないので)。入社して2、3年の若手に、技術の入り口に立ち戻ってもらうのにはよいのかな。
アルゴリズム・サイエンス:入口からの超入門 (アルゴリズム・サイエンスシリーズ 1―超入門編)
- 作者: 浅野哲夫
- 出版社/メーカー: 共立出版
- 発売日: 2006/10/10
- メディア: 単行本
- 購入: 3人 クリック: 77回
- この商品を含むブログ (27件) を見る
Java言語で学ぶデザインパターン入門 マルチスレッド編
結城浩のJava言語で学ぶデザインパターン入門 マルチスレッド編を読みました。
java.util.concurrentパッケージが追加されたことで増補版がでたものです。
Javaを使用し始めた当時ではjava.util.concurrentパッケージなど無く、java.lang.Threadを使ってゼロからのプログラミングが要求されたけど、現在はパッケージを使うことで、より簡単に実装ができます。
ちょうど最近見ていた案件で、java.util.concurrentを使用したソースコードをメンテすることがあり、Java1.4時代で知識停滞している自分にとってjava.util.concurrent.Future、ExecutorServiceを使っての説明が参考になると思って読みました。
増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編
- 作者: 結城浩
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2006/03/21
- メディア: 大型本
- 購入: 15人 クリック: 287回
- この商品を含むブログ (204件) を見る
Java言語で学ぶリファクタリング入門
結城浩のJava言語で学ぶリファクタリング入門を読みました。
案件では、じっくりとソースコードをメンテナンスする時間を取れない(取らないといけないのに。定時が終電のような状況では難しい)ので読んだだけ。いつか役立てれるときにもう一度読もう。
コンピュータビジョン
オライリーのコンピュータビジョンを読みました。
職場でまわりの人たちが画像認識、画像分析をやってるのですが、チンプンカンプンだったので勉強です。
画像からの特徴量抽出、画像分割、物体認識のさわりがぼんやりわかりました。今回読んだだけなのですが、pythonによるサンプルコードが充実しているので、理解の定着には是非手を動かしてみるとよいと思います。が動かせてません。
以下内容備忘のキーワードメモ。
2.画像の局所記述子
Harrisコーナー検出器
SIFT
3.画像間の写像
アフィン変換
4.カメラモデルと拡張現実感
カメラキャリブレーション
姿勢推定
5.多視点幾何学
エピポーラ線
エピ極
エピポーラ幾何
SVDで最小二乗推定
6.画像のクラスタリング
k平均法
階層クラスタリング
スペクトラルクラスタリング
特徴量ベクトルに平均RGB値とPCA係数
7.画像検索
SIFT記述子のような局所記述子
ビジュアルワード
bag_of_visual_wordrモデル
8.画像認識
k近傍法
密なSIFT特徴量ベクトル
ベイズ分類器
次元削減にPCA
SVM
多クラス問題の例、数独。光学文字認識
マスの抽出、枠線
画像の位置合わせ
9.画像の領域分割(セグメンテーション)
前景、背景。個々の物体。
グラフカット
10.OpenCV
SURF特徴量
オプティカルフローは2枚の連続する画像間での物体の動き。画像上での移動を表す2Dのベクトル場
動画圧縮、動き推定、物体追跡、画像の領域分割に応用
コーナーの特徴点を追いかける
以上。
- 作者: Jan Erik Solem,相川愛三
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/03/23
- メディア: 大型本
- 購入: 1人 クリック: 22回
- この商品を含むブログ (4件) を見る
Javaの性能改善メモ
Javaプログラムの性能を改善したいが、うまく原因調査できておらず、行き当たりバッタリの手当てになっている。
JDKの基本的な情報、調査方法、改善方法を調べた内容をメモしておく。
★Setは集合、重複無し。
Listはリスト。
LinkedListとArrayList。
Java6:ArrayListは500万件で200数十ms。LinkedListは200万で数十ms。
Java8:ArrayListは2億件で100数十ms。LinkedListは5000万で100数十ms。
ArrayList、LinkedListいずれも拡張forがよい。
LinkedListのget(i)はめちゃくちゃ遅いので単純なfor(ループカウンタ)も遅い。途中の要素追加がある場合に使える。
ArrayListのcontainsはだめ、HashSetを使う。
Mapの要素はkeySetではなくentrySetでまわす。
★初期容量の指定
負荷係数を考慮しないような指定(n * 4 / 3 + 1)
http://d.hatena.ne.jp/Kappuccino/touch/20080723/1216787927
★
1) Map<K,V> map = new HashMap<K,V>();
2) HashMap<K,V> map = new HashMap<K,V>();
JITでないと1は2に比べて2倍以上遅い。
http://developer.android.com/intl/ja/guide/practices/design/performance.html#myths
★オートボクシングによる暗黙のnew
数値が-128〜127はキャッシュだが、これ以外はnewされる。
trove。
hppc。
★スレッドダンプ、ヒープダンプ、GC
jstack、jmap
http://www.techscore.com/blog/2016/02/05/%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89%E3%83%80%E3%83%B3%E3%83%97%E3%81%A7%E3%83%9C%E3%83%88%E3%83%AB%E3%83%8D%E3%83%83%E3%82%AF%E3%82%92%E8%AA%BF%E6%9F%BB%E3%81%97%E3%82%88%E3%81%86/
★CPU、I/O
uptime
dmesg | tail
vmstat 1
mpstat -P ALL 1
pidstat 1
iostat -xz 1
free -m
sar -n DEV 1
sar -n TCP,ETCP 1
top
告白
湊かなえの告白を読みました。