作業記録2021古市
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[組込みシステム 2021]]
* 研究内容 [#n77ed59f]
-物体検出アルゴリズムのFPGAでの実装・高速化
* メモ [#s78c9ef6]
-yolov5の信憑性は微妙
--https://ichi.pro/yolov-4-tai-yolov-5-240922076354091
--https://github.com/pjreddie/darknet/issues/2198
-Ultra96について https://qiita.com/nonbiri15/items/a9ae1a...
-Ultra96にyolov4tiny実装例を確認 https://github.com/yss97...
-Vitis-AIv1.3以降コンパイル後の出力モデルがelf→xmodelに変更
-Vitis-AIv1.2とelfファイルでDNNDKが使える
* 参考文献 [#s78c9ef6]
-Vitis AIv1.2ユーザーガイド https://japan.xilinx.com/supp...
-DNNDKユーザーガイド https://japan.xilinx.com/support/doc...
-Vitis AIv1.2 ユーザー資料 https://japan.xilinx.com/html_...
-Vitis-AIv1.3でDPU使ってAIアプリケーションを動かすフロー ...
-Vitis-AIv1.4,Ultra96v2 https://qiita.com/lp6m/items/4117...
-yolov4-tiny VOC https://github.com/AlexeyAB/darknet/wiki...
-yolov4-tiny構成 https://netron.app/?url=https://raw.gith...
-yolov5について https://blog.roboflow.com/yolov5-improvem...
-DPUCZDX8Gガイド https://japan.xilinx.com/support/documen...
-YOLOv4 tensorflow 実装 https://github.com/hunglc007/tens...
-Vitis-AIv1.3 ユーザーガイド https://www.xilinx.com/suppo...
-CSPnetとは https://ichi.pro/kurosu-sute-ji-bubun-nettowa...
-物体検出アルゴリズムの歴史 https://qiita.com/mshinoda88/...
-yolov1~v3 https://deepsquare.jp/2020/09/yolo/
-yoloの紹介 https://qiita.com/cv_carnavi/items/68dcda71e...
-yolov4作者github https://github.com/AlexeyAB/darknet
-yolov4解説 https://blog.seishin55.com/entry/2020/05/16/1...
* 参考論文 [#xe38e6c0]
-v3,v4のtinyモデルをリアルタイムで実行するハードウェアア...
https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=...
-引用数多い、読んだほうがいいかもhttps://ieeexplore.ieee....
-YOLOv2-tiny,ZCU102 https://ieeexplore.ieee.org/abstract/...
-YOLOv3-tiny,PYNQ-Z2 https://dl.acm.org/doi/abs/10.1145/3...
* 作業記録 [#k4bc2f6e]
**1/30 [#je229623]
-https://github.com/Xilinx/DPU-PYNQ/tree/v1.2.0/boardsの...
WARNING: [Vivado 12-4404] The CPU emulation flow in v++ ...
using a packaged XO file that contains C-model files, no...
WARNING: [Vivado 12-7038] The bus parameter 'aclk.FREQ_H...
the kernel IP 'DPUCZDX8G'. This may cause validation err...
platform has a different default kernel clock frequency....
do occur in v++, please edit and re-generate the kernel ...
remove the bus parameter 'aclk.FREQ_HZ'
WARNING: [Vivado 12-7038] The bus parameter 'ap_clk_2.FR...
detected in the kernel IP 'DPUCZDX8G'. This may cause va...
if a target platform has a different default kernel cloc...
validation errors do occur in v++, please edit and re-ge...
'DPUCZDX8G' to remove the bus parameter 'ap_clk_2.FREQ_HZ'
**1/17 [#xdf84fd9]
-前処理をマルチスレッドからマルチプロセスに変更
--瞬間的なメモリの使用量は増えるがすぐ戻る
-同じ画像に対して繰り返し前処理を行うと途中でカーネルが落...
--jupyterのログ
zmq.error.ZMQError: Address already in use
**1/14 [#n29decd6]
-並列実行の実装に苦戦
--何回も画像のロード、前処理を行うとメモリ不足でカーネル...
---都度建てたスレッド、不要な画像が残ってる?
---逐次実行の際はメモリは増減を繰り返してカーネルは落ちない
--4スレッドで前処理、キューに前処理の終了した画像番号を追...
--キューの監視のため、DPU起動スレッドが常駐しているのもど...
-pythonはGIL制約があるのでCPUバウンドな前処理をマルチスレ...
--結局途中からDPU処理を待っているだけなので、前処理がネッ...
**12/15 [#y3f1248e]
-前処理を色々調整
--テスト画像のアスペクト比を保ちながら、長辺が416になるよ...
--埋める単色の色によって物体のスコアや検出率が変わる、理...
-リサイズ例
#ref(resize.png)
**12/2 [#g3693397]
-VOC2007のテスト画像4952枚でFPSを計算
--検出+評価で9.7FPS、検出のみで12FPS
--元からあったyolov3は検出+評価で2.2FPS
-前処理、後処理は改善の余地あり
-そもそも検出率が低い
**12/1 [#wf18a820]
-やっとモデルがボードで動いた
--DPUのCONV_INPUT,CONV_OUTPUTの名前かDPUカーネル名の間違...
-精度が悪い
#ref(dog2.png)
**11/30 [#aac5feaf]
-サンプルのyolov3と自作したVOCyolov4-tinyのDPU比較
-明らかに小型になっている
#ref(compdpu.png)
**11/29 [#m4a8a15e]
-コンパイルできた、入力するモデルを間違えてた
-jupyterでコンパイルしたelfファイル使用すると結局カーネル...
**11/28 [#jd792151]
-dcfファイルの生成はできた、エラー原因はroot権限でVitis-A...
-コンパイルしてもエラーはでないが、何も生成されない
**11/26 [#k11bf429]
-hwhファイルからdcfファイルを生成するコマンドでエラー、生...
**11/25 [#y0e5eced]
-PYNQv2.6,DPU-PYNQv1.2.0でYOLOv3のチュートリアルが動いた
-Vitis-AIv1.2でコンパイルするのに足りないファイルがある
--.dcfファイルはv1.3以降は存在しないが,v1.2では必要
-Vitis-AIv1.3,Vitis2020.2でUltra96向けのプラットフォーム...
--https://qiita.com/lp6m/items/4117a3bab185afedfd5f
--https://www.hackster.io/AlbertaBeef/vitis-ai-1-3-flow-f...
**11/13 [#ca2f7fc5]
-dpuで実行するときにjupyterで以下のエラーが出てカーネルが...
The kernel appears to have died. It will restart automat...
--調べたところメモリ不足っぽい
--確かめるため、jupyterに現在の使用メモリを表示するパッケ...
--インストール時にjupyter自体のバージョンがアップされてし...
--立ち上がるURLが変わった?ので、今までのリンクでアクセス...
-pynqにこだわらなくてもいいかもしれない
-別のSDカードに焼き直し検討
**11/7 [#h98c0948]
-一応mAp60%くらいのモデルができた
--PascalVOC2007+2012の16551枚がtrain、validに2007_testの4...
--validにtest使っていいのか、yoloのVOCでの学習方法に則った
-jupyterでpython書いてる、VARTの書き方わからないのでサン...
--DNNDKのimportできない
--Vitis-AIv1.4以降はDNNDKはサポートされていないが、v1.3で...
**10/25 [#k75ba60a]
-tinyモデルの構成を少し書き換えて、PascalVOCを学習
-mAPが20%しかない、テストしてみてもほぼ使い物にならなそう
-とりあえずVitisAIでコンパイルまでできた
**10/21 [#w7e62cdd]
-PascalVOC2007と2012をあわせたデータセットを作成した
-trainとvalがまとめられたフォルダしかなかったのでvalだけ...
**10/18 [#t0f6e297]
-学習に非現実的な時間がかかる
--tinyモデルであれば多少短くなるとしてもmax_batchを小さく...
**10/16 [#za0a24a4]
-opencv関連で相当苦労したが、yolov4-leakyの学習が開始した
**10/15 [#v69fc978]
-やっとopencv4.5.3がビルドできたが、パスが通っていないの...
**10/12 [#j5d34744]
-caviar8にcmake3.21.3とcudnn8.1.1をインストール
-opencv3.4.15のビルドでエラー
CMake Error at cuda_compile_1_generated_global_motion.cu...
(message):
Error generating
/usr/local/src/opencv/build/modules/videostab/CMakeFiles...
**10/8 [#u0cc195d]
-最近のこと
--4GB以上の大きいzipファイルはunzipではなく、7zipで解凍し...
---7za x ファイル名で解凍できるがとても遅い(解凍後19GBフ...
--.bashrcはbashに入ったときに適用される環境変数
--anaconda環境はcaviar5の容量がいっぱい?なので、caviar8に...
--ディレクトリ構成は先にある程度考えて作成しないと後でパ...
--CSPのSplitがVitisAIに載らない→CSPを無くすと最大の特徴が...
**10/2 [#j001a854]
-keras_to_tensorflowで使用するtfのバージョンをVitis-AIの1...
-CSPに関する層はVitisAIでサポートされておらず、CPUでの実...
2021-10-02 01:02:49.788611: W
tensorflow/contrib/decent_q/utils/deploy_quantized_graph...
[DECENT_WARNING] Node group_route_3/split(Type: Split) i...
cannot be deployed to DPU,because it has unquantized inp...
group_route_3/split/split_dim. Please deploy it on CPU.
2021-10-02 01:02:49.788673: W
tensorflow/contrib/decent_q/utils/deploy_quantized_graph...
[DECENT_WARNING] Node conv2d_3/Conv2D(Type: Conv2D) is n...
be deployed to DPU,because it has unquantized input node...
Please deploy it on CPU.
2021-10-02 01:02:49.788772: W
tensorflow/contrib/decent_q/utils/deploy_quantized_graph...
[DECENT_WARNING] Node group_route_11/split(Type: Split) ...
cannot be deployed to DPU,because it has unquantized inp...
group_route_11/split/split_dim. Please deploy it on CPU.
2021-10-02 01:02:49.788801: W
tensorflow/contrib/decent_q/utils/deploy_quantized_graph...
[DECENT_WARNING] Node conv2d_7/Conv2D(Type: Conv2D) is n...
be deployed to DPU,because it has unquantized input node...
Please deploy it on CPU.
2021-10-02 01:02:49.788901: W
tensorflow/contrib/decent_q/utils/deploy_quantized_graph...
[DECENT_WARNING] Node group_route_19/split(Type: Split) ...
cannot be deployed to DPU,because it has unquantized inp...
group_route_19/split/split_dim. Please deploy it on CPU.
2021-10-02 01:02:49.788923: W
tensorflow/contrib/decent_q/utils/deploy_quantized_graph...
[DECENT_WARNING] Node conv2d_11/Conv2D(Type: Conv2D) is ...
cannot be deployed to DPU,because it has unquantized inp...
group_route_19/split. Please deploy it on CPU.
-コンパイルでCSPのsplitとgroupでエラー、コンパイルできない
**9/30 [#ea8e231f]
-https://github.com/Xilinx/Vitis-AI-Tutorials/tree/master...
-量子化でエラー、tfのバージョン問題?
tensorflow.python.framework.errors_impl.InvalidArgumentE...
attr 'exponential_avg_factor' not in Op<name=FusedBatchN...
scale:U, offset:U, mean:U, variance:U -> y:T, batch_mean...
reserve_space_1:U, reserve_space_2:U, reserve_space_3:U;...
[DT_HALF, DT_BFLOAT16, DT_FLOAT]; attr=U:type,allowed=[D...
attr=epsilon:float,default=0.0001;
attr=data_format:string,default="NHWC",allowed=["NHWC", ...
attr=is_training:bool,default=true>; NodeDef: {{node
batch_normalization/FusedBatchNormV3}}. (Check whether y...
interpreting binary is up to date with your GraphDef-gen...
-変換したpbファイルがtf-gpu2.60で生成されている?ので、Vit...
-tf1.xとtf2.xでは量子化の方法が違う、2.xの量子化の仕方は...
**9/29 [#k20442e0]
-量子化に必要なものの準備中、キャリブレーションデータセッ...
-oyster2にSublime Text入れた
**9/26 [#i905820e]
-yolov4-tinyの学習済みモデルをtensorflowに変換→Vitis-AIで...
--tensorflowに変換するときにエラーが出る
--https://github.com/hunglc007/tensorflow-yolov4-tfliteで...
--https://github.com/david8862/keras-YOLOv3-model-setでは...
raise ImportError('You need to first `import keras` '
ImportError: You need to first `import keras` in order t...
```
import keras
from keras_applications import vgg16
```
Or, preferably, this equivalent formulation:
```
from keras import applications
```
--wgetでweightsファイルを取ってくるリンクを変えたりしてた...
**9/9 [#u023d5e0]
-Ultra96がネットに繋がった
--/etcにwpa_supplicant.confを作成,/interfaces.d/wlan0編集
--MACアドレスを登録してもらう
--参考: https://qiita.com/osamasao/items/cf0da1e53e633d4d...
-DPUのチュートリアル(?)みたいなのをやってみた
**9/5 [#ud11d9f7]
-Ultra96でPYNQv2.6起動した、JupyterNotebookへの接続も確認
-microUSBで接続し、ssh 192.168.3.1 -X でボードにアクセス
-ボードでgit cloneできない
root@pynq:/home/xilinx# git clone https://github.com/Xil...
fatal: unable to access 'https://github.com/Xilinx/DPU-P...
-pingが返ってこない→そもそもネットにつながってない
**9/3 [#i5f8f000]
-読んだ論文 Scaled-YOLOv4: Scaling Cross Stage Partial Ne...
--CSPを用いたYOLOv4のスケールアップ/ダウン
--YOLOv4-tinyは組み込みGPUでもリアルタイム推論可能
--計算量の細かいところは難しいが、CSP化により計算量削減と...
**9/2 [#ef47aa66]
-YOLOv1~v4の論文を読み終えた
**8/31 [#ef47aa66]
-Ultra96の動作確認がうまくいかなかった
--片方はmicroSD内にimageファイルがない
--DS8のWirelessLANのLEDは点灯している
--microUSBケーブルで接続、http://192.168.13.101 http://19...
**8/27 [#ef47aa66]
-読んだ論文 FPGA Implementation of Object Detection Accel...
https://ieeexplore.ieee.org/document/9440554
--Vitis-AIでYOLOv3をZCU104に実装
--パイプライン処理、定量化、モデル圧縮、データ前処理でネ...
--PASCAL VOC2007,2012で評価、GTX1080と比較
--消費電力、電力効率、スループット(FPS)すべてでGPUを凌駕...
-読んだ論文 Optimized Object Detection Method for FPGA Im...
https://ieeexplore.ieee.org/document/9419407/metrics#metr...
--YOLOv4の精度と速度を向上、実際にFPGAに実装はしていない?
--特徴量マップ生成にエンコーダ・デコーダモジュールを追加
--特徴抽出にはFPNを使用
--他のモデルや他の研究(https://ieeexplore.ieee.org/docume...
--MS-COCOベンチマークで608*608の画像で56.7mAp,予測時間(?)...
**7/31 [#ef47aa66]
-https://ieeexplore.ieee.org/abstract/document/9435338を...
--yoloのバージョンごとに専用アクセラレータを設計するのは...
--CNNの計算のみではなく、前処理・後処理も最適化
**7/29 [#ef47aa66]
-ZYBOでPSのみのHello WorldとLチカ完了
**7/12 [#ef47aa66]
-チュートリアルとしてこれを始めたhttps://qiita.com/iwatak...
**7/7 [#ef47aa66]
-とりあえずyoloが動いた
--caviar5接続,RTX3080,CUDA11.2,cudnn8.1.0,cmake2.8.11,ope...
--makeでfor文内初期化宣言にc99エラーが出たので、https://q...
**7/5 [#ef47aa66]
-読んだ論文 https://arxiv.org/pdf/2011.04244.pdf
--yolov4tinyのCSPBlockモジュールの代わりにResBlock-Dモジ...
--mAPが0.26%減少するがFPSが8.9%向上
--CPUおよびラズパイで手法の比較
**6/17 [#ef47aa66]
-作業記録作成
*Tips [#fbe827c5]
-論文関連
--コピペした文の改行を取り除いてDeepLで翻訳してくれるツー...
--DeepL等で翻訳しながら読んだ論文は、訳した文を別で保存し...
--スライドなどの図の作成に便利なサイト https://app.diagra...
--latexの色々リンク https://zenn.dev/etrnl_tamayura/artic...
-microSDカード
--SDカードにイメージを焼くコマンド
sudo dd if=****.img of=dev/sdb bs=4M(速度)
-ボード関連
--ZYBOをマイクロUSBで繋ぐときはドライバを入れる
ダウンロードケーブルのデバイスドライバの設定 (要 root権限...
--シリアル通信するときはroot権限で、screen /dev/ttyUSB0 1...
#br
-自宅から研究室にあるボード上のJupyterNotebookにアクセス...
--前提条件
---研究室PC,対象のボードの電源がオン
---研究室PCからボードにSSHできる
---自宅から研究室環境にSSHできる
--MobaXtermなどのアプリで研究室にX11((接続先のGUIアプリを...
--ikra.arch.info.mie-u.ac.jpの/home/usr/.sshでconfigファ...
ikra.arch.info.mie-u.ac.jp% cat config
#Host $NAME
# HostName $ADDRESS
# Port $PORT_NUMBER
# User $USER_NAME
Host wakame(何でもよいが、わかりやすいPCの名前)
HostName 192.168.13.61 #自分の使用PCのIPアドレス
User furuichi
Port 22
ForwardX11 yes
IdentityFile ~/.ssh/id_rsa
Host ultra(対象ボードの名前)
HostName 192.168.3.1
User xilinx
Port 22
ForwardX11 yes
---編集後は ssh 接続先の名前 で接続可能となる
--ssh wakame(研究室PC) でwakame.arch.info.mie-u.ac.jpに接続
--ssh ultra(ボード) でxilinx@pynqに接続
--JupyterNotebookを起動
xilinx@pynq:~$ jupyter notebook
[I 06:43:18.804 NotebookApp] Serving notebooks from loca...
[I 06:43:18.804 NotebookApp] 0 active kernels
[I 06:43:18.805 NotebookApp] The Jupyter Notebook is run...
[I 06:43:18.805 NotebookApp] http://localhost:8888/?toke...
[I 06:43:18.806 NotebookApp] Use Control-C to stop this ...
[C 06:43:18.809 NotebookApp]
Copy/paste this URL into your browser when you connec...
to login with a token:
http://localhost:8888/?token=0e0e5efbf2ffc00091d9...
--JupyterNotebookを起動したタブはそのままにしておき、SSH...
--同じように自分の研究室PCに接続
--xdg-openコマンドでコマンドラインからブラウザを起動
--URLは研究室PCでJupyterNotebookにアクセスするときと同じ
wakame.arch.info.mie-u.ac.jp% xdg-open http://192.168.3.1
START /usr/bin/google-chrome-stable "http://192.168.3.1"
[32604:32640:1103/155528.611295:ERROR:bus.cc(392)] Faile...
[32604:32640:1103/155528.611654:ERROR:bus.cc(392)] Faile...
[32604:32640:1103/155528.772176:ERROR:bus.cc(392)] Faile...
[32604:32640:1103/155528.772292:ERROR:bus.cc(392)] Faile...
[32604:32640:1103/155528.797778:ERROR:token_service_tabl...
--しばらくするとブラウザが起動する、動作は遅い
--大量のエラーログが流れるが無視でよい
--終了するときはブラウザを閉じる
--JupyterNotebookを起動した方はCtrl+Cで閉じる
終了行:
[[組込みシステム 2021]]
* 研究内容 [#n77ed59f]
-物体検出アルゴリズムのFPGAでの実装・高速化
* メモ [#s78c9ef6]
-yolov5の信憑性は微妙
--https://ichi.pro/yolov-4-tai-yolov-5-240922076354091
--https://github.com/pjreddie/darknet/issues/2198
-Ultra96について https://qiita.com/nonbiri15/items/a9ae1a...
-Ultra96にyolov4tiny実装例を確認 https://github.com/yss97...
-Vitis-AIv1.3以降コンパイル後の出力モデルがelf→xmodelに変更
-Vitis-AIv1.2とelfファイルでDNNDKが使える
* 参考文献 [#s78c9ef6]
-Vitis AIv1.2ユーザーガイド https://japan.xilinx.com/supp...
-DNNDKユーザーガイド https://japan.xilinx.com/support/doc...
-Vitis AIv1.2 ユーザー資料 https://japan.xilinx.com/html_...
-Vitis-AIv1.3でDPU使ってAIアプリケーションを動かすフロー ...
-Vitis-AIv1.4,Ultra96v2 https://qiita.com/lp6m/items/4117...
-yolov4-tiny VOC https://github.com/AlexeyAB/darknet/wiki...
-yolov4-tiny構成 https://netron.app/?url=https://raw.gith...
-yolov5について https://blog.roboflow.com/yolov5-improvem...
-DPUCZDX8Gガイド https://japan.xilinx.com/support/documen...
-YOLOv4 tensorflow 実装 https://github.com/hunglc007/tens...
-Vitis-AIv1.3 ユーザーガイド https://www.xilinx.com/suppo...
-CSPnetとは https://ichi.pro/kurosu-sute-ji-bubun-nettowa...
-物体検出アルゴリズムの歴史 https://qiita.com/mshinoda88/...
-yolov1~v3 https://deepsquare.jp/2020/09/yolo/
-yoloの紹介 https://qiita.com/cv_carnavi/items/68dcda71e...
-yolov4作者github https://github.com/AlexeyAB/darknet
-yolov4解説 https://blog.seishin55.com/entry/2020/05/16/1...
* 参考論文 [#xe38e6c0]
-v3,v4のtinyモデルをリアルタイムで実行するハードウェアア...
https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=...
-引用数多い、読んだほうがいいかもhttps://ieeexplore.ieee....
-YOLOv2-tiny,ZCU102 https://ieeexplore.ieee.org/abstract/...
-YOLOv3-tiny,PYNQ-Z2 https://dl.acm.org/doi/abs/10.1145/3...
* 作業記録 [#k4bc2f6e]
**1/30 [#je229623]
-https://github.com/Xilinx/DPU-PYNQ/tree/v1.2.0/boardsの...
WARNING: [Vivado 12-4404] The CPU emulation flow in v++ ...
using a packaged XO file that contains C-model files, no...
WARNING: [Vivado 12-7038] The bus parameter 'aclk.FREQ_H...
the kernel IP 'DPUCZDX8G'. This may cause validation err...
platform has a different default kernel clock frequency....
do occur in v++, please edit and re-generate the kernel ...
remove the bus parameter 'aclk.FREQ_HZ'
WARNING: [Vivado 12-7038] The bus parameter 'ap_clk_2.FR...
detected in the kernel IP 'DPUCZDX8G'. This may cause va...
if a target platform has a different default kernel cloc...
validation errors do occur in v++, please edit and re-ge...
'DPUCZDX8G' to remove the bus parameter 'ap_clk_2.FREQ_HZ'
**1/17 [#xdf84fd9]
-前処理をマルチスレッドからマルチプロセスに変更
--瞬間的なメモリの使用量は増えるがすぐ戻る
-同じ画像に対して繰り返し前処理を行うと途中でカーネルが落...
--jupyterのログ
zmq.error.ZMQError: Address already in use
**1/14 [#n29decd6]
-並列実行の実装に苦戦
--何回も画像のロード、前処理を行うとメモリ不足でカーネル...
---都度建てたスレッド、不要な画像が残ってる?
---逐次実行の際はメモリは増減を繰り返してカーネルは落ちない
--4スレッドで前処理、キューに前処理の終了した画像番号を追...
--キューの監視のため、DPU起動スレッドが常駐しているのもど...
-pythonはGIL制約があるのでCPUバウンドな前処理をマルチスレ...
--結局途中からDPU処理を待っているだけなので、前処理がネッ...
**12/15 [#y3f1248e]
-前処理を色々調整
--テスト画像のアスペクト比を保ちながら、長辺が416になるよ...
--埋める単色の色によって物体のスコアや検出率が変わる、理...
-リサイズ例
#ref(resize.png)
**12/2 [#g3693397]
-VOC2007のテスト画像4952枚でFPSを計算
--検出+評価で9.7FPS、検出のみで12FPS
--元からあったyolov3は検出+評価で2.2FPS
-前処理、後処理は改善の余地あり
-そもそも検出率が低い
**12/1 [#wf18a820]
-やっとモデルがボードで動いた
--DPUのCONV_INPUT,CONV_OUTPUTの名前かDPUカーネル名の間違...
-精度が悪い
#ref(dog2.png)
**11/30 [#aac5feaf]
-サンプルのyolov3と自作したVOCyolov4-tinyのDPU比較
-明らかに小型になっている
#ref(compdpu.png)
**11/29 [#m4a8a15e]
-コンパイルできた、入力するモデルを間違えてた
-jupyterでコンパイルしたelfファイル使用すると結局カーネル...
**11/28 [#jd792151]
-dcfファイルの生成はできた、エラー原因はroot権限でVitis-A...
-コンパイルしてもエラーはでないが、何も生成されない
**11/26 [#k11bf429]
-hwhファイルからdcfファイルを生成するコマンドでエラー、生...
**11/25 [#y0e5eced]
-PYNQv2.6,DPU-PYNQv1.2.0でYOLOv3のチュートリアルが動いた
-Vitis-AIv1.2でコンパイルするのに足りないファイルがある
--.dcfファイルはv1.3以降は存在しないが,v1.2では必要
-Vitis-AIv1.3,Vitis2020.2でUltra96向けのプラットフォーム...
--https://qiita.com/lp6m/items/4117a3bab185afedfd5f
--https://www.hackster.io/AlbertaBeef/vitis-ai-1-3-flow-f...
**11/13 [#ca2f7fc5]
-dpuで実行するときにjupyterで以下のエラーが出てカーネルが...
The kernel appears to have died. It will restart automat...
--調べたところメモリ不足っぽい
--確かめるため、jupyterに現在の使用メモリを表示するパッケ...
--インストール時にjupyter自体のバージョンがアップされてし...
--立ち上がるURLが変わった?ので、今までのリンクでアクセス...
-pynqにこだわらなくてもいいかもしれない
-別のSDカードに焼き直し検討
**11/7 [#h98c0948]
-一応mAp60%くらいのモデルができた
--PascalVOC2007+2012の16551枚がtrain、validに2007_testの4...
--validにtest使っていいのか、yoloのVOCでの学習方法に則った
-jupyterでpython書いてる、VARTの書き方わからないのでサン...
--DNNDKのimportできない
--Vitis-AIv1.4以降はDNNDKはサポートされていないが、v1.3で...
**10/25 [#k75ba60a]
-tinyモデルの構成を少し書き換えて、PascalVOCを学習
-mAPが20%しかない、テストしてみてもほぼ使い物にならなそう
-とりあえずVitisAIでコンパイルまでできた
**10/21 [#w7e62cdd]
-PascalVOC2007と2012をあわせたデータセットを作成した
-trainとvalがまとめられたフォルダしかなかったのでvalだけ...
**10/18 [#t0f6e297]
-学習に非現実的な時間がかかる
--tinyモデルであれば多少短くなるとしてもmax_batchを小さく...
**10/16 [#za0a24a4]
-opencv関連で相当苦労したが、yolov4-leakyの学習が開始した
**10/15 [#v69fc978]
-やっとopencv4.5.3がビルドできたが、パスが通っていないの...
**10/12 [#j5d34744]
-caviar8にcmake3.21.3とcudnn8.1.1をインストール
-opencv3.4.15のビルドでエラー
CMake Error at cuda_compile_1_generated_global_motion.cu...
(message):
Error generating
/usr/local/src/opencv/build/modules/videostab/CMakeFiles...
**10/8 [#u0cc195d]
-最近のこと
--4GB以上の大きいzipファイルはunzipではなく、7zipで解凍し...
---7za x ファイル名で解凍できるがとても遅い(解凍後19GBフ...
--.bashrcはbashに入ったときに適用される環境変数
--anaconda環境はcaviar5の容量がいっぱい?なので、caviar8に...
--ディレクトリ構成は先にある程度考えて作成しないと後でパ...
--CSPのSplitがVitisAIに載らない→CSPを無くすと最大の特徴が...
**10/2 [#j001a854]
-keras_to_tensorflowで使用するtfのバージョンをVitis-AIの1...
-CSPに関する層はVitisAIでサポートされておらず、CPUでの実...
2021-10-02 01:02:49.788611: W
tensorflow/contrib/decent_q/utils/deploy_quantized_graph...
[DECENT_WARNING] Node group_route_3/split(Type: Split) i...
cannot be deployed to DPU,because it has unquantized inp...
group_route_3/split/split_dim. Please deploy it on CPU.
2021-10-02 01:02:49.788673: W
tensorflow/contrib/decent_q/utils/deploy_quantized_graph...
[DECENT_WARNING] Node conv2d_3/Conv2D(Type: Conv2D) is n...
be deployed to DPU,because it has unquantized input node...
Please deploy it on CPU.
2021-10-02 01:02:49.788772: W
tensorflow/contrib/decent_q/utils/deploy_quantized_graph...
[DECENT_WARNING] Node group_route_11/split(Type: Split) ...
cannot be deployed to DPU,because it has unquantized inp...
group_route_11/split/split_dim. Please deploy it on CPU.
2021-10-02 01:02:49.788801: W
tensorflow/contrib/decent_q/utils/deploy_quantized_graph...
[DECENT_WARNING] Node conv2d_7/Conv2D(Type: Conv2D) is n...
be deployed to DPU,because it has unquantized input node...
Please deploy it on CPU.
2021-10-02 01:02:49.788901: W
tensorflow/contrib/decent_q/utils/deploy_quantized_graph...
[DECENT_WARNING] Node group_route_19/split(Type: Split) ...
cannot be deployed to DPU,because it has unquantized inp...
group_route_19/split/split_dim. Please deploy it on CPU.
2021-10-02 01:02:49.788923: W
tensorflow/contrib/decent_q/utils/deploy_quantized_graph...
[DECENT_WARNING] Node conv2d_11/Conv2D(Type: Conv2D) is ...
cannot be deployed to DPU,because it has unquantized inp...
group_route_19/split. Please deploy it on CPU.
-コンパイルでCSPのsplitとgroupでエラー、コンパイルできない
**9/30 [#ea8e231f]
-https://github.com/Xilinx/Vitis-AI-Tutorials/tree/master...
-量子化でエラー、tfのバージョン問題?
tensorflow.python.framework.errors_impl.InvalidArgumentE...
attr 'exponential_avg_factor' not in Op<name=FusedBatchN...
scale:U, offset:U, mean:U, variance:U -> y:T, batch_mean...
reserve_space_1:U, reserve_space_2:U, reserve_space_3:U;...
[DT_HALF, DT_BFLOAT16, DT_FLOAT]; attr=U:type,allowed=[D...
attr=epsilon:float,default=0.0001;
attr=data_format:string,default="NHWC",allowed=["NHWC", ...
attr=is_training:bool,default=true>; NodeDef: {{node
batch_normalization/FusedBatchNormV3}}. (Check whether y...
interpreting binary is up to date with your GraphDef-gen...
-変換したpbファイルがtf-gpu2.60で生成されている?ので、Vit...
-tf1.xとtf2.xでは量子化の方法が違う、2.xの量子化の仕方は...
**9/29 [#k20442e0]
-量子化に必要なものの準備中、キャリブレーションデータセッ...
-oyster2にSublime Text入れた
**9/26 [#i905820e]
-yolov4-tinyの学習済みモデルをtensorflowに変換→Vitis-AIで...
--tensorflowに変換するときにエラーが出る
--https://github.com/hunglc007/tensorflow-yolov4-tfliteで...
--https://github.com/david8862/keras-YOLOv3-model-setでは...
raise ImportError('You need to first `import keras` '
ImportError: You need to first `import keras` in order t...
```
import keras
from keras_applications import vgg16
```
Or, preferably, this equivalent formulation:
```
from keras import applications
```
--wgetでweightsファイルを取ってくるリンクを変えたりしてた...
**9/9 [#u023d5e0]
-Ultra96がネットに繋がった
--/etcにwpa_supplicant.confを作成,/interfaces.d/wlan0編集
--MACアドレスを登録してもらう
--参考: https://qiita.com/osamasao/items/cf0da1e53e633d4d...
-DPUのチュートリアル(?)みたいなのをやってみた
**9/5 [#ud11d9f7]
-Ultra96でPYNQv2.6起動した、JupyterNotebookへの接続も確認
-microUSBで接続し、ssh 192.168.3.1 -X でボードにアクセス
-ボードでgit cloneできない
root@pynq:/home/xilinx# git clone https://github.com/Xil...
fatal: unable to access 'https://github.com/Xilinx/DPU-P...
-pingが返ってこない→そもそもネットにつながってない
**9/3 [#i5f8f000]
-読んだ論文 Scaled-YOLOv4: Scaling Cross Stage Partial Ne...
--CSPを用いたYOLOv4のスケールアップ/ダウン
--YOLOv4-tinyは組み込みGPUでもリアルタイム推論可能
--計算量の細かいところは難しいが、CSP化により計算量削減と...
**9/2 [#ef47aa66]
-YOLOv1~v4の論文を読み終えた
**8/31 [#ef47aa66]
-Ultra96の動作確認がうまくいかなかった
--片方はmicroSD内にimageファイルがない
--DS8のWirelessLANのLEDは点灯している
--microUSBケーブルで接続、http://192.168.13.101 http://19...
**8/27 [#ef47aa66]
-読んだ論文 FPGA Implementation of Object Detection Accel...
https://ieeexplore.ieee.org/document/9440554
--Vitis-AIでYOLOv3をZCU104に実装
--パイプライン処理、定量化、モデル圧縮、データ前処理でネ...
--PASCAL VOC2007,2012で評価、GTX1080と比較
--消費電力、電力効率、スループット(FPS)すべてでGPUを凌駕...
-読んだ論文 Optimized Object Detection Method for FPGA Im...
https://ieeexplore.ieee.org/document/9419407/metrics#metr...
--YOLOv4の精度と速度を向上、実際にFPGAに実装はしていない?
--特徴量マップ生成にエンコーダ・デコーダモジュールを追加
--特徴抽出にはFPNを使用
--他のモデルや他の研究(https://ieeexplore.ieee.org/docume...
--MS-COCOベンチマークで608*608の画像で56.7mAp,予測時間(?)...
**7/31 [#ef47aa66]
-https://ieeexplore.ieee.org/abstract/document/9435338を...
--yoloのバージョンごとに専用アクセラレータを設計するのは...
--CNNの計算のみではなく、前処理・後処理も最適化
**7/29 [#ef47aa66]
-ZYBOでPSのみのHello WorldとLチカ完了
**7/12 [#ef47aa66]
-チュートリアルとしてこれを始めたhttps://qiita.com/iwatak...
**7/7 [#ef47aa66]
-とりあえずyoloが動いた
--caviar5接続,RTX3080,CUDA11.2,cudnn8.1.0,cmake2.8.11,ope...
--makeでfor文内初期化宣言にc99エラーが出たので、https://q...
**7/5 [#ef47aa66]
-読んだ論文 https://arxiv.org/pdf/2011.04244.pdf
--yolov4tinyのCSPBlockモジュールの代わりにResBlock-Dモジ...
--mAPが0.26%減少するがFPSが8.9%向上
--CPUおよびラズパイで手法の比較
**6/17 [#ef47aa66]
-作業記録作成
*Tips [#fbe827c5]
-論文関連
--コピペした文の改行を取り除いてDeepLで翻訳してくれるツー...
--DeepL等で翻訳しながら読んだ論文は、訳した文を別で保存し...
--スライドなどの図の作成に便利なサイト https://app.diagra...
--latexの色々リンク https://zenn.dev/etrnl_tamayura/artic...
-microSDカード
--SDカードにイメージを焼くコマンド
sudo dd if=****.img of=dev/sdb bs=4M(速度)
-ボード関連
--ZYBOをマイクロUSBで繋ぐときはドライバを入れる
ダウンロードケーブルのデバイスドライバの設定 (要 root権限...
--シリアル通信するときはroot権限で、screen /dev/ttyUSB0 1...
#br
-自宅から研究室にあるボード上のJupyterNotebookにアクセス...
--前提条件
---研究室PC,対象のボードの電源がオン
---研究室PCからボードにSSHできる
---自宅から研究室環境にSSHできる
--MobaXtermなどのアプリで研究室にX11((接続先のGUIアプリを...
--ikra.arch.info.mie-u.ac.jpの/home/usr/.sshでconfigファ...
ikra.arch.info.mie-u.ac.jp% cat config
#Host $NAME
# HostName $ADDRESS
# Port $PORT_NUMBER
# User $USER_NAME
Host wakame(何でもよいが、わかりやすいPCの名前)
HostName 192.168.13.61 #自分の使用PCのIPアドレス
User furuichi
Port 22
ForwardX11 yes
IdentityFile ~/.ssh/id_rsa
Host ultra(対象ボードの名前)
HostName 192.168.3.1
User xilinx
Port 22
ForwardX11 yes
---編集後は ssh 接続先の名前 で接続可能となる
--ssh wakame(研究室PC) でwakame.arch.info.mie-u.ac.jpに接続
--ssh ultra(ボード) でxilinx@pynqに接続
--JupyterNotebookを起動
xilinx@pynq:~$ jupyter notebook
[I 06:43:18.804 NotebookApp] Serving notebooks from loca...
[I 06:43:18.804 NotebookApp] 0 active kernels
[I 06:43:18.805 NotebookApp] The Jupyter Notebook is run...
[I 06:43:18.805 NotebookApp] http://localhost:8888/?toke...
[I 06:43:18.806 NotebookApp] Use Control-C to stop this ...
[C 06:43:18.809 NotebookApp]
Copy/paste this URL into your browser when you connec...
to login with a token:
http://localhost:8888/?token=0e0e5efbf2ffc00091d9...
--JupyterNotebookを起動したタブはそのままにしておき、SSH...
--同じように自分の研究室PCに接続
--xdg-openコマンドでコマンドラインからブラウザを起動
--URLは研究室PCでJupyterNotebookにアクセスするときと同じ
wakame.arch.info.mie-u.ac.jp% xdg-open http://192.168.3.1
START /usr/bin/google-chrome-stable "http://192.168.3.1"
[32604:32640:1103/155528.611295:ERROR:bus.cc(392)] Faile...
[32604:32640:1103/155528.611654:ERROR:bus.cc(392)] Faile...
[32604:32640:1103/155528.772176:ERROR:bus.cc(392)] Faile...
[32604:32640:1103/155528.772292:ERROR:bus.cc(392)] Faile...
[32604:32640:1103/155528.797778:ERROR:token_service_tabl...
--しばらくするとブラウザが起動する、動作は遅い
--大量のエラーログが流れるが無視でよい
--終了するときはブラウザを閉じる
--JupyterNotebookを起動した方はCtrl+Cで閉じる
ページ名: