CANDY-RED にOpenCvインストールエラー


#1

candy-redにopencvをインストールしたいのですが
以下のようなエラーで困っていました
解決策があればご教授よろしくお願いします
作業環境ですが
2017-11-29-raspbian-stretch.zip で
$curl -sL https://git.io/v7bXx | sudo BOOT_APN=lte-d.ocn.ne.jp ENABLE_WATCHDOG=1 CANDY_RED_BIND_IPV4_ADDR=true bash
にてCANDY-REDをインストール (VER0.17.5)
ーーーーーーーーーーーーーーーーーーーーー
$sudo apt-get install libopencv-dev
$ cd /opt/candy-red/.node-red/
$npm install node-red-contrib-opencv
ーーーーーーーーーーーーーーーーーー

npm ERR! Linux 4.9.35-v7+
npm ERR! argv “/usr/bin/node” “/usr/bin/npm” “install” "node-red-contrib-opencv"
npm ERR! node v6.12.3
npm ERR! npm v3.10.10
npm ERR! path /opt/candy-red/.node-red/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access

npm ERR! Error: EACCES: permission denied, access '/opt/candy-red/.node-red/node_modules’
npm ERR! at Error (native)
npm ERR! { Error: EACCES: permission denied, access '/opt/candy-red/.node-red/node_modules’
npm ERR! at Error (native)
npm ERR! errno: -13,
npm ERR! code: ‘EACCES’,
npm ERR! syscall: ‘access’,
npm ERR! path: ‘/opt/candy-red/.node-red/node_modules’ }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Linux 4.9.35-v7+
npm ERR! argv “/usr/bin/node” “/usr/bin/npm” “install” "node-red-contrib-opencv"
npm ERR! node v6.12.3
npm ERR! npm v3.10.10
npm ERR! path npm-debug.log.4175160879
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall open

npm ERR! Error: EACCES: permission denied, open 'npm-debug.log.4175160879’
npm ERR! at Error (native)
npm ERR! { Error: EACCES: permission denied, open 'npm-debug.log.4175160879’
npm ERR! at Error (native)
npm ERR! errno: -13,
npm ERR! code: ‘EACCES’,
npm ERR! syscall: ‘open’,
npm ERR! path: ‘npm-debug.log.4175160879’ }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR! /opt/candy-red/.node-red/npm-debug.log


#2

ご入力いただいたコマンドですが、npmコマンドについては、apt-get同様にsudoが必要となります。

$ cd /opt/candy-red/.node-red/
$npm install node-red-contrib-opencv

以下のようにsudoを先頭につけてお試しいただけますか。

$ sudo npm install node-red-contrib-opencv

あるいは別の方法として、apt-getを実行した後に、CANDY RED上のManage paletteメニューからブラウザー上でインストールすることも可能です。


#3

返信ありがとうございます
sudo と Manage palette 試しましたが
やはり下記エラーでインストールできませんでした。
CANDY-PI-LITE と関係ない話題で申し訳ありませんが
何か他に考えられる対策ありましたらご教授よろしくお願いします。

pi@raspberrypi:/opt/candy-red/.node-red $ sudo npm install node-red-contrib-opencv
ーーーーーーーーーーーーーーーーーー
省略
npm ERR! argv “/usr/bin/node” “/usr/bin/npm” “install” "node-red-contrib-opencv"
npm ERR! node v6.12.3
npm ERR! npm v3.10.10
npm ERR! code ELIFECYCLE

npm ERR! opencv@6.0.0 install: node-pre-gyp install --fallback-to-build
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the opencv@6.0.0 install script ‘node-pre-gyp install --fallback-to-build’.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the opencv package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-pre-gyp install --fallback-to-build
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs opencv
npm ERR! Or if that isn’t available, you can get their info via:
npm ERR! npm owner ls opencv
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR! /opt/candy-red/.node-red/npm-debug.log
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
■npm-debug.log内容

