犬の心電AI解析プロダクト開発奮闘記 _クラウドからハード開発までてんこ盛り
by
Hacarus Inc.
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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 ありがとうございました!