LoginSignup
3
4

More than 5 years have passed since last update.

Tensorflow Real-Time Object Detection メモ

Last updated at Posted at 2017-07-03

Building a Real-Time Object Recognition App with Tensorflow and OpenCV の方の github に上がってるソースを動かしてみたメモです。

この方の環境と僕の環境が違ったので。

  • Anaconda / Python 3.5
  • TensorFlow 1.2
  • OpenCV 3.0

以下の Dockerfile を作って。

FROM ubuntu:16.04

RUN apt-get update --fix-missing \
&& apt-get upgrade -y \
&& apt-get install -y \
      build-essential \
      cmake \
      git \
      wget \
      bzip2 \     
      sudo \
      wget \
      bzip2 \
      ca-certificates \
      curl \
      unzip \
      libgtk2.0-0  \
    && rm -rf /var/lib/apt/lists/*


# Anaconda3-4.2.0 install
RUN wget https://repo.continuum.io/archive/Anaconda3-4.2.0-Linux-x86_64.sh && \
    bash Anaconda3-4.2.0-Linux-x86_64.sh -b && \
    rm -f Anaconda3-4.2.0-Linux-x86_64.sh

ENV PATH $PATH:/root/anaconda3/bin

# OpenCV install
RUN conda install -c https://conda.anaconda.org/menpo opencv3

こんな shell script 作って。(run.sh とする。)

IMAGE=kidapu/tf-realtime
CONTAINER=tf-realtime

build () 
{
    nvidia-docker build -t $IMAGE . 
}

run () 
{
    # xhost +local:root

    nvidia-docker run --privileged -it \
      --name ${CONTAINER} \
      --env DISPLAY=$DISPLAY \
      --env="QT_X11_NO_MITSHM=1" \
      -v /dev/video0:/dev/video0 \
      -v /tmp/.X11-unix:/tmp/.X11-unix:ro \
      -v /home/kida/docker/08-tf-realtime/share:/tmp/share:rw \
      ${IMAGE} bash

    # xhost -local:root
}

# main
case $1 in
    "build") build ;;
    "run") run ;;
    *) echo "引数を指定して下さい";;
esac

以下のコマンド実行しました。

# docker の中から window を使うため
$ +xhost 

# shell script の実行
$ sh run.sh build
$ sh run.sh run

で、docker コンテナの中に入って、いろんなものの環境を確認するとこんな感じで。(作者の方と違いましたが、、

# python --version
Python 3.5.2 :: Anaconda 4.2.0 (64-bit)
# python -c "import cv2; print(cv2.__version__)"
3.2.0
# conda --version
conda 4.3.22

とりあえず、ソースおとしたり、関連モジュール落としてきて。

$ git clone https://github.com/datitran/Object-Detector-App.git
$ conda env create -f environment.yml

てやると、なんか envirotment.yml の menpo::tbb=4.3_20141023=0 のところで、「そんなのないよ」的なエラーがでてたので、よくわからないながら、以下のように変えてしまって。

menpo::tbb=4.3_20141023=0
↓
menpo::tbb

以下のように実行すると、ウェブカムの映像をリアルタイムに物体認識するアプリケーションが動きました。(ウェブカム必須)

python object_detection_app.py

僕の所感だと、 yolov2 と比べると、デフォルトのモデルは精度低いし、FPSも低いなって印象でした。
ただ、yolov2 より SSD のほうが精度いいってどこかの記事で見た気がするので、もうちょいモデルとか学習データとか調整して、もう1回試してみたい。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4