ダウンロード時間計算ツール

概要 楽天モバイルのスーパーホーダイに契約をして、通常は1Mbpsに帯域制限をして携帯電話を使用している。 ある程度大きなファイルサイズのものをダウンロードする際、1Mbpsだと何分かかるんだっけ・・・?と電卓をポチポチ叩いて計算するのが煩わしくなっ…

Googleドライブ共有リンク変換ツール(クリック一発で直接ダウンロード!)

概要 はてなブログでZipファイル等を公開する際、GoogleDriveのファイル共有機能を利用している。 しかし、GoogleDriveで作成したURLは、クリックすると以下画像のようなGoogleDrive画面が開いてしまい、ファイルをダウンロードするまでにひと手間かかってし…

見開きPDFのページ分割/トリミングアプリ (フリーソフト、非破壊自炊PDF)

フリーソフト概要 書籍等を私的利用のために、数ページ、スキャナでスキャンすることがあるが、iPad等で閲覧する際、見開きではなく1ページずつ表示したくなる。 しかし、見開きのPDFファイルを、左右1ページずつにトリミングし、分割したPDFに変換してくれ…

pyinstallerを使ったpythonコードのexe化と、処理時間の評価(onefileオプションの有無を含む)

概要 pyinstallerを使ってpythonスクリプトのexe化することがままあるが、exe化すると速度が遅くなるように感じる。(特に--onefileオプションを入れて一つのファイルにパッケージ化した場合) しかし、どの程度の速度低下があるのか定量的に測定した例がな…

Pythonでword,docxファイルを操作・置換する(python-docx)

概要 大量の文章ファイルを扱うとき、いちいちwordを使ってdocxの中身を変更するのは面倒。 Pythonを使ってある程度自動化できないか・・・と考えて調査したところ、簡単に実装できたのでまとめておく。 対象とする環境 OS異存なし Python2.7 概要 対象とす…

中心のずれた見開きスキャンPDFを2ページに分割する方法(Python,pypdf)

概要 参考書等を数ページスキャナで取り込み、タブレットに保存して、参照したいことがままある。 その際、なるべく綺麗に取り込みたいところだが、見開きでスキャンしてしまうと、以下のイメージのように、スキャンした部分でない余白部分が残ってしまう。 …

ROSのRvizにwaypointを表示させる方法(Python)

概要 rvizのGUIで指定したウェイポイント通りにロボットを自律走行させる(Python,ROS) - 技術メモ集にて、ウェイポイントを保存し、その順番通りにロボットを自律走行させる方法を記載した。 しかし、実際に自律走行させてみると、ウェイポイントを追加し…

ROS解説本3冊の書評と、開発スタイルに合わせたおすすめの入門書紹介

概要 ROSの解説本として日本語で販売されている書籍として、「ROSではじめるロボットプログラミング」、「ROSロボットプログラミングバイブル」「プログラミングROS」の3冊がある。 どれも非常によくまとまっているが、それぞれ個性があるので、各書籍の感…

rvizのGUIで指定したウェイポイント通りにロボットを自律走行させる(Python,ROS)

概要 ROSのチュートリアル等では、RvizのGUIで指定した場所に自律走行させるところまでで終わっていることが多く、広い環境下でロボットをウェイポイントに沿って自律走行させる方法がまとまっていない。 そこで、本稿では、RvizのGUI上で指定したウェイポイ…

PythonでROSのRvizに基本図形を描画する簡単な方法

概要 PythonでROSのRvizに基本図形を描画する方法を記載する。 C++は以下のROSチュートリアルが参考になるが、Pythonで記載された例がないので、私のような「どうしてもPythonで書きたい・・・」という人のために、サンプルを記載しておく。 各項目の説明は…

日本とアメリカでアレグラの用量、用法が違う!理由を半減期を根拠に計算してみた

概要 アメリカ出張時に、薬局でアレグラの説明を読むと、日本と違うことが書かれている。 具体的に比較すると以下の通り。日本:60mgを1日2回 (合計120mg) アメリカ:180mgを1日1回アメリカは1日1回でいい代わりに、1日の用量が日本の1.5倍になっている。 1日1…

AlexaにLine経由でリマインドして貰うSkillを作った(Python, Line Notify API)

概要 Alexaアプリ第二弾。 今度はAlexaに話しかけることで、Lineに通知・リマインドしてくれるアプリを作った。 Echoに対して、 「アレクサ、リマインダーで⚪︎⚪︎とリマインドして」 と話しかけると、Lineに⚪︎⚪︎の部分を通知してくれる。[第一弾はこちら] 【A…

【Alexa Skill開発】LaunchRequest時にエラーになってしまう場合に確認すべき事項(Python)

概要 Alexaのスキルはシミュレータでもデバッグできるので、比較的デバッグがしやすい。 しかし、スキルが最初に呼び出された際の挙動がシミュレータでは確認できないため、エラーが発生した際のデバッグが困難。 気づいてみれば簡単なことだったけれど、結…

【Alexa Skill開発】Alexaに最寄り駅の次発電車の発車時刻を教えてもらう(AmazonEcho)

経緯 Amazon Echoを買ったので、自分でも面白いものが作れないか調べたところ、公式の解説がとてもよくまとまっている。 これなら簡単にできるな・・・ということで、練習問題を少し改造して、最寄り駅の次発、次々発、次々々発の電車の時刻を教えてくれるSk…

pythonを使って連番の画像を一括ダウンロードする

pythonを使って連番の画像を一括ダウンロードするスクリプトを書いたので、まとめておく。(スクリプトは一番下)https://www.xxxxxx/001.jpg https://www.xxxxxx/002.jpg . .というURLのjpgファイルを一括でダウンロードするためには、 url = "https://www.…

