アフィリエイト広告を利用しています

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2019年10月12日

【1日目成果】英語版Udemy講座で学ぶ!OpenCV、ディープラーニングを使ってpythonで画像認識





進捗 12%
順調なスタート。
今回はWindowsで受講を行う。

■セクション1:コース概要と導入

今回のコースは前にも受けているJoseさんのコースということで大体どのようなものはわかっているので、ササっと進める。
環境もコマンドで簡単にできると思いきやいきなり詰まった。

python_cvcourseでバーチャル環境をアクティベートできるはずだが、環境がないとエラーが出る。
環境のリストが下記のコマンドでできるらしい。

conda info --envs

あ、”_"(アンダースコア)じゃなくて"-"(ハイフン)じゃん。
変更して事なきを得た。

■セクション2:NumPyと画像の基礎

このセクションではNumPyの基本とmatplotlibで画像の読み込み、表示し、データをNumPyのarrayに入れて、チャネルを取り出して表示する。
はまったのは画像読み込みの際のパスの処理の所。
r"path文字列...."としてraw指定してパスを入れること。
エラーメッセージがピンとこない。(ValueError: embedded null character)

・新しく知ったこと
 ・jupyternotebookでAPIの説明を出す
  →[Shift] + [Tab]
 ・Zerosで作るマトリックスのデフォルト値はfloat

・NumPy操作メモ(講義で出たもの+自分で調べたもの):
 ・lab起動
 ・リストからデータ生成
 ・1個飛ばしのリスト作成
 ・ゼロのマトリックス作成
 ・要素が全部1の行列の作成
 ・ランダムな行列(int)
  np.random.randint(0,100,10)
 ・最大、最小
 ・最大の場所、最小の場所
 ・平均
 ・1-100で10X10の行列を作る
 ・行列のディメンジョン
 ・全て同じ値の行列 full

・col/rowの操作
 ・特定の場所の取り出し
 ・全体 a[:]
 ・1行目 a[0,:]
 ・1列目 a[:,0]
・縦長、横長に変更 .reshape(10,1)
・部分行列 a[0:4,0:2]
・コピー: a.copy()

 参考)
https://numpy.org/doc/

・画像データの読み込み操作
 ・関連ライブラリ読み込み
 ・画像読み込み
 ・NumPy配列への変換
 ・データタイプ表示
 ・チャネルの取り出し、グレー化

・アセスメントテスト
 順当に解答できた。
完了。

■セクション3:画像の基礎とOpenCV

OpenCVの歴史からスタート。
自分でも調べた。
最新ではC言語のI/Fは廃止になっていることに驚く。
やばい、自分もお払い箱になってしまいそうで怖い。

参考)
https://ja.wikipedia.org/wiki/OpenCV


■次は
OpenCVを入れて、セクション3を続けて進めていく。
オブジェクトトラッキングなど動画周りも試したいのでWebカメラを購入しておく。




このコースへのリンク
Python for Computer Vision with OpenCV and Deep Learning







全般ランキング

タグ: opencv numpy

2019年10月11日

英語版Udemy講座で学ぶ!OpenCV、ディープラーニングを使ってpythonで画像認識





はじめに
Pythonを用いて、OpenCV,ディープラーニングの最新の技術を学ぶ。


講座名:Python for Computer Vision with OpenCV and Deep Learning


このコースの受講動機
もはや一般的になってしまっているディープラーニングを用いた画像認識。
これからも様々な産業分野で活用、応用されていくはずだ。
自動運転やデジタルマーケティング、セキュリティや顔認証など。
また、機械学習やディープラーニングでよく使われるpython。
これからますます、仕事や遊びのプログラミングの際に触れる場面が多くなっていくだろう。
このような状況でpythonによる画像認識はプログラマーにとって必須の知識となっているのではないか。
そこで、今回、画像をハンドリングするライブラリであるOpenCVや簡単にディープラーニングを実装できるKerasなどpythonを使って学び、プログラマーとしての経験を積みたい。

このコース完了の際のゴールイメージ
・NumPyを用いた画像のハンドリングができる
・OpenCVを用いた画像処理ができる
・顔認識技術を実装できる
・オブジェクトトラッキングが実装できる
・ディープラーニングのフレームワークKerasでの実装ができる
・カスタマイズしたCNNのディープラーニングの実装ができる
・処理速度を重視したYOLOネットワークのディープラーニングでの実装ができる




コース詳細の紹介
・レクチャー数と時間
 ・92レクチャー、14時間のビデオ

・言語
 ・英語(英語字幕あり)

・内容要約
 ・NumPyによる画像操作
 ・OpenCVをもちいてpythonで図形を画像、ビデオに描画
 ・OpenCVを用いたぼかし、などの画像エフェクト処理
 ・コーナーやエッジ、グリッド検出を行うオブジェクト検出処理
 ・画像のセグメンテーション
 ・オブジェクトトラッキング
 ・ディープラーニングを用いた画像分類
 ・Tensorflow, Kerasを用いたカスタム画像の学習処理
