MotoJapan's Tech-Memo

技術めも

【opencv 基礎知識 #5】透視投影変換行列に関連する関数まとめ (getPerspectiveTransform, calibrateCamera, warpPerspective, perspectiveTransform, undistort, remap)

忘れやすい透視投影変換行列周りの関数をメモ。(python) 1. 透視投影変換行列を求める方法 1.1. 台形補正の場合 [getPerspectiveTransform] 1.2. レンズ歪み補正の場合 [calibrateCamera] 2. 透視投影変換行列による変換方法 2.1. 画像を変換する [warpPersp…

【opencv 基礎知識 #4】動画の手ぶれ補正をpython実装 (AKAZE, KNN, RANSAC)

行動認識が多かったので、半日くらいで動画の手ぶれ補正を作ってみた。実装は数多あるので、そのうちコードをリファクタリングしたらGithubに載せようかと思う。 (すぐほしい人がいたら、コメントください)すぐ忘れることをメモ。 結果 動画の通り、チュー…

【行動認識 #6】tensorflowでCAE(Convolutional Auto-Encoder)を実装してみた

これの続き 【行動認識 #5】データ量別でCNNの性能差 - MotoJapan's Tech-Memo 今回はCAEの実装をしてみた。 CAEってなに? CAEとは、Convolutional Auto-Encoderの略で、次元削減/圧縮テクニックの1つである。 AE(Auto-Encoder)のConvolutional版ということ…

【行動認識 #5】データ量別でCNNの性能差

これの続き 【行動認識 #4】Subjectを考慮してCNN層数別で性能差を確認 - MotoJapan's Tech-Memo 学習データ量別で確認してみる。 概要 もともとの総データ数は、7344件。 7344件 ⇒ ( 7344 x 128 [samples] / 50 [Hz] ) + 0.5 [overwrap rate] ⇒ 2.6 [hour] …

【行動認識 #4】Subjectを考慮してCNN層数別で性能差を確認

これの続き 【行動認識 #3】機械学習/深層学習で人間行動認識 ~CNNしてみる~ - MotoJapan's Tech-Memo前回はtrainデータでSubject未考慮で精度を検証した。(trainデータ内) その精度は、93.43%今回はtrain/testのそれぞれを使って評価 加えて、Convoluti…

【行動認識 #3】機械学習/深層学習で人間行動認識 ~CNNしてみる~

これの続き 【行動認識 #2】機械学習/深層学習で人間行動認識 ~データ確認~ - MotoJapan's Tech-Memoやりたいことの1つでもあるtensorflowを使った。 結果 1. 精度 下記条件で検証して、精度としてはCNN(Convolutional Neural Network)で93.43%程度でた。…

【行動認識 #2】機械学習/深層学習で人間行動認識 ~データ確認~

この続き 【行動認識 #1】機械学習/深層学習で人間行動認識 ~事始め~ - MotoJapan's Tech-Memoデータセットは下記 UCI Machine Learning Repository: Human Activity Recognition Using Smartphones Data Setライセンスは次の通り。 This dataset is distr…

【行動認識 #1】機械学習/深層学習で人間行動認識 ~事始め~

人間行動認識 ( Human Activity Recognition ) の領域の話。 去年の3月頃にやっていたが途中になっていたこともあったので、追試も兼ねて再開。 (tensorflowの勉強もしたいし) 人間行動認識 ( Human Activity Recognition ) とは 私の認識では、カメラやセ…

【Linebot #3】家の温度をLineで通知するアプリ (BME280使用)

家の温度をサーバーに通知して、自分のスマホに通知したい。 でも開発は最小にしたいので、Linebotとして開発した。 サーバサイドのみの開発で済むしね。 忘れそうなことや注意点を書き残し。 主に、サーバーサイドとクライアントサイドのpython実装とかとか…

【Linebot #2】herokuでブックマークアプリを作ってみた

普段気になるURLをブックマークしているが、また見返すことなく、あっという間に埋もれてしまう。 なので、LINEアプリとしてメモも書けるブックマークアプリを作ってみた。 後々は、特定のアドレスに定期送信したり、Slackにnotifyしたり、傾向解析したりす…

【Linebot #1】windows8.1(local)とherokuでpostgreSQL環境構築 (psycopg2)

Linebotを最近書いているのですが、そろそろオウム返しbotだけだとつまらないので、データベースを組み込みたいなと。 もともとsqlite3を使っていたのですが、Herokuはsqliteが簡単に使えないことをdeploy時に気づき、やむなくpostgres対応を考えることに。…

【Messaging API #2】reply_messageで「request body has 1 error」が起きる (python)

herokuにdeployしていた下のコード。 ちゃんと動いていたはずのreply_messageがいつからかErrorを吐いて終了していたので覚書。変な文字列でも入れたのかと切り分けを進めたが、結果的には、contentsの文字列が長すぎた模様。 line_bot_api.reply_message( e…

【Messaging API #1】 クライアントのユーザID(user_id)とアカウント名(display_name)の取得方法 (python)

久しぶりにMessaging APIを使ってLinebotを書いてますが、メッセージを送信してきたクライアントのユーザIDとアカウント名の取得方法を忘れそうなので、書き残し。 クライアント側から「おはようございます」とpostすると、Webhookされたサーバーサイドのeve…

【kaggle⑤】初心者がタイタニック号の生存予測モデル(Titanic: Machine Learning from Disaster)をやってみる(機械学習、DeepLearning)

これの続きで、今回で一通り終わります。 【kaggle④】初心者がタイタニック号の生存予測モデル(Titanic: Machine Learning from Disaster)をやってみる(学習データ相関確認、分割、正規化) - MotoJapan's Tech-Memo 3. 機械学習 今回は下記6パターンをそ…

【kaggle④】初心者がタイタニック号の生存予測モデル(Titanic: Machine Learning from Disaster)をやってみる(学習データ相関確認、分割、正規化)

これの続き~ 【kaggle③】初心者がタイタニック号の生存予測モデル(Titanic: Machine Learning from Disaster)をやってみる(特徴量生成と生存関係の可視化) - MotoJapan's Tech-Memo 2.8. データ相関再確認と分割 df_train_dropna = df_train.copy() df_…

【kaggle③】初心者がタイタニック号の生存予測モデル(Titanic: Machine Learning from Disaster)をやってみる(特徴量生成と生存関係の可視化)

これの続きです。 【kaggle②】初心者がタイタニック号の生存予測モデル(Titanic: Machine Learning from Disaster)をやってみる(データ分析、整形、欠損データ補完) - MotoJapan's Tech-Memo 2.7. 特徴量毎の生存分布確認(可視化)と特徴量生成 データの…

【kaggle②】初心者がタイタニック号の生存予測モデル(Titanic: Machine Learning from Disaster)をやってみる(データ分析、整形、欠損データ補完)

これの続きです。【kaggle①】初心者が Titanic: Machine Learning from Disasterをやってみる(Titanic概要 ~ データ確認) - MotoJapan's Tech-Memo (ここからはpythonのpandasが便利すぎるというポジティブキャンペーンになります) ちなみに「ここでわ…

【kaggle①】初心者がタイタニック号の生存予測モデル(Titanic: Machine Learning from Disaster)をやってみる(Titanic概要 ~ データ確認)

昨今取り沙汰されているkaggleに初挑戦してみました~今回は、初心者向けのTitanicの生存率推定の精度を上げようと挑戦してみた過程を書き残します。 このタスクを通して、日頃は得意なデータや解析手法、機械学習手法しか扱っていなかった自分を戒め、いろ…

【機械学習】超雑メモ2 (サポートベクターマシン(SVM)、決定木(Decision Tree))

続き motojapan.hateblo.jp サポートベクターマシン(SVM) マージン最大化により得られる超平面で分類/回帰 [python] sklearn でいうところの SVC/SVR カーネルトリックを使った非線形分離が可能 「カーネル」=「2サンプル間の類似性を表現する関数」 [pytho…

【機械学習】超雑メモ1 (パープトロン~ロジスティックス回帰)

思い出しのためにもメモ パーセプトロン(Rosenblatt) 単層ニューラルネット 活性化関数は単位ステップ関数で微分不能 ADALINE Rosenblattパープトロンの改良版 活性化関数が線形関数 量子化器がステップ関数 活性化関数が微分可能となり、勾配降下法で誤差更…

【Python】【Webアプリ】flaskで外部公開できないとき

flaskを使っていてウェブアプリを作成時に気づいたことの書き留め何故か外部公開できない。。。 from flask import Flask, render_template, request app = Flask(__name__) .... if __name__ == "__main__": app.run(port=9999) host設定が必要でした! fro…

【Android】ファイル 書き出し(保存)、追記、エラー時(Java.illegalArgumentException : File contains a path separator) 対策

android アプリにおけるjava実装で忘れやすいことをメモメモファイル 書き出し(保存)、追記、エラー時(Java.illegalArgumentException : xxx contains a path separator) 対策について、実装例を上げていきます。まず、ファイル 書き出し(保存)、追記に…

【 opencv 基礎知識 3】 異常検知アプリ作成!③ -フレーム間差分の二値化、二値変化率の認識、画像保存、検知枠の設定-

このお題目は2年前に完遂していたにも関わらず、纏めないまま放置されていたので思い出しも兼ねて書きます!以前はC++で書いていましたが、pythonで書くと短期作業で実装できるので切り替えました。 環境は次の通り。 windows 8.1 python3 (anaconda3-2.3.0)…

【AWS】http サーバーを立てて、Webページを公開する

aws

前回に引き続き、今回はhttpサーバーを立てて、適当なWebページを公開motojapan.hateblo.jp apache httpd サーバーインストール $ sudo yum update $ sudo yum install httpd $ sudo service httpd start index.html作成、配置 $ sudo emacs /var/www/html/i…

【AWS】初期導入のハマりポイント覚書(導入からJupterNotebookでリモート作業まで)

aws

GWなのでAWSを使ってみたいと思ったので、 先輩と導入からJupterNotebookでのリモート作業までやってみました今回はハマったところを覚書作業の主な流れ①アカウント登録 ②EC2インスタンス作成 ③クライアントからEC2インスタンスに接続 ④python環境構築(anac…

【Unity5】ボールをキーボード操作で移動させる

これの続き motojapan.hateblo.jp motojapan.hateblo.jp 今回はスクリプトをコーディングしまする Unityのみでは、細やかな操作やアニメーションを実装できないので、 C#でコーディングしまする簡単なコードで動きますね ①Script用フォルダを作成 Assets->Cr…

【Unity5】ボールを置いて落としたり、弾ませたりする

これの続き motojapan.hateblo.jp ①ボールを追加 GameObject -> 3D object -> Sphereを選択 位置はカメラ位置を意識して次を設定 position x / y / z = 500 / 10 / 510 ②ボールに重力を設定 ボールの追加だけだと浮いている状態なので、 重力を設定します。S…

【Unity5】プロジェクトを開始して地形をつくる

最近は機械学習やっていますが、GWで暇すぎるのでUnitiyを触ってみた。Unity環境はすでに入れている前提で雑多にメモ。(すぐ忘れちゃうので)環境 Windows 8.1 Unity 5.6.0f3 ①プロジェクトを開始 [+New]→Project nameを適当に埋める→Create Project (私の…

【Raspberry Pi 基礎知識③】 BluetoothでAndroidとシリアル通信(Python編)

五月雨で覚書RFCOMMプロトコルを使用するために、 まずPythonでBTのソケットを作ります。①ソケット作成 sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM )②接続繋ぎに行く場合(Client) sock.connect((相手のサービスBTアドレス, 相手のPORT))繋がれる…

【Raspberry Pi 基礎知識②】 BluetoothでAndroidで接続&シリアル通信

ざっくりお覚書です。(デジャブ)①まずデバイスの検索 hcitool scan②BTインタフェースにターゲットのBTデバイスをセットする※ XX:XX:***** は①で検索したBTアドレス sudo bluez-simple-agent hci0 XX:XX:XX:XX:XX:XXaleardy exist と出た場合は、以下 sudo …

【Raspberry Pi 基礎知識①】 無線LANに固定IPで接続

下記覚書ですね ちなみに、WPA2 - AES(PSK)です。①まずWifiドングルを突き刺してデバイスを確認 lsusb一応、検出をしているかも確認 iwlist wlan0 scanここで使いたいssidをメモ ②次に無線用のパスフレーズを作る直接書き込むなら以下 wpa_passphrase ssid p…

【Git 基礎知識①】 Gitコマンドでローカルリポジから共有リポジまでアップロードする方法

最近 Git & Codebreak を再び使い始めたのですっかり忘れていたことを備忘録。 ここでステージに上がってないものを探す git status ステージにあげる git add ファイル名 or フォルダ名 ローカルリポジトリにコメントでコミット git commit -m "コメント" …

【 位置情報まわりWebサービス 基礎知識4 】 位置情報を活用したプライベートサービス作り④ - DB/Table作成と確認、既存Tableへのカラム追加 -

前回は、cakePHPのDB設定をしたので、今回は実際に、DBを作っていきます。いまいまはこんな感じです↓設定しているのに無いやんけ!状態です。 ① DB作成 では、CommandPromptを立ち上げて、MySQLに入ります。前提: windows環境 mysqlのPathを通してある mysq…

【 位置情報まわりWebサービス 基礎知識3 】 位置情報を活用したプライベートサービス作り③ - CakePHP -

始まりましたね、なんでしたっけ、GW。 そう、ゴールデンワーキングなるもの!この一週間でリファクタリングできるかが勝負です。 さて、短いスパンで書くということなので続きです。 今日は下の足場を作ります。「作りたいもの」Service1.美味しいもの…

【 位置情報まわりWebサービス 基礎知識2 】 位置情報を活用したプライベートサービス作り② - XAMPPインストール -

2か月ぶりの更新です。2か月間なにがあったは秘密です。復習「作りたいもの」Service1.美味しいものを投稿できるサービス Service2.投稿した情報をあとで見返せるサービス Service3.見返すときはスマホかなにかで現在地測位して近いお店を調べたい。…

【 位置情報まわりWebサービス 基礎知識1 】 位置情報を活用したプライベートサービス作り① - 背景、作りたいもの、触りたいもの、制約について

web

位置情報絡みが楽しくなってきてしまったので、画処理プロトは一旦お休みです。 前々回からGPSの話題を取り上げていますが、スマホのGPSのデータとかを他のリソースを組み合わせて、毎日がちょっと便利になるプライベートサービス作ったりできると楽しいんじ…

【 GPS 基礎知識 2】 GPS LOGGERについてより詳しく-NMEAフォーマットについて

前回のGPSの投稿でさらっと流していたformatConvertでしたが、理解を深めるためにGPSのフォーマットについて調べてみました。 前回はNMEAフォーマットをKMLフォーマットに変換しました。 一部を取り出すとこんな具合 [NMEA]$GPRMC,044954.810,A,[A],N,[B],E,…

【 GPS 基礎知識 1 】 GPS LOGGER作成! -準備から所感まで-

今回はひさしぶりに新しいものを動かしたので、カキカキ。今回は、GPS信号を受信してみました。GPSとは、、 グローバル・ポジショニング・システム(Global Positioning System, GPS, 全地球測位網)は、アメリカ合衆国によって運用される衛星測位システム(…

【 opencv 基礎知識 2 】 異常検知アプリ作成!② -プロジェクト準備とグレースケール画出し-

前回はとりあえず下準備でした! 今回はプロジェクト起こしてから、画出しまで! ①プロジェクトの準備 vs2010から「win32コンソールアプリケーション」を起動。 *ハマりポイント① win7でwin32コンソールアプリケーションのプロジェクトをイニシャライズして…

【 opencv 基礎知識 1 】 異常検知アプリ作成!① -opencvについてと準備-

学生時代からopencvというものから逃げてきたので、このタイミングで勉強! でも何か目標を決めないと知識もノウハウもスタックしないので何かプロトを考えました。 てことで、異常検知アプリを考えてみました。 「留守中の家に侵入者が、、」「留守の間に家…

はじめに

ひよっこエンジニアのmotoですーー! 趣味の書留帳はじめましたーー! 不定期更新していくので興味がある人はご覧くださいーー! 目標は週1更新!(いけるかな~~ ><; )がんばろ!