pi@raspberrypi:/opt/candy-red/.node-red $ cat /opt/candy-red/.node-red/npm-debug.log
ーーーーーーーーーーーーーーーーーーーーーーー
省略
lib/utils/spawn.js:40:14)
16752 verbose stack at emitTwo (events.js:106:13)
16752 verbose stack at ChildProcess.emit (events.js:191:7)
16752 verbose stack at maybeClose (internal/child_process.js:920:16)
16752 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:230:5)
16753 verbose pkgid opencv@6.0.0
16754 verbose cwd /opt/candy-red/.node-red
16755 error Linux 4.9.35-v7+
16756 error argv “/usr/bin/node” “/usr/bin/npm” “install” “–save” “–save-prefix=”~"" “–production” "node-red-contrib-opencv@0.1.2"
16757 error node v6.12.3
16758 error npm v3.10.10
16759 error code ELIFECYCLE
16760 error opencv@6.0.0 install: node-pre-gyp install --fallback-to-build
16760 error Exit status 1
16761 error Failed at the opencv@6.0.0 install script ‘node-pre-gyp install --fallback-to-build’.
16761 error Make sure you have the latest version of node.js and npm installed.
16761 error If you do, this is most likely a problem with the opencv package,
16761 error not with npm itself.
16761 error Tell the author that this fails on your system:
16761 error node-pre-gyp install --fallback-to-build
16761 error You can get information on how to open an issue for this project with:
16761 error npm bugs opencv
16761 error Or if that isn’t available, you can get their info via:
16761 error npm owner ls opencv
16761 error There is likely additional logging output above.
16762 verbose exit [ 1, true ]


#4

失礼いたしました。このパッケージは、ルートユーザーが所有するフォルダーへのファイルのコピーなどを行うため、--unsafe-permも必要となるようです。
また、CANDY Pi Liteサービスが起動していると、LTEや3G経由でのインストールが実施されますので、パッケージインストール時にLANなどをお使いの場合は、サービスを停止してください。

まとめますと、コマンドラインでの手順としては以下のような形になります。

# CANDY Pi Liteサービスの停止(LANなどをお使いの場合のみ)
$ sudo systemctl stop candy-pi-lite
# 依存ソフトウェアのインストール
$ sudo apt-get install libopencv-dev
$ cd /opt/candy-red/.node-red/
# 特権ユーザーでルートユーザーのUID/GIDを使用するオプションを指定してインストール
$ sudo npm install --unsafe-perm node-red-contrib-opencv
# 必要があればCANDY Pi Liteサービスを再起動
$ sudo systemctl start candy-pi-lite

また、「Manage palette」でインストールできなかったとのことですが、こちらでは成功することを確認しています。ただインストールには5分ほどかかっているようですので、だいぶお待ちいただく必要がございます。

なお、CANDY Pi Liteの利用ガイドの内容も上記オプション--unsafe-permをお使いいただくように内容を変更しました。

https://candy-line.gitbooks.io/candy-pi-lite/content/setup/candy-red.html

再度お試しください。


#5

返信ありがとうございました。
–unsafe-perm で無事インストールできました。

Manage paletteではこちらのネットワーク環境の関係なのか
途中で中断されてしまい成功しませんでした
$ sudo systemctl stop candy-pi-lite
の後 RaspberryPiはwifiルータ経由でインターネットにアクセスしてるのですが
通信が不安定になることがあり こちらの環境なのかもしれません

コマンドラインでインストールできたので助かりました。

それと USB拡張ボート からUSBケーブルでPCにつなぎ
teraTermなどで接続は可能でしょうか?

よろしくお願いいたします


#6

USB拡張ボードのUSBアダプターからUSBケーブル経由でRaspberry Piのシリアルコンソールへ接続することは残念ながらできません。これは、USB拡張ボードのUSBアダプターはRaspberry Piではなく通信モジュールへ接続されているためです。

このため、TeraTermなどでRaspberry Piのシリアルコンソールをご利用になる場合は、Raspberry Pi標準のUART経由で接続してください。 FTDI USB・シリアル変換ケーブル(3.3V)などを利用し、GPIOピンに直接差し込みますと接続可能です。

具体的な方法はすでにWeb上でいくつか紹介されておりますので、「RaspberryPi シリアル接続」の検索結果をご覧ください(リンク先が検索結果です)。


#7

お世話になっております

以前opencvインストールエラーについて質問したのですが再度質問お願いします

RaspberryPi3にて
image_2018-02-20-candy-pi-lite-raspbian-lite-en_US.zip
のCANDY-REDで opencvとcamerapi ノードを追加したいのですが
下記内容でインストールしてもエラーで動作しなくなります

