コンテンツへスキップ

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導入

関連記事:東芝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)

Yolo3、Tiny-Yolo3での独自学習方法

画像検出に向けて、独自に準備した教師データを用いて、AlexeyAB Darknetを用いて、YOLO3、Tiny-YOLO3で独自学習を行います。
YOLO3とTiny-YOLO3での独自学習時の違いは、独自学習時に指定するコンフィグファイルの違いのみとなります。処理速度と画像検出の違いとなっておりますが、画像検出対象により向き不向きもあると思うので、両方での試行をお勧めします。

また、YOLO2など以前のフレームワークも利用しましたが、画像検出精度や検出速度で、明らかにYOLO3のほうが良いので、学習後のモデル動作環境がYOLO3で問題なければ、YOLO3の利用をお勧めします。

参考にさせて頂いたサイト

前提条件

AlexeyAB Darknetを用いて、YOLO3・Tiny-YOLO3で独自学習に向けた準備

LabelImg利用方法(アノテーション)で準備した、7クラスの学習を行います。
最終的な、独自学習を実行する際のコマンドラインは以下となります。

darknet.exe detector train cfg/obj.data cfg/yolov3-voc-janken.cfg darknet53.conv.74
  1. darknet.exe
    Windows10に AlexeyAB・Darknet・YOLO V3導入(Vestal Studio)でコンパイルした実行ファイル。(「darknet\build\darknet\x64」に格納されています)
  2. obj.data(obj.data内で指定するobj.names)の2ファイル
  3. yolov3-voc-janken.cfg、yolo3, tiny-yolo3向けに事前準備されたモデル定義をコピーして独自学習向けに作成
  4. darknet53.conv.74、学習開始時の初期ウェイトファイル。yolo3とtiny-yolo3では異なるファイルを用います。

obj.dataに、train(学習データー)とvalid(検証データー)のリストを設定します。
このtrainとvalidのファイルリストは、LabelImg利用方法(アノテーション)でラベリングしたフォルダで、以下のスクリプト(process.py)を実行し、自動的に作成します。

process.pyですが、データファイルのパス指定、ファイル名、テストデータの割合を指定します。以下の例では、検証データを全体のファイル数の10%を検証データに指定されています。

import glob, os

# Current directory
current_dir = os.path.dirname(os.path.abspath(__file__))

# Directory where the data will reside, relative to 'darknet.exe'
path_data = 'data/obj/'

# Percentage of images to be used for the test set
percentage_test = 10;

# Create and/or truncate train.txt and test.txt
file_train = open('train.txt', 'w')  
file_test = open('test.txt', 'w')

# Populate train.txt and test.txt
counter = 1  
index_test = round(100 / percentage_test)  
for pathAndFilename in glob.iglob(os.path.join(current_dir, "*.jpg")):  
    title, ext = os.path.splitext(os.path.basename(pathAndFilename))

    if counter == index_test:
        counter = 1
        file_test.write(path_data + title + '.jpg' + "\n")
    else:
        file_train.write(path_data + title + '.jpg' + "\n")
        counter = counter + 1
  • train.txt トレーニング用画像ファイル一覧
  • test.txt 検証用画像ファイル一覧

obj.data(obj.data内で指定するobj.names)の2ファイル

「darknet\build\darknet\x64\cfg\obj.data」ファイル

学習クラス数をClassに登録します。作成した、train.txtとtest.txtファイルパスを指定します。
次に作成する、cfg/obj.namesと学習結果を格納するフォルダbackupを指定します。

classes = 7
train = train.txt
valid = test.txt
names = cfg/obj.names
backup = backup/

「darknet\build\darknet\x64\cfg\obj.names」ファイル

学習クラス名一覧を指定します。

janken_active
janken_goo
janken_choki
janken_pa
janken_won
janken_lose
janken_draw

yolov3-voc-janken.cfg、yolo3, tiny-yolo3向けに事前準備されたモデル定義をコピーして独自学習向けに作成

Yolo3向けcfgファイル作成

「darknet\build\darknet\x64\cfg\」フォルダ内の初期ファイルをコピーして、自己学習向けのコンフィグファイルを作成します。yolov3.cfg、yolo-obj.cfgをコピー元ファイルとして、編集するコンフィグファイルを作成します。

  • Batch数を変更します。batch=64
  • Subdivisionsを変更します。subdivisions=8
  • 学習するクラス数に合わせて、最大バッチ回数を指定します。
    学習するクラス数×2000となります。
    7クラスでの学習の際には、max_batches=14000 とします。
  • Stepsを最大バッチ回数の80%と90%になるように修正します。
    最大バッチ回数が14000の場合は、steps=11200,12600とします。
  • 3つある[yolo]レイヤーのClassesを、今回学習させる7に変更します。
  • [yolo]レイヤー直前の[convolutional]レイヤーのfiltersを変更します。
    filtersの値は、(classes + 5)×3とします。
    7クラスの場合は、(7+5)×3=36を指定します。

Tiny-Yolo3向けcfgファイル作成

「darknet\build\darknet\x64\cfg\」フォルダ内の初期ファイルをコピーして、自己学習向けのコンフィグファイルを作成します。yolov3-tiny-obj.cfg、yolov3-tiny_obj.cfgをコピー元ファイルとして、編集するコンフィグファイルを作成します。

yolov3-tiny-obj.cfg based on cfg/yolov3-tiny_obj.cfg

  • Batch数を変更します。batch=64
  • Subdivisionsを変更します。subdivisions=8
  • 学習するクラス数に合わせて、最大バッチ回数を指定します。
    学習するクラス数×2000となります。
    7クラスでの学習の際には、max_batches=14000 とします。
  • Stepsを最大バッチ回数の80%と90%になるように修正します。
    最大バッチ回数が14000の場合は、steps=11200,12600とします。
  • 2つある[yolo]レイヤーのClassesを、今回学習させる7に変更します。
  • [yolo]レイヤー直前の[convolutional]レイヤーのfiltersを変更します。
    filtersの値は、(classes + 5)×3とします。
    7クラスの場合は、(7+5)×3=36を指定します。

学習開始時の初期ウェイトファイル準備

Yolo3向け初期ウェイトファイルダウンロード

https://pjreddie.com/media/files/darknet53.conv.74よりdarknet53.conv.74ファイルをダウンロードします。ダウンロードしたdarknet53.conv.74ファイルが初期ウェイトファイルとなります。

darknet53.conv.74

Tiny-Yolo3向けウェイトファイルダウンロード

https://pjreddie.com/media/files/yolov3-tiny.weightsよりyolov3-tiny.weightsファイルをダウンロードし、darknet.exeおよび標準のcfgファイルを用いて、初期ウェイトファイルを準備します。

darknet.exe partial cfg/yolov3-tiny.cfg yolov3-tiny.weights yolov3-tiny.conv.15 15

yolov3-tiny.conv.15

AlexeyAB/DarknetでYOLO3トレーニング開始

最初に示したコマンドラインで自己学習を開始します。

darknet.exe detector train cfg/obj.data cfg/yolov3-voc-janken.cfg darknet53.conv.74

Out of Memory

Out of Memoryが出る場合、GPUのメモリ不足となり、設定ファイルの変更が必要となります。設定ファイルで設定した、 subdivisions=16 を「32」や「64」へ変更し実行可能な設定へ変更が必要です。

32の倍数での画像サイズの縮小でも学習時のメモリサイズを減らすことが出来ます。width=256、height=256 などへwidth, heightを変更。

画像検出に向けて利用するフレームワーク

本家のDarknetも利用しましたが、特定ケースでの学習失敗やメモリ操作関係の不具合など、私自身も上手く行かないケースも有り、ブログ記事などからもAlexeyABを勧めている内容が多かったので、早い時期よりAlexeyABを導入し利用しております。

AlexeyABのDarknetは、WindowsおよびLinuxのDarknet Yolo v3 & v2のNeural Networks for object detection (Tensor Cores are used)をサポートしております。

AlexeyAB公開サイト

以下、サイトにすべての利用方法が記載されております。関連ソフトのインストール方法や、独自学習の方法など。

Darknetインストール方法

本件も同様ですが、AlexeyABでも2つのインストール方法が紹介されております。
最終的には、Legacy wayのVisual StudioでコンパイルしたDarknetを利用しております。この投稿では、1番めのVCPKGを利用したコンパイル方法を紹介します。

  1. How to compile on Windows (using vcpkg)
  2. How to compile on Windows (legacy way)

GitHUBよりAlexeyAB一式をダウンロードしておきます。
今後の学習モデル作成時などにも利用するフォルダとなるので、それなりの容量の余裕などを考え、各種ファイルを配置して下さい。

VCPKGを利用したDarknetの導入

Visual Studioインストール

Visual Studio CommunityよりVisual Studioをダウンロードしインストールします。

CUDAとcuDNNインストール

NVIDIA cuDNNの入手には、開発コミュニティへの登録が必要であるが、 cuDNNは、機械学習時のGPU-accelerated libraryとなるので、開発者登録を行い、導入しているCUDAと同じバージョンのcuDNNを入手し、入手したファイルをCUDAインストールフォルダに配置しましょう。

gitとcmakeのインストール

Gitおよびcmakeを導入して下さい。
CMakeよりWindows win64-x64 Installerをダウンロードし、インストラーを用いてCMakeをインストールします。

vcpkインストール

Microsoft vcpkへアクセスし、インストールを

  1. Githubからcloneする。
  2. クローンディレクトリの"bootstrap-vcpkg.bat"を実行する。
    ※ ここで、Visual Studioをインストール → "vcpkg.exe"が生成される。
  3. (visual studioに統合する場合)そこのフォルダで管理者権限で cmd を実行して以下のコマンドを入力。
    cmd .\vcpkg.exe integrate install

環境変数「VCPKG_ROOT」「VCPKG_DEFAULT_TRIPLET」を設定

  1. VCPKG_ROOTの環境変数にvcpkgのインストールパスを設定
  2. VCPKG_DEFAULT_TRIPLETの環境変数にx64-windowsを設定

VCPKGで前提ソフトインストール

