1
/
5

組み込みAI、エッジAIとは・活用事例。生活とビジネス活用、組み込みシステムエンジニア現況と人材不足解決策

テクノロジー大手企業は、製品に組み込みシステムを採用することに常に関心を持っています。現在、組み込みシステムは多くのアプリケーションで広く使われています。では、組み込みシステムとは何か、組み込みシステムにおけるAIとは何か?それらの特徴は何であり、日常生活や企業、ビジネスにどのように役立つのか?この記事では、詳しく解説していきます。

組込みシステムとは何か?

組み込みシステムの市場は非常に大きな成長の可能性を秘めています。世界の統計専門家によると、PCやサーバー、LAN、WAN、インターネットに使用されるプロセッサーチップは、全世界のプロセッサーチップの1%にも満たないとされています。残りの99%以上のプロセッサーは、組み込みシステムに使われています。アジアでは、日本が組み込み市場でトップを走っており、世界でも主要な組み込みソフトウェア市場の一つとなっています。

組込みシステムの簡単な説明と分類

組込みシステム(Embedded System)は、特定の機能やタスクを実行するために設計されたコンピュータシステムです。通常、家庭用電化製品、車両、産業機器、医療機器などの特定の用途に組み込まれており、単独で動作することがほとんどです。通常のPCとは異なり、汎用的な処理能力を持たず、与えられた特定の機能を高効率で実行するために最適化されています。

組込みシステムは、以下のように大きく分類できます。

  • リアルタイムシステム:特定の時間内に処理を完了することが要求されるシステム。たとえば、医療機器や航空宇宙の制御システムがこれに該当します。
  • スタンドアロンシステム:他のシステムと連携せず、独自に動作するシステム。家電製品や自動車のナビゲーションシステムなどがこれに該当します。
  • ネットワーク対応システム:他のシステムやインターネットと通信する機能を持つ組込みシステム。IoT(Internet of Things)機器が代表例です。

>>> 関連記事:IoTとは? 構造、動作、企業や現代生活におけるIoTの身近活用

組み込みシステムのアルゴリズム

組み込みシステムは限られたリソースの中で最適に動作することが求められます。そのため、効率的なアルゴリズムが不可欠です。組込みシステムのアルゴリズムは、以下の点を考慮して設計されます:

  • 処理速度:リソースの制約があるため、限られたメモリとCPU能力の中で高速な処理が求められます。これにより、リアルタイムでの応答が可能になります。
  • 省電力:バッテリー駆動のシステムでは、エネルギー効率が非常に重要です。効率的なアルゴリズムを用いることで、電力消費を抑えることが可能です。
  • 信頼性:組込みシステムは誤動作が許されない場面が多く、信頼性の高いアルゴリズム設計が求められます。特に自動車や医療分野では、この点が重要です。

組込みシステムのアーキテクチャ

組み込みシステムのアーキテクチャは、システムの機能と性能を左右する非常に重要な要素です。一般的に、組込みシステムのアーキテクチャは以下のように構成されます:

  • マイクロコントローラ/プロセッサ:組込みシステムの心臓部となるもので、システム全体の制御を行います。ARMプロセッサなどが一般的に使用されます。
  • メモリ:プログラムのコードとデータを保存するために使用されます。組込みシステムでは、限られた容量の中で効率的にメモリを利用する必要があります。
  • I/Oデバイス:外部のデータを取り込み、システムに入力するためのインターフェースです。センサーやスイッチ、ディスプレイなどがこれに該当します。
  • 通信インターフェース:他のシステムやネットワークとデータをやり取りするためのインターフェースです。Wi-FiやBluetooth、Ethernetなどが一般的です。

組み込みプログラミングの種類と比較

組み込みプログラミングには、さまざまな種類があり、システムの要件や目的に応じて適切なプログラミング手法が選ばれます。以下は、主な組み込みプログラミングの種類とそれぞれの比較です。

マイクロコントローラー向けプログラミング

