最新情報

ニュース
2020-10-23 2021/1/11以降、Adobe Flash Player が利用できなくなります。同ツールを利用した弊社製品の一部画面も利用できなくなります。
2020-08-17 Accel シリーズ 2020 Summer をリリースしました。
2020-04-01 Accel シリーズ 2020 Spring をリリースしました。
2019-12-01 Accel シリーズ 2019 Winter をリリースしました。
2019-08-01 Accel シリーズ 2019 Summer をリリースしました。

CookBook
2020-12-01 BloomMakerでワークフローの添付ファイルを直接編集する画面を作成する
2020-12-01 BloomMakerでワークフローの一括代理設定画面を作成する
2020-12-01 Web API Maker を利用した API の作成方法
2020-12-01 IMBox に投稿種別を追加する方法(iframe)
2020-12-01 IM-BloomMaker 式表現で三項演算子が利用可能になりました。
2020-12-01 IM-BloomMaker 画面構成タブでテーブルの行または列を入れ替える方法
2020-11-04 SQLビルダを利用したクエリ作成例
2020-08-20 IM-BloomMaker 画面操作後に入力規則のチェックが行われるフォームの作成
2020-08-20 IM-BloomMaker フォーム部品(Bulma)のフィールド、水平フィールドの利用方法
2020-08-20 IM-BloomMaker フォーム部品(Bulma)のグループ化と結合の使い方

開発者Blog
2020-08-12 Developer Siteのデザインを一部変更しました。
2020-04-17 IM-BloomMaker でリモートワークの報告メールを送信するアプリを作ってみた
2018-06-26 「高松商店」のデジタル化事例のご紹介
2018-06-12 Resin利用時の安定運用について
2018-03-01 EWS2017 「業務への適用イメージがすぐに湧く!  魔法の業務ロジック作成ツール『IM-LogicDesigner』実用例 10本勝負!」講演内容のご紹介

デジビBlog
2020-02-27 ディープラーニング用の環境を作ってみた編【深層学習】
2020-02-20 【業務効率化】AIによるパワポ資料作成支援
2019-12-24 【IMラズパイ番外編】激アツなラズパイ4を冷却してみた
2019-12-19 ラズパイ4でIMを動かしてみた!【IM起動編】
2019-12-11 ラズパイ4でIMを動かしてみた!【Resin起動編】

* CookBook/開発者Blogは、intra-martプロダクトサポートサービスの対象外です。

投稿日:2019-12-11 更新日:

執筆者:

ディープラーニング用の環境を作ってみた編【深層学習】

こんにちは、デジビの堀内です。

いきなりですが、在庫の管理って大変じゃないですか?

物流業界の方はもちろんですが、弊社でも在庫の管理を行っています。

それは社内備品の管理です。

こういった社内備品の管理はシンプルな業務ではありますが、常に一定の備品の量を維持するのは手間です。

そこで今回は、「在庫が減ってきた場合に、画像解析をして自動で補充する仕組み」を作ってみたいと思います。

このシリーズも例によってボリュームがあるため複数回に分けて紹介しますが、今回はセットアップを行っていきます。

今回のシリーズ構成は以下のとおりです。

① ディープラーニング用の環境を作ってみた編

② 深層学習のサンプルを動かしてみた編

③ 学習用の画像データを集めた編

④ 実データで深層学習をやってみた編

⑤ 発注処理の自動化してみた編

⑥ 自動発注を実運用をしてみた編

ラズパイ4でIMで動かしてみた!【SSD起動編】

Jetson nanoとは

Jetson nano

Jetson nanoはアメリカの半導体メーカーであるNVIDIA社が製造・販売をするシングルボードコンピューターです。

NVIDIA社はゲーミング向けのグラフィックボード(GPU)を製造することで有名で、PCゲーマーの方なら一度は聞いたことのあるメーカーだと思います。

Jetson nanoはNVIDIA社の強みであるGPUを搭載することでCUDAというアーキテクチャを用いて高速な並列処理を実現していることが特徴です。

CUDAは、並列コンピューティングプラットフォームおよびプログラミングモデルであり、GPUを使用して汎用コンピューティングをシンプルかつエレガントにします。

出典元:What Is CUDA?

人工知能ブームの火付け役とも言えるディープラーニングは、膨大な量のデータを処理して、自動で特徴量を抽出する技術です。

これは単純な計算ではありますが膨大な量のデータを扱うため処理するにはもちろん処理能力と時間がかかります。