$sudo systemctl stop candy-pi-lite
$sudo systemctl stop candy-red
$ cd /opt/candy-red/.node-red/
$sudo apt-get update
$sudo apt-get install libopencv-dev
$sudo npm --unsafe-perm -g install node-red-contrib-camerapi
$sudo npm --unsafe-perm -g install node-red-contrib-opencv

エラー
npm WARN In opencv@6.0.0 replacing bundled version of node-pre-gyp with node-pre-gyp@0.6.39

また CANDY-REDでノードは追加されいるようですが

【Flows stopped due to missing node types. Check logs for details.】 のメッセージが出て動作しませんでした、ログの場所もわからず原因不明で困っていました

なにか原因わかりましたらよろしくお願いいたします

参考に試したいフローを記載します
[{“id”:“9bbca692.7c30c8”,“type”:“inject”,“z”:“8dbb53ad.e1e3e”,“name”:"",“topic”:"",“payload”:"",“payloadType”:“date”,“repeat”:"",“crontab”:"",“once”:true,“x”:150,“y”:100,“wires”:[[“85e0ce73.b320a”]]},{“id”:“85e0ce73.b320a”,“type”:“camerapi-takephoto”,“z”:“8dbb53ad.e1e3e”,“filemode”:“0”,“filename”:"",“filedefpath”:“1”,“filepath”:"",“fileformat”:“jpeg”,“resolution”:“1”,“rotation”:“0”,“fliph”:“0”,“flipv”:“0”,“brightness”:“50”,“contrast”:“0”,“sharpness”:“0”,“imageeffect”:“none”,“name”:"",“x”:370,“y”:100,“wires”:[[“3806b17f.a6069e”]]},{“id”:“3806b17f.a6069e”,“type”:“opencv”,“z”:“8dbb53ad.e1e3e”,“detect”:“FACE_CASCADE”,“output”:“json”,“name”:"",“x”:380,“y”:180,“wires”:[[“85e0ce73.b320a”,“84d78815.8ca768”,“4a23f14b.11112”]]},{“id”:“84d78815.8ca768”,“type”:“switch”,“z”:“8dbb53ad.e1e3e”,“name”:"",“property”:“payload.0”,“propertyType”:“msg”,“rules”:[{“t”:“nnull”}],“checkall”:“true”,“outputs”:1,“x”:530,“y”:180,“wires”:[[“36ad9271.0e9b9e”]]},{“id”:“36ad9271.0e9b9e”,“type”:“tjbot-wave”,“z”:“8dbb53ad.e1e3e”,“botId”:“7c6618c8.23e1e8”,“motion”:“wave”,“name”:"",“x”:650,“y”:180,“wires”:[]},{“id”:“4a23f14b.11112”,“type”:“debug”,“z”:“8dbb53ad.e1e3e”,“name”:"",“active”:true,“console”:“false”,“complete”:“false”,“x”:550,“y”:240,“wires”:[]},{“id”:“7c6618c8.23e1e8”,“type”:“tjbot-config”,“z”:"",“botGender”:“male”,“name”:"",“listen”:“ja-JP”,“speak”:“ja-JP”,“hasServo”:true,“hasLED”:true,“hasSpeaker”:true,“hasMicrophone”:true,“hasCamera”:true,“speakerDeviceId”:“plughw:0,0”}]


#8

-gを指定すると、ノードが意図しない場所にインストールされてしまうため、CANDY REDが正しくノードを取り込めません。このため、-ginstallを組み合わせないようにしてみてください。
今回はすでにインストールしてしまっているため、アンインストールしてからインストールしてみてください。

$sudo systemctl stop candy-pi-lite
$sudo systemctl stop candy-red
#アンインストール
$sudo npm --unsafe-perm -g uninstall node-red-contrib-camerapi
$sudo npm --unsafe-perm -g uninstall node-red-contrib-opencv
#-gをとってインストール
$cd /opt/candy-red/.node-red/
$sudo npm --unsafe-perm install node-red-contrib-camerapi
$sudo npm --unsafe-perm install node-red-contrib-opencv
$sudo systemctl start candy-red

なお、npm WARNのエラーは、node-pre-gypのバージョンを置き換えたというだけのメッセージですので直接問題を引き起こすものではありません。無視していただいて大丈夫です。

