■ 今日のおしながき

はじめに
物体検出とは
各校のソリューション
E資格の観点で復習(画像認識と物体検出および両者の違い、データ集合の拡張)

■ はじめに

DCON2023の各校のソリューションを参考にして、E資格合格につながる技術を学んでいくシリーズ、パート2です。今回は、DCON2023本選では10校中6校が用いていた「物体検出」がテーマです。

■ 物体検出とは

物体検出(object detection)とは、画像内に存在する物体を検出する行為です。
image.png 234.71 KB米子工業高等専門学校 農作物まもルンジャーの作品。カラスの場所を特定するバウンディングボックスが見えます。
このデモは、
https://www.youtube.com/watch?v=xc_mTBptzNo&t=13401s にて視聴できます。

E資格のシラバスの中では、物体検出を可能とする手法としてFaster R-CNN、YOLO、SSD、Mask R-CNN、FCOSの5つが挙げられています。いずれも、途中で画像内の物体の場所を特定するバウンディングボックス(Bounding Box)を生成し、バウンディングボックスの中の物体の分類や形状抽出などを行います。
image.png 20.06 KB(E資格シラバス2022より抜粋、筆者が加筆修正)

では、各校のソリューションを見ていきましょう!

1. 鳥羽商船高等専門学校 Shiraishi lab

