MotoJapan's Tech-Memo

技術めも

【Android】TensorFlow LiteのMobilenetサンプルコードをビルド&実機インストール・実行する方法と雑感 (Android Studio 3.0)

待ちに待っていたTensorFlow Liteが先日リリースされた。 Preview版ということでgithubに公開されていたので、触ってみた。 (そもそも本家GithubのTfLiteCameraDemo.apkというPre-build binaryのapkがエラーでインストールできない(17/11/18現在)) 本家…

初心者が学ぶP,NP,NP困難(Hard),NP完全(Complete)とは(わかりやすく解説)

(※訂正のため更新 18/4/23)論文を読んでいると言葉だけ出会うが、見なかったことにしている言葉なのでちゃんと知りたい。スタート:全く意味がわかっていないレベル ゴール:論文でその言葉の意味が掴めている状態 言葉の一般的な説明 P NP NP困難 (NP-Hard)…

【神価格】ビックカメラでMacbook Air 13 inch 新品を39,800円という激安で買った話と一週間使ってみて

([10/30 午後更新] 本記事ですが想像以上に反響があり、格安な物やサービス、ライフハックな情報を探したりすることが趣味なので、twitterフォローしてもらえればライフハック情報とかバーゲン、格安速報とかします。(twitterも使い道に困っていたので) そ…

【Raspberry Pi 3】sambaサーバーが接続できないときのハマリポイントまとめチェック

久しぶりにsambaを入れたらうまく動かないとか、ubuntu16.04ではsambaサーバーが動いていたのに、raspberry pi 3ではうまくいかないときのためのチェック項目 基本手順 インストール 設定変更 sambaを再起動 【チェック1】sambaが起動しているか確認する 【…

【iOS11 / CoreML】自作した回帰予測モデル(.mlmodel)の結果を得る実装方法 (Regression, VNCoreMLRequest)

iOS11がリリースされて3日経過したが、本家が提供するモデルはMobileNet、SqueezeNet、Places205-GoogLeNet、ResNet50、Inception v3と分類モデルが多く、サンプルコードも分類しか見つけられない。 なので、今回は回帰予測モデル(具体的には、1次元配列 :…

Linuxのジョブ/プロセス(jobs/process)関連のコマンドまとめ (起動、中断、終了、検索、ジョブ強制終了、ログアウト継続実行)

ubuntu/raspberry piでの開発で重宝しているコマンドを覚書 今回は、hoge.pyというスクリプトを例にとる プロセスを起動する方法 特定のプロセスを検索する方法 フォアグラウンドのプロセスを終了する方法 バックグランドのプロセスを終了する方法 ジョブを…

【お家IT#1】 googleスプレッドシートで管理した賞味期限リストをGASでメールで定期通知してみた

GAS(Google Apps Script)という、Google製サービス上で動くJavascript互換のスクリプトを初めて触ってみた。家の課題を解決するために。 課題:家の調味料や保存食の賞味期限がいつの間に切れていく やったこと 0.夫婦共有のスプレットシートを作る 1.スプレ…

【行動認識 #9】t-SNEをtensorboard(Embedding Visualization)で可視化

今回はtensorboardのEmbedding Visualization対応コードを実装し、センサーデータ入力にt-SNEを可視化してみた。センサー系の文脈ではこれの続き 【行動認識 #6】tensorflowでCAE(Convolutional Auto-Encoder)を実装してみた - MotoJapan's Tech-Memo行動認…

【行動認識 #8】OpenPoseのBodyParts推定をTensorFlowでCPU実行する方法 (Linux : Ubuntu 16.04 LTS)

OpenPoseのBodyParts推定をTensorFlowでCPU実行する方法について。(想定環境はUbuntu 16.04 LTS)どうしてもTensorFlowで動かしたい人はやってみてもいいかも。(そんな人いる?) 個人的にはTensorFlowのアーキテクチャの方が好きですが。OpenPoseの大枠を…

【行動認識 #7】OpenPoseのBodyParts推定をCPU実行してみた雑感

今回は、今年のCVPR2017でも報告されている何かと話題のOpenPoseの内、人体部位-BodyParts-推定をCPUで動かしてみた。下記のセンサー入力周りとは文脈が変わるが、画像から行動を特定するタスクもあるという点では関連性があるテーマなので今回取り扱う。 【…

【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パープトロンの改良版 活性化関数が線形関数 量子化器がステップ関数 活性化関数が微分可能となり、勾配降下法で誤差更…