読書メモ『効率が10倍アップする新・知的生産術』 勝間和代

書店で手にとって面白そうだったので購入。スタバで、一気に読んでしまいました。
最初のカラー見開きページがいきなりガジェットだらけなので、キワモノ系の印象を受けてしまいますが、中身はいたってまともです。著者の勝間和代さんは、最年少で公認会計士試験に合格したり、ウォール・ストリート・ジャーナルで「世界の最も注目すべき女性50人」に選ばれたり、アーサー・アンダーセン、JPモルガン、マッキンゼーを渡り歩いたりといった凄い人です。
この本を読んで分かったことは、やはりスーパーウーマンでも常に試行錯誤をし続けて、常に最良の方法を追い求めているということ。そのための手段として、本を読むことは重要で他人の成功体験をうまく取り入れる必要があるということ。

  • 資本主義の本質は「賢くない人から賢い人へお金が移動する仕組み」
  • ほとんどの人は情報洪水と呼べるほど情報を浴びてない
  • Gmailをプライベートな補助脳として活用する(超整理法
  • 会話でもフレームワークが重要
  • 自分のやり方を絶えずベンチマーク
  • 得意なことに集中すること
  • 情報収集テーマを5つくらい決めておく
  • テレビは極力見るな。自分の五感から入ってくる情報を大切にする。
  • 情報は一定量を集めると質に転換する
  • 次の3段階を網羅すること(1)簡単なものほど伝わりやすい(2)必要な時にはいつでも深い情報に入れるように(3)全体像がいつでもわかるように
  • 集中力を高めるには、体力も大事。週2回の筋トレと毎日の有酸素運動が効率を上げる
  • 睡眠は自分への投資 ー 毎日6時間以上寝る。寝ている間に脳内で整理される。
  • 五感を使うこと。精神的な落ち着きと健康な体が必要
  • 良書は10冊に1冊あるかないかで、文庫やソフトカバーよりもハードカバーや専門書に多い。(ちなみに著者は書籍代が15万円/月)
  • フォトリーディングによる速読技術を習得する
  • 読み終わった本は、ブックオフか図書館に寄付
  • 成果は「知識×実行割合×定着率」で決まる
  • コミュニケーション中毒にならないようにする

あと、なるほどと思ったのが、本が現時点で一番効率の良い情報収集手段だということ。たいていの著者は儲けというより、自己実現のために書いている。何十年もかけて培った情報が数千円で手に入るのは安い。確かになと思います。これからは、気になった本はとりあえず買っておこう。

# 後で気づいたんですが、Amazonでもランキング1位になっていますね。

OpenCVを使った顔認識を試してみる

インテルが開発・公開しているオープンソースのコンピュータビジョンのライブラリ OpenCV を試してみました。コンピュータビジョン(computer vision)とは、「ロボットの目」を作る研究分野だそうです。画像処理や構造解析、物体追跡などたくさんの機能が実装されていますが、その中でも多くの人が試している顔認識をやってみました。


Photo by weboo

Fedora 8だとパッケージが用意されているので、下記のコマンドでインストールできます。

# yum install opencv opencv-python

そして、使ったプログラムがこれ。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from opencv.cv import *
from opencv.highgui import *

def faceDetect(imgfile):
  # 画像を読み込む
  src_img = cvLoadImage(imgfile, CV_LOAD_IMAGE_COLOR)
  src_gray = cvCreateImage(cvSize(src_img.width, src_img.height),
                             IPL_DEPTH_8U, 1)

  # ブーストされた分類器のカスケードを読み込む
  cascade_name = "haarcascade_frontalface_default.xml"
  cascade = cvLoadHaarClassifierCascade(cascade_name, cvSize(1,1))
  
  # メモリを確保し,読み込んだ画像のグレースケール化,ヒストグラムの均一化を行う
  storage = cvCreateMemStorage(0)
  cvClearMemStorage(storage)
  cvCvtColor(src_img, src_gray, CV_BGR2GRAY)
  cvEqualizeHist(src_gray, src_gray)

  # 顔検出
  faces = cvHaarDetectObjects(src_gray, cascade, storage,
                              1.11, 4, 0, cvSize(40, 40))

  # 検出された全ての顔位置に枠を描画する
  for c, i in enumerate(faces):
    pt1 = cvPoint(int(i.x), int(i.y))
    pt2 = cvPoint(int(i.x + i.width), int(i.y + i.height))
    cvRectangle(src_img, pt1, pt2, CV_RGB(255,0,0), 3, 8, 0);

  return src_img

if __name__ == '__main__':
  if len(sys.argv) < 2:
    print "Usage: facedetect <filename>\n" ;
    sys.exit(-1)
  img = faceDetect(sys.argv[1])

  # 画像を出力
  cvSaveImage("output.jpg", img)

これはいろいろ応用ができそうで面白いですね。haarcascade_frontalface_default.xml のパターンデータが肝なんだけど、自分で学習させようとする場合は、背景画像が3,000通り、対象物の画像が7,000通りくらい必要だそう。ただし、トレーニング用の画像を自動生成することも可能なようなので頑張ればできなくもなさそうですね。

その後、erogeekな人のプロジェクトはどうなったんだろう…

OpenCV プログラミングブック
奈良先端科学技術大学院大学
毎日コミュニケーションズ (2007/09/22)
売り上げランキング: 4367

 

関連リンク:
Open Source Computer Vision Library
opencv.jp - OpenCV サンプルコード
OpenCV for Linux