さらに、一般的なPCでは複雑な計算が得意なCPUが計算を行っていますが、CPUでは利用できるコア数が限られてしまいます。
※記事公開時点でのCPUの最大コア数:56コア(第2世代Xeonスケーラブル・プロセッサ)

そこで、GPUが活躍します。

GPUはCPUほど複雑な計算が得意ではありませんが、何千というコア数で計算ができるため、一斉にデータの単純な計算を行う機械学習ではGPUはCPUを凌ぎます。
※記事公開時点でのGPUの最大CUDAコア数:4608コア(NVIDIA TITAN RTX)

そのGPUを載せたシングルボードコンピューターがJetson nanoです。

もちろんこの小さなシングルボードコンピューターに何千コアもありませんが、128個のCUDAコアがあるため十分なパフォーマンスをしてくれると思います。

Jetson nanoのセットアップ

Jetson nanoのセットアップはNVIDIA社の公式サイトを参考に進めていきます。

Getting Started with AI on Jetson Nano
※ページの閲覧にはアカウント登録が必要です。

Jetson nanoに必要なものは以下のものです。

Jetson nanoに必要なもの

Jetson nanoのキット以外にも必要なものが数点あります。

Jetson Nanoのイメージセットアップ

まずは用意したマイクロSDカードにJetson Nano用のイメージを書き込んでいきます。

NVIDIA者の公式サイトではWindows用、Mac用、そしてLinux用のイメージ書き込み手順が紹介されていますが、ここではWindows用のものに沿ってセットアップを進めていきます。

マイクロSDカードのフォーマット

Jetson Nano用のイメージを書き込む前に、マイクロSDカードをフォーマットします。

マイクロSDカードフォーマットを行うためのソフトウエアをインストールして実行します。

ダウンロードはこちらからできます。
SD Memory Card Formatter

  1. 「カードの選択」にマイクロSDカードを指定
    SD card formatter
  2. 「フォーマットオプション」に「クイックフォーマット」を選択
  3. 「ボリュームラベル」は空欄のまま
  4. 最後に「フォーマット」を選択してフォーマットを始めます。その後のダイアログでは「Yes」を選択

以上でマイクロSDカードのフォーマットが完了です。

マイクロSDカードにイメージの書き込む

Etcherというイメージ書き込みソフトを利用して、準備ができたマイクロSDカードに書き込みを行います。

Etcherのダウンロードはこちらから
balena etcher

  1. 「Select image」からダウンロードしておいたイメージのzipファイルを選択
    Etcher1

  2. 「Select drive」をクリックして、対象のマイクロSDカードを選択します。

  3. 「Flash」をクリックして、10分ほどでマイクロSDカードにイメージが書き込まれます。
    Etcher2

  4. 書き込みが終わったらマイクロSDカードを抜きます。

以上でJetson nano用のマイクロSDの準備は終わりました。

次はさっそくJetson nanoを動かしてみます!

Jetson nanoのブート

今回はなるだけかんたんにJetson nanoを起動するために「ヘッドレス」状態で起動します。

ヘッドレスとは、対象のデバイスから映像出力をせずに起動することです。

この状態にすると、映像出力をしないことからメモリを節約でき、つないだPCからキーボードやマウスといった入力を受け付けることができるため、Jetson nanoを試すにはうってつけの機能です。

さらに、「USBデバイスモード」をONにすることで、つないだPCからネットワーク接続の必要がなくなります。

このモードですと、「192.168.55.1:8888」の固定IPアドレスからアクセスすることができるようになります。

あくまで今回は起動ができることを確認するまでなので、簡易的にJetson nanoを起動する手法を取りました。

起動セットアップ

Jetson nanoにmicroSDを差し込む

Jetson nanoにイメージを書き込んだmicroSDを差し込み...

Jetson nanoに2ピンジャンパーを差し込む

2ピンジャンパーをJ48と書かれている2ピンコネクタ部分に指します。

ACを差し込む

次にJetson nanoにACをつなぎ、緑色のLEDが点滅したら、30秒ほど待ちます。

そうしたら最後にマイクロUSBをJetson Nanoにつなぎ、USB側をPCに繋ぎます。

Jetson nanoにアクセスをする

PCからブラウザを開いて、「192.168.55.1:8888」にアクセスすると、ログインを求められますが、そこは「dlinano」と入力するとログインできます。

JupyterLab

以上でJetson nanoの準備は終わりです。

こんなに簡単に準備が終わるとは正直思っても見ませんでしたが、特に躓くところもなく簡単にセットアップができました。

次回はJetson nanoにカメラをセットアップし、サンプルを動かしてみます。

投稿日:2020-02-27 更新日:

執筆者:

【業務効率化】AIによるパワポ資料作成支援

こんにちは、デジビの関根です。

パワーポイントで資料を作る際に
どんな画像を差し込むか悩むことってありませんか?

過去に作った資料から画像を持ってきたり、
いらすとや様のようなフリー素材集から画像をいただいてきたり。

欲しい画像を見つけるために無駄な時間を使いたくないですよね。

パワーポイントのスライドに合う素敵な画像を提案してくれるAIとかないかなぁ…。

っと思い、作ってみました!

AIによるパワポ資料作成支援

まずは実際に動いているところをご覧ください。

パワーポイントのスライド内の文章をAIが解析し、
適切な画像を見つけ出してサジェストしてくれます。
※サジェストされる画像はストレージ内の画像や、
 過去に作成したパワーポイントの資料から抽出した画像になります。

AIは非同期で動いているので、
文章の体裁を整えている間に画像を検索してくれます。
検索中はハムハム(*)が猛ダッシュです。

ハムハムはフリー素材の来夢来人様より使わせていただいております。
--> リンク <--

これにより

人が文章を書き、AIが画像を提案。
あとは画像をコピーして組み合わせることで、素敵なスライドの完成です。

また、適切な画像がなく、自分で新しい画像を使用した場合は
AIに再学習させることでその画像も取り込まれます。
学習させる資料が増えるとAIもその分賢くなり、
文章に合う画像を返してくれるようになります。

技術要素を軽くご紹介

全体構成は以下のようになります。

intra-martでは、事前に既存資料から画像の抽出や、文章のベクトル化(paragraph2vec)を行っておきます。
パワーポイントのアドインにてシート内の文章を取得し、intra-martに連携します。
連携先のintra-martで、類似した画像を検索(*)、アドインに返却します。
*同じ画像は除外する等も行っています。

精度向上については、絶賛研究中となります。
利用頻度に応じて画像に重みづけを行ったり、
図形・画像を組み合わせた一枚絵をどのように認識させるか等
色々改善要素はあると考えております。

投稿日:

執筆者:

【IMラズパイ番外編】激アツなラズパイ4を冷却してみた

こんにちは、デジビの堀内です。

今回は新しく発売されたIMラズパイの番外編です。
激アツなことで有名なラズパイ4の冷却を行ってみました。