> cd $env:VCPKG_ROOT
\Git\vcpkg> .\vcpkg.exe install pthreads opencv[cuda,ffmpeg]
The following packages will be built and installed:
* cuda[core]:x64-windows
* eigen3[core]:x64-windows
* libjpeg-turbo[core]:x64-windows
* liblzma[core]:x64-windows
* libpng[core]:x64-windows
opencv[core,cuda,eigen,ffmpeg,flann,jpeg,opengl,png,tiff]:x64-windows
pthreads[core]:x64-windows
* tiff[core]:x64-windows
* zlib[core]:x64-windows
Additional packages (*) will be modified to complete this operation.
Starting package 1/9: zlib:x64-windows
Building package zlib[core]:x64-windows...
Warning: The following VS instances are excluded because the English language pack is unavailable.
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community
Please install the English language pack.
-- Downloading http://www.zlib.net/zlib-1.2.11.tar.gz...
-- Extracting source S:/Public/Documents/Git/vcpkg/downloads/zlib1211.tar.gz
-- Applying patch cmake_dont_build_more_than_needed.patch
-- Using source at S:/Public/Documents/Git/vcpkg/buildtrees/zlib/src/1.2.11-f690224aeb
-- Downloading https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-win.zip...
-- Configuring x64-windows
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:58 (message):
Command failed: ninja -v
Working Directory: S:/Public/Documents/Git/vcpkg/buildtrees/zlib/x64-windows-rel/vcpkg-parallel-configure
Error code: 1
See logs for more information:
S:\Public\Documents\Git\vcpkg\buildtrees\zlib\config-x64-windows-out.log

Call Stack (most recent call first):
scripts/cmake/vcpkg_configure_cmake.cmake:290 (vcpkg_execute_required_process)
ports/zlib/portfile.cmake:22 (vcpkg_configure_cmake)
scripts/ports.cmake:74 (include)

Error: Building package zlib:x64-windows failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with `.\vcpkg update`, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
Package: zlib:x64-windows
Vcpkg version: 2019.07.18-nohash

Additionally, attach any relevant sections from the log files above.

英語の言語パッケージがないと、エラーがでるので英語の言語パッケージをインストールします。

参考URL:https://github.com/Microsoft/vcpkg/issues/1939#issuecomment-354644869

PowershellよりDarknetビルド実行

Powershellのコマンドプロンプトを開き、Darknetをダウンロードしたフォルダで、「./build.ps1」を実行しビルドを実施します。

PS S:\Public\Documents\Git\darknet> .\build.ps1
Found vcpkg in VCPKG_ROOT: S:\Public\Documents\Git\vcpkg\
Found VS in D:\Program Files (x86)\Microsoft Visual Studio\2019\Community
Visual Studio Command Prompt variables set
Setting up environment to use CMake generator: Visual Studio 16 2019
Added missing env variable CUDA_TOOLKIT_ROOT_DIR

ディレクトリ: S:\Public\Documents\Git\darknet

Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2019/07/25 11:23 build_win_release
-- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.18362.
-- The C compiler identification is MSVC 19.21.27702.2
-- The CXX compiler identification is MSVC 19.21.27702.2
-- Check for working C compiler: D:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.21.27702/bin/Hostx64/x64/cl.exe
-- Check for working C compiler: D:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.21.27702/bin/Hostx64/x64/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: D:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.21.27702/bin/Hostx64/x64/cl.exe
-- Check for working CXX compiler: D:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.21.27702/bin/Hostx64/x64/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for a CUDA compiler
-- Looking for a CUDA compiler - NOTFOUND
-- Looking for pthread.h
-- Looking for pthread.h - not found
-- Found Threads: TRUE
-- Found PThreads4W: optimized;S:/Public/Documents/Git/vcpkg/installed/x64-windows/lib/pthreadVC3.lib;debug;S:/Public/Documents/Git/vcpkg/installed/x64-windows/debug/lib/pthreadVC3d.lib
-- Found OpenCV: S:/Public/Documents/Git/vcpkg/installed/x64-windows (found version "3.4.3")
-- Found Stb: S:/Public/Documents/Git/darknet/3rdparty/stb/include
-- Found OpenMP_C: -openmp (found version "2.0")
-- Found OpenMP_CXX: -openmp (found version "2.0")
-- Found OpenMP: TRUE (found version "2.0")
-- ZED SDK not enabled, since it requires CUDA
-- Configuring done
-- Generating done
-- Build files have been written to: S:/Public/Documents/Git/darknet/build_win_release
.NET Framework 向け Microsoft (R) Build Engine バージョン 16.1.76+g14b0a930a7
Copyright (C) Microsoft Corporation.All rights reserved.

Checking Build System
Building Custom Rule S:/Public/Documents/Git/darknet/CMakeLists.txt
yolo_v2_class.cpp
http_stream.cpp
S:\Public\Documents\Git\darknet\src\http_stream.cpp(494,35): warning C4200: 非標準の拡張機能が使用されています: 構造体 または共用体中にサイズが 0 の配列があ
ります。 [S:\Public\Documents\Git\darknet\build_win_release\dark.vcxproj]
image_opencv.cpp
S:\Public\Documents\Git\darknet\src\http_stream.cpp(494,35): message : このメンバーは、既定のコンストラクターまたはコピー/移動代入演算子により無視されます [S:\
Public\Documents\Git\darknet\build_win_release\dark.vcxproj]
S:\Public\Documents\Git\darknet\src\image_opencv.cpp(81,39): warning C4200: 非標準の拡張機能が使用されています: 構造体 または共用体中にサイズが 0 の配列があ
ります。 [S:\Public\Documents\Git\darknet\build_win_release\dark.vcxproj]
S:\Public\Documents\Git\darknet\src\image_opencv.cpp(81,39): message : このメンバーは、既定のコンストラクターまたはコピー/移動代入演算子により無視されます [S:\
Public\Documents\Git\darknet\build_win_release\dark.vcxproj]
S:\Public\Documents\Git\darknet\src\image_opencv.cpp(82,48): warning C4200: 非標準の拡張機能が使用されています: 構造体 または共用体中にサイズが 0 の配列があ
ります。 [S:\Public\Documents\Git\darknet\build_win_release\dark.vcxproj]
S:\Public\Documents\Git\darknet\src\image_opencv.cpp(82,48): message : このメンバーは、既定のコンストラクターまたはコピー/移動代入演算子により無視されます [S:\
Public\Documents\Git\darknet\build_win_release\dark.vcxproj]
S:\Public\Documents\Git\darknet\src\image_opencv.cpp(83,49): warning C4200: 非標準の拡張機能が使用されています: 構造体 または共用体中にサイズが 0 の配列があ
ります。 [S:\Public\Documents\Git\darknet\build_win_release\dark.vcxproj]
コードを生成中...
S:\Public\Documents\Git\darknet\src\image_opencv.cpp(83,49): message : このメンバーは、既定のコンストラクターまたはコピー/移動代入演算子により無視されます [S:\
Public\Documents\Git\darknet\build_win_release\dark.vcxproj]
activation_layer.c
activations.c
art.c
avgpool_layer.c
batchnorm_layer.c
blas.c
box.c
captcha.c
cifar.c
classifier.c
coco.c
col2im.c
compare.c
connected_layer.c
conv_lstm_layer.c
convolutional_layer.c
cost_layer.c
cpu_gemm.c
crnn_layer.c
crop_layer.c
コードを生成中...
コンパイル中...
dark_cuda.c
data.c
deconvolutional_layer.c
demo.c
detection_layer.c
detector.c
dice.c
dropout_layer.c
gemm.c
getopt.c
gettimeofday.c
go.c
gru_layer.c
im2col.c
image.c
layer.c
list.c
local_layer.c
lstm_layer.c
matrix.c
コードを生成中...
コンパイル中...
maxpool_layer.c
network.c
nightmare.c
normalization_layer.c
option_list.c
parser.c
region_layer.c
reorg_layer.c
reorg_old_layer.c
rnn.c
rnn_layer.c
rnn_vid.c
route_layer.c
scale_channels_layer.c
shortcut_layer.c
softmax_layer.c
super.c
swag.c
tag.c
tree.c
コードを生成中...
コンパイル中...
upsample_layer.c
utils.c
voxel.c
writing.c
yolo.c
yolo_layer.c
コードを生成中...
ライブラリ S:/Public/Documents/Git/darknet/build_win_release/Release/dark.lib とオブジェクト S:/Public/Documents/Git/darknet/b
uild_win_release/Release/dark.exp を作成中
dark.vcxproj -> S:\Public\Documents\Git\darknet\build_win_release\Release\dark.dll
Building Custom Rule S:/Public/Documents/Git/darknet/CMakeLists.txt
darknet.c
activation_layer.c
activations.c
art.c
avgpool_layer.c
batchnorm_layer.c
blas.c
box.c
captcha.c
cifar.c
classifier.c
coco.c
col2im.c
compare.c
connected_layer.c
conv_lstm_layer.c
convolutional_layer.c
cost_layer.c
cpu_gemm.c
crnn_layer.c
コードを生成中...
コンパイル中...
crop_layer.c
dark_cuda.c
data.c
deconvolutional_layer.c
demo.c
detection_layer.c
detector.c
dice.c
dropout_layer.c
gemm.c
getopt.c
gettimeofday.c
go.c
gru_layer.c
im2col.c
image.c
layer.c
list.c
local_layer.c
lstm_layer.c
コードを生成中...
コンパイル中...
matrix.c
maxpool_layer.c
network.c
nightmare.c
normalization_layer.c
option_list.c
parser.c
region_layer.c
reorg_layer.c
reorg_old_layer.c
rnn.c
rnn_layer.c
rnn_vid.c
route_layer.c
scale_channels_layer.c
shortcut_layer.c
softmax_layer.c
super.c
swag.c
tag.c
コードを生成中...
コンパイル中...
tree.c
upsample_layer.c
utils.c
voxel.c
writing.c
yolo.c
yolo_layer.c
コードを生成中...
http_stream.cpp
S:\Public\Documents\Git\darknet\src\http_stream.cpp(494,35): warning C4200: 非標準の拡張機能が使用されています: 構造体 または共用体中にサイズが 0 の配列があ
ります。 [S:\Public\Documents\Git\darknet\build_win_release\darknet.vcxproj]
image_opencv.cpp
S:\Public\Documents\Git\darknet\src\http_stream.cpp(494,35): message : このメンバーは、既定のコンストラクターまたはコピー/移動代入演算子により無視されます [S:\
Public\Documents\Git\darknet\build_win_release\darknet.vcxproj]
S:\Public\Documents\Git\darknet\src\image_opencv.cpp(81,39): warning C4200: 非標準の拡張機能が使用されています: 構造体 または共用体中にサイズが 0 の配列があ
ります。 [S:\Public\Documents\Git\darknet\build_win_release\darknet.vcxproj]
S:\Public\Documents\Git\darknet\src\image_opencv.cpp(81,39): message : このメンバーは、既定のコンストラクターまたはコピー/移動代入演算子により無視されます [S:\
Public\Documents\Git\darknet\build_win_release\darknet.vcxproj]
S:\Public\Documents\Git\darknet\src\image_opencv.cpp(82,48): warning C4200: 非標準の拡張機能が使用されています: 構造体 または共用体中にサイズが 0 の配列があ
ります。 [S:\Public\Documents\Git\darknet\build_win_release\darknet.vcxproj]
S:\Public\Documents\Git\darknet\src\image_opencv.cpp(82,48): message : このメンバーは、既定のコンストラクターまたはコピー/移動代入演算子により無視されます [S:\
Public\Documents\Git\darknet\build_win_release\darknet.vcxproj]
S:\Public\Documents\Git\darknet\src\image_opencv.cpp(83,49): warning C4200: 非標準の拡張機能が使用されています: 構造体 または共用体中にサイズが 0 の配列があ
ります。 [S:\Public\Documents\Git\darknet\build_win_release\darknet.vcxproj]
コードを生成中...
S:\Public\Documents\Git\darknet\src\image_opencv.cpp(83,49): message : このメンバーは、既定のコンストラクターまたはコピー/移動代入演算子により無視されます [S:\
Public\Documents\Git\darknet\build_win_release\darknet.vcxproj]
darknet.vcxproj -> S:\Public\Documents\Git\darknet\build_win_release\Release\darknet.exe
Building Custom Rule S:/Public/Documents/Git/darknet/CMakeLists.txt
yolo_console_dll.cpp
uselib.vcxproj -> S:\Public\Documents\Git\darknet\build_win_release\Release\uselib.exe
Building Custom Rule S:/Public/Documents/Git/darknet/CMakeLists.txt
yolo_console_dll.cpp
uselib_track.vcxproj -> S:\Public\Documents\Git\darknet\build_win_release\Release\uselib_track.exe
Building Custom Rule S:/Public/Documents/Git/darknet/CMakeLists.txt
-- Install configuration: "Release"
-- Installing: S:/Public/Documents/Git/darknet/dark.lib
-- Installing: S:/Public/Documents/Git/darknet/dark.dll
-- Installing: S:/Public/Documents/Git/darknet/include/darknet/darknet.h
-- Installing: S:/Public/Documents/Git/darknet/include/darknet/yolo_v2_class.hpp
-- Installing: S:/Public/Documents/Git/darknet/uselib.exe
-- Installing: S:/Public/Documents/Git/darknet/darknet.exe
-- Installing: S:/Public/Documents/Git/darknet/uselib_track.exe
-- Installing: S:/Public/Documents/Git/darknet/share/darknet/DarknetTargets.cmake
-- Installing: S:/Public/Documents/Git/darknet/share/darknet/DarknetTargets-release.cmake
-- Installing: S:/Public/Documents/Git/darknet/share/darknet/DarknetConfig.cmake
-- Installing: S:/Public/Documents/Git/darknet/share/darknet/DarknetConfigVersion.cmake

