ひでみのアイデア帳

くだらないことなんだけど、忘れないために・・・

ちょっと前にnfs越しのbitbakeでエラーになってた件

エラーはLinux Kernelのビルドエラーで次のエラーがログに残っていた。

/build/tmp/work-shared/zybo-zynq7/kernel-source/init/version.c:9:10: fatal error: ./include/generated/compile.h: Permission denied
 #include <generated/compile.h>

generated/compile.hのファイル自体は存在するのだがパーミッションで怒られている。

このエラーはHDDが直付のPCでは発生しない。

とりあえず、メモ程度に・・・

2018年04月23日 21時46分49秒 - Permament Link

週末は技術書典4

今週末(4/22)はUDXで技術書典4が開催されますね。

今回は落選したのですが幸か不幸か落選は良かったと思っている。

自分が作っている同人誌って旬なネタを取り込んでいることが多いのですが4月というのは新しいバージョンがリリースされる時期と重なる。

今年はUbuntu、Vivado、Yocto Projectと使用している環境が全てバージョンアップされる。

Ubuntu、Yocto Projectは4/27にFinal Releaseが予定されていて、Vivadoは4/中旬が例年のリリース時期です。

Vivadoは4/9にリリースされたけど、SDSoC 2018.1がまだリリースされていない状況です。

仮に技術書典4に当選してたとして4/22に新刊をリリースするとなるとその直後に新しいバージョンの開発環境を整えることになって、新刊の内容がすぐに陳腐化してしまうんだよね。

じゃぁ、新刊のネタを用意してないのかというと、そうでもなくて、実は新刊のネタは準備しつつ、環境のFinal Release待ちってところです。

ちなみに技術書典4の非公式打上げには参加予定です。

2018年04月16日 23時08分14秒 - Permament Link

評価ボードの整理

GWに評価ボードの環境を一新すべく所持している評価ボードをまとめてみる。

ボード名 デバイス CPU 使用用途
ZedBoard Zynq-7000(7020) Cortex-A9 SDSoC評価用(標準環境評価用)
ZYBO Zynq-7000(7010) Cortex-A9 FPGA勉強会用
ZYBO-Z7 Zynq-7000(7020) Cortex-A9 SDSoC評価用(カスタムPlatform評価用)
Z-Turn Zynq-7000(7010) Cortex-A9 ちょっと、文鎮中
Z-Turn Zynq-7000(7020) Cortex-A9 ちょっと、文鎮中
LattePanda ATOM Windows10バックアップ機
BeagleBone AM335x Cortex-A8 文鎮中
BeagleBone Black Wireless OSD3358 Cortex-A8 TinyDLP評価用
NanoPi Neo 2 H5(Allwinner) Cortex-A53(Quad) 子供向けおもちゃ作成用
NanoPi Neo 2 Plus H5(Allwinner) Cortex-A53(Quad) 各種センサー評価用
NanoPi Neo 2 Plus H5(Allwinner) Cortex-A53(Quad) ミニサーバ構築用
Thinker Board RK3288(RockChip) Cortex-A17(Quad) 4Kディスプレイ用
RaspberryPi3 Model B Broadcom 機械学習勉強用
DE10-SoC Cyclone V SoC Cortex-A9 ALTERA/Intel勉強用(文鎮中)
Jetson TK1 Tegra TK1 CUDA勉強用(文鎮中)
Suzaku Spatran3E? 文鎮中

正直なところSuzakuは開発環境がISEでインストール予定が無いので廃棄予定。 今後はMicro:Bit、M5Stack、JetsonTX2、Ultra96の入手を検討中。

TinyDLP+BeagleBone Black

2018年04月16日 23時07分51秒 - Permament Link

miniDVデータのバックアップ

10年近く使っていないminiDVのテープもそろそろデジタル化を思い立った。

miniDVの持っているビデオカメラはIEEE1394が付いているのでIEEE1394が付いている中古ノートPCを調達した。

IOデータのアナ録(GV-VCBOX)(だいたい、¥9,000)でRCAケーブルからアナログで保存するという選択肢もあったんだけど、問題は記録したテープの録画日時をどう記録するか。

テープの中に何時、録画したものが何本あるかもわからないのでいちいち見ながら録画日時を記録するのは面倒だし、10年ほど前にIEEE1394ならWindows Movie Makerでタイムコードを引っ張れたようなぁと思いつつWindows 10でもWindows Movie Makerがあるか調べてみるとダウンロードすれば使えるということが判明。

そこでIEEE1394付きの中古ノートPCとなったのだ。

調達した中古ノートPCはLenovo T410で¥19,800にした。

もう少しコストを押させても良かったんだが、メモリが4GB、HDDが300GB、CPUがiCORE5で下手にコマ落ちを気にしなくて良さそうなスペックだったのでアナ録+¥10,000はタイムコードを抜き出すのに適度なコストとした。

60分のテープをデジタル化するのに大体、1時間半ぐらいでタイムコードから自動的にファイルが生成される。

あと、5、6本を残して10数本のテープを3日間かけてデジタル化を完了した。

Windows Movie Makerでデジタル化するとAVIで保存されて、60分あたりだいたい10数GBのファイルが生成される。

これをGW中にHandBrakeでH.265化して、作業が完了したらminiDVのビデオカメラは廃棄予定です。

HandBrake

HandBrakeはNightly Buildを使用する。

https://handbrake.fr/nightly.php

Caps Lock

久々にWindowsマシンをセットアップしたので・・・

https://technet.microsoft.com/ja-jp/sysinternals/bb897578.aspx

コマンドラインを管理者モードで起動して、次のコマンドを実行して再起動する。

ctrl2cap.exe /install

おまけ

IEEE1394のケーブルをアマゾンで買ったんだけど、送料がかかってしまうので送料無料にするために加藤恵のフィギュアを抱き合わせ買い。

2018年04月16日 23時05分51秒 - Permament Link

YOLO v3

4/7(土)に「組込みDL 体験コース」に参加してきた。

目的としてはFPGAにYOLOを組み込めるかという観点でtiny-YOLOの実装と動作確認が合ったのでYOLOの内容がどんななものなのか確認できるかなと思って参加した。

当初の目的は果たすことはできなかったが・・・

それはそれとして、YOLO V3をソフトオンリーで構築する。

っうかか、ここを見ればいいだけなんだけど・・・

darknetビルド

定石通り次のコマンドで完了する。

git clone git://github.com/pjreddie/darknet
cd darknet
make

YOLOv3ダウンロード

これも定石通りですね。

wget https://pjreddie.com/media/files/yolov3.weights

テスト

検証してみよう。

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

実行すると次のように表示される。

layer     filters    size              input                output
    0 conv     32  3 x 3 / 1   416 x 416 x   3   ->   416 x 416 x  32  0.299 BFLOPs
    1 conv     64  3 x 3 / 2   416 x 416 x  32   ->   208 x 208 x  64  1.595 BFLOPs
    2 conv     32  1 x 1 / 1   208 x 208 x  64   ->   208 x 208 x  32  0.177 BFLOPs
    3 conv     64  3 x 3 / 1   208 x 208 x  32   ->   208 x 208 x  64  1.595 BFLOPs
    4 res    1                 208 x 208 x  64   ->   208 x 208 x  64
    5 conv    128  3 x 3 / 2   208 x 208 x  64   ->   104 x 104 x 128  1.595 BFLOPs
    6 conv     64  1 x 1 / 1   104 x 104 x 128   ->   104 x 104 x  64  0.177 BFLOPs
    7 conv    128  3 x 3 / 1   104 x 104 x  64   ->   104 x 104 x 128  1.595 BFLOPs
    8 res    5                 104 x 104 x 128   ->   104 x 104 x 128
    9 conv     64  1 x 1 / 1   104 x 104 x 128   ->   104 x 104 x  64  0.177 BFLOPs
   10 conv    128  3 x 3 / 1   104 x 104 x  64   ->   104 x 104 x 128  1.595 BFLOPs
   11 res    8                 104 x 104 x 128   ->   104 x 104 x 128
   12 conv    256  3 x 3 / 2   104 x 104 x 128   ->    52 x  52 x 256  1.595 BFLOPs
   13 conv    128  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 128  0.177 BFLOPs
   14 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256  1.595 BFLOPs
   15 res   12                  52 x  52 x 256   ->    52 x  52 x 256
   16 conv    128  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 128  0.177 BFLOPs
   17 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256  1.595 BFLOPs
   18 res   15                  52 x  52 x 256   ->    52 x  52 x 256
   19 conv    128  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 128  0.177 BFLOPs
   20 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256  1.595 BFLOPs
   21 res   18                  52 x  52 x 256   ->    52 x  52 x 256
   22 conv    128  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 128  0.177 BFLOPs
   23 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256  1.595 BFLOPs
   24 res   21                  52 x  52 x 256   ->    52 x  52 x 256
   25 conv    128  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 128  0.177 BFLOPs
   26 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256  1.595 BFLOPs
   27 res   24                  52 x  52 x 256   ->    52 x  52 x 256
   28 conv    128  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 128  0.177 BFLOPs
   29 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256  1.595 BFLOPs
   30 res   27                  52 x  52 x 256   ->    52 x  52 x 256
   31 conv    128  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 128  0.177 BFLOPs
   32 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256  1.595 BFLOPs
   33 res   30                  52 x  52 x 256   ->    52 x  52 x 256
   34 conv    128  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 128  0.177 BFLOPs
   35 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256  1.595 BFLOPs
   36 res   33                  52 x  52 x 256   ->    52 x  52 x 256
   37 conv    512  3 x 3 / 2    52 x  52 x 256   ->    26 x  26 x 512  1.595 BFLOPs
   38 conv    256  1 x 1 / 1    26 x  26 x 512   ->    26 x  26 x 256  0.177 BFLOPs
   39 conv    512  3 x 3 / 1    26 x  26 x 256   ->    26 x  26 x 512  1.595 BFLOPs
   40 res   37                  26 x  26 x 512   ->    26 x  26 x 512
   41 conv    256  1 x 1 / 1    26 x  26 x 512   ->    26 x  26 x 256  0.177 BFLOPs
   42 conv    512  3 x 3 / 1    26 x  26 x 256   ->    26 x  26 x 512  1.595 BFLOPs
   43 res   40                  26 x  26 x 512   ->    26 x  26 x 512
   44 conv    256  1 x 1 / 1    26 x  26 x 512   ->    26 x  26 x 256  0.177 BFLOPs
   45 conv    512  3 x 3 / 1    26 x  26 x 256   ->    26 x  26 x 512  1.595 BFLOPs
   46 res   43                  26 x  26 x 512   ->    26 x  26 x 512
   47 conv    256  1 x 1 / 1    26 x  26 x 512   ->    26 x  26 x 256  0.177 BFLOPs
   48 conv    512  3 x 3 / 1    26 x  26 x 256   ->    26 x  26 x 512  1.595 BFLOPs
   49 res   46                  26 x  26 x 512   ->    26 x  26 x 512
   50 conv    256  1 x 1 / 1    26 x  26 x 512   ->    26 x  26 x 256  0.177 BFLOPs
   51 conv    512  3 x 3 / 1    26 x  26 x 256   ->    26 x  26 x 512  1.595 BFLOPs
   52 res   49                  26 x  26 x 512   ->    26 x  26 x 512
   53 conv    256  1 x 1 / 1    26 x  26 x 512   ->    26 x  26 x 256  0.177 BFLOPs
   54 conv    512  3 x 3 / 1    26 x  26 x 256   ->    26 x  26 x 512  1.595 BFLOPs
   55 res   52                  26 x  26 x 512   ->    26 x  26 x 512
   56 conv    256  1 x 1 / 1    26 x  26 x 512   ->    26 x  26 x 256  0.177 BFLOPs
   57 conv    512  3 x 3 / 1    26 x  26 x 256   ->    26 x  26 x 512  1.595 BFLOPs
   58 res   55                  26 x  26 x 512   ->    26 x  26 x 512
   59 conv    256  1 x 1 / 1    26 x  26 x 512   ->    26 x  26 x 256  0.177 BFLOPs
   60 conv    512  3 x 3 / 1    26 x  26 x 256   ->    26 x  26 x 512  1.595 BFLOPs
   61 res   58                  26 x  26 x 512   ->    26 x  26 x 512
   62 conv   1024  3 x 3 / 2    26 x  26 x 512   ->    13 x  13 x1024  1.595 BFLOPs
   63 conv    512  1 x 1 / 1    13 x  13 x1024   ->    13 x  13 x 512  0.177 BFLOPs
   64 conv   1024  3 x 3 / 1    13 x  13 x 512   ->    13 x  13 x1024  1.595 BFLOPs
   65 res   62                  13 x  13 x1024   ->    13 x  13 x1024
   66 conv    512  1 x 1 / 1    13 x  13 x1024   ->    13 x  13 x 512  0.177 BFLOPs
   67 conv   1024  3 x 3 / 1    13 x  13 x 512   ->    13 x  13 x1024  1.595 BFLOPs
   68 res   65                  13 x  13 x1024   ->    13 x  13 x1024
   69 conv    512  1 x 1 / 1    13 x  13 x1024   ->    13 x  13 x 512  0.177 BFLOPs
   70 conv   1024  3 x 3 / 1    13 x  13 x 512   ->    13 x  13 x1024  1.595 BFLOPs
   71 res   68                  13 x  13 x1024   ->    13 x  13 x1024
   72 conv    512  1 x 1 / 1    13 x  13 x1024   ->    13 x  13 x 512  0.177 BFLOPs
   73 conv   1024  3 x 3 / 1    13 x  13 x 512   ->    13 x  13 x1024  1.595 BFLOPs
   74 res   71                  13 x  13 x1024   ->    13 x  13 x1024
   75 conv    512  1 x 1 / 1    13 x  13 x1024   ->    13 x  13 x 512  0.177 BFLOPs
   76 conv   1024  3 x 3 / 1    13 x  13 x 512   ->    13 x  13 x1024  1.595 BFLOPs
   77 conv    512  1 x 1 / 1    13 x  13 x1024   ->    13 x  13 x 512  0.177 BFLOPs
   78 conv   1024  3 x 3 / 1    13 x  13 x 512   ->    13 x  13 x1024  1.595 BFLOPs
   79 conv    512  1 x 1 / 1    13 x  13 x1024   ->    13 x  13 x 512  0.177 BFLOPs
   80 conv   1024  3 x 3 / 1    13 x  13 x 512   ->    13 x  13 x1024  1.595 BFLOPs
   81 conv    255  1 x 1 / 1    13 x  13 x1024   ->    13 x  13 x 255  0.088 BFLOPs
   82 detection
   83 route  79
   84 conv    256  1 x 1 / 1    13 x  13 x 512   ->    13 x  13 x 256  0.044 BFLOPs
   85 upsample            2x    13 x  13 x 256   ->    26 x  26 x 256
   86 route  85 61
   87 conv    256  1 x 1 / 1    26 x  26 x 768   ->    26 x  26 x 256  0.266 BFLOPs
   88 conv    512  3 x 3 / 1    26 x  26 x 256   ->    26 x  26 x 512  1.595 BFLOPs
   89 conv    256  1 x 1 / 1    26 x  26 x 512   ->    26 x  26 x 256  0.177 BFLOPs
   90 conv    512  3 x 3 / 1    26 x  26 x 256   ->    26 x  26 x 512  1.595 BFLOPs
   91 conv    256  1 x 1 / 1    26 x  26 x 512   ->    26 x  26 x 256  0.177 BFLOPs
   92 conv    512  3 x 3 / 1    26 x  26 x 256   ->    26 x  26 x 512  1.595 BFLOPs
   93 conv    255  1 x 1 / 1    26 x  26 x 512   ->    26 x  26 x 255  0.177 BFLOPs
   94 detection
   95 route  91
   96 conv    128  1 x 1 / 1    26 x  26 x 256   ->    26 x  26 x 128  0.044 BFLOPs
   97 upsample            2x    26 x  26 x 128   ->    52 x  52 x 128
   98 route  97 36
   99 conv    128  1 x 1 / 1    52 x  52 x 384   ->    52 x  52 x 128  0.266 BFLOPs
  100 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256  1.595 BFLOPs
  101 conv    128  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 128  0.177 BFLOPs
  102 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256  1.595 BFLOPs
  103 conv    128  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 128  0.177 BFLOPs
  104 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256  1.595 BFLOPs
  105 conv    255  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 255  0.353 BFLOPs
  106 detection
Loading weights from yolov3.weights...Done!
data/dog.jpg: Predicted in 22.116075 seconds.
dog: 99%
truck: 92%
bicycle: 99%

ふむふむ、PCで22秒かかった・・・

Tiny-YOLO

土曜日の体験会ではTiny-YOLOだと認識率が50%ぐらいまで低下してた。

さらに、誤認識も多くなるというところで、Tinyが良いのかわるいのかがはっきりわからない。

どちらかというと、そこまで精度を落として速くする意味は無いんじゃないと思うくらい。

まぁ、でもひとつの基準になったからいいか・・・

2018年04月08日 22時53分39秒 - Permament Link