Cindy's Blog

アマゾンで働いているエンジニアの日常

投資の初心者が「めちゃくちゃ売れてる株の雑誌Zaiが作った株入門」を読んだ感想とまとめ

簡単な紹介

最近貯金できるようになり、なんとなく投資したいと思うのでこの本を購入しました。この本は2013年発行され、今年2019年は第17刷でして、内容は少し古くなってきています。しかし、おかげでその時点の株を確認できて(成長できた株はほとんど)、色々な分析を聞けてとても興味深かったです。この本は、入門書として、株のコンセプトを掴めるぐらいなら問題ないかなと思います。更にいいところは、この本を読んだら本格的に投資したくなったということです(自分はまだまだ早いですが)。

この本を読むと学べるもの:

・株の仕組み
・PERの意味
・PBRの意味
・いい株の判断基準
・株価チャートのテクニック→ ここは図がないので省略します。



週刊ダイヤモンドという投資家が読む雑誌も買いましたが、初心者に対して専門言葉を理解するのやはり難しいので、この本をスタートラインにしたいと思っています。


感想

全体的な感想は、相当の知識がないと安易に投資することはとても良くないということです。

心に響いた言葉を記録したいと思います。

「株は5万円から買える。」

日本最大のポータルサイト「ヤフー(4689)」はそうです。しかし、言及した有名の会社ートヨタ自動車でも 50万円台で買えるという話が出てきたが、調べたら現時点の株価は 80万円台になっていて、多少離れています。

アメリカのマイクロソフト社の株価は 160ドルだが、1株から購入できるため、2万円台から購入することができるということでしょうね。

ちなみに米マイクロソフトの株に興味があればご確認を(2019年最新)↓

manelite.jp


「上がる株のヒントは身近なところにある」

これはとても体感しています。例えば、個人的に愛用しているオンラインショップーZOZOTOWN の成長など目て見えますし(送料の実験などに参加していました)、2017年に株価が爆上がっていました。最近の任天堂もSwitchのおかげで(?)、去年から株が上がっています。

IT業界のマイクロソフトやアップルなど、毎年どのような商品が出てきて、その商品を実際に使ってみたの感想からでもいいですし、周りの友たちの感想を聞いてもいいですし、プロダクトを手元にあるだけでも、ある程度会社の可能性を感じるはずです。しかし、やはり客観的な数値を見ないと、簡易に株を買うことはないでしょう。

「いい会社」のヒントは日常生活の中にたくさんありますが、「XXXが流行りそう→この会社儲かりそう→株を買おう」になるのは早すぎる。あくまでも”いい会社の候補”です。本当にいい会社なのかどうかは、ちゃんと”数字”で確認しないといけないです。


「どんな時でもあなたの身の周りに成長株はある。」

よく考えたら本当にそうです。不景気の時にも、必ずその時期に合わせたいいビジネスモデルが現れるはずだと思います。



株の仕組みを理解する

  1. 株は企業がお金を集める手段
  2. 投資家は企業が上げた利益を受け取れる
  3. ちゃんと利益を出しているいいかななら「株を買って投資したい」という人が増えていく  →買いたい人と売りたい人が価格と数量を出しあって、折り合いがつけば売買が成立
  4. 株を買いたい人が増えると、株価があがる
  5. 株価が上がったところで売れば、差額が儲けになる



買い注文を出す基本知識

注文するときに入力する項目: 「何株注文するか(セットで買う)」 → 売買単位の整数倍 「いくらで注文するのか(基本的には指値で注文)」 「この注文の有効期限」

なれれば30秒で注文できてしまいます。


買い手と売り手のどっちが優勢かを見てとれれば、値の動きの次が読める

買い注文の方が多い場合は、株価が上昇する可能性が高い

この情報は「Zai - 板情報」を使います。


注文管理

「約定一覧」や「ポートフォリオ」(サイトによって言葉が違います)などのページで確認できます。

損益は自動で計算されて表示さえるので一目瞭然です。


見直しルールを作ろう

例えば:買った値段んから10%下がったら諦めて売ろう、買った値段から20%上がったら売って利益をゲットしよう などです。こういったルールを決めておけば、日々の細かい値動きに必要以上に一喜一憂せずに済むことです。


株を売る

目標まで達したや、思惑が外れて大きく下落してしまったときなどが売り時。 指値と成行(とにかく早く売りたい)があります。