・受講に際しての前提条件
 ・Pythonの基礎を理解していること
 ・Windows10 or MacOS or Ubuntu
 ・パーミッションを変更可能なコンピュータがあること
 ・ビデオストリーミングを行う場合はWebCamがあること

計画
・15日程度で完了するつもりで受講をする。


このコースへのリンク
Python for Computer Vision with OpenCV and Deep Learning







全般ランキング

2019年10月10日

【まとめ】 英語版Udemy講座で学ぶ!ブロックチェーン技術





英語版のUdemy講座、"Build a Blockchain & Cryptocurrency | Full-Stack Edition"の受講を完了したので最初に立てた目標の達成具合、自己評価や、コースをやり終えての感想をまとめる。

目次
1、受講前のゴールイメージとスケジュールの確認
2、講義に関して
3、残念なポイント
3、次回に受講に生かしたいこと。教訓とか

受講前のゴールイメージとスケジュールの確認

■受講前のゴールイメージとスケジュールの確認
・ブロックチェーンの仕組みとコア技術を説明できる △
・ブロックチェーンのプログラム開発ができる △
・ブロックチェーンを用いたWebアプリケーションの構築ができる △
おおむね、イメージした通り、マスターできたとは思う。
しかし、独自にブロックチェーンのプログラムやWebアプリを作るにはまだ勉強の必要があるかな。


■スケジュール
  • 15日程度で完了するつもりで受講をする。→15日で完了

大体、1日5%から10%を目標に進められた。

■良かった点、難しかった点
・良かった点
 ・非常にタフなコースだが、内容は非常に充実していて達成感は大きい。
 ・TDDで講義が進むところ。実践的でTDDの勉強にもなった
 ・Node.jsやReact, jestなどの充実したフレームワーク、プログラミング言語などの最新のコーディング環境に触れられた
 ・一部デバッグえ辛い時期もあったがおおむね計画通りに進められた。
 ・忍耐力が付いた気がする。また、Node.jsなどWeb Frameworkのデバッグの経験をつめた。

・難しかった点:
 ・デバッグが相当つからった。 
  →スペルチェッカーを導入することでかなり改善したが、それでもかなり時間を要した。
  →オブジェクトのundefinedには結構悩まされた。
  →カッコが多いのでそのネスト状態や、")"か"}"などで結構バグが出てしまった。
 ・コーディングが忙しくて動画をじっくり見る余裕があまりなかった。
  →gitのお手本を次回からは活用して見たい。

■講義に関して

・英語
 ・全体的には特に問題なし。

・内容
 ・ブロックチェーンに関しての知識は一通りついたと思う。
 ・普段では絶対触れることのない、Node.jsやReactなどの最新のWebアプリケーションの開発環境に触れられ、面白かった。
 ・ブロックチェーンで仮想通貨を作ったことがある、と自慢できる。
 ・Webアプリケーションで作ったブロックチェーンをマルチホストで同期させたり、非常に高度で飽きがこない。
 ・何回か復習してもいい感じ。

■残念なポイント

・デバッグに時間がかかった所。Node.jsを知っていればもっとスムーズだったかも。
・講座をまとめるpdfがあると良い。これなんだっけ、をすぐ確認できると助かる。
・かなり高等な技術なので副読本を用意するともっと理解が進んだかも

■次回に受講に生かしたいこと。教訓とか

・スペルチェッカーは入れたほうがいい。ただし、頼り切らないこと。
・お手本を活用しながら勉強を進める
・高等なテーマに関しては副読本を用意(余裕があれば)


このコースへのリンク
Build a Blockchain & Cryptocurrency | Full-Stack Edition



全般ランキング






2019年10月09日

【15日目成果】 英語版Udemy講座で学ぶ!ブロックチェーン技術




進捗 100%(+8%)
いろいろあったが、予定通り、受講を完了した。

■デプロイの実施
最後に、Herokuのサービスを使って今まで作った仮想通貨システムのデプロイを行う。
Herokuのアカウントを作成後、Redisの設定に移ったところで、エラーが発生。
どうも、Redisの設定を行うにはクレジットカードの番号を登録することが必要とのこと。
んー、今回はやらなくていいかな。
ということで、Herokuへのサービスデプロイは今回は行わないことにした。

しかし、動画がまだ残っている!
ブロックチェーンのアドレスリストの表示とページ表示の部分だ。
これらを進め、特に大きな問題もなく完了した。

以上をもって、Build a Blockchain & Cryptocurrency | Full-Stack Editionの受講を完了した。

■感想