PythonからのWEBリクエスト実施方法(IFTTTのWebhooksへのリクエスト)

Webhooksは、WEB APIとなります。
Webhook(Webコールバック、HTTPプッシュAPIなど)はあるアプリケーションから別のアプリケーションに対してリアルタイムな情報提供を実現するための仕組みです。
Web/URLアクセスを行います。

IFTTTは、「if(もし) this(この状態) then(の場合は) that(それをする)」なので、
IFTTT処理の実行を開始させたい場合は、PythonよりWebhookを実行します。(PythonよりWebhookにURLアクセスします)

IFTTT処理でアクションさせたい処理がSynology側などにある場合は、WebhookよりSynologyへURLアクセスさせます。

トリガー(That)

外部よりWebhookにURLアクセスする必要があります。
その際のアクセスするURLや、アクセスに必要なアクセスキーは、Webhooksの「Documation」画面より入手可能です。
{event}はトリガーごとに設定するので、IFTTTでレシピを作成する際に指定します。

実際にThis部分を指定する画面は以下となります。
Event Nameを設定する部分があり、ここで、設定した文字列がURL部分{event}となります。

例:https://maker.ifttt.com/trigger/test/with/key/XXXXXXXXXXXXXXXXXXXXXX
トリガーアクセス時に変数を加える場合は、GETやPOSTで変数を与えます。

IFTTTのWebhooksへのアクション時Pythonコードサンプル

import urllib.request

#params for IFTTT
ifttt_api_key = '/with/key/@アクセスキー@'
url_base = 'https://maker.ifttt.com/trigger/'
#EVENT name for IFTTT
ifttt_event = 'test'

url = url_base + ifttt_event + ifttt_api_key
params = {'value1': 123,'value2': 123,'value3': 123,}
req = urllib.request.Request('{}?{}'.format(url, urllib.parse.urlencode(params)))
with urllib.request.urlopen(req) as res:
  body = res.read()

 

Anaconda導入とJupyter Notebook利用(Windows 10)

Anaconda はデータサイエンス向けのPythonパッケージなどを提供するプラットフォームです。科学技術計算などを中心とした、多くのモジュールやツールのコンパイル済みバイナリファイルを提供しており、簡単にPythonを利用する環境を構築できます。

Pythonのパッケージだけではなく、他言語のライブラリやいろいろなユーティリティも提供しており、NvidiaのGPUを利用する場合に必要な、CUDAなどの環境も簡単にインストールできるようになっています。

Anacondaインストーラーをダウンロード

こちらのサイトよりインストーラーをダウンロードします。
Python 3.7 version 「64-Bit Graphical Installer」をダウンロードすれば問題ないと思います。

Anacondaインストール

インストーラーのダイアログに沿って、インストールを進めます。

Anacondaで仮想環境作成

Pythonを利用する方では一般的ですが、利用する仮想環境を作成します。
適当な名称で仮想環境を作成します。

仮想環境に必要なパッケージを導入

インストール時点で、よく利用する以下を導入しました。

  • numpy
  • requests
  • Flask
  • Flask-cors
  • sklearn
  • scipy
  • matplotlib
  • Pillow
  • jupyter
  • pandas
  • Keras
  • tensorflow
  • chainer

Jupyter Notebook導入

WEBベースの開発環境となります。

「Shift+エンター」で1ブロックごとに実行可能。
試行錯誤しながら、モデル作成をする際などには便利です。
履歴なども取れるので、Jupyter Note上で実際にコードを実行しつつ開発を進められます。都度、変数の中身やグラフ表示を確認しながら作業を進められるのは多変便利です。

参考にさせて頂いたサイト

YOLO/Darknetの学習向け教師データ準備

「教師データの間違いはないように!」

画像検出や画像認識では、教師データが必要となります。対象の難しさにもよりますが、数百・数千枚という画像が必要となります。
本サイトで紹介しているめざましじゃんけん画像検出システムでは、YOLO/Darknetを利用しており、教師データのラベリングに、LabelImgを利用しました。

ラベリングのイメージですが、左の画像において、この対象が「janken_won」ですよ、この対象が「janken_goo」ですよと、実際の画像を用いて、検出させたい対象にレベルをつけて、機械学習時の教師データとして登録します。

一つの画像ファイルに、一つのラベリング情報を記録したテキストファイルを準備します。
以下が、ラベリング情報を記載したテキストファイルとなります。

オブジェクト(クラス)番号 オブジェクトの中心X座標 オブジェクトの中心Y座標 オブジェクトの幅 オブジェクトの高さ
3 0.501563 0.351042 0.365625 0.056250
6 0.571875 0.303125 0.140625 0.031250

クラス番号は、「janken_won」や「janken_goo」などの学習対象の分類番号となります。LabelImgを利用する際は、「classes.txt」というファイルを作成し、学習させたい対象の定義を行います。

LabelImgインストール

インストール方法は、色々な方法があります。
準備したPythonの実行環境にも依存すると思います。

  • Anaconda環境への導入
  • 通常のWindows環境へ導入

ここでは、通常のWindows環境への導入方法を紹介します。

PythonをWindows環境にインストールします。リンクより必要ファイルをダウンロードし、インストールを実行して下さい。
インストールしたPythonのpip3コマンドを用いて、「PyQt5」および「lxml」をインストールします。

C:\Users\user\AppData\Local\Programs\Python\Python37>pip3 install pyqt5
Collecting pyqt5
Downloading https://files.pythonhosted.org/packages/3b/d3/76670a331935f58f9a2ebd53c6e9b670bbf15c458fa6993500af5d323160/PyQt5-5.13.0-5.13.0-cp35.cp36.cp37.cp38-none-win_amd64.whl (49.7MB)
100% |████████████████████████████████| 49.7MB 128kB/s
Collecting PyQt5_sip<13,>=4.19.14 (from pyqt5)
Downloading https://files.pythonhosted.org/packages/cf/c8/1e9eda4ba09a84fc528d4c87001de2d7a8cbbe04c2a834af3eb81a0ecd88/PyQt5_sip-4.19.18-cp37-none-win_amd64.whl (51kB)
100% |████████████████████████████████| 61kB 6.8MB/s
Installing collected packages: PyQt5-sip, pyqt5
Successfully installed PyQt5-sip-4.19.18 pyqt5-5.13.0