マイクロコントローラー(MCU)は、組み込みシステムで広く使用されている小型プロセッサです。マイクロコントローラー向けプログラミングは、組み込みシステムに特化した非常に低レベルのプログラミングを指します。

  • 特徴
    • メモリや処理能力が非常に限られているため、リソース管理が重要です。
    • C言語やアセンブリ言語がよく使用され、効率的なプログラムコードが求められます。
    • 割り込みやタイマーの管理が頻繁に必要となる。
  • メリット
    • 非常に軽量かつ高効率なコードが書ける。
    • リアルタイムシステム(RTOS)との統合が容易で、正確なタイミングでの動作が可能。
  • デメリット
    • プログラムが複雑になりやすく、デバッグが難しい。
    • OSがないことが多く、すべてのハードウェア制御をプログラマが行う必要がある。

リアルタイムオペレーティングシステム(RTOS)向けプログラミング

RTOSは、リアルタイム性を保証するオペレーティングシステムで、ミッション・クリティカルな組み込みシステムに多く使用されます。RTOS向けプログラミングでは、特定のデッドライン(時間制約)を守る必要があります。

  • 特徴
    • 複数のタスクを並列で処理するマルチタスク機能があり、優先順位に基づいてタスクをスケジューリング。
    • C/C++などの高級言語がよく使われ、RTOSのAPIを利用して開発します。
  • メリット
    • リアルタイム性を保証し、重要なタスクの遅延を防ぐ。
    • タスク管理が容易で、システムのモジュール化が進む。
  • デメリット
    • タスクの優先度やタイミングの管理が複雑になる可能性がある。
    • RTOS自体が追加のリソースを消費するため、非常にリソースが限られている環境では使いづらい。

Linuxベースの組み込みプログラミング

Linuxベースの組み込みプログラミングは、組み込みデバイスにLinuxカーネルを使用するもので、特に高度な機能やネットワーク機能が必要な場合に多く利用されます。ラズベリーパイや、他の組み込みボードでよく使用されます。

  • 特徴
    • 高度なメモリ管理やネットワーク機能をサポート。
    • C/C++やPython、さらにはシェルスクリプトなど、幅広い言語で開発が可能。
  • メリット
    • Linuxの豊富なライブラリとツールを活用でき、開発効率が向上。
    • マルチタスクやネットワーク接続など、高度な機能を手軽に実装可能。
  • デメリット
    • Linux自体のオーバーヘッドが大きいため、リソースが限られたデバイスには不向き。
    • RTOSと比べて、リアルタイム性が劣る場合がある。

ファームウェアプログラミング

ファームウェアプログラミングは、デバイスの基本的な動作を制御するためのソフトウェアをデバイスに直接書き込む形式です。ファームウェアは主に、デバイスのハードウェアを直接操作し、永続的にデバイスに保存される低レベルのコードです。

  • 特徴
    • デバイスの基本動作を管理するため、ハードウェアと非常に密接に関わる。
    • C言語やアセンブリが主に使用され、ROMに書き込まれます。
  • メリット
    • デバイスに最適化された効率的なプログラムが書ける。
    • 長期間の安定した動作が求められる環境に適している。
  • デメリット
    • ハードウェア依存性が高く、他のデバイスやシステムで再利用しにくい。
    • 開発やデバッグが複雑になることが多い。

高レベルプログラミング(Pythonなど)

最近では、組み込みシステムにおいても、開発効率を向上させるために高レベルのプログラミング言語(例:Python)が利用されることがあります。特に、プロトタイプ開発や、リソースに余裕のあるデバイスで使用されます。

  • 特徴:
    • 開発スピードが速く、コードが簡潔。
    • ラズベリーパイや他の開発ボードでのプロトタイピングに適している。
  • メリット:
    • 記述が容易で、学習コストが低い。
    • プロトタイピングやテストを迅速に行える。
  • デメリット:
    • 実行速度が遅く、低レベルの最適化が難しい。
    • リソースが限られている環境では、オーバーヘッドが大きくなりやすい。

組み込みAIとは?

AI(人工知能)技術が進化し、組込みシステムとの統合が進んでいます。従来の組込みシステムは、特定のタスクを実行するための単純な処理しか行わなかったのに対し、AIを組み込むことで、より高度な処理や予測、分析が可能になっています。これにより、システムは自己学習し、リアルタイムで適応することができるようになりました。

要するに、組み込みAIとは、AI技術を組み込みシステムに統合することを指します。これにより、デバイスがリアルタイムでデータを処理し、学習・判断する能力を持つようになります。組み込みシステム自体は特定のタスクを実行するために設計された小型のコンピュータシステムであり、通常は家電製品、車両、産業機器、医療機器などに搭載されています。組み込みAIは、これらのシステムに高度な知能を加えることで、データ処理の効率を向上させ、ユーザーのニーズに応じた自律的な判断や最適化を可能にします。