おすすめの証券会社一覧

証券会社を選ぶポイントは: ①手数料 →初心者の場合「20-50万くらいの株を1回かった時に、いくらかかるのか?」を基準に考える ②情報の充実度 ③取扱商品 ④経営の安全性

の4つです。


「いい株を、安く買う」がすべて

「いい株かどうか」「割安かどうか」2点から儲かるかどうかを判断するみたいです。

「普段の生活の身近なところにこそ、いい株を見つけるヒントがある」ということは、とても大事だそうです。 実際に、専門家の分析レポートなどよりも、身近なところから銘柄をみつけることによrって、株の売買を行うことが多かったようです。 もちろん、専門家の分析や情報だって役に立ちますが、「それ以上に日常生活から得られる情報の方が役に立つ」というわけです。 周りの人(家族など)が最近夢中になっているものを観察したり、話を聞いたりする中で得た情報を、株の運用に役に立てていたのです。 そして、そうした目で日常生活や世の中を見渡ししてみると、色々なことに関心が持てるようになってくるし、街を歩くのが楽しくなってくるはずです。


今年度の予想数値は、株価に対する影響大

上場企業は年1回、「昨年度の業績の結果と今年度の業績予想」を発表します。 3月末決算企業の場合には、5月ごろに「本決算」を発表します。それは要注目で、とくに今年度の予想数値は、株価に対する影響は大きいです。

また、3か月ごとに途中経過を集計して発表することも上場企業の義務です。これを「四半期決算」といいます。証券会社で検索してもいいですし、 自社のホームページで決算書を公開している企業も多いようです。


財務状況の確認

本と同じようにJPホールディングスを例とします。

Image from Gyazo


業績欄にある頭文字に「連」と「予」があり、例えば「19.3連」は 2018年4月から2019年3月までを指します。また、「予」は予想の値を示している。

また、図には出てないですが、「中」と「四」があります。「中」は中間発表、「四」四半期のことで、1年間のうちの3か月間か9ヶ月間のことを示している。

また、以下の式で上の情報を把握できると思います。

売上 - 経費 = 営業利益

営業利益 ± 本業外の損益 = 経常利益

経常利益 - 税金 = 純利益


また、この四季報の他に「決算短信」があり、分厚い資料はほとんど1ページ目にまとめられています。以上の情報に加えて、

自己資本比率」と「営業活動によるキャッシュフロー」という項目があります。

簡単の見方を言うと、自己資本比率は50%以上あれば安心、営業キャッシュフローに連続のマイナスは X です。


利益が伸びるかを考えるための4つのポイント

本でまとめているポイントは以下の4つです。

①商品・サービスは魅力的?
②まだまだぞくぞく伸びそう?(飽和してないか?)
  ③競争が過熱してない?(ライバルが多すぎて競争が過熱してしまうと、儲かりにくくなる)
④会社の規模は大きすぎないか?
 →もともとの売上は大きいときに、新製品の売上がすごく出ても、伸びはとても少なくなる。

業績修正

ニュースに、もっとも注目すべきは業績修正のニュースです。特に、通期予想の修正は注目されます。上方修正された株は上昇しやすいですし、逆に下方修正された株は下落しやすい傾向があります。


社長や社員の給料は「経費」。売上ー経費 = 「利益」というのは、オーナーである株主のものです。

利益の一部は「配当」になり、一部は内部留保になる。


理解できない会社の株には投資するな!

銘柄を選ぶときも、自分の得意な分野で勝負することが勝つ秘訣です。


”危ない会社”を避ける方法

1. 自己資本率50%以上ならまず安全、20%以下だと要注意 2. 危ない会社は「営業キャッシュフロー」で見抜けることができる。あまりにも大きな赤字であったり、2年も3年も赤字が続いたりするようだと、これは資金の流れに異常が出ている可能性がある。

粉飾決算黒字倒産(経常利益が黒字なのに倒産すること)などがときおり起こりますが、そうしたケースのほとんどは、営業キャッシュフローの大きな赤字が続いていたケースです、

営業キャッシュフローは、本決算の決算短信の1ページ目や、会社四季報のデータなどで確認できます。


株の割安度を測る物差し「PER」

「どう考えても1000円の価値はあると思える株が、500円くらいになった時に買え」

