PyCon JP 2024

ロケール設定が保存されました。pretalxでは英語のサポートが充実していると思っていますが、問題やエラーが発生した場合は、ぜひご連絡ください。

PythonとOpenCVで楽しむ物体検出!
2024/09/28 , 4F Track3

概要

このトークでは、一般的に使われるPythonとOpenCVライブラリを使用して、PCのウェブカメラから物体(主に人の顔)を検出し、どのような結果が得られるかを見ていきます。物体検出のためにカスケード分類器を使用し、すでに顔の検出ができているデータセットを使用してカメラから物体を検出しながら、Pythonコードの例を示し、カメラ映像から物体を検出したときの楽しさをお話しします。
また、専門用語が多くあるため、その説明を含めながらこれからPythonを始める方に向けて導入しやすい内容でトークをします。
PythonとOpenCVライブラリを使用して、PCのウェブカメラから物体(主に人の顔)を検出するだけでなく、条件分岐を取り入れて、顔や人を認識した場合にどのようなアクションが取られるかについてもお話しします。簡単な例として、顔が検出されたときに「顔検出」という検出結果を表示する方法を示します。
さらに、ビデオや静止画の使用方法、およびリアルタイムでの方法についても、説明します。

コンテンツ

  • はじめに
  • これをやりたいと思った理由
  • OpenCVについて
  • カスケード分類器とは
  • 物体検出
  • ビデオと静止画からの検出
  • リアルタイム検出
  • 条件分岐を試してみた
  • その他の実用例
  • 最後に

聴講者が得られるもの

  • Pythonでのカメラデバイスの使用方法
  • 物体検出の方法
  • 顔検出の基本
  • IoTの基礎
  • OpenCVライブラリの使い方
  • カスケード分類器とは
  • アノテーションとは

OpenCVとカスケード分類器の概要

OpenCVは、コンピュータビジョンのタスクを簡単に実行するための多数の関数を提供しています。特に、カスケード分類器は、物体検出において高いパフォーマンスを発揮します。この分類器は、複数の簡単な特徴を組み合わせて物体を検出し、リアルタイムでの処理にも適しています。

物体検出の手法

物体検出のプロセスは、以下のステップで構成されます。

  • 画像の取得: ウェブカメラからの映像をキャプチャします。
  • 前処理: 画像をグレースケールに変換し、ノイズを除去します。
  • 特徴抽出: Haar特徴量を計算し、カスケード分類器を用いて顔を検出します。
  • 結果の表示: 検出された顔に枠を描画し、結果を表示します。

条件分岐の導入

物体を検出した際に、特定のアクションを実行するために条件分岐を取り入れます。例えば、顔が検出された場合に「顔検出」というメッセージを表示するだけでなく、ログに記録したり、特定のイベントをトリガーすることが可能です。これにより、物体検出の応用範囲が広がり、実践的なシステムの構築が可能となります。

ビデオと静止画での検出

ビデオストリームと静止画の両方から物体を検出する手法についても解説します。リアルタイムでの物体検出は、ビデオストリームをフレームごとに処理することで実現されます。一方、静止画からの検出は、単一のフレームに対して同様の手法を適用します。

実践例の紹介

最後に、物体検出技術を利用した実践的な例を紹介します。例えば、監視カメラシステムやインタラクティブなアートインスタレーションなど、様々な応用例を通じて、物体検出技術の可能性を探ります。

このトークは、PythonとOpenCVを用いた物体検出の基本から応用までを網羅し、参加者が実際に技術を活用できるようになることを目指しています。


この題材を選んだ理由やきっかけ

私は、ロボットを作ったり、モノを作ったり、現実で何か動くモノを作るのが好きです。
そこでPythonでRaspberry Piを知り、そこから、いろんなアクションをしていました。
そんな中、ロボットの目の部分に注目し、ロボットは何を見て何を考えられるかに注目し、この題材を選びました。
今後は、人間だけでなくロボットが何を考え、何を見ることができるかなどのサポートをしたいと思い、皆さんが取り組みやすいライブラリの一つとしてOpenCVを扱った題材にしました。

オーディエンスが持って帰れる具体的な知識やノウハウ

Pythonでのカメラデバイスの使用方法
物体検出の方法と楽しさ
顔検出の基本
IoTの基礎
OpenCVライブラリの使い方
カスケード分類器とは
アノテーションとは

オーディエンスに求める前提知識

Pythonの基本的な知識
ファイルパスの操作に関する理解
GitHubの利用経験

オーディエンスの経験レベル

Intermediate

発表の言語

日本語

発表資料の言語

日本語

See also: PythonとOpenCVで楽しむ物体検出!

私は片寄里菜(Katayose Lina)と申します。日本を拠点に活動しています。愛称はセリナ(Selina)です。
現在、PyCon JP 2022およびAPAC 2023では座長を務めました。
2016年からPythonに興味を持ち、初めてPyCon JP 2016に参加しました。その後、PyCon JP 2017および2018では一般スピーカーとして登壇し、2020年には招待スピーカーとして参加しました。

2018年には初めてPyCon USに参加し、アジア各国で開催されるPyConにも定期的に参加しています。また、PyLadies Tokyoのスタッフとして活動し、イベントの企画や運営にも携わっています。2018年にはPyLadies Bangkokの立ち上げをサポートし、アジアのPythonコミュニティとの交流を深めました。

また、株式会社moegiを設立し、GIS(地理情報システム)のサービスを提供しています。また、慶應義塾大学SFCの上席所員として、ドローンに関する講義やサポートを行っています。さらに、2024年からは飛行機のパイロット操縦に挑戦し、定期的に訓練を積んでいます。