車載分野の人検出をどう作るか

先に[自動運転を成功させるためには何が必要か](https://qiita.com/nonbiri15/items/340e9d12e11b414d9273) という駄文を書いた。

今までに何回も人検出器の学習をしたことがありつつ、機械学習の進展を調べながら思ったことを引き続き駄文として書こうと思う。既にこの分野に取り組んでいる人にとっては何の新規性もない。それでも新規に取り組む人には無駄な取り組みをしてほしくないので書こうと思った。車載分野の人検出は、開発会社によっては、もう枯れている技術になるのかもしれない。
　車載分野はまったくの門外漢の私が書いた駄文である。

# 車載の人検出に必須と考える項目
- [ ] どのような姿勢でどのような人がどの場所にいても、事故を引き起こさないことを確保できること。
    - [ ] 車椅子の歩行者が検出できないのは論外
    - [ ] 転んだ歩行者を見つけられないのも論外
    - [ ] 酔っ払いが、道に倒れているかもしれない。
- [ ] 人に付随するさまざまなものが、事故につながらないようにすること。
    - [ ] 人が大きな荷物を持っていたりする。その領域がぶつかってはいけない領域であることが認識されなくてはならない。
- [ ] 生じる危険に対して予測して行動をできること。
- [ ] 人が急に物陰から出現するかもしれない、急に歩いている向きを変えるかもしれないという潜在的な危険に対して、余裕を持って対処できるようにすること。
    - [ ] 停車しているバスの横を通るときには、バスのかげから、人が出てきても安全に停止できるよう行動しなくてはならない。（厳密にいうと人検出の範囲から超える認識）
- [ ] 学習・評価が限られた範囲でしかできないことに対して、それでも未知の状況に対する性能の確保ができる考えられる裏付けを確保すること。
- [ ] 人の作る機械学習の性能に限界があるという前提におき、別の手法でも事故を未然に防ぐための方策を用意しておくこと。

## 個別の性能
- [ ] 奥行きを最低限順序としては算出すること。
- [ ] 凸物体の領域をセグメンテーションできること。
- [ ] セグメンテーションされた領域を分類できること。
- [ ] 人と人に付随する各種の対象物が何であるのかを判定できること。
- [ ] 人と人に付随する各種の対象物との関係性を記述できること。
- [ ] 人のポーズ推定
- [ ] 人の体の向き
- [ ] 人の進行方向
    - [ ] クルマが通っている信号のない道路を渡ろうと見計らっている歩行者の検出は難しい。いきなり、急に走り出して車道を横切ろうとする。事故を起こす可能性が高い。
- [ ] 人検出のロバスト性
- [ ] 高いフレームレート
- [ ] 少ない遅延（レイテンシー）

## 教師あり学習という限界を乗り越えること
- 教師あり学習では、教師あり学習で与えたデータの範囲でだけ、その性能が確保できる可能性がある。
- 教師あり学習では、学習にあたえていない範囲では、常に潜在的な弱点を隠し持っている。
- 自己教師あり学習は、車載の人検出において必須である。
- 自己教師あり学習ではアノテーションが不要なので、大量のデータを学習に使える。
- その大量のデータから、データの中のルールを見つけ出せる。
- 自己教師あり学習といえども、限られた偏ったデータセットでは、十分ではないはずだ。

## 


## どうテストするのか
まずは、公開されているデータを探そう。
[第１回コンテスト：車両前方カメラ画像を活用した、オブジェクト検出＆セグメンテーション](https://signate.jp/lp/ai-edge-contest)

[Vehicle and Pedestrian Detection Dataset](https://www.kaggle.com/datasets/enesbayturk/vehicle-and-pedestrian-detection-dataset/discussion)

### テストデータを用意した範囲でしか、性能を確認できないという弱点
− 有理数と無理数でその頻度が違う（どちらも無限にあるのに）という話を聞いたことがあるだろうか。
- どの区間をとっても、その区間にある有理数が無限にあるのにもかかわらず、それでも無理数の密度には追いつかないという話した。
- 検出問題でどんなに多くのテスト用画像を用意しても、検出の実際のユースケースの多様性には追いつかない。
- どんなにテストデータを用意しても、実際のユースケースで性能出ると保証しきれるものではないという、つらい現実がある。
- だから、どうやって性能を担保するのかという別のアプローチを考えなくてはならない。

## CGによるテストデータが可能にすること
- CGを用いると、同じ体型・同じ服装・同じ姿勢であっても、ライティングの異なる画像を用意できる。
- そうすると、ライティングの状況によって検出の漏れがないかどうかをチェックできる。
- 十分に検出できる範囲が適切な広がりをもっているかどうか。
- 十分に検出できる範囲を、要因ごとに変化させていって、どの要因によって検出率が影響を受けるのかを知ることができる。


## あなたの想定するカメラの解像度・フレームレートでどうなるのかを考えよう。

## 自分たちの強みが活かせるように、ルールを変える。
- もし、あなたの会社が、走行可能領域の判断だけで、酔いつぶれた歩行者がどんな姿勢をしていても、十分な距離をとって回避行動（停止・距離をとって脇を通過する）ができるならば、走行可能領域の判断で事故を回避できることの要件を、採用側の必須の要因に指定するようにルールへの提案をするのもありだろう。
- そうすれば、走行可能領域の判断で事故を回避できることによって、画像からの歩行者検出という検出漏れを生じやすい技術の欠点を減らせる。

# バックアッププランの重要性
- 静止画からの人検出が検出に失敗すること・誤検出をしてしまうことは珍しくない。
- 一つのロジック・一つの学習結果だけで、十分な水準になることはないと考えている。

## 実シーンには、いくらでも想定外が起こる
次の画像は、広告トラックの画像である。
このような入力が入ったときに、車載の人検出はどうすべきだろうか。
### してはいけないこと：至近距離に人がいると誤判定すること。
- 人の見え方だけで、距離を推測することはないだろう。
- 距離の算出をステレオカメラ・Lidarなどで算出するはずだから、距離を間違えて、ブレーキなどの回避行動をとることはないであろう。
この例で言いたいことは、実画像にはいくらでも想定外の変な画像が入ってくる危険があるということだ。


![maxresdefault-1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83761/6fb6a10c-afe9-3b76-6c28-124a0dd79296.jpeg)

図　このような場面に出くわしたらどうなる。



## キーワード
- 走行可能範囲
- 衝突時間の算出

## 画像認識技術は、自動運転の分野のほんの１つの領域にすぎない。
- 画像認識技術のエンジニアは、画像認識技術の重要性の強調したがるが、自動運転の分野のほんの１つの領域にすぎない。
- 対象物にぶつからないように動作させるだけだったら、Optical flow を用いてぶつからないように動作させることのできる場合がある（特に動いているものがいない環境では）。その場合は、大きなoptical flow を生じたものが、自分の動作によって生じたのだとすると近距離にある可能性が高い。optical flow が放射線状に広がっている場合には、自分との距離が小さくなってきていて 衝突時間が小さくなってきていることを示す。
- 自動運転の１つのあり方としては、人がその場所に入ってこない専用線（線路から転用）を使うことによる運用も考えられる。地方の鉄道がなくなった地域での交通網の確保としての可能性がある。

## 行動予測・プラニング・意思決定というもっと難しい領域
- 認識技術・機械学習分野のエンジニアにとっても、行動予測・プラニング・意思決定というのは新しい領域です。
- この分野の技術者は、車載関係の技術者がいる程度で、それ以外の職種で行動予測・プラニング・意思決定の経験者はいないことでしょう。
- 経験者を求めるのではなく、資質がある人を見極めてチームとして切磋琢磨して相互に育て合うことが必要でしょう。

----
[自動運転車の歩行者検知システムは有色人種と子供に対する偏見を示す](https://www.cryptopolitan.com/ja/%E8%87%AA%E5%8B%95%E9%81%8B%E8%BB%A2%E8%BB%8A%E3%81%AE%E6%A4%9C%E5%87%BA%E3%81%AB%E3%81%AF%E3%83%90%E3%82%A4%E3%82%A2%E3%82%B9%E3%81%8C%E5%AD%98%E5%9C%A8%E3%81%99%E3%82%8B/)

[夜間歩行者の検知性能で競う、JNCAPの自動ブレーキ最新試験](https://xtech.nikkei.com/atcl/nxt/column/18/01808/100600002/)

[2018年度追加試験項目 夜間対歩行者PCS（街灯あり、対向車あり、車室内）](https://www.youtube.com/watch?v=ePuaCDDIP80)

[車の対歩行者自動ブレーキ、多くが暗闇で十分機能せず＝米調査](https://jp.reuters.com/article/autos-safety-pedestrian-idJPKBN2Q008B)

[Euro NCAP Puts Autonomous Pedestrian Detection to the Test](https://www.youtube.com/watch?v=FTKxCE5qmQM)

----
追記： 以下の記事がおすすめです。
[【学習法】自動運転系Deep Learningエンジニアになる為の勉強法](https://qiita.com/minh33/items/4dc83791306ce80d8f17)

## カメラ大事
- 画像認識は、入力となる画像の品質が劣化すると、できることに限界が生じてくる。
- だからといって、しかたがないと諦めることはできない。
-「カメラで撮影した画質が悪かったので、事故を起こしてしまいました」というわけにはいかない。
- だから、カメラの選択が重要になる。
- カメラの記事
 [ティア某カメラを使ってみる&ROS2での使用](https://ar-ray.hatenablog.com/entry/2022/11/15/080000)

## 自動運転の落とし所

>「本書は、自動運転の技術開発体制に反対しているのではない。むしろ現在の自動運転の技術開発体制そのものは大きく評価し、そのうえで、せっかくの大規模な開発のアウトプットが社会的利益につながらない、空振り状態になる可能性が大きいことを危惧しているのである。そこで本書は、現在の自動運転の技術開発の現状と課題を過去の歴史から振り返って明確にしたうえで、社会的利益につながる方向に舵を切ることを提言している。」
 古川修「自動運転の技術開発　その歴史と実用化の方向性」
 
 
## 参考図書
- 伊東敏夫[「自動運転のためのセンサシステム入門　　　　　－車載カメラとLiDARによるセンサフュージョン－」](https://www.hanmoto.com/bd/isbn/9784526080050)
- 香月理絵[「自動運転技術入門　AIｘロボティクスによる自動車の進化」](https://www.ohmsha.co.jp/book/9784274227011/)
- 上岡 直見 [「自動運転の幻想」](https://www.hanmoto.com/bd/isbn/9784846119119)
- [古川修「自動運転の技術開発　その歴史と実用化の方向性」](https://grandprix-book.jp/2021/12/28/%E8%87%AA%E5%8B%95%E9%81%8B%E8%BB%A2%E3%81%AE%E6%8A%80%E8%A1%93%E9%96%8B%E7%99%BA%E3%81%9D%E3%81%AE%E6%AD%B4%E5%8F%B2%E3%81%A8%E5%AE%9F%E7%94%A8%E5%8C%96%E3%81%B8%E3%81%AE%E6%96%B9%E5%90%91%E6%80%A7-2/)

- 招待講演 pdf [「自動運転・運転支援に使われる画像認識技術と車載カメラへの要求・課題」](https://www.google.com/url?sa=i&url=https%3A%2F%2Fresearchmap.jp%2Ftokakita%2Fpresentations%2F12401482%2Fattachment_file.pdf&psig=AOvVaw18hOSEIunq-iS0-KbT-4Rq&ust=1703128934709000&source=images&cd=vfe&opi=89978449&ved=0CBEQjRxqFwoTCPDYsfuHnYMDFQAAAAAdAAAAABAD)