例えば、AIを活用した自動車の組み込みシステムは、運転状況をリアルタイムで認識し、最適な運転支援や自動操縦を提供します。産業機器では、機械学習を通じて生産プロセスを自動化し、効率性と生産性を向上させることが可能です。組み込みAIは、限られたリソース環境でも高度なAI機能を実現する点で、IoT(モノのインターネット)やスマートデバイスの進化に不可欠な技術です。

AIと組込みシステムの融合の説明

AIと組込みシステムの融合は、従来の組込みシステムに新たな知能を持たせるものです。AIは、組込みシステムが取り扱う膨大なデータを解析し、その結果に基づいてシステムの動作を最適化する役割を果たします。例えば、画像認識や音声認識といった高度なタスクは、AIのアルゴリズムが組込みシステムの中でリアルタイムで処理され、システムはよりインテリジェントな動作を行うことができます。

この融合により、以下のメリットが得られます。

  • リアルタイムでの意思決定:データを即座に分析し、その結果に基づいてシステムの動作を変更できる。
  • 自律的な動作:AIがシステムを学習させ、必要に応じて自律的に最適な行動を選択する。
  • カスタマイズ性の向上:ユーザーごとに最適なサービスを提供するために、AIがデータを基にシステムをカスタマイズできる。

組込みシステムにおけるAIの現状

現状、AIと組込みシステムの統合は主に以下の分野で進展しています。

  • 自動運転車:センサーから得た膨大なデータをリアルタイムで処理し、車両の運転をサポートする。
  • スマートホームデバイス:AIを活用して、ユーザーの行動パターンを学習し、最適なエネルギー消費や快適な環境を提供する。
  • 医療機器:患者のデータをリアルタイムで監視し、異常を早期に検知することで、迅速な対応が可能となる。

AI組込みシステムの実生活およびビジネスへの応用

AIと組込みシステムの統合は、私たちの日常生活やビジネス環境に多大な影響を与えています。たとえば:

実生活におけるAI組込みシステムの応用

  • スマートホームデバイス

AI組込みシステムは、スマートホームデバイスにおいて広く利用されており、住環境の最適化に貢献しています。

スマートスピーカー:Google HomeやAmazon EchoなどのAI搭載スマートスピーカーは、音声認識技術を活用してユーザーの声に応じた操作を行い、照明、エアコン、テレビなどを自動制御します。
スマート家電:AIを搭載した冷蔵庫や洗濯機は、ユーザーの使用パターンを学習し、エネルギー効率を最適化したり、食品の消費期限や最適な洗濯サイクルを自動的に提案することが可能です。

  • 自動運転車

自動運転車にはAI組込みシステムが不可欠であり、これにより安全で効率的な運転が可能になります。

運転支援:車載カメラやセンサーを使って、AIが道路状況や障害物をリアルタイムで認識し、緊急時には自動ブレーキをかけたり、適切な車線変更を行います。これにより交通事故のリスクを減らすことができます。
自律運転:高度なAIアルゴリズムを組み込んだシステムは、完全自動運転を目指しており、将来的には交通渋滞の緩和や交通事故のさらなる減少が期待されています。

  • 健康管理と医療デバイス

AI組込みシステムは、健康管理の分野でも大きな役割を果たしています。

スマートウォッチやフィットネストラッカー:AIを使って心拍数、睡眠パターン、運動量などを解析し、ユーザーの健康状態をリアルタイムでフィードバックします。これにより、運動不足や健康リスクに対する早期警告が可能です。
医療機器:AIを組み込んだ医療機器は、患者の状態をモニタリングし、異常があれば即座に医師に通知するなど、早期の診断や治療を支援します。たとえば、糖尿病患者向けのインシュリンポンプは、血糖値を監視し、自動でインシュリンを適切に投与します。

  • パーソナルアシスタント機能

AI組込みシステムは、個人の生活をサポートするパーソナルアシスタントとしても活用されています。

音声認識AI:SiriやGoogle Assistantなどの音声認識AIは、ユーザーの声を理解し、タスクを実行したり、情報提供を行うことができます。これにより、スケジュール管理、リマインダーの設定、天気情報の提供など、日常生活がよりスムーズに行えるようになります。

