Android 11 にアップデートしたら、ストレージアクセスが複雑になった。
ZIP展開して内部ストレージに保存する方法を記載します。
環境
Windows 11 Home 21H2
SDK Version API 30: Android 11.0 (R)
手順プロジェクト作成Empty Activity で試す。
API 30: Android 11.0 (R) を選択
ボタン設定イベント発火用のボタンを付ける。
onClickイベントを設定する。
クリックイベントMainActivity.java に クリックイベント を設定する。
1234567public void btnClick(View view) { Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("application/zip"); intent.putExt...
TensorFlowで独自の物体検出 (Object detection) モデルを作ります。
出来上がるまで1ヶ月ほど掛かりました。ホントエラーの連続で大変だった。
今回はポケGOのポケストップを検出するモデルを作って行きます。
最終目標はAndroidで動かすこと!
環境
Windows 11 Home 21H2
Docker 20.10.12
TensorFlow 1.15.2
Python 3.6.9
LabelImg 1.8.1
準備作業用フォルダー作成機械学習させるうえで、たくさんのファイルが必要になります。
手に負えなくなる前にファイルを振り分けていきます。
今回は「📂pokego」という作業用フォルダーを作成し、必要なフォルダーを数個作成しました。
ここまでのフォルダー構成12345678910📂pokego ┣📂Data ┃ ┗📂JPEGImages ┣📂OutputModel ┣📂SaveModel ┗📂VOC2012 ┣📂Annotations ┗📂ImageSets ┗📂Main
Dockerコンテナの作成公式のDo...
次の方法を用いて、Dockerコンテナ内からローカルファイルにアクセスすることができます。
環境
Windows 11 Home
Docker Desktop
手順適当なイメージを用意します。今回は公式のPythonイメージを使ってみます。
1docker pull python
まず普通にコンテナを実行して、ファイル一覧を見てみます。
1docker run -it python /bin/bash
バインドマウントしてないので、何も変わり無いファイル構成をしています。
バインドマウント続いてローカルフォルダーをバインドマウントして、コンテナー起動してみます。
1docker run -v D:\tensorflow\source:/source -it python /bin/bash
指定したフォルダーが追加されていることが分かります。
もちろん、そのままマウントされたディレクトリに入って、中のファイルを実行することもできます。
おわりにこれでまた、Dockerが使いやすくなったと思います。
参考https://matsuand.github.io/docs...
TensorFlow 2によるオブジェクト検出API を試すため、Dockerビルドをしたところエラーに悩まされた。
エラー内容12345678910111213141516171819202122232425262728293031323334353637383940PS D:\tensorflow\models> docker build -f research/object_detection/dockerfiles/tf2/Dockerfile -t od .[+] Building 33.5s (7/16) => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 1.39kB ...
を紹介するんですが、残念なお知らせです。
ホントは、Visual Studio のデバッグ実行で、出力ウインドウにログを出したかったんですが出来ませんでした。代替案としてログファイル出力の紹介となります。
供養記事ですね。
環境
Windows 11 Home 21H2
Visual Studio Community 2019
netcoreapp3.1
log4net 2.0.14
設定手順NuGet パッケージインストールNuGet で log4net のパッケージをインストールします。
アプリケーション構成ファイル追加ファイル名は「log4net.config」で新規ファイルを作ります。
次の設定をコピペします。
123456789101112131415161718192021222324252627<?xml version="1.0" encoding="utf-8" ?><configuration> <log4net> <appender name="LogT...
環境
Windows 11 Home 21H2 22000.613
Android Studio Bumblebee | 2021.1.1 Patch 1
API 26: Android 8.0 (Oreo)
luaj-3.0.1
準備AndroidEmpty Activity で新規プロジェクトを作成しておきます。
Lua次のページ から「luaj-3.0.1.zip」をダウンロードして展開しておきます。
手順AndroidプロジェクトにLuaを導入展開した luaj-3.0.1フォルダーの「lib」フォルダー内に「luaj-jse-3.0.1.jar」があるので、これを Androidプロジェクト の「app > libs」フォルダーにコピペします。
フォルダーにコピペすると、Android Studio の方に Luajライブラリ が表示されます。
そのまま「luaj-jse-3.0.1.jar」を右クリックし「Add As Library」を選択し、Lua を導入します。
Android から Lua実行MainActivity次のコードをコピペして...
JSONファイルをBASE64にエンコードして保存したり読み込んだりします。
暗号化までとはいきませんが、技術者じゃないと読めない形にできるので、少し重宝するかもしれません。
保存1234567891011import jsonimport base64data = {'name': 'noita', 'website': 'https://noitaro.github.io'}# BASE64で保存with open('./sample.json', mode='wb') as f: data = json.dumps(data) data = data.encode('utf-8') data = base64.b64encode(data) f.write(data)
modemode に w を設定した場合、ファイルが存在しないときは新規作成し、ファイルが存在するときは上書き保存します。
...
Cloud Functions と Firebase Functions って別物だったんですね。知りませんでした。
今回、Python で Functions を作りたかったので、Cloud Functions を使います。
Firebase Functions は JavaScript しか対応していませんでした。
環境
Windows 11 Home 21H2 22000.556
Python 3.10.1
準備Google Cloud SDKCloud Functions の開発には「Google Cloud SDK」のコマンドが必要なのでインストールします。
次のURL から Google Cloud CLI インストーラー をダウンロードします。
https://cloud.google.com/sdk/docs/install-sdk?hl=ja
ダウンロードした「GoogleCloudSDKInstaller.exe」をインストールすると開発に必要なコマンドが使えるようになります。
インストール
Google Cloud CLI Setup
「All use...
Android のカメラを使って、機械学習した物体を検出させます。
今回はサンプルを動かせるようにして、次回は自分で機械学習させたモデルで試してみたいと思います。
環境
Windows 11 Home 21H2 22000.556
Android Studio Bumblebee | 2021.1.1 Patch 1
準備サンプルプロジェクトをダウンロード、展開しておきます。
こちら からサンプルプロジェクトをダウンロード。
ダウンロードできたら展開しておきます。
手順プロジェクトの読み込みAndroid Studio でプロジェクトを読み込みます。
いろいろサンプルがありますが、今回使うサンプルは「object_detection」になります。
展開したフォルダーから次のフォルダーを辿って Androidプロジェクト を選択し開きます。
「.\examples-master\lite\examples\object_detection\android」
プロジェクトを開いた直後はいろいろダウンロードや設定が入るので、右下が落ち着くまでしばらく待ちます。
APKビルド...
LINE にメッセージを送ると、同じメッセージが返ってくる LINE BOT を作ります。
環境
Windows 11 Home 21H2 22000.556
node.js v16.13.1
firebase-tools 10.5.0
作成方法チャネルの作成LINE の BOT を作るには LINE が提供している Messaging API を使う必要があります。
Messaging API を使うためにチャネルが必要なので、まずチャネルの作成を行います。
チャネルの作成方法は 公式 が詳しく説明しているので、そちらを参考にして進めるとよいです。
https://developers.line.biz/ja/docs/messaging-api/getting-started/
できたらチャネルの「Messaging API設定」タブを開いて、QRコードから友達登録をしておきます。
チャネルアクセストークンの発行そのまま下にスクロールして、チャネルアクセストークンも発行しておきます。
発行したトークンを使うことで、メッセージが送れるようになります。
Firebase ...