pythonを使ってディレクトリを簡単にzip圧縮する

pythonを使ってディレクトリを圧縮する方法を検索すると、リストを作成→zipfileを使って圧縮という方法がよく出てくる。 しかし、この方法は無駄に行数が長くなり面倒。 shutilを使うことで、もっと簡単にディレクトリを圧縮することができることがわかった…

grouped convolution(グループ化畳み込み)の概念を理解する

経緯 mobilenetの実装とモデルを調べる中で出てきた概念として、pointwise convolutionとdepthwise convolutionの理解をまとめてきた。今回はその発展系で、grouped convolutionについてまとめる。 mobilenetは基本的に、pointwise convolutionとdepthwise c…

Depthwise convolution(dw畳み込み)の概念を理解する

経緯 前回、CNNモデルのパラメータ・計算量削減手法の一つであるpointwise convolution(pw畳み込み)について解説した。 pw畳み込みはHW方向の次元を削減し計算量とパラメータを減らすものだったが、それの対極をなすものとして、レイヤー方向の次元を削減…

pointwise convolution(1x1の畳み込み)で何をやっているか、概念を簡単に理解する

概要 googlenetやmobilenet等、最近のCNNモデルでは、当たり前の様にpointwise convolution(1x1の畳み込み)を使って次元数を調整する・・・等の説明がなされるけれど、1x1で畳み込んでも結局意味ないじゃん?と最初理解に苦しんだので、自分なりにまとめてお…

【つくばチャレンジ2017】tinyYOLO,YOLO v2を使って対象人物検知モデルを学習させる

目次 目次 つくばチャレンジとは つくばチャレンジ2016における成果と課題 学習データの作成 YOLOによる学習 モデルの評価 本走行の結果 まとめ つくばチャレンジとは 「つくばチャレンジ」は、つくば市内の遊歩道等の実環境を、移動ロボットに自律走行させ…

ubuntuにopencvを入れる方法(ubuntu16.04,cuda8.0,gtx1070)

経緯 cuda,cudnnを導入したubuntuにopencvを導入しようとすると、make時にエラーが頻発し、なかなか進まない。 一方で、anaconda等を使用してconda install cv2等とするとffmpegがインストールされないため、imshow等の一部の関数が動作しない。よって、今回…

Jetson TX1,TX2のtegrastatsの各項目の意味とグラフ表示

tegrastatsの各項目の意味 Jetson TX1,TX2において、ホームディレクトリにある以下のtegrastatsというスクリプトを実行することで、TX1,2の現在のステータスを確認することができる。 $ sudo ~/tegrastats RAM 1374/3995MB (lfb 1x4MB) cpu [0%,0%,0%,0%]@17…

pythonを使って、ether(LAN)経由で測域センサURGのデータを取得する方法(ROS不使用)

概要 シンプルなプログラムを動かしたいとき一々ROSに頼るのは面倒。よって、ROSを使わなくともURGデータを読み込めるようにした。 ネットを探してもシリアル通信を使ったデータ取得ライブラリばかりでetherを使ったライブラリが殆ど無い。 ようやく見つけて…

anacondaを使ってubuntu16.04にchainer, openCVを導入する

導入のきっかけ これまでpyenv,python2.7を使って開発を行っていたが、python3系が必須のライブラリを使用する必要があり、anacondaに乗り換え。 使ってみると、複数のpython環境を乗り換えることができ、pyenvよりも便利かも。 他でもいろいろ書かれている…

nvidiaドライバを入れたubuntuにVNC接続する際に一部のプログラムが起動しない(segmentation fault)場合の解決策

概要 タイトルのとおり、nvidiaドライバを入れたubuntuサーバーに対して、VNC接続をすると、一部のプログラムが起動しない問題が発生したので、原因とその解決方法を記載する。 環境 Ubuntu16.04(サーバー側) vncにてmateのdesktop環境を使用しログイン chai…

ubuntu16.04でkubuntuをインストールしようとするとエラーが出る→その後の対処法

kubuntuの導入失敗 unityから脱却しようかと思い、ubuntu16.04にkubuntuを入れようとしてみた。 ネットで調べると、 $ sudo apt-get install kubuntu-desktopとすれば一発でインストールできるとの事だったので実行してみると途中までうまく行き・・・・ con…

cv2で動画読み込み時にerror: (-215) size.width>0 && size.height>0というエラーが出る場合の対処法(Windows)

概要 ネット上でよく見るWindowsへのcv2導入方法に従ってcv2を導入すると、動画読み込み時(cv2.videoCapture()使用時)に"error: (-215) size.width>0 && size.height>0"というエラーが出てくる。 これはffmpegのDLLがないため、動画が開けずに出てくるエラー…

sshfs中に通信が切れた場合の対処法

sshfsの問題点 機械学習を行う際、基本的に自宅サーバーのフォルダをsshfsでマウントして、作業を行っている。www.robotech-note.com しかし、アンマウントを忘れて通信を切断、スリープしてしまうとマウントポイントが残ったままとなり、以降このディレクト…

linux screen中にマウスホイールでスクロールする方法

sshが切れても学習が継続できるよう、最近はscreenを使って学習をすすめることが多い。 携帯からでも気軽に途中経過見えるし。 しかし、screenの画面はスクロール等が実行できず、過去のログを閲覧することができない。www.robotech-note.com困って検索した…

cv2(openCV)で動画の途中から再生する方法

概要 openCVで動画の任意の地点から再生を開始する方法をまとめる。 これまではwhileループで1フレームずつ取得し読み飛ばしていた。しかし、この方法はあまりにも無駄が多い・・・時間もかかるし、HDDにも悪影響が出そう。 ということで、もう少し効率の良…