・テーマ名・概要    (当日のプレゼンへのリンクはこちら
深層学習を活用した温州みかん栽培支援システム「選果せんか?」
紀州地域のみかん栽培の防除(農薬散布)において、画像認識によるAI防除機で果樹だけにピンポイントで農薬を散布・更にクローラーで自動化(このデモはこちらのリンクから視聴できます)image.png 163.88 KB加えて、家庭選果の重労働をAIプレ選果で解決

・松尾先生からの技術コメント(こちらのリンクで視聴できます)

- 防除では、木を認識して噴霧する、という物体検出をしている。バウンディングボックスの大きさによって距離を疑似的に推定し、近くであれば噴霧する。
- 外観検査では、環境光の外乱を減らすさまざまな工夫が行われており、非常に精度が高くなっている。

・もりさん補足
物体検出に何を使っているかは言及されていませんでしたが、もしかするとE資格のシラバスに挙げられているFaster R-CNN、YOLO、SSD、Master R-CNN、FCOSのいずれかが用いられている可能性もありますね。

バウンディングボックスの大きさから噴霧すべき木までの距離を測るというアイデアはなるほど!ですね。

3 モンゴル科学技術大学付属高専 SF Team

・テーマ名・概要  (当日のプレゼンへのリンクはこちら
大きな社会問題となっている開発途上国での労働災害の急増の裏にある、個人用保護具の未着用の問題を検出するソリューション

プレゼンの中で、代表的な個人用保護具であるヘルメット・ベスト・手袋が着用されているかどうかを、作業員が通るたびに認識するデモビデオが紹介されていました。こちらです → https://www.youtube.com/watch?v=xc_mTBptzNo&t=4602s
image.png 168.64 KB実際に見て頂くと、人が通るたびにHelmet, Vest, Hand protectionの数値がリアルタイムに変化していく様子が見られます!また、Pythonのモジュール名の中に、物体認識を想起させる「obj_det」が含まれているのが見えます。

・松尾先生からの技術コメント(こちらのリンクで視聴できます)

- 軽量化したConvolutional Neural Network(CNN)をRasberry Piに搭載して実現
ヘルメット・ベスト・手袋の3クラスを認識、各精度は8割、8割、6割
- データは自分たちで作成して学習している。

・もりさん補足
E資格とは直接関係のない補足ですが、Rasberry PiへのCNN搭載事例は比較的豊富に存在しますし、現在のRasberry Piならば実装もPythonを用いてPCと同様な方法で実装することが可能です。画面を見ると、モンゴル高専もPythonで、軽量なモデルを実装しているようですね。

6 大島商船高等専門学校 Smart Searcher 開発LAB

・テーマ名・概要  (当日のプレゼンへのリンクはこちら
Smart Searcher NEO
鯛(たい)養殖現場において、餌やり時に「小さな鯛にも餌が行きわたるようにする」というソリューション
これにより、育つ鯛の大きさのばらつきをなくし、結果としてロスをなくす
3年後には鯛以外の魚への適用も視野に入れている
・松尾先生からの技術コメント(こちらのリンクで視聴できます)

- 鯛(たい)の検出をやっており、大・小2クラスの分類をしている
- ポイントは、距離が遠くなると小さくなってしまい実際の大きさがわかりにくいところを、小さい鯛ほど白い、という色の違いに注目して、その鯛がどのくらい大きいかを色から判別、その精度が84%となっている
- ドローンを空中から水中へ、というのは技術的には可能。

・もりさん補足
プレゼンの中で、鯛の検出にはYOLO v7を用いている、との解説がありました。学習データは実際にいけすに行って採取した、とのことです。
image.png 174.25 KB

7 沼津工業高等専門学校 D4AI

・テーマ名・概要    (当日のプレゼンへのリンクはこちら  )
ルックンちび
保育士の事務作業と午睡チェックを支援する総合保育システム
タブレットを触っている暇もない保育士のために、書類作成システムは音声認識
午睡チェック機能は物体検出
image.png 111.49 KB午睡チェック機能の紹介。写真はちょうど、うつ伏せを検知して警告を出しているところです。
https://www.youtube.com/watch?v=xc_mTBptzNo&t=10424s辺りから説明含めて閲覧可能。

・松尾先生からの技術コメント(こちらのリンクで視聴できます)

- お昼寝の姿勢は、YOLOでキーポイントを認識して、右肩・左肩がどの位置にあるかでうつ伏せなのか仰向けなのかを判定している
- 書類の作成は音声認識を使用してテキスト化し、ChatGPTを用いて規定のフォーマットに直している

・もりさん補足と想像
システム構成はこちらから視聴することができます。YOLOをJetson Orinに搭載して実現しています。
https://www.youtube.com/watch?v=xc_mTBptzNo&t=10382s
image.png 153.41 KB
YOLOを使っているとのことですが、午睡チェックのビデオ紹介で手首、肩、腰の位置を特定している様子を見ますと、YOLOv7 or YOLOv8を用いた姿勢推定のソリューションをベースとして、判定部分をアプリケーションソフトとして開発しているのではないか、と想像しています。

9 仙台高等専門学校 広瀬キャンパス RDS LAB DCON

・テーマ名・概要    (当日のプレゼンへのリンクはこちら
Road Damage Scanner
路面の劣化個所を調査するソリューション
スマホで動画保存しブラウザでアップロードすると、即座に結果が表示される
image.png 74.64 KBアップロードされた道路画像から、劣化箇所を検出した例。
https://www.youtube.com/watch?v=xc_mTBptzNo&t=12466にて閲覧可能です

・松尾先生からの技術コメント(こちらのリンクで視聴できます)

- 道路画像から物体検出技術を使っている。白線やひび割れ等の判別をしている。精度8割。
- CRDDCのパブリックなデータセットを使用して学習している。

(参考) E資格では出題されないと思いますが、CRDDCについてはこちら
https://arxiv.org/abs/2211.11362
・もりさん補足
仙台高専さんは、大会当日の質疑応答の中で、YOLO v7を使用していると答えていました。また、劣化箇所は5種類検出できるようです。
https://www.youtube.com/watch?v=xc_mTBptzNo&t=12427s
image.png 211.08 KB

10 米子工業高等専門学校 農作物まもルンジャー

・テーマ名・概要    (当日のプレゼンへのリンクはこちら  )
Crow Chaser
農作物をカラスから守るためのソリューション
カラスは変化のない脅しだといずれ慣れてしまうので、ドローンで自動追尾し追い回す
・松尾先生からの技術コメント(こちらのリンクで視聴できます)

- カラス認識。自分たちで1,000枚程度の画像を準備し、データ拡張している。その際に背景を入れ替えることで効率的に精度を上げ、9割程度の精度。
- ドローンはかなりスピードの速いドローンで、カラスを追尾可能。縦に変化されると少し見逃してしまうこともあるが、横の変化であればかなり追従する。

・もりさん補足
システムの概要はこちらで視聴することができます。
https://www.youtube.com/watch?v=xc_mTBptzNo&t=13346s
畑にJetson AGX Xavier搭載PCを置いて物体検出とドローン制御をしているとのことです。
image.png 177.99 KB
あと、松尾先生のコメントにあるデータ拡張(data augmentation)は自作のプログラムで行ったとのことでした。https://www.youtube.com/watch?v=xc_mTBptzNo&t=13378s
image.png 209.25 KB

■ E資格の観点で復習

では、ここまでで見てきた内容を、E資格の観点で復習してみましょう。

画像認識
DCON2023本選出場校のソリューションには見られませんでしたが、E資格では、CNNを用いた各種の画像認識も出題されますので合わせて勉強しておきましょう。

ここでいう画像認識とは、「猫、犬、その他」のように、画像に映っているものを分類する機能を指しています。E資格では、画像認識(分類)に使えるDNNを用いた機構として、GoogLeNet、ResNet、WideResNet、DenseNet、EfficientNetが出題範囲とされています。
image.png 19.76 KB(E資格シラバス2022より抜粋、筆者が加筆修正)

物体検出
繰り返しになりますが、物体検出(object detection)とは、画像内に存在する物体を検出する行為です。

物体検出に関するE資格の出題範囲は、Faster R-CNN、YOLO, SSD, MasterR-CNN、FCOSの5つ。各手法の拙作の解説を掲載しておきますので、参考にして頂ければ幸いです。
image.png 34.52 KB(筆者作「E_Syllabus_Example.xlsx」より抜粋。クリックすると拡大できます。拙作のブログ「自分シラバス 」にて公開しております。)

DCON2023では、YOLOの使用例が多く、特にYOLO v7が目立っていたと思います。YOLOでは、画像全体を小さなグリッドに分割し、各グリッドに物体が存在するかどうかを判定します。

(参考) 画像認識と物体検出の違いは、対象が1個か複数個かの違い
画像認識では、画像の中には対象が1個だけ存在し、それが画像の全体を占めている、というのが一般的です。したがって、位置や領域を検出する必要がありません。
他方、物体検出では、画像の中には対象が複数存在し、それらが画像のどこを占めているかもわかりません。したがって、まず対象の位置や領域を検出し、それから各対象に関する処理を行います。

データ集合の拡張
画像認識、物体検出のための効果的な学習データの集合を作成するのに、データ拡張は有用です。これも、E資格の範囲に含まれています。

データ拡張については、もともとE資格シラバス2020でも言及されていましたが、E2022で具体的な手法が追加されました。下図の箇所が新たにシラバスに追加された内容です。
image.png 35.45 KB(E資格シラバス2022より抜粋、筆者が加筆修正)

米子高専のカラスの画像の「左右反転、ノイズ付加、背景入れ替え」をE資格シラバスの記載内容の対応付けを試みてみました。
・左右反転
    Random Flip (水平方向の反転は、Random Horizontal Flipとも呼ばれます)
・ノイズ付加
    Erase (画像のある範囲のみ消去するRandomErasingはノイズ付加となります)
    Contrast (PyTorchのRandomAutoContrast は、ある種のノイズ付加と言えるかもしれません)
    Brightness (明るさを変えるのは、ある種のノイズ付加と言えるかもしれません)
    Rotate (ほんの少し回すのは、ある種のノイズ付加と言えるかもしれません)
・背景入れ替え
    これはE資格シラバスの記載内容には該当するものが存在しないかと思われます。