コンテンツへスキップ

2019年09月04日  めざましじゃんけん 結果

フジテレビ めざましテレビ めざましじゃんけん の結果を保証したり、全ての結果が記載を保証するものではありません。

2019年09月04日のめざましじゃんけんの結果をベストエフォートで公開します。


じゃんけん結果システムイメージ

Goo(グー) Choki(チョキ) Pa(パー)

めざましテレビ|めざましじゃんけんーフジテレビ

めざましじゃんけん結果
回次結果対戦相手
9月04日
(水曜日)
【4戦目】07時58分TOKIO
【3戦目】07時35分比江島慎 選手
【2戦目】06時58分チョコレートプラネット
【1戦目】05時58分まちかどじゃんけん

OpenCV(3.4.4)をRaspberry PI 3 B+にインストール

OpenCVのインストール方法は、以下の3つの方法で導入できます。
特に利用した機能ができるならば、1番目の方法が手軽でお勧めです。
ただし、OpenCVを使い始めると日々進化しているOpenCVを利用したくなるので、Raspberry Piでのコンパイル方法を習得していると最新バージョンなども利用出来て便利です。現時点では、Open CVのdnnではGPUサポートが出来ていなかったりと、私自身もリリースを待っている機能が存在します。

  1. pip/pip3でインストール
  2. GitHubよりソースコードをダウンロードしインストール (この記事のメイン)
  3. コンパイル済みバイナリをダウンロードして利用 (この記事には記載しておりません)

OpenCVをpip/pip3でインストール(バージョンはPIPバージョンレポジトリに依存)

必要ライブラリのインストール

$ sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-100
$ sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5
$ sudo apt-get install libatlas-base-dev
$ sudo apt-get install libjasper-dev

Open-CVインストール

$ sudo pip3 install opencv-python

「opencv-contrib-python」の方が、利用可能な機能が多いようです。
ただし、商用利用時に中が必要な、特徴検出アルゴリズムSIFTやSURFなどが含まれており、利用目的に合わせてた導入が必要です。

$ sudo pip3 install opencv-contrib-python

OpenCV(3.4.4)をGitHubよりソースコードをダウンロードしインストール

事前準備

インストール対象のOpen CVバージョンを変数に設定します。

cvVersion="3.4.4"

インストールに利用するフォルダを作成します。

mkdir installation
mkdir installation/OpenCV-"$cvVersion"

カレントディレクトリを変数に入れます。

cwd=$(pwd)

導入パッケージのアップデートを行います。
「sudo rpi-update」でRaspberry Piのファームウェアのアップデートを行います。
また、Expand Filesystemを設定していない人は、「raspi-config」よりExpand Filesystem(ファイルシステムの拡張)を利用するように設定してください。

sudo apt -y update
sudo apt -y upgrade
sudo rpi-update

swapfileサイズ変更

この手順前後で、「free -m」コマンドでスワップメモリサイズを確認してください。
以下の手順で、スワップサイズを1GBに拡張します。
viなどのエディタで、直接「/etc/dphys-swapfile」を編集しても良いです。
「CONF_SWAPSIZE=1024」を記載し、dphys-swapfileサービスを再起動すれば、スワップファイルサイズを変更できます。

sudo sed -i 's/CONF_SWAPSIZE=100/CONF_SWAPSIZE=1024/g' /etc/dphys-swapfile
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start

必要パッケージのインストール

多くのパッケージを導入する必要があります。
参考とする情報ソースにより多少違いはありますが、私が導入したライブラリ群は以下となっております。

sudo apt-get -y remove x264 libx264-dev

## Install dependencies
sudo apt-get -y install build-essential checkinstall cmake pkg-config yasm
sudo apt-get -y install git gfortran
sudo apt-get -y install libjpeg8-dev libjasper-dev libpng12-dev

sudo apt-get -y install libtiff5-dev

sudo apt-get -y install libtiff-dev

sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
sudo apt-get -y install libxine2-dev libv4l-dev
cd /usr/include/linux
sudo ln -s -f ../libv4l1-videodev.h videodev.h
cd $cwd

sudo apt-get -y install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
sudo apt-get -y install libgtk2.0-dev libtbb-dev qt5-default
sudo apt-get -y install libatlas-base-dev
sudo apt-get -y install libmp3lame-dev libtheora-dev
sudo apt-get -y install libvorbis-dev libxvidcore-dev libx264-dev
sudo apt-get -y install libopencore-amrnb-dev libopencore-amrwb-dev
sudo apt-get -y install libavresample-dev
sudo apt-get -y install x264 v4l-utils

# Optional dependencies
sudo apt-get -y install libprotobuf-dev protobuf-compiler
sudo apt-get -y install libgoogle-glog-dev libgflags-dev
sudo apt-get -y install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen

# Install Python Libraries
sudo apt-get -y install python3-dev python3-pip
sudo -H pip3 install -U pip numpy
sudo apt-get -y install python3-testresources

sudo pip3 install numpy dlib

OpenCVのソースコード準備

Git HubよりOpenCVのソースコードをチェックアウト(ダウンロード)します。