C:\Users\user\AppData\Local\Programs\Python\Python37>pip3 install lxml
Collecting lxml
Downloading https://files.pythonhosted.org/packages/c6/22/a43126b87020c325fac159bb3b7f4e7ea99e7b2594ce5b8fa23cfa6ee90d/lxml-4.3.4-cp37-cp37m-win_amd64.whl (3.6MB)
100% |████████████████████████████████| 3.6MB 6.9MB/s
Installing collected packages: lxml
Successfully installed lxml-4.3.4

GitHubよりLabelImgをダウンロードし、https://github.com/tzutalin/labelImg

labelImg-master.zipを解凍したフォルダまたはGitHubをクローンしたフォルダへコマンドラインで移動し、以下のコマンドを実行します。

pyrcc5 -o line/resources.py resources.qrc

インストールは以上となります。

LabelImg起動

以下のコマンドラインより、LabelImgを起動します。
1行目も2行目も起動コマンドとなります。
IMAGE_PATHには、学習対象画像フォルダ、PRE-DEFINED CLASS FILEには、学習させたい対象の分類(クラス)定義ファイル「classes.txt」を指定します。

python labelImg.py
python labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]

めざましじゃんけん画像システムの「classes.txt」は、以下となっております。
上からゼロとなり、クラス0がjanken_active、クラス1がjanken_goo、・・・、クラス6がjanken_drawと全7クラスを画像検出対象としています。

janken_active
janken_goo
janken_choki
janken_pa
janken_won
janken_lose
janken_draw

LabelImgの利用方法は、画像つきで各種サイトで紹介されております。
特に共有しておきたいポイントは、以下です。

  • YOLO向けのテキストファイル出力を設定する
  • 絶対にラベル指定を間違えない
  • 「D」「W」「A」のショートカットキーを利用する
  • 基本的に「Auto Save Mode」「Single Class Mode」でラベリングを基本に作業実施

ラベリングが完了すると、用意した画像ファイルと対にラベリング情報の記載されたテキストファイルが作成されます。

参考にさせて頂いたサイト

機械学習に必要なアノテーションツールをwindowsにインストールする方法

labelImgとChainerCVを使ってアノテーション作業を楽にする

Darknet/YOLOの独自学習に向けた画像準備

独自/オリジナルの1クラスを勉強させるのに多くの画像データが必要となります。WEBの記事では、1クラス数千枚と記載されておりました。このサイトで公開しているめざましじゃんけん画像検出も精度向上で画像追加を適時行っておりますが、サービス提供開始時点でトータル5000枚(4クラス合計)で開始しております。
インターネットからキーワードで画像データを探してくるツールや、機械学習向けのデータセットを公開しているサイトなどもあるようです。

機械学習向けデータセット公開サイト:ImageNet
80,000を超える対象のデータセットが準備されているようです。

Raspberry Piに接続したUSBカメラで機械学習向けデータセット準備

Raspberry PiにUSB接続のWEBカメラ導入
当初、扱いが楽なfswebcamを利用して実施しようとしましたが、結局は画像検出でも多用するOpenCVを利用した画像準備を実施しました。
めざましじゃんけんでは、結果表示時間が短いこともあり、短時間で多くの画像取得をする必要がありました。fswebcamはコマンドで閉じた画像取得ができるのがメリットとなりますが、カメラの準備や利用終了などが一連の流れとしてコマンド化されており、画像の連続取得には適しておりませんでした。Sleepなしで連続画像取得をした際に、Raspberry Piでは1画像/3−8秒必要となっておりました。このインターバルが不揃いであった点も利用に至らなかった要因です。

fswebcamインストールと機械学習向けデータセット

@raspberrypi: $ sudo apt-get install fswebcam
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libboost-system1.62.0 libboost-thread1.62.0 libreoffice-gtk2
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
fswebcam
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 43.5 kB of archives.
After this operation, 116 kB of additional disk space will be used.
Get:1 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf fswebcam armhf 20140113-2 [43.5 kB]
Fetched 43.5 kB in 1s (39.0 kB/s)
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "ja_JP.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("ja_JP.UTF-8").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: LC_ALL??????????????????: ??????????????????????
Selecting previously unselected package fswebcam.
(Reading database ... 151227 files and directories currently installed.)
Preparing to unpack .../fswebcam_20140113-2_armhf.deb ...
Unpacking fswebcam (20140113-2) ...
Setting up fswebcam (20140113-2) ...
Processing triggers for man-db (2.8.5-2) ...

画像取得時のコマンド

以下のコマンドで、画像保存を行いました。

/usr/bin/fswebcam -r 640x480 -F100 /mnt/synology/capture/`date "+%Y%m%d_%H%M%S"`.jpg

参考にさせて頂いたサイト

Webカメラでインターバル撮影

OpenCVインストールと機械学習向けデータセット

今後、Raspberry Pi上でのOpenCVインストール方法を記事にしますが、簡単な画像処理には、以下コマンドで入るOpenCVで特に問題は有りませんでした。

apt-get install python-opencv

OpenCVの利用方法

  1. OpenCVをインポート
    import cv2
  2. カメラデバイスを取得
    c = cv2.VideoCapture(0)
  3. カメラ起動待ち
    Sleepを少し入れるか、c.read()を画像取得なしで実行します
    ※ カメラ依存と思いますが、最初の画像が暗くなる傾向があります。
  4. readで画像をキャプチャ、imgにRGBのデータが入ってくる
    r, img = c.read()
  5. ファルへ保存
    cv2.imwrite('photo.jpg', img)

参考にさせて頂いたサイト

[Raspberry Pi]USBカメラをつなぎ、PythonのOpenCVで写真を撮る

python-opencvインストールログ

