import csv f = open("XXXXXXXXXXXX.csv") reader = csv.reader(f) target_aria = 0 for row in reader: #地区名を表示 if target_aria != row[4]: print(sum) target_aria=row[4] print("===============") print(row[2] + " " + row[4] + "start") sum=0 else: #外国人がいる地域を表示 #print(row[12]) if row[12].isdecimal(): if int(row[12]) != 0: sum = sum + int(row[12]) f.close()
迷走する技術ブログ
IoTエンジニアを目指して勉強していますが、知識が身につかないのでブログで残しています。
2021年6月6日日曜日
csvファイルをチェックする
2021年5月5日水曜日
osモジュールの使い方 python
概要
pythonでosのコマンド実行する際に、osモジュールをよく使っていたので、改めて使い方をまとめてみました。公式のドキュメントを見ると、subprocessモジュールに置き換えることが推奨されているので、そっちのほうを覚えたほうがいいかもしれません。
メソッド名 | 説明 |
---|---|
os.system | 引数で与えられたコマンド(文字列)を実行します。 |
os.popen | 引数で与えられたコマンド(文字列)を実行して、 その結果を変数に格納するときに使います。 |
使用例
pwdコマンドをos.systemとos.popenで使ってみます。# coding: utf-8 import os print("-----------------") system_r = os.system("pwd") print(system_r) print("-----------------") popen_r = os.popen("pwd").read().rstrip() print(popen_r) print("-----------------")
os.systemの方はコマンドを実行して、実行結果を戻り値で返していますが、os.popenの方はread()関数を使うと、実行結果が変数に格納されて、print関数を使わないと中身が表示されませんでした。
pi@raspberrypi:~ $ python3 os_test.py ----------------- /home/pi 0 ----------------- /home/pi -----------------
subprocessモジュールに置き換える場合の使用例
同じことをsubprocessモジュールで実行する場合には以下のように書きます。
# coding: utf-8 import subprocess print("-----------------") system_r = subprocess.call("pwd") print(system_r) print("-----------------") popen_r = subprocess.check_output("pwd").decode(encoding='utf-8').rstrip() print(popen_r) print("-----------------")
2021年4月28日水曜日
lobeを使った機械学習のマスク判定について
概要
機械学習を扱う装置を作る際、学習モデルをlobeで作っているのですが、マスク処理を行った画像の判定論理が気になったので調べてみました。やったこと
- 右下にクマがいる画像とクマがいない画像を5枚ずつ登録
- その状態で左上にクマがいる画像を判定できるか →期待は「bear」だったが、「no_bear」だった。
- 判定できるようになるまでに何枚の画像を登録する必要がるのか →左上にクマがいる画像を追加で11枚登録したら、「bear」と認識するようになった。
- 判定できるようになったとき、右下に画像がある情報を判定できるか →右下にクマがいない画像を判定したところ、期待は「no_bear」だったが「bear」と判定された。
結論
- マスク処理を行う場合は同じ場所をマスク処理したもので学習モデルを作ったほうが良い。
- 判定に使うための情報はラベルごとに同じ枚数のデータを学習させたほうが良い。
2021年4月27日火曜日
ビーコン検知
概要
ビーコンを3秒周期で検知してその結果をキューに貯めます。貯めたキューは7個まで保存できて、要素の多い宛先を選択します。
# coding: utf-8
import bluepy
def get_uuid():
scanner = bluepy.btle.Scanner(0)
devices = scanner.scan(3) #3秒のスキャンデータ
rssi_dic = {}
rssi_dic2 = {}
#アドレスとRSSIをディクショナリに登録
for device in devices:
rssi_dic[device.addr] = str(device.rssi)
#ディクショナリを昇順に並べ替え
rssi_dic2 = sorted(rssi_dic.items(), key=lambda x:x[1])
#一番強いRSSIを返す
ret = rssi_dic2[0][0]
#RSSIが-40以下ならunknown
if int(rssi_dic2[0][1]) <= -40:
ret = "unknown"
return ret
def main():
from collections import Counter
check_uuid = []
i = 0
while True:
check_uuid.append(str(get_uuid()))
uuid_ranking = Counter(check_uuid).most_common()
best_uuid = uuid_ranking[0][0]
if len(check_uuid) >= 7 :
check_uuid.pop(0)
if __name__ == "__main__":
main()
import bluepy
def get_uuid():
scanner = bluepy.btle.Scanner(0)
devices = scanner.scan(3) #3秒のスキャンデータ
rssi_dic = {}
rssi_dic2 = {}
#アドレスとRSSIをディクショナリに登録
for device in devices:
rssi_dic[device.addr] = str(device.rssi)
#ディクショナリを昇順に並べ替え
rssi_dic2 = sorted(rssi_dic.items(), key=lambda x:x[1])
#一番強いRSSIを返す
ret = rssi_dic2[0][0]
#RSSIが-40以下ならunknown
if int(rssi_dic2[0][1]) <= -40:
ret = "unknown"
return ret
def main():
from collections import Counter
check_uuid = []
i = 0
while True:
check_uuid.append(str(get_uuid()))
uuid_ranking = Counter(check_uuid).most_common()
best_uuid = uuid_ranking[0][0]
if len(check_uuid) >= 7 :
check_uuid.pop(0)
if __name__ == "__main__":
main()
2021年4月3日土曜日
Pythonで画像に四角形を描く
概要
windowsにあるファイルに対して、pythonで四角形を描写する方法です。画像の解像度によって座標は変わると思うのでよく確認する必要があると思います
サンプルコード
デスクトップにある、「tomato.jpg」に四角形の線を描画して、「sq_tomato.jpg」というファイル名で保存します。import cv2 in_img = "C:\\Users\\redpe\\Desktop\\tomato.jpg" out_img = "C:\\Users\\redpe\\Desktop\\sq_tomato.jpg" img = cv2.imread(in_img) cv2.rectangle(img, (1250, 250), (4250, 2600), color=(255, 0, 0), thickness=8) cv2.imwrite(out_img, img, [cv2.IMWRITE_JPEG_QUALITY, 100])
Pythonでマスク画像を合成
概要
windowsのデスクトップ上にあるファイルにマスク画像を合成する方法です。cv2モジュールを使ってます。
サンプルコード
デスクトップ上に置いている、「tomato.jpg」に「mask.jpg」を合成して、「mask_tomato.jpg」を作成しています。上下に余計な情報があって、マスクしたいときはこのようにします。
import cv2 path="C:\\Users\\redpe\\Desktop\\tomato.jpg" maskfile = "C:\\Users\\redpe\\Desktop\\mask.jpg" maskimg= "C:\\Users\\redpe\\Desktop\\mask_tomato.jpg" #マスク処理 src1 = cv2.imread(path) src2 = cv2.imread(maskfile) src2 = cv2.resize(src2, src1.shape[1::-1]) dst = cv2.bitwise_and(src1, src2) cv2.imwrite(maskimg, dst)
pythonでカラー画像から白黒画像を作成
概要
Pythonを使ってwindows上のファイルを白黒にする方法です。cv2を使って画像を加工します。
サンプルコード
デスクトップに置かれている「tomato.jpg」というファイルを読み込んで、白黒の「gray_tomato.jpg」というファイルを作成する方法は以下です。import cv2 path="C:\\Users\\redpe\\Desktop\\tomato.jpg" grayimg="C:\\Users\\redpe\\Desktop\\gray_tomato.jpg" img=cv2.imread(path) #グレースケール処理 gray_cv = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) cv2.imwrite(grayimg, gray_cv)
登録:
投稿 (Atom)