2014年7月19日土曜日

ラズベリーパイカメラ2- カメラのフォーカス調整


ラズベリーパイカメラで小さいものが取れるかを確認。

パイカメラのレンズを回すことでフォーカスを調整できる。

 

  

レンズはネジ留めになっているので回すとフォーカスが変わる








レンズを取り外したところ  







実はフォーカスについてここに記載あったが、読む前にいじってしまったので、初期設定は分からなくなってしまった。。。

とりあえず自分は小さいものが見たいのでどのくらいの距離からどのくらいの視野が見れるか確認。

測定風景

レンズを適当に回して焦点があった時のレンズから焦点の合った場所までの距離を測定、
その時に画面に何mm四方が映っているかを測定。







測定結果が以下。
 

 でこのデータをもとに視野角を計算した結果。
  
 



 カメラのスペックに関しては以下の通り。このページの丸パクリ。
  • センサー: OmniVision OV5647 Color CMOS QSXGA (500万画素)
  • センサーサイズ: 3.67 x 2.74 mm
  • ピクセル: 2592 x 1944
  • ピクセルサイズ: 1.4 x 1.4 um
  • レンズ: f=3.6 mm, f/2.9
  • 視野角: 54 x 41 度
  • 視野: 2m の距離で 2.0 x 1.33 m
  • 35mmフルサイズ換算: 35 mm
  • 固定焦点: 1 m から無限遠 (レンズを固定している接着剤を除くと変更可)
  • ビデオ: 1080p/30fps, H.264 (AVC)

スペックによると視野角は54×41度とのこと。
 グラフにある数式で計算すると変な値になるので距離が離れるほどさちるのかな。



ちなみにこれまでは他の人の記事の転記に近かったが、初めて自分の記事を書けたのか??

 測定が定規なので精度はいまいちと思うが、そこそこ参考にはなるかな。

でも10mm角をみようと思うと20mmほど近づけないといけない。
う~ん。もう少し距離をとりたいが。。。

----------------------------------------------------------------


カメラの画角に関して参考にしたページ
ARアプリとカメラの画角について
http://lab.sonicmoov.com/smartphone/ar-camera-fieldofview/

画角の計算と焦点距離の換算
http://www.cmehappy.jp/articles/angleofview.html

デジカメのシクミ -カメラレンズと焦点距離、画角-
http://aska-sg.net/shikumi/019-20060201.html

2014年7月13日日曜日

ラズベリーパイカメラ


お試しでラズベリーパイカメラを購入。



ここに、設定手順、ケーブルの接続方法やコマンドのオプションが詳しく書いてあって参考になった。




・自分がためししたコマンド

動画の撮影
 raspivid -o  video.h264 -t      (5秒記録して自動的に止まる)
 raspivid -o  video.h264 -t 10000  (10000ミリ秒⇒10秒記録して自動的にとまる)
 raspivid -t 0 -d                           (デモムービを表示し続ける、)
                      デモにせず-t 0 を付けると容量を食い続けるのかな。。
動画の再生
sudo apt-get install omxplayer
omxplayer video.h264

 
今回の件で色々なページを検索したがみなさん色々とトライしていてすごい。
自分は何をやろうか。。。というかできるのか??




 とりあえず参考にしたページのまとめ。。

 (セットアップ関連)
Jun's Homepage Raspberry Pi メモ(23)-カメラモジュール到着← 接続の写真とコマンドのオプション一覧があって助かった

・Raspberry Piカメラのセットアップ方法

Camera Module Setup  セットアップの動画あり

Raspberry Pi/カメラモジュール

raspistillのオプションためしてみる

Raspberry Pi ブログ コラム 第5階 Raspberry Pi 専用カメラモジュールで遊ぼう


 (アプリ)
Raspberry pi買って監視カメラ的な機能を実装するまでにしたことをまとめた

Raspberry Pi とカメラモジュールとストレージサービスで連続撮影と動画作成

Linux + motion + webcam でライブ監視カメラを設置する