ビジネスにおけるAI組込みシステムの応用

  • 製造業の自動化

AI組込みシステムは、製造業における自動化を促進し、業務の効率化や精度向上に寄与しています。

スマートファクトリー:AIを活用した組込みシステムにより、製造工程の監視や最適化が可能となり、不良品の早期検出や生産ラインの自動調整が行われます。これにより、ダウンタイムの削減や生産性の向上が期待できます。
ロボットの自動制御:産業用ロボットは、AIを搭載することで、複雑な作業を自動化し、人間と同様の柔軟性を持って動作します。AIによる機械学習を通じて、ロボットが作業プロセスを改善し続けることができます。

  • 小売業でのスマート店舗

小売業でもAI組込みシステムは、効率化と顧客体験の向上に利用されています。

自動在庫管理システム:AIを使ったスマート在庫管理システムでは、商品データや購買履歴をリアルタイムで解析し、在庫の最適化や需要予測を行います。これにより、過剰在庫や欠品を防ぎ、運営コストを削減できます。
無人店舗:Amazon Goのような無人店舗では、AI組込みシステムが顧客の行動をリアルタイムで認識し、支払いを自動化することで、レジなしでのスムーズな買い物体験を提供します。

  • 農業の自動化(スマート農業)

AI組込みシステムは、農業の自動化や効率化にも貢献しています。

ドローンとセンサー:AIを搭載したドローンやセンサーは、土壌の状態、気象データ、作物の生育状況をリアルタイムで監視し、最適な灌漑や肥料の使用量を判断します。これにより、農業の効率化が図られ、生産量や品質が向上します。
自律農業機械:AI組込みのトラクターやコンバインは、自律的に作物の収穫や耕作を行い、農作業の省力化を実現します。これにより、人手不足の問題を解消し、生産性を向上させることができます。

  • 物流とサプライチェーンの最適化

AI組込みシステムは、物流業界でも重要な役割を果たしています。

倉庫内の自動化: AIを搭載したロボットが倉庫内でのピッキングや在庫管理を自動化し、効率的な商品移動と管理を実現します。また、AIが需要予測を行うことで、物流フローを最適化し、コスト削減を図ります。
自動配送ドローンや自動運転車: AI組込みシステムを搭載した自動配送ドローンや自動運転車は、配送業務を効率化し、配送コストを削減するとともに、迅速なサービスを提供します。

エッジAIとは

エッジAIとは、AIの計算処理をクラウドではなく、データが生成されるデバイスやその近く(エッジ)で実行する技術を指します。従来のAI処理はクラウド上で行われることが一般的でしたが、エッジAIはデバイス自体、またはその近くのエッジサーバーでAIモデルを動かし、リアルタイムでデータを処理・分析することを可能にします。

この技術の利点は以下の通りです。

  • 低遅延:データをクラウドに送信して処理結果を待つ必要がないため、リアルタイムでの処理が可能です。これにより、即時性が求められるアプリケーション(自動運転車やスマートホームデバイスなど)で効果を発揮します。
  • プライバシーとセキュリティの向上: データがデバイス内で処理されるため、センシティブな情報が外部に送信されず、セキュリティやプライバシーのリスクが低減します。
  • 通信コストの削減: データをクラウドに転送する必要がないため、大量のデータを送受信する際の通信コストや帯域幅の負担を軽減します。
  • オフラインでの動作:エッジAIはクラウドへの接続がなくても動作できるため、インターネット環境が不安定な場所や、完全にオフラインの環境でも利用可能です。

エッジAIの典型的な利用例としては、自動運転車、監視カメラ、スマート家電、産業用ロボットなどが挙げられます。これらのデバイスは、高速な応答性と安定した動作が求められるため、エッジAIによる分散型の処理が非常に有効です。

エッジAIの活用事例


自動運転車

自動運転車は、センサーやカメラを使って膨大な量のデータをリアルタイムで処理し、周囲の状況を認識する必要があります。例えば、道路標識や信号、歩行者や他の車両の動きを即座に判断し、安全な運転を実現するための意思決定を行います。エッジAIを搭載することで、データをクラウドに送信して処理結果を待つのではなく、車両内部で即座に処理できるため、ミリ秒単位での反応が可能になります。これにより、交通事故のリスクを低減し、迅速な運転制御を実現します。

