Slide 1

Slide 1 text

1 犬の心電AI解析プロダクト開発奮闘記 ~クラウドからハード開発までてんこ盛り~ 株式会社HACARUS 宇佐見一平

Slide 2

Slide 2 text

2 名前: 宇佐見 一平 略歴:2017-04 新卒でメーカーに入社 2019-03 HACARUSに転職 職務内容:外観検査プロダクトの開発 趣味 :テレビゲーム、Spotifyで音楽巡り 社会人アメフトチームの分析スタッフとしても活動 自己紹介

Slide 3

Slide 3 text

3 ● ロボット制御アプリ開発 ● 異常検知ライブラリの開発 ● 異常検知ライブラリをノーコードで実行でき るクラウドアプリケーション開発 Mission 次世代の“はかる”をあらゆる産業へ

Slide 4

Slide 4 text

4 ● 診断/治療支援AI開発 ● 創薬工程の効率化AI開発 ● ライブラリをノーコードで実行できるクラ ウドアプリケーション開発 共 同 開 発 ・ 研 究

Slide 5

Slide 5 text

5 ■所属内訳 ①京都本社 ②東京R&Dセンター ③白浜サテライトオフィス ■拠点 インダストリー 事業部 医療事業部 海外事業部 新規事業開発部 プロダクトオーナー データサイエンティスト データサイエンティスト データサイエンティスト エッジエンジニア アプリケーションエンジニア データサイエンティスト HACARUSの雰囲気を知りたい方はWantedly blogまで ↓ 開発 66.7 % 営業 19.0% 常勤取締役 7.1% 管理 7.1%

Slide 6

Slide 6 text

6 発表内容

Slide 7

Slide 7 text

7 ● 話すこと ○ AWSに構築したシステム全体の構成 ○ ハードウェア、SORACOM、AIそれぞれとAWSの連携 ○ 開発の変遷と苦労話 ● 話さないこと ○ AIや分析手法の詳細 ○ 詳細なコード 話すこと/話さないこと

Slide 8

Slide 8 text

8 ● 2018年から住友ファーマアニマルヘルス様と共同での開 発が開始 ● 特殊なシートに犬を立たせることで立位にて測定可能 ○ 測定結果はAWSに構築されたシステムに送られて解析 ● 住友ファーマアニマルヘルス様のクラウドサービス(あに さぽ)にて結果を医師に表示 犬の心電解析プロジェクト概要

Slide 9

Slide 9 text

9 ● 循環器疾患は犬の死亡理由第二位 ○ 循環器疾患の早期発見が重要 ● ただし、日常的には確認されていない ○ 心電図を解析できない、手間、時間がかかる etc… ○ 上記課題が解決すれば検査をしたいという獣医師が多数存 在することは事前に調査済み →拘束なしで短時間に測定、解析できれば疾患の早期発見に 役立つ なぜ犬の心電解析プロダクトが必要なのか 既存の 心電測定装置

Slide 10

Slide 10 text

10 心電解析プロダクトの全体像

Slide 11

Slide 11 text

11 心電解析プロダクトの全体像 HACARUS担当部分 ※電極シート除く

Slide 12

Slide 12 text

12 ● 測定ハードウェアの開発 ● クラウドアプリケーションの開発 ● 心電解析AI(信号の前処理含む) 必要な開発項目

Slide 13

Slide 13 text

13 ● 測定ハードウェアの開発 ● クラウドアプリケーションの開発 ● 心電解析AI(信号の前処理含む) 必要な開発項目 全て1人で担当😇 (PMとインターン生はいました)

Slide 14

Slide 14 text

14 ● 測定ハードウェアの開発 ○ はんだ付けはやったことある ● クラウドアプリケーションの開発 ○ AWS,GCP,Azureとかの名前は知ってる ● 心電解析AI(信号の前処理含む) ○ 信号処理はしたことある 当時の自分のレベル

Slide 15

Slide 15 text

15 ハードウェア編

Slide 16

Slide 16 text

16 時系列 2019年: プロトタイプ開発 2020年:量産設計 2021年:コストダウン版開発 - ハードウェア設計コ ンサル会社と協力 - Raspberry Pi 3B+ をベース - データ送信は SORACOMを利用 - プロトタイプでの 課題を解決 - 全体を覆うカバー の設計 - 回路の設計 - 量産に耐えうる部 品の選定 - コストダウン版の 制作 ここでハードに強い人 が入社!

Slide 17

Slide 17 text

17 時系列 2019年: プロトタイプ開発 2020年:量産設計 2021年:コストダウン版開発 - ハードウェア設計コ ンサル会社と協力 - Raspberry Pi 3B+ をベース - データ送信は SORACOMを利用 - プロトタイプでの 課題を解決 - 全体を覆うカバー の設計 - 回路の設計 - 量産に耐えうる部 品の選定 - コストダウン版の 制作 ここでハードに強い人 が入社! 2019年: 3台だけのお試し 2020年:限定的なデモ公募 2021年:実稼働の公募

