今回レビューするのは
前評判で敷居が高すぎるとされていた
「インテル(R) Joule(TM) 570x 開発キット」 です。
インテルさんが出している小型の組み込み向け開発ボードなのですが
過去にも
GalileoやEdison等が出ています。
実は私はraspberry pi 3ぐらいは持ってはいるものの
この手のものは全く触ったことがありません。
全くの素人の私にどこまで扱えるのか。。
きっとそういう枠として頑張れということだと思いますので
色々と頑張っていきたいと思います!
細かいハードの仕様等はもっと詳しい方がやってらっしゃると思いますので
私なりの超初心者、素人視点から
色々と試行錯誤、レビューをしていきたいと思います!
-----
やはりみなさん画像処理が多いようですね。
Real Sense等あれば手軽だったのですが、
試しに色々やってみようと思ったところちょっと無理がありました。。
私は音声認識の方をアプローチしてみたいと思います!
レビュー環境
今回レビューにあたり開発・セットアップ用の母艦は
未だに現役(中身はだいぶ変わっていますが笑)の
G-Tuneを使わせていただきました。
その他には
Logicoolさんの
Logicool HD Webcam C525(カメラ)
エレコムさんの
U3H-A408SBK(USB3.0ハブ)
JBLさんの
JBL PEBBLES(USB DAC スピーカー)
を使って色々試しております。
上記アイテムに関しましては今後レビュー、追記出来ればと思います。。
全体的に敷居が高すぎるので苦戦しました
まず、あまりにもコアすぎるのか?
情報がほぼ皆無でした。
最初はUWPで開発できるということで
何の考えも無しにWindows 10 IoT Coreを導入したのですが
私の技術、知識では何も出来なさすぎる。。
そもそもWindows 10 IoT Coreが想像していたのと違いすぎました。
そして、音声周りで日本語が全く使えないみたいで
音声認識も使い物になりませんでした。。
これは完全に想定外でした。
それならやはりLinux?
上記の通りWindows 10 IoT Coreでは話にならないという結論に至るまで
5日ほどかかりました。。
そこでやはりLinuxでいった方がいいかもしれないと思い
またLinuxを入れなおすことに。。
何やら色々あるみたいですが、
とりあえず公式で推奨?している
OstroOS?が良さそうですね。
Ostro導入の際のメモ
技術的な部分を書くと量もすごいし面白くないので
基本的には書かないつもりなのですが、
ここはメモとして書いておきます。
まず、使うOSはOstroというやつみたいです。
Creating a bootable device (manual process)
ここに辿り着くのが難しいという。。
流れとしては
ostro-xt-image-swupd-intel-corei7-64.dsk.xz
これをダウンロード
Win32DiskImager-0.9.5-install.exe
をインストール
後はUSBに展開すればOKです。
MicroSDでやったところ何度やってもうまくいかなかったのですが
USBにしたら一発でブートしました。
後はWi-Fiを有効化して接続
ーーーーーーーーーーー
connmanctl
enable wifi
scan wifi
services
agent on
connect WIFI_ACCESSPOINT
ーーーーーーーーーーー
WIFI_ACCESSPOINTに関しては
上のservicesで出てきた一覧の
自分がアクセスするポイントの
wifi_xxxxxxx_managed_psk
ってやつを打てば大丈夫です。
Ostroも全然機能が無い...?
無事Ostroも入れられて起動確認できたのですが
なんとこちらもほとんど何も出来ない。。
apt-getやyum等パッケージを簡単に入れられる環境が無かったです。
素人の私にはこれはきつい。。
ということで更に断念。
フォーラムの方を見ていると一つの光が。。!
どうやらUbuntuが動くようです。。!
フォーラムを見ていると、
UbuntuをJouleで動かすことが出来たという報告があがっていました。
非公式とはいえ、これだけ色々な環境を動かせるというのは便利で助かりますね!
まずLiveUSBを使って試用版を起動したうえで
eMMCのパーティションを全て削除して
新規インストールする感じでした。
細かい手順を確認しながら導入して。。
(直撮りで申し訳ありません)
無事起動しました!
若干操作にもたつく時もありますが
基本的には問題なく動いています!
Ubuntu Core等ではなくフルバージョンのUbuntu16.04です。
これが動くのは結構驚きですね。。
これも今回ハイパワー路線にしたJouleならではかと思います。
これならOpenCVで画像認識できるかも!と思って
一生懸命構築始めたのですが、
ストレージが16GBしか無かったので途中で尽きました。。笑
流石に無理があったようです。
Juliusで音声認識、家電制御!
OpenCVは無理でも音声認識ぐらいならいけるか。。?ということで
Juliusというソフトウェアを用いて音声認識を試してみたいと思います。
Juliusとは
Juliusはフリーの高性能音声認識ソフトウェアです.
数万語の語彙を対象とした文章発声の認識を行う能力を持ちます.
Juliusは高速な音声認識を一般的なスペックのPC上で実現します.
認識率は,20,000語彙の読み上げ音声で90%以上です.
とのことです。
Linux、Windows、Macのすべての環境でサポートされています。
上記の容量不足の関係でMicroSDを追加してそっちでmakeしようとしたら
パーミッション云々等の問題で
全然makeがうまくいかなくて時間がかかってしまいました。。
結局makeはメインのドライブでやらなければだめなのですね。。
この辺の細かい手順は今後また追記していければと思います!(需要があれば
今回Juliusとさらに
OpenJTalkというソフトウェアも使わせていただきました。
OpenJTalkとは
Open JTalk は、修正BSDライセンスの元で配布されている
日本語テキスト音声合成システムです。
Open JTalk は、オープンソースの形態素解析エンジンの
MeCab(和布蕪、めかぶ)、奈良先端大学を中心にして開発された
形態素解析用辞書の naist-jdic、隠れマルコフモデル(HMM)に基づく
音声合成エンジン hts_engine を用いています。
なんだか難しいですね。。
あらゆるすごい技術を組み合わせて
入力されたテキストに対して語彙解析等を行い
音声合成を行ってしゃべってくれるすごいものです!
簡単に合成音声が扱えます。
これはJuliusで入力された音声を解析しているところです。
この入力された言葉に対して
アクションを起こすようにしてあります。
現在は「はいじゅるちゃん」でJouleを起こして
続いて一定時間以内にコマンドを言うとそれを実行するように実装しています。
画面を見るとわかるのですが、
うちの娘のことを「ぼんちゃん」と呼んでいて
それが「じゅるちゃん」と誤認識して動いてしまうのですよね。。
キーワードを変えないと厳しいかもです笑
先日リリースされたVisual Studio 2017RCを早速使って
こんな感じに書いています。
OpenJTalkがなかなか可愛い声でしゃべってくれるので
よぉおおとかにすると愛嬌があって良いですw
実際に電気やテレビを
IRKITを経由して操作できるところまで開発してあります。
これは完全に動画で撮らないと伝わらないのですが
お部屋のお片付け等色々準備しないと厳しいですね。。
後日追記していきたいと思います!
やっぱりOpenCVは使いたいっ!
ソースからコンパイルすると容量が足りないので
apt-getで直接インストールして何とか出来ないかと調べたところ、
python-opencvなるものがあるのを発見!
これを使えばいけそう?
apt-get install libopencv-dev
apt-get install python-numpy
apt-get install python-opencv
これで準備は完了らしい。。
実際に後ほどカメラ映像を表示してみたいと思います!
python-openCVでカメラ映像を表示
簡単なサンプルプログラムを書いてみました。
#!/usr/bin/python
import cv2.cv as cv
import time
cv.NamedWindow("JouleCamera", 1)
capture = cv.CaptureFromCAM(0)
# 画像サイズの指定
cv.SetCaptureProperty(capture,cv.CV_CAP_PROP_FRAME_WIDTH,640)
cv.SetCaptureProperty(capture,cv.CV_CAP_PROP_FRAME_HEIGHT,480)
while True:
img = cv.QueryFrame(capture)
cv.ShowImage("JouleCamera", img)
if cv.WaitKey(10) > 0:
break
cv.DestroyAllWindows()
これでとりあえず画面にカメラ映像が出力されました!
表示だけなら簡単でしたね。。
cv2.SIFTが使えない。。
どうやらpython-opencv 2.4では使えないっぽいですね。。
調べるとopencv3をオプション付けてビルドしろとか。。
残り5.3GBしかないので絶対容量足りないんですよね。
何かいい方法は無いのだろうか。。
Anacondaを使ってOpenCV3をインストール
Anacondaを使えばcontrib入りのOpenCV3がインストールできそうです。
https://www.continuum.io/downloads
ここから64bit用のAnacondaをダウンロード
chmodしてから
./Anaconda3-4.2.0-Linux-x86_64.sh
途中聞かれるのは全部Yesで大丈夫だと思います。
(インストール先のパスはデフォで)
その後パスを通す必要があるので
echo 'export PATH=/root/anaconda3/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
これでcondaが使えます。
そしたら
conda install --channel https://conda.anaconda.org/menpo opencv3
これでインストール完了!
使えるようになると思います。
しかしOpenCV2から3で色々と変わっているようで
コードが別の場所で動かなくなってしまった。。
うーむ、色々と難しいです。。
Python+OpenCV3で画像認識
本当に2.4から3でかなり中身変わったようですね。。
とりあえず一通り書き終わってテスト出来ました!
顔を認識するだけなら簡単なのですが、
今回は画像を一枚指定(自分の顔)して
カメラにそれが映ったら処理するようにしてみました。
SURFでやっているのですが、
中々いい感じです。
ただ、動作は流石に重いですね。。
ORBにすると処理は早いのですが
うまく認識してくれない上に映像の色がおかしい。。
音声認識で家電を操作!
色々とやってきましたが、
これでひとまず完成とさせていただきます。
上の方でやったJuliusとOpenJTalk、そしてIRKITを組み合わせた
音声での家電操作です。
照明とテレビを操作しました。
これはなんか未来感ありますっ!
このぐらいなら簡単に構築できますね。
実際は認識間違いの少ないように
どの言葉をトリガーにするかでめちゃくちゃ悩みましたが。。
[まとめ]まだまだ課題は色々ありますが、非常に楽しい製品でした!
基本的に組み込み向けなので用途が限定され
一般ユーザーが使うものではないので情報がほとんど無かったり
まだソフトウェア面が全然整っていなかったり
課題がかなり多い製品でしたが、
ハードウェアのスペックの高さにより
工夫次第でかなりのことが出来そうな感じでした!
実際、画像認識や音声認識をさせることが出来たので
本当にすごいポテンシャルを秘めていると思います。
今後もちょこちょこ思いついたことがあったら試していきたいと思います!
yosyos888さん
2016/11/19
音声とは良いところに目をつけられましたね。
でも顔認識も音声認識も音声合成も、RealSenseで全部できると思ったのに...
音の入出力はどんな感じで実現しているのですか?
入力はカメラ、出力はUSB DACなのでしょうか?
でもOstroだとALSAも入ってないし、道は遠いのかもしれませんね。
臥栩さん
2016/11/19
お疲れ様です。
早速コメントありがとうございます!
消去法で音声しか出来なかったのですが、
結果的に被らなくて良かったです。。
本文でも触れていますがOstroもWindows IoT Coreも
想像していたのに比べて何も出来なすぎですよね。。
そうなのです、本当は私も画像認識やりたかったのでカメラ調達したのですが
現状ではただのマイクになってしまっております。。w
カメラのマイクから入力して
Juliusで解析、コマンド実行
実行結果をOpenJTalkで音声合成してUSB DACから出力しています。
ALSAが扱えないの厄介ですよね。。
ラズパイとかと同様oss?で認識させる必要があるのでしょうか。。
(この辺あまり詳しくなくて今回も悩みました。。w)
推奨環境ではないのでリスクはありますが、
個人的にはUbuntuに移っちゃうのがおすすめです!
ストレージの容量が少ないのを除けば想像以上に動いてくれるのでびっくりしました。
yosyos888さん
2016/11/19
日程感が嫌がらせのようですがw
臥栩さん
2016/11/19
そして案の定探そうと思っても辿り着くのが難しい。。
このタイミングで出せれても。。
これレビューのスケジュール感ってIntelが決めてるんじゃないんですかねw
最初から用意しといてくれればもっと楽だったのに。。
Ubuntu CoreってIoT用でやっぱり色々機能制限とかあったりするのでしょうか?
sorrowさん
2016/11/21
臥栩さん
2016/11/21
お疲れ様ですっ!
おお、あれってIntel従業員の情報リーク?だったんですねw
詳しく見ていなかったので知らなかったです。。
結局Intel的にはどれを使って欲しいんでしょうね。
そもそも製品の方向性すらこちらに委ねられた感じですよね。。笑
yosyos888さん
2016/12/06
色々参考にさせていただきました。ありがとうごさいました。
私の方は、まだ開発途中なので、まだまだ荊の道が続きそうです。
ZR300のレビューやりたいですね。
臥栩さん
2016/12/06
まだもう少し色々やりたいことはあるのですが、中々時間がとれないのでひとまずこれで完成にしました。
ほぼソフトウェアの紹介と実装になってしまいましたが、何かしら参考になれば嬉しいです!
yosyos888さんのも楽しみにチラチラ見に行かせていただいています!笑
ZR300は是非試してみたいですね。
OpenCVでもなんとか動いたけどかなり重かったので。。
zigsowさんやらせてくれないかなぁ。。←