その割安度を判断するのに役に立つのが、「PER」という指標である。PERは、会社の収益力(利益)から見て、今の株価が割安かどうかを測るもの。つまり、株価を1株あたりの利益(1株益 = 純利益 / 発行済み株式数 )で割った求めたものです (PER = 株価 / 1株益)。1株あたりの税引き後利益が出ます、これは「1株益」と言います。要するに、今、PERは、株価が1株益の何倍になっているかを見るわけです。PER は数字が低いほど割安ということになる。また、PERには回収率にも表している。ここは割愛します。

成長率(これから2-3年が目安)と関係あり(その計算方法もある)

PERは10-20が目安。 30以上は慎重に考える(過熱ぎみ)


便利なノウハウ

「ネット取引だと自動売買という機能がある」

忙しい人におすすめ。


「3月決算の会社の場合は6月末くらいに支払われる」

株を買うことは会社のオーナーになるため、決算日などを把握すべきです。


「配当を狙うなら、業績がかなり安定していると思える会社を選ぶべき」

この記事とても面白いです↓


www.yutorism.jp

利回り3%以上の会社はたくさんある。

media.rakuten-sec.net


株主優待の内容を調べるときは、『何株持っていれば優待を受けられるのか』を必ずチェックしよう(Yahooファイナンスなどのサイトを使って)」

しかし、調べてみると株主優待がない会社はとても多いです。


「配当と株主優待については『いつの時点で株主であれば受け取れるのか』を確認すべき」

「権利確定日(原則として決算の日)」というものがあり、この日に株主でないと、配当も株主優待も受け取ることができません。

休日、大晦日大納会(その年の市場が開く最終日)まで前倒しになるので要注意です。


「『株主優待』と『配当』の狙って買う人がいるため、権利最終日の後に株価が落ちることもある」

配当と株主優待をもらうともに、権利最終日を狙っていることは裏技のように見えるが、翌日に株価が下落するので、

損になりがち。(逆に最終権利日の翌日で買うべきかも?)


楽天証券でリアルタイム情報とニュースの速報を確認すべき

「○○会社が新技術を開発した」「好業績を発表した」「訴訟で勝った」などの情報早く入手できれば、それだけ有利に取引を進めることができます。

スクリーニング機能を使って株を探す→スクリーニング - SBI証券

条件をつけて株の検索ができます。「利益が20%以上増加していく、25万以内で買える株」や「配当利回りが3%以上で50万以内で買える株」などのように、欄を埋めていきます(全部埋めなくてもいいです)

日経テレコンでニュースを検索

「○○会社が新技術を開発した」「好業績を発表した」「訴訟でかった」などのニュースを早く入手できれば、それだけ有利に取引を進めることができます。


業績の安定した優良株を低いPERで買う

業績が安定成長している会社のPERは15ぐらいでもおかしくない。現時点のPER (株価 / 1株益)を計算し、あまりにも低い (つまり注目度が低い) 時は買う時期。

これは、「いい会社」だと思っている時の、次の判断基準だと思います。商品やサービスに魅力を感じる時にとるべき手段でしょう。


ものすごい高成長株を狙う

例えば、PERが19になっている会社がある。これは絶対低くないと言える。しかし、もしこの会社の成長率は高い(例えば50%)時は、話が違う。 成長率により、PERの割安の判断基準も違ってくる。


赤字会社・業績不振企業のPER

まず、赤字企業のPERはマイナスになるので計算できたい。また、株価の割安判断方法は①資産②収益力、である程度推測できる。

業績不振のPERは高い時がある。それは、株価がそれに見合っただけ下がっていないために、これだけ高いPERになっていると考えらっる。 利益水準が極度に低くなる→他の物差し:PBRを使う。


 PBRとは

PBR = 株価 / 1株純資産 (総資産ー負債)

まともな会社が基本的に1未満なら割安。やがて再評価されるので、まともな価額まで戻る可能性が非常に大きい。


PER の異常値

会社の純利益≥経常利益(普通は0.6:1)の時はおかしいと考えていい。



プログラマが知るべき97のこと (日本語) の読書感

プログラマが知るべき97のこと

プログラマが知るべき97のこと


会社の先輩に、この本「プログラマが知るべき97のこと 」が勧められて、頑張って2回読み終わらせました。

とても叡智を感じています。すでに今実行している方法も、プロの言葉で一回見ると自信は付きますし、今までとくに注意していなかったことも、 分かりやすくその危険性を書いています。今後は心掛けます。