2014年7月4日金曜日

「モテビジ」の法則


前回投稿の「 どんな人にも1つや2つ儲けのネタはある」
と同じ著者の書籍。
前回のが読みやすかったので、図書館で同じ著者を検索して見つけた本。
2001年発行なので古いかなと思いつつ、10年以上前に書かかれた本に逆に興味が湧いてためし読み。

正式な題名は『あなたのお客(ファン)をつくる「モテビジ」の法則(新しい彼女をつるように新規顧客を獲得する)ラブ・マーケティング』 。

中身は、著者が車の営業をやっていた頃にさくらを作った話や、キャバクラの話やディスコの話なんかが出てきて、結構面白かった。
この本でも「どんな人にも1つや2つ儲けのネタはある」に通じる内容があって、この時からすでに自分のやり方を確立していたのだなと感じた。
むしろ、この本の方がいろいろな体験談や経験談が書いてあるので面白いかも。



2014年7月1日火曜日

どんな人にも1つや2つ儲けのネタはある

内容

副業したい人に対して最初の心構えや準備に関して紹介した本。
準備と言っても 経理などの実務ではなく、「キャッチフレーズを決める」から始まりマーケティングに関しての方法・また勉強法や思考法に関して記載されている。
著者の経験をもとにしているので、副業に興味のある人は色々と参考になると思う。

この本をよんで出版に興味を持った。同じ著者の「出版で夢をつかむ方法」もよんでみたい。
ただ出版したけどなかなか売れなくて困ってる人を知っているので、 ターゲットをしっかり考えないといけないが。。。

2014年6月29日日曜日

ラズベリーパイ+opencvでUSBカメラ接続(3)- 2台のカメラを接続


会社で使いたいネタがあって、ラズパイ1台で複数のカメラを表示させた場合にきちんと動くのかを検証した。まずは2台でトライ。
 使用デバイス
・USBハブ(ELECOM U2H-EG3SBK)
・USBカメラ1  USBなんでもマイクロスコープ
・USBカメラ2   BUFFALO SW20K04H

ソースは単純に1台のカメラ表示用のプログラムで必要な個所を2列しただけ。。

---------------------------------------------------------------------------------------

#include<stdio.h>
#include<highgui.h>
int main(){

  CvCapture *videoCapture1=cvCreateCameraCapture(0);
  CvCapture *videoCapture2=cvCreateCameraCapture(1);

  if(videoCapture1==NULL)
  return -1;
  char windowName1[]="camera1";
  char windowName2[]="camera2";
  cvNamedWindow(windowName1,CV_WINDOW_AUTOSIZE);
  cvNamedWindow(windowName2,CV_WINDOW_AUTOSIZE);

  while(cvWaitKey(1)==-1){
  IplImage *image1=cvQueryFrame(videoCapture1);
  IplImage *image2=cvQueryFrame(videoCapture2);

  cvShowImage(windowName1,image1);
  cvShowImage(windowName2,image2);
  }
  cvReleaseCapture(&videoCapture1);
  cvReleaseCapture(&videoCapture2);

  cvDestroyWindow(windowName1);
  cvDestroyWindow(windowName2);

return 0;
}

-----Makefile----------------------------------------------------------------------------------
CXX = g++
LDFLAGS = -lopencv_legacy -lopencv_highgui -lopencv_core -lopencv_ml -lopencv_video -lopencv_imgproc -lopencv_calib3d -lopencv_objdetect -L/usr/lib
CPPFLAGS = -O3 -I/usr/include/opencv -I/usr/include/opencv2
all : camera3
---------------------------------------------------------------------------------------


一応動作はするが、さすがにカメラの表示速度が遅い。
ここが改善できるのか。。。う~ん。


2014年6月28日土曜日

中小企業の空洞化適応


〇内容
企業の生産工場の海外移転に伴い、その工場に付随していた中小企業が苦境に陥る状況(中小企業にとっての空洞化問題)に対して、長野県の中小企業をモデルに現状を調査し、空洞化に適応していくために必要なことを提案した書籍。