git clone https://github.com/opencv/opencv.git
cd opencv
git checkout $cvVersion
cd ..

git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout $cvVersion
cd ..

OpenCVのビルドおよびコンパイル、インストール

この記事で示すコンパイルオプションは、オリジナルサイトのビルドオプションとは少し異なっております。各種ビルドオプションの説明や、失敗するビルドオプションなどは各種ブログに記載されております。個人的には、できる限りコンパイルが通りやすいビルドオプションとしております。

cd opencv
mkdir build
cd build

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules -D BUILD_EXAMPLES=ON -D ENABLE_MEON=ON ..

コンパイルです。

Raspberry Pi 3B +でコンパイル実施時は、4コアすべてを使ってコンパイルしても、6-8時間程度時間を要します。Raspberry Piの動作温度もコンパイル時間に大きく影響します。
以下のコマンドは、「make -j4」となります。

make -j$(nproc)

コンパイルが無事に成功したら、インストールを実行してください。

make install

swqpfileサイズ変更(変更したサイズを元に戻す)

この手順前後で、「free -m」コマンドでスワップメモリサイズを確認してください。
以下の手順で、スワップサイズを拡張した1GBから100MBに戻します。

sudo sed -i 's/CONF_SWAPSIZE=1024/CONF_SWAPSIZE=100/g' /etc/dphys-swapfile
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start

インストール後の確認

「python3」コマンドを実行し、「import cv2」「print(cv2.__version__)」で導入されたOpenCVのバージョンを確認します。

@raspberrypi:~ $ python3
Python 3.7.3 (default, Apr 3 2019, 05:39:12)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> print(cv2.__version__)
4.1.1

最後に

当初は、結構苦労しましたが、慣れると簡単にコンパイル、インストール出来ます。OpenCVをガリガリ利用する人は、是非、自分でソースコードより導入することをお勧めします。新バージョン新バージョンでの進化が素晴らしいライブラリです。

明日の記事で、OpenCV最新バージョンの4.1.1のインストール方法を記事にします。

現時点の私のRaspberry Piに導入しているOpenCVは、「4.1.1-openvino」となります。Movidius Neural Compute Stick 2、OpenVINO™ toolkit for Raspbian* OS導入

2019年09月03日  めざましじゃんけん 結果

フジテレビ めざましテレビ めざましじゃんけん の結果を保証したり、全ての結果が記載を保証するものではありません。

2019年09月03日のめざましじゃんけんの結果をベストエフォートで公開します。


じゃんけん結果システムイメージ

Goo(グー) Choki(チョキ) Pa(パー)

めざましテレビ|めざましじゃんけんーフジテレビ

めざましじゃんけん結果
回次結果対戦相手
9月03日
(火曜日)
【4戦目】07時58分生じゃんけん!藤井流星さん(ジャニーズWEST)
【3戦目】07時35分馬場雄大選手
【2戦目】06時58分芳根京子さん
【1戦目】05時58分まちかどじゃんけん

関連記事:東芝REGZAのWEB API

PythonでのDigest認証

import requests
from requests.auth import HTTPDigestAuth
r = requests.get('http://@URL@', auth=HTTPDigestAuth('@user@', '@pass@'))
r.status_code

東芝テレビ(レグザ:REGZA)のWEB API仕様

WEB API実行時にDigest認証ダイジェストにんしょう)が必要となります。
ユーザ名およびパスワードは、レグザAppコネクト設定で設定したユーザー名とパスワードになります。

「(リモコン)設定ボタン」「接続機器設定」「外部連携設定」「レグザAppコネクト設定」

プログラムからの利用時には、Digest認証に対応した方法で利用する必要があります。

http://[REGZA IP]/remote/remote.htm?key=[command_key]

IE、Chrome、Firefoxなど一般ブラウザから動作確認できます。
戻り値は、テキスト出力として数字が返ってきました。
「0」成功 「0以外」失敗。
ブラウザで操作している際に、テレビの音量を上げようとすると「4」というエラー番号も見ることが出来ました。電源ボタンを押した直後に音量操作実施のタイミング。

テレビのIPアドレスが192.168.0.77の場合のコマンドサンプル

  • 音量を上げたいとき
    http://192.168.0.77/remote/remote.htm?key=40BF1A
  • チャンネル「8」ボタンを押す
    http://192.168.0.77/remote/remote.htm?key=40BF08
  • リモコンの「青」ボタンを押す
    http://192.168.0.77/remote/remote.htm?key=40BF73

[command_key]リスト

ボタン名[command_key]
140BF01
240BF02
340BF03
440BF04
540BF05
640BF06
740BF07
840BF08
940BF09
1040BF0A
1140BF0B
1240BF0C
入力切替40BF0F
消音40BF10
電源40BF12
音声切り替え40BF13
音量↑40BF1A
チャンネル↑40BF1B
画面表示40BF1C
音量↓40BF1E
チャンネル↓40BF1F
ブロードバンド40BF25
クイック40BF27
マルチ画面40BF29
画面サイズ40BF2B
戻る40BF3B
終了40BF3C
決定40BF3D
40BF3E
40BF3F
一時停止(静止)40BF50
40BF5B
40BF5F
CH番号40BF60
サーチ40BF60
ラジオ/データ40BF6D
番組表40BF6E
番組説明40BF71
40BF73
40BF74
40BF75
40BF76
ミニ番組表40BF77
地デジ40BF7A
地アナ40BF7B
BS40BF7C
CS40BF7D
録画40BF86
設定メニュー40BFD0
↑↑40BE20
↓↓40BE21
→→(30秒送り)40BE22
←←(10秒戻し)40BE23
早送りスキップ40BE26
戻るスキップ40BE27
録画リスト40BE28
停止40BE2B
巻き戻し40BE2C
再生40BE2D
早送り40BE2E
レグザメニュー40BE34
タイムシフト40BE35
番組検索40BE36
始めにジャンプ40BE47
イジェクト40BE93
ディスク40BE9E
dデータ43BC14
字幕43BC52

PythonでのREGZA操作サンプルソースコード

import requests
from requests.auth import HTTPDigestAuth

TV_IP = "xxx.xxx.xxx.xxx"
TV_USER = "user"
TV_PASS = "pass"
TV_VOLUME_DOWN = "40BF1E"
TV_BOTTON_8 = "40BF08"

def execjanken(key):
    url = "http://" + TV_IP + "/remote/remote.htm?key=" + key
    r = requests.get(url, auth=HTTPDigestAuth(TV_USER, TV_PASS))
    return True

//Change channel to 8
execjanken(TV_BOTTON_8)

2019年09月02日  めざましじゃんけん 結果

フジテレビ めざましテレビ めざましじゃんけん の結果を保証したり、全ての結果が記載を保証するものではありません。

2019年09月02日のめざましじゃんけんの結果をベストエフォートで公開します。


じゃんけん結果システムイメージ

Goo(グー) Choki(チョキ) Pa(パー)

めざましテレビ|めざましじゃんけんーフジテレビ

めざましじゃんけん結果
回次結果対戦相手
9月02日
(月曜日)
【4戦目】07時58分長瀬智也さん
【3戦目】07時35分渡邊雄太選手
【2戦目】06時58分志田未来さん、中尾明慶さん
【1戦目】05時58分まちかどじゃんけん

関連記事

Movidius Neural Compute Stick 2(NCS2)ヒートシンク

予想通り、NCS2の発熱量は大きいです。特に、連続稼働させている状況では、手で触ると、長時間は触り続けられない程高温になっております。
最低限、USBの延長ケーブルで、Raspberry Piやパソコンより距離をとって、設置することは必須となります。

今回、細かなヒートシンク10個入りを購入し、写真のように片面3個、先端部に1個の計7個のヒートシンクを導入しました。
コストをかけずにすぐに導入できる熱対策なのでおすすめです。

導入後、USB接続部分より本体を触っても、触り続けられる温度へと下がっております。

USB接続外部ディスクへヒートシンク

SSD、HDDの発熱は大きいです。物理デバイスであり、高温による機器の寿命など気になります。PCや専用のNAS BOXならば熱処理も施されておりますが、Raspberry PiにSATAとUSBの変換ケースを用いて、利用する際には、この高音となるUSB接続のケースが気になります。
こちらもヒートシンクを導入し、熱対策を行います。
ヒートシンクを貼り付けたのみですが、温度変化を実感出来ます。

導入したヒートシンク(本記事で掲載している商品)

Movidius Neural Compute Stick 2向け2.5インチ外付けUSB
Intel Neural Compute Stick 2

 

 

画像検出率と処理フローで安定稼働(稼働1カ月)

2019年7月29日より稼働し、5週間。合計110回のめざましじゃんけん結果を蓄積しました。(平日25日×4回+土曜5日×2回)
最終週は、処理変更なしに、めざましテレビのめざましじゃんけん生放送中のリアルタイム画像検出を100%稼働させました。
一度しかない生放送、何気なく選んだテーマですが、ぞんぶんに楽しめる開発対象です。
機械学習部分に記事が追い付いてないのですが、現在Darknet / Tiny YOLO3を用いた画像検出を行っております。試行錯誤しておりますが、誤検出は存在してしまいます。
現在は、めざましじゃんけんの生放送に合わせた処理手順と画像検出を合わせて、画像の検出ミス時にも対応可能なシステムとしております。

画像検出と処理フロー

天気予報の晴れマークや気温の羅列、何かしらのテロップやフリップボードなど、予期せぬところで、Janken_Gooとじゃんけんでグーを出したと誤認識されることなどもあります。当初2次元であり難易度は低いと考えておりましたが、実写の報道番組という特性があり、出てくる画像パターンは多岐にわたりました。

現在のめざましじゃんけん画像検出システムは、誤検出が出たとしても、確率的に誤判定が出ないような処理フローとなっております。

Stage0:めざましじゃんけん開始前
Stage1:めざましじゃんけん開始を検出した状態(じゃんけんの手を選択する)
Stage2:出したじゃんけんの手を検出した状態(結果待ちの状態)
Stage3:めざましじゃんけん結果検出状態

めざましじゃんけん処理フロー

システムメインコンポーネント

Intel Neural Compute Stick 2