別件ですでに私もnode-red-contrib-opencvを入れてみていますが、うまくインストールできていますので、上記方法でお試しください。


#9

-gオプション外して インストールから試したのですが
状況変わらず
CANDY-REDで【Flows stopped due to missing node types. Check logs for details.】
のエラーメッセージが出て動作しないようです。
また -gオプション無しで実施すると npm WARNのエラーも増えてしまいました

原因わかりましたらよろしくお願いいたします

open-cvを入れたcandy-redのOSイメージのアップロードが可能でしたら
いただきたいのですが可能でしょうか?
よろしくお願いします

以下 実施コマンド と エラーメッセージ

$sudo systemctl stop candy-pi-lite
$sudo systemctl stop candy-red
$ cd /opt/candy-red/.node-red/
$sudo apt-get update
$sudo apt-get install libopencv-dev
$sudo npm --unsafe-perm install node-red-contrib-camerapi

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: xpc-connection@~0.1.4 (node_modules/node-red-contrib-generic-ble/node_modules/noble/node_modules/xpc-connection):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for xpc-connection@0.1.4: wanted {“os”:“darwin”,“arch”:“any”} (current: {“os”:“linux”,“arch”:“arm”})
npm WARN node-red-project@0.0.1 No repository field.
npm WARN node-red-project@0.0.1 No license field.

$sudo npm --unsafe-perm install node-red-contrib-opencv

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: xpc-connection@~0.1.4 (node_modules/node-red-contrib-generic-ble/node_modules/noble/node_modules/xpc-connection):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for xpc-connection@0.1.4: wanted {“os”:“darwin”,“arch”:“any”} (current: {“os”:“linux”,“arch”:“arm”})
npm WARN node-red-project@0.0.1 No repository field.
npm WARN node-red-project@0.0.1 No license field.
npm WARN In opencv@6.0.0 replacing bundled version of node-pre-gyp with node-pre-gyp@0.6.39


#10

上記の結果ですが、エラーではないのでインストールが正しくできています。このため、CANDY REDのエラーは別の原因となります。

CANDY REDのスクリーンショットを撮っていただけますか?オレンジ色の点線で囲われたノードがあると思いますが、それがインストールされていないノード(missing node type)です。

Node-REDでは、見つからないノードがある場合は、どういう名前のノードが見つからないかを表示していますので、そのノードの名前を探して追加でインストールしていただければと思います。


#11

こちらで確認できますでしょうか?


#12

ありがとうございます。一見点線のノードは画面には出ておりませんね。削除されましたか?
削除されるとエラーは消えるはずですが、まだ出ていますのでまだ隠れているノードがあります。
そのような見えないところで定義されているものとして考えられるものは「Configノード」となります。これを見つけるには、「三」のメニューから「Configuration nodes」を選択してください。
すると右側のタブにフローで使っている「Configノード」が出て来ます。
おそらくこの中に、「見つからないノード」が隠れていると思いますので、ノードをインストールするか、削除してしまえばエラーは無くなると思います。
お試しください。


#13

Configノード勉強になります
削除してエラーメッセージは消えましたが

Opencvにて 新たにエラーが出てしまいました
何度もすみませんがよろしくお願いします

Error: /build/opencv-U1UwfN/opencv-2.4.9.1+dfsg1/modules/core/src/array.cpp:2482: error: (-206) Unrecognized or unsupported array type in function cvGetMat


#14

一つご確認いただきたいのですが、以下のコマンドで上記エラーが出た時のログを見ていただけますか。

$ sudo journalctl -f -u candy-red -o cat

結果として表示されるメッセージに「picamera」が見つからないのようなエラーが出ているかもしれません。その場合は、以下のコマンドでソフトウェアをインストールしてみてください。

$ sudo apt-get install python-picamera

また、raspi-configでカメラを有効にしていますでしょうか?ご確認いただき、Enabledの状態にしておいてください。

全てセットアップができましたら再起動してもう一度動かしてみて頂ければと思います。

なお、python-picameraについては、今後のOSイメージで追加しますので、次のリリースのOSイメージからはソフトウェアのインストールは不要です(カメラは都度有効にしていただく必要はございます)。


#15

$sudo apt-get install python-picamera で解決しました

これで次の開発に移行できます
ありがとうございました