15日間、山谷あったが、何とか予定通り、コースの受講を完了することができた。
コース全体としては、やはり、バグの対処にかなり時間を取られたという印象だ。
コード量もかなりの量を書いたと思う。
1日の勉強量は2−3時間くらいでかなり大変だった。

■良かった点

・非常にタフなコースだが、内容は非常に充実していて達成感は大きい。
・TDDで講義が進むところ。実践的でTDDの勉強にもなる!
・Node.jsやReact, jestなどの充実したフレームワーク、プログラミング言語などの最新のコーディング環境に触れられた

■反省点

・もっと早くにスペルチェッカーを導入していれば良かった。
・コードの意味を理解しながら、コーディングを進めていくことが重要

■次は?

この講座のまとめを作成(明日)、その後、次のコースをスタート。



このコースへのリンク
Build a Blockchain & Cryptocurrency | Full-Stack Edition


全般ランキング






2019年10月08日

【14日目成果】 英語版Udemy講座で学ぶ!ブロックチェーン技術




進捗 92%(+7%)
追い込みをかけている。
おおむね、順調に進んだ。

■仮想通貨取引のフロントエンド開発
ブロックチェーンの取引から、マイニングまでをフロントエンドから実行できるよう、実装を進める。

ブラウザにアクセスするとインスペクションで下記のエラーが出た。

 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0

バックエンドから戻り値のjsonデータに想定外な"<"が含まれているとのこと。
バックエンドはテスト済なので"<"は返ってくるはずがなのだが。。。
調査すると、結局、URLのつづりのミスであることに気が付いた。
スペルチェッカーを導入して安心していたが、下線部のところでは、スペルチェッカーのスペルミスの指摘の波線が消えていて気が付かない!

誤)
fetch(' http://localhost:3000/api/trransaction-pool-map ')

※間違い:trransaction

正)
fetch(' http://localhost:3001/api/transaction-pool-map ')


んー、これは盲点。
スペルチェッカーを過信してしまった。
こんなんで2時間も悩んでしまった。

だが、最終的には何とか仮想通貨取引のフロントエンド開発を完了した。

■次は?

最後の講義セクションのデプロイを行う。
残り51分。


このコースへのリンク
Build a Blockchain & Cryptocurrency | Full-Stack Edition



全般ランキング






2019年10月07日

【13日目成果】 英語版Udemy講座で学ぶ!ブロックチェーン技術




進捗 85%(+6%)
残念ながら、期待していたよりはるかに進みが遅い。

■ブロックチェーンのフロントエンド開発の続き

Babel導入の際にWebページがエラー表示になっている件の調査復旧ではまってしまった。
クラスのメンバー変数の記述が有効にならず、エラーになってしまう。
Babelのバージョンを6から7にあげてもまったく状況は変わらない。
朝から晩まで5,6時間調査をして、最後に.babelrcの場所がおかしいことに気付いた。
ルートに配置すべきところをWalletの下に置いていた。
これでは何をしても設定が有効にならないわけだ。

エラーの解消後は、特に問題なく進んだ。
HTMLあまり書かず、Reactのコードを書く感じで進む。
心なしか講義がスピードアップしているような気がするが。。。
フレームワークの機能のおかげで、少ないコーディングで整ったWebページが作成できているからかも。
フロントエンドということで結果がすぐビジュアルに見えるのがよい。

ブロックチェーンの可視化の部分は完了した。

■次は?

仮想通貨の部分の可視化を行う。トランザクションをWebページからできるようにしたりするらしい。
それが終ると最後の講義セクションのデプロイになる。
あと2日で何とか終わらせたいが...
現状の進みを考えると難しい状況だ。

この講座の後の受講リストの準備は大体完了。どこから手を付けるかを考え中。


このコースへのリンク
Build a Blockchain & Cryptocurrency | Full-Stack Edition



全般ランキング






2019年10月06日

【12日目成果】 英語版Udemy講座で学ぶ!ブロックチェーン技術




進捗 79%(+4%)
特に大きなバグもなく進めることができた。

■ブロックチェーンのフロントエンド開発
Reactを使ったフロントエンドの開発を開始。

まずはReactの勉強と必要なモジュール、環境の整備からスタートする。
今までのNodeJSを使ったバックエンドとは全く違った感じで進む。
HTMLを書いて、ブラウザーでその結果を確認する、という感じだ。
当然、TDDも出てこないので、コーディング量的には激減し、楽な感じだ。

とは言っても、実はちゃんとHTMLを勉強したことがない...
いきなり、index.jsを追加したのになんか反映されない不具合に遭遇。

src="javascript"を書く場所を間違えていた。
HTMLの値ではなくて、属性のところに書くのだった。
HTMLといっても初心者なので、丁寧に勉強する必要あり。

しかも、その後、babelの導入のところでもWebページが正しく表示されていない。
バグの調査が必要だ。

