はじまる

適当な事を適当に書く

pip が入ってなかったのでインストールする

pip が入ってなかったのでインストールする。 EC2 のインスタンスです。 OSはこんな感じ。

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.2 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.2 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

pip のインストールには、 https://bootstrap.pypa.io/get-pip.py

を利用しました。

$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py
Collecting pip
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 1.1MB/s
Collecting setuptools
  Downloading setuptools-34.3.3-py2.py3-none-any.whl (389kB)
    100% |████████████████████████████████| 399kB 3.3MB/s
Collecting wheel
  Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
    100% |████████████████████████████████| 71kB 11.1MB/s
Collecting appdirs>=1.4.0 (from setuptools)
  Downloading appdirs-1.4.3-py2.py3-none-any.whl
Collecting packaging>=16.8 (from setuptools)
  Downloading packaging-16.8-py2.py3-none-any.whl
Requirement already up-to-date: six>=1.6.0 in /usr/lib/python2.7/dist-packages (from setuptools)
Collecting pyparsing (from packaging>=16.8->setuptools)
  Downloading pyparsing-2.2.0-py2.py3-none-any.whl (56kB)
    100% |████████████████████████████████| 61kB 11.1MB/s
Installing collected packages: pip, appdirs, pyparsing, packaging, setuptools, wheel
Successfully installed appdirs-1.4.3 packaging-16.8 pip-9.0.1 pyparsing-2.2.0 setuptools-34.3.3 wheel-0.29.0

$ which pip
/usr/local/bin/pip

できました。

Python & OpenCV で 画像に含まれる円を検出する

元ネタはこれです。

Hough Circle Transform — OpenCV-Python Tutorials 1 documentation

#detect_circle.py

import sys
import cv2
import numpy as np

args = sys.argv

img = cv2.imread(args[1], 0)
img = cv2.medianBlur(img,5)
cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)

circles = cv2.HoughCircles(img,cv2.HOUGH_GRADIENT,1,20,
                            param1=50,param2=30,minRadius=0,maxRadius=0)

circles = np.uint16(np.around(circles))
for i in circles[0,:]:
    # draw the outer circle
        cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)
    # draw the center of the circle
        cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3)

cv2.imwrite('detected_' + args[1], cimg)

コマンドラインから下記のように使います。

$python detect_circle.py target.jpg

やってみた1

元画像

上記リンクでの例

f:id:satorusangakoronda:20170327214319p:plain

検出結果画像

検出された円が、線画で上書きされています。

f:id:satorusangakoronda:20170327214349p:plain

やってみた2

元画像

ぱくたそのやつ。ポンポンが丸として検出されることを期待。 f:id:satorusangakoronda:20170327214518p:plain

検出結果画像

ナンジャコリャ f:id:satorusangakoronda:20170327214553p:plain

得手不得手があるみたいですね。

Python & OpenCV で 画像を変換する

昨日OpenCVを入れてみたのでお試し。同じフォルダにあるPNGファイルを、グレースケールにして別ファイルとして保存する。

# python 2.7.12
# cv2.__version__ 3.2.0

import os
import cv2

pwd = os.getcwd() #現在のディレクトリパスを取得
ls = os.listdir(pwd) #現在のディレクトリにあるファイルの一覧を配列で取得
png_files = filter (lambda n:n[-3:]=="png", ls) #上記からPNGファイルだけ抜き出す

for png in png_files:
        grey  = cv2.imread(png, 0) #グレースケールで読み込む
        cv2.imwrite("gray_scale_" + png, grey) #別名で保存

あとで諸々整理しよう。

Debian 8 に OpenCV をインストールする

下記のサイトにある様に、 milq さんという方の書いたインストールスクリプトを使う。 milq.github.io

#!/bin/bash

sudo apt-get autoremove libopencv-dev python-opencv
cd /usr/local/src/
wget https://raw.githubusercontent.com/milq/milq/master/scripts/bash/install-opencv.sh
chmod +x ./install-opencv.sh
./install-opencv.sh

ちなみに debian 8 (Jessie) が動いている IoT ゲートウェイと、 Ubuntu 16.04 LTS が動いている EC2 両方に OpenCV をインストールしなきゃいけないという状況だったんですが、これでどちらもイケました。EBS のボリュームサイズが 8GB だと容量不足でエラーがでていた為、16GB にしたらOKでした。

高山羽根子『うどん キツネつきの』

 

うーん、面白いんだろうけど、シュールなので、読んでて疲れたのか、余り読み進められなかった。歳だろうか…。

 

気力のある時なら読めるかもしれない。

乙一『カー・オブ・ザ・デッド』

 

初の乙一、初一でした。

Kindle Singles ということで、サク読みできる、短編。

乗用車の中と外で繰り広げられる、ゾンビシチュエーション。

これまで読んだ Kindle Singles のなかでは、一番カタルシスあったかも。

他の乙一も読んでみよう。

 

 

IoT時代における、ラムダアーキテクチャ再考 〜 Microsoft Azure on ARM Server のニュースを受けて

あとで書く的なやつです。

 

前提

IoT とは

インターネット・オブ・スィングス〜。ご存知、インターネットに繋がらなかったものを繋げられるようになると、いろいろ世界が変わるよね!と盛り上がっている。エンタープライズな領域だと、しばしば手段が目的化したりしている。数年経てば落ち着いて、質実剛健なIoTのなにがしが生まれてきそう。

 

ラムダアーキテクチャとは

バッチ層・スピード層・サービス層の3層でデータを処理する構成。

http://lambda-architecture.net/img/la-overview_small.png

汎用的でスケーラブルで耐障害性の高い構成として、Nathan Marz により考案された。彼は Apache Storm の作者でもある。詳しくは、このサイトか、この辺の本を読むといいのでは

 

 

 

 

さて

 

 

ascii.jp

community.arm.com

 

クラウド時代におけるラムダアーキテクチャ

 

いわゆる

 

IoT時代におけるラムダアーキテクチャ