TensorFlow Liteでの物体検出をシミュレートしてみました。
良い案を思いつきました。
USBカメラのに写る映像のなかの物体検出ができたので実際の世界の中で使ってみようと考えました。
でも、機材一式を持って街に出るのは少々ハードルが高いのでどうしようかな、と思い悩んでいました。
窮すれば通づ、です。
思いつきました。
手持ちの動画をパソコンの画面に映し出し、それをUSBカメラで撮ることで、あたかも今、その場にいるような感じにして物体検出のシミュレーションをすることとしました。
やり方は、
Surface Laptop2で手持ちの動画を再生します。
これをRaspberry Piに繋いだUSBカメラで撮影します。
この状態で、Raspberry Piで物体検出アプリを動かし、その結果がRaspberry Piの外付けモニタにUSBカメラで撮った映像と合わせて表示されるので、モニタの映像を携帯電話のカメラで撮影する、
という手順です。
まずは街並みを歩いてみましょう。
ヨーロッパの街並みを散歩する動画がありました。
それにTensorFlow Liteでの物体検出を行ってみました。
結果を動画にしましたので見てください。
結構な確率で人を検出していると思います。
また、車も正確に検出しています。
乗用車、トラック、バスを認識できています。
ときどき道路標識も認識しています。
検出時間が画面左上に表示されていますが、約15msec前後で行うことができています。
高速です。
その代わりというか推定を行なっているCoral TPUはかなり高温になっています。
街歩き
僕は38年前に文字認識や物体認識のプログラムを作ったことがありますが、8ビットマシンであったこともあって1画面の認識には約1秒かかっていました。
次はハワイの街を散歩です。
人に関しては、ほぼ確実に検出しています。
その上、リアルタイムに検出できるところが凄いです。
では、高速道路を走りましょう。
まずは、空いている高速道路での走行です。
車を安定して検出できていることが判ります。
今回のシステムを実際の車に搭載しても使えそうですね。
次に、高速道路で渋滞につかまったときの映像です。
まあ、これはお遊びですが、乗用車、トラックを正確に検出できていることが判ります。
以上、4ケースのシミュレーションを行いましたが物体検出速度の速さ、正確さに脱帽です。
物体検出の本体
余談ですが、物体検出のコードは下の1行だけです。
results = detect_objects(interpreter, image, args.threshold)
detect_objectというモデルがgithubに公開されていますが、それを使うことで高度な物体認識を簡単に使うことができます。
また、detect_objectsで検出できる物体は下の表にある80種類のものです。
興味が湧いてきたので、時間があるときにdetect_objectsの中を見てみようと思います。
さて、次はなにを検出しますかね。
乞うご期待。
1,person | |
2,bicycle | |
3,car | |
4,motorcycle | |
5,airplane | |
6,bus | |
7,train | |
8,truck | |
9,boat | |
10,traffic light | |
11,fire hydrant | |
12,stop sign | |
13,parking meter | |
14,bench | |
15,bird | |
16,cat | |
17,dog | |
18,horse | |
19,sheep | |
20,cow | |
21,elephant | |
22,bear | |
23,zebra | |
24,giraffe | |
25,backpack | |
26,umbrella | |
27,handbag | |
28,tie | |
29,suitcase | |
30,frisbee | |
31,skis | |
32,snowboard | |
33,sports ball | |
34,kite | |
35,baseball bat | |
36,baseball glove | |
37,skateboard | |
38,surfboard | |
39,tennis racket | |
40,bottle | |
41,wine glass | |
42,cup | |
43,fork | |
44,knife | |
45,spoon | |
46,bowl | |
47,banana | |
48,apple | |
49,sandwich | |
50,orange | |
51,broccoli | |
52,carrot | |
53,hot dog | |
54,pizza | |
55,donut | |
56,cake | |
57,chair | |
58,couch | |
59,potted plant | |
60,bed | |
61,dining table | |
62,toilet | |
63,tv | |
64,laptop | |
65,mouse | |
66,remote | |
67,keyboard | |
68,cell phone | |
69,microwave | |
70,oven | |
71,toaster | |
72,sink | |
73,refrigerator | |
74,book | |
75,clock | |
76,vase | |
77,scissors | |
78,teddy bear | |
79,hair drier | |
80,toothbrush |
では、また。