また、この本の中で Andy Hunt と Dave Thomas の著書「達人プログラマー

新装版 達人プログラマー 職人から名匠への道

新装版 達人プログラマー 職人から名匠への道


が何度も何度も出ましたので、次に読む本にしたいと思います。

5つとても印象に残ってこれからも実践したい項目を記録したいと思います。

コーディング規約を設ける目的の1つは、誰も、自分の書いたコードを「私物化」できないようにする

非常に説得力がある言葉だと思います。


優れたものは、すべてシンプル

・可読性
・保守性
・開発効率
・美しさ→ シンプル:個々の部分が担う責務を最小限に
  コードは設計であるということ。
常に人に見せる気持ちで書かないと。


学び続ける姿勢

①本当に身につけたい技術は、コードを自ら書き、手を動かして学ぶ。
②常に自分よりレベル高い人と仕事をするようにする。
③ミスをした時、バグ修正をした時、システムに何かの問題を発見したときには、ただ解決するだけでなく、深く理解するように努める。

④静的分析ツールを実行する。
⑤毎年1つ新しい言語を学ぶ。少なくとも、毎年1つは新しい技術、ツールについて学ぶ。
⑥新しく学ぶのは、必ずしもコンピューター関連技術でなくても構わない。システムが応用されるドメインについて学ぶことも重要である。

オープンソースプロジェクトに参加

自分と興味を同じくする人に出合えるというのも、大きな利点の一つ。更に、能力を存分に発揮し、プロジェクトに大きく貢献すれば、それは立派な「実務経験」となる。

また、参加の方法もとても簡単で、開発に必要なツール群(ソースコード管理ツール、エディタ、プログラミング言語、ビルドシステムなど)を学べばいい。

プロのプログラマの姿勢

要するに、自分が責任をという態度、責任感
①キャリアに責任を持つというのは、自分の力で自分の価値を高め、成長していくということ
②プロのプログラマは、QA(品質保証チーム)に問題を見つけるもらおうとは考えません。徹底的にテストをし、「絶対にもう問題など見つかるはずがない」と思えるまで、コードをQA (つまり他人) には回さない。
③プロのプログラマはチームプレイヤー。一人一人が自分の仕事だけではなく、チーム全体のアウトプットに責任を持つ。
④間に合わせのいい加減な仕事はしません。(コードの可読性なども妥協しない)

【2019.4最新】UnityでOpenPoseが使えるまでのインストール(約2時間)

OpenPoseのインストールは数年前と比べると簡単になっており、

本章はUnityのプラグインも含めて、スクリーンショットを含めながら分かりやすく説明します。

github.com

基本的に、に載せているインストール方法を実践しながらやっていきます。

なぜブログにするかというと、

1.開発元が書いてくれた手順は少しだけ古くなっている

2.初心者にはわかりづらい

です。では、本番に入ります。

 OpenPoseのインストール

2019年4月3日時点では、

Window10(64bit)上で動作確認しております。

Unityのバージョンは、オフィシャルでは2018.2.9f1を使っているようですが、

個人のパソコンで2017.4.20f2でも動いていました。

 前準備

openpose/prerequisites.md at master · CMU-Perceptual-Computing-Lab/openpose · GitHub

Windows Prerequisites」のように、

  1. CMake GUI の Windows win64-x64 Installer 最新版(cmake-X.X.X-win64-x64.msi)
    PATHの設定はデフォルトのもので構いません。

  2. Visual Studio 2017 Community もしくは Microsoft Visual Studio (VS) 2017 Enterprise
    すででインストールしている方はVisual Studio Installerを開いてください。
    注意: C++に関係するコンポネントをすべてチェック入れてインストールしてください。
    https://gyazo.com/5be8d7e8689c0c479c7588c6037bd2c1f:id:cindychen0204:20190403004104g:plainhttps://gyazo.com/5be8d7e8689c0c479c7588c6037bd2c1