@raspberrypi:$ sudo apt-get install python-opencv
[sudo] パスワード:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
libboost-system1.62.0 libboost-thread1.62.0 libreoffice-gtk2
これを削除するには 'sudo apt autoremove' を利用してください。
以下の追加パッケージがインストールされます:
gdal-data gfortran gfortran-8 libaec0 libarmadillo9 libarpack2 libcaf-openmpi-3 libcharls2 libcoarrays-dev
libcoarrays-openmpi-dev libdap25 libdapclient6v5 libdapserver7v5 libepsilon1 libevent-core-2.1-6 libevent-pthreads-2.1-6
libfreexl1 libfyba0 libgdal20 libgdcm2.8 libgeos-3.7.1 libgeos-c1v5 libgeotiff2 libgfortran-8-dev libgl2ps1.4 libhdf4-0-alt
libhdf5-103 libhdf5-openmpi-103 libhwloc-dev libhwloc-plugins libhwloc5 libibverbs-dev libkmlbase1 libkmlconvenience1
libkmldom1 libkmlengine1 libkmlregionator1 libkmlxsd1 liblept5 libmariadb3 libminizip1 libnetcdf-c++4 libnetcdf13 libnl-3-dev
libnl-route-3-dev libodbc1 libogdi3.2 libopencv-calib3d3.2 libopencv-contrib3.2 libopencv-core3.2 libopencv-features2d3.2
libopencv-flann3.2 libopencv-highgui3.2 libopencv-imgcodecs3.2 libopencv-imgproc3.2 libopencv-ml3.2 libopencv-objdetect3.2
libopencv-photo3.2 libopencv-shape3.2 libopencv-stitching3.2 libopencv-superres3.2 libopencv-video3.2 libopencv-videoio3.2
libopencv-videostab3.2 libopencv-viz3.2 libopenmpi-dev libopenmpi3 libpmix2 libproj13 libqhull7 libsocket++1 libspatialite7
libsuperlu5 libsz2 libtbb2 libtesseract4 liburiparser1 libvtk6.3 libxerces-c3.2 mariadb-common mysql-common ocl-icd-libopencl1
odbcinst odbcinst1debian2 openmpi-bin openmpi-common proj-bin proj-data
提案パッケージ:
gfortran-doc gfortran-8-doc libgfortran5-dbg geotiff-bin gdal-bin libgeotiff-epsg libhdf4-doc libhdf4-alt-dev hdf4-tools
libhwloc-contrib-plugins libmyodbc odbc-postgresql tdsodbc unixodbc-bin ogdi-bin openmpi-doc mpi-default-bin vtk6-doc
vtk6-examples opencl-icd
以下のパッケージが新たにインストールされます:
gdal-data gfortran gfortran-8 libaec0 libarmadillo9 libarpack2 libcaf-openmpi-3 libcharls2 libcoarrays-dev
libcoarrays-openmpi-dev libdap25 libdapclient6v5 libdapserver7v5 libepsilon1 libevent-core-2.1-6 libevent-pthreads-2.1-6
libfreexl1 libfyba0 libgdal20 libgdcm2.8 libgeos-3.7.1 libgeos-c1v5 libgeotiff2 libgfortran-8-dev libgl2ps1.4 libhdf4-0-alt
libhdf5-103 libhdf5-openmpi-103 libhwloc-dev libhwloc-plugins libhwloc5 libibverbs-dev libkmlbase1 libkmlconvenience1
libkmldom1 libkmlengine1 libkmlregionator1 libkmlxsd1 liblept5 libmariadb3 libminizip1 libnetcdf-c++4 libnetcdf13 libnl-3-dev
libnl-route-3-dev libodbc1 libogdi3.2 libopencv-calib3d3.2 libopencv-contrib3.2 libopencv-core3.2 libopencv-features2d3.2
libopencv-flann3.2 libopencv-highgui3.2 libopencv-imgcodecs3.2 libopencv-imgproc3.2 libopencv-ml3.2 libopencv-objdetect3.2
libopencv-photo3.2 libopencv-shape3.2 libopencv-stitching3.2 libopencv-superres3.2 libopencv-video3.2 libopencv-videoio3.2
libopencv-videostab3.2 libopencv-viz3.2 libopenmpi-dev libopenmpi3 libpmix2 libproj13 libqhull7 libsocket++1 libspatialite7
libsuperlu5 libsz2 libtbb2 libtesseract4 liburiparser1 libvtk6.3 libxerces-c3.2 mariadb-common mysql-common ocl-icd-libopencl1
odbcinst odbcinst1debian2 openmpi-bin openmpi-common proj-bin proj-data python-opencv
アップグレード: 0 個、新規インストール: 89 個、削除: 0 個、保留: 0 個。
69.6 MB のアーカイブを取得する必要があります。
この操作後に追加で 280 MB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf gdal-data all 2.4.0+dfsg-1 [744 kB]
取得:2 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libgfortran-8-dev armhf 8.3.0-6+rpi1 [249 kB]
取得:4 http://raspbian.raspberrypi.org/raspbian buster/main armhf gfortran armhf 4:8.3.0-1+rpi2 [1,428 B]
取得:8 http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian buster/main armhf libarmadillo9 armhf 1:9.200.7+dfsg-1 [87.0 kB]
取得:3 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf gfortran-8 armhf 8.3.0-6+rpi1 [7,202 kB]
取得:5 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libaec0 armhf 1.0.2-1 [21.3 kB]
取得:6 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libarpack2 armhf 3.7.0-2 [83.1 kB]
取得:7 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libsuperlu5 armhf 5.2.1+dfsg1-4 [126 kB]
取得:11 http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian buster/main armhf libhwloc5 armhf 1.11.12-3+rpi1 [86.3 kB]
取得:9 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libevent-core-2.1-6 armhf 2.1.8-stable-4 [117 kB]
取得:10 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libevent-pthreads-2.1-6 armhf 2.1.8-stable-4 [47.6 kB]
得:12 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf ocl-icd-libopencl1 armhf 2.2.12-2 [35.7 kB]
取得:13 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libhwloc-plugins armhf 1.11.12-3+rpi1 [16.0 kB]
取得:14 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libpmix2 armhf 3.1.2-3 [423 kB]
取得:15 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopenmpi3 armhf 3.1.3-11+rpi1 [1,813 kB]
取得:30 http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian buster/main armhf proj-data all 5.2.0-1 [6,986 kB]
取得:16 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libcaf-openmpi-3 armhf 2.4.0-2 [31.3 kB]
取得:17 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libcharls2 armhf 2.0.0+dfsg-1 [52.0 kB]
取得:18 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libcoarrays-dev armhf 2.4.0-2 [29.1 kB]
取得:19 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf openmpi-common all 3.1.3-11+rpi1 [164 kB]
取得:20 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf openmpi-bin armhf 3.1.3-11+rpi1 [197 kB]
取得:21 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libcoarrays-openmpi-dev armhf 2.4.0-2 [29.2 kB]
取得:22 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libdap25 armhf 3.20.3-1 [470 kB]
取得:23 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libdapclient6v5 armhf 3.20.3-1 [185 kB]
取得:24 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libdapserver7v5 armhf 3.20.3-1 [127 kB]
取得:25 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libepsilon1 armhf 0.9.2+dfsg-4 [36.4 kB]
取得:26 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libfreexl1 armhf 1.0.5-3 [31.8 kB]
取得:27 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libfyba0 armhf 4.1.1-6 [97.8 kB]
取得:28 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libgeos-3.7.1 armhf 3.7.1-1 [637 kB]
取得:29 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libgeos-c1v5 armhf 3.7.1-1 [290 kB]
取得:31 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libproj13 armhf 5.2.0-1 [185 kB]
取得:32 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libgeotiff2 armhf 1.4.3-1 [63.8 kB]
取得:33 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libhdf4-0-alt armhf 4.2.13-4+b1 [235 kB]
取得:34 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libsz2 armhf 1.0.2-1 [6,640 B]
取得:35 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libhdf5-103 armhf 1.10.4+repack-10 [1,259 kB]
取得:36 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libminizip1 armhf 1.1-8 [18.3 kB]
取得:37 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf liburiparser1 armhf 0.9.1-1 [39.4 kB]
取得:38 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libkmlbase1 armhf 1.3.0-7 [42.1 kB]
取得:39 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libkmldom1 armhf 1.3.0-7 [144 kB]
取得:40 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libkmlengine1 armhf 1.3.0-7 [67.4 kB]
取得:41 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libkmlconvenience1 armhf 1.3.0-7 [44.4 kB]
取得:42 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libkmlregionator1 armhf 1.3.0-7 [22.2 kB]
取得:43 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libkmlxsd1 armhf 1.3.0-7 [28.7 kB]
取得:44 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf mysql-common all 5.8+1.0.5 [7,324 B]
取得:45 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf mariadb-common all 1:10.3.15-1 [31.3 kB]
:46 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libmariadb3 armhf 1:10.3.15-1 [167 kB]
取得:47 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libnetcdf13 armhf 1:4.6.2-1+b1 [352 kB]
取得:48 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libodbc1 armhf 2.3.6-0.1 [186 kB]
取得:49 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libogdi3.2 armhf 3.2.1+ds-4 [194 kB]
取得:50 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libqhull7 armhf 2015.2-4 [175 kB]
取得:51 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libspatialite7 armhf 4.3.0a-5+b2 [1,231 kB]
取得:52 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libxerces-c3.2 armhf 3.2.2+debian-1+b1 [707 kB]
取得:53 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf odbcinst armhf 2.3.6-0.1 [47.6 kB]
取得:54 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf odbcinst1debian2 armhf 2.3.6-0.1 [70.8 kB]
取得:55 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libgdal20 armhf 2.4.0+dfsg-1+b2 [5,065 kB]
取得:56 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libsocket++1 armhf 1.12.13-10 [35.2 kB]
取得:57 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libgdcm2.8 armhf 2.8.8-9 [1,596 kB]
取得:58 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libgl2ps1.4 armhf 1.4.0+dfsg1-2 [34.2 kB]
取得:59 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libhdf5-openmpi-103 armhf 1.10.4+repack-10 [1,306 kB]
取得:60 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libhwloc-dev armhf 1.11.12-3+rpi1 [142 kB]
取得:61 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libnl-3-dev armhf 3.4.0-1 [92.4 kB]
取得:62 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libnl-route-3-dev armhf 3.4.0-1 [145 kB]
取得:63 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libibverbs-dev armhf 22.1-1 [149 kB]
取得:64 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf liblept5 armhf 1.76.0-1 [804 kB]
取得:65 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libnetcdf-c++4 armhf 4.2-11 [28.3 kB]
取得:66 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libtbb2 armhf 2018~U6-4 [110 kB]
取得:67 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopencv-core3.2 armhf 3.2.0+dfsg-6 [602 kB]
取得:68 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopencv-flann3.2 armhf 3.2.0+dfsg-6 [85.5 kB]
取得:69 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopencv-imgproc3.2 armhf 3.2.0+dfsg-6 [682 kB]
取得:70 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopencv-imgcodecs3.2 armhf 3.2.0+dfsg-6 [80.8 kB]
取得:71 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopencv-videoio3.2 armhf 3.2.0+dfsg-6 [82.0 kB]
取得:72 http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian buster/main armhf libopencv-highgui3.2 armhf 3.2.0+dfsg-6 [30.1 kB]
取得:73 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopencv-ml3.2 armhf 3.2.0+dfsg-6 [195 kB]
取得:74 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopencv-features2d3.2 armhf 3.2.0+dfsg-6 [188 kB]
取得:75 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopencv-calib3d3.2 armhf 3.2.0+dfsg-6 [385 kB]
取得:76 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopencv-objdetect3.2 armhf 3.2.0+dfsg-6 [131 kB]
取得:77 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopencv-photo3.2 armhf 3.2.0+dfsg-6 [168 kB]
取得:78 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopencv-video3.2 armhf 3.2.0+dfsg-6 [115 kB]
取得:79 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopencv-shape3.2 armhf 3.2.0+dfsg-6 [59.8 kB]
取得:80 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopencv-stitching3.2 armhf 3.2.0+dfsg-6 [152 kB]
取得:81 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopencv-superres3.2 armhf 3.2.0+dfsg-6 [49.1 kB]
取得:82 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopencv-videostab3.2 armhf 3.2.0+dfsg-6 [93.1 kB]
取得:83 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libvtk6.3 armhf 6.3.0+dfsg2-2+b6 [27.4 MB]
取得:84 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopencv-viz3.2 armhf 3.2.0+dfsg-6 [107 kB]
取得:85 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libtesseract4 armhf 4.0.0-2 [1,032 kB]
取得:86 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopencv-contrib3.2 armhf 3.2.0+dfsg-6 [1,222 kB]
取得:87 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libopenmpi-dev armhf 3.1.3-11+rpi1 [964 kB]
取得:88 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf proj-bin armhf 5.2.0-1 [98.2 kB]
取得:89 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf python-opencv armhf 3.2.0+dfsg-6 [487 kB]
69.6 MB を 54秒 で取得しました (1,285 kB/s)
パッケージからテンプレートを展開しています: 100%
以前に未選択のパッケージ gdal-data を選択しています。
(データベースを読み込んでいます ... 現在 151245 個のファイルとディレクトリがインストールされています。)
.../00-gdal-data_2.4.0+dfsg-1_all.deb を展開する準備をしています ...
gdal-data (2.4.0+dfsg-1) を展開しています...
以前に未選択のパッケージ libgfortran-8-dev:armhf を選択しています。
.../01-libgfortran-8-dev_8.3.0-6+rpi1_armhf.deb を展開する準備をしています ...
libgfortran-8-dev:armhf (8.3.0-6+rpi1) を展開しています...
以前に未選択のパッケージ gfortran-8 を選択しています。
.../02-gfortran-8_8.3.0-6+rpi1_armhf.deb を展開する準備をしています ...
gfortran-8 (8.3.0-6+rpi1) を展開しています...
以前に未選択のパッケージ gfortran を選択しています。
.../03-gfortran_4%3a8.3.0-1+rpi2_armhf.deb を展開する準備をしています ...
gfortran (4:8.3.0-1+rpi2) を展開しています...
以前に未選択のパッケージ libaec0:armhf を選択しています。
.../04-libaec0_1.0.2-1_armhf.deb を展開する準備をしています ...
libaec0:armhf (1.0.2-1) を展開しています...
以前に未選択のパッケージ libarpack2:armhf を選択しています。
.../05-libarpack2_3.7.0-2_armhf.deb を展開する準備をしています ...
libarpack2:armhf (3.7.0-2) を展開しています...
以前に未選択のパッケージ libsuperlu5:armhf を選択しています。
.../06-libsuperlu5_5.2.1+dfsg1-4_armhf.deb を展開する準備をしています ...
libsuperlu5:armhf (5.2.1+dfsg1-4) を展開しています...
以前に未選択のパッケージ libarmadillo9 を選択しています。
.../07-libarmadillo9_1%3a9.200.7+dfsg-1_armhf.deb を展開する準備をしています ...
libarmadillo9 (1:9.200.7+dfsg-1) を展開しています...
以前に未選択のパッケージ libevent-core-2.1-6:armhf を選択しています。
.../08-libevent-core-2.1-6_2.1.8-stable-4_armhf.deb を展開する準備をしています ...
libevent-core-2.1-6:armhf (2.1.8-stable-4) を展開しています...
以前に未選択のパッケージ libevent-pthreads-2.1-6:armhf を選択しています。
.../09-libevent-pthreads-2.1-6_2.1.8-stable-4_armhf.deb を展開する準備をしています ...
libevent-pthreads-2.1-6:armhf (2.1.8-stable-4) を展開しています...
以前に未選択のパッケージ libhwloc5:armhf を選択しています。
.../10-libhwloc5_1.11.12-3+rpi1_armhf.deb を展開する準備をしています ...
libhwloc5:armhf (1.11.12-3+rpi1) を展開しています...
以前に未選択のパッケージ ocl-icd-libopencl1:armhf を選択しています。
.../11-ocl-icd-libopencl1_2.2.12-2_armhf.deb を展開する準備をしています ...
ocl-icd-libopencl1:armhf (2.2.12-2) を展開しています...
以前に未選択のパッケージ libhwloc-plugins:armhf を選択しています。
.../12-libhwloc-plugins_1.11.12-3+rpi1_armhf.deb を展開する準備をしています ...
libhwloc-plugins:armhf (1.11.12-3+rpi1) を展開しています...
以前に未選択のパッケージ libpmix2:armhf を選択しています。
.../13-libpmix2_3.1.2-3_armhf.deb を展開する準備をしています ...
libpmix2:armhf (3.1.2-3) を展開しています...
以前に未選択のパッケージ libopenmpi3:armhf を選択しています。
.../14-libopenmpi3_3.1.3-11+rpi1_armhf.deb を展開する準備をしています ...
libopenmpi3:armhf (3.1.3-11+rpi1) を展開しています...
以前に未選択のパッケージ libcaf-openmpi-3:armhf を選択しています。
.../15-libcaf-openmpi-3_2.4.0-2_armhf.deb を展開する準備をしています ...
libcaf-openmpi-3:armhf (2.4.0-2) を展開しています...
以前に未選択のパッケージ libcharls2:armhf を選択しています。
.../16-libcharls2_2.0.0+dfsg-1_armhf.deb を展開する準備をしています ...
libcharls2:armhf (2.0.0+dfsg-1) を展開しています...
以前に未選択のパッケージ libcoarrays-dev:armhf を選択しています。
.../17-libcoarrays-dev_2.4.0-2_armhf.deb を展開する準備をしています ...
libcoarrays-dev:armhf (2.4.0-2) を展開しています...
以前に未選択のパッケージ openmpi-common を選択しています。
.../18-openmpi-common_3.1.3-11+rpi1_all.deb を展開する準備をしています ...
openmpi-common (3.1.3-11+rpi1) を展開しています...
以前に未選択のパッケージ openmpi-bin を選択しています。
.../19-openmpi-bin_3.1.3-11+rpi1_armhf.deb を展開する準備をしています ...
openmpi-bin (3.1.3-11+rpi1) を展開しています...
以前に未選択のパッケージ libcoarrays-openmpi-dev:armhf を選択しています。
.../20-libcoarrays-openmpi-dev_2.4.0-2_armhf.deb を展開する準備をしています ...
libcoarrays-openmpi-dev:armhf (2.4.0-2) を展開しています...
以前に未選択のパッケージ libdap25:armhf を選択しています。
.../21-libdap25_3.20.3-1_armhf.deb を展開する準備をしています ...
libdap25:armhf (3.20.3-1) を展開しています...
以前に未選択のパッケージ libdapclient6v5:armhf を選択しています。
.../22-libdapclient6v5_3.20.3-1_armhf.deb を展開する準備をしています ...
libdapclient6v5:armhf (3.20.3-1) を展開しています...
以前に未選択のパッケージ libdapserver7v5:armhf を選択しています。
.../23-libdapserver7v5_3.20.3-1_armhf.deb を展開する準備をしています ...
libdapserver7v5:armhf (3.20.3-1) を展開しています...
以前に未選択のパッケージ libepsilon1:armhf を選択しています。
.../24-libepsilon1_0.9.2+dfsg-4_armhf.deb を展開する準備をしています ...
libepsilon1:armhf (0.9.2+dfsg-4) を展開しています...
以前に未選択のパッケージ libfreexl1:armhf を選択しています。
.../25-libfreexl1_1.0.5-3_armhf.deb を展開する準備をしています ...
libfreexl1:armhf (1.0.5-3) を展開しています...
以前に未選択のパッケージ libfyba0:armhf を選択しています。
.../26-libfyba0_4.1.1-6_armhf.deb を展開する準備をしています ...
libfyba0:armhf (4.1.1-6) を展開しています...
以前に未選択のパッケージ libgeos-3.7.1:armhf を選択しています。
.../27-libgeos-3.7.1_3.7.1-1_armhf.deb を展開する準備をしています ...
libgeos-3.7.1:armhf (3.7.1-1) を展開しています...
以前に未選択のパッケージ libgeos-c1v5:armhf を選択しています。
.../28-libgeos-c1v5_3.7.1-1_armhf.deb を展開する準備をしています ...
libgeos-c1v5:armhf (3.7.1-1) を展開しています...
以前に未選択のパッケージ proj-data を選択しています。
.../29-proj-data_5.2.0-1_all.deb を展開する準備をしています ...
proj-data (5.2.0-1) を展開しています...
以前に未選択のパッケージ libproj13:armhf を選択しています。
.../30-libproj13_5.2.0-1_armhf.deb を展開する準備をしています ...
libproj13:armhf (5.2.0-1) を展開しています...
以前に未選択のパッケージ libgeotiff2:armhf を選択しています。
.../31-libgeotiff2_1.4.3-1_armhf.deb を展開する準備をしています ...
libgeotiff2:armhf (1.4.3-1) を展開しています...
以前に未選択のパッケージ libhdf4-0-alt を選択しています。
.../32-libhdf4-0-alt_4.2.13-4+b1_armhf.deb を展開する準備をしています ...
libhdf4-0-alt (4.2.13-4+b1) を展開しています...
以前に未選択のパッケージ libsz2:armhf を選択しています。
.../33-libsz2_1.0.2-1_armhf.deb を展開する準備をしています ...
libsz2:armhf (1.0.2-1) を展開しています...
以前に未選択のパッケージ libhdf5-103:armhf を選択しています。
.../34-libhdf5-103_1.10.4+repack-10_armhf.deb を展開する準備をしています ...
libhdf5-103:armhf (1.10.4+repack-10) を展開しています...
以前に未選択のパッケージ libminizip1:armhf を選択しています。
.../35-libminizip1_1.1-8_armhf.deb を展開する準備をしています ...
libminizip1:armhf (1.1-8) を展開しています...
以前に未選択のパッケージ liburiparser1:armhf を選択しています。
.../36-liburiparser1_0.9.1-1_armhf.deb を展開する準備をしています ...
liburiparser1:armhf (0.9.1-1) を展開しています...
以前に未選択のパッケージ libkmlbase1:armhf を選択しています。
.../37-libkmlbase1_1.3.0-7_armhf.deb を展開する準備をしています ...
libkmlbase1:armhf (1.3.0-7) を展開しています...
以前に未選択のパッケージ libkmldom1:armhf を選択しています。
.../38-libkmldom1_1.3.0-7_armhf.deb を展開する準備をしています ...
libkmldom1:armhf (1.3.0-7) を展開しています...
以前に未選択のパッケージ libkmlengine1:armhf を選択しています。
.../39-libkmlengine1_1.3.0-7_armhf.deb を展開する準備をしています ...
libkmlengine1:armhf (1.3.0-7) を展開しています...
以前に未選択のパッケージ libkmlconvenience1:armhf を選択しています。
.../40-libkmlconvenience1_1.3.0-7_armhf.deb を展開する準備をしています ...
libkmlconvenience1:armhf (1.3.0-7) を展開しています...
以前に未選択のパッケージ libkmlregionator1:armhf を選択しています。
.../41-libkmlregionator1_1.3.0-7_armhf.deb を展開する準備をしています ...
libkmlregionator1:armhf (1.3.0-7) を展開しています...
以前に未選択のパッケージ libkmlxsd1:armhf を選択しています。
.../42-libkmlxsd1_1.3.0-7_armhf.deb を展開する準備をしています ...
libkmlxsd1:armhf (1.3.0-7) を展開しています...
以前に未選択のパッケージ mysql-common を選択しています。
.../43-mysql-common_5.8+1.0.5_all.deb を展開する準備をしています ...
mysql-common (5.8+1.0.5) を展開しています...
以前に未選択のパッケージ mariadb-common を選択しています。
.../44-mariadb-common_1%3a10.3.15-1_all.deb を展開する準備をしています ...
mariadb-common (1:10.3.15-1) を展開しています...
以前に未選択のパッケージ libmariadb3:armhf を選択しています。
.../45-libmariadb3_1%3a10.3.15-1_armhf.deb を展開する準備をしています ...
libmariadb3:armhf (1:10.3.15-1) を展開しています...
以前に未選択のパッケージ libnetcdf13:armhf を選択しています。
.../46-libnetcdf13_1%3a4.6.2-1+b1_armhf.deb を展開する準備をしています ...
libnetcdf13:armhf (1:4.6.2-1+b1) を展開しています...
以前に未選択のパッケージ libodbc1:armhf を選択しています。
.../47-libodbc1_2.3.6-0.1_armhf.deb を展開する準備をしています ...
libodbc1:armhf (2.3.6-0.1) を展開しています...
以前に未選択のパッケージ libogdi3.2 を選択しています。
.../48-libogdi3.2_3.2.1+ds-4_armhf.deb を展開する準備をしています ...
libogdi3.2 (3.2.1+ds-4) を展開しています...
以前に未選択のパッケージ libqhull7:armhf を選択しています。
.../49-libqhull7_2015.2-4_armhf.deb を展開する準備をしています ...
libqhull7:armhf (2015.2-4) を展開しています...
以前に未選択のパッケージ libspatialite7:armhf を選択しています。
.../50-libspatialite7_4.3.0a-5+b2_armhf.deb を展開する準備をしています ...
libspatialite7:armhf (4.3.0a-5+b2) を展開しています...
以前に未選択のパッケージ libxerces-c3.2:armhf を選択しています。
.../51-libxerces-c3.2_3.2.2+debian-1+b1_armhf.deb を展開する準備をしています ...
libxerces-c3.2:armhf (3.2.2+debian-1+b1) を展開しています...
以前に未選択のパッケージ odbcinst を選択しています。
.../52-odbcinst_2.3.6-0.1_armhf.deb を展開する準備をしています ...
odbcinst (2.3.6-0.1) を展開しています...
以前に未選択のパッケージ odbcinst1debian2:armhf を選択しています。
.../53-odbcinst1debian2_2.3.6-0.1_armhf.deb を展開する準備をしています ...
odbcinst1debian2:armhf (2.3.6-0.1) を展開しています...
以前に未選択のパッケージ libgdal20 を選択しています。
.../54-libgdal20_2.4.0+dfsg-1+b2_armhf.deb を展開する準備をしています ...
libgdal20 (2.4.0+dfsg-1+b2) を展開しています...
以前に未選択のパッケージ libsocket++1:armhf を選択しています。
.../55-libsocket++1_1.12.13-10_armhf.deb を展開する準備をしています ...
libsocket++1:armhf (1.12.13-10) を展開しています...
以前に未選択のパッケージ libgdcm2.8:armhf を選択しています。
.../56-libgdcm2.8_2.8.8-9_armhf.deb を展開する準備をしています ...
libgdcm2.8:armhf (2.8.8-9) を展開しています...
以前に未選択のパッケージ libgl2ps1.4 を選択しています。
.../57-libgl2ps1.4_1.4.0+dfsg1-2_armhf.deb を展開する準備をしています ...
libgl2ps1.4 (1.4.0+dfsg1-2) を展開しています...
以前に未選択のパッケージ libhdf5-openmpi-103:armhf を選択しています。
.../58-libhdf5-openmpi-103_1.10.4+repack-10_armhf.deb を展開する準備をしています ...
libhdf5-openmpi-103:armhf (1.10.4+repack-10) を展開しています...
以前に未選択のパッケージ libhwloc-dev:armhf を選択しています。
.../59-libhwloc-dev_1.11.12-3+rpi1_armhf.deb を展開する準備をしています ...
libhwloc-dev:armhf (1.11.12-3+rpi1) を展開しています...
以前に未選択のパッケージ libnl-3-dev:armhf を選択しています。
.../60-libnl-3-dev_3.4.0-1_armhf.deb を展開する準備をしています ...
libnl-3-dev:armhf (3.4.0-1) を展開しています...
以前に未選択のパッケージ libnl-route-3-dev:armhf を選択しています。
.../61-libnl-route-3-dev_3.4.0-1_armhf.deb を展開する準備をしています ...
libnl-route-3-dev:armhf (3.4.0-1) を展開しています...
以前に未選択のパッケージ libibverbs-dev:armhf を選択しています。
.../62-libibverbs-dev_22.1-1_armhf.deb を展開する準備をしています ...
libibverbs-dev:armhf (22.1-1) を展開しています...
以前に未選択のパッケージ liblept5 を選択しています。
.../63-liblept5_1.76.0-1_armhf.deb を展開する準備をしています ...
liblept5 (1.76.0-1) を展開しています...
以前に未選択のパッケージ libnetcdf-c++4 を選択しています。
.../64-libnetcdf-c++4_4.2-11_armhf.deb を展開する準備をしています ...
libnetcdf-c++4 (4.2-11) を展開しています...
以前に未選択のパッケージ libtbb2:armhf を選択しています。
.../65-libtbb2_2018~U6-4_armhf.deb を展開する準備をしています ...
libtbb2:armhf (2018~U6-4) を展開しています...
以前に未選択のパッケージ libopencv-core3.2:armhf を選択しています。
.../66-libopencv-core3.2_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
libopencv-core3.2:armhf (3.2.0+dfsg-6) を展開しています...
以前に未選択のパッケージ libopencv-flann3.2:armhf を選択しています。
.../67-libopencv-flann3.2_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
libopencv-flann3.2:armhf (3.2.0+dfsg-6) を展開しています...
以前に未選択のパッケージ libopencv-imgproc3.2:armhf を選択しています。
.../68-libopencv-imgproc3.2_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
libopencv-imgproc3.2:armhf (3.2.0+dfsg-6) を展開しています...
以前に未選択のパッケージ libopencv-imgcodecs3.2:armhf を選択しています。
.../69-libopencv-imgcodecs3.2_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
libopencv-imgcodecs3.2:armhf (3.2.0+dfsg-6) を展開しています...
以前に未選択のパッケージ libopencv-videoio3.2:armhf を選択しています。
.../70-libopencv-videoio3.2_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
libopencv-videoio3.2:armhf (3.2.0+dfsg-6) を展開しています...
以前に未選択のパッケージ libopencv-highgui3.2:armhf を選択しています。
.../71-libopencv-highgui3.2_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
libopencv-highgui3.2:armhf (3.2.0+dfsg-6) を展開しています...
以前に未選択のパッケージ libopencv-ml3.2:armhf を選択しています。
.../72-libopencv-ml3.2_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
libopencv-ml3.2:armhf (3.2.0+dfsg-6) を展開しています...
以前に未選択のパッケージ libopencv-features2d3.2:armhf を選択しています。
.../73-libopencv-features2d3.2_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
libopencv-features2d3.2:armhf (3.2.0+dfsg-6) を展開しています...
以前に未選択のパッケージ libopencv-calib3d3.2:armhf を選択しています。
.../74-libopencv-calib3d3.2_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
libopencv-calib3d3.2:armhf (3.2.0+dfsg-6) を展開しています...
以前に未選択のパッケージ libopencv-objdetect3.2:armhf を選択しています。
.../75-libopencv-objdetect3.2_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
libopencv-objdetect3.2:armhf (3.2.0+dfsg-6) を展開しています...
以前に未選択のパッケージ libopencv-photo3.2:armhf を選択しています。
.../76-libopencv-photo3.2_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
libopencv-photo3.2:armhf (3.2.0+dfsg-6) を展開しています...
以前に未選択のパッケージ libopencv-video3.2:armhf を選択しています。
.../77-libopencv-video3.2_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
libopencv-video3.2:armhf (3.2.0+dfsg-6) を展開しています...
以前に未選択のパッケージ libopencv-shape3.2:armhf を選択しています。
.../78-libopencv-shape3.2_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
libopencv-shape3.2:armhf (3.2.0+dfsg-6) を展開しています...
以前に未選択のパッケージ libopencv-stitching3.2:armhf を選択しています。
.../79-libopencv-stitching3.2_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
libopencv-stitching3.2:armhf (3.2.0+dfsg-6) を展開しています...
以前に未選択のパッケージ libopencv-superres3.2:armhf を選択しています。
.../80-libopencv-superres3.2_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
libopencv-superres3.2:armhf (3.2.0+dfsg-6) を展開しています...
以前に未選択のパッケージ libopencv-videostab3.2:armhf を選択しています。
.../81-libopencv-videostab3.2_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
libopencv-videostab3.2:armhf (3.2.0+dfsg-6) を展開しています...
以前に未選択のパッケージ libvtk6.3 を選択しています。
.../82-libvtk6.3_6.3.0+dfsg2-2+b6_armhf.deb を展開する準備をしています ...
libvtk6.3 (6.3.0+dfsg2-2+b6) を展開しています...
以前に未選択のパッケージ libopencv-viz3.2:armhf を選択しています。
.../83-libopencv-viz3.2_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
libopencv-viz3.2:armhf (3.2.0+dfsg-6) を展開しています...
以前に未選択のパッケージ libtesseract4:armhf を選択しています。
.../84-libtesseract4_4.0.0-2_armhf.deb を展開する準備をしています ...
libtesseract4:armhf (4.0.0-2) を展開しています...
以前に未選択のパッケージ libopencv-contrib3.2:armhf を選択しています。
.../85-libopencv-contrib3.2_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
libopencv-contrib3.2:armhf (3.2.0+dfsg-6) を展開しています...
以前に未選択のパッケージ libopenmpi-dev:armhf を選択しています。
.../86-libopenmpi-dev_3.1.3-11+rpi1_armhf.deb を展開する準備をしています ...
libopenmpi-dev:armhf (3.1.3-11+rpi1) を展開しています...
以前に未選択のパッケージ proj-bin を選択しています。
.../87-proj-bin_5.2.0-1_armhf.deb を展開する準備をしています ...
proj-bin (5.2.0-1) を展開しています...
以前に未選択のパッケージ python-opencv を選択しています。
.../88-python-opencv_3.2.0+dfsg-6_armhf.deb を展開する準備をしています ...
python-opencv (3.2.0+dfsg-6) を展開しています...
libgfortran-8-dev:armhf (8.3.0-6+rpi1) を設定しています ...
mysql-common (5.8+1.0.5) を設定しています ...
update-alternatives: /etc/mysql/my.cnf (my.cnf) を提供するために自動モードで /etc/mysql/my.cnf.fallback を使います
libxerces-c3.2:armhf (3.2.2+debian-1+b1) を設定しています ...
proj-data (5.2.0-1) を設定しています ...
libcharls2:armhf (2.0.0+dfsg-1) を設定しています ...
libminizip1:armhf (1.1-8) を設定しています ...
libhwloc5:armhf (1.11.12-3+rpi1) を設定しています ...
gfortran-8 (8.3.0-6+rpi1) を設定しています ...
libproj13:armhf (5.2.0-1) を設定しています ...
libtbb2:armhf (2018~U6-4) を設定しています ...
libarpack2:armhf (3.7.0-2) を設定しています ...
libsuperlu5:armhf (5.2.1+dfsg1-4) を設定しています ...
proj-bin (5.2.0-1) を設定しています ...
libdap25:armhf (3.20.3-1) を設定しています ...
libqhull7:armhf (2015.2-4) を設定しています ...
libepsilon1:armhf (0.9.2+dfsg-4) を設定しています ...
libdapserver7v5:armhf (3.20.3-1) を設定しています ...
gfortran (4:8.3.0-1+rpi2) を設定しています ...
update-alternatives: /usr/bin/f95 (f95) を提供するために自動モードで /usr/bin/gfortran を使います
update-alternatives: /usr/bin/f77 (f77) を提供するために自動モードで /usr/bin/gfortran を使います
libgeos-3.7.1:armhf (3.7.1-1) を設定しています ...
libaec0:armhf (1.0.2-1) を設定しています ...
gdal-data (2.4.0+dfsg-1) を設定しています ...
libgl2ps1.4 (1.4.0+dfsg1-2) を設定しています ...
liblept5 (1.76.0-1) を設定しています ...
mariadb-common (1:10.3.15-1) を設定しています ...
update-alternatives: /etc/mysql/my.cnf (my.cnf) を提供するために自動モードで /etc/mysql/mariadb.cnf を使います
libgeotiff2:armhf (1.4.3-1) を設定しています ...
libgeos-c1v5:armhf (3.7.1-1) を設定しています ...
libmariadb3:armhf (1:10.3.15-1) を設定しています ...
libsocket++1:armhf (1.12.13-10) を設定しています ...
libodbc1:armhf (2.3.6-0.1) を設定しています ...
libtesseract4:armhf (4.0.0-2) を設定しています ...
libevent-core-2.1-6:armhf (2.1.8-stable-4) を設定しています ...
libhdf4-0-alt (4.2.13-4+b1) を設定しています ...
liburiparser1:armhf (0.9.1-1) を設定しています ...
libnl-3-dev:armhf (3.4.0-1) を設定しています ...
libfreexl1:armhf (1.0.5-3) を設定しています ...
ocl-icd-libopencl1:armhf (2.2.12-2) を設定しています ...
libfyba0:armhf (4.1.1-6) を設定しています ...
libkmlbase1:armhf (1.3.0-7) を設定しています ...
libdapclient6v5:armhf (3.20.3-1) を設定しています ...
openmpi-common (3.1.3-11+rpi1) を設定しています ...
libhwloc-dev:armhf (1.11.12-3+rpi1) を設定しています ...
libarmadillo9 (1:9.200.7+dfsg-1) を設定しています ...
libopencv-core3.2:armhf (3.2.0+dfsg-6) を設定しています ...
libopencv-ml3.2:armhf (3.2.0+dfsg-6) を設定しています ...
libsz2:armhf (1.0.2-1) を設定しています ...
libkmlxsd1:armhf (1.3.0-7) を設定しています ...
libopencv-imgproc3.2:armhf (3.2.0+dfsg-6) を設定しています ...
libkmldom1:armhf (1.3.0-7) を設定しています ...
libspatialite7:armhf (4.3.0a-5+b2) を設定しています ...
libevent-pthreads-2.1-6:armhf (2.1.8-stable-4) を設定しています ...
libogdi3.2 (3.2.1+ds-4) を設定しています ...
libkmlengine1:armhf (1.3.0-7) を設定しています ...
libopencv-photo3.2:armhf (3.2.0+dfsg-6) を設定しています ...
libkmlconvenience1:armhf (1.3.0-7) を設定しています ...
libcoarrays-dev:armhf (2.4.0-2) を設定しています ...
libhwloc-plugins:armhf (1.11.12-3+rpi1) を設定しています ...
libnl-route-3-dev:armhf (3.4.0-1) を設定しています ...
libgdcm2.8:armhf (2.8.8-9) を設定しています ...
libkmlregionator1:armhf (1.3.0-7) を設定しています ...
libhdf5-103:armhf (1.10.4+repack-10) を設定しています ...
libopencv-video3.2:armhf (3.2.0+dfsg-6) を設定しています ...
libopencv-flann3.2:armhf (3.2.0+dfsg-6) を設定しています ...
libpmix2:armhf (3.1.2-3) を設定しています ...
libopenmpi3:armhf (3.1.3-11+rpi1) を設定しています ...
libnetcdf13:armhf (1:4.6.2-1+b1) を設定しています ...
libibverbs-dev:armhf (22.1-1) を設定しています ...
libnetcdf-c++4 (4.2-11) を設定しています ...
libhdf5-openmpi-103:armhf (1.10.4+repack-10) を設定しています ...
libcaf-openmpi-3:armhf (2.4.0-2) を設定しています ...
libopencv-shape3.2:armhf (3.2.0+dfsg-6) を設定しています ...
openmpi-bin (3.1.3-11+rpi1) を設定しています ...
update-alternatives: /usr/bin/mpirun (mpirun) を提供するために自動モードで /usr/bin/mpirun.openmpi を使います
update-alternatives: /usr/bin/mpicc (mpi) を提供するために自動モードで /usr/bin/mpicc.openmpi を使います
libcoarrays-openmpi-dev:armhf (2.4.0-2) を設定しています ...
libopenmpi-dev:armhf (3.1.3-11+rpi1) を設定しています ...
update-alternatives: /usr/include/arm-linux-gnueabihf/mpi (mpi-arm-linux-gnueabihf) を提供するために自動モードで /usr/lib/arm-linux-gnueabihf/openmpi/include を使います
odbcinst (2.3.6-0.1) を設定しています ...
odbcinst1debian2:armhf (2.3.6-0.1) を設定しています ...
libgdal20 (2.4.0+dfsg-1+b2) を設定しています ...
libopencv-imgcodecs3.2:armhf (3.2.0+dfsg-6) を設定しています ...
libvtk6.3 (6.3.0+dfsg2-2+b6) を設定しています ...
libopencv-viz3.2:armhf (3.2.0+dfsg-6) を設定しています ...
libopencv-videoio3.2:armhf (3.2.0+dfsg-6) を設定しています ...
libopencv-superres3.2:armhf (3.2.0+dfsg-6) を設定しています ...
libopencv-highgui3.2:armhf (3.2.0+dfsg-6) を設定しています ...
libopencv-features2d3.2:armhf (3.2.0+dfsg-6) を設定しています ...
libopencv-calib3d3.2:armhf (3.2.0+dfsg-6) を設定しています ...
libopencv-objdetect3.2:armhf (3.2.0+dfsg-6) を設定しています ...
libopencv-stitching3.2:armhf (3.2.0+dfsg-6) を設定しています ...
libopencv-videostab3.2:armhf (3.2.0+dfsg-6) を設定しています ...
libopencv-contrib3.2:armhf (3.2.0+dfsg-6) を設定しています ...
python-opencv (3.2.0+dfsg-6) を設定しています ...
libc-bin (2.28-10+rpi1) のトリガを処理しています ...
man-db (2.8.5-2) のトリガを処理しています ...