スマート監視カメラ

エッジAIを搭載したスマート監視カメラは、カメラ自体で映像データをリアルタイムで解析し、異常な動きや行動を即座に検出できます。例えば、不審者が侵入した場合や、火災などの異常事態をカメラが直接認識し、アラートを発することができます。クラウドに映像を送る必要がないため、ネットワーク負荷を軽減し、より効率的な監視が可能です。また、個人情報を含む映像データが外部に送信されないため、プライバシー保護の観点でも優れています。

産業用ロボット

エッジAIを活用した産業用ロボットは、製造現場でリアルタイムに製品の品質チェックを行ったり、機械の異常を即座に検知したりすることが可能です。例えば、製造ライン上でロボットが製品の寸法や欠陥をAIモデルで瞬時に判断し、問題があれば即座にラインを停止するか、製品をはじくなどの対応を行います。これにより、製品の不良を防ぎ、生産性を向上させることができます。また、ロボットが自律的に動作を最適化することで、メンテナンスや修理の予測も可能になり、ダウンタイムを最小限に抑えることができます。

組込みシステムAIとエッジAIの違い

組込みシステムAIとエッジAIには共通点も多いものの、それぞれの特性と役割にはいくつかの重要な違いがあります。

組込みシステムAIは、特定のデバイス内で動作する限定的なAI機能に重点を置き、特定の機能を実行するために設計されています。一方、エッジAIは、より大規模なデータ処理をリアルタイムで行い、クラウドを介さずに即時対応が求められるシナリオに適しています。どちらも特定の用途に合わせて最適化されていますが、エッジAIはより複雑で広範囲なデータ処理を可能にし、組込みAIはシンプルで効率的な機能を実現します。以下にその違いを解説します。

組込みシステムの具体的な応用・活用事例

組込みシステムはビジネスの様々な分野で重要な役割を果たしています。例えば、製造業では、生産設備の自動化や監視システムに組込みシステムが利用されています。また、物流業界では、在庫管理やトラッキングシステムが組込みシステムによって効率化されています。

ビジネスにおける具体的な応用・活用事例

  • 自動車産業:自動運転技術や車内エンターテイメントシステムにおいて、組込みシステムは非常に重要です。特にAI技術と組み合わせることで、自動車はより安全で効率的な走行が可能になります。
  • 家電業界:スマート家電製品では、組込みシステムが家電製品の機能を制御し、AI技術と組み合わせることで、よりインテリジェントな製品が開発されています。これにより、エネルギー効率の向上やユーザーの利便性が高まっています。
  • 通信業界:ネットワーク機器やスマートフォンには、高度な組込みシステムが搭載されており、これらが私たちのコミュニケーションを支えています。特に5G技術の発展に伴い、組込みシステムの重要性がさらに増しています。

生活における具体的な応用・活用事例


  • 家電の自動化とスマート化

組込みシステムは、冷蔵庫、洗濯機、エアコン、テレビなど、多くの家電製品に搭載されており、家電の自動化を可能にします。例えば、スマート冷蔵庫は内部の温度や食品の在庫を管理し、必要な時に通知を送ったり、洗濯機が洗濯物の量に応じて洗剤や水量を調整することで、効率的な洗濯を実現しています。これにより、生活の質を向上させ、時間とエネルギーの節約が可能になります。

  • 交通と自動車システム

自動車における組込みシステムは、エンジン制御、ブレーキ、エアバッグ、カーナビゲーションシステムなどに利用されています。特に、自動運転技術や運転支援システム(ADAS)には、組込みAIが使われており、運転者の安全を確保し、交通事故の防止に寄与しています。また、燃費の最適化や車両の健康状態をリアルタイムで監視するシステムも、環境への負荷軽減に役立っています。

  • 通信とエンターテイメント

スマートフォン、タブレット、スマートスピーカー、テレビなどの通信機器やエンターテイメント機器にも組込みシステムが重要な役割を果たしています。スマートフォンでは、通信機能、カメラ、センサー、画面制御など、全ての機能が組込みシステムによって管理されています。これにより、私たちは高速で快適な通信環境や、エンターテイメントの提供を受けることができます。

  • 健康管理と医療機器

