MotoJapan's Tech-Memo

技術めも

python

【ipython/jupyter】 ipython notebookの出力データを外部からclearする方法

ipython notebookもしくはjupyter notebookで日頃の作業をしている中で 大量のログを出力したままファイルを閉じたり ログを出しすぎて処理が重くなり、不用意にterminateしたり して、次の実行時にipynbファイルの展開が遅くなったり、最悪展開できない、ke…

【python】OCR(tesseract-ocr / pyocr)で賞味期限を読み取る(画像→数列) 【お家IT#19】

本件の実装の一部 motojapan.hateblo.jp前回の続き motojapan.hateblo.jp目次 OCRとは tesseract-ocr / pyocrとは インストール 使い方と実装 pyocr.builders tesseract_layout (pagesegmode) 実装 結果 前回は、バーコード画像から商品情報を取得するところ…

【python】Yahoo Web APIでバーコード情報(JAN)から商品名を読み出す(数列→商品情報) 【お家IT#18】

本件の実装の一部 motojapan.hateblo.jp前回の続き motojapan.hateblo.jp目次 取得方法のアイディア 1.スクレイピングする方法 BeautifulSoup4 をインストール 実装 結果 2.WebAPIで検索する方法(種類) Product Advertising API (Amazon Web Services) 楽…

【python】zbarでバーコードを読み取る(画像→数列) 【お家IT#17】

本件の実装の一部 motojapan.hateblo.jp前回の続き motojapan.hateblo.jp目次 バーコードとは 環境 zbarインストール インストール時のトラブルシューティング 「error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1」がインストール時に出…

【flask to Javascript】jsonデータを送信/受信する方法(jsonify) 【お家IT#9】

本件の実装の一部 motojapan.hateblo.jp前回の続き motojapan.hateblo.jp目次 送信側実装 (python:flask) 受信側実装 (javascript) 前回までで、javascript->flaskへbase64を送信した。 これを画像処理して、その結果を返信するときjsonだと汎用性も高い。 …

【flask】Replyヘッダーに「Access-Control-Allow-Origin」を追加する【お家IT#8】

本件の実装の一部 motojapan.hateblo.jp前回の続き motojapan.hateblo.jp目次 対策 参考資料 前回は、base64でバックエンドに画像を送信したが、次のエラーが表示れている。 XMLHttpRequest cannot load https://192.168.0.100:12345/hoge_image_processing.…

【Javascript to flask】base64で画像を送信/受信する方法 【お家IT#7】

本件の実装の一部 motojapan.hateblo.jp前回の続き motojapan.hateblo.jp目次 base64とは 送信側実装(Javascript) 受信側実装(python : flask) 参考資料 前々回、ChromeでWebカメラを起動/撮影した後、Canvasに書き出すところまで進めた。 前回は、Ajaxを利…

【Javascript to flask】FormDataを送信/受信する方法 【お家IT#6】

本件の実装の一部 motojapan.hateblo.jp前回の続き motojapan.hateblo.jp目次 送信側実装(Javascript) 受信側実装(python : flask) 対応関係 前回まででWebカメラで撮影した画像をCanvas領域にコピーするところまで終えた。 が、根本的にJavascript - python…

【flask】https対応Webサーバーをバックグランド実行する方法 【お家IT#5】

本件の実装の一部 motojapan.hateblo.jp前回の続き motojapan.hateblo.jp目次 標準入力をバックグラウンドで無視すると落ちる バックグラウンド実行対策 参考資料 標準入力をバックグラウンドで無視すると落ちる 前回 flaskをhttps化 (http over ssl)したが…

【flask】Webサーバーをhttps対応する方法 【お家IT#4】

本件の実装の一部 motojapan.hateblo.jp前回の続き motojapan.hateblo.jp目次 SSL対応の手順 秘密鍵を作成 秘密鍵から公開鍵を作成 デジタル証明書を作成 flask上でHTTPSサーバー起動 おまけ JavascriptからWebカメラを起動しようとしたら下記コードで怒られ…

【お家IT#2】Webアプリと画像認識で家の食品名と賞味期限を簡単に登録したい(構想編)

下記記事の続きです。 motojapan.hateblo.jp 構想 Google Spreadsheetを探して、食品名と賞味期限を手入力するのは、実は結構めんどくさい。 なので、Webアプリ開発と画像認識の勉強も兼ねて、下のような構成を構想。 写真を撮影すると商品情報が取得でき、…

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

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

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

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

【行動認識 #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の大枠を…

【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版ということ…

【行動認識 #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. 特徴量毎の生存分布確認(可視化)と特徴量生成 データの…