・調査対象の会社の売り上げ高は、大手からの注文が中心だった20年前から、現在は売上比率が激減(多くても30%、0%の会社もちらほら)

・しかし、会社の従業員数・売上高は 20年前と同程度かむしろ増えている

・別の顧客を開拓し、減少分を補っているわけだが具体的にどのように変化したのかが焦点

・意外にも、抜本的な事業転換や飛び地で売上高を伸ばしたのではなく、もともと所有していた技術で違う分野の似たような製品に展開した

ここからがこの本の主張
・空洞化問題に直面する前からすでに営んでした事業によって新しい仕事を獲得することが大事
・既存事業からの転換は大きな事業転換ではなく、日常的なアレンジの積み重ねによる漸進的な転換になる
・新しい顧客を引き付けるコアサービスとして次の二つが重要
     ・新製品開発のコアサービス (顧客の製品に必要な部品や製造工程開発の一部な代行することで、製品とサプライチェーンの詳細設計を支援)
     ・新製品の普及に向けた供給プロセスの 整流化の一部を代行するサービス (コストダウン案の提案など)

その他、製品・工程アレンジ能力や取引関係の構築に関する記述あり。


〇感想
 企業の成功事例に関する書籍は大企業を題材にしたものが多いため、参考になりにくい部分があるように感じていたため、中小企業に視点をあてた点に関しては興味深い書籍。
ただし、300ページに及ぶため、ちょっと読んだだけではわかりにくい。

また、空洞化に対しての提案は、それってどこの会社もやってることでは?と感じるものもあり、自分に立ち返って考えるといまいち何を改善するればよいのかしっくりこないのが正直なところ。
大きな事業転換ではなく漸進的な転換が重要という点はなるほどと思ったが、中小企業の場合、体力的にそういった手法しか取れないのが現実で、たまたま顧客から自社にとって扱いやすい製品をお願いされ、もともとの技術がはまったというようにも感じる。最近は展示会なども盛んにやってるので、こういうところで顧客を獲得している場合もあるように思う。
 他に気になるのは生き残った会社のみの分析である点。おそらく残念ながら廃業に至った会社もあるだろうし、それらの会社と何が違ったのかは分からない。
まぁこの手の書籍は 成功事例しか分析しようがないのでしょうがないが。。




















〇感想

2014年6月26日木曜日

ラズベリーパイ+opencvでUSBカメラ接続(2)


別のページを参考に若干違うソースで再トライ。
こちらのソースであれば、遅延はあるが反応はそこそこ良かった。
前のページは標準出力でフレームの幅・高さを表示させようとしたのが悪かったのか??
何か余計なことをしていそう。。
もしくは、インターフェース2014年1月号に「コンパイル時になるべく強い最適化オプション(-O3など)をつけること」という記述があるが、この辺が関係しているのか??
やり始めて間もないのでよくわからない。。。。

--------------------------------------------------------
#include<stdio.h>
#include<highgui.h>
int main(){
 
  CvCapture *videoCapture1=cvCreateCameraCapture(0);

  if(videoCapture1==NULL)
  return -1;

  char windowName1[]="camera1";
  cvNamedWindow(windowName1,CV_WINDOW_AUTOSIZE);

  while(cvWaitKey(1)==-1){
  IplImage *image1=cvQueryFrame(videoCapture1);
  cvShowImage(windowName1,image1);
  }

  cvReleaseCapture(&videoCapture1);
  cvDestroyWindow(windowName1);
return 0;
}

--------------------------------------------------------
今回はMakefileを使用
 CXX = g++
LDFLAGS = -lopencv_legacy -lopencv_highgui -lopencv_core -lopencv_ml -lopencv_video -lopencv_imgproc -lopencv_calib3d -lopencv_objdetect -L/usr/lib
CPPFLAGS = -O3 -I/usr/include/opencv -I/usr/include/opencv2
all : camera3

--------------------------------------------------------