組込みシステムは、私たちの健康管理にも大きく関わっています。スマートウォッチやフィットネストラッカーには、センサーや小型コンピュータが組み込まれ、心拍数、睡眠パターン、運動量などを測定し、健康状態を管理してくれます。また、病院ではポータブル超音波機器や心電図モニターなど、医療機器にも組込みシステムが導入されており、迅速で正確な診断や治療のサポートを行います。

  • セキュリティと防犯システム

組込みシステムは、家庭用セキュリティシステムにも利用されています。例えば、スマートドアロックや監視カメラなどがあり、これらのシステムは、家の状況をリアルタイムでモニタリングし、異常があれば即座に警報を発することができます。防犯カメラは、映像をクラウドに送信するのではなく、組込みシステムで即座に分析し、必要なアクションを取ることができます。

  • 産業とインフラの自動化

家庭生活だけでなく、組込みシステムはインフラや産業機器にも幅広く活用されています。例えば、スマートグリッドでは、エネルギー供給の管理や効率化を行い、都市全体の電力消費を最適化します。また、工場の生産ラインでは、組込みシステムを使用してロボットや自動化機器を制御し、生産の自動化を実現しています。これにより、効率の向上とコスト削減が可能となります。

組込みシステム開発における人材状況

人材の充足状況とコスト、スキル

組込みシステム開発に必要な人材は、技術的なスキルが要求されるため、十分に供給されているわけではありません。特に、AIや高度なアルゴリズム設計を組み込む開発者は非常に需要が高まっています。しかし、熟練した人材は限られており、その結果、組込みシステム開発にかかるコストも上昇しています。

また、組込みシステム開発者には、以下のスキルが求められます。

  • プログラミングスキル:CやC++、Pythonなどの言語に精通していることが必要です。特に、メモリやリソースの制約を理解した効率的なコーディング能力が求められます。
  • ハードウェアの知識:組込みシステムは、ハードウェアと密接に連携して動作するため、プロセッサやマイクロコントローラに関する深い理解が必要です。
  • リアルタイム処理:リアルタイムシステムの設計やデバッグの知識も重要です。

ベトナムと日本における現状

日本では、組込みシステムの需要が高まっている一方で、開発者不足が深刻化しています。そのため、ベトナムなどの海外にオフショア開発を依頼する企業が増えています。ベトナムは、技術力のあるエンジニアが豊富であり、コストも比較的低いため、日本企業にとって魅力的な選択肢となっています。

ベトナムでは、教育機関や政府が積極的にIT人材の育成に取り組んでおり、特に組込みシステムやAI技術に関するスキルを持つエンジニアが増加しています。また、多くの企業がベトナムに拠点を置き、オフショア開発を行うことで、開発コストの削減と開発期間の短縮を実現しています。

「どのオフショア開発会社ごとに条件に合っているか確認するのは大変そうだ…」と思われた方は、ぜひRelipaにご連絡ください。双方の間のミーティングとヒアリングを通して、貴社の開発条件にピッタリなサービスをご紹介いたします。お気軽にご相談いただけます!

お問い合わせ


まとめ

組込みシステムは、私たちの生活やビジネスの多くの場面で重要な役割を果たしています。特にAI技術と組み合わせることで、従来のシステムでは実現できなかった高度な機能や柔軟性が提供されています。今後も組込みシステムとAIの融合が進むことで、さらなる革新が期待されます。

また、組込みシステム開発における人材の不足は課題であり、オフショア開発を活用することでこの問題に対処する動きが見られます。特にベトナムは、技術力とコスト面で日本企業にとって非常に有利なパートナーとなっており、今後も協力関係が強化されることでしょう。

Relipaは情報技術、ブロックチェーン、AIといった分野で日本IT企業の委託先として活動している8年間の経験を持っています。低コストで効率的なオフショア開発を図り、優れている日本語力があるBrSE、プロジェクトマネージャーと質の高い開発者は契約期間中100%日本語で「報連相」を行いながら、品質を保証することを約束します。

開発したいプロジェクトがございましたら、ぜひRelipaにご連絡ください。

株式会社レリパでは一緒に働く仲間を募集しています

同じタグの記事

今週のランキング

Nguyen Phuong Linhさんにいいねを伝えよう
Nguyen Phuong Linhさんや会社があなたに興味を持つかも