Slide 18

Slide 18 text

18 プロトタイプ外観 SORACOM 通信ドングル A/Dコンバーター マイコン 本体

Slide 19

Slide 19 text

19 測定時の全体観

Slide 20

Slide 20 text

20 測定できた!

Slide 21

Slide 21 text

21 ● 横幅24cm→17cm ● 縦幅15cm→9cm 量産&コストダウン版

Slide 22

Slide 22 text

22 ● ほぼ初心者でも外部コンサルと組めばプロトタイプまで はいける ● ただ量産設計は難しい ○ やっぱりハードに強い人は社内に必要 ハードウェア編まとめ

Slide 23

Slide 23 text

23 ソフトウェア編

Slide 24

Slide 24 text

24 ● ハードウェアからのデータをクラウドで受け取りたい ● 受け取ったデータに前処理、学習済みのAIモデルを適用 したい ● 外部サービスに固定IP認証でデータを送りたい やりたいこと

Slide 25

Slide 25 text

25 2019年: 最初期のアーキテクチャ

Slide 26

Slide 26 text

26 2019年: 最初期のアーキテクチャ

Slide 27

Slide 27 text

27 ● APIKeyを使った認証を採用 ○ Raspberry Piを配布するので認証情報を持たせたく ない RaspberryPiからどう認証するか?

Slide 28

Slide 28 text

28 ● ラズパイに認証情報を持たせなくてよくなる SORACOM Beam

Slide 29

Slide 29 text

29 通信のイメージ 参考: https://users.soracom.io/ja-jp/docs/beam/aws/

Slide 30

Slide 30 text

30 グループごとに送信先も変えられる ● Raspberry Piの設定を変えずとも、クラウド側で病院ごとに 使う処理を変えられる

Slide 31

Slide 31 text

31 ● http://metadata.soracom.io/v1/subscriber.imsiにリ クエストを送ることでIMSI(SIMのID)を取得可能 ○ IMSIはユニークなので、これをハードウェアの識別 情報として利用 subscriberを利用したIDの付与 http://metadata.soracom.io /v1/subscriber.imsi GET IMSI(4231244…)

Slide 32

Slide 32 text

32 外部サービスとの通信について

Slide 33

Slide 33 text

33 ● FargateにElasticIPが振れない ○ オープンなサブネットとクローズドな サブネットに分け、オープンな サブネットにElasticIPを振ったNAT を介して通信 固定IPを用いた認証 参 考:https://aws.amazon.com/jp/premiumsupport/knowledge-cen ter/ecs-fargate-static-elastic-ip-address/

Slide 34

Slide 34 text

34 ● メモリリークが起きてコンテナが落ちてしまった 順調に動いてそうだったが…

Slide 35

Slide 35 text

35 ● Pythonの描画パッケージであるmatplotlibを使うとメ モリリークしているよう ● 公式の対策を講じても効果薄 →Fargateのタスク数を増やし、メモリが一定以上に増え たコンテナはリスタートすることで対処 原因と対策

Slide 36

Slide 36 text

36 2020年:アーキテクチャ変更 GItlab Runner (LocalでのMock を使ったUnittest)

Slide 37

Slide 37 text

37 2020年:アーキテクチャ変更 GItlab Runner (LocalでのMock を使ったUnittest)

Slide 38

Slide 38 text

38 ● メモリリークの解消 ● ただし都度起動は時間がかかる ○ EC2 on ECSを採用し、キャッシュを用いることで起動 時間を1分→10秒弱に高速化 処理コンテナを都度生成

Slide 39

Slide 39 text

39 ● EC2を利用し始めたことでインスタンスのコストがか かってしまっている ● 大量のリクエストが来た際に取りこぼす可能性がある 今後の改善点

Slide 40

Slide 40 text

40 あるエンジニアとの会話 なんかいいアーキテクチャ ないっすかねー AWS SAの人に相談したら? 自分 アプリエンジニアの人

Slide 41

Slide 41 text

41 相談時のアーキテクチャ

Slide 42

Slide 42 text

42 色々アドバイスもらえました 直接API Gatewayからレスポン ス返せる SQS噛ませて取りこぼしを防 ぐとよい

Slide 43

Slide 43 text

43 ● SORACOMを用いることで、ハードとクラウドの繋ぎ込 みが容易になった ● 初の試みで問題はあったが、クラウド環境の再構築の容 易さからある程度すぐに対応できた ● AWS SAの方に相談するのはおすすめ ソフトウェア編まとめ

Slide 44

Slide 44 text

44 実稼働している病院でこんなデータが採れてます

Slide 45

Slide 45 text

45 本プロダクトは絶賛関西の病院でデモ稼働中! 見かけたら是非ご贔屓に 最後に

Slide 46

Slide 46 text

46 ありがとうございました!