駅で走る自動警備ロボットの物体検出部分の開発を行った。
自分がやってきたことは主に以下の通り。
- 2D物体検出を3D物体検出に改造
- RGB画像とDepth画像の同期処理
- 距離フィルター処理
- 高速化
**2D物体検出を3D物体検出に改造**
intel realsenseD455を用いて、rgbとdepth情報を取得し3d物体検出での物体検出システムを開発した。これまでは入力がrgbの3チャネルだったのでdepthも加えた4チャネルにも対応する処理を追加した。
**RGB画像とDepth画像の同期処理**
入力ノードには[realsense-ros](https://github.com/IntelRealSense/realsense-ros)を用いた。rgb画像とdepth画像はそれぞれ別のノードからpublishされるので、同じフレームで同期できるように処理を変更した。それについてまとめた記事は[こちら](https://qiita.com/Hiroaki-K4/items/e39fb08681567291719d)。
**距離フィルター処理**
人と白杖の距離が離れているときにはじくフィルター処理を追加した。具体的は、人がカメラから2mのところにいて、白杖が4mの壁に立てかけられているときなどに人の手を白杖の位置にかざしても検出されないようにした。realsenseのピクセル値が思ったよりノイズが多かったため、人の位置に比べて、白杖の一定以上のピクセルの距離が離れている場合にはじくようにした。
**高速化**
既存のシステムだと、5FPSだったので高速化を行った。現在は15FPSまで高速化できるようになった。[tkDNN](https://github.com/ceccocats/tkDNN)を用いた。ただ、tkDNNはdepthも合わせた4チャネルには対応してなかったため改造した。
[参考記事](https://qiita.com/Hiroaki-K4/items/37efbfeecd31c5bfbb90)