■次は?

Babel導入の際にWebページがエラー表示になっている件の調査復旧を行い、
ブロックチェーンのフロントエンド開発を続ける。

予定としては、残り3日で完了なので、余裕をもって終わらせるためにも、次は大きく進めたいが。


このコースへのリンク
Build a Blockchain & Cryptocurrency | Full-Stack Edition



全般ランキング






2019年10月05日

【11日目成果】 英語版Udemy講座で学ぶ!ブロックチェーン技術




進捗 75%(+10%)
順調に進めることができた。

■Mine Transactions |The Blockchain and Cryptocurrency Backend

一通りの機能の実装を完了し、最後にブロック、ブロックチェーンなどの各レベルでのデータチェックを追加する。
これで、ブロックチェーンと仮想通貨システムのバックエンドは完成だ。

非常に苦労したが、考えてみるとブロックチェーンや仮想通貨のロジックというよりはNode JS,とtypoで苦労したというの感じだ。
だが、いずれにしろ、かなりの達成感を得られた。
すばらしい!

ブロックチェーンや仮想通貨の知識に関しても、difficultyや電子署名、トランザクションプール、各種validationなど、いろいろな知識を得られたと思う。
これの知識をまた、再度整理して、自分のなかで定着させたい。

■次は?

Reactを使ったフロントエンドの開発を開始する。


このコースへのリンク
Build a Blockchain & Cryptocurrency | Full-Stack Edition


全般ランキング






2019年10月04日

【10日目成果】 英語版Udemy講座で学ぶ!ブロックチェーン技術




進捗 65%(+5%)
順調に進めることができた。

結局、スペルチェッカーを入れてから、バグをかなり抑えられている気がする。
これに加えて、これまで経験した数々のエラー対処の中でチェックするポイントがわかってきて、早期に対処できている。
なのでバグつぶしの時間が少なくなってきている感じだ。

■Mine Transactions |The Blockchain and Cryptocurrency Backend

続きを進める。
5ステップの処理の実装を終えて、全体を合体して、マイニングの処理を完成させる。
そして、この処理をネットワーク越しに呼べるようにし、マイイングを行えるか確認をした。
問題なし!

次に、トランザクションをトランザクションプールからブロックチェーンに移動し、この結果をネットワーク全体に反映するパートを作成した。
最後にトランザクションの結果の残高の計算を追加。

■次は?

Mine Transactionsのセクションを完了させる。


このコースへのリンク
Build a Blockchain & Cryptocurrency | Full-Stack Edition


全般ランキング






2019年10月03日

【9日目成果】 英語版Udemy講座で学ぶ!ブロックチェーン技術





進捗 60%(+7%)
順調というわけでもないが進めることはできた。

結局、前回のエラーを解消するために2,3時間を要してしました。
結局、VSCodeのエディタはjavascriptの文法エラーを検出してはくれるがコードのtypoは検出することはできない。
このため、typoにより、値がundefinedになったり、関数が正しく認識されなかったり、が起こる。
特にこの講座はコードの記述量が多いため、typoのバグで多くの時間を要している気がする。
そこで、スペルチェックのツールを導入することにした。

https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker

導入後は何の問題もなく、コーディング、テストが進む。
今までの苦労が何だったのか?

■Mine Transactions |The Blockchain and Cryptocurrency Backend

仮想通貨のマイニングのセクションに入った。
このセクションでは、マイニング処理を有効な処理を取得したり、マイニングへの報酬など5つのステップに分けて順番に実装を進める。
面白そうだが、2時間半のセクションとなっており、このコースの山場といったとところだろう。

早速、またまた、テストが通らない。
つづりはOKだが、配列に要素が入らない。
結局、コールバック関数を{}でくくっていて中で呼んでいる関数から値が返されず、filterの結果の配列に要素が入らないことがわかった。
考えてみれば当たり前のような気もするがこれまた結構な時間を使ってしまった。

【誤】
[1,2,3].filter(f => {f === 1})
-> []

【正】
[1,2,3].filter(f => {return (f === 1)})
-> [1]

■次は?

ひたすらMine Transactionsのセクションを終わらすべく、進める。



このコースへのリンク
Build a Blockchain & Cryptocurrency | Full-Stack Edition


全般ランキング






タグ: Node.js
検索
<< 2021年12月 >>
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
最新記事
タグクラウド
カテゴリーアーカイブ
月別アーカイブ
プロフィール
peter3qさんの画像
peter3q
エンジニアとして働いている40代の会社員です。 仕事でメインに使用している言語はC/C++です。 プライベートでは、大学生の息子と中学生の娘がいて、 週末、料理をし、毎年、梅シロップを付けています。
×

この広告は30日以上新しい記事の更新がないブログに表示されております。

Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: