Slide 1

Slide 1 text

TakSan(佐野) 7周年基板IoT作品開発コンテスト 発表作品 メモリリソース不足で苦労しましたが、 何とか7周年基板で Azure Computer Vision 動かせました。

Slide 2

Slide 2 text

自己紹介 本職:組み込みSE 名前:TakSan (佐野) 拠点:東大阪 https://elchika.com/user/TakSan0/ https://protopedia.net/prototyper/taksan 作品をこの辺で ⇐ 公開中 ⇒ 活動:ハッカソン・コンテスト・LT 特技:地雷ふみ

Slide 3

Slide 3 text

話すこと ・7周年基板で実現できたこと ・苦労/工夫したこと ・動作デモ

Slide 4

Slide 4 text

話すこと ・7周年基板で実現できたこと ・苦労/工夫したこと ・動作デモ

Slide 5

Slide 5 text

ComputerVision とは? https://docs.microsoft.com/ja-jp/azure/cognitive-services/computer-vision/overview 引用(Microsoft Azure サイトより)

Slide 6

Slide 6 text

構成図 Computer Vision ALGYAN7th基板 Azure 解析要求 (撮影画像+パラメータ) 解析結果 (検出物名称、分類、検出座標・サイズ等)

Slide 7

Slide 7 text

通信内容 C:¥Users¥xxxx>curl "https://taksan-computervision.cognitiveservices.azure.com/vision/v3.2/analyze?visualFeatures= Objects,Brands,Categories,Faces&language=en&model-version=latest" -H "Ocp-Apim-Subscription-Key: e15e4f6a274e463d 89dedd4a650b58bc" -H "Content-Type: application/json" -d "{'url’ : 'https://i.gyazo.com/39ae3853870eb5cf161d9bbd 65af1c7b.png’}” {"categories":[{"name":"others_","score":0.01171875},{"name":"outdoor_","score":0.05078125}],"faces":[],"objects “:[{"rectangle":{"x":381,"y":521,"w":473,"h":156},"object":"taxi","confidence":0.512,"parent":{"object":"car",“ confidence":0.874,"parent":{"object":"Land vehicle","confidence":0.88,"parent":{"object":"Vehicle","confidence":0 .881}}}},{"rectangle":{"x":819,"y":526,"w":440,"h":143},"object":"car","confidence":0.858,"parent":{"object":"Lan D vehicle","confidence":0.878,"parent":{"object":"Vehicle","confidence":0.88}}}],"brands":[],"requestId":"cf02897 d-3aea-4dcb-b79d-6d542495dbf9","metadata":{"height":1080,"width":1920,"format":"Png"},"modelVersion":"2021-05-01" } ▲ 要求(HTTP POST) ▲ 応答(Json Data)

Slide 8

Slide 8 text

画像であらわすと { (中略) "objects": [ { "rectangle": { "x": 381, "y": 521, "w": 473, "h": 156 }, "object": "taxi", "confidence": 0.512, "parent": { "object": "car", "confidence": 0.874, "parent": { "object": "Land vehicl "confidence": 0.88, "parent": { "object": "Vehicle", "confidence": 0.881 } } } }, { "rectangle": { "x": 819, "y": 526, "w": 440, "h": 143 }, "object": "car", "confidence": 0.858, "parent": { "object": "Land vehicle "confidence": 0.878, "parent": { "object": "Vehicle", "confidence": 0.88 } } } ], (中略) } 要求画像 応答結果 (JSON) 結果から枠線 と名前を描画

Slide 9

Slide 9 text

無謀な挑戦? { (中略) "objects": [ { "rectangle": { "x": 381, "y": 521, "w": 473, "h": 156 }, "object": "taxi", "confidence": 0.512, "parent": { "object": "car", "confidence": 0.874, "parent": { "object": "Land vehicl "confidence": 0.88, "parent": { "object": "Vehicle", "confidence": 0.881 } } } }, { "rectangle": { "x": 819, "y": 526, "w": 440, "h": 143 }, "object": "car", "confidence": 0.858, "parent": { "object": "Land vehicle "confidence": 0.878, "parent": { "object": "Vehicle", "confidence": 0.88 } } } ], (中略) } 要求画像 応答結果 (JSON) 結果から枠線 と名前を描画 同じ様な事が ALGYAN7周年基板で 実行可能か検証したら いばらの道だった(゚Д゚)

Slide 10

Slide 10 text

話すこと ・7周年基板で実現できたこと ・苦労/工夫したこと ・動作デモ

Slide 11

Slide 11 text

ESP32のメモリは貧弱 Arduinoライブラリやシステムが使う分、今回使ったライブ ラリで使う分を差し引くと、ESP32の使用可能メモリは グローバル変数領域:100KB程度 動的確保領域:80KB程度

Slide 12

Slide 12 text

とにかくメモリが足りない カメラ 対して、カメラや LCDスクリーンの扱う 画像データのサイズは LCDスクリーン VGA(640X480画素、16bit色) =640x480x2 = 600KB QVGA(320X240画素、16bit色) =320x240x2 = 150KB

Slide 13

Slide 13 text

ESP32でカメラ搭載製品もある? PSRAM というメモリを別に積んだ CPU を使用 例えばM5 カメラ

Slide 14

Slide 14 text

カメラは低解像度で割り切る カメラ LCDスクリーンに合わせてカメラ入力を1/4サイズに LCDスクリーン QVGA(320X240画素、16bit色) =320x240x2 = 150KB

Slide 15

Slide 15 text

前回のキックオフイベントで 対策案が発見される。 1ラインずつDMA転送でカメラから読み 取りスクリーンに表示する方法 ▼ 但しこれは、縦ドット数分を連続して実 行できることが前提

Slide 16

Slide 16 text

ラインごとに遅延が発生すると 1ライン分データをどうにか保持しよう とすると遅延が発生して画像が縞状に…

Slide 17

Slide 17 text

7周年基板には愛のメモリが FRAM に1ラインごと書き込むも間に合 わず…

Slide 18

Slide 18 text

LCD画面をバッファメモリに LCDスクリーン のVRAM利用 スクリーンコントローラのコマンド を直接叩きながらSPI通信して 読み出せた

Slide 19

Slide 19 text

話すこと ・7周年基板で実現できたこと ・苦労/工夫したこと ・動作デモ

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

実際にやってみたい方の為に elchika というサイトに やり方解説記事を作成しました。 イベントページの資料欄に 追加しました。

Slide 22

Slide 22 text

おわり ご視聴ありがとう ございました。