その前に簡単に消費電力と温度を測ってみます。
測定条件は以下のとおりです。

  • USB3接続バスパワーSSD込み
  • 無線はWIFIのみ有効
  • Ether接続なし
  • 前回の記事はこちら

    ラズパイ4でIMを動かしてみた!【IM起動編】

    激アツラズパイ4の消費電力

    電源投入編

    dezibiz-raspberry-pi-4-temp1
    ピークで1A強、起動後のアイドルで770mA前後です。

    Resin起動編

    dezibiz-raspberry-pi-4-temp2
    電源投入時と同様、起動プロセスが安定するまでは800mAから1A強まで変動しましたが、プロセス起動が一段落すると770mA程度で安定しました。

    電源OFF後の待機電流(USB-SSDを抜いても変化なし)


    手元がブレブレで分かりづらいですが、大体220mAぐらいでした。
    SSDがついていないラズパイ3が電源ON時の待機電流が200mAを下回り、電源OFF時の待機電流が50mA前後であることを考えるとかなりの電流食い。
    激アツになることも納得です。

    とはいえ、SSD込みのMaxで(5V×1.5A=7.5W未満、)と1.5Aは超えていません。
    旧ラズパイに比べると大食いですが、なかなかの省エネマシンであることは確かなようです。
    ARMプロセッサの性能控えめで、電力効率高めなのは、今回のCoretexA72チップでも踏襲されているみたいです。

    激アツラズパイ4の温度

    dezibiz-raspberry-pi-4-temp3
    推定アイドル時のCPU温度です。
    なかなか過負荷をかけられないのですが、とりあえずアイドル時50度を超えるくらいです。
    IOベンチマーク実施中のCPU温度は66度を記録しました。
    80度でサーマルスロットリング(熱暴走防止のため自発的にCPUが負荷を落とす機能)になるらしいんですが、IOベンチマークではそこまでCPUを追い込めないみたいです。
    60度越えですので十分危険な熱さではあります。

    1コアフル稼働で65度くらいが上限、4コア稼働(実働100%)で80度いきました。
    さすがにこのあたりで強制クロックダウン?しているみたいです。
    温度としてはうずらの温泉卵くらいは作れるかもしれません。

    さすがに4コアフル稼働は恐ろしいのでベンチマークは途中で切り上げました。
    シングルコアのスコアをみたところ、CPUベースのベンチはラズパイ3B+のちょうど2倍くらいのスコアをたたき出しているようです。

    激アツラズパイ4を冷やす

    今回使ったもの

    dezibiz-raspberry-pi-4-temp4
    今回使ったものは主にICE-Towerとグリスの2つだけです。

    冷却装置の取り付け工程

    マウンタの取り付け

    dezibiz-raspberry-pi-4-temp5
    さっそく組み立てます。
    まずマウンタのようなものを冷却塔に接続します。
    接続方向に迷いましたが、添付文書の写真を簡単にわかりました。

    マウンタに1、2と番号が振ってあるのでそれを参考に取付面からみると番号が裏になるように取り付けします。
    *しっかりと裏向けの数字も打刻してあります

    あと、ファンのケーブルをタワー本体の下をくぐらせてあらかじめ引き回しておくほうが良さそうです。

    取付金具の取り付け

    dezibiz-raspberry-pi-4-temp6
    青銅製のような「銅」製の取付金具をつけます、裏はナットで止めます。

    グリス塗り

    dezibiz-raspberry-pi-4-temp7
    あらかじめCPUクーラーのはめ込む方向を予行演習しておいて、ラズパイ4のCPU部分にグリスを塗ります。
    グリスを塗ったあとにきがつきましたが、一応熱伝導テープらしきものがついていました。
    性能気にしなければグリスはいらなかったかもしれません。

    CPUクーラーの取り付け

    dezibiz-raspberry-pi-4-temp8
    半完成品のICE-TOWERをラズパイ4に取り付けます。
    この時点でCPUとCPUクーラーがしっかりとコンタクトしていることを確認します。

    底面パネルの取り付け

    dezibiz-raspberry-pi-4-temp9
    底面パネルの保護シールをはがして、ラズパイ4の底面に取り付けました。

    完成

    dezibiz-raspberry-pi-4-temp10
    完成しました。
    写真は運転時の様子です。

    CPUクーラー取り付け後のラズパイ4

    まず、ファンを回さずにIMアイドルでCPU温度を測ってみると36度くらいで安定しました。
    取付前がアイドルで50度に達していたので、ファンレスでも14度くらい下がりました。

    ファンレスの状態でベンチマークでCPU負荷をかけてみたところ以下のような結果になりました。
    温度はダイ温度(vcgencmd measure_tempで計測)

    クーラあり クーラなし
    1コアフル稼働 45度前後 60度前後
    4コアフル稼働 51度前後 80度(サーマルスロットリング対象温度)

    ラズパイ4は標準の状態では確かに激アツでしたが、CPUクーラーを取り付けるだけで大幅に改善されました。
    今回のCPUクーラーにはファンもありましたが、ファンレスでも効果は絶大でした。

    今後ラズパイ4を使ったプロジェクトを行う場合は、CPUクーラーを使うことをおすすめします。

    投稿日:

    執筆者:

    ラズパイ4でIMを動かしてみた!【IM起動編】

    こんにちは、デジビの堀内です。

    今回は新しく発売されたラズパイ4でイントラマートを動かしてみる、という実験について紹介します。

    前回はラズパイ4上でresinを立ち上げるところまで行いました。

    ラズパイ4でIMを動かしてみた!【Resin起動編】

    今回はラズパイ4でIMを動かしてみます。

    この実験はあくまで実験であり、動作を保証するものでは有りません。

    PostgresDBを設定

    接続設定

    ラズパイ4上のPostgresのpgAdminでDB操作を行うことも可能ですが、自分のPCからのほうが操作がしやすいので、まずはネットワークからアクセスできるように設定を行います。

    postgresql.confファイルを開いてlisten_address='*'

    アスタリスクを設定することでネットワーク上であればどのホストでも接続を許可します。

    OSユーザーの設定

    次にOS側のpostgresユーザーの設定を行います。

    sudo suと入力してスーパーユーザーになります。
    スーパーユーザーでOSユーザーpostgreのパスワード設定をします。

    その後、su - postgresでpostgresユーザーにスイッチします。

    DBユーザーの設定

    OSユーザーをpostgresにしたところで、psqlを呼び出します。

    DBユーザーpostgresのパスワードを以下のコマンドで設定します。

    DBの権限設定

    /etc/postgresql/11/main/pg_hba.confにアクセスして、アクセスを許可するホストを追加します。

    postgresを再起動して設定を反映します。

    これで、(pga_hba.confで許可した)ネットワーク上の端末のpgAdminからラズパイのpostgresqlをコントロールできるようになりました。

    PostgresDBの作成

    ラズパイ4に自分のPCからアクセスできるようになったので、以降はローカルでの作業になります。

    intramartを動かすにはDBを作成する必要がありますが、1から設定するのは手間がかかるので、ローカルのデバッグサーバー上のDBを移すことにしました。

    まず、ラズパイ4上のpgにimartユーザーを作成します。

    次にownerをimartとしてiap_dbを作成します。
    (コピー元に合わせてます)

    コピー元のテナントDBのDatabaseのパックアップをpgAdminから取ります。
    その際のファイル形式はtarにしました。

    最後にこのファイルをラズパイ側のiap_dbにリストアして、以下のコマンドで一旦resinを止めます。

    IMのデプロイ

    最後にデプロイ作業を行います。

    コピー元のwar(imart.war)をラズパイのwebappsに配置して、resinを起動します。

    ラズパイでの稼働確認。

    ブラウザでアクセスしてみると…。
    dezibiz-raspberry-pi-4-9

    アクセスができました!

    ラズパイの稼働状況を確認してみます。

    ラズパイの稼働状況

    アプリ起動時のvmstat状態

    軽いアプリですがCPU負荷は10%前後でした。(アイドル時は1%程度)

    resinのヒープは固定で2G設定としていますが、4Gのメモリ中1.4G程度の空きがありました。

    あまり実用的とは言えませんが、ラズパイ4でIMを動かすことはできました。

    次回は番外編としてラズパイの処理速度と放熱について話します。

    投稿日:

    執筆者:

    ラズパイ4でIMを動かしてみた!【Resin起動編】

    こんにちは、デジビの堀内です。

    今回は新しく発売されたラズパイ4でイントラマートを動かしてみる、という実験について紹介します。

    前回はラズパイ4のセットアップを行い、SSDで起動をするところまでやりました。

    ラズパイ4でIMで動かしてみた!【SSD起動編】

    今回はラズパイ4でResinを起動してみます。

    この実験はあくまで実験であり、動作を保証するものでは有りません。

    Resinとは

    「Resin」は、オープンソースのJavaベースのWebアプリケーションサーバーです。
    弊社のシステム共通基盤である「intra-mart Accel Platform」を稼働させることができます

    今回はこのResinをラズパイ4上で起動することが目標に動作に必要なソフトを色々と入れます。

    前提ソフトの導入

    Resinの動作に必要な前提ソフトをいくつか入れます。

    まずは、Javaです。
    OracleからJDK 8公式版をダウンロードして準備していましたが、最終的にはapt-getでpenJDK8を導入しました。

    データベースも同様にapt-getでpostgreSQLを導入(バージョン11がはいりました)。
    すぐには使いませんがJDBC 4.2ドライバもついでに入れます。

    Resinの導入

    最後に肝心なResin本体の導入を行います。
    Resinのtar.gxを調達し、IMの導入ガイドにしたがって粛々と導入。

    その際に./configureでSSLが無いこと((OpenSSLはラズパイには入っているが、ヘッダ類がはいっていない)が判明したので、apt-get install libssl-devでヘッダを追加インストールしました。

    その後./configureがうまく通ったかに思えましたが、makeで失敗。
    gccで 「=m32オプションなんかないよ」とエラーが出ました。
    たしかにResinの開発元であるCauchoの公式サイトみても、ARMプロセッサでResinサポートしてるなんて書いていません。

    ここは荒技で、m32オプションをMakefileから外しました。
    こちらは動作保証外となりますのでお気をつけください。

    ResinHome直下のMakefileとビルドエラーになったソースのディレクトリのMakefileにある、=m32をすべて抹消しました。

    =m32抜きMakefileを作ったあとmake
    無事成功しました。(したようにみえる)
    make install
    こちらも無事成功しました。

    Resinの起動

    最終確認のため、Resinを起動してみます
    resin homebinに移動して
    ./resinctl start
    ...失敗。ラズパイに一般ユーザでログインしていました。気を取り直して
    sudo ./resinctl start
    dezibiz-raspberry-pi-4-7

    そして無事resinは起動しました
    dezibiz-raspberry-pi-4-8

    今回は以上です。
    次回はいよいよintra-martを動かしましょう。

    投稿日:2019-12-11 更新日:

    執筆者:

    RSSRSSRSSRSS