12/9(月) 応用科学学会シンポジウムで自動運転に関する講演を担当します☆彡(試乗会もあります!来て!)

1-7. 物体検出とセグメンテーションで遊んでみた

やること

Mask R-CNNは物体検出とそのセグメンテーションができる手法です。深いことは追求しませんが、ちょっと気になることがあったので試してみようと思います。

参考文献

参考文献をもとに、がんばって実行できるようにします。

物体検出、セグメンテーションをMask R-CNNで理解してみる (初心者) - Qiita
はじめにCouseraのMachine Learning → Python 機械学習プログラミング → ゼロから作るDeepLearning と歩んできて、次は応用編やりたいなと思っていたところに…
GitHub - matterport/Mask_RCNN: Mask R-CNN for object detection and instance segmentation on Keras and TensorFlow
Mask R-CNN for object detection and instance segmentation on Keras and TensorFlow - matterport/Mask_RCNN

実行環境

Google Colaboratoryが利用可能です。

Google Colab

忍野忍の髪はバナナか否か

さて、西尾維新の物語シリーズをご存知の方で、さらに忍野忍のフィギュアを見たことがある方は、一度は「忍の髪の毛ってバナナじゃね?」と思ったことがあるはずです。こういった疑問はニューラルネットに聞いてみるのがよいですね。

Mask R-CNNでは、Backgroundを含めて81クラスの物体検出とセグメンテーションができます。

class_names = ['BG', 'person', 'bicycle', 'car', 'motorcycle', 'airplane',
               'bus', 'train', 'truck', 'boat', 'traffic light',
               'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird',
               'cat', 'dog', 'horse', 'sheep', 'cow', 'elephant', 'bear',
               'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie',
               'suitcase', 'frisbee', 'skis', 'snowboard', 'sports ball',
               'kite', 'baseball bat', 'baseball glove', 'skateboard',
               'surfboard', 'tennis racket', 'bottle', 'wine glass', 'cup',
               'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple',
               'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza',
               'donut', 'cake', 'chair', 'couch', 'potted plant', 'bed',
               'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote',
               'keyboard', 'cell phone', 'microwave', 'oven', 'toaster',
               'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors',
               'teddy bear', 'hair drier', 'toothbrush']

よく見ると ‘person’ と ‘banana’ がありますから、今回の検証にうってつけです。

結果|バナナでない例

↓赤:frisbee 水:dining table

↓赤:bowl 青:parking meter

↓赤:person 水:cup 緑:surfboard 紫:donut

↓赤:donut 緑:donut 青:person

結果|バナナである例

↓赤:person 青:banana

↓赤:banana 水:dining table 緑:donut 紫:cake

↓赤:banana 緑:person 青:sink

↓赤:banana 水:remote 緑:surfboard 紫:person

結論

いろいろな画像で試してみましたが、髪がバナナ判定されるかどうかは五分五分といった印象です。同じフィギュアでも横~後ろのアングルであればバナナ判定率はぐっと高まりました。ドーナツの検出率は高かったです。

タイトルとURLをコピーしました