3. CUDA 10.0
注意:CUDA8.0は新しいGPUモデル(Nvidia GTX 2080以上、またTuringとVoltaのアーキテクチャ)に対応していないので、CUDA10.0はおすすめです。
注意:前にCUDAをインストールしたことがある方は、VSからうまくCUDA用のファイルを生成してない可能性があるので、CUDAを再インストールしてください。
注意:CUDAインストール後、パソコンに異常がある場合は、 Download Drivers | NVIDIAからドライバを再インストールしてください 
もしくは、一緒に入っている`NVIDIA GeForce Experienceを実行してドライバの再インストールを行いましょう。

gyazo.com

  1. cuDNN 7.5 for CUDA 10.0

gyazo.com

インストール方法としては、解凍した後に、GIF動画のように中身を C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 に移動してください。


https://i.gyazo.com/13cbd0cd479d661c330e7b5645258d4c.gif


次に、CMAKE用に 

Caffe  

Caffe 依存フィアル 

OpenCV 4.0.1 

をダウンロードし、解凍しておいてください。

 ファイルの移動

コマンドプロンプトを開き、OpenPoseリポジトリをクローンしておいてください。
git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose

初心者の方:git cloneが使えない場合には、Pythonをインストールしておいてください。バージョンはどれでも構いません。 インストール時にPATH設定にチェックを入れればこのコマンドは使えるようになります。 また、フィアルのダウンロード先は、いい子ならパスをできるだけ C:\Users\ユーザ名前\git\(なければ作る)にしましょう。

ダウンロードが終わった後、
openpose/3rdparty/windows/

先ダウンロードした

・caffe 
・caffe3rdparty 
opencv  

の中身を移動してください。
可能であれば、GIF動画のように.ZIPファイルも一緒に移動してください。

https://i.gyazo.com/97a97bd460df12ddedd78c45ed1effdf.gif 

CMakeでジェネレート

CMakeを開き、画像のようにパスを設定しておいてください。buildファイルがなくても構いません。

gyazo.com

Configureボタンを選択し、
VisualStudio2017と64ビットを、画像のように設定して、Finishボタンを。

ここから約5-10分かかります(ネットワークスピードにもよります)。

gyazo.com 

コンソールにConfiguring doneという表示が出ましたら、赤いところにあるBUILD_UNITY_SUPPORTにチェックを入れて、(Unityを使わないなら不要)

Generateボタンを選択し、さらにOpen Projectを押すと、VSが立ち上がり、画像のようになります。

 プロジェクトをビルド

gyazo.com

次に、上のところのDebugReleaseに変更し、緑の三角形を押し、プロジェクトをビルドします。

ここから10ほどかかります。

ここで詰まっている方は、上の前準備にあった、C++のコンポートが足りているかどうかを確認してください。

いけた方は、以下のようにOpenPoseが動いてるはずだと思います。Hello World!

https://i.gyazo.com/1062af07b2d438b9a6370be2e3f749c3.gif


★アプリを終了するにはEscキーで

顔と手の推定

ここは、姿勢推定しか出ていません。HandやFaceでも推定を行いたい方は、VisualStudioの外でも使えるようにしないといけないため、

  • openpose\models ファイル

  • openpose\build\bin の中身

openpose\build\x64\Releaseにコピーしてください。

gyazo.com

OpenPoseDemo.exe --face --handで、手と顔の推定もできるようになります。

https://i.gyazo.com/2d453c9fa1a89c97e00f73f6d5251de1.gif

ここでOpenPoseのインストールが終わります。

OpenPoseは静止画像や事前に用意した映像の姿勢を推定することができます。

詳しくはここの説明です:
github.com

 Unityで使えるようなるには

以上のタスクが済みましたら、

  • OpenPosePlugin/Assets/OpenPose/のgetPlugins.batをダブルクリックで実行してください。必要なファイルを集めてくれます。

  • OpenPosePlugin/Assets/StreamingAssets/models/のgetModels.batをダブルクリックで実行してください。必要なモデルを集めてくれます。

以上のステップが終わりましたら、Unityでプロジェクトを開きます。
gyazo.com 

Asset/OpenPose/Scenes/Demo シーンを開くと、エラーが多数出ていることが分かります。

2019年4月時点では、オフィシャルのプロジェクトのプレファブ壊れているため、なんとなくロジックを真似して復元したプロジェクトをここのおいておきます!

1drv.ms

よろしければ、確認してみてください。

ちなみに、Unity上のデモはこのような感じになります。

https://i.gyazo.com/dc19bef3e6ddac07e18da33ac76cc0d4.gif

終わりに

OpenPoseを使った面白いコンテンツの発想があれば、ぜひ下にコメントくださいね!

ちなみに、前に発表した記事はこちら:

qiita.com

では。

Unity Certified Program試験に合格しました!

こんにちは、キンキンです。(@HoloLabInc)

昨日、Unity Certified Programという試験に合格しました^^

f:id:cindychen0204:20190128165917p:plain

ので、ブログで色々シェアしたいと思います。

(質問は秘密保守義務がつけられることで、準備の方向性や自分が苦労してたところだけ載せます)


↓コースを教材にして一ヶ月で読み通しました。実装もしていました。

映像と字幕は英語しかないので少し大変だと思います。

www.coursera.org

一ヶ月の料金は8000円以上もしますので、早めに終れば終わるほどお得になるのでしょう。


上のコースでは、2つのゲームを作り、それぞれ2Dと3Dになっています。

Playerを動かすところや、AudioやLighting全部問われるので、しっかりUnityのドキュメントを読む習慣を作ればよいでしょう。

では方向性を載せます。


テストの準備に関して

オフィシャルサンプル問題集(5問):

https://certification.unity.com/themes/certification/docs/exam-objectives/certified-programmer/UCP_Exam_Objectives_JP.pdf


1.実装、実装、実装!

いつも使っているコンポーネントのプロパティを絶対に理解できるようにしよう。


2.操作系

GetButtom(),GetAxis()などをしっかり理解する プレヤーの動きを制御するTransform/Vector3/Rigidbodyも、ドキュメントを読む


3.よくあるエラーをまとめてみよう

例:

using UnityEditorでビルドエラーが出ると、

using UnityEditorの前後に #if UNITY_EDITOR と #endif を追加してあげる、もしくは

Editorフォルダー に該当のスクリプトを入れればエラーなくなる。


4.フレーム落ち問題ときの対処

Colliderの選び方やコンパイラーの選択など。

わからないはUnityオフィシャルドキュメントを読むとよいでしょう。

https://docs.unity3d.com/Manual/MobileOptimizationPracticalScriptingOptimizations.html


5.C#

C#高度な実装(Interfaceなど)より、Update(),Start(),if文,while文,...の自分のロジックなどを今一度見直そう。


個人的な感想

色々考慮しながらいけませんでしたので、2時間の試験で一瞬で終わった感じがしますね。

この試験は2年以上の開発経験を持っている人を対象とし、そして料金が高いから、自信がない方はコースにあるゲームを全部自力で実装するといいでしょう。

Unityのドキュメントはこの試験の命だと思います。

他の情報を確認したい方はたるこすさんが書いたブログを読むとよいでしょう。

blog.hololab.co.jp

Unityをたくさん使うことに頑張りましょう!

では^^

アルゴリズムの練習について(Python)Lv.0

こんにちは〜キンキンです! 5月から、わけがあって私はPythonを学んでアルゴリズムの勉強を始めた。 ので!三ヶ月ほどの心得やオススメの本、サイトなども載せます。 初心者は頭から読んで、経験者は飛ばして好きなところを読むといいでしょう。

アルゴリズムってなに?

と聞くよね。そうです、Computer Science の出身じゃないと分からないでしょう笑

普通はそう言います。プログラム=データ構造+アルゴリズム これは嘘ではない、本当です。

データ構造はなに!? データ構造は、簡単なもんだったらint(整数),float(小数点)などで、 難しい方が2分木などがあります。もちろん、高級なデータ構造はTrie木(辞書木もよばれる)などがあります。

しかし、頭の隅にいれてください。 アルゴリズムは普段仕事とか研究用途への実用性が低い。アメリカや中国の企業ではあくまでも就職のとき(面接)質問が出されます。」 しかし、なんで勉強するの?日本企業では聞かれないでしょう?

いや。プログラムのアルゴリズム次第で、プログラムの安定性、スピードが決まります。 おなじく、アルゴリズムを知らないと、余計なスペースを使ったりとか、プログラムを書くときに考えが常に変なところに飛んでしまうのがよくあります。

個人的な感想は、pythonで書いたのですが、C#に戻ると力がついたと実感したので、 練習はおすすめです。

なんでPython?

Pythonは動的な言語です。動的な言語ということは、

Test  = 11
Test = '12'

このときのTestは自動的に数字11に応じて、Test はInt型になる。 そして二行目のTestは文字列の12に応じて、Test 自動的にString型になる。 かなり自由です。

一方、他の言語はほとんど以下のケースに当てはまる。

int Test  = 11;
string Test = "12"; ←エラー

まず、Testの前にInt型を決めてから(箱を作ってから)ものをいれます。 二行目のTestは一行目のTestと重なるので、エラーがでます。

もちろん、Python のいいところこれだけではない。 例えば、 文字列の最後の一個を消したい場合(例:"01234567 -> "0123456")

C#系はこれで実行します。

string Test = "01234567";

Test =  Test.Substring(0,  Test.Length - 1);   

一方、Python

Test = "01234567"

Test = Test[0:-1]

最後にアルゴリズムによく使われるFor文を使います。今回は数字 13579 を print することにしよう。

C#系はこれで実行します。

for (int i = 3; i <= 9; i += 2)
{
    print(i);
            
}

一方、Python

for i in range(1,10,2):
    print i

ただ二行で完成します。

Pythonrange 関数は、引数3つを使います:

range(始点,終点+1,ステップ)

気をつけないといけないのは、真ん中の終点とステップです。

range(1,10,2):のように、数列は9までなのに10を指定します。 またステップということは、次の値は今の値の関係を示します。

1 +2 = 3 3 +2 = 5 などですね。

また気づいたかもしれませんが、Pythonでのメソットは「{}」ではなく、インテンドで使います。

他に色々、たとえあListは空なのかどうかを確認するときは、「is not None」を使います。「is not None」は、「!= None」と同じ意味です。

list_ = []
if list is not None

他にも、Qiitaに載っているよい文章もあるし、

qiita.com

コードを書きながら勉強したい場合は、「SoloLearn」というアプリをおすすめします。

www.sololearn.com

なぜ、ここまでPythonのいいところここまで説明したのかは、 Pythonは明らかに読みやすいです。 読みやすいコードは、アルゴリズムを勉強するときに非常に簡単に本質をすぐ掴めます。 ロジックがわかりやすいく、他の人が書いたコードを読み、効率はとてもいいと言えるでしょう。

アルゴリズムの練習サイトってある?

たくさんあります

1・ 英語版ーLintCode www.lintcode.com

初心者はレベルEasyでも難しいと思うので、「Naive」から練習するのはおすすめです。

2・ 日本でとても有名ーAtcoder

beta.atcoder.jp

ちなみに、使い方は↓からはじめましょう qiita.com

Atcoderは、データの分解から始めるので、実戦に近いです。

3・  GeekforGeeks

このサイトに、テュートリアルもあるので、おすすめです。 Atcoderと同じく、データの分解から始めるので、実戦に近いです。

www.geeksforgeeks.org

Pythonの練習サイトってある?

1・ コードを書きながら勉強したい場合は、「SoloLearn」というアプリをおすすめします。

www.sololearn.com

2・ 日本語の書籍もあります

Pythonで体験してわかるアルゴリズムとデータ構造

Pythonで体験してわかるアルゴリズムとデータ構造

しかし、この本の後半に書かれているデータ構造は変わった形で練習しているので、

ちゃんと後に自分で初期化(def init (self,))でかけるようにしておきましょう。

3・ Python Tutorial (英語)

www.tutorialspoint.com

以上です! では練習を楽しんでいきましょう〜

【OpenPose】のインストール方法とコンパイル詳細(約4時間)

OpenPoseとは

OpenPoseは、人の体(膝、肘、目など)を検知し、そして検知した結果を可視化にしたライブライです。そしてこの技術はCVPR2017で発表された、DeepLearningを使った、単眼カメラでのスケルトン検出アルゴリズムが、OpenPoseという名称でライブラリ化・公開されました。

例:

shake.gif

この章では、OpenPoseのインストール方法とコンパイル詳細を主に紹介します。

OpenPoseのインストール方法

まず、 https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/installation.md このリンクにアクセスし、Windowsのところに移動し、書いてくれた順番で一つずつインストールしていきます。

(日本語で、そしてある程度省略したバージョンはこちら)

↑のサイトの青文字を直接クリックすると、直接該当したサイトに移動できるので、ここは参照しながらインストールしてきましょう

上のサイトの「Windows」のところに移動しましょう。

↑のサイトの青文字を直接クリックすると、直接該当したサイトに移動できるので、ここは参照しながらインストールしてきましょう

①Installation - Demoのところに、一番最初にインストールするものは:

(1)Visual Studio 2015

エディターをインストールしましょう(すでにあった場合は結構)

(2)CUDA 8

デフォルトの場所, C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0にインストールしてください

(3)cuDNN 5.1

.Zipを解凍し、中身だけ取り出してC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0 にペーストください

2.Installation - Library

②ライブライをインストールします。

(1)Python 2.4.13 64 bits - Windows x86-64 MSI installer.

デフォルトの場所C:\Python27 (default)にインストールしてください。 そして、コマンドをだして pip install numpy protobuf hypothesisコマンドを打ってください。

(2)Cmake: インストールしたら、パスを記録して、 

http://next.matrix.jp/config-path-win7.html

を参照して、環境変数のパスを登録しましょう

(3)Ninja:インストールしたら、パスを記録して、 

http://next.matrix.jp/config-path-win7.html

を参照して、環境変数のパスを登録しましょう

3.openposeをダウンロード

https://github.com/CMU-Perceptual-Computing-Lab/openpose/tree/windows にアクセスし、右上の緑ボタンー「Clone or download」→「Download ZIP」を押して、openposeをダウンロードをダウンロードしましょう。 ダウンロードしたZIPを解凍し、2番目の「openpose-windows」のファイルを丸ごとC:/に移動しましょう

4.Caffeをインストール

コマンドを出して、 cd C:\openpose\3rdparty\caffe\caffe-windowsを打ちましょう。 そしてscripts\build_win.cmdを打ちましょう。 前1~3ステップ問題なければ、無事にインストールは始まります。 そしてここのインストールの所要時間は大よそ0.5時間です。

そして最後のところで、質問: Does D:\openpose\3rdparty\caffe\caffe-windows\build\..\..\include\caffe specify a file name or directory name on the target (F = file, D = directory)?,が出たら、「D」と答えてあげましょう。

5.Visual Studioのslnを立ち上がる

{openpose_path}\windows_project\OpenPose.sln.のパスで、「OpenPose.sln」をダブルクリックして立ち上がりましょう。

次は、真ん中上の選択し、「Debug」を「Release」にし、コンパイルしましょう。

6.残りのファイル

(1)COCO model

サイトの青文字「COCO model」のサイトをアクセスし、 {openpose_folder}\models\pose\coco\のところに「pose_iter_440000.caffemodel」を入れましょう。

(2) MPI model (15 key-points, faster and less memory than COCO)

サイトの青文字「 MPI model (15 key-points, faster and less memory than COCO) 」のサイトにアクセスし、 {openpose_folder}\models\pose\mpi\のところに「pose_iter_160000.caffemodel」を入れましょう。

(3)中身全部取り出し、コピー&ペストしましょう

{openpose_folder}\3rdparty\caffe\caffe-windows\build\install\bin\にあるもの全部コピーし、{openpose_folder}\windows_project\x64\Releaseにコピーしましょう

(4) 3つファイルをコピー&ペストしましょう

{openpose_folder}\3rdparty\caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\x64\vc14\bin\にある 1.opencv_ffmpeg310_64.dll 2.opencv_video310.dll 3.opencv_videoio310.dll

をコピーし、

{openpose_folder}\windows_project\x64\Releaseにペストしましょう。

実行しましょう

コマンドで cd C:\openpose-windows\windows_project\x64\Releaseを打ち、 .\OpenPoseDemo.exeを打ちましょう。

そして、前の設定に問題なければ立ち合がるはずです。

他の設定を試しましょう(終了するときは「Esc」を落ちましょう)

必ずcd C:\openpose-windows\windows_project\x64\Releaseを打ってから以下のコマンド実行してください

.\OpenPoseDemo.exe --net_resolution 320x176

を打つと、FPSが上がり、遅延が減ります(パソコンのスペックに注意してください)

.\OpenPoseDemo.exe --video examples/media/video.avi

を打つと、モデルの映像が読み込まれ、自動的に分析が始まります。

.\OpenPoseDemo.exe --write_pose_json output/

を打つと、WebCamが開き、そして秒数によって、人のスケルトンの位置情報を C:\openpose-windows\windows_project\x64\Release\output まで保存される。

 実行している途中でキーボードの「1~9」を打つと、各決めた番号のところだけが示されます。

よく使う: .\OpenPoseDemo.exe --write_pose_json output/ --image_dir examples\photo