めざましじゃんけん 画像検出システム

めざましじゃんけん結果

テレビ画像よりフジテレビ、めざましテレビ内で実施されるめざましじゃんけんの結果を蓄積します。めざましじゃんけんは、デジタル放送のコンテンツであり、B-CAS(ビーキャス)カードを用いた受信装置により、データ放送を画面表示させ、リアルタイムに参加する必要があります。番組録画しても、データ放送のコンテンツは録画することは出来ません。

  1. 環境準備(インストール)

  2. Darknet/YOLOで学習モデル準備

  3. システム実装と結果公開

  4. プログラム関連技術

本システム実装に関連した、プログラム関係のTips。

    • PHP
    • Python
  1. 【機械学習導入】ニューラルネットワークChainerフレームワーク

    • 導入方法
    • 機械学習
    • Out of Memoryへの対応
    • 学習モデルのRaspberry Piでの実行

フジテレビのめざましじゃんけん画像検出

フジテレビのめざましじゃんけんシステムGo-Live!!
本日分が無事に動いたので、早速公開!
めざましじゃんけん結果一覧はこちら

初めての技術習得が結構多く、開発極小がポリシーなのですが、時間かかりました。各種勉強から初めて3週間弱でしょうか。
7月13日の週末に、関連書籍とWEBカメラをアマゾンで購入していました。

Deep Learning(ディープラーニング、深層学習)DNN(ディープニューラルネットワーク)、AI(人工知能)ML(機械学習)を少し触ってみました。初めての技術ばかりで、ライフのデジタル化計画に有益な技術習得を行いました。

  • Python(初めて扱いました)
  • Python関係画像ライブラリ、OpenCVなど(オープンシーヴィ、Open Source Computer Vision Library)
  • Chainer (チェイナー) ディープラーニングフレームワーク
  • Darknet(ダークネット)YOLO(You Only Look Once)物体検出、オープンソースのニューラルネットフレームワーク

以下サンプル画像です。デジタル放送部分のみなので、著作権には配慮しているつもりです。問題のある際は、ご連絡下さい。大手なので、使用許諾にも時間がかかりそうなので、時間を見つけて画像の使用許諾を考えます。

8月からのブログネタは、このシステム構築に関わる技術内容とする予定です。
次の週末にでも記事を書き溜めます